diff --git a/components/collections/SaveRequest.vue b/components/collections/SaveRequest.vue index 06412913..9dc61f8f 100644 --- a/components/collections/SaveRequest.vue +++ b/components/collections/SaveRequest.vue @@ -16,8 +16,10 @@ @@ -61,6 +63,7 @@ export default { type: "my-collections", selectedTeam: undefined, }, + picked: null, } }, subscriptions() { @@ -123,14 +126,11 @@ export default { }, }, methods: { - changeRequestDetails(data) { - this.$data.requestData.folderName = data.folderName.split("/").slice(-2)[0] - this.$data.path = data.folderName - this.$data.requestData.collectionIndex = data.collectionIndex - this.$data.requestData.requestIndex = data.reqIdx - if (data.collectionsType.type !== "my-collections") { - this.$data.collectionsType = data.collectionsType - } + onUpdateCollType(newCollType) { + this.collectionsType = newCollType + }, + onSelect({ picked }) { + this.picked = picked }, syncCollections() { if (fb.currentUser !== null && this.SYNC_COLLECTIONS) { @@ -141,8 +141,7 @@ export default { } }, saveRequestAs() { - const userDidntSpecifyCollection = this.$data.requestData.collectionIndex === undefined - if (userDidntSpecifyCollection) { + if (this.picked == null) { this.$toast.error(this.$t("select_collection"), { icon: "error", }) @@ -161,32 +160,56 @@ export default { collection: this.$data.requestData.collectionIndex, } - if (this.$data.collectionsType.type === "my-collections") { + if (this.picked.pickedType === "my-request") { this.$store.commit("postwoman/saveRequestAs", { request: requestUpdated, - collectionIndex: this.$data.requestData.collectionIndex, - folderName: this.$data.requestData.folderName, - requestIndex: this.$data.requestData.requestIndex, + collectionIndex: this.picked.collectionIndex, + folderName: this.picked.folderName, + requestIndex: this.picked.requestIndex, flag: "rest", }) + this.syncCollections() - } else { - if (this.$data.requestData.requestIndex) { - team_utils.overwriteRequestTeams( - this.$apollo, - JSON.stringify(requestUpdated), - requestUpdated.name, - this.$data.requestData.requestIndex - ) - } else { - team_utils.saveRequestAsTeams( - this.$apollo, - JSON.stringify(requestUpdated), - requestUpdated.name, - this.$data.collectionsType.selectedTeam.id, - this.$data.requestData.collectionIndex - ) - } + } else if (this.picked.pickedType === "my-folder") { + this.$store.commit("postwoman/saveRequestAs", { + request: requestUpdated, + collectionIndex: this.picked.collectionIndex, + folderName: this.picked.folderName, + flag: "rest", + }) + + this.syncCollections() + } else if (this.picked.pickedType === "my-collection") { + this.$store.commit("postwoman/saveRequestAs", { + request: requestUpdated, + collectionIndex: this.picked.collectionIndex, + flag: "rest", + }) + + this.syncCollections() + } else if (this.picked.pickedType === "teams-request") { + team_utils.overwriteRequestTeams( + this.$apollo, + JSON.stringify(requestUpdated), + requestUpdated.name, + this.picked.requestID + ) + } else if (this.picked.pickedType === "teams-folder") { + team_utils.saveRequestAsTeams( + this.$apollo, + JSON.stringify(requestUpdated), + requestUpdated.name, + this.collectionsType.selectedTeam.id, + this.picked.folderID + ) + } else if (this.picked.pickedType === "teams-collection") { + team_utils.saveRequestAsTeams( + this.$apollo, + JSON.stringify(requestUpdated), + requestUpdated.name, + this.collectionsType.selectedTeam.id, + this.picked.collectionID + ) } this.$toast.success("Requested added", { icon: "done", diff --git a/components/collections/index.vue b/components/collections/index.vue index bf584e22..201c32ae 100644 --- a/components/collections/index.vue +++ b/components/collections/index.vue @@ -104,6 +104,7 @@ :selected="selected.some((coll) => coll == collection)" :saveRequest="saveRequest" :collectionsType="collectionsType" + :picked="picked" @edit-collection="editCollection(collection, index)" @add-folder="addFolder($event)" @edit-folder="editFolder($event)" @@ -130,10 +131,10 @@ picked = $event.id } " + @select="$emit('select', $event)" @expand-collection="expandCollection" @remove-collection="removeCollection" @remove-request="removeRequest" - :picked="picked.toString()" /> @@ -163,6 +164,7 @@ export default { doc: Boolean, selected: { type: Array, default: () => [] }, saveRequest: Boolean, + picked: Object, }, data() { return { @@ -187,7 +189,6 @@ export default { }, teamCollectionAdapter: new TeamCollectionAdapter(null), teamCollectionsNew: [], - picked: "", } }, subscriptions() { @@ -292,9 +293,11 @@ export default { }, updateSelectedTeam(newSelectedTeam) { this.collectionsType.selectedTeam = newSelectedTeam + this.$emit("update-coll-type", this.collectionsType) }, updateCollectionType(newCollectionType) { this.collectionsType.type = newCollectionType + this.$emit("update-coll-type", this.collectionsType) }, // Intented to be called by the CollectionAdd modal submit event addNewRootCollection(name) { diff --git a/components/collections/my/Collection.vue b/components/collections/my/Collection.vue index a2e362ff..4b007963 100644 --- a/components/collections/my/Collection.vue +++ b/components/collections/my/Collection.vue @@ -12,9 +12,9 @@ @@ -82,19 +82,12 @@ :saveRequest="saveRequest" :collectionsType="collectionsType" :isFiltered="isFiltered" + :picked="picked" @add-folder="$emit('add-folder', $event)" @edit-folder="$emit('edit-folder', $event)" @edit-request="$emit('edit-request', $event)" - @select-folder=" - $emit('select-folder', { - name: folder.name + '/' + $event.name, - id: $event.id, - reqIdx: $event.reqIdx, - folderPath: $event.folderPath, - }) - " + @select="$emit('select', $event)" @remove-request="removeRequest" - :picked="picked.toString()" /> @@ -109,18 +102,14 @@ :collection-index="collectionIndex" :folder-index="-1" :folder-name="collection.name" + :folder-path="collectionIndex.toString()" :request-index="index" :doc="doc" :saveRequest="saveRequest" :collectionsType="collectionsType" + :picked="picked" @edit-request="editRequest($event)" - @select-request=" - $emit('select-folder', { - name: $event.name, - id: collection.id, - reqIdx: $event.idx, - }) - " + @select="$emit('select', $event)" @remove-request="removeRequest" /> @@ -151,7 +140,6 @@