@@ -319,50 +319,6 @@ const getFileNamesInput = (zipData) => {
return files;
};
-// Funzione per scaricare il file
-const downloadFileInput = async (fileName) => {
- if (!zipInput.value) return;
-
- try {
- // Estrai il file dallo zip
- const fileContent = await zipInput.value.file(fileName).async('blob');
- const url = URL.createObjectURL(fileContent);
-
- // Crea un link per scaricare il file
- const a = document.createElement('a');
- a.href = url;
- a.download = fileName;
- document.body.appendChild(a);
- a.click();
- document.body.removeChild(a);
-
- URL.revokeObjectURL(url);
- } catch (error) {
- console.error(`Error downloading file "${fileName}":`, error);
- }
-};
-
-const downloadFileOutput = async (fileName) => {
- if (!zipOutput.value) return;
-
- try {
- // Estrai il file dallo zip
- const fileContent = await zipOutput.value.file(fileName).async('blob');
- const url = URL.createObjectURL(fileContent);
-
- // Crea un link per scaricare il file
- const a = document.createElement('a');
- a.href = url;
- a.download = fileName;
- document.body.appendChild(a);
- a.click();
- document.body.removeChild(a);
-
- URL.revokeObjectURL(url);
- } catch (error) {
- console.error(`Error downloading file "${fileName}":`, error);
- }
-};
const downloadFile = async (filePath) => {
try {
@@ -389,71 +345,34 @@ const downloadFile = async (filePath) => {
}
};
-const downloadFolderFromBase64 = async (base64String) => {
- try {
- // Decodifica la stringa base64 in un array di byte
- const binaryString = atob(base64String); // Decodifica base64 in una stringa binaria
- const byteArray = new Uint8Array(binaryString.length); // Crea un array di byte
- for (let i = 0; i < binaryString.length; i++) {
- byteArray[i] = binaryString.charCodeAt(i); // Popola l'array di byte
- }
+const downloadCodegenieFile = (base64String) => {
+ // Decodifica la stringa Base64
+ const binaryString = atob(base64String);
+ const binaryLength = binaryString.length;
+ const bytes = new Uint8Array(binaryLength);
- // Crea un oggetto JSZip per lavorare con il contenuto ZIP
- const zip = await JSZip.loadAsync(byteArray); // Carica direttamente l'array di byte
-
- // Estrai il primo nome della cartella presente nello ZIP
- let folderName = Object.keys(zip.files).find((file) => zip.files[file].dir); // Trova il primo file che è una cartella
-
- // Se non è stata trovata alcuna cartella, creiamo una cartella chiamata "folderToDownload"
- if (!folderName) {
- folderName = 'docOutput-' + execution_id.value;
- console.log(`No folders founded in the ZIP. Creating a new folder: "${folderName}".`);
- }
-
- // Crea un nuovo archivio ZIP in cui mettere i file della cartella
- const newZip = new JSZip();
-
- // Se una cartella esiste nello ZIP, estrai i file da essa, altrimenti crea una nuova cartella
- const folder = zip.folder(folderName);
- if (folder) {
- // Aggiungi ogni file della cartella al nuovo archivio ZIP
- const files = folder.files;
- for (const fileName in files) {
- const file = files[fileName];
-
- // Controlla se il file è valido (non nullo)
- if (file && file.async) {
- try {
- const fileContent = await file.async('blob'); // Estrai il contenuto del file
- newZip.file(fileName, fileContent);
- } catch (fileError) {
- console.error(`Error while extracting "${fileName}":`, fileError);
- }
- } else {
- console.warn(`"${fileName}" is invalid or cannot be elaborated`);
- }
- }
- } else {
- // Se la cartella non esiste, crea una cartella vuota con nome "folderToDownload"
- newZip.folder(folderName);
- }
-
- // Crea il nuovo file ZIP da scaricare
- const newZipContent = await newZip.generateAsync({ type: 'blob' });
- const url = URL.createObjectURL(newZipContent);
-
- // Crea un link per scaricare il file ZIP
- const a = document.createElement('a');
- a.href = url;
- a.download = `${folderName}.zip`; // Nome del file ZIP che contiene la cartella
- document.body.appendChild(a);
- a.click();
- document.body.removeChild(a);
-
- URL.revokeObjectURL(url);
- } catch (error) {
- console.error('Error while downloading folder:', error);
+ for (let i = 0; i < binaryLength; i++) {
+ bytes[i] = binaryString.charCodeAt(i);
}
+
+ // Creazione di un Blob dal file binario
+ const blob = new Blob([bytes], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' });
+
+ // Creazione di un URL per il Blob
+ const url = URL.createObjectURL(blob);
+
+ // Creazione di un elemento anchor per il download
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = 'sf_document-' + execution_id.value + '.docx';
+
+ // Simulazione di un click per scaricare il file
+ document.body.appendChild(link);
+ link.click();
+
+ // Pulizia del DOM
+ document.body.removeChild(link);
+ URL.revokeObjectURL(url);
};
async function updateRating(newRating) {