diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/ShareView.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/ShareView.vue index ea16354a6a..0c62aeb118 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/ShareView.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/ShareView.vue @@ -60,8 +60,7 @@ const sharedViewUrl = computed(() => { viewType = 'view' } - // todo: get dashboard url - return `${dashboardUrl?.value}/nc/${viewType}/${shared.value.uuid}` + return `${dashboardUrl?.value}#/nc/${viewType}/${shared.value.uuid}` }) async function saveAllowCSVDownload() { diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/SharedViewList.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/SharedViewList.vue index 513f7429bb..a83cec905d 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/SharedViewList.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/SharedViewList.vue @@ -103,7 +103,7 @@ const deleteLink = async (id: string) => { diff --git a/packages/nc-gui-v2/components/tabs/auth/UserManagement.vue b/packages/nc-gui-v2/components/tabs/auth/UserManagement.vue index c888571b86..a8d8760d7e 100644 --- a/packages/nc-gui-v2/components/tabs/auth/UserManagement.vue +++ b/packages/nc-gui-v2/components/tabs/auth/UserManagement.vue @@ -137,7 +137,7 @@ const resendInvite = async (user: User) => { const copyInviteUrl = (user: User) => { if (!user.invite_token) return - copy(`${dashboardUrl}/signup/${user.invite_token}`) + copy(`${dashboardUrl}#/signup/${user.invite_token}`) message.success('Invite url copied to clipboard') } diff --git a/packages/nc-gui-v2/components/tabs/auth/user-management/ShareBase.vue b/packages/nc-gui-v2/components/tabs/auth/user-management/ShareBase.vue index 618a18f6f2..b33703de8f 100644 --- a/packages/nc-gui-v2/components/tabs/auth/user-management/ShareBase.vue +++ b/packages/nc-gui-v2/components/tabs/auth/user-management/ShareBase.vue @@ -26,7 +26,7 @@ const { project } = useProject() const { copy } = useClipboard() -const url = $computed(() => (base && base.uuid ? `${dashboardUrl}/base/${base.uuid}` : null)) +const url = $computed(() => (base && base.uuid ? `${dashboardUrl}#/base/${base.uuid}` : null)) const loadBase = async () => { try { diff --git a/packages/nc-gui-v2/components/tabs/auth/user-management/UsersModal.vue b/packages/nc-gui-v2/components/tabs/auth/user-management/UsersModal.vue index 29ced03638..b472a32975 100644 --- a/packages/nc-gui-v2/components/tabs/auth/user-management/UsersModal.vue +++ b/packages/nc-gui-v2/components/tabs/auth/user-management/UsersModal.vue @@ -103,7 +103,7 @@ const saveUser = async () => { } } -const inviteUrl = $computed(() => (usersData.invitationToken ? `${dashboardUrl}/signup/${usersData.invitationToken}` : null)) +const inviteUrl = $computed(() => (usersData.invitationToken ? `${dashboardUrl}#/signup/${usersData.invitationToken}` : null)) const copyUrl = async () => { if (!inviteUrl) return diff --git a/packages/nc-gui-v2/package-lock.json b/packages/nc-gui-v2/package-lock.json index 90b27462c7..850280afe5 100644 --- a/packages/nc-gui-v2/package-lock.json +++ b/packages/nc-gui-v2/package-lock.json @@ -78,6 +78,7 @@ }, "../nocodb-sdk": { "version": "0.92.4", + "hasInstallScript": true, "license": "MIT", "dependencies": { "axios": "^0.21.1", @@ -104,6 +105,7 @@ "open-cli": "^6.0.1", "prettier": "^2.1.1", "standard-version": "^9.0.0", + "swagger-typescript-api": "^10.0.1", "ts-node": "^9.0.0", "typedoc": "^0.22.17", "typescript": "^4.0.2" @@ -22961,6 +22963,7 @@ "open-cli": "^6.0.1", "prettier": "^2.1.1", "standard-version": "^9.0.0", + "swagger-typescript-api": "^10.0.1", "ts-node": "^9.0.0", "typedoc": "^0.22.17", "typescript": "^4.0.2" diff --git a/packages/nc-gui-v2/scripts/updateNuxtRouting.js b/packages/nc-gui-v2/scripts/updateNuxtRouting.js index 5afb199155..fdf08a91ca 100644 --- a/packages/nc-gui-v2/scripts/updateNuxtRouting.js +++ b/packages/nc-gui-v2/scripts/updateNuxtRouting.js @@ -11,10 +11,16 @@ const filePath = path.join(__dirname, '..', 'node_modules', 'nuxt', 'dist', 'pag const content = fs.readFileSync(filePath, 'utf8') /** Replace `createWebHistory` with `createWebHashHistory` */ -const updatedContent = content.replace( - /createRouter(\s*,\s*)createWebHistory(\s*,\s*)createMemoryHistory/, - `createRouter$1createWebHashHistory as createWebHistory$2createMemoryHistory`, -) +const updatedContent = content + .replace( + /createRouter(\s*,\s*)createWebHistory(\s*,\s*)createMemoryHistory/, + `createRouter$1createWebHashHistory as createWebHistory$2createMemoryHistory`, + ) + /** Replace initial Handle initial routing based on hash path */ + .replace( + `const { pathname, search, hash } = location;`, + `const { pathname, search, hash } = new URL((location.hash || '').replace(/^#/, ''), location.origin);`, + ) /** Update file content with updated code */ fs.writeFileSync(filePath, updatedContent, 'utf8') diff --git a/packages/nocodb/src/lib/meta/api/projectUserApis.ts b/packages/nocodb/src/lib/meta/api/projectUserApis.ts index a3cc55dc6a..99e93e8607 100644 --- a/packages/nocodb/src/lib/meta/api/projectUserApis.ts +++ b/packages/nocodb/src/lib/meta/api/projectUserApis.ts @@ -285,7 +285,7 @@ async function sendInviteEmail( html: ejs.render(template, { signupLink: `${req.ncSiteUrl}${ Noco.getConfig()?.dashboardPath - }#/user/authentication/signup/${token}`, + }#/signup/${token}`, projectName: req.body?.projectName, roles: (req.body?.roles || '') .split(',') diff --git a/packages/nocodb/src/lib/v1-legacy/rest/RestAuthCtrl.ts b/packages/nocodb/src/lib/v1-legacy/rest/RestAuthCtrl.ts index d9a44e7fe6..ab3f6df424 100644 --- a/packages/nocodb/src/lib/v1-legacy/rest/RestAuthCtrl.ts +++ b/packages/nocodb/src/lib/v1-legacy/rest/RestAuthCtrl.ts @@ -1497,7 +1497,7 @@ export default class RestAuthCtrl { to: email, subject: 'Verify email', html: ejs.render(template, { - signupLink: `${req.ncSiteUrl}${this.config?.dashboardPath}#/user/authentication/signup/${token}`, + signupLink: `${req.ncSiteUrl}${this.config?.dashboardPath}#/signup/${token}`, projectName: req.body?.projectName, roles: (req.body?.roles || '') .split(',')