Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Python
/
Monsta-FTP-master
/
affichahe _expand_collpase_tableau
:
temp.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Fichiers et Versions</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <style> .version-visible { background-color: orange; /* Couleur pour les lignes rendues visibles */ } .version-visible-new { background-color: orange; animation: fadeHighlight 2s forwards; } @keyframes fadeHighlight { from { background-color: orange; } to { background-color: inherit; } } .ligne-hover:hover { background-color: rgb(33, 83, 130); /* Couleur de fond lors du survol */ } .table-row:hover { background-color: #f0f0f0; /* Couleur de survol pour toutes les lignes */ cursor: pointer; } /* Supprime le soulignement des liens */ a { text-decoration: none; } /* Style personnalisé pour les liens au survol */ a:hover { color: blue; /* Exemple : change la couleur au survol */ } </style> </head> <body> <div class="container mt-4"> <h2>Liste des fichiers et versions</h2> <table class="table table-bordered"> <thead> <tr> <th>Nom</th> <th>Nombre d'éléments</th> <th>Taille</th> <th>Date de création</th> <th>Action</th> </tr> </thead> <tbody> <?php $files = [ "file1.jpg" => [ ["file_name" => "file1.jpg", "size" => 12345, "creation_date" => "2025-01-01 10:00:00"], ["file_name" => "file1_v1.jpg", "size" => 12345, "creation_date" => "2025-01-02 10:00:00"], ], "file2.jpg" => [ ["file_name" => "file2.jpg", "size" => 54321, "creation_date" => "2025-01-01 12:00:00"], ], ]; foreach ($files as $originalFile => $versions): $fileId = md5($originalFile); $versionCount = count($versions); ?> <tr id="file-<?= $fileId ?>"> <td> <a href="#" data-bs-toggle="modal" data-bs-target="#fileModal" data-file="<?= $originalFile ?>"> <?= htmlspecialchars($originalFile) ?> </a> </td> <td><?= $versionCount ?></td> <td><?= number_format($versions[0]['size'], 0, ',', ' ') ?> octets</td> <td><?= htmlspecialchars($versions[0]['creation_date']) ?></td> <td> <?php if (count($versions) > 1): ?> <button class="btn btn-primary btn-sm toggle-version" data-file-id="<?= $fileId ?>"> Afficher versions </button> <?php endif; ?> </td> </tr> <?php foreach ($versions as $index => $version): ?> <?php if ($index > 0): ?> <tr class="version-row version-row-<?= $fileId ?> collapse"> <td> <a href="#" data-bs-toggle="modal" data-bs-target="#fileModal" data-file="<?= $version['file_name'] ?>"> <?= htmlspecialchars($version['file_name']) ?> </a> </td> <td></td> <td><?= number_format($version['size'], 0, ',', ' ') ?> octets</td> <td><?= htmlspecialchars($version['creation_date']) ?></td> <td></td> </tr> <?php endif; ?> <?php endforeach; ?> <?php endforeach; ?> </tbody> </table> <!-- Bouton global pour afficher/masquer toutes les versions --> <button id="toggleAllVersionsBtn" class="btn btn-secondary mt-3">Afficher toutes les versions</button> <!-- Modal --> <div class="modal fade" id="fileModal" tabindex="-1" aria-labelledby="fileModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="fileModalLabel">Fichier</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <p id="modalFileName">Fichier : </p> </div> </div> </div> </div> </div> <script> document.getElementById('toggleAllVersionsBtn').addEventListener('click', function () { const rows = document.querySelectorAll('.version-row'); const isVisible = Array.from(rows).some(row => row.classList.contains('show')); rows.forEach(row => { if (isVisible) { row.classList.remove('show', 'version-visible-new'); row.classList.add('collapse'); } else { row.classList.remove('collapse'); row.classList.add('show', 'version-visible-new'); } }); this.textContent = isVisible ? 'Afficher toutes les versions' : 'Cacher toutes les versions'; }); document.querySelectorAll('.toggle-version').forEach(button => { button.addEventListener('click', function () { const fileId = this.dataset.fileId; const rows = document.querySelectorAll('.version-row-' + fileId); const isVisible = Array.from(rows).some(row => row.classList.contains('show')); rows.forEach(row => { if (isVisible) { row.classList.remove('show', 'version-visible-new'); row.classList.add('collapse'); } else { row.classList.remove('collapse'); row.classList.add('show', 'version-visible-new'); } }); this.textContent = isVisible ? 'Afficher versions' : 'Cacher versions'; }); }); </script> </body> </html>