Compare commits
6 Commits
fix/disabl
...
fix/shared
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b5e7577024 | ||
|
|
9bd7961c15 | ||
|
|
4f74cd8f89 | ||
|
|
cf4ecd326e | ||
|
|
2ed43f03e1 | ||
|
|
1ac518ef87 |
@@ -33,6 +33,7 @@
|
||||
@select="onSelect"
|
||||
@update-team="updateTeam"
|
||||
@update-collection-type="updateCollectionType"
|
||||
@set-team-collection-adapter="teamCollectionAdapter = $event"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@@ -86,6 +87,7 @@ import { platform } from "~/platform"
|
||||
import { useService } from "dioc/vue"
|
||||
import { RESTTabService } from "~/services/tab/rest"
|
||||
import { GQLTabService } from "~/services/tab/graphql"
|
||||
import TeamCollectionAdapter from "~/helpers/teams/TeamCollectionAdapter"
|
||||
|
||||
const t = useI18n()
|
||||
const toast = useToast()
|
||||
@@ -93,6 +95,8 @@ const toast = useToast()
|
||||
const RESTTabs = useService(RESTTabService)
|
||||
const GQLTabs = useService(GQLTabService)
|
||||
|
||||
const teamCollectionAdapter = ref<TeamCollectionAdapter>()
|
||||
|
||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
||||
|
||||
type CollectionType =
|
||||
@@ -380,7 +384,6 @@ const saveRequestAs = async () => {
|
||||
platform: "rest",
|
||||
workspaceType: "team",
|
||||
})
|
||||
|
||||
pipe(
|
||||
updateTeamRequest(picked.value.requestID, data),
|
||||
TE.match(
|
||||
@@ -388,7 +391,31 @@ const saveRequestAs = async () => {
|
||||
toast.error(`${getErrorMessage(err)}`)
|
||||
modalLoadingState.value = false
|
||||
},
|
||||
() => {
|
||||
(result) => {
|
||||
const { updateRequest } = result
|
||||
|
||||
RESTTabs.currentActiveTab.value.document = {
|
||||
request: requestUpdated,
|
||||
isDirty: false,
|
||||
saveContext: {
|
||||
originLocation: "team-collection",
|
||||
requestID: updateRequest.id,
|
||||
collectionID: updateRequest.collectionID,
|
||||
},
|
||||
}
|
||||
|
||||
if (teamCollectionAdapter.value) {
|
||||
const { auth, headers } =
|
||||
teamCollectionAdapter.value.cascadeParentCollectionForHeaderAuth(
|
||||
updateRequest.collectionID
|
||||
)
|
||||
|
||||
RESTTabs.currentActiveTab.value.document.inheritedProperties = {
|
||||
auth,
|
||||
headers,
|
||||
}
|
||||
}
|
||||
|
||||
modalLoadingState.value = false
|
||||
requestSaved()
|
||||
}
|
||||
@@ -516,6 +543,18 @@ const updateTeamCollectionOrFolder = (
|
||||
},
|
||||
}
|
||||
|
||||
if (teamCollectionAdapter.value) {
|
||||
const { auth, headers } =
|
||||
teamCollectionAdapter.value.cascadeParentCollectionForHeaderAuth(
|
||||
createRequestInCollection.collection.id
|
||||
)
|
||||
|
||||
RESTTabs.currentActiveTab.value.document.inheritedProperties = {
|
||||
auth,
|
||||
headers,
|
||||
}
|
||||
}
|
||||
|
||||
modalLoadingState.value = false
|
||||
requestSaved()
|
||||
}
|
||||
|
||||
@@ -262,6 +262,7 @@ const emit = defineEmits<{
|
||||
(event: "select", payload: Picked | null): void
|
||||
(event: "update-team", team: SelectedTeam): void
|
||||
(event: "update-collection-type", type: CollectionType["type"]): void
|
||||
(event: "set-team-collection-adapter", adapter: TeamCollectionAdapter): void
|
||||
}>()
|
||||
|
||||
type SelectedTeam = GetMyTeamsQuery["myTeams"][number] | undefined
|
||||
@@ -354,6 +355,7 @@ watch(
|
||||
(newTeam) => {
|
||||
if (newTeam) {
|
||||
teamCollectionAdapter.changeTeamID(newTeam.id)
|
||||
emit("set-team-collection-adapter", teamCollectionAdapter)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div v-if="loading" class="flex flex-col items-center justify-center">
|
||||
<div v-if="loading" class="flex flex-col items-center justify-center p-4">
|
||||
<HoppSmartSpinner class="mb-4" />
|
||||
<span class="text-secondaryLight">{{ t("state.loading") }}</span>
|
||||
</div>
|
||||
@@ -451,7 +451,7 @@ const getErrorMessage = (err: GQLError<string>) => {
|
||||
}
|
||||
switch (err.error) {
|
||||
case "shortcode/not_found":
|
||||
return t("shared_request.not_found")
|
||||
return t("shared_requests.not_found")
|
||||
default:
|
||||
return t("error.something_went_wrong")
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@ mutation UpdateRequest($data: UpdateTeamRequestInput!, $requestID: ID!) {
|
||||
updateRequest(data: $data, requestID: $requestID) {
|
||||
id
|
||||
title
|
||||
collectionID
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,6 +156,7 @@ export default class ShortcodeListAdapter {
|
||||
const [shortcodeCreated$, shortcodeCreatedSub] = runAuthOnlyGQLSubscription(
|
||||
{
|
||||
query: ShortcodeCreatedDocument,
|
||||
variables: {},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -172,6 +173,7 @@ export default class ShortcodeListAdapter {
|
||||
const [shortcodeRevoked$, shortcodeRevokedSub] = runAuthOnlyGQLSubscription(
|
||||
{
|
||||
query: ShortcodeDeletedDocument,
|
||||
variables: {},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -188,6 +190,7 @@ export default class ShortcodeListAdapter {
|
||||
const [shortcodeUpdated$, shortcodeUpdatedSub] = runAuthOnlyGQLSubscription(
|
||||
{
|
||||
query: ShortcodeUpdatedDocument,
|
||||
variables: {},
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -1034,6 +1034,11 @@ export default class NewTeamCollectionAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL team collections
|
||||
* @param folderPath the path of the folder to cascade the auth from
|
||||
* @returns the inherited auth and headers for the given folder path
|
||||
*/
|
||||
public cascadeParentCollectionForHeaderAuth(folderPath: string) {
|
||||
let auth: HoppInheritedProperty["auth"] = {
|
||||
parentID: folderPath ?? "",
|
||||
@@ -1089,7 +1094,10 @@ export default class NewTeamCollectionAdapter {
|
||||
const parentFolderAuth = data.auth
|
||||
const parentFolderHeaders = data.headers
|
||||
|
||||
if (parentFolderAuth?.authType === "inherit" && path.length === 1) {
|
||||
if (
|
||||
parentFolderAuth?.authType === "inherit" &&
|
||||
[...path.slice(0, i + 1)].length === 1
|
||||
) {
|
||||
auth = {
|
||||
parentID: [...path.slice(0, i + 1)].join("/"),
|
||||
parentName: parentFolder.title,
|
||||
|
||||
@@ -68,7 +68,7 @@ export function navigateToFolderWithIndexPath(
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL
|
||||
* Used to obtain the inherited auth and headers for a given folder path, used for both REST and GraphQL personal collections
|
||||
* @param folderPath the path of the folder to cascade the auth from
|
||||
* @param type the type of collection
|
||||
* @returns the inherited auth and headers for the given folder path
|
||||
|
||||
@@ -18,6 +18,41 @@
|
||||
:properties="properties"
|
||||
:shared-request-i-d="sharedRequestID"
|
||||
/>
|
||||
<div v-else class="flex flex-1 flex-col items-center justify-center p-4">
|
||||
<div
|
||||
v-if="sharedRequestDetails.loading"
|
||||
class="flex flex-1 flex-col items-center justify-center p-4"
|
||||
>
|
||||
<HoppSmartSpinner />
|
||||
</div>
|
||||
<div v-else>
|
||||
<div
|
||||
v-if="
|
||||
!sharedRequestDetails.loading && E.isLeft(sharedRequestDetails.data)
|
||||
"
|
||||
class="flex flex-col items-center p-4"
|
||||
>
|
||||
<icon-lucide-alert-triangle class="svg-icons mb-2 opacity-75" />
|
||||
<h1 class="heading text-center">
|
||||
{{ t("error.invalid_link") }}
|
||||
</h1>
|
||||
<p class="mt-2 text-center">
|
||||
{{ t("error.invalid_embed_link") }}
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
!sharedRequestDetails.loading &&
|
||||
E.isRight(sharedRequestDetails.data)
|
||||
"
|
||||
class="flex flex-1 flex-col items-center justify-center p-4"
|
||||
>
|
||||
<h1 class="heading">
|
||||
{{ t("state.loading") }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user