Update downloadFile and resetStore
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { computed, ref } from 'vue';
|
||||
import { ScenarioService } from '../service/ScenarioService';
|
||||
import { ScenarioExecutionService } from '../service/ScenarioExecutionService';
|
||||
import { LoadingStore } from './LoadingStore';
|
||||
|
||||
export const ScenarioExecutionStore = defineStore('scenario_execution_store', () => {
|
||||
@@ -8,23 +8,53 @@ export const ScenarioExecutionStore = defineStore('scenario_execution_store', ()
|
||||
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
|
||||
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
|
||||
|
||||
// Funzione per recuperare le esecuzioni con filtri e paginazione
|
||||
async function fetchScenariosExecution(page = 0, size = 10, filters, sortField, sortOrder) {
|
||||
loadingStore.scenario_loading = true;
|
||||
try {
|
||||
console.log("Fetching executions with filters:", page, size, filters, sortField, sortOrder);
|
||||
const resp = await ScenarioService.getExecScenariosByUser(page, size, filters, sortField, sortOrder); // Passiamo anche i filtri
|
||||
console.log('Fetching executions with filters:', page, size, filters, sortField, sortOrder);
|
||||
const resp = await ScenarioExecutionService.getExecScenariosByUser(page, size, filters, sortField, sortOrder);
|
||||
lstScenarioExecution.value = resp.data.content;
|
||||
totalRecords.value = resp.data.totalElements;
|
||||
currentPage.value = page;
|
||||
pageSize.value = size;
|
||||
} catch (error) {
|
||||
console.error("Error fetching executions:", error);
|
||||
console.error('Error fetching executions:', error);
|
||||
} finally {
|
||||
loadingStore.scenario_loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function downloadFile(filePath, executionId) {
|
||||
loadingStore.scenario_loading = true;
|
||||
try {
|
||||
const response = await ScenarioExecutionService.downloadFile(filePath, executionId);
|
||||
|
||||
// Crea un URL per il blob e avvia il download
|
||||
const url = window.URL.createObjectURL(new Blob([response.data]));
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
|
||||
// Estrae il nome del file dal filePath o usa un nome di default
|
||||
const fileName = filePath.split('/').pop() || `file_${executionId}`;
|
||||
link.setAttribute('download', fileName);
|
||||
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
|
||||
// Cleanup
|
||||
link.remove();
|
||||
window.URL.revokeObjectURL(url);
|
||||
|
||||
return response;
|
||||
} catch (error) {
|
||||
console.error('Error downloading file:', error);
|
||||
throw error;
|
||||
} finally {
|
||||
loadingStore.scenario_loading = false;
|
||||
}
|
||||
@@ -56,10 +86,20 @@ export const ScenarioExecutionStore = defineStore('scenario_execution_store', ()
|
||||
|
||||
// Funzione per aggiornare i filtri
|
||||
const updateFilters = (newFilters) => {
|
||||
console.log("New filters:", newFilters);
|
||||
console.log('New filters:', newFilters);
|
||||
filters.value = newFilters;
|
||||
filters.value = encodeURIComponent(JSON.stringify(newFilters));
|
||||
fetchScenariosExecution(currentPage.value, pageSize.value, filters.value); // Ricarica con i nuovi filtri
|
||||
fetchScenariosExecution(currentPage.value, pageSize.value, filters.value); // Ricarica con i nuovi filtri
|
||||
};
|
||||
|
||||
// Funzione per resettare lo store
|
||||
const resetStore = () => {
|
||||
lstScenarioExecution.value = [];
|
||||
selectedExecScenario.value = null;
|
||||
totalRecords.value = 0;
|
||||
currentPage.value = 0;
|
||||
pageSize.value = 10;
|
||||
filters.value = {};
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -67,12 +107,14 @@ export const ScenarioExecutionStore = defineStore('scenario_execution_store', ()
|
||||
getPageSize,
|
||||
getTotalRecords,
|
||||
fetchScenariosExecution,
|
||||
downloadFile,
|
||||
selectedExecScenario,
|
||||
lstScenarioExecution,
|
||||
scenariosExecution,
|
||||
getSelectedExecScenario,
|
||||
setSelectedExecScenario,
|
||||
updateFilters, // Aggiunto per aggiornare i filtri
|
||||
filters // Rende disponibile i filtri come parte dello store
|
||||
updateFilters, // Aggiunto per aggiornare i filtri
|
||||
filters,
|
||||
resetStore // Rende disponibile i filtri come parte dello store
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user