diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 92514bf15..b1d07a87d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -14,7 +14,7 @@ "filesize": "^10.1.0", "marked": "^9.1.2", "moment": "^2.29.4", - "pankow": "^1.1.1", + "pankow": "^1.1.3", "primeicons": "^6.0.1", "primevue": "^3.37.0", "superagent": "^8.1.2", @@ -1372,9 +1372,9 @@ } }, "node_modules/pankow": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pankow/-/pankow-1.1.1.tgz", - "integrity": "sha512-0ctuE7wzIwKFEhtcAtaq2l0XcdOclDVu6AtaI4CgE5GFG+Eowcav12JUpa6i7Dj/U/svSXKj/gf5ihtipRw8tQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pankow/-/pankow-1.1.3.tgz", + "integrity": "sha512-bKMZvCTqx17ZESjXfpyr6+Tj1XWdt8QUpCfEdhvwWHJyFY5+Tw+T2/gWT9MKcntQjOJxlGUc2XgyVZy1/lRdHw==", "dependencies": { "filesize": "^10.1.0", "monaco-editor": "^0.44.0", diff --git a/frontend/package.json b/frontend/package.json index 990a6720f..824686696 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,7 +15,7 @@ "filesize": "^10.1.0", "marked": "^9.1.2", "moment": "^2.29.4", - "pankow": "^1.1.1", + "pankow": "^1.1.3", "primeicons": "^6.0.1", "primevue": "^3.37.0", "superagent": "^8.1.2", diff --git a/frontend/src/views/Home.vue b/frontend/src/views/Home.vue index a299596f1..680660d93 100644 --- a/frontend/src/views/Home.vue +++ b/frontend/src/views/Home.vue @@ -355,21 +355,39 @@ export default { async deleteHandler(files) { if (!files) return; - window.addEventListener('beforeunload', beforeUnloadListener, { capture: true }); - this.deleteInProgress = true; - - for (let i in files) { - try { - await this.directoryModel.remove(this.directoryModel.buildFilePath(this.cwd, files[i].name)); - } catch (e) { - console.error(`Failed to remove file ${files[i].name}:`, e); + function start_and_end(str) { + if (str.length > 100) { + return str.substr(0, 45) + ' ... ' + str.substr(str.length-45, str.length); } + return str; } - await this.loadCwd(); + this.$confirm.require({ + header: this.$t('filemanager.removeDialog.reallyDelete'), + message: start_and_end(files.map((f) => f.name).join(', ')), + icon: '', + acceptClass: 'p-button-danger', + accept: async () => { + window.addEventListener('beforeunload', beforeUnloadListener, { capture: true }); + this.deleteInProgress = true; + + for (let i in files) { + try { + await this.directoryModel.remove(this.directoryModel.buildFilePath(this.cwd, files[i].name)); + } catch (e) { + console.error(`Failed to remove file ${files[i].name}:`, e); + } + } + + await this.loadCwd(); + + this.$confirm.close(); + + window.removeEventListener('beforeunload', beforeUnloadListener, { capture: true }); + this.deleteInProgress = false; + } + }); - window.removeEventListener('beforeunload', beforeUnloadListener, { capture: true }); - this.deleteInProgress = false; }, async renameHandler(file, newName) { await this.directoryModel.rename(this.directoryModel.buildFilePath(this.cwd, file.name), sanitize(this.cwd + '/' + newName));