diff --git a/script.js b/script.js index 27cb736..071e4b3 100644 --- a/script.js +++ b/script.js @@ -21,14 +21,24 @@ function initializeApp() { function setupEventListeners() { // Formulaire de développement - document.getElementById('url-form').addEventListener('submit', handleUrlFormSubmit); + const urlForm = document.getElementById('url-form'); + if (urlForm) { + urlForm.addEventListener('submit', handleUrlFormSubmit); + } // Gestion de la navigation arrière/avant du navigateur window.addEventListener('popstate', handlePopState); // Gestionnaires pour la prévisualisation - document.getElementById('close-preview').addEventListener('click', hidePreview); - document.getElementById('download-file').addEventListener('click', downloadCurrentFile); + const closePreview = document.getElementById('close-preview'); + if (closePreview) { + closePreview.addEventListener('click', hidePreview); + } + + const downloadFile = document.getElementById('download-file'); + if (downloadFile) { + downloadFile.addEventListener('click', downloadCurrentFile); + } } function handlePopState(event) { @@ -67,6 +77,8 @@ function handleUrlFormSubmit(event) { event.preventDefault(); const urlInput = document.getElementById('minio-url'); + if (!urlInput) return; + const minioUrl = urlInput.value.trim(); if (!minioUrl) { @@ -112,7 +124,9 @@ function updateConfigDisplay() { function showDevForm() { const devForm = document.getElementById('dev-form'); - devForm.style.display = 'block'; + if (devForm) { + devForm.style.display = 'block'; + } } @@ -120,31 +134,38 @@ function showError(message) { const errorSection = document.getElementById('error-section'); const errorMessage = document.getElementById('error-message'); - errorMessage.textContent = message; - errorSection.style.display = 'block'; + if (errorMessage) { + errorMessage.textContent = message; + } - // Masquer l'erreur après 5 secondes - setTimeout(() => { - errorSection.style.display = 'none'; - }, 5000); + if (errorSection) { + errorSection.style.display = 'block'; + + // Masquer l'erreur après 5 secondes + setTimeout(() => { + errorSection.style.display = 'none'; + }, 5000); + } } function showLoading(show = true) { const loading = document.getElementById('loading'); const table = document.getElementById('files-table'); - if (show) { - loading.style.display = 'block'; - table.style.display = 'none'; - } else { - loading.style.display = 'none'; - table.style.display = 'table'; + if (loading) { + loading.style.display = show ? 'block' : 'none'; + } + + if (table) { + table.style.display = show ? 'none' : 'table'; } } function updateCurrentPathDisplay() { const pathDisplay = document.getElementById('current-path'); - pathDisplay.textContent = '/' + config.currentPath; + if (pathDisplay) { + pathDisplay.textContent = '/' + config.currentPath; + } } async function loadBucketContents(path = '', pushToHistory = true) { @@ -292,6 +313,8 @@ function parseMinioXML(xmlText) { function displayContents(contents) { const tbody = document.getElementById('files-tbody'); + if (!tbody) return; + tbody.innerHTML = ''; // Bouton parent directory si on n'est pas à la racine @@ -314,7 +337,10 @@ function displayContents(contents) { }); // Afficher le tableau - document.getElementById('files-table').style.display = 'table'; + const filesTable = document.getElementById('files-table'); + if (filesTable) { + filesTable.style.display = 'table'; + } // Chercher et ouvrir automatiquement index.rst s'il existe autoOpenIndexRst(contents.files); @@ -473,6 +499,11 @@ function showPreview(fileUrl, fileName) { const previewTitle = document.getElementById('preview-title'); const previewContent = document.getElementById('preview-content'); + if (!previewSection || !previewTitle || !previewContent) { + console.error('Éléments de prévisualisation non trouvés'); + return; + } + previewTitle.textContent = `Prévisualisation: ${fileName}`; previewContent.innerHTML = '
Chargement...
'; @@ -585,7 +616,9 @@ function showUnsupportedPreview(fileName, container) { function hidePreview() { const previewSection = document.getElementById('preview-section'); - previewSection.style.display = 'none'; + if (previewSection) { + previewSection.style.display = 'none'; + } currentPreviewFile = { url: '', name: '' }; }