From 4846331eaf263b2f1d3726b7af141ca9849f7d94 Mon Sep 17 00:00:00 2001 From: Florinda Date: Mon, 10 Mar 2025 12:12:11 +0100 Subject: [PATCH 1/2] filters exec list --- src/service/ScenarioService.js | 18 +- src/stores/ScenarioExecutionStore.js | 84 ++++++--- src/views/pages/ScenarioExecList.vue | 267 ++++++++++++--------------- 3 files changed, 199 insertions(+), 170 deletions(-) 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/views/pages/ScenarioExecList.vue b/src/views/pages/ScenarioExecList.vue index 0542ada..e0bdab2 100644 --- a/src/views/pages/ScenarioExecList.vue +++ b/src/views/pages/ScenarioExecList.vue @@ -3,55 +3,46 @@
- +

Executions List

- - - + tableStyle="min-width: 70rem" + @page="onPage" + @sort="onSort" + removableSort> + - + + +