/** * Trash view loading and rendering logic */ async function loadTrashItems() { const elements = window.appElements; try { if (window.multiSelect) window.multiSelect.clear(); window.ui.resetFilesList(); // ensure also list visible & error hidden const _tt = window.i18n?.t ? window.i18n.t : (k) => k.split('.').pop(); elements.filesList.innerHTML = `
${_tt('files.name')}
${_tt('files.type')}
${_tt('trash.original_location')}
${_tt('trash.deleted_date')}
${_tt('trash.actions')}
`; window.ui.updateBreadcrumb(''); const trashItems = await window.fileOps.getTrashItems(); if (trashItems.length === 0) { window.ui.showError(`

${window.i18n ? window.i18n.t('trash.empty_state') : 'The trash is empty'}

`); return; } trashItems.forEach((item) => { addTrashItemToView(item); }); } catch (error) { console.error('Error loading trash items:', error); window.ui.showNotification('Error', 'Error loading trash items'); } } function addTrashItemToView(item) { const elements = window.appElements; const isFile = item.item_type === 'file'; const formattedDate = window.formatDateTime(item.trashed_at); let iconClass; let typeLabel; let iconSpecialClass = ''; if (!isFile) { iconClass = item.icon_class || 'fas fa-folder'; typeLabel = window.i18n ? window.i18n.t('files.file_types.folder') : 'Folder'; } else { iconClass = item.icon_class || (window.ui?.getIconClass ? window.ui.getIconClass(item.name) : 'fas fa-file'); iconSpecialClass = window.ui?.getIconSpecialClass ? window.ui.getIconSpecialClass(item.name) : ''; const cat = item.category || ''; typeLabel = cat ? window.i18n ? window.i18n.t(`files.file_types.${cat.toLowerCase()}`) || cat : cat : window.i18n ? window.i18n.t('files.file_types.document') : 'Document'; } const isFolder = !isFile; const iconWrapClass = isFolder ? 'file-icon folder-icon' : `file-icon ${iconSpecialClass}`.trim(); const listElement = document.createElement('div'); listElement.className = 'file-item trash-item'; listElement.dataset.trashId = item.id; listElement.dataset.originalId = item.original_id; listElement.dataset.itemType = item.item_type; listElement.innerHTML = `
${escapeHtml(item.name)}
${escapeHtml(typeLabel)}
${escapeHtml(item.original_path || '--')}
${escapeHtml(formattedDate)}
`; listElement.querySelector('.btn-restore').addEventListener('click', async (e) => { e.stopPropagation(); if (await window.fileOps.restoreFromTrash(item.id)) { window.loadTrashItems(); } }); listElement.querySelector('.btn-delete').addEventListener('click', async (e) => { e.stopPropagation(); if (await window.fileOps.deletePermanently(item.id)) { window.loadTrashItems(); } }); elements.filesList.appendChild(listElement); } window.loadTrashItems = loadTrashItems;