diff --git a/js/core/routes.js b/js/core/routes.js index 49cd4ca..c116ad6 100644 --- a/js/core/routes.js +++ b/js/core/routes.js @@ -197,8 +197,10 @@ async function start_timelapse(id,frequency,nbimages){ data: mydata }); - alert("data retrieval started:", response); + alert("Configuration de la caméra réussie"); + return response; } catch (error) { + alert("Erreur lors de la configuration de la caméra: " + error); throw error; } } @@ -216,9 +218,10 @@ async function stopCamera(id){ data: mydata }); - alert("Camera stopped succesfully :", response); + alert("La caméra a été arrêtée avec succès"); + return response; } catch (error) { - alert("Error stopping the camera :", error); + alert("Erreur lors de l'arrêt de la caméra : " + error); throw error; } } diff --git a/js/pages/index.js b/js/pages/index.js index f6298c0..8cfc2f7 100644 --- a/js/pages/index.js +++ b/js/pages/index.js @@ -37,8 +37,9 @@ function formatStatusWithColor(status) { colorClass = "status-idle"; break; case 3: - statusText = "En cours d'arrêt"; + statusText = "En cours d\'arrêt"; colorClass = "status-stopping"; + break; // Ajout du break manquant ici default: statusText = "Inconnu"; colorClass = "status-unknown"; @@ -149,6 +150,14 @@ function setupCarousel(global_project_list) { deleteButton.addEventListener('click', (event) => { event.stopPropagation(); const projectName = project.name; + const projectStatus = parseInt(project.status); + + // Vérifier si le projet est en cours de capture (statut 1) ou en cours d'arrêt (statut 3) + if (projectStatus === 1 || projectStatus === 3) { + alert(`Impossible de supprimer "${projectName}" car sa capture est ${projectStatus === 1 ? 'en cours' : 'en cours d\'arrêt'}.\nVeuillez d'abord arrêter la procédure de capture.`); + return; + } + document.getElementById('alertMessage').textContent = `Veux-tu vraiment supprimer le projet : ${projectName} ?`; document.getElementById('customAlert').style.display = 'block'; diff --git a/js/pages/projet_detail.js b/js/pages/projet_detail.js index 8067648..e28e6d7 100644 --- a/js/pages/projet_detail.js +++ b/js/pages/projet_detail.js @@ -85,10 +85,14 @@ document.addEventListener("DOMContentLoaded", async () => { const minutes = document.getElementById("minutes").value; const frequency = days * 1440 + hours * 60 + minutes; if(frequency >= 3) { - const nbrimages = document.getElementById("totalImages").value; - start_timelapse(projectId, frequency, nbrimages).then(() => { + const nbrimages = document.getElementById("totalImages").value; + try { + // Attendre que la requête API soit terminée avant de recharger la page + await start_timelapse(projectId, frequency, nbrimages); location.reload(); - }); + } catch (error) { + console.error("Erreur lors du démarrage du timelapse:", error); + } } else { alert("La fréquence doit être supérieure à 3 minutes !"); } @@ -98,8 +102,13 @@ document.addEventListener("DOMContentLoaded", async () => { document .getElementById("stop-camera") .addEventListener("click", async () => { - stopCamera(projectId); - location.reload(); + try { + // Attendre que la requête API soit terminée avant de recharger la page + await stopCamera(projectId); + location.reload(); + } catch (error) { + console.error("Erreur lors de l'arrêt de la caméra:", error); + } }); } }); @@ -379,24 +388,44 @@ async function generateViewMetric(projectId) { if (measurements != 404) { let samples; if (videoId != -1) { - currentVideoDatas = await getDataVideoFromApi(videoId); - samples = JSON.parse(currentVideoDatas[0]["measurement_ids"]); - if (currentVideoDatas[0].status != 0) { - videoPlaceHolder.innerHTML = ` - `; - } else { - videoPlaceHolder.innerHTML = `