Skip to content

Commit 5a44460

Browse files
committed
Fix selection of users tasks
When selecting a task by owner, only task versions of that owner should be shown in version selection.
1 parent 55a0cf6 commit 5a44460

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/lib/components/workflow/WorkflowTaskSelection.svelte

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
99
let selectedTypeOfTask = 'common';
1010
let selectionTasks = new Map();
11-
let selectionTasksNames = [];
1211
let selectedMapKey;
1312
let selectedMapTaskVersions = undefined;
1413
let selectionControl = undefined;
@@ -24,6 +23,9 @@
2423
if (!selectedOption.placeholder) {
2524
selectedMapKey = selectedOption.value;
2625
selectedMapTaskVersions = selectionTasks.get(selectedMapKey);
26+
if (selectedOption.data.owner !== undefined) {
27+
selectedMapTaskVersions = selectedMapTaskVersions.filter(t => t.owner === selectedOption.data.owner);
28+
}
2729
selectedMapTaskVersions.sort(greatestVersionDesc);
2830
}
2931
}
@@ -33,7 +35,6 @@
3335
3436
function setSelectionTasks(group, tasks) {
3537
selectionTasks = new Map();
36-
selectionTasksNames = [];
3738
selectedMapKey = null;
3839
selectedMapTaskVersions = undefined;
3940
@@ -49,12 +50,16 @@
4950
5051
filteredTasks.forEach(task => {
5152
if (!selectionTasks.has(task.name)) {
52-
selectionTasks.set(task.name, [{ id: task.id, version: task.version }]);
53+
selectionTasks.set(task.name, [{ id: task.id, version: task.version, source: task.source, owner: task.owner }]);
5354
} else {
54-
selectionTasks.get(task.name).push({ id: task.id, version: task.version });
55+
const taskVersions = selectionTasks.get(task.name);
56+
if (!taskVersions.find(t => t.version === task.version)) {
57+
taskVersions.push({ id: task.id, version: task.version, source: task.source, owner: task.owner });
58+
} else {
59+
taskVersions.push({ id: task.id, version: null, source: task.source, owner: task.owner });
60+
}
5561
}
5662
});
57-
selectionTasksNames = Array.from(selectionTasks.keys());
5863
5964
setSelectionControlData();
6065
}
@@ -84,11 +89,14 @@
8489
const source = task.owner;
8590
const sourceIndex = dataOptions.findIndex(d => d.label === source);
8691
if (sourceIndex === -1) {
87-
dataOptions.push({ label: source, options: [{ text: task.name, value: task.name }] });
92+
dataOptions.push({
93+
label: source,
94+
options: [{ text: task.name, value: task.name, data: { owner: task.owner } }]
95+
});
8896
} else {
8997
// If task name already exists in options, don't add it again
9098
if (!dataOptions[sourceIndex].options.find(o => o.text === task.name))
91-
dataOptions[sourceIndex].options.push({ text: task.name, value: task.name });
99+
dataOptions[sourceIndex].options.push({ text: task.name, value: task.name, data: { owner: task.owner } });
92100
}
93101
return dataOptions;
94102
}, []);
@@ -134,8 +142,8 @@
134142
{#if selectedMapTaskVersions.length > 0}
135143
<label for='taskId' class='form-label'>Select task version</label>
136144
<select name='taskId' id='taskId' class='form-select'>
137-
{#each selectionTasks.get(selectedMapKey) as task}
138-
<option value={task.id}>{task.version ? 'v' + task.version : 'Not specified'}</option>
145+
{#each selectedMapTaskVersions as task}
146+
<option value={task.id}>{task.version ? 'v' + task.version : task.source}</option>
139147
{/each}
140148
</select>
141149
{/if}

0 commit comments

Comments
 (0)