From 672cfbee110864166b72853b3a68029a90ebb623 Mon Sep 17 00:00:00 2001 From: 409 <409dev@protonmail.com> Date: Tue, 15 Jul 2025 16:20:47 +0200 Subject: [PATCH] directory list context menu --- frontend/components/DirectoryEntry.vue | 16 +++++++++-- .../components/DirectoryListContextMenu.vue | 28 +++++++++++++++++++ .../actions/CreateDirectoryDialog.vue | 6 ++-- frontend/layouts/default.vue | 2 +- frontend/lib/api/warrens.ts | 7 +++-- frontend/pages/warrens/[...path].vue | 6 ++-- frontend/stores/index.ts | 11 ++++++++ 7 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 frontend/components/DirectoryListContextMenu.vue diff --git a/frontend/components/DirectoryEntry.vue b/frontend/components/DirectoryEntry.vue index fd51771..59083f7 100644 --- a/frontend/components/DirectoryEntry.vue +++ b/frontend/components/DirectoryEntry.vue @@ -18,11 +18,11 @@ const { entry, disabled } = defineProps<{ const deleting = ref(false); -async function submitDelete() { +async function submitDelete(force: boolean = false) { deleting.value = true; if (entry.fileType === 'directory') { - await deleteWarrenDirectory(warrenRoute.value, entry.name); + await deleteWarrenDirectory(warrenRoute.value, entry.name, force); } else { await deleteWarrenFile(warrenRoute.value, entry.name); } @@ -56,10 +56,20 @@ async function submitDelete() { - + Delete + + + Force delete + diff --git a/frontend/components/DirectoryListContextMenu.vue b/frontend/components/DirectoryListContextMenu.vue new file mode 100644 index 0000000..90b99b4 --- /dev/null +++ b/frontend/components/DirectoryListContextMenu.vue @@ -0,0 +1,28 @@ + + + diff --git a/frontend/components/actions/CreateDirectoryDialog.vue b/frontend/components/actions/CreateDirectoryDialog.vue index 124b1c5..560c394 100644 --- a/frontend/components/actions/CreateDirectoryDialog.vue +++ b/frontend/components/actions/CreateDirectoryDialog.vue @@ -11,9 +11,9 @@ import { import { createDirectory } from '~/lib/api/warrens'; const warrenRoute = useWarrenRoute(); +const dialog = useCreateDirectoryDialog(); const creating = ref(false); -const open = ref(false); const directoryName = ref(''); async function submit() { @@ -28,13 +28,13 @@ async function submit() { if (success) { directoryName.value = ''; - open.value = false; + dialog.open = false; } }