1
0
Fork 0
mirror of synced 2024-08-25 06:51:29 +12:00
budibase/packages/builder/src/components/workflow/SetupPanel/ParamInputs/RecordSelector.svelte

52 lines
1.3 KiB
Svelte
Raw Normal View History

2020-06-02 09:55:44 +12:00
<script>
import { backendUiStore } from "builderStore"
import { Input, Label } from "@budibase/bbui"
2020-06-02 09:55:44 +12:00
export let value
$: modelId = value && value.model ? value.model._id : ""
$: schemaFields = Object.keys(value && value.model ? value.model.schema : {})
function onChangeModel(e) {
value.model = $backendUiStore.models.find(
model => model._id === e.target.value
)
}
function setParsedValue(evt, field) {
const fieldSchema = value.model.schema[field]
if (fieldSchema.type === "number") {
value[field] = parseInt(evt.target.value)
return
}
value[field] = evt.target.value
}
2020-06-02 09:55:44 +12:00
</script>
<div class="block-field">
<select
class="budibase__input"
value={modelId}
on:blur={onChangeModel}
on:change={onChangeModel}>
<option value="">Choose an option</option>
{#each $backendUiStore.models as model}
<option value={model._id}>{model.name}</option>
{/each}
</select>
2020-06-02 09:55:44 +12:00
</div>
{#if schemaFields.length}
<div class="bb-margin-xl block-field">
<Label small forAttr={'fields'}>Fields</Label>
{#each schemaFields as field}
<div class="bb-margin-xl">
<Input
thin
value={value[field]}
label={field}
on:change={e => setParsedValue(e, field)} />
2020-06-02 09:55:44 +12:00
</div>
{/each}
</div>
{/if}