From e5b72c70721bc70b9be640883c4a887b1549d554 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Tue, 1 Oct 2019 16:20:23 -0600 Subject: [PATCH 01/11] Initial collections --- components/collections/addCollection.vue | 66 ++++++++++++++++ components/collections/addFolder.vue | 62 +++++++++++++++ components/collections/collection.vue | 99 ++++++++++++++++++++++++ components/collections/folder.vue | 61 +++++++++++++++ components/collections/index.vue | 73 +++++++++++++++++ components/collections/request.vue | 18 +++++ pages/index.vue | 14 +++- store/postwoman.js | 35 ++++++++- 8 files changed, 425 insertions(+), 3 deletions(-) create mode 100644 components/collections/addCollection.vue create mode 100644 components/collections/addFolder.vue create mode 100644 components/collections/collection.vue create mode 100644 components/collections/folder.vue create mode 100644 components/collections/index.vue create mode 100644 components/collections/request.vue diff --git a/components/collections/addCollection.vue b/components/collections/addCollection.vue new file mode 100644 index 000000000..819681e4a --- /dev/null +++ b/components/collections/addCollection.vue @@ -0,0 +1,66 @@ + + + \ No newline at end of file diff --git a/components/collections/addFolder.vue b/components/collections/addFolder.vue new file mode 100644 index 000000000..e79c735bd --- /dev/null +++ b/components/collections/addFolder.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file diff --git a/components/collections/collection.vue b/components/collections/collection.vue new file mode 100644 index 000000000..a86cc16a5 --- /dev/null +++ b/components/collections/collection.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/components/collections/folder.vue b/components/collections/folder.vue new file mode 100644 index 000000000..e4215d82b --- /dev/null +++ b/components/collections/folder.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/components/collections/index.vue b/components/collections/index.vue new file mode 100644 index 000000000..74aa9464b --- /dev/null +++ b/components/collections/index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/components/collections/request.vue b/components/collections/request.vue new file mode 100644 index 000000000..44e0f825d --- /dev/null +++ b/components/collections/request.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue index 60f7df3c6..797a7e62a 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -340,6 +340,7 @@ + \ No newline at end of file diff --git a/components/collections/folder.vue b/components/collections/folder.vue index e4215d82b..36d88ea56 100644 --- a/components/collections/folder.vue +++ b/components/collections/folder.vue @@ -4,6 +4,7 @@ arrow_right arrow_drop_down
{{folder.name}}
+
@@ -30,6 +31,14 @@ display: flex; align-items: center; } + + .add-button { + padding: 0; + width: 20px; + margin: 0; + height: 20px; + border-radius: 50%; + } \ No newline at end of file diff --git a/components/collections/index.vue b/components/collections/index.vue index 74aa9464b..fbf59c7c0 100644 --- a/components/collections/index.vue +++ b/components/collections/index.vue @@ -3,7 +3,10 @@ + v-on:hide-model='toggleModal' + v-bind:editing-collection="selectedCollection" + v-on:saved-collection="savedCollection" + >
@@ -14,7 +17,11 @@
  • - +
@@ -52,6 +59,7 @@ data() { return { showAddModel: false, + selectedCollection: {}, } }, computed: { @@ -67,6 +75,16 @@ this.$store.commit('postwoman/addCollection', newCollection); this.showAddModel = false; }, + editCollection(payload) { + const { collection, collectionIndex } = payload; + this.selectedCollection = Object.assign({ collectionIndex }, collection); + this.showAddModel = true; + }, + savedCollection(savedCollection) { + this.$store.commit('postwoman/saveCollection', { savedCollection }); + this.showAddModel = false; + this.selectedCollection = {}; + }, }, } diff --git a/store/postwoman.js b/store/postwoman.js index e084faab0..c8e91cb1f 100644 --- a/store/postwoman.js +++ b/store/postwoman.js @@ -80,11 +80,27 @@ export const mutations = { state.collections.push(newCollection); }, + removeCollection (state, payload) { + const { collectionIndex } = payload; + state.collections.splice(collectionIndex, 1) + }, + + saveCollection (state, payload) { + const { savedCollection } = payload; + state.collections[savedCollection.collectionIndex] = savedCollection; + }, + addFolder (state, payload) { const { collectionIndex, folder } = payload; state.collections[collectionIndex].folders.push(folder); }, + removeFolder (state, payload) { + const { collectionIndex, folderIndex } = payload; + console.log(collectionIndex) + state.collections[collectionIndex].folders.splice(folderIndex, 1) + }, + addRequest (state, payload) { const { collectionIndex, folderIndex, request } = payload; state.collections[collectionIndex].folders[folderIndex].push(request); From d989da2811a455a2f8887ba864bc864fcef974a3 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Wed, 16 Oct 2019 07:32:22 -0600 Subject: [PATCH 03/11] Added edit folder. --- components/collections/addFolder.vue | 21 +++++++++++++++++++-- components/collections/collection.vue | 23 +++++++++++++++++++++-- components/collections/folder.vue | 8 ++++++++ store/postwoman.js | 6 +++++- 4 files changed, 53 insertions(+), 5 deletions(-) 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 @@
  • -

    Add New Folder

    +

    Add New Folder

    +

    Edit Folder

- + +
@@ -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); From cad907125b5e1d894bd4915244e50a67c0c8323f Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Wed, 16 Oct 2019 08:29:08 -0600 Subject: [PATCH 04/11] Added initial save request --- components/collections/saveRequest.vue | 130 +++++++++++++++++++++++++ pages/index.vue | 55 ++++++++++- store/postwoman.js | 14 ++- 3 files changed, 196 insertions(+), 3 deletions(-) create mode 100644 components/collections/saveRequest.vue diff --git a/components/collections/saveRequest.vue b/components/collections/saveRequest.vue new file mode 100644 index 000000000..dcdaff3a2 --- /dev/null +++ b/components/collections/saveRequest.vue @@ -0,0 +1,130 @@ + + + \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue index 88a45dc04..586603505 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -1,5 +1,10 @@