Skip to content

Commit 2fe3516

Browse files
committed
Prevent a user from running a workflow if there are unsaved arguments changes
1 parent 9d97588 commit 2fe3516

File tree

1 file changed

+25
-12
lines changed
  • src/routes/projects/[projectId]/workflows/[workflowId]

1 file changed

+25
-12
lines changed

src/routes/projects/[projectId]/workflows/[workflowId]/+page.svelte

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,19 @@
146146
const workflowTaskId = event.currentTarget.getAttribute('data-fs-target');
147147
const wft = workflow.task_list.find((task) => task.id == workflowTaskId);
148148
if (argumentsWithUnsavedChanges === true) {
149-
// eslint-disable-next-line no-undef
150-
const modal = new bootstrap.Modal(document.getElementById('changes-unsaved-dialog'), {});
151-
modal.toggle();
149+
toggleUnsavedChangesModal();
152150
preventedTaskContextChange = wft;
153151
throw new Error('Cannot change workflow task context while there are unsaved changes');
154152
}
155153
setWorkflowTaskContext(wft);
156154
}
157155
156+
function toggleUnsavedChangesModal() {
157+
// eslint-disable-next-line no-undef
158+
const modal = new bootstrap.Modal(document.getElementById('changes-unsaved-dialog'), {});
159+
modal.toggle();
160+
}
161+
158162
function setWorkflowTaskContext(wft) {
159163
workflowTaskContext.set(wft);
160164
// Check if args schema is available
@@ -307,18 +311,27 @@
307311
</ol>
308312
</nav>
309313
<div>
310-
<a href="/projects/{project?.id}/jobs?workflow={workflow?.id}" class="btn btn-light"
311-
><i class="bi-journal-code" /> List jobs</a
314+
<a href='/projects/{project?.id}/jobs?workflow={workflow?.id}' class='btn btn-light'
315+
><i class='bi-journal-code' /> List jobs</a
312316
>
313-
<button class="btn btn-light" on:click|preventDefault={handleExportWorkflow}
314-
><i class="bi-box-arrow-up" /></button
317+
<button class='btn btn-light' on:click|preventDefault={handleExportWorkflow}
318+
><i class='bi-box-arrow-up' /></button
315319
>
316-
<a id="downloadWorkflowButton" class="d-none">Download workflow link</a>
317-
<button class="btn btn-light" data-bs-toggle="modal" data-bs-target="#editWorkflowModal"
318-
><i class="bi-gear-wide-connected" /></button
320+
<a id='downloadWorkflowButton' class='d-none'>Download workflow link</a>
321+
<button class='btn btn-light' data-bs-toggle='modal' data-bs-target='#editWorkflowModal'
322+
><i class='bi-gear-wide-connected' /></button
319323
>
320-
<button class="btn btn-success" data-bs-toggle="modal" data-bs-target="#runWorkflowModal"
321-
><i class="bi-play-fill" /> Run workflow</button
324+
<button class='btn btn-success' on:click|preventDefault={() => {
325+
// eslint-disable-next-line
326+
if (argumentsWithUnsavedChanges === false) {
327+
const modal = new bootstrap.Modal(document.getElementById('runWorkflowModal'));
328+
modal.toggle();
329+
} else {
330+
toggleUnsavedChangesModal()
331+
}
332+
}}
333+
><i class='bi-play-fill' /> Run workflow
334+
</button
322335
>
323336
</div>
324337
</div>

0 commit comments

Comments
 (0)