diff --git a/components/collections/addFolder.vue b/components/collections/addFolder.vue index e79c735bd..090b0b73e 100644 --- a/components/collections/addFolder.vue +++ b/components/collections/addFolder.vue @@ -4,7 +4,8 @@
- + +
@@ -33,6 +35,7 @@ import modal from "../../components/modal"; export default { props: { show: Boolean, + editingFolder: Object, }, components: { modal, @@ -45,6 +48,12 @@ export default { }, } }, + watch: { + show() { + if (!this.editingFolder.folderIndex); + this.newFolder = Object.assign({}, this.editingFolder); + }, + }, methods: { addNewFolder() { const newFolder = Object.assign({}, this.newFolder); @@ -54,6 +63,14 @@ export default { requests: [], }; }, + saveFolder() { + const savedFolder = Object.assign({}, this.newFolder); + this.$emit('saved-folder', savedFolder); + this.newFolder = { + name: '', + requests: [], + }; + }, hideModel() { this.$emit('hide-model'); }, diff --git a/components/collections/collection.vue b/components/collections/collection.vue index 3cec68711..6db07846b 100644 --- a/components/collections/collection.vue +++ b/components/collections/collection.vue @@ -3,7 +3,10 @@ + v-on:hide-model='toggleModal' + v-bind:editing-folder="selectedFolder" + v-on:saved-folder="savedFolder" + >
@@ -20,7 +23,12 @@
@@ -80,6 +88,7 @@ export default { return { showChildren: false, showModal: false, + selectedFolder: {}, }; }, methods: { @@ -108,6 +117,16 @@ export default { collectionIndex: this.collectionIndex, }); }, + editFolder(payload) { + const { folder, collectionIndex, folderIndex } = payload; + this.selectedFolder = Object.assign({ collectionIndex, folderIndex }, folder); + this.showModal = true; + }, + savedFolder(savedFolder) { + this.$store.commit('postwoman/saveFolder', { savedFolder }); + this.showModal = false; + this.selectedFolder = {}; + }, } }; \ No newline at end of file diff --git a/components/collections/folder.vue b/components/collections/folder.vue index 36d88ea56..35df7071e 100644 --- a/components/collections/folder.vue +++ b/components/collections/folder.vue @@ -4,6 +4,7 @@ arrow_right arrow_drop_down
{{folder.name}}
+
@@ -72,6 +73,13 @@ export default { folderIndex: this.folderIndex, }); }, + editFolder() { + this.$emit('edit-folder', { + collectionIndex: this.collectionIndex, + folderIndex: this.folderIndex, + folder: this.folder, + }); + }, } }; \ No newline at end of file diff --git a/store/postwoman.js b/store/postwoman.js index c8e91cb1f..d14e6cf9b 100644 --- a/store/postwoman.js +++ b/store/postwoman.js @@ -97,10 +97,14 @@ export const mutations = { removeFolder (state, payload) { const { collectionIndex, folderIndex } = payload; - console.log(collectionIndex) state.collections[collectionIndex].folders.splice(folderIndex, 1) }, + saveFolder (state, payload) { + const { savedFolder } = payload; + state.collections[savedFolder.collectionIndex].folders[savedFolder.folderIndex] = savedFolder; + }, + addRequest (state, payload) { const { collectionIndex, folderIndex, request } = payload; state.collections[collectionIndex].folders[folderIndex].push(request);