1
0
Fork 0
mirror of synced 2024-06-26 18:10:51 +12:00
budibase/packages/builder/src/components/database/ModelDataTable/modals/RecordFieldControl.svelte

67 lines
1.6 KiB
Svelte
Raw Normal View History

<script>
2020-03-28 05:58:32 +13:00
import Select from "../../../common/Select.svelte"
2020-03-28 05:58:32 +13:00
export let record
export let field
export let errors
2020-03-28 05:58:32 +13:00
$: isDropdown =
field.type === "string" &&
field.typeOptions.values &&
field.typeOptions.values.length > 0
2020-03-28 05:58:32 +13:00
$: isNumber = field.type === "number"
2020-03-28 05:58:32 +13:00
$: isText = field.type === "string" && !isDropdown
2020-03-28 05:58:32 +13:00
$: isCheckbox = field.type === "bool"
2020-03-28 05:58:32 +13:00
$: isError = errors && errors.some(e => e.field && e.field === field.name)
2020-03-28 05:58:32 +13:00
$: isDatetime = field.type === "datetime"
</script>
<div class="uk-margin">
{#if !isCheckbox}
2020-03-28 05:58:32 +13:00
<label class="uk-form-label" for={field.name}>{field.label}</label>
{/if}
<div class="uk-form-controls">
{#if isDropdown}
<Select bind:value={record[field.name]}>
2020-03-28 05:58:32 +13:00
<option value="" />
{#each field.typeOptions.values as val}
<option value={val}>{val}</option>
{/each}
2020-03-28 05:58:32 +13:00
</Select>
{:else if isText}
<input
class="uk-input"
class:uk-form-danger={isError}
id={field.name}
type="text"
bind:value={record[field.name]} />
{:else if isNumber}
<input
class="uk-input"
class:uk-form-danger={isError}
type="number"
bind:value={record[field.name]} />
{:else if isDatetime}
<input
class="uk-input"
class:uk-form-danger={isError}
type="date"
bind:value={record[field.name]} />
{:else if isCheckbox}
<label>
<input
class="uk-checkbox"
class:uk-form-danger={isError}
type="checkbox"
2020-03-28 05:58:32 +13:00
bind:checked={record[field.name]} />
{field.label}
</label>
{/if}
</div>
2020-03-28 05:58:32 +13:00
</div>