|
26 | 26 | if (selectedOption.data.owner !== undefined) { |
27 | 27 | selectedMapTaskVersions = selectedMapTaskVersions.filter(t => t.owner === selectedOption.data.owner); |
28 | 28 | } |
| 29 | + if (selectedOption.data.package !== undefined) { |
| 30 | + selectedMapTaskVersions = selectedMapTaskVersions.filter(t => t.package === selectedOption.data.package); |
| 31 | + } |
29 | 32 | selectedMapTaskVersions.sort(greatestVersionDesc); |
30 | 33 | } |
31 | 34 | } |
|
42 | 45 |
|
43 | 46 | if (group === 'common') { |
44 | 47 | filteredTasks = tasks.filter(task => task.owner === null); // .filter((task, index, self) => self.findIndex(t => t.name === task.name) === index); |
| 48 | + filteredTasks.forEach(task => { |
| 49 | + let taskPackage = task.source.split(':')[1]; |
| 50 | + if (!selectionTasks.has(task.name)) { |
| 51 | + selectionTasks.set(task.name, [{ |
| 52 | + id: task.id, |
| 53 | + version: task.version, |
| 54 | + source: task.source, |
| 55 | + package: taskPackage |
| 56 | + }]); |
| 57 | + } else { |
| 58 | + const taskVersions = selectionTasks.get(task.name); |
| 59 | +
|
| 60 | + if (taskVersions.find(t => t.version === task.version && t.package === taskPackage)) { |
| 61 | + // Set the version to null of previous tasks within taskVersions |
| 62 | + taskVersions.forEach(t => { |
| 63 | + if (t.package === taskPackage) { |
| 64 | + t.version = null; |
| 65 | + } |
| 66 | + }); |
| 67 | +
|
| 68 | + taskVersions.push({ id: task.id, version: null, source: task.source, package: taskPackage }); |
| 69 | + } else { |
| 70 | + taskVersions.push({ id: task.id, version: task.version, source: task.source, package: taskPackage }); |
| 71 | + } |
| 72 | +
|
| 73 | + } |
| 74 | + }); |
45 | 75 | } |
46 | 76 |
|
47 | 77 | if (group === 'user') { |
48 | 78 | filteredTasks = tasks.filter(task => task.owner !== null); |
49 | | - } |
50 | | -
|
51 | | - filteredTasks.forEach(task => { |
52 | | - if (!selectionTasks.has(task.name)) { |
53 | | - selectionTasks.set(task.name, [{ id: task.id, version: task.version, source: task.source, owner: task.owner }]); |
54 | | - } else { |
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 }); |
| 79 | + filteredTasks.forEach(task => { |
| 80 | + if (!selectionTasks.has(task.name)) { |
| 81 | + selectionTasks.set(task.name, [{ |
| 82 | + id: task.id, |
| 83 | + version: task.version, |
| 84 | + source: task.source, |
| 85 | + owner: task.owner |
| 86 | + }]); |
58 | 87 | } else { |
59 | | - taskVersions.push({ id: task.id, version: null, source: task.source, owner: task.owner }); |
| 88 | + const taskVersions = selectionTasks.get(task.name); |
| 89 | + if (!taskVersions.find(t => t.version === task.version)) { |
| 90 | + taskVersions.push({ id: task.id, version: task.version, source: task.source, owner: task.owner }); |
| 91 | + } else { |
| 92 | + taskVersions.push({ id: task.id, version: null, source: task.source, owner: task.owner }); |
| 93 | + } |
60 | 94 | } |
61 | | - } |
62 | | - }); |
| 95 | + }); |
| 96 | + } |
| 97 | +
|
63 | 98 |
|
64 | 99 | setSelectionControlData(); |
65 | 100 | } |
|
70 | 105 | if (selectedTypeOfTask === 'common') { |
71 | 106 | // Group filtered tasks by source |
72 | 107 | optionsMap = filteredTasks.reduce((dataOptions, task) => { |
73 | | - const source = task.source.split(':')[1]; // Package name |
74 | | - const sourceIndex = dataOptions.findIndex(d => d.label === source); |
| 108 | + const taskPackage = task.source.split(':')[1]; // Package name |
| 109 | + const sourceIndex = dataOptions.findIndex(d => d.label === taskPackage); |
75 | 110 | if (sourceIndex === -1) { |
76 | | - dataOptions.push({ label: source, options: [{ text: task.name, value: task.name }] }); |
| 111 | + dataOptions.push({ |
| 112 | + label: taskPackage, |
| 113 | + options: [{ text: task.name, value: task.name, data: { package: taskPackage } }] |
| 114 | + }); |
77 | 115 | } else { |
78 | 116 | // If task name already exists in options, don't add it again |
79 | 117 | if (!dataOptions[sourceIndex].options.find(o => o.text === task.name)) |
|
0 commit comments