diff --git a/src/layout/AppMenu.vue b/src/layout/AppMenu.vue
index af33bfe..ffa2092 100644
--- a/src/layout/AppMenu.vue
+++ b/src/layout/AppMenu.vue
@@ -98,7 +98,7 @@ function updateApplicationsMenu() {
}
//Funzione per creare un item scenario con Execution List
-function createScenarioItem(app) {
+/*function createScenarioItem(app) {
return {
label: app.label,
icon: 'pi pi-fw pi-wrench',
@@ -116,6 +116,38 @@ function createScenarioItem(app) {
route.push({ path: `/scenario/exec/${app.scenario_id}` });
}
};
+}*/
+
+function createScenarioItem(app) {
+
+ if(app.associate_exec_list === 'Y'){
+ 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}` });
+ }
+ };
+
+ }else{
+ return {
+ label: app.label,
+ icon: 'pi pi-fw pi-wrench',
+ command: () => {
+ route.push({ path: `/scenario/exec/${app.scenario_id}` });
+ }
+ };
+ }
}
diff --git a/src/service/ScenarioService.js b/src/service/ScenarioService.js
index 9b05834..aeb5bc7 100644
--- a/src/service/ScenarioService.js
+++ b/src/service/ScenarioService.js
@@ -17,10 +17,22 @@ export const ScenarioService = {
return axios.get('/scenariosCross')
},
- getExecScenariosByUser() {
- return axios.get('/scenariosByUser')
+
+ // getExecScenariosByUser(page = 0, size = 10) {
+ // return axios.get('/executions', {
+ // params: {
+ // page: page,
+ // size: size }
+ // });
+ // }
- },
+ getExecScenariosByUser(page = 0, size = 10, filters = {}, sortField, sortOrder) {
+ // Filtri potrebbero essere vuoti, quindi rimuoviamoli se non necessari
+ const requestBody = { page, size, ...filters, sortField, sortOrder };
+ return axios.post('/executions', requestBody);
+ }
+
+ ,
getScenariosForRE(){
return axios.get('/getScenariosForRE')
},
diff --git a/src/stores/ScenarioExecutionStore.js b/src/stores/ScenarioExecutionStore.js
index c050058..759aba4 100644
--- a/src/stores/ScenarioExecutionStore.js
+++ b/src/stores/ScenarioExecutionStore.js
@@ -3,34 +3,76 @@ import { computed, ref } from 'vue';
import { ScenarioService } from '../service/ScenarioService';
import { LoadingStore } from './LoadingStore';
-
export const ScenarioExecutionStore = defineStore('scenario_execution_store', () => {
+ const lstScenarioExecution = ref([]);
+ const selectedExecScenario = ref(null);
+ const loadingStore = LoadingStore();
- const lstScenarioExecution = ref([])
- const selectedExecScenario = ref(null)
- const loadingStore = LoadingStore()
+ const totalRecords = ref(0); // Numero totale di record
+ const currentPage = ref(0); // Pagina corrente
+ const pageSize = ref(10); // Numero di record per pagina
+ const filters = ref({}); // Oggetto per memorizzare i filtri
-
- async function fetchScenariosExecution() {
+ // Funzione per recuperare le esecuzioni con filtri e paginazione
+ async function fetchScenariosExecution(page = 0, size = 10, filters, sortField, sortOrder) {
loadingStore.scenario_loading = true;
- await ScenarioService.getExecScenariosByUser().then(resp => {
- lstScenarioExecution.value = resp.data;
+ try {
+ console.log("Recupero delle esecuzioni con filtri:", page, size, filters, sortField, sortOrder);
+ const resp = await ScenarioService.getExecScenariosByUser(page, size, filters, sortField, sortOrder); // Passiamo anche i filtri
+ lstScenarioExecution.value = resp.data.content;
+ totalRecords.value = resp.data.totalElements;
+ currentPage.value = page;
+ pageSize.value = size;
+ } catch (error) {
+ console.error("Errore nel recupero delle esecuzioni:", error);
+ } finally {
loadingStore.scenario_loading = false;
- });
-
+ }
}
+
const scenariosExecution = computed(() => {
- return lstScenarioExecution.value
- })
+ return lstScenarioExecution.value;
+ });
const getSelectedExecScenario = computed(() => {
- return selectedExecScenario.value
- })
+ return selectedExecScenario.value;
+ });
- async function setSelectedExecScenario(execScenario){
- selectedExecScenario.value = execScenario
- console.log("selectedExecScenario", selectedExecScenario.value);
- }
-
- return { fetchScenariosExecution, selectedExecScenario, lstScenarioExecution, scenariosExecution, getSelectedExecScenario, setSelectedExecScenario}
- })
\ No newline at end of file
+ const getCurrentPage = computed(() => {
+ return currentPage.value;
+ });
+
+ const getPageSize = computed(() => {
+ return pageSize.value;
+ });
+
+ const getTotalRecords = computed(() => {
+ return totalRecords.value;
+ });
+
+ const setSelectedExecScenario = (execScenario) => {
+ selectedExecScenario.value = execScenario;
+ };
+
+ // Funzione per aggiornare i filtri
+ const updateFilters = (newFilters) => {
+ console.log("Nuovi filtri:", newFilters);
+ filters.value = newFilters;
+ filters.value = encodeURIComponent(JSON.stringify(newFilters));
+ fetchScenariosExecution(currentPage.value, pageSize.value, filters.value); // Ricarica con i nuovi filtri
+ };
+
+ return {
+ getCurrentPage,
+ getPageSize,
+ getTotalRecords,
+ fetchScenariosExecution,
+ selectedExecScenario,
+ lstScenarioExecution,
+ scenariosExecution,
+ getSelectedExecScenario,
+ setSelectedExecScenario,
+ updateFilters, // Aggiunto per aggiornare i filtri
+ filters // Rende disponibile i filtri come parte dello store
+ };
+});
diff --git a/src/stores/ScenarioStore.js b/src/stores/ScenarioStore.js
index 44d2565..3c70796 100644
--- a/src/stores/ScenarioStore.js
+++ b/src/stores/ScenarioStore.js
@@ -96,6 +96,10 @@ export const ScenarioStore = defineStore('scenario_store', () => {
return filteredScenario
})
+ function setFilterString (value) {
+ filterString.value = value
+ }
+
function resetStore() {
projectScenarios.value = []
globalScenarios.value = []
@@ -120,6 +124,7 @@ export const ScenarioStore = defineStore('scenario_store', () => {
globalScenarios,
fetchScenariosForRE,
scenariosForRE,
- resetStore
+ resetStore,
+ setFilterString
}
})
\ No newline at end of file
diff --git a/src/views/pages/ScenarioExecList.vue b/src/views/pages/ScenarioExecList.vue
index 0542ada..93ced59 100644
--- a/src/views/pages/ScenarioExecList.vue
+++ b/src/views/pages/ScenarioExecList.vue
@@ -3,55 +3,46 @@