diff --git a/packages/nc-gui/components/general/Sponsors.test.ts b/packages/nc-gui/components/general/Sponsors.test.ts
index 967adda867..b1427c405d 100644
--- a/packages/nc-gui/components/general/Sponsors.test.ts
+++ b/packages/nc-gui/components/general/Sponsors.test.ts
@@ -1,16 +1,14 @@
import { mount } from '@vue/test-utils'
import { expect, test } from 'vitest'
import Sponsors from './Sponsors.vue'
-import { createVuetifyPlugin } from '~/plugins/vuetify'
import { createI18nPlugin } from '~/plugins/a.i18n'
const mountComponent = async (nav: boolean) => {
- const vuetify = createVuetifyPlugin()
const i18n = await createI18nPlugin()
const wrapper = mount(Sponsors, {
global: {
- plugins: [vuetify, i18n],
+ plugins: [i18n],
},
props: {
nav,
diff --git a/packages/nc-gui/components/smartsheet-column/LinkedToAnotherRecordOptions.vue b/packages/nc-gui/components/smartsheet-column/LinkedToAnotherRecordOptions.vue
index e0711a6fae..2e34a50a2c 100644
--- a/packages/nc-gui/components/smartsheet-column/LinkedToAnotherRecordOptions.vue
+++ b/packages/nc-gui/components/smartsheet-column/LinkedToAnotherRecordOptions.vue
@@ -52,15 +52,24 @@ const refTables = $computed(() => {
-
+
Has Many
Many To Many
-
-
-
+
+
+
{{ table.title }}
diff --git a/packages/nc-gui/components/smartsheet-column/RollupOptions.vue b/packages/nc-gui/components/smartsheet-column/RollupOptions.vue
index f048f0176d..ebfe0cb776 100644
--- a/packages/nc-gui/components/smartsheet-column/RollupOptions.vue
+++ b/packages/nc-gui/components/smartsheet-column/RollupOptions.vue
@@ -35,7 +35,6 @@ const aggrFunctionsList = [
{ text: 'min', value: 'min' },
{ text: 'max', value: 'max' },
{ text: 'avg', value: 'avg' },
- { text: 'min', value: 'min' },
{ text: 'sum', value: 'sum' },
{ text: 'countDistinct', value: 'countDistinct' },
{ text: 'sumDistinct', value: 'sumDistinct' },
diff --git a/packages/nc-gui/components/smartsheet-toolbar/LockType.vue b/packages/nc-gui/components/smartsheet-toolbar/LockType.vue
index b34b580cce..947606bfed 100644
--- a/packages/nc-gui/components/smartsheet-toolbar/LockType.vue
+++ b/packages/nc-gui/components/smartsheet-toolbar/LockType.vue
@@ -13,17 +13,17 @@ const types = {
[LockType.Personal]: {
title: 'title.personalView',
icon: MdiAccountIcon,
- subtitle: 'msg.info.collabView',
+ subtitle: 'msg.info.personalView',
},
[LockType.Collaborative]: {
title: 'title.collabView',
icon: MdiAccountGroupIcon,
- subtitle: 'msg.info.lockedView',
+ subtitle: 'msg.info.collabView',
},
[LockType.Locked]: {
title: 'title.lockedView',
icon: MdiLockOutlineIcon,
- subtitle: 'msg.info.personalView',
+ subtitle: 'msg.info.lockedView',
},
}
diff --git a/packages/nc-gui/components/tabs/auth/ApiTokenManagement.vue b/packages/nc-gui/components/tabs/auth/ApiTokenManagement.vue
index 1a093a5135..282ad42c54 100644
--- a/packages/nc-gui/components/tabs/auth/ApiTokenManagement.vue
+++ b/packages/nc-gui/components/tabs/auth/ApiTokenManagement.vue
@@ -106,17 +106,29 @@ onMounted(() => {
-
+
{{ $t('title.generateToken') }}
-
+
+
-
{{ $t('general.generate') }}
+
+ {{ $t('general.generate') }}
+
-
+
diff --git a/packages/nc-gui/pages/signup/[[token]].vue b/packages/nc-gui/pages/signup/[[token]].vue
index 5693552c3a..6b732355d8 100644
--- a/packages/nc-gui/pages/signup/[[token]].vue
+++ b/packages/nc-gui/pages/signup/[[token]].vue
@@ -113,7 +113,7 @@ function resetError() {
{{ $route.query.redirect_to === '/pricing' ? '& BUY' : '' }}
-
+
{{ $t('msg.info.signUp.superAdmin') }}
diff --git a/packages/nc-gui/plugins/initializeFeedbackForm.ts b/packages/nc-gui/plugins/initializeFeedbackForm.ts
index 4323f5e0a5..314131afc7 100644
--- a/packages/nc-gui/plugins/initializeFeedbackForm.ts
+++ b/packages/nc-gui/plugins/initializeFeedbackForm.ts
@@ -1,4 +1,3 @@
-import type { Dayjs } from 'dayjs'
import dayjs from 'dayjs'
import { defineNuxtPlugin } from '#app'
@@ -8,32 +7,33 @@ const handleFeedbackForm = async () => {
const { $api } = useNuxtApp()
- const fetchFeedbackForm = async (now: Dayjs) => {
- try {
- const { data: feedbackForm } = await $api.instance.get('/api/v1/feedback_form')
- const isFetchedFormDuplicate = currentFeedbackForm.url === feedbackForm.url
-
- currentFeedbackForm = {
- url: feedbackForm.url,
- lastFormPollDate: now.toISOString(),
- createdAt: feedbackForm.created_at,
- isHidden: isFetchedFormDuplicate ? currentFeedbackForm.isHidden : false,
- }
- } catch (e) {
- console.error(e)
- }
- }
-
const isFirstTimePolling = !currentFeedbackForm.lastFormPollDate
const now = dayjs()
const lastFormPolledDate = dayjs(currentFeedbackForm.lastFormPollDate)
if (isFirstTimePolling || dayjs.duration(now.diff(lastFormPolledDate)).days() > 0) {
- await fetchFeedbackForm(now)
+ $api.instance
+ .get('/api/v1/feedback_form')
+ .then((response) => {
+ try {
+ const { data: feedbackForm } = response
+ if (!feedbackForm.error) {
+ const isFetchedFormDuplicate = currentFeedbackForm.url === feedbackForm.url
+
+ currentFeedbackForm = {
+ url: feedbackForm.url,
+ lastFormPollDate: now.toISOString(),
+ createdAt: feedbackForm.created_at,
+ isHidden: isFetchedFormDuplicate ? currentFeedbackForm.isHidden : false,
+ }
+ }
+ } catch (e) {}
+ })
+ .catch(() => {})
}
}
-export default defineNuxtPlugin(async () => {
- await handleFeedbackForm()
+export default defineNuxtPlugin(() => {
+ handleFeedbackForm()
})
diff --git a/packages/nocodb/src/lib/meta/api/utilApis.ts b/packages/nocodb/src/lib/meta/api/utilApis.ts
index 750e980590..7d5b462345 100644
--- a/packages/nocodb/src/lib/meta/api/utilApis.ts
+++ b/packages/nocodb/src/lib/meta/api/utilApis.ts
@@ -82,12 +82,14 @@ export async function versionInfo(_req: Request, res: Response) {
export async function feedbackFormGet(_req: Request, res: Response) {
axios
- .get('https://nocodb.com/api/v1/feedback_form')
+ .get('https://nocodb.com/api/v1/feedback_form', {
+ timeout: 5000,
+ })
.then((response) => {
res.json(response.data);
})
.catch((e) => {
- res.status(500).json({ error: e.message });
+ res.json({ error: e.message });
});
}
diff --git a/packages/nocodb/src/lib/utils/NcConfigFactory.ts b/packages/nocodb/src/lib/utils/NcConfigFactory.ts
index 3cfc471ca7..466be1ee19 100644
--- a/packages/nocodb/src/lib/utils/NcConfigFactory.ts
+++ b/packages/nocodb/src/lib/utils/NcConfigFactory.ts
@@ -214,6 +214,7 @@ export default class NcConfigFactory implements NcConfig {
...defaultConnectionConfig,
...parsedQuery,
host: url.hostname,
+ port: +url.port,
},
// pool: {
// min: 1,
@@ -325,6 +326,7 @@ export default class NcConfigFactory implements NcConfig {
...defaultConnectionConfig,
...parsedQuery,
host: url.hostname,
+ port: +url.port,
},
acquireConnectionTimeout: 600000,
...(url.searchParams.has('search_path')
diff --git a/scripts/sdk/swagger.json b/scripts/sdk/swagger.json
index 5e8b6b1f02..d484f4d2be 100644
--- a/scripts/sdk/swagger.json
+++ b/scripts/sdk/swagger.json
@@ -5821,9 +5821,6 @@
"pageInfo": {
"$ref": "#/components/schemas/Paginated"
}
- },
- "": {
- "type": "string"
}
},
"Base": {
@@ -6148,8 +6145,7 @@
"type": "string"
},
"title": {
- "type": "string",
- "required": true
+ "type": "string"
},
"deleted": {
"type": "boolean"
@@ -6193,7 +6189,8 @@
}
]
}
- }
+ },
+ "required": ["title"]
},
"TableInfo": {
"title": "Table",
@@ -6981,10 +6978,12 @@
"properties": {
"options": {
"type": "array",
- "required": true,
"$ref": "#/components/schemas/SelectOption"
}
},
+ "required": [
+ "options"
+ ],
"examples": [
{
"options": [