Merge branch 'master' of github.com:Budibase/budibase into grid-inline-searching
This commit is contained in:
commit
ea7b3381c2
|
@ -106,6 +106,13 @@
|
||||||
name: fieldName,
|
name: fieldName,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete numeric only widths as these are grid widths and should be
|
||||||
|
// ignored
|
||||||
|
const width = fixedSchema[fieldName].width
|
||||||
|
if (width != null && `${width}`.trim().match(/^[0-9]+$/)) {
|
||||||
|
delete fixedSchema[fieldName].width
|
||||||
|
}
|
||||||
})
|
})
|
||||||
return fixedSchema
|
return fixedSchema
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,11 @@
|
||||||
<DrawerContent>
|
<DrawerContent>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<Layout noPadding gap="S">
|
<Layout noPadding gap="S">
|
||||||
<Input bind:value={column.width} label="Width" placeholder="Auto" />
|
<Input
|
||||||
|
bind:value={column.width}
|
||||||
|
label="Width (must include a unit like px or %)"
|
||||||
|
placeholder="Auto"
|
||||||
|
/>
|
||||||
<Select
|
<Select
|
||||||
label="Alignment"
|
label="Alignment"
|
||||||
bind:value={column.align}
|
bind:value={column.align}
|
||||||
|
|
|
@ -81,6 +81,7 @@
|
||||||
sortOrder: $fetch.sortOrder,
|
sortOrder: $fetch.sortOrder,
|
||||||
},
|
},
|
||||||
limit,
|
limit,
|
||||||
|
primaryDisplay: $fetch.definition?.primaryDisplay,
|
||||||
}
|
}
|
||||||
|
|
||||||
const createFetch = datasource => {
|
const createFetch = datasource => {
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
$: loading = dataProvider?.loading ?? false
|
$: loading = dataProvider?.loading ?? false
|
||||||
$: data = dataProvider?.rows || []
|
$: data = dataProvider?.rows || []
|
||||||
$: fullSchema = dataProvider?.schema ?? {}
|
$: fullSchema = dataProvider?.schema ?? {}
|
||||||
$: fields = getFields(fullSchema, columns, false)
|
$: primaryDisplay = dataProvider?.primaryDisplay
|
||||||
|
$: fields = getFields(fullSchema, columns, false, primaryDisplay)
|
||||||
$: schema = getFilteredSchema(fullSchema, fields, hasChildren)
|
$: schema = getFilteredSchema(fullSchema, fields, hasChildren)
|
||||||
$: setSorting = getAction(
|
$: setSorting = getAction(
|
||||||
dataProvider?.id,
|
dataProvider?.id,
|
||||||
|
@ -55,18 +56,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const getFields = (schema, customColumns, showAutoColumns) => {
|
const getFields = (
|
||||||
// Check for an invalid column selection
|
schema,
|
||||||
let invalid = false
|
customColumns,
|
||||||
customColumns?.forEach(column => {
|
showAutoColumns,
|
||||||
const columnName = typeof column === "string" ? column : column.name
|
primaryDisplay
|
||||||
if (schema[columnName] == null) {
|
) => {
|
||||||
invalid = true
|
if (customColumns?.length) {
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// Use column selection if it exists
|
|
||||||
if (!invalid && customColumns?.length) {
|
|
||||||
return customColumns
|
return customColumns
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,13 +70,38 @@
|
||||||
let columns = []
|
let columns = []
|
||||||
let autoColumns = []
|
let autoColumns = []
|
||||||
Object.entries(schema).forEach(([field, fieldSchema]) => {
|
Object.entries(schema).forEach(([field, fieldSchema]) => {
|
||||||
|
if (fieldSchema.visible === false) {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (!fieldSchema?.autocolumn) {
|
if (!fieldSchema?.autocolumn) {
|
||||||
columns.push(field)
|
columns.push(field)
|
||||||
} else if (showAutoColumns) {
|
} else if (showAutoColumns) {
|
||||||
autoColumns.push(field)
|
autoColumns.push(field)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return columns.concat(autoColumns)
|
|
||||||
|
// Sort columns to respect grid metadata
|
||||||
|
const allCols = columns.concat(autoColumns)
|
||||||
|
return allCols.sort((a, b) => {
|
||||||
|
if (a === primaryDisplay) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
if (b === primaryDisplay) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
const aOrder = schema[a].order
|
||||||
|
const bOrder = schema[b].order
|
||||||
|
if (aOrder === bOrder) {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if (aOrder == null) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
if (bOrder == null) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return aOrder < bOrder ? -1 : 1
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const getFilteredSchema = (schema, fields, hasChildren) => {
|
const getFilteredSchema = (schema, fields, hasChildren) => {
|
||||||
|
|
Loading…
Reference in New Issue