window.onload = function() { // Breadcrumb navigation const breadcrumb = document.getElementById('breadcrumb'); const path = window.location.pathname; const pathParts = path.split('/').filter(part => part); let breadcrumbPath = '/'; breadcrumb.innerHTML = ''; pathParts.forEach((part, index) => { breadcrumbPath += part + '/'; let displayPart = transformPart(part); if (index === pathParts.length - 1) { breadcrumb.innerHTML += ``; } else { breadcrumb.innerHTML += ``; } }); // Add icons to files and directories document.querySelectorAll('#list tbody tr').forEach(row => { const nameCell = row.querySelector('td:first-child'); // Adjusted selector if (!nameCell) return; // Skip if no nameCell found const nameLink = nameCell.querySelector('a'); if (nameLink) { const icon = document.createElement('i'); icon.classList.add('file-icon'); if (nameLink.href.endsWith('/')) { icon.classList.add('fas', 'fa-folder'); nameLink.textContent = transformPart(nameLink.textContent); } else if (nameLink.href.match(/\.(jpg|jpeg|png|gif)$/i)) { icon.classList.add('fas', 'fa-file-image'); } else if (nameLink.href.match(/\.(pdf)$/i)) { icon.classList.add('fas', 'fa-file-pdf'); } else if (nameLink.href.match(/\.(zip|rar|7z)$/i)) { icon.classList.add('fas', 'fa-file-archive'); } else if (nameLink.href.match(/\.(txt|log|csv)$/i)) { icon.classList.add('fas', 'fa-file-alt'); } else { icon.classList.add('fas', 'fa-file'); // Default icon for files not matched by other patterns } nameCell.insertBefore(icon, nameLink); } }); // Change "Parent directory" text to "../" document.querySelectorAll('#list tbody tr td a').forEach(link => { if (link.textContent.trim() === 'Parent directory/') { link.textContent = '../'; } }); // Function to transform directory names function transformPart(part) { // Capitalize "RPIPLC", "RPI" or "UPS" let transformedPart = part.replace(/^(rpiplc|rpi|ups)/i, match => match.toUpperCase()); // Capitalize first letter and any letter after "_" transformedPart = transformedPart.replace(/(^|_)(\w)/g, (match, p1, p2) => p1 + p2.toUpperCase()); return transformedPart; } };