mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-10-29 16:15:51 +00:00
* feat(frontend): added list of triggers in the flow graph * feat(frontend): added list of triggers in the flow graph * feat(frontend): clean up * feat(frontend): improve UX * feat(frontend): triggers * feat(frontend): triggers * feat(frontend): done * feat(frontend): fix trigger when position when a preprocessor is presetn * Glm/rework flow settings v2 (#4497) * fat(frontend): simplify flow settings menu * improve scroll * changing mute toggle * Add advanced settings badge * Add nord theme colors * Add bage for advanced options * fix minor issue * fix minor issue * Add triggers menu to flow settings * Add quick trigger access * remove triggers in flow settings * fix minor issue * Move triggers settings to flow right panel * polishing * fix unset store * remove save up to for triggers * fix padding * reset default tag color * remove custom select component * revert path change * revert section modif * Revert unused feature --------- Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home> * Connect top bar cron to schedules settings * Turn copilot into node * fix copilot placement * remove useless import * fix center copilot * fix binding * remove copilot on top of preprocessor * render copilot node on condition * quickfix * remove copilot node * fix minor issues * fix route count update * fix schedule sync * harmonize colors * fix alignment and add edges * recenter node summary * fix schedules sync * Add id title * all * all * all * iteration * all * all * done * fix * more fixes --------- Co-authored-by: Guilhem <guilhemlemouel@gmail.com> Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home> Co-authored-by: Ruben Fiszel <ruben@windmill.dev> Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
87 lines
2.3 KiB
Svelte
87 lines
2.3 KiB
Svelte
<script lang="ts">
|
|
import { Badge, Button } from './common'
|
|
import { sendUserToast } from '$lib/toast'
|
|
import { base } from '$lib/base'
|
|
import Toggle from './Toggle.svelte'
|
|
import { ListOrdered, PenBox } from 'lucide-svelte'
|
|
import JobArgs from './JobArgs.svelte'
|
|
import Tooltip from './Tooltip.svelte'
|
|
import ScheduleEditor from './ScheduleEditor.svelte'
|
|
import { type Schedule } from '$lib/gen'
|
|
|
|
export let schedule: any
|
|
export let can_write: boolean
|
|
export let path: string
|
|
export let isFlow: boolean
|
|
export let scheduleEditor: ScheduleEditor
|
|
export let setScheduleEnabled: (path: string, enabled: boolean) => void
|
|
|
|
$: schedule = typeof schedule === 'boolean' ? undefined : (schedule as Schedule | undefined)
|
|
</script>
|
|
|
|
<div class="flex flex-col gap-2 grow w-full">
|
|
<div class="grid grid-cols-3 w-full">
|
|
<div class="flex justify-start">
|
|
<Badge color="indigo" small>
|
|
Primary
|
|
<Tooltip light>
|
|
Share the same path as the script or flow it is attached to and its path get renamed
|
|
whenever the source path is renamed
|
|
</Tooltip>
|
|
</Badge>
|
|
</div>
|
|
<div class="flex justify-center">
|
|
<div class="flex flex-row gap-2 items-center">
|
|
<input
|
|
size="9"
|
|
class="!text-xs !h-6 !text-primary"
|
|
type="text"
|
|
id="cron-schedule"
|
|
name="cron-schedule"
|
|
placeholder="*/30 * * * *"
|
|
value={schedule?.schedule ?? ''}
|
|
disabled={true}
|
|
/>
|
|
<Toggle
|
|
checked={schedule?.enabled ?? false}
|
|
on:change={(e) => {
|
|
if (can_write) {
|
|
setScheduleEnabled(path, e.detail)
|
|
} else {
|
|
sendUserToast('not enough permission', true)
|
|
}
|
|
}}
|
|
options={{
|
|
right: 'On'
|
|
}}
|
|
size="xs"
|
|
textClass="text-primary font-normal text-xs"
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="flex justify-end">
|
|
<div class="flex flex-row gap-2 items-center">
|
|
<Button size={'xs'} variant="border" color="light" href={`${base}/runs/${path}`}>
|
|
<span>Runs</span>
|
|
<ListOrdered size={14} />
|
|
</Button>
|
|
<Button
|
|
size="xs"
|
|
color="dark"
|
|
on:click={() => scheduleEditor?.openEdit(path ?? '', isFlow)}
|
|
>
|
|
<PenBox size={14} />
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{#if Object.keys(schedule?.args ?? {}).length > 0}
|
|
<div class="">
|
|
<JobArgs args={schedule?.args ?? {}} />
|
|
</div>
|
|
{:else}
|
|
<div class="text-xs text-tertiary"> No arguments </div>
|
|
{/if}
|
|
</div>
|