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 = '
Home';
pathParts.forEach((part, index) => {
breadcrumbPath += part + '/';
let displayPart = transformPart(part);
if (index === pathParts.length - 1) {
breadcrumb.innerHTML += `${displayPart}`;
} else {
breadcrumb.innerHTML += `${displayPart}`;
}
});
// 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;
}
};