Add initial support for tracking current FM directory for creating a folder (and other stuff eventually)
This commit is contained in:
parent
767e466fd8
commit
be7f7d8da8
6 changed files with 80 additions and 6 deletions
|
@ -33,7 +33,7 @@
|
|||
</div>
|
||||
<div class="action">New File</div>
|
||||
</div>
|
||||
<div class="context-row">
|
||||
<div class="context-row" v-on:click="openFolderModal">
|
||||
<div class="icon">
|
||||
<Icon name="folder-plus" class="h-4"/>
|
||||
</div>
|
||||
|
@ -58,5 +58,12 @@
|
|||
export default Vue.extend({
|
||||
name: 'FileContextMenu',
|
||||
components: {Icon},
|
||||
|
||||
methods: {
|
||||
openFolderModal: function () {
|
||||
window.events.$emit('server:files:open-directory-modal');
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -10,7 +10,12 @@
|
|||
<div class="flex-1 text-right text-neutral-600">{{formatDate(file.modified)}}</div>
|
||||
<div class="flex-none w-1/6"></div>
|
||||
</div>
|
||||
<FileContextMenu class="context-menu" v-show="contextMenuVisible" ref="contextMenu"/>
|
||||
<FileContextMenu
|
||||
class="context-menu"
|
||||
v-show="contextMenuVisible"
|
||||
v-on:close="contextMenuVisible = false"
|
||||
ref="contextMenu"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<template>
|
||||
<Modal :show="visible" v-on:close="visible = false">
|
||||
<div>
|
||||
<h2 class="font-medium text-neutral-900 mb-6">{{ fm.currentDirectory }}</h2>
|
||||
</div>
|
||||
</Modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue';
|
||||
import Modal from '@/components/core/Modal.vue';
|
||||
import {mapState} from "vuex";
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'CreateFolderModal',
|
||||
components: {Modal},
|
||||
|
||||
computed: {
|
||||
...mapState('server', ['fm']),
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
visible: false,
|
||||
};
|
||||
},
|
||||
|
||||
mounted: function () {
|
||||
window.events.$on('server:files:open-directory-modal', () => {
|
||||
this.visible = true;
|
||||
});
|
||||
},
|
||||
});
|
||||
</script>
|
|
@ -42,12 +42,13 @@
|
|||
<div class="flex mt-6" v-if="!loading && !errorMessage">
|
||||
<div class="flex-1"></div>
|
||||
<div class="mr-4">
|
||||
<a href="#" class="block btn btn-secondary btn-sm">New Folder</a>
|
||||
<a href="#" class="block btn btn-secondary btn-sm" v-on:click.prevent="openNewFolderModal">New Folder</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#" class="block btn btn-primary btn-sm">New File</a>
|
||||
</div>
|
||||
</div>
|
||||
<CreateFolderModal/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -58,6 +59,7 @@
|
|||
import getDirectoryContents from "@/api/server/getDirectoryContents";
|
||||
import FileRow from "@/components/server/components/filemanager/FileRow.vue";
|
||||
import FolderRow from "@/components/server/components/filemanager/FolderRow.vue";
|
||||
import CreateFolderModal from '../components/filemanager/modals/CreateFolderModal.vue';
|
||||
|
||||
type DataStructure = {
|
||||
loading: boolean,
|
||||
|
@ -70,7 +72,7 @@
|
|||
|
||||
export default Vue.extend({
|
||||
name: 'FileManager',
|
||||
components: {FileRow, FolderRow},
|
||||
components: {CreateFolderModal, FileRow, FolderRow},
|
||||
computed: {
|
||||
...mapState('server', ['server', 'credentials']),
|
||||
...mapState('socket', ['connected']),
|
||||
|
@ -110,6 +112,8 @@
|
|||
* Watch the current directory setting and when it changes update the file listing.
|
||||
*/
|
||||
currentDirectory: function () {
|
||||
this.$store.dispatch('server/updateCurrentDirectory', this.currentDirectory);
|
||||
|
||||
this.listDirectory();
|
||||
},
|
||||
|
||||
|
@ -167,6 +171,10 @@
|
|||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
openNewFolderModal: function () {
|
||||
window.events.$emit('server:files:open-directory-modal');
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue