Skip to content

Commit d34c737

Browse files
committed
Base delete file view, not actually connected to anything
1 parent ff820f3 commit d34c737

File tree

3 files changed

+58
-3
lines changed

3 files changed

+58
-3
lines changed

resources/assets/scripts/components/server/components/filemanager/FileContextMenu.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
</div>
4242
</div>
4343
<div>
44-
<div class="context-row danger">
44+
<div class="context-row danger" v-on:click="openDeleteModal">
4545
<div class="icon">
4646
<Icon name="delete" class="h-4"/>
4747
</div>
@@ -77,6 +77,11 @@
7777
window.events.$emit('server:files:rename', this.object);
7878
this.$emit('close');
7979
},
80+
81+
openDeleteModal: function () {
82+
window.events.$emit('server:files:delete', this.object);
83+
this.$emit('close');
84+
}
8085
}
8186
});
8287
</script>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<template>
2+
<Modal :show="visible" v-on:close="visible = false">
3+
<div v-if="object">
4+
<h3 class="font-medium mb-6">Really delete {{ object.name }}?</h3>
5+
<p class="text-sm text-neutral-700">
6+
Deletion is a permanent operation: <strong>{{ object.name }}</strong><span v-if="object.folder">, as well as its contents,</span> will be removed immediately.
7+
</p>
8+
<div class="mt-8 text-right">
9+
<button class="btn btn-secondary btn-sm" v-on:click.prevent="visible = false">Cancel</button>
10+
<button class="btn btn-red btn-sm ml-2">Yes, Delete</button>
11+
</div>
12+
</div>
13+
</Modal>
14+
</template>
15+
16+
<script lang="ts">
17+
import Vue from 'vue';
18+
import Modal from '@/components/core/Modal.vue';
19+
import {DirectoryContentObject} from "@/api/server/types";
20+
21+
type DataStructure = {
22+
object: null | DirectoryContentObject,
23+
visible: boolean,
24+
};
25+
26+
export default Vue.extend({
27+
name: 'DeleteFileModal',
28+
components: {Modal},
29+
30+
data: function (): DataStructure {
31+
return {
32+
visible: false,
33+
object: null,
34+
};
35+
},
36+
37+
mounted: function () {
38+
window.events.$on('server:files:delete', (object: DirectoryContentObject) => {
39+
this.visible = true;
40+
this.object = object;
41+
});
42+
},
43+
44+
beforeDestroy: function () {
45+
window.events.$off('server:files:delete');
46+
},
47+
});
48+
</script>

resources/assets/scripts/components/server/subpages/FileManager.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
</div>
5050
</div>
5151
<CreateFolderModal v-on:close="listDirectory"/>
52-
<RenameModal v-on:close="listDirectory"/>
52+
<RenameModal/>
53+
<DeleteFileModal v-on:close="listDirectory"/>
5354
</div>
5455
</template>
5556

@@ -62,6 +63,7 @@
6263
import FolderRow from "@/components/server/components/filemanager/FolderRow.vue";
6364
import CreateFolderModal from '../components/filemanager/modals/CreateFolderModal.vue';
6465
import RenameModal from '../components/filemanager/modals/RenameModal.vue';
66+
import DeleteFileModal from '../components/filemanager/modals/DeleteFileModal.vue';
6567
import {DirectoryContentObject} from "@/api/server/types";
6668
6769
type DataStructure = {
@@ -75,7 +77,7 @@
7577
7678
export default Vue.extend({
7779
name: 'FileManager',
78-
components: {CreateFolderModal, FileRow, FolderRow, RenameModal},
80+
components: {CreateFolderModal, DeleteFileModal, FileRow, FolderRow, RenameModal},
7981
computed: {
8082
...mapState('server', ['server', 'credentials']),
8183
...mapState('socket', ['connected']),

0 commit comments

Comments
 (0)