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 v-model:visible="showScenarioDialog" header="Select a Scenario" :closable="false" :modal="true" style="width: 400px;">
|
||||
<div>
|
||||
<h5>Select a Scenario</h5>
|
||||
<Dropdown
|
||||
v-model="selectedScenario"
|
||||
:options="scenario_store.scenariosForRE"
|
||||
|
||||
@@ -35,55 +35,90 @@ function updateApplicationsMenu() {
|
||||
console.log("selectedApp", selectedApp);
|
||||
|
||||
if (selectedApp != null) {
|
||||
// Aggiorna il label dell'app
|
||||
//Aggiorna il label dell'app
|
||||
model.value[1].label = selectedApp.fe_name;
|
||||
// Inizializza l'array degli item come vuoto
|
||||
//Inizializza il menu principale
|
||||
model.value[1].items = [];
|
||||
|
||||
// Se ci sono scenari disponibili, aggiungili come sottovoci
|
||||
//Se ci sono scenari disponibili, processali
|
||||
if (selectedApp.available_scenarios.length > 0) {
|
||||
const groupedScenarios = {};
|
||||
|
||||
//Raggruppa gli scenari per categoria (solo se type non è null)
|
||||
selectedApp.available_scenarios.forEach(app => {
|
||||
let scenarioItem = {
|
||||
label: app.label,
|
||||
icon: 'pi pi-fw pi-wrench',
|
||||
items: [], // Sub-items per ogni scenario
|
||||
command: () => {
|
||||
route.push({ path: `/scenario/exec/${app.scenario_id}` });
|
||||
if (app.type) {
|
||||
const type = app.type;
|
||||
if (!groupedScenarios[type]) {
|
||||
groupedScenarios[type] = [];
|
||||
}
|
||||
};
|
||||
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];
|
||||
|
||||
// Aggiungi la sottovoce "Execution List"
|
||||
scenarioItem.items.push({
|
||||
label: 'Execution List',
|
||||
icon: 'pi pi-fw pi-list',
|
||||
to: '/executions/filter',
|
||||
command: () => {
|
||||
// Salva il nome dello scenario nello store
|
||||
userPrefStore.setSelectedScenario(app.label);
|
||||
}
|
||||
});
|
||||
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 lo scenario alla lista principale
|
||||
model.value[1].items.push(scenarioItem);
|
||||
scenarios.forEach(app => {
|
||||
typeItem.items.push(createScenarioItem(app));
|
||||
});
|
||||
|
||||
model.value[1].items.push(typeItem);
|
||||
}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
|
||||
model.value[1].items.push({
|
||||
label: 'Rev Eng Code',
|
||||
icon: 'pi pi-fw pi-cog',
|
||||
command: () => {
|
||||
route.push({ path: '/app-browser' });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Aggiungi "Rev Eng Code" alla fine della lista
|
||||
model.value[1].items.push({
|
||||
label: 'Rev Eng Code',
|
||||
icon: 'pi pi-fw pi-wrench',
|
||||
command: () => {
|
||||
route.push({ path: '/app-browser' });
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
// Se selectedApp è nullo, svuota gli item
|
||||
//Se selectedApp è nullo, svuota il menu
|
||||
model.value[1].label = '';
|
||||
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