diff --git a/src/lib/components/schedule/schedule-advanced-settings.svelte b/src/lib/components/schedule/schedule-advanced-settings.svelte index 6f448f488..a03a70c55 100644 --- a/src/lib/components/schedule/schedule-advanced-settings.svelte +++ b/src/lib/components/schedule/schedule-advanced-settings.svelte @@ -14,28 +14,47 @@ -

- {translate('schedules.start-time')} - {spec?.startTime ?? translate('common.none')} -

-

- {translate('schedules.end-time')}{spec?.endTime ?? translate('common.none')} -

-

- {translate('schedules.jitter')}{spec?.jitter ?? translate('common.none')} -

-

- {translate('schedules.exclusion-calendar')}{spec?.excludeCalendar?.[0] ?? - translate('common.none')} -

- {#if state?.limitedActions} -

- {translate('schedules.remaining-actions')}{state?.remainingActions ?? - translate('common.none')} -

- {/if} -

- {translate('schedules.overlap-policy')}{policies?.overlapPolicy ?? - translate('common.none')} -

+
+ + diff --git a/src/lib/components/schedule/schedule-form-view.svelte b/src/lib/components/schedule/schedule-form-view.svelte index 731ff6591..44cac18b9 100644 --- a/src/lib/components/schedule/schedule-form-view.svelte +++ b/src/lib/components/schedule/schedule-form-view.svelte @@ -11,22 +11,28 @@ import Loading from '$lib/holocene/loading.svelte'; import { translate } from '$lib/i18n/translate'; import { error, loading } from '$lib/stores/schedules'; + import type { SearchAttributeInput } from '$lib/stores/search-attributes'; import type { FullSchedule, ScheduleParameters, SchedulePreset, } from '$lib/types/schedule'; + import { decodePayloadAttributes } from '$lib/utilities/decode-payload'; import { routeForSchedule, routeForSchedules, } from '$lib/utilities/route-for'; import { writeActionsAreAllowed } from '$lib/utilities/write-actions-are-allowed'; + import AddSearchAttributes from '../workflow/add-search-attributes.svelte'; + import ScheduleInputPayload from './schedule-input-payload.svelte'; - import type { Schedule } from '$types'; + import type { Schedule, SearchAttribute } from '$types'; export let schedule: FullSchedule | null = null; + export let searchAttributes: SearchAttribute = {}; + export let onConfirm: ( preset: SchedulePreset, args: Partial, @@ -52,9 +58,17 @@ let errors = {}; let name = scheduleId ?? ''; - let workflowType = schedule?.action?.startWorkflow?.workflowType?.name ?? ''; - let workflowId = schedule?.action?.startWorkflow?.workflowId ?? ''; - let taskQueue = schedule?.action?.startWorkflow?.taskQueue?.name ?? ''; + const decodedWorkflow = decodePayloadAttributes( + schedule?.action?.startWorkflow, + ); + const decodedSearchAttributes = decodePayloadAttributes({ searchAttributes }); + const indexedFields = + decodedSearchAttributes?.searchAttributes.indexedFields ?? + ({} as { [k: string]: string }); + + let workflowType = decodedWorkflow?.workflowType?.name ?? ''; + let workflowId = decodedWorkflow?.workflowId ?? ''; + let taskQueue = decodedWorkflow?.taskQueue?.name ?? ''; let input = ''; let daysOfWeek: string[] = []; let daysOfMonth: number[] = []; @@ -65,6 +79,9 @@ let second = ''; let phase = ''; let cronString = ''; + let searchAttributesInput: SearchAttributeInput[] = Object.entries( + indexedFields, + ).map(([attribute, value]) => ({ attribute, value })); const handleConfirm = (preset: SchedulePreset, schedule?: Schedule) => { const args: Partial = { @@ -82,6 +99,7 @@ daysOfMonth, days, months, + searchAttributes: searchAttributesInput, }; onConfirm(preset, args, schedule); @@ -145,9 +163,7 @@

{title}

- +