66 lines
1.2 KiB
Svelte
66 lines
1.2 KiB
Svelte
<script>
|
|
import { Button, Select, Input } from "@budibase/bbui"
|
|
import { createEventDispatcher } from "svelte"
|
|
const dispatch = createEventDispatcher()
|
|
|
|
export let value
|
|
const onChange = e => {
|
|
value = e.detail
|
|
dispatch("change", e.detail)
|
|
}
|
|
|
|
let presets = false
|
|
|
|
const CRON_EXPRESSIONS = [
|
|
{
|
|
label: "Every Minute",
|
|
value: "* * * * *",
|
|
},
|
|
{
|
|
label: "Every Hour",
|
|
value: "0 * * * *",
|
|
},
|
|
{
|
|
label: "Every Morning at 8AM",
|
|
value: "0 8 * * *",
|
|
},
|
|
{
|
|
label: "Every Night at Midnight",
|
|
value: "0 0 * * *",
|
|
},
|
|
{
|
|
label: "Every Budibase Reboot",
|
|
value: "@reboot",
|
|
},
|
|
]
|
|
</script>
|
|
|
|
<div class="block-field">
|
|
<Input on:change={onChange} {value} />
|
|
|
|
<div class="presets">
|
|
<Button on:click={() => (presets = !presets)}
|
|
>{presets ? "Hide" : "Show"} Presets</Button
|
|
>
|
|
{#if presets}
|
|
<Select
|
|
on:change={onChange}
|
|
{value}
|
|
secondary
|
|
extraThin
|
|
label="Presets"
|
|
options={CRON_EXPRESSIONS}
|
|
/>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.presets {
|
|
margin-top: var(--spacing-m);
|
|
}
|
|
.block-field {
|
|
padding-top: var(--spacing-s);
|
|
}
|
|
</style>
|