Refactoring interface web : optimisation layout colonnes et zone upload

- Fusion upload + tree en colonnes unifiées avec header unique
  - Déplacement bannière conflits en haut pour séparer les colonnes
  - Infos fichier condensées sur 1 ligne avec bouton icône à droite
  - Drop zone remplacée par tree après upload (gain d'espace ~60%)
  - Support drag & drop sur toute la colonne même avec fichier chargé
  - Styles optimisés : champ recherche intégré, bouton circulaire compact
This commit is contained in:
2026-01-12 05:29:20 +01:00
parent bd6d321ed7
commit afac7042a8
6 changed files with 350 additions and 269 deletions

View File

@@ -115,18 +115,24 @@ class FuZipApp {
* @param {string|null} fileNameText - Nom du fichier à afficher (optionnel)
*/
displayUploadInfo(side, stats, fileNameText = null) {
const uploadInfo = document.getElementById(`upload-info-${side}`);
const panelInfo = document.getElementById(`panel-info-${side}`);
const fileName = document.getElementById(`file-name-${side}`);
const fileSize = document.getElementById(`file-size-${side}`);
const fileCount = document.getElementById(`file-count-${side}`);
const panel = document.getElementById(`upload-panel-${side}`);
const column = document.getElementById(`column-${side}`);
const treePanel = document.getElementById(`tree-panel-${side}`);
if (panel) {
panel.classList.add('success');
panel.classList.add('success', 'compact');
}
if (uploadInfo) {
uploadInfo.classList.remove('hidden');
if (column) {
column.classList.add('success');
}
if (panelInfo) {
panelInfo.classList.remove('hidden');
}
if (fileName && fileNameText) {
@@ -140,6 +146,11 @@ class FuZipApp {
if (fileSize && stats.total_size !== undefined) {
fileSize.textContent = this.formatBytes(stats.total_size);
}
// Affiche le tree-panel
if (treePanel) {
treePanel.classList.remove('hidden');
}
}
/**