Migrate GraphQL to use SaveRequest modal instead of GQL one
This commit is contained in:
@@ -20,7 +20,18 @@
|
|||||||
/>
|
/>
|
||||||
<label for="selectLabel">Select location</label>
|
<label for="selectLabel">Select location</label>
|
||||||
<!-- <input readonly :value="path" /> -->
|
<!-- <input readonly :value="path" /> -->
|
||||||
|
|
||||||
|
<CollectionsGraphql
|
||||||
|
v-if="mode === 'graphql'"
|
||||||
|
:doc="false"
|
||||||
|
:show-coll-actions="false"
|
||||||
|
:picked="picked"
|
||||||
|
:saving-mode="true"
|
||||||
|
@select="onSelect"
|
||||||
|
/>
|
||||||
|
|
||||||
<Collections
|
<Collections
|
||||||
|
v-else
|
||||||
:picked="picked"
|
:picked="picked"
|
||||||
:save-request="true"
|
:save-request="true"
|
||||||
@select="onSelect"
|
@select="onSelect"
|
||||||
@@ -47,10 +58,12 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getSettingSubject } from "~/newstore/settings"
|
import { getSettingSubject } from "~/newstore/settings"
|
||||||
import * as teamUtils from "~/helpers/teams/utils"
|
import * as teamUtils from "~/helpers/teams/utils"
|
||||||
import { saveRESTRequestAs, editRESTRequest } from "~/newstore/collections"
|
import { saveRESTRequestAs, editRESTRequest, editGraphqlRequest, saveGraphqlRequestAs } from "~/newstore/collections"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
// mode can be either "graphql" or "rest"
|
||||||
|
mode: { type: String, default: "rest" },
|
||||||
show: Boolean,
|
show: Boolean,
|
||||||
editingRequest: { type: Object, default: () => {} },
|
editingRequest: { type: Object, default: () => {} },
|
||||||
},
|
},
|
||||||
@@ -190,6 +203,12 @@ export default {
|
|||||||
this.collectionsType.selectedTeam.id,
|
this.collectionsType.selectedTeam.id,
|
||||||
this.picked.collectionID
|
this.picked.collectionID
|
||||||
)
|
)
|
||||||
|
} else if (this.picked.pickedType === "gql-my-request") {
|
||||||
|
editGraphqlRequest(this.picked.folderPath, this.picked.requestIndex, requestUpdated)
|
||||||
|
} else if (this.picked.pickedType === "gql-my-folder") {
|
||||||
|
saveGraphqlRequestAs(this.picked.folderPath, requestUpdated)
|
||||||
|
} else if (this.picked.pickedType === "gql-my-collection") {
|
||||||
|
saveGraphqlRequestAs(`${this.picked.collectionIndex}`, requestUpdated)
|
||||||
}
|
}
|
||||||
this.$toast.success("Requested added", {
|
this.$toast.success("Requested added", {
|
||||||
icon: "done",
|
icon: "done",
|
||||||
|
|||||||
@@ -19,7 +19,12 @@
|
|||||||
<i v-show="showChildren || isFiltered" class="material-icons"
|
<i v-show="showChildren || isFiltered" class="material-icons"
|
||||||
>arrow_drop_down</i
|
>arrow_drop_down</i
|
||||||
>
|
>
|
||||||
<i class="material-icons">folder</i>
|
|
||||||
|
<i v-if="isSelected" class="mx-3 text-green-400 material-icons"
|
||||||
|
>check_circle</i
|
||||||
|
>
|
||||||
|
|
||||||
|
<i v-else class="material-icons">folder</i>
|
||||||
<span>{{ collection.name }}</span>
|
<span>{{ collection.name }}</span>
|
||||||
</button>
|
</button>
|
||||||
<div>
|
<div>
|
||||||
@@ -31,7 +36,7 @@
|
|||||||
>
|
>
|
||||||
<i class="material-icons">topic</i>
|
<i class="material-icons">topic</i>
|
||||||
</button>
|
</button>
|
||||||
<v-popover>
|
<v-popover v-if="!savingMode">
|
||||||
<button v-tooltip.left="$t('more')" class="tooltip-target icon">
|
<button v-tooltip.left="$t('more')" class="tooltip-target icon">
|
||||||
<i class="material-icons">more_vert</i>
|
<i class="material-icons">more_vert</i>
|
||||||
</button>
|
</button>
|
||||||
@@ -82,6 +87,8 @@
|
|||||||
class="ml-8 border-l border-brdColor"
|
class="ml-8 border-l border-brdColor"
|
||||||
>
|
>
|
||||||
<CollectionsGraphqlFolder
|
<CollectionsGraphqlFolder
|
||||||
|
:picked="picked"
|
||||||
|
:saving-mode="savingMode"
|
||||||
:folder="folder"
|
:folder="folder"
|
||||||
:folder-index="index"
|
:folder-index="index"
|
||||||
:folder-path="`${collectionIndex}/${index}`"
|
:folder-path="`${collectionIndex}/${index}`"
|
||||||
@@ -91,6 +98,7 @@
|
|||||||
@add-folder="$emit('add-folder', $event)"
|
@add-folder="$emit('add-folder', $event)"
|
||||||
@edit-folder="$emit('edit-folder', $event)"
|
@edit-folder="$emit('edit-folder', $event)"
|
||||||
@edit-request="$emit('edit-request', $event)"
|
@edit-request="$emit('edit-request', $event)"
|
||||||
|
@select="$emit('select', $event)"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -101,13 +109,17 @@
|
|||||||
class="ml-8 border-l border-brdColor"
|
class="ml-8 border-l border-brdColor"
|
||||||
>
|
>
|
||||||
<CollectionsGraphqlRequest
|
<CollectionsGraphqlRequest
|
||||||
|
:picked="picked"
|
||||||
|
:saving-mode="savingMode"
|
||||||
:request="request"
|
:request="request"
|
||||||
:collection-index="collectionIndex"
|
:collection-index="collectionIndex"
|
||||||
:folder-index="-1"
|
:folder-index="-1"
|
||||||
:folder-name="collection.name"
|
:folder-name="collection.name"
|
||||||
|
:folder-path="`${collectionIndex}`"
|
||||||
:request-index="index"
|
:request-index="index"
|
||||||
:doc="doc"
|
:doc="doc"
|
||||||
@edit-request="$emit('edit-request', $event)"
|
@edit-request="$emit('edit-request', $event)"
|
||||||
|
@select="$emit('select', $event)"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -140,6 +152,9 @@ import { removeGraphqlCollection } from "~/newstore/collections"
|
|||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
|
picked: { type: Object, default: null },
|
||||||
|
// Whether the viewing context is related to picking (activates 'select' events)
|
||||||
|
savingMode: { type: Boolean, default: false },
|
||||||
collectionIndex: { type: Number, default: null },
|
collectionIndex: { type: Number, default: null },
|
||||||
collection: { type: Object, default: () => {} },
|
collection: { type: Object, default: () => {} },
|
||||||
doc: Boolean,
|
doc: Boolean,
|
||||||
@@ -153,8 +168,27 @@ export default Vue.extend({
|
|||||||
confirmRemove: false,
|
confirmRemove: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
isSelected(): boolean {
|
||||||
|
return this.picked &&
|
||||||
|
this.picked.pickedType === "gql-my-collection" &&
|
||||||
|
this.picked.collectionIndex === this.collectionIndex
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
pick() {
|
||||||
|
this.$emit("select", {
|
||||||
|
picked: {
|
||||||
|
pickedType: "gql-my-collection",
|
||||||
|
collectionIndex: this.collectionIndex
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
toggleShowChildren() {
|
toggleShowChildren() {
|
||||||
|
if (this.savingMode) {
|
||||||
|
this.pick()
|
||||||
|
}
|
||||||
|
|
||||||
this.showChildren = !this.showChildren
|
this.showChildren = !this.showChildren
|
||||||
},
|
},
|
||||||
removeCollection() {
|
removeCollection() {
|
||||||
|
|||||||
@@ -20,11 +20,15 @@
|
|||||||
<i v-show="showChildren || isFiltered" class="material-icons"
|
<i v-show="showChildren || isFiltered" class="material-icons"
|
||||||
>arrow_drop_down</i
|
>arrow_drop_down</i
|
||||||
>
|
>
|
||||||
<i class="material-icons">folder_open</i>
|
<i v-if="isSelected" class="mx-3 text-green-400 material-icons"
|
||||||
|
>check_circle</i
|
||||||
|
>
|
||||||
|
|
||||||
|
<i v-else class="material-icons">folder_open</i>
|
||||||
<span>{{ folder.name }}</span>
|
<span>{{ folder.name }}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<v-popover>
|
<v-popover v-if="!savingMode">
|
||||||
<button v-tooltip.left="$t('more')" class="tooltip-target icon">
|
<button v-tooltip.left="$t('more')" class="tooltip-target icon">
|
||||||
<i class="material-icons">more_vert</i>
|
<i class="material-icons">more_vert</i>
|
||||||
</button>
|
</button>
|
||||||
@@ -66,6 +70,8 @@
|
|||||||
class="ml-8 border-l border-brdColor"
|
class="ml-8 border-l border-brdColor"
|
||||||
>
|
>
|
||||||
<CollectionsGraphqlFolder
|
<CollectionsGraphqlFolder
|
||||||
|
:picked="picked"
|
||||||
|
:saving-mode="savingMode"
|
||||||
:folder="subFolder"
|
:folder="subFolder"
|
||||||
:folder-index="subFolderIndex"
|
:folder-index="subFolderIndex"
|
||||||
:folder-path="`${folderPath}/${subFolderIndex}`"
|
:folder-path="`${folderPath}/${subFolderIndex}`"
|
||||||
@@ -75,6 +81,7 @@
|
|||||||
@add-folder="$emit('add-folder', $event)"
|
@add-folder="$emit('add-folder', $event)"
|
||||||
@edit-folder="$emit('edit-folder', $event)"
|
@edit-folder="$emit('edit-folder', $event)"
|
||||||
@edit-request="$emit('edit-request', $event)"
|
@edit-request="$emit('edit-request', $event)"
|
||||||
|
@select="$emit('select', $event)"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -85,6 +92,8 @@
|
|||||||
class="flex ml-8 border-l border-brdColor"
|
class="flex ml-8 border-l border-brdColor"
|
||||||
>
|
>
|
||||||
<CollectionsGraphqlRequest
|
<CollectionsGraphqlRequest
|
||||||
|
:picked="picked"
|
||||||
|
:saving-mode="savingMode"
|
||||||
:request="request"
|
:request="request"
|
||||||
:collection-index="collectionIndex"
|
:collection-index="collectionIndex"
|
||||||
:folder-index="folderIndex"
|
:folder-index="folderIndex"
|
||||||
@@ -92,6 +101,7 @@
|
|||||||
:request-index="index"
|
:request-index="index"
|
||||||
:doc="doc"
|
:doc="doc"
|
||||||
@edit-request="$emit('edit-request', $event)"
|
@edit-request="$emit('edit-request', $event)"
|
||||||
|
@select="$emit('select', $event)"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -127,6 +137,9 @@ import { removeGraphqlFolder } from "~/newstore/collections"
|
|||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
name: "Folder",
|
name: "Folder",
|
||||||
props: {
|
props: {
|
||||||
|
picked: { type: Object, default: null },
|
||||||
|
// Whether the request is in a selectable mode (activates 'select' event)
|
||||||
|
savingMode: { type: Boolean, default: false },
|
||||||
folder: { type: Object, default: () => {} },
|
folder: { type: Object, default: () => {} },
|
||||||
folderIndex: { type: Number, default: null },
|
folderIndex: { type: Number, default: null },
|
||||||
collectionIndex: { type: Number, default: null },
|
collectionIndex: { type: Number, default: null },
|
||||||
@@ -141,8 +154,27 @@ export default Vue.extend({
|
|||||||
confirmRemove: false,
|
confirmRemove: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
isSelected(): boolean {
|
||||||
|
return this.picked &&
|
||||||
|
this.picked.pickedType === "gql-my-folder" &&
|
||||||
|
this.picked.folderPath === this.folderPath
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
pick() {
|
||||||
|
this.$emit('select', {
|
||||||
|
picked: {
|
||||||
|
pickedType: "gql-my-folder",
|
||||||
|
folderPath: this.folderPath
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
toggleShowChildren() {
|
toggleShowChildren() {
|
||||||
|
if (this.savingMode) {
|
||||||
|
this.pick()
|
||||||
|
}
|
||||||
|
|
||||||
this.showChildren = !this.showChildren
|
this.showChildren = !this.showChildren
|
||||||
},
|
},
|
||||||
removeFolder() {
|
removeFolder() {
|
||||||
|
|||||||
@@ -17,11 +17,16 @@
|
|||||||
class="icon"
|
class="icon"
|
||||||
@click="!doc ? selectRequest() : {}"
|
@click="!doc ? selectRequest() : {}"
|
||||||
>
|
>
|
||||||
<i class="material-icons">description</i>
|
|
||||||
|
<i v-if="isSelected" class="mx-3 text-green-400 material-icons"
|
||||||
|
>check_circle</i
|
||||||
|
>
|
||||||
|
|
||||||
|
<i v-else class="material-icons">description</i>
|
||||||
<span>{{ request.name }}</span>
|
<span>{{ request.name }}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<v-popover>
|
<v-popover v-if="!savingMode">
|
||||||
<button v-tooltip="$t('more')" class="tooltip-target icon">
|
<button v-tooltip="$t('more')" class="tooltip-target icon">
|
||||||
<i class="material-icons">more_vert</i>
|
<i class="material-icons">more_vert</i>
|
||||||
</button>
|
</button>
|
||||||
@@ -66,6 +71,10 @@ import { removeGraphqlRequest } from "~/newstore/collections"
|
|||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
|
// Whether the object is selected (show the tick mark)
|
||||||
|
picked: { type: Object, default: null },
|
||||||
|
// Whether the request is being saved (activate 'select' event)
|
||||||
|
savingMode: { type: Boolean, default: false },
|
||||||
request: { type: Object, default: () => {} },
|
request: { type: Object, default: () => {} },
|
||||||
folderPath: { type: String, default: null },
|
folderPath: { type: String, default: null },
|
||||||
requestIndex: { type: Number, default: null },
|
requestIndex: { type: Number, default: null },
|
||||||
@@ -77,8 +86,30 @@ export default Vue.extend({
|
|||||||
confirmRemove: false,
|
confirmRemove: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
isSelected(): boolean {
|
||||||
|
return this.picked &&
|
||||||
|
this.picked.pickedType === "gql-my-request" &&
|
||||||
|
this.picked.folderPath === this.folderPath &&
|
||||||
|
this.picked.requestIndex === this.requestIndex
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
pick() {
|
||||||
|
this.$emit('select', {
|
||||||
|
picked: {
|
||||||
|
pickedType: "gql-my-request",
|
||||||
|
folderPath: this.folderPath,
|
||||||
|
requestIndex: this.requestIndex
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
selectRequest() {
|
selectRequest() {
|
||||||
|
if (this.savingMode) {
|
||||||
|
this.pick()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this.$store.commit("postwoman/selectGraphqlRequest", {
|
this.$store.commit("postwoman/selectGraphqlRequest", {
|
||||||
request: this.request,
|
request: this.request,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -50,11 +50,11 @@
|
|||||||
@hide-modal="displayModalImportExport(false)"
|
@hide-modal="displayModalImportExport(false)"
|
||||||
/>
|
/>
|
||||||
<div class="border-b row-wrapper border-brdColor">
|
<div class="border-b row-wrapper border-brdColor">
|
||||||
<button class="icon" @click="displayModalAdd(true)">
|
<button v-if="showCollActions" class="icon" @click="displayModalAdd(true)">
|
||||||
<i class="material-icons">add</i>
|
<i class="material-icons">add</i>
|
||||||
<span>{{ $t("new") }}</span>
|
<span>{{ $t("new") }}</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="icon" @click="displayModalImportExport(true)">
|
<button v-if="showCollActions" class="icon" @click="displayModalImportExport(true)">
|
||||||
{{ $t("import_export") }}
|
{{ $t("import_export") }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,16 +69,19 @@
|
|||||||
:key="collection.name"
|
:key="collection.name"
|
||||||
>
|
>
|
||||||
<CollectionsGraphqlCollection
|
<CollectionsGraphqlCollection
|
||||||
|
:picked="picked"
|
||||||
:name="collection.name"
|
:name="collection.name"
|
||||||
:collection-index="index"
|
:collection-index="index"
|
||||||
:collection="collection"
|
:collection="collection"
|
||||||
:doc="doc"
|
:doc="doc"
|
||||||
:is-filtered="filterText.length > 0"
|
:is-filtered="filterText.length > 0"
|
||||||
|
:saving-mode="savingMode"
|
||||||
@edit-collection="editCollection(collection, index)"
|
@edit-collection="editCollection(collection, index)"
|
||||||
@add-folder="addFolder($event)"
|
@add-folder="addFolder($event)"
|
||||||
@edit-folder="editFolder($event)"
|
@edit-folder="editFolder($event)"
|
||||||
@edit-request="editRequest($event)"
|
@edit-request="editRequest($event)"
|
||||||
@select-collection="$emit('use-collection', collection)"
|
@select-collection="$emit('use-collection', collection)"
|
||||||
|
@select="$emit('select', $event)"
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -96,7 +99,12 @@ import { graphqlCollections$, addGraphqlFolder } from "~/newstore/collections"
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
doc: Boolean,
|
// Whether to activate the ability to pick items (activates 'select' events)
|
||||||
|
savingMode: { type: Boolean, default: false },
|
||||||
|
doc: { type: Boolean, default: false },
|
||||||
|
picked: { type: Object, default: null },
|
||||||
|
// Whether to show the 'New' and 'Import/Export' actions
|
||||||
|
showCollActions: { type: Boolean, default: true }
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -467,7 +467,8 @@
|
|||||||
</SmartTabs>
|
</SmartTabs>
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
<CollectionsGraphqlSaveRequest
|
<CollectionsSaveRequest
|
||||||
|
mode="graphql"
|
||||||
:show="showSaveRequestModal"
|
:show="showSaveRequestModal"
|
||||||
:editing-request="editRequest"
|
:editing-request="editRequest"
|
||||||
@hide-modal="hideRequestModal"
|
@hide-modal="hideRequestModal"
|
||||||
|
|||||||
@@ -553,6 +553,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<CollectionsSaveRequest
|
<CollectionsSaveRequest
|
||||||
|
mode="rest"
|
||||||
:show="showSaveRequestModal"
|
:show="showSaveRequestModal"
|
||||||
@hide-modal="hideRequestModal"
|
@hide-modal="hideRequestModal"
|
||||||
:editing-request="editRequest"
|
:editing-request="editRequest"
|
||||||
|
|||||||
Reference in New Issue
Block a user