diff --git a/packages/nc-gui/components/cell/TextArea.vue b/packages/nc-gui/components/cell/TextArea.vue
index 0e9ed08bc6..5661aa09a4 100644
--- a/packages/nc-gui/components/cell/TextArea.vue
+++ b/packages/nc-gui/components/cell/TextArea.vue
@@ -1,6 +1,6 @@
diff --git a/packages/nc-gui/components/dashboard/Sidebar/TopSection/Header.vue b/packages/nc-gui/components/dashboard/Sidebar/TopSection/Header.vue
index cc340bc4c9..34bc188cf7 100644
--- a/packages/nc-gui/components/dashboard/Sidebar/TopSection/Header.vue
+++ b/packages/nc-gui/components/dashboard/Sidebar/TopSection/Header.vue
@@ -1 +1 @@
-
+
diff --git a/packages/nc-gui/components/dashboard/TreeView/BaseOptions.vue b/packages/nc-gui/components/dashboard/TreeView/BaseOptions.vue
index 1d0346177f..0dc681a9de 100644
--- a/packages/nc-gui/components/dashboard/TreeView/BaseOptions.vue
+++ b/packages/nc-gui/components/dashboard/TreeView/BaseOptions.vue
@@ -114,66 +114,4 @@ function openQuickImportDialog(type: string) {
-
-
-
-
-
diff --git a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue
index 91c699e9f9..34859e8ad6 100644
--- a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue
+++ b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue
@@ -472,8 +472,6 @@ const DlgProjectDuplicateOnOk = async (jobData: { id: string; project_id: string
-
-
diff --git a/packages/nc-gui/components/smartsheet/toolbar/GroupByMenu.vue b/packages/nc-gui/components/smartsheet/toolbar/GroupByMenu.vue
index 73cd5b9ea6..be838bfe15 100644
--- a/packages/nc-gui/components/smartsheet/toolbar/GroupByMenu.vue
+++ b/packages/nc-gui/components/smartsheet/toolbar/GroupByMenu.vue
@@ -10,6 +10,7 @@ import {
inject,
ref,
useMenuCloseOnEsc,
+ useNuxtApp,
useSmartsheetStoreOrThrow,
} from '#imports'
@@ -28,6 +29,8 @@ const isLocked = inject(IsLockedInj, ref(false))
const { gridViewCols, updateGridViewColumn } = useGridViewColumnOrThrow()
+const { $e } = useNuxtApp()
+
const _groupBy = ref<{ fk_column_id?: string; sort: string; order: number }[]>([])
const groupBy = computed<{ fk_column_id?: string; sort: string; order: number }[]>(() => {
@@ -106,6 +109,8 @@ const saveGroupBy = async () => {
}
}
+ $e('a:group-by:update', { groupBy: groupBy.value })
+
eventBus.emit(SmartsheetStoreEvents.GROUP_BY_RELOAD)
} catch (e) {
message.error('There was an error while updating view!')
@@ -200,7 +205,13 @@ watch(open, () => {
-
+
@@ -208,6 +219,7 @@ watch(open, () => {
()
-
const showCreateSort = ref(false)
const { isMobileMode } = useGlobal()
diff --git a/packages/nc-gui/components/tabs/Smartsheet.vue b/packages/nc-gui/components/tabs/Smartsheet.vue
index d3cb2cdffc..407336aa0d 100644
--- a/packages/nc-gui/components/tabs/Smartsheet.vue
+++ b/packages/nc-gui/components/tabs/Smartsheet.vue
@@ -54,9 +54,6 @@ const { isGallery, isGrid, isForm, isKanban, isLocked, isMap } = useProvideSmart
useSqlEditor()
-const { openedProject } = storeToRefs(useProjects())
-const { activeTable } = storeToRefs(useTablesStore())
-
const reloadEventHook = createEventHook()
const reloadViewMetaEventHook = createEventHook()
diff --git a/packages/nc-gui/components/workspace/CollaboratorsList.vue b/packages/nc-gui/components/workspace/CollaboratorsList.vue
index ba442379e0..7ef1d1da25 100644
--- a/packages/nc-gui/components/workspace/CollaboratorsList.vue
+++ b/packages/nc-gui/components/workspace/CollaboratorsList.vue
@@ -1,6 +1,5 @@
diff --git a/packages/nc-gui/pages/index/[typeOrId]/[projectId]/index/index/[viewId]/[[viewTitle]]/[...slugs].vue b/packages/nc-gui/pages/index/[typeOrId]/[projectId]/index/index/[viewId]/[[viewTitle]]/[...slugs].vue
index cc340bc4c9..34bc188cf7 100644
--- a/packages/nc-gui/pages/index/[typeOrId]/[projectId]/index/index/[viewId]/[[viewTitle]]/[...slugs].vue
+++ b/packages/nc-gui/pages/index/[typeOrId]/[projectId]/index/index/[viewId]/[[viewTitle]]/[...slugs].vue
@@ -1 +1 @@
-
+
diff --git a/packages/nc-gui/utils/iconUtils.ts b/packages/nc-gui/utils/iconUtils.ts
index 447e9b8fcb..8360e8c836 100644
--- a/packages/nc-gui/utils/iconUtils.ts
+++ b/packages/nc-gui/utils/iconUtils.ts
@@ -32,25 +32,19 @@ import MaterialSymbolsWarningOutlineRounded from '~icons/material-symbols/warnin
import MaterialSymbolsDragIndicator from '~icons/ri/draggable'
import NcSearch from '~icons/nc-icons/search'
import NcCreditCard from '~icons/nc-icons/credit-card'
-
import NcLayers from '~icons/nc-icons/layers'
import NcUsers from '~icons/nc-icons/users'
import NcCheck from '~icons/nc-icons/check'
import PlusSquare from '~icons/nc-icons/plus-square'
-
import PhLayout from '~icons/ph/layout'
-import Copy from '~icons/material-symbols/content-copy-outline'
import Delete from '~icons/material-symbols/delete-outline-rounded'
import CiFilter from '~icons/mdi/filter-outline'
-import Plus from '~icons/material-symbols/add-rounded'
import Minus from '~icons/material-symbols/remove-rounded'
import Code from '~icons/material-symbols/code-rounded'
import Palette from '~icons/material-symbols/palette-outline'
-import Erd from '~icons/material-symbols/account-tree-outline-rounded'
import MsSync from '~icons/material-symbols/sync-rounded'
import MdiRefresh from '~icons/mdi/refresh'
import ApiSnippet from '~icons/material-symbols/settings-ethernet-rounded'
-import MdiSettings from '~icons/mdi/cog-outline'
import Phishing from '~icons/material-symbols/phishing-outline-rounded'
import MdiAccountGroup from '~icons/mdi/account-group'
import MdiDotsVertical from '~icons/mdi/dots-vertical'
@@ -70,7 +64,6 @@ import NcIconsRowHeightExtraTall from '~icons/nc-icons/row-height-extra-tall'
import MsInfo from '~icons/material-symbols/info-outline-rounded'
import PhSparkleFill from '~icons/ph/sparkle-fill'
import NcArticle from '~icons/nc-icons/article'
-
import MsDatabase from '~icons/mdi/database-outline'
import MdiDatabaseSearch from '~icons/mdi/database-search'
import MdiMagicStaff from '~icons/mdi/magic-staff'
diff --git a/packages/nocodb/src/Noco.ts b/packages/nocodb/src/Noco.ts
index 7d91334bc6..a1cf38c6f9 100644
--- a/packages/nocodb/src/Noco.ts
+++ b/packages/nocodb/src/Noco.ts
@@ -18,8 +18,6 @@ import type { Express } from 'express';
import type http from 'http';
import { MetaTable } from '~/utils/globals';
-import Store from '~/models/Store';
-import { NC_LICENSE_KEY } from '~/constants';
import { AppModule } from '~/app.module';
import { isEE } from '~/utils';
diff --git a/packages/nocodb/src/db/BaseModelSqlv2.ts b/packages/nocodb/src/db/BaseModelSqlv2.ts
index b8c5350c7d..eff4594b6f 100644
--- a/packages/nocodb/src/db/BaseModelSqlv2.ts
+++ b/packages/nocodb/src/db/BaseModelSqlv2.ts
@@ -2176,7 +2176,7 @@ class BaseModelSqlv2 {
return res;
}
- async updateByPk(id, data, trx?, cookie?, disableOptimization = false) {
+ async updateByPk(id, data, trx?, cookie?, _disableOptimization = false) {
try {
const updateObj = await this.model.mapAliasToColumn(
data,
diff --git a/packages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts b/packages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts
index e53fd4b929..8057345b48 100644
--- a/packages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts
+++ b/packages/nocodb/src/db/formulav2/formulaQueryBuilderv2.ts
@@ -768,7 +768,7 @@ async function _formulaQueryBuilder(
} else if (pt.type === 'Literal') {
return { builder: knex.raw(`?${colAlias}`, [pt.value]) };
} else if (pt.type === 'Identifier') {
- const { builder } = await aliasToColumn?.[pt.name]?.();
+ const { builder } = (await aliasToColumn?.[pt.name]?.()) || {};
if (typeof builder === 'function') {
return { builder: knex.raw(`??${colAlias}`, builder(pt.fnName)) };
}
diff --git a/packages/nocodb/src/plugins/discord/Discord.ts b/packages/nocodb/src/plugins/discord/Discord.ts
index a83f522503..69bb697982 100644
--- a/packages/nocodb/src/plugins/discord/Discord.ts
+++ b/packages/nocodb/src/plugins/discord/Discord.ts
@@ -7,7 +7,7 @@ export default class Discord implements IWebhookNotificationAdapter {
}
public async sendMessage(content: string, payload: any): Promise {
- for (const { webhook_url } of payload?.channels) {
+ for (const { webhook_url } of payload?.channels || []) {
try {
return await axios.post(webhook_url, {
content,
diff --git a/packages/nocodb/src/plugins/mattermost/Mattermost.ts b/packages/nocodb/src/plugins/mattermost/Mattermost.ts
index 65bfa902b7..a52eed44a7 100644
--- a/packages/nocodb/src/plugins/mattermost/Mattermost.ts
+++ b/packages/nocodb/src/plugins/mattermost/Mattermost.ts
@@ -7,7 +7,7 @@ export default class Mattermost implements IWebhookNotificationAdapter {
}
public async sendMessage(text: string, payload: any): Promise {
- for (const { webhook_url } of payload?.channels) {
+ for (const { webhook_url } of payload?.channels || []) {
try {
return await axios.post(webhook_url, {
text,
diff --git a/packages/nocodb/src/plugins/slack/Slack.ts b/packages/nocodb/src/plugins/slack/Slack.ts
index 2e2ebcf0dc..e9f6f0ba71 100644
--- a/packages/nocodb/src/plugins/slack/Slack.ts
+++ b/packages/nocodb/src/plugins/slack/Slack.ts
@@ -7,7 +7,7 @@ export default class Slack implements IWebhookNotificationAdapter {
}
public async sendMessage(text: string, payload: any): Promise {
- for (const { webhook_url } of payload?.channels) {
+ for (const { webhook_url } of payload?.channels || []) {
try {
return await axios.post(webhook_url, {
text,
diff --git a/packages/nocodb/src/plugins/teams/Teams.ts b/packages/nocodb/src/plugins/teams/Teams.ts
index 868d7d5aa2..64940393c2 100644
--- a/packages/nocodb/src/plugins/teams/Teams.ts
+++ b/packages/nocodb/src/plugins/teams/Teams.ts
@@ -7,7 +7,7 @@ export default class Teams implements IWebhookNotificationAdapter {
}
public async sendMessage(Text: string, payload: any): Promise {
- for (const { webhook_url } of payload?.channels) {
+ for (const { webhook_url } of payload?.channels || []) {
try {
return await axios.post(webhook_url, {
Text,
diff --git a/packages/nocodb/src/plugins/twilio/Twilio.ts b/packages/nocodb/src/plugins/twilio/Twilio.ts
index fcbbbc7dcd..07dbfc2471 100644
--- a/packages/nocodb/src/plugins/twilio/Twilio.ts
+++ b/packages/nocodb/src/plugins/twilio/Twilio.ts
@@ -14,7 +14,7 @@ export default class Twilio implements IWebhookNotificationAdapter {
}
public async sendMessage(content: string, payload: any): Promise {
- for (const num of payload?.to?.split(/\s*?,\s*?/)) {
+ for (const num of payload?.to?.split(/\s*?,\s*?/) || []) {
try {
await this.client.messages.create({
body: content,
diff --git a/packages/nocodb/src/plugins/twilioWhatsapp/TwilioWhatsapp.ts b/packages/nocodb/src/plugins/twilioWhatsapp/TwilioWhatsapp.ts
index be5290580f..028dfd9172 100644
--- a/packages/nocodb/src/plugins/twilioWhatsapp/TwilioWhatsapp.ts
+++ b/packages/nocodb/src/plugins/twilioWhatsapp/TwilioWhatsapp.ts
@@ -14,7 +14,7 @@ export default class TwilioWhatsapp implements IWebhookNotificationAdapter {
}
public async sendMessage(content: string, payload: any): Promise {
- for (const num of payload?.to?.split(/\s*?,\s*?/)) {
+ for (const num of payload?.to?.split(/\s*?,\s*?/) || []) {
try {
await this.client.messages.create({
body: content,
diff --git a/packages/nocodb/src/services/api-docs/swagger/templates/params.ts b/packages/nocodb/src/services/api-docs/swagger/templates/params.ts
index b0d980b1f7..80701928fe 100644
--- a/packages/nocodb/src/services/api-docs/swagger/templates/params.ts
+++ b/packages/nocodb/src/services/api-docs/swagger/templates/params.ts
@@ -1,4 +1,4 @@
-import { isLinksOrLTAR, RelationTypes, UITypes } from 'nocodb-sdk'
+import { isLinksOrLTAR, RelationTypes, UITypes } from 'nocodb-sdk';
import type { LinkToAnotherRecordColumn } from '~/models';
import type { SwaggerColumn } from '../getSwaggerColumnMetas';
diff --git a/packages/nocodb/src/services/api-docs/swagger/templates/paths.ts b/packages/nocodb/src/services/api-docs/swagger/templates/paths.ts
index 9d68bf01bb..cbd7162fa1 100644
--- a/packages/nocodb/src/services/api-docs/swagger/templates/paths.ts
+++ b/packages/nocodb/src/services/api-docs/swagger/templates/paths.ts
@@ -1,4 +1,4 @@
-import { isLinksOrLTAR, ModelTypes, UITypes } from 'nocodb-sdk';
+import { isLinksOrLTAR, ModelTypes } from 'nocodb-sdk';
import {
columnNameParam,
columnNameQueryParam,
diff --git a/packages/nocodb/src/services/tables.service.ts b/packages/nocodb/src/services/tables.service.ts
index f4a5250edd..e0a02df51b 100644
--- a/packages/nocodb/src/services/tables.service.ts
+++ b/packages/nocodb/src/services/tables.service.ts
@@ -1,6 +1,12 @@
import { Injectable } from '@nestjs/common';
import DOMPurify from 'isomorphic-dompurify';
-import { isLinksOrLTAR, isVirtualCol, ModelTypes, ProjectRoles, UITypes } from 'nocodb-sdk'
+import {
+ isLinksOrLTAR,
+ isVirtualCol,
+ ModelTypes,
+ ProjectRoles,
+ UITypes,
+} from 'nocodb-sdk';
import { AppEvents } from 'nocodb-sdk';
import { MetaDiffsService } from './meta-diffs.service';
import { ColumnsService } from './columns.service';