Skip to content

Commit 2c73991

Browse files
committed
Add minimum code needed to open new file modal
1 parent d280a91 commit 2c73991

File tree

3 files changed

+57
-3
lines changed

3 files changed

+57
-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
@@ -27,7 +27,7 @@
2727
</div>
2828
</div>
2929
<div>
30-
<div class="context-row">
30+
<div class="context-row" v-on:click="openNewFileModal">
3131
<div class="icon">
3232
<Icon name="file-plus" class="h-4"/>
3333
</div>
@@ -73,6 +73,11 @@
7373
this.$emit('close');
7474
},
7575
76+
openNewFileModal: function () {
77+
window.events.$emit('server:files:open-new-file-modal');
78+
this.$emit('close');
79+
},
80+
7681
triggerAction: function (action: string) {
7782
this.$emit(`action:${action}`);
7883
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<template>
2+
<Modal :show="isVisible" v-on:close="isVisible = false" :dismissable="!isLoading">
3+
<MessageBox class="alert error mb-8" title="Error" :message="error" v-if="error"/>
4+
</Modal>
5+
</template>
6+
7+
<script lang="ts">
8+
import Vue from 'vue';
9+
import MessageBox from "@/components/MessageBox.vue";
10+
import Modal from "@/components/core/Modal.vue";
11+
import {ApplicationState} from '@/store/types';
12+
import {mapState} from "vuex";
13+
14+
export default Vue.extend({
15+
name: 'NewFileModal',
16+
17+
components: {MessageBox, Modal},
18+
19+
data: function (): { error: string | null, isVisible: boolean, isLoading: boolean } {
20+
return {
21+
error: null,
22+
isVisible: false,
23+
isLoading: false,
24+
};
25+
},
26+
27+
computed: mapState({
28+
fm: (state: ApplicationState) => state.server.fm,
29+
}),
30+
31+
mounted: function () {
32+
window.events.$on('server:files:open-new-file-modal', () => {
33+
this.isVisible = true;
34+
});
35+
},
36+
37+
methods: {
38+
submit: function () {
39+
40+
},
41+
}
42+
})
43+
</script>

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@
4848
<a href="#" class="block btn btn-secondary btn-sm" v-on:click.prevent="openNewFolderModal">New Folder</a>
4949
</div>
5050
<div>
51-
<a href="#" class="block btn btn-primary btn-sm">New File</a>
51+
<a href="#" class="block btn btn-primary btn-sm" v-on:click.prevent="openNewFileModal">New File</a>
5252
</div>
5353
</div>
5454
<CreateFolderModal v-on:created="directoryCreated"/>
55+
<NewFileModal/>
5556
</div>
5657
</template>
5758

@@ -64,6 +65,7 @@
6465
import CreateFolderModal from '../components/filemanager/modals/CreateFolderModal.vue';
6566
import DeleteFileModal from '../components/filemanager/modals/DeleteFileModal.vue';
6667
import {DirectoryContentObject} from "@/api/server/types";
68+
import NewFileModal from "@/components/server/components/filemanager/modals/NewFileModal.vue";
6769
6870
type DataStructure = {
6971
loading: boolean,
@@ -76,7 +78,7 @@
7678
7779
export default Vue.extend({
7880
name: 'FileManager',
79-
components: {CreateFolderModal, DeleteFileModal, FileRow},
81+
components: {CreateFolderModal, DeleteFileModal, FileRow, NewFileModal},
8082
8183
computed: {
8284
/**
@@ -178,6 +180,10 @@
178180
window.events.$emit('server:files:open-directory-modal');
179181
},
180182
183+
openNewFileModal: function () {
184+
window.events.$emit('server:files:open-new-file-modal');
185+
},
186+
181187
fileRowDeleted: function (file: DirectoryContentObject, directory: boolean) {
182188
if (directory) {
183189
this.directories = this.directories.filter(data => data !== file);

0 commit comments

Comments
 (0)