Update table autoscreens to use grid layout
This commit is contained in:
parent
9385bc878b
commit
7e5f43dd6d
|
@ -54,4 +54,28 @@ export class Component extends BaseStructure {
|
||||||
getId() {
|
getId() {
|
||||||
return this._json._id
|
return this._json._id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gridDesktopColSpan(start, end) {
|
||||||
|
this._json._styles.normal["--grid-desktop-col-start"] = start
|
||||||
|
this._json._styles.normal["--grid-desktop-col-end"] = end
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
gridDesktopRowSpan(start, end) {
|
||||||
|
this._json._styles.normal["--grid-desktop-row-start"] = start
|
||||||
|
this._json._styles.normal["--grid-desktop-row-end"] = end
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
gridMobileColSpan(start, end) {
|
||||||
|
this._json._styles.normal["--grid-mobile-col-start"] = start
|
||||||
|
this._json._styles.normal["--grid-mobile-col-end"] = end
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
gridMobileRowSpan(start, end) {
|
||||||
|
this._json._styles.normal["--grid-mobile-row-start"] = start
|
||||||
|
this._json._styles.normal["--grid-mobile-row-end"] = end
|
||||||
|
return this
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,16 +9,21 @@ const inline = ({ tableOrView, permissions, screens }) => {
|
||||||
.customProps({
|
.customProps({
|
||||||
text: tableOrView.name,
|
text: tableOrView.name,
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 13)
|
||||||
|
.gridDesktopRowSpan(1, 3)
|
||||||
|
|
||||||
const tableBlock = new Component("@budibase/standard-components/gridblock")
|
const tableBlock = new Component("@budibase/standard-components/gridblock")
|
||||||
.instanceName(`${tableOrView.name} - Table`)
|
.instanceName(`${tableOrView.name} - Table`)
|
||||||
.customProps({
|
.customProps({
|
||||||
table: tableOrView.datasourceSelectFormat,
|
table: tableOrView.datasourceSelectFormat,
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 13)
|
||||||
|
.gridDesktopRowSpan(3, 21)
|
||||||
|
|
||||||
const screenTemplate = new Screen()
|
const screenTemplate = new Screen()
|
||||||
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
||||||
.instanceName(`${tableOrView.name} - List`)
|
.instanceName(`${tableOrView.name} - List`)
|
||||||
|
.customProps({ layout: "grid" })
|
||||||
.role(permissions.write)
|
.role(permissions.write)
|
||||||
.autoTableId(tableOrView.id)
|
.autoTableId(tableOrView.id)
|
||||||
.addChild(heading)
|
.addChild(heading)
|
||||||
|
|
|
@ -33,26 +33,22 @@ const modal = ({ tableOrView, permissions, screens }) => {
|
||||||
type: "cta",
|
type: "cta",
|
||||||
})
|
})
|
||||||
|
|
||||||
buttonGroup.instanceName(`${tableOrView.name} - Create`).customProps({
|
buttonGroup
|
||||||
hAlign: "right",
|
.instanceName(`${tableOrView.name} - Create`)
|
||||||
buttons: [createButton.json()],
|
|
||||||
})
|
|
||||||
|
|
||||||
const tableHeader = new Component("@budibase/standard-components/container")
|
|
||||||
.instanceName("Heading container")
|
|
||||||
.customProps({
|
.customProps({
|
||||||
direction: "row",
|
hAlign: "right",
|
||||||
hAlign: "stretch",
|
buttons: [createButton.json()],
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(7, 13)
|
||||||
|
.gridDesktopRowSpan(1, 3)
|
||||||
|
|
||||||
const heading = new Component("@budibase/standard-components/heading")
|
const heading = new Component("@budibase/standard-components/heading")
|
||||||
.instanceName("Table heading")
|
.instanceName("Table heading")
|
||||||
.customProps({
|
.customProps({
|
||||||
text: tableOrView.name,
|
text: tableOrView.name,
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 7)
|
||||||
tableHeader.addChild(heading)
|
.gridDesktopRowSpan(1, 3)
|
||||||
tableHeader.addChild(buttonGroup)
|
|
||||||
|
|
||||||
const createFormBlock = new Component(
|
const createFormBlock = new Component(
|
||||||
"@budibase/standard-components/formblock"
|
"@budibase/standard-components/formblock"
|
||||||
|
@ -134,13 +130,17 @@ const modal = ({ tableOrView, permissions, screens }) => {
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
.instanceName(`${tableOrView.name} - Table`)
|
.instanceName(`${tableOrView.name} - Table`)
|
||||||
|
.gridDesktopColSpan(1, 13)
|
||||||
|
.gridDesktopRowSpan(3, 21)
|
||||||
|
|
||||||
const template = new Screen()
|
const template = new Screen()
|
||||||
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
||||||
.instanceName(`${tableOrView.name} - List and details`)
|
.instanceName(`${tableOrView.name} - List and details`)
|
||||||
|
.customProps({ layout: "grid" })
|
||||||
.role(permissions.write)
|
.role(permissions.write)
|
||||||
.autoTableId(tableOrView.id)
|
.autoTableId(tableOrView.id)
|
||||||
.addChild(tableHeader)
|
.addChild(buttonGroup)
|
||||||
|
.addChild(heading)
|
||||||
.addChild(tableBlock)
|
.addChild(tableBlock)
|
||||||
.addChild(createRowModal)
|
.addChild(createRowModal)
|
||||||
.addChild(detailsModal)
|
.addChild(detailsModal)
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { capitalise } from "helpers"
|
||||||
import { makePropSafe as safe } from "@budibase/string-templates"
|
import { makePropSafe as safe } from "@budibase/string-templates"
|
||||||
import getValidRoute from "../getValidRoute"
|
import getValidRoute from "../getValidRoute"
|
||||||
import { Helpers } from "@budibase/bbui"
|
import { Helpers } from "@budibase/bbui"
|
||||||
|
import { head } from "lodash"
|
||||||
|
|
||||||
const getTableScreenTemplate = ({
|
const getTableScreenTemplate = ({
|
||||||
route,
|
route,
|
||||||
|
@ -11,36 +12,41 @@ const getTableScreenTemplate = ({
|
||||||
createScreenRoute,
|
createScreenRoute,
|
||||||
tableOrView,
|
tableOrView,
|
||||||
permissions,
|
permissions,
|
||||||
|
gridLayout,
|
||||||
}) => {
|
}) => {
|
||||||
const newButton = new Component("@budibase/standard-components/button")
|
const buttonGroup = new Component("@budibase/standard-components/buttongroup")
|
||||||
.instanceName("New button")
|
const createButton = new Component("@budibase/standard-components/button")
|
||||||
.customProps({
|
|
||||||
text: "Create row",
|
createButton.customProps({
|
||||||
onClick: [
|
onClick: [
|
||||||
{
|
{
|
||||||
"##eventHandlerType": "Navigate To",
|
"##eventHandlerType": "Navigate To",
|
||||||
parameters: {
|
parameters: {
|
||||||
type: "url",
|
type: "url",
|
||||||
url: createScreenRoute,
|
url: createScreenRoute,
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
},
|
||||||
|
],
|
||||||
|
text: "Create row",
|
||||||
|
type: "cta",
|
||||||
|
})
|
||||||
|
|
||||||
|
buttonGroup
|
||||||
|
.instanceName(`${tableOrView.name} - Create`)
|
||||||
|
.customProps({
|
||||||
|
hAlign: "right",
|
||||||
|
buttons: [createButton.json()],
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(7, 13)
|
||||||
|
.gridDesktopRowSpan(1, 3)
|
||||||
|
|
||||||
const heading = new Component("@budibase/standard-components/heading")
|
const heading = new Component("@budibase/standard-components/heading")
|
||||||
.instanceName("Table heading")
|
.instanceName("Table heading")
|
||||||
.customProps({
|
.customProps({
|
||||||
text: tableOrView.name,
|
text: tableOrView.name,
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 7)
|
||||||
const tableHeader = new Component("@budibase/standard-components/container")
|
.gridDesktopRowSpan(1, 3)
|
||||||
.instanceName("Heading container")
|
|
||||||
.customProps({
|
|
||||||
direction: "row",
|
|
||||||
hAlign: "stretch",
|
|
||||||
})
|
|
||||||
.addChild(heading)
|
|
||||||
.addChild(newButton)
|
|
||||||
|
|
||||||
const updateScreenRouteSegments = updateScreenRoute.split(":id")
|
const updateScreenRouteSegments = updateScreenRoute.split(":id")
|
||||||
if (updateScreenRouteSegments.length !== 2) {
|
if (updateScreenRouteSegments.length !== 2) {
|
||||||
|
@ -67,14 +73,18 @@ const getTableScreenTemplate = ({
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 13)
|
||||||
|
.gridDesktopRowSpan(3, 21)
|
||||||
|
|
||||||
const template = new Screen()
|
const template = new Screen()
|
||||||
.route(route)
|
.route(route)
|
||||||
.instanceName(`${tableOrView.name} - List`)
|
.instanceName(`${tableOrView.name} - List`)
|
||||||
|
.customProps({ layout: gridLayout ? "grid" : "flex" })
|
||||||
.role(permissions.write)
|
.role(permissions.write)
|
||||||
.autoTableId(tableOrView.id)
|
.autoTableId(tableOrView.id)
|
||||||
.addChild(tableHeader)
|
|
||||||
.addChild(tableBlock)
|
.addChild(tableBlock)
|
||||||
|
.addChild(heading)
|
||||||
|
.addChild(buttonGroup)
|
||||||
.json()
|
.json()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -300,6 +310,7 @@ const newScreen = ({ tableOrView, permissions, screens }) => {
|
||||||
createScreenRoute,
|
createScreenRoute,
|
||||||
permissions,
|
permissions,
|
||||||
tableOrView,
|
tableOrView,
|
||||||
|
gridLayout: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
const updateScreenTemplate = getUpdateScreenTemplate({
|
const updateScreenTemplate = getUpdateScreenTemplate({
|
||||||
|
@ -307,6 +318,7 @@ const newScreen = ({ tableOrView, permissions, screens }) => {
|
||||||
tableScreenRoute,
|
tableScreenRoute,
|
||||||
tableOrView,
|
tableOrView,
|
||||||
permissions,
|
permissions,
|
||||||
|
gridLayout: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
const createScreenTemplate = getCreateScreenTemplate({
|
const createScreenTemplate = getCreateScreenTemplate({
|
||||||
|
@ -314,6 +326,7 @@ const newScreen = ({ tableOrView, permissions, screens }) => {
|
||||||
tableScreenRoute,
|
tableScreenRoute,
|
||||||
tableOrView,
|
tableOrView,
|
||||||
permissions,
|
permissions,
|
||||||
|
gridLayout: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
return [tableScreenTemplate, updateScreenTemplate, createScreenTemplate]
|
return [tableScreenTemplate, updateScreenTemplate, createScreenTemplate]
|
||||||
|
|
|
@ -31,27 +31,22 @@ const sidePanel = ({ tableOrView, permissions, screens }) => {
|
||||||
type: "cta",
|
type: "cta",
|
||||||
})
|
})
|
||||||
|
|
||||||
buttonGroup.instanceName(`${tableOrView.name} - Create`).customProps({
|
buttonGroup
|
||||||
hAlign: "right",
|
.instanceName(`${tableOrView.name} - Create`)
|
||||||
buttons: [createButton.json()],
|
|
||||||
})
|
|
||||||
|
|
||||||
const tableHeader = new Component("@budibase/standard-components/container")
|
|
||||||
.instanceName("Heading container")
|
|
||||||
.customProps({
|
.customProps({
|
||||||
layout: "flex",
|
hAlign: "right",
|
||||||
direction: "row",
|
buttons: [createButton.json()],
|
||||||
hAlign: "stretch",
|
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(7, 13)
|
||||||
|
.gridDesktopRowSpan(1, 3)
|
||||||
|
|
||||||
const heading = new Component("@budibase/standard-components/heading")
|
const heading = new Component("@budibase/standard-components/heading")
|
||||||
.instanceName("Table heading")
|
.instanceName("Table heading")
|
||||||
.customProps({
|
.customProps({
|
||||||
text: tableOrView.name,
|
text: tableOrView.name,
|
||||||
})
|
})
|
||||||
|
.gridDesktopColSpan(1, 7)
|
||||||
tableHeader.addChild(heading)
|
.gridDesktopRowSpan(1, 3)
|
||||||
tableHeader.addChild(buttonGroup)
|
|
||||||
|
|
||||||
const createFormBlock = new Component(
|
const createFormBlock = new Component(
|
||||||
"@budibase/standard-components/formblock"
|
"@budibase/standard-components/formblock"
|
||||||
|
@ -131,13 +126,17 @@ const sidePanel = ({ tableOrView, permissions, screens }) => {
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
.instanceName(`${tableOrView.name} - Table`)
|
.instanceName(`${tableOrView.name} - Table`)
|
||||||
|
.gridDesktopColSpan(1, 13)
|
||||||
|
.gridDesktopRowSpan(3, 21)
|
||||||
|
|
||||||
const template = new Screen()
|
const template = new Screen()
|
||||||
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
.route(getValidRoute(screens, tableOrView.name, permissions.write))
|
||||||
.instanceName(`${tableOrView.name} - List and details`)
|
.instanceName(`${tableOrView.name} - List and details`)
|
||||||
|
.customProps({ layout: "grid" })
|
||||||
.role(permissions.write)
|
.role(permissions.write)
|
||||||
.autoTableId(tableOrView.id)
|
.autoTableId(tableOrView.id)
|
||||||
.addChild(tableHeader)
|
.addChild(heading)
|
||||||
|
.addChild(buttonGroup)
|
||||||
.addChild(tableBlock)
|
.addChild(tableBlock)
|
||||||
.addChild(createRowSidePanel)
|
.addChild(createRowSidePanel)
|
||||||
.addChild(detailsSidePanel)
|
.addChild(detailsSidePanel)
|
||||||
|
|
Loading…
Reference in New Issue