Drag and drop files between folders

This commit is contained in:
2026-05-22 20:08:09 +02:00
parent a3e4a08281
commit 88eebf6944
5 changed files with 85 additions and 7 deletions
+16 -2
View File
@@ -18,8 +18,8 @@
<button :class="{active: view === 'prefs'}" @click="view = 'prefs'"> Preferences</button>
<button v-if="isAdmin" :class="{active: view === 'admin'}" @click="view = 'admin'">👤 Admin</button>
</div>
<FileTree v-if="view === 'files'" :files="filteredFiles" :selected="currentFile" @select="openFile" @delete="deleteItem" />
<FileTree v-if="view === 'shared'" :files="sharedFiles" :selected="currentFile" @select="openFile" @delete="deleteItem" />
<FileTree v-if="view === 'files'" :files="filteredFiles" :selected="currentFile" @select="openFile" @delete="deleteItem" @move="moveFile" />
<FileTree v-if="view === 'shared'" :files="sharedFiles" :selected="currentFile" @select="openFile" @delete="deleteItem" @move="moveFile" />
</aside>
<main class="editor-area" v-if="view === 'files' || view === 'shared'">
<div class="toolbar">
@@ -361,6 +361,20 @@ async function deleteItem(item) {
await loadFiles()
}
async function moveFile({ from, to }) {
const filename = from.split('/').pop()
const newPath = to + '/' + filename
try {
await api('/api/files/move', { from, to: newPath })
if (currentFile.value === from) {
currentFile.value = newPath
}
await loadFiles()
} catch (e) {
alert('Move failed')
}
}
// ─── Shared ──────────────────────────────────────────────────────────────────
async function loadShared() {