wip
This commit is contained in:
parent
7823be6481
commit
e99b2745bd
8 changed files with 147 additions and 894 deletions
|
@ -9,7 +9,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
|
||||
if (filesContainer && gridViewBtn && listViewBtn) {
|
||||
// Set initial view based on saved preference
|
||||
const savedView = localStorage.getItem('view_preference') || 'grid';
|
||||
const savedView = localStorage.getItem('view_mode') || 'grid';
|
||||
filesContainer.className = `files-container ${savedView}-view`;
|
||||
|
||||
// Highlight the correct button
|
||||
|
@ -26,18 +26,14 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
filesContainer.className = 'files-container grid-view';
|
||||
gridViewBtn.classList.add('active');
|
||||
listViewBtn.classList.remove('active');
|
||||
|
||||
// Save preference
|
||||
localStorage.setItem('view_preference', 'grid');
|
||||
localStorage.setItem('view_mode', 'grid');
|
||||
});
|
||||
|
||||
listViewBtn.addEventListener('click', function () {
|
||||
filesContainer.className = 'files-container list-view';
|
||||
listViewBtn.classList.add('active');
|
||||
gridViewBtn.classList.remove('active');
|
||||
|
||||
// Save preference
|
||||
localStorage.setItem('view_preference', 'list');
|
||||
localStorage.setItem('view_mode', 'list');
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -281,6 +277,71 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
deleteModal.classList.remove('active');
|
||||
});
|
||||
}
|
||||
|
||||
// File/folder action buttons
|
||||
const setupItemActions = () => {
|
||||
// Edit/rename buttons
|
||||
document.querySelectorAll('.action-btn.edit').forEach(btn => {
|
||||
btn.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
const itemElement = this.closest('.folder-item, .file-item');
|
||||
const itemId = itemElement.dataset.id;
|
||||
const itemName = itemElement.querySelector('.item-name').textContent;
|
||||
const isFolder = itemElement.classList.contains('folder-item');
|
||||
|
||||
// Set values in rename modal
|
||||
const renameModal = document.getElementById('rename-modal');
|
||||
const newNameInput = document.getElementById('new-name');
|
||||
const itemIdInput = document.getElementById('item-id');
|
||||
const itemTypeInput = document.getElementById('item-type');
|
||||
|
||||
if (renameModal && newNameInput && itemIdInput && itemTypeInput) {
|
||||
newNameInput.value = itemName;
|
||||
itemIdInput.value = itemId;
|
||||
itemTypeInput.value = isFolder ? 'folder' : 'file';
|
||||
|
||||
// Show modal
|
||||
renameModal.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Delete buttons
|
||||
document.querySelectorAll('.action-btn.delete').forEach(btn => {
|
||||
btn.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
const itemElement = this.closest('.folder-item, .file-item');
|
||||
const itemId = itemElement.dataset.id;
|
||||
const isFolder = itemElement.classList.contains('folder-item');
|
||||
|
||||
// Set values in delete modal
|
||||
const deleteModal = document.getElementById('delete-modal');
|
||||
const deleteItemIdInput = document.getElementById('delete-item-id');
|
||||
const deleteItemTypeInput = document.getElementById('delete-item-type');
|
||||
|
||||
if (deleteModal && deleteItemIdInput && deleteItemTypeInput) {
|
||||
deleteItemIdInput.value = itemId;
|
||||
deleteItemTypeInput.value = isFolder ? 'folder' : 'file';
|
||||
|
||||
// Update form action
|
||||
const deleteForm = document.getElementById('delete-form');
|
||||
if (deleteForm) {
|
||||
deleteForm.action = `/files/delete/${itemId}`;
|
||||
}
|
||||
|
||||
// Show modal
|
||||
deleteModal.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Initialize item actions
|
||||
setupItemActions();
|
||||
});
|
||||
|
||||
// Browser-specific functionality
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue