Merge branch 'develop' of https://dev.azure.com/olympusai/Olympus/_git/hermione-fe into develop
This commit is contained in:
@@ -96,7 +96,6 @@
|
|||||||
<!-- Dialog per selezionare lo scenario -->
|
<!-- Dialog per selezionare lo scenario -->
|
||||||
<Dialog v-model:visible="showScenarioDialog" header="Select a Scenario" :closable="false" :modal="true" style="width: 400px;">
|
<Dialog v-model:visible="showScenarioDialog" header="Select a Scenario" :closable="false" :modal="true" style="width: 400px;">
|
||||||
<div>
|
<div>
|
||||||
<h5>Select a Scenario</h5>
|
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-model="selectedScenario"
|
v-model="selectedScenario"
|
||||||
:options="scenario_store.scenariosForRE"
|
:options="scenario_store.scenariosForRE"
|
||||||
|
|||||||
@@ -37,53 +37,88 @@ function updateApplicationsMenu() {
|
|||||||
if (selectedApp != null) {
|
if (selectedApp != null) {
|
||||||
//Aggiorna il label dell'app
|
//Aggiorna il label dell'app
|
||||||
model.value[1].label = selectedApp.fe_name;
|
model.value[1].label = selectedApp.fe_name;
|
||||||
// Inizializza l'array degli item come vuoto
|
//Inizializza il menu principale
|
||||||
model.value[1].items = [];
|
model.value[1].items = [];
|
||||||
|
|
||||||
// Se ci sono scenari disponibili, aggiungili come sottovoci
|
//Se ci sono scenari disponibili, processali
|
||||||
if (selectedApp.available_scenarios.length > 0) {
|
if (selectedApp.available_scenarios.length > 0) {
|
||||||
|
const groupedScenarios = {};
|
||||||
|
|
||||||
|
//Raggruppa gli scenari per categoria (solo se type non è null)
|
||||||
selectedApp.available_scenarios.forEach(app => {
|
selectedApp.available_scenarios.forEach(app => {
|
||||||
let scenarioItem = {
|
if (app.type) {
|
||||||
label: app.label,
|
const type = app.type;
|
||||||
icon: 'pi pi-fw pi-wrench',
|
if (!groupedScenarios[type]) {
|
||||||
items: [], // Sub-items per ogni scenario
|
groupedScenarios[type] = [];
|
||||||
command: () => {
|
|
||||||
route.push({ path: `/scenario/exec/${app.scenario_id}` });
|
|
||||||
}
|
}
|
||||||
|
groupedScenarios[type].push(app);
|
||||||
|
} else {
|
||||||
|
//Se non ha categoria, lo trattiamo singolarmente
|
||||||
|
model.value[1].items.push(createScenarioItem(app));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Creazione del menu in base ai gruppi
|
||||||
|
Object.keys(groupedScenarios).forEach(type => {
|
||||||
|
const scenarios = groupedScenarios[type];
|
||||||
|
|
||||||
|
if (scenarios.length >= 2) {
|
||||||
|
//Se ci sono almeno 2 scenari nella stessa categoria, creiamo un gruppo
|
||||||
|
const typeItem = {
|
||||||
|
label: type,
|
||||||
|
icon: 'pi pi-fw pi-folder',
|
||||||
|
items: []
|
||||||
};
|
};
|
||||||
|
|
||||||
// Aggiungi la sottovoce "Execution List"
|
scenarios.forEach(app => {
|
||||||
scenarioItem.items.push({
|
typeItem.items.push(createScenarioItem(app));
|
||||||
label: 'Execution List',
|
|
||||||
icon: 'pi pi-fw pi-list',
|
|
||||||
to: '/executions/filter',
|
|
||||||
command: () => {
|
|
||||||
// Salva il nome dello scenario nello store
|
|
||||||
userPrefStore.setSelectedScenario(app.label);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Aggiungi lo scenario alla lista principale
|
model.value[1].items.push(typeItem);
|
||||||
model.value[1].items.push(scenarioItem);
|
}else {
|
||||||
});
|
//Se c'è solo un elemento, lo aggiungiamo direttamente
|
||||||
|
model.value[1].items.push(createScenarioItem(scenarios[0]));
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//Aggiungi "Rev Eng Code" alla fine della lista
|
//Aggiungi "Rev Eng Code" alla fine della lista
|
||||||
model.value[1].items.push({
|
model.value[1].items.push({
|
||||||
label: 'Rev Eng Code',
|
label: 'Rev Eng Code',
|
||||||
icon: 'pi pi-fw pi-wrench',
|
icon: 'pi pi-fw pi-cog',
|
||||||
command: () => {
|
command: () => {
|
||||||
route.push({ path: '/app-browser' });
|
route.push({ path: '/app-browser' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Se selectedApp è nullo, svuota gli item
|
//Se selectedApp è nullo, svuota il menu
|
||||||
model.value[1].label = '';
|
model.value[1].label = '';
|
||||||
model.value[1].items = [];
|
model.value[1].items = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Funzione per creare un item scenario con Execution List
|
||||||
|
function createScenarioItem(app) {
|
||||||
|
return {
|
||||||
|
label: app.label,
|
||||||
|
icon: 'pi pi-fw pi-wrench',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'Execution List',
|
||||||
|
icon: 'pi pi-fw pi-list',
|
||||||
|
to: '/executions/filter',
|
||||||
|
command: () => {
|
||||||
|
userPrefStore.setSelectedScenario(app.label);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
command: () => {
|
||||||
|
route.push({ path: `/scenario/exec/${app.scenario_id}` });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user