{#each workflows as workflow (workflow.id)}
+ {@const { ToggleEnabled, Duplicate, Edit, Delete } = getWorkflowActions($t, workflow)}
+
- {
- event.preventDefault();
- event.stopPropagation();
- showWorkflowMenu(event, workflow);
- }}
+ onToggleExpand(workflow.id)),
+ MenuItemType.Divider,
+ Delete,
+ ]}
/>
@@ -152,7 +137,7 @@
fullWidth
variant="ghost"
color="secondary"
- onclick={() => toggleExpanded(workflow.id)}
+ onclick={() => onToggleExpand(workflow.id)}
>
{$t('close')}
diff --git a/web/src/routes/(user)/workflows/[workflowId]/+page.svelte b/web/src/routes/(user)/workflows/[workflowId]/+page.svelte
index 050d9dd605..d013b1d5e6 100644
--- a/web/src/routes/(user)/workflows/[workflowId]/+page.svelte
+++ b/web/src/routes/(user)/workflows/[workflowId]/+page.svelte
@@ -6,7 +6,7 @@
import WorkflowEditStepModal from '$lib/modals/WorkflowEditStepModal.svelte';
import WorkflowTriggerPicker from '$lib/modals/WorkflowTriggerPicker.svelte';
import { Route } from '$lib/route';
- import { handleUpdateWorkflow } from '$lib/services/workflow.service';
+ import { getWorkflowActions, handleUpdateWorkflow } from '$lib/services/workflow.service';
import { getTriggerDescription, getTriggerName } from '$lib/utils/workflow';
import type { WorkflowResponseDto, WorkflowStepDto, WorkflowUpdateDto } from '@immich/sdk';
import {
@@ -83,7 +83,7 @@
let dropTargetIndex = $state(null);
const workflowSummary = $derived({ name, description, trigger, steps });
- const workflowJsonContent = $derived({ description, enabled, name, steps, trigger });
+ const workflowJsonContent = $derived({ name, description, enabled, trigger, steps });
const hasChanges = $derived(
enabled !== savedWorkflow.enabled ||
@@ -217,6 +217,12 @@
}
};
+ const onWorkflowDelete = async (response: WorkflowResponseDto) => {
+ if (id === response.id) {
+ await goto(Route.workflows());
+ }
+ };
+
const confirmNavigation = async () => {
if (!hasChanges) {
return true;
@@ -273,60 +279,73 @@
}
});
});
+
+ const { Download, Duplicate, CopyJson, Delete } = $derived(
+ getWorkflowActions($t, { ...savedWorkflow, name, description, enabled, trigger, steps }),
+ );
-
+
-
+ ({ ...item, color: undefined }))}
+ >
{data.workflow.name}
{data.workflow.description}
-
+ {#if hasChanges}
-
-
-
-
+ {/if}
+
+
+
+
+
{#if editMode === 'visual'}
@@ -354,9 +373,8 @@
bind:value={() => name ?? '', (value) => (name = value || null)}
/>
-
+