fix backend bugs - some tidy up

This commit is contained in:
Martin McKeaveney 2020-08-13 20:22:14 +01:00
parent c89158c6b5
commit c26366d0d8
5 changed files with 22 additions and 17 deletions

View File

@ -1,6 +1,7 @@
<script> <script>
import { onMount } from "svelte" import { onMount } from "svelte"
import { Input, TextArea, Button, Select } from "@budibase/bbui" import { Input, TextArea, Button, Select } from "@budibase/bbui"
import { cloneDeep, merge } from "lodash/fp"
import { store, backendUiStore } from "builderStore" import { store, backendUiStore } from "builderStore"
import { FIELDS } from "constants/backend" import { FIELDS } from "constants/backend"
import { notifier } from "builderStore/store/notifications" import { notifier } from "builderStore/store/notifications"
@ -19,6 +20,7 @@
export let onClosed export let onClosed
export let field = {} export let field = {}
let fieldDefinitions = cloneDeep(FIELDS)
let originalName = field.name let originalName = field.name
$: required = $: required =
@ -26,7 +28,10 @@
field.constraints.presence && field.constraints.presence &&
!field.constraints.presence.allowEmpty !field.constraints.presence.allowEmpty
$: if (field.type) { $: if (field.type) {
field.constraints = FIELDS[field.type.toUpperCase()].constraints field.constraints = merge(
fieldDefinitions[field.type.toUpperCase()].constraints,
field.constraints
)
} }
async function saveColumn() { async function saveColumn() {
@ -46,7 +51,7 @@
<Input placeholder="Name" thin bind:value={field.name} /> <Input placeholder="Name" thin bind:value={field.name} />
<Select secondary thin bind:value={field.type}> <Select secondary thin bind:value={field.type}>
{#each Object.values(FIELDS) as field} {#each Object.values(fieldDefinitions) as field}
<option value={field.type}>{field.name}</option> <option value={field.type}>{field.name}</option>
{/each} {/each}
</Select> </Select>

View File

@ -27,6 +27,7 @@
function deleteField() { function deleteField() {
backendUiStore.actions.models.deleteField(field) backendUiStore.actions.models.deleteField(field)
hideEditor()
} }
function sort(direction, column) { function sort(direction, column) {

View File

@ -17,6 +17,12 @@
}) })
notifier.success(`Table ${name} created successfully.`) notifier.success(`Table ${name} created successfully.`)
$goto(`./model/${model._id}`) $goto(`./model/${model._id}`)
name = ""
dropdown.hide()
}
const onClosed = () => {
name = ""
dropdown.hide() dropdown.hide()
} }
</script> </script>
@ -35,7 +41,7 @@
</div> </div>
<footer> <footer>
<div class="button-margin-3"> <div class="button-margin-3">
<Button secondary on:click={dropdown.hide}>Cancel</Button> <Button secondary on:click={onClosed}>Cancel</Button>
</div> </div>
<div class="button-margin-4"> <div class="button-margin-4">
<Button primary on:click={saveTable}>Save</Button> <Button primary on:click={saveTable}>Save</Button>

View File

@ -19,15 +19,12 @@
const joinPath = join("/") const joinPath = join("/")
const normalizedName = name => const normalizedName = name =>
pipe( pipe(name, [
name,
[
trimCharsStart("./"), trimCharsStart("./"),
trimCharsStart("~/"), trimCharsStart("~/"),
trimCharsStart("../"), trimCharsStart("../"),
trimChars(" "), trimChars(" "),
] ])
)
const changeScreen = screen => { const changeScreen = screen => {
store.setCurrentScreen(screen.props._instanceName) store.setCurrentScreen(screen.props._instanceName)

View File

@ -23,11 +23,7 @@
const capitalise = s => s.substring(0, 1).toUpperCase() + s.substring(1) const capitalise = s => s.substring(0, 1).toUpperCase() + s.substring(1)
const get_name = s => (!s ? "" : last(s.split("/"))) const get_name = s => (!s ? "" : last(s.split("/")))
const get_capitalised_name = name => const get_capitalised_name = name => pipe(name, [get_name, capitalise])
pipe(
name,
[get_name, capitalise]
)
const isScreenslot = name => name === "##builtin/screenslot" const isScreenslot = name => name === "##builtin/screenslot"
const selectComponent = component => { const selectComponent = component => {