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

50 lines
1.2 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
$: value = value || {}
$: model = $backendUiStore.models.find(model => model._id === value?.modelId)
$: schemaFields = Object.keys(model?.schema ?? {})
function setParsedValue(evt, field) {
const fieldSchema = model?.schema[field]
if (fieldSchema) {
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" bind:value={value.modelId}>
<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">
{#each schemaFields as field}
<div class="bb-margin-xl capitalise">
<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}
<style>
.capitalise :global(label) {
text-transform: capitalize !important;
}
</style>