Drag and drop files between folders
This commit is contained in:
+16
-2
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user