|
8 | 8 |
|
9 | 9 | let selectedTypeOfTask = 'common'; |
10 | 10 | let selectionTasks = new Map(); |
11 | | - let selectionTasksNames = []; |
12 | 11 | let selectedMapKey; |
13 | 12 | let selectedMapTaskVersions = undefined; |
14 | 13 | let selectionControl = undefined; |
|
24 | 23 | if (!selectedOption.placeholder) { |
25 | 24 | selectedMapKey = selectedOption.value; |
26 | 25 | selectedMapTaskVersions = selectionTasks.get(selectedMapKey); |
| 26 | + if (selectedOption.data.owner !== undefined) { |
| 27 | + selectedMapTaskVersions = selectedMapTaskVersions.filter(t => t.owner === selectedOption.data.owner); |
| 28 | + } |
27 | 29 | selectedMapTaskVersions.sort(greatestVersionDesc); |
28 | 30 | } |
29 | 31 | } |
|
33 | 35 |
|
34 | 36 | function setSelectionTasks(group, tasks) { |
35 | 37 | selectionTasks = new Map(); |
36 | | - selectionTasksNames = []; |
37 | 38 | selectedMapKey = null; |
38 | 39 | selectedMapTaskVersions = undefined; |
39 | 40 |
|
|
49 | 50 |
|
50 | 51 | filteredTasks.forEach(task => { |
51 | 52 | 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 }]); |
53 | 54 | } 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 | + } |
55 | 61 | } |
56 | 62 | }); |
57 | | - selectionTasksNames = Array.from(selectionTasks.keys()); |
58 | 63 |
|
59 | 64 | setSelectionControlData(); |
60 | 65 | } |
|
84 | 89 | const source = task.owner; |
85 | 90 | const sourceIndex = dataOptions.findIndex(d => d.label === source); |
86 | 91 | 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 | + }); |
88 | 96 | } else { |
89 | 97 | // If task name already exists in options, don't add it again |
90 | 98 | 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 } }); |
92 | 100 | } |
93 | 101 | return dataOptions; |
94 | 102 | }, []); |
|
134 | 142 | {#if selectedMapTaskVersions.length > 0} |
135 | 143 | <label for='taskId' class='form-label'>Select task version</label> |
136 | 144 | <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> |
139 | 147 | {/each} |
140 | 148 | </select> |
141 | 149 | {/if} |
|
0 commit comments