From 0f955a0c7f00df931aad2b33ca16f8fd5ee4046a Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:14:12 +0000 Subject: [PATCH] fix(nc-gui): add redirection page --- .../dlg/share-and-collaborate/SharePage.vue | 17 +++++++++++++---- packages/nc-gui/pages/shared/[slug].vue | 17 ----------------- packages/nocodb/src/schema/swagger.json | 4 ++++ packages/nocodb/src/services/views.service.ts | 8 ++++++-- 4 files changed, 23 insertions(+), 23 deletions(-) delete mode 100644 packages/nc-gui/pages/shared/[slug].vue diff --git a/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue b/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue index 6cf6777439..eb442afe69 100644 --- a/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue +++ b/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue @@ -54,6 +54,10 @@ const url = computed(() => { return sharedViewUrl() ?? '' }) +const preFillFormSearchParams = computed(() => { + return viewStore.preFillFormSearchParams && formPreFill.value.preFillEnabled ? viewStore.preFillFormSearchParams : '' +}) + const passwordProtectedLocal = ref(false) const passwordProtected = computed(() => { @@ -134,7 +138,11 @@ const dashboardUrl1 = computed(() => { }) const copyCustomUrl = () => { - copy(`${dashboardUrl1.value}}#/shared/${customUrl.value}`) + copy( + `${dashboardUrl1.value}#/p/${customUrl.value}${ + preFillFormSearchParams.value && activeView.value?.type === ViewTypes.FORM ? `?${preFillFormSearchParams.value}` : '' + }`, + ) } onMounted(() => { @@ -242,7 +250,7 @@ const handleChangeFormPreFill = (value: { preFillEnabled?: boolean; preFilledMod } } -function sharedViewUrl() { +function sharedViewUrl(withPrefill = true) { if (!activeView.value) return let viewType @@ -275,7 +283,7 @@ function sharedViewUrl() { } return `${encodeURI(`${dashboardUrl1}#/nc/${viewType}/${activeView.value.uuid}${surveyMode.value ? '/survey' : ''}`)}${ - viewStore.preFillFormSearchParams && formPreFill.value.preFillEnabled ? `?${viewStore.preFillFormSearchParams}` : '' + withPrefill && preFillFormSearchParams.value ? `?${preFillFormSearchParams.value}` : '' }` } @@ -346,6 +354,7 @@ async function updateSharedView() { meta, password: activeView.value.password, custom_url_path: customUrl.value ?? null, + original_url: sharedViewUrl(false), }) activeView.value.custom_url_path = customUrl.value ?? null } catch (e: any) { @@ -405,7 +414,7 @@ async function savePreFilledMode() { v-if="isOpenCustomUrl" class="flex items-center mt-2 pl-2 pr-1 w-full border-1 rounded-lg focus-within:(border-1 border-nc-border-brand shadow-selected)" > -
{{ dashboardUrl1 }}#/shared/
+
{{ dashboardUrl1 }}#/p/
-definePageMeta({ - public: true, - requiresAuth: false, - hasSidebar: false, -}) - -const route = useRoute() - -useMetas() - - - - - diff --git a/packages/nocodb/src/schema/swagger.json b/packages/nocodb/src/schema/swagger.json index 14c9b69a1e..af9db3e6c7 100644 --- a/packages/nocodb/src/schema/swagger.json +++ b/packages/nocodb/src/schema/swagger.json @@ -24972,6 +24972,10 @@ "$ref": "#/components/schemas/StringOrNull", "description": "Password to restrict access" }, + "original_url": { + "$ref": "#/components/schemas/StringOrNull", + "description": "Original url user to redirect from custom url path" + }, "custom_url_path": { "$ref": "#/components/schemas/StringOrNull", "description": "Custom url path" diff --git a/packages/nocodb/src/services/views.service.ts b/packages/nocodb/src/services/views.service.ts index 4a4fd42ec1..c6f23d3451 100644 --- a/packages/nocodb/src/services/views.service.ts +++ b/packages/nocodb/src/services/views.service.ts @@ -282,6 +282,11 @@ export class ViewsService { if (param.sharedView.custom_url_path) { await CustomUrl.update(view.fk_custom_url_id, { custom_path: param.sharedView.custom_url_path, + ...(customUrl.original_path !== param.sharedView.original_url + ? { + original_path: param.sharedView.original_url, + } + : {}), }); } else { await CustomUrl.delete({ id: view.fk_custom_url_id }); @@ -293,8 +298,7 @@ export class ViewsService { base_id: view.base_id, fk_model_id: view.fk_model_id, view_id: view.id, - // Todo: add original path - original_path: '', + original_path: param.sharedView.original_url, custom_path: param.sharedView.custom_url_path, }); }