Merge pull request #975 from Budibase/optional-autoscreens

Optional autoscreens
This commit is contained in:
Andrew Kingston 2021-01-07 19:30:14 +00:00 committed by GitHub
commit e8f18e2853
2 changed files with 25 additions and 19 deletions

View File

@ -1,8 +1,8 @@
<script> <script>
import { goto, params } from "@sveltech/routify" import { goto } from "@sveltech/routify"
import { backendUiStore, store } from "builderStore" import { backendUiStore, store } from "builderStore"
import { notifier } from "builderStore/store/notifications" import { notifier } from "builderStore/store/notifications"
import { Input, Label, ModalContent } from "@budibase/bbui" import { Input, Label, ModalContent, Toggle } from "@budibase/bbui"
import TableDataImport from "../TableDataImport.svelte" import TableDataImport from "../TableDataImport.svelte"
import analytics from "analytics" import analytics from "analytics"
import screenTemplates from "builderStore/store/screenTemplates" import screenTemplates from "builderStore/store/screenTemplates"
@ -20,6 +20,7 @@
let name let name
let dataImport let dataImport
let error = "" let error = ""
let createAutoscreens = true
function checkValid(evt) { function checkValid(evt) {
const tableName = evt.target.value const tableName = evt.target.value
@ -48,23 +49,25 @@
analytics.captureEvent("Table Created", { name }) analytics.captureEvent("Table Created", { name })
// Create auto screens // Create auto screens
const screens = screenTemplates($store, [table]) if (createAutoscreens) {
.filter(template => defaultScreens.includes(template.id)) const screens = screenTemplates($store, [table])
.map(template => template.create()) .filter(template => defaultScreens.includes(template.id))
for (let screen of screens) { .map(template => template.create())
// Record the table that created this screen so we can link it later for (let screen of screens) {
screen.autoTableId = table._id // Record the table that created this screen so we can link it later
await store.actions.screens.create(screen) screen.autoTableId = table._id
} await store.actions.screens.create(screen)
}
// Create autolink to newly created list screen // Create autolink to newly created list screen
const listScreen = screens.find(screen => const listScreen = screens.find(screen =>
screen.props._instanceName.endsWith("List") screen.props._instanceName.endsWith("List")
) )
await store.actions.components.links.save( await store.actions.components.links.save(
listScreen.routing.route, listScreen.routing.route,
table.name table.name
) )
}
// Navigate to new table // Navigate to new table
$goto(`./table/${table._id}`) $goto(`./table/${table._id}`)
@ -83,6 +86,9 @@
on:input={checkValid} on:input={checkValid}
bind:value={name} bind:value={name}
{error} /> {error} />
<Toggle
text="Generate screens in the design section"
bind:checked={createAutoscreens} />
<div> <div>
<Label grey extraSmall>Create Table from CSV (Optional)</Label> <Label grey extraSmall>Create Table from CSV (Optional)</Label>
<TableDataImport bind:dataImport /> <TableDataImport bind:dataImport />

View File

@ -36,7 +36,7 @@ const addBuilderPreviewStyles = (styleString, componentId, selectable) => {
// Highlighted selected element // Highlighted selected element
if (componentId === state.selectedComponentId) { if (componentId === state.selectedComponentId) {
str += `;box-shadow: 0 0 0 ${selectedComponentWidth}px ${selectedComponentColor} inset !important;` str += `;border: ${selectedComponentWidth}px solid ${selectedComponentColor} !important;`
} }
} }