Record selector

This commit is contained in:
Martin McKeaveney 2020-06-01 22:55:44 +01:00
parent a9e77836cb
commit 401b6689bc
7 changed files with 52 additions and 8 deletions

View File

@ -5,6 +5,7 @@
</script>
<div class="uk-margin block-field">
<label class="uk-form-label">Model</label>
<div class="uk-form-controls">
<select class="budibase__input" bind:value>
{#each $backendUiStore.models as model}

View File

@ -0,0 +1,33 @@
<script>
import { backendUiStore } from "builderStore"
export let value
</script>
<div class="uk-margin block-field">
<div class="uk-form-controls">
<select class="budibase__input" bind:value={value.model}>
{#each $backendUiStore.models as model}
<option value={model}>{model.name}</option>
{/each}
</select>
</div>
</div>
{#if value.model}
<div class="uk-margin block-field">
<label class="uk-form-label fields">Fields</label>
{#each Object.keys(value.model.schema) as field}
<div class="uk-form-controls uk-margin">
<label class="uk-form-label">{field}</label>
<input type="text" class="budibase__input" bind:value={value[field]} />
</div>
{/each}
</div>
{/if}
<style>
.fields {
font-weight: 500;
}
</style>

View File

@ -2,6 +2,7 @@
import { backendUiStore, store } from "builderStore"
import ComponentSelector from "./ParamInputs/ComponentSelector.svelte"
import ModelSelector from "./ParamInputs/ModelSelector.svelte"
import RecordSelector from "./ParamInputs/RecordSelector.svelte"
export let workflowBlock
@ -51,6 +52,8 @@
bind:value={workflowBlock.args[parameter]} />
{:else if type === 'model'}
<ModelSelector bind:value={workflowBlock.args[parameter]} />
{:else if type === 'record'}
<RecordSelector bind:value={workflowBlock.args[parameter]} />
{:else if type === 'string'}
<input
type="text"

View File

@ -8,7 +8,7 @@
function addBlockToWorkflow() {
workflowStore.actions.addBlockToWorkflow({
...blockDefinition,
args: {},
args: blockDefinition.args || {},
actionId,
type: blockType,
})

View File

@ -22,26 +22,33 @@ const ACTION = {
},
SAVE_RECORD: {
name: "Save Record",
tagline: "Save a <b>{{model.name}}</b> record",
tagline: "<b>Save</b> a <b>{{record.model.name}}</b> record",
icon: "ri-save-3-fill",
description: "Save a record to your database.",
environment: "SERVER",
params: {
model: "model",
record: "record",
},
args: {
record: {},
},
},
DELETE_RECORD: {
description: "Delete a record from your database.",
icon: "ri-delete-bin-line",
name: "Delete Record",
tagline: "Delete a <b>{{model.name}}</b> record",
tagline: "<b>Delete</b> a <b>{{record.model.name}}</b> record",
environment: "SERVER",
params: {
record: "string",
record: "record",
},
args: {
record: {},
},
},
FIND_RECORD: {
description: "Find a record in your database.",
tagline: "<b>Find</b> a <b>{{record.model.name}}</b> record",
icon: "ri-search-line",
name: "Find Record",
environment: "SERVER",

View File

@ -8,4 +8,4 @@ export const setState = (path, value) => {
state = set(path, value, state)
return state
})
}
}

View File

@ -33,7 +33,7 @@ export const createStateManager = ({
const getCurrentState = () => currentState
const bb = bbFactory({
store: appStore,
store: appStore,
getCurrentState,
frontendDefinition,
componentLibraries,
@ -65,7 +65,7 @@ const _setup = ({ handlerTypes, getCurrentState, bb, store }) => node => {
const isBound = typeof propValue === "string" && propValue.startsWith("{{")
if (isBound) {
console.log("NODE IS BOUND", node);
console.log("NODE IS BOUND", node)
initialProps[propName] = mustache.render(propValue, {
state: currentStoreState,
context,