From b0c1f1e1c7112f269da3c04e87b91f8969bd98a9 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 14 Mar 2024 15:50:32 +0530 Subject: [PATCH 01/22] Post-release master to develop sync (#7862) * [create-pull-request] automated change Signed-off-by: GitHub * chore: downgrade sqlite version for executable Signed-off-by: Pranav C * chore: update sdk path Signed-off-by: Pranav C --------- Signed-off-by: GitHub Signed-off-by: Pranav C Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pranavxc --- packages/nc-gui/package.json | 2 +- packages/nc-lib-gui/package.json | 2 +- packages/nocodb-sdk/package.json | 2 +- packages/nocodb-sdk/src/lib/Api.ts | 13 +++++++++---- packages/nocodb/package.json | 4 ++-- pnpm-lock.yaml | 17 +++++++++-------- scripts/pkg-executable/package.json | 2 +- 7 files changed, 24 insertions(+), 18 deletions(-) diff --git a/packages/nc-gui/package.json b/packages/nc-gui/package.json index 79847c2899..7ca60b2115 100644 --- a/packages/nc-gui/package.json +++ b/packages/nc-gui/package.json @@ -168,4 +168,4 @@ "vitest": "^1.2.2", "windicss": "^3.5.6" } -} \ No newline at end of file +} diff --git a/packages/nc-lib-gui/package.json b/packages/nc-lib-gui/package.json index e1dcd6c312..2b7023e8d8 100644 --- a/packages/nc-lib-gui/package.json +++ b/packages/nc-lib-gui/package.json @@ -1,6 +1,6 @@ { "name": "nc-lib-gui", - "version": "0.204.4", + "version": "0.204.5", "description": "NocoDB GUI", "author": { "name": "NocoDB", diff --git a/packages/nocodb-sdk/package.json b/packages/nocodb-sdk/package.json index 0e2ea72df0..d733a6dd09 100644 --- a/packages/nocodb-sdk/package.json +++ b/packages/nocodb-sdk/package.json @@ -1,6 +1,6 @@ { "name": "nocodb-sdk", - "version": "0.204.4", + "version": "0.204.5", "description": "NocoDB SDK", "main": "build/main/index.js", "typings": "build/main/index.d.ts", diff --git a/packages/nocodb-sdk/src/lib/Api.ts b/packages/nocodb-sdk/src/lib/Api.ts index f3effefbb3..da9c4cd1a7 100644 --- a/packages/nocodb-sdk/src/lib/Api.ts +++ b/packages/nocodb-sdk/src/lib/Api.ts @@ -2147,6 +2147,8 @@ export interface ProjectReqType { type?: 'database' | 'documentation' | 'dashboard'; /** List of Linked Database Base IDs (only used for Dashboard Projects so far) */ linked_db_project_ids?: string[]; + /** Base Meta */ + meta?: MetaType; } /** @@ -2184,10 +2186,7 @@ export interface ProjectUpdateReqType { * Model for Base User Request */ export interface ProjectUserReqType { - /** - * Base User Email - * @format email - */ + /** Base User Email */ email: string; /** Base User Role */ roles: @@ -7723,6 +7722,8 @@ export class Api< sortArrJson?: string; /** Used for multiple filter queries */ filterArrJson?: string; + /** Comma separated list of pks */ + pks?: string; }, params: RequestParams = {} ) => @@ -9214,6 +9215,8 @@ export class Api< sortArrJson?: string; /** Used for multiple filter queries */ filterArrJson?: string; + /** Comma separated list of pks */ + pks?: string; }, params: RequestParams = {} ) => @@ -11028,6 +11031,8 @@ export class Api< sortArrJson?: string; /** Used for multiple filter queries */ filterArrJson?: string; + /** Comma separated list of pks */ + pks?: string; }, params: RequestParams = {} ) => diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json index f9fcf189a7..8f4dafd403 100644 --- a/packages/nocodb/package.json +++ b/packages/nocodb/package.json @@ -1,6 +1,6 @@ { "name": "nocodb", - "version": "0.204.4", + "version": "0.204.5", "description": "NocoDB Backend", "main": "dist/bundle.js", "author": { @@ -132,7 +132,7 @@ "mysql2": "^3.9.2", "nanoid": "^3.3.7", "nc-help": "0.3.1", - "nc-lib-gui": "0.204.4", + "nc-lib-gui": "0.204.5", "nc-plugin": "^0.1.3", "ncp": "^2.0.0", "nestjs-kafka": "^1.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abf9f6299c..3b6cd43a73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -686,8 +686,8 @@ importers: specifier: 0.3.1 version: 0.3.1(asn1.js@5.4.1)(debug@4.3.4)(knex@2.4.2) nc-lib-gui: - specifier: 0.204.4 - version: 0.204.4 + specifier: 0.204.5 + version: 0.204.5 nc-plugin: specifier: ^0.1.3 version: 0.1.3 @@ -901,7 +901,7 @@ importers: version: 6.3.4 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2) + version: 29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2) ts-loader: specifier: ^9.5.1 version: 9.5.1(typescript@5.3.2)(webpack@5.90.3) @@ -971,7 +971,7 @@ importers: version: 5.0.5 ts-jest: specifier: ^29.1.2 - version: 29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2) + version: 29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2) tsc-alias: specifier: ^1.8.8 version: 1.8.8 @@ -17311,6 +17311,7 @@ packages: /ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + requiresBuild: true /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -20256,8 +20257,8 @@ packages: - supports-color dev: false - /nc-lib-gui@0.204.4: - resolution: {integrity: sha512-zLTGOpx3s9bPOa5AxHxDflfYdo08OaiYCvgvLnT9+XZSBDw+xCt/HBcvOQQ8TjjNYbg3KISdEkNDeiIt33pLNA==} + /nc-lib-gui@0.204.5: + resolution: {integrity: sha512-n9g9VIcVPadCCdEYpyyMMKBJ/INklLujXHuXe+PhQClN3Ktxcr3ozDENVbnGvCVLaadsImA5nbNlulIgXsJVaw==} dependencies: express: 4.18.3 transitivePeerDependencies: @@ -25009,7 +25010,7 @@ packages: engines: {node: '>=14.0.0'} dev: false - /ts-jest@29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.2): + /ts-jest@29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.2): resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -25030,7 +25031,7 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.9 + '@babel/core': 7.23.7 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.11.25)(ts-node@10.9.2) diff --git a/scripts/pkg-executable/package.json b/scripts/pkg-executable/package.json index 08d223738f..6ba58986d6 100644 --- a/scripts/pkg-executable/package.json +++ b/scripts/pkg-executable/package.json @@ -33,7 +33,7 @@ "nocodb": "0.204.4" }, "overrides": { - "sqlite3": "5.1.7" + "sqlite3": "5.1.6" }, "devDependencies": { "@mapbox/node-pre-gyp": "^1.0.11" From 953217a59f94b65030a7210cb4aa55129c7c4684 Mon Sep 17 00:00:00 2001 From: Salim B Date: Thu, 14 Mar 2024 14:56:14 +0100 Subject: [PATCH 02/22] Tweak terminology (#7866) --- .../020.getting-started/030.terminologies.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/noco-docs/docs/020.getting-started/030.terminologies.md b/packages/noco-docs/docs/020.getting-started/030.terminologies.md index afdc44b560..d4582965eb 100644 --- a/packages/noco-docs/docs/020.getting-started/030.terminologies.md +++ b/packages/noco-docs/docs/020.getting-started/030.terminologies.md @@ -30,17 +30,16 @@ The layout below shows the main parts of NocoDB's user interface. | Term | Description | |-----------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Base | A base is a collection of one or more tables, often related and linked to one another. Alternative term `Project` | -| Base Owner | Member who had created base. There can be only one owner for a base & ownership is non-transferable | -| Base member | Base member with specific access permissions. Alternative term `Member` `User` | -| Cell | A cell represents the space created where a column and a row intersect within a grid-like structure. It serves as the fundamental unit for storing data | -| Field | A field or column in a table is a container for values that share the same data type. Alternative term `Column` | -| Modal | In the context of user interfaces, a modal is a type of dialog or overlay that appears on top of the main content or interface and requires user interaction before the user can proceed. Modals are often used to gather user input, display alerts, or confirm actions. They typically "block" the rest of the interface until the user dismisses them, making them a focused and attention-grabbing element | -| Record | A record represents a row in a table. Alternative term `Row` | -| Table | A base is housed in tables, where data is logically arranged into rows and columns. A base can have multiple tables. Alternative term `Model` | -| Term | Description | +| Base | A base is a collection of one or more data sources that each contain one or more tables, often related and linked to one another. Alternative term: `Project` | +| Base owner | Member who created the base. There can be only one owner for a base and ownership is non-transferable. | +| Base member | Base member with specific access permissions. Alternative terms: `Member`, `User` | +| Cell | A cell represents the space created where a column and a row intersect within a grid-like structure. It serves as the fundamental unit for storing data. | +| Field | A field or column in a table is a container for values that share the same data type. Alternative term: `Column` | +| Modal | In the context of user interfaces, a modal is a type of dialog or overlay that appears on top of the main content or interface and requires user interaction before the user can proceed. Modals are often used to gather user input, display alerts, or confirm actions. They typically "block" the rest of the interface until the user dismisses them, making them a focused and attention-grabbing element. | +| Record | A record represents a row in a table. Alternative term: `Row` | +| Table | A table is a matrix where data is logically arranged into rows and columns. A base can have multiple tables. Alternative term: `Model` | | View | A view defines how data within a table is presented and interacted with. Default view type is the grid view; other supported view types include form, gallery, and kanban views. | | Webhook | A webhook is a mechanism that allows one system to send real-time data to another system or application. It enables automated notifications and data synchronization between different services or platforms by triggering predefined actions or events in response to specific events or updates in the source system. | -| Workspace Owner | Member who had created workspace. There can be only one owner for a workspace & ownership is non-transferable | -| Workspace member | Workspace member with specific access permissions. Alternative term `Member` `User` | -| Workspace | A workspace is a collection of one or more bases. It offers collaborative access to bases by enabling you to bring together interconnected tables, views, and various elements into a unified and organized entity | +| Workspace | A workspace is a collection of one or more bases. It offers collaborative access to bases by enabling you to bring together interconnected tables, views, and various elements into a unified and organized entity. | +| Workspace owner | Member who had created the workspace. There can be only one owner for a workspace and ownership is non-transferable. | +| Workspace member | Workspace member with specific access permissions. Alternative terms: `Member`, `User` | From d95b9def0bf662d8b969e9ebc5b1981b61223060 Mon Sep 17 00:00:00 2001 From: navi Date: Thu, 14 Mar 2024 13:57:03 +0000 Subject: [PATCH 03/22] New Crowdin updates (#7863) * New translations en.json (French) * New translations en.json (Spanish) * New translations en.json (Arabic) * New translations en.json (Czech) * New translations en.json (Danish) * New translations en.json (German) * New translations en.json (Basque) * New translations en.json (Finnish) * New translations en.json (Hebrew) * New translations en.json (Italian) * New translations en.json (Japanese) * New translations en.json (Korean) * New translations en.json (Dutch) * New translations en.json (Norwegian) * New translations en.json (Polish) * New translations en.json (Portuguese) * New translations en.json (Russian) * New translations en.json (Slovak) * New translations en.json (Slovenian) * New translations en.json (Swedish) * New translations en.json (Turkish) * New translations en.json (Ukrainian) * New translations en.json (Chinese Simplified) * New translations en.json (Chinese Traditional) * New translations en.json (Vietnamese) * New translations en.json (Portuguese, Brazilian) * New translations en.json (Indonesian) * New translations en.json (Persian) * New translations en.json (Thai) * New translations en.json (Croatian) * New translations en.json (Latvian) * New translations en.json (Hindi) * New translations en.json (Bengali, India) --- packages/nc-gui/lang/ar.json | 5 +++-- packages/nc-gui/lang/bn_IN.json | 5 +++-- packages/nc-gui/lang/cs.json | 5 +++-- packages/nc-gui/lang/da.json | 5 +++-- packages/nc-gui/lang/de.json | 5 +++-- packages/nc-gui/lang/es.json | 5 +++-- packages/nc-gui/lang/eu.json | 5 +++-- packages/nc-gui/lang/fa.json | 5 +++-- packages/nc-gui/lang/fi.json | 5 +++-- packages/nc-gui/lang/fr.json | 5 +++-- packages/nc-gui/lang/he.json | 5 +++-- packages/nc-gui/lang/hi.json | 5 +++-- packages/nc-gui/lang/hr.json | 5 +++-- packages/nc-gui/lang/id.json | 5 +++-- packages/nc-gui/lang/it.json | 5 +++-- packages/nc-gui/lang/ja.json | 5 +++-- packages/nc-gui/lang/ko.json | 5 +++-- packages/nc-gui/lang/lv.json | 5 +++-- packages/nc-gui/lang/nl.json | 5 +++-- packages/nc-gui/lang/no.json | 5 +++-- packages/nc-gui/lang/pl.json | 5 +++-- packages/nc-gui/lang/pt.json | 5 +++-- packages/nc-gui/lang/pt_BR.json | 5 +++-- packages/nc-gui/lang/ru.json | 5 +++-- packages/nc-gui/lang/sk.json | 5 +++-- packages/nc-gui/lang/sl.json | 5 +++-- packages/nc-gui/lang/sv.json | 5 +++-- packages/nc-gui/lang/th.json | 5 +++-- packages/nc-gui/lang/tr.json | 5 +++-- packages/nc-gui/lang/uk.json | 5 +++-- packages/nc-gui/lang/vi.json | 5 +++-- packages/nc-gui/lang/zh-Hans.json | 5 +++-- packages/nc-gui/lang/zh-Hant.json | 5 +++-- 33 files changed, 99 insertions(+), 66 deletions(-) diff --git a/packages/nc-gui/lang/ar.json b/packages/nc-gui/lang/ar.json index 9a48203ea8..918e4684a4 100644 --- a/packages/nc-gui/lang/ar.json +++ b/packages/nc-gui/lang/ar.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/bn_IN.json b/packages/nc-gui/lang/bn_IN.json index 2310652475..63f5789e45 100644 --- a/packages/nc-gui/lang/bn_IN.json +++ b/packages/nc-gui/lang/bn_IN.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/cs.json b/packages/nc-gui/lang/cs.json index b17351cc1b..f7bbe93822 100644 --- a/packages/nc-gui/lang/cs.json +++ b/packages/nc-gui/lang/cs.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/da.json b/packages/nc-gui/lang/da.json index 0c8684f2bd..43ef67a453 100644 --- a/packages/nc-gui/lang/da.json +++ b/packages/nc-gui/lang/da.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/de.json b/packages/nc-gui/lang/de.json index c8046cc3df..43d7ff0af8 100644 --- a/packages/nc-gui/lang/de.json +++ b/packages/nc-gui/lang/de.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Name des Arbeitsbereichs ändern", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/es.json b/packages/nc-gui/lang/es.json index 1ec0c7b264..395635eaee 100644 --- a/packages/nc-gui/lang/es.json +++ b/packages/nc-gui/lang/es.json @@ -429,7 +429,8 @@ "setDefault": "Establecer por defecto" }, "selectFieldsFromRightPannelToAddHere": "Selecciona los campos del panel derecho para añadirlos aquí", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Seleccionar Año", @@ -681,7 +682,7 @@ "sourceNameRequired": "Se requiere el nombre de la fuente", "changeWsName": "Cambiar el nombre del espacio de trabajo", "pressEnter": "Pulsa Enter", - "newFormLoaded": "El nuevo formulario se cargará después de", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "Nuevo campo", diff --git a/packages/nc-gui/lang/eu.json b/packages/nc-gui/lang/eu.json index 943c06fd57..d5618171d6 100644 --- a/packages/nc-gui/lang/eu.json +++ b/packages/nc-gui/lang/eu.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/fa.json b/packages/nc-gui/lang/fa.json index 36c17558d6..d43fc7005d 100644 --- a/packages/nc-gui/lang/fa.json +++ b/packages/nc-gui/lang/fa.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/fi.json b/packages/nc-gui/lang/fi.json index efa2f54cb0..6632cb522c 100644 --- a/packages/nc-gui/lang/fi.json +++ b/packages/nc-gui/lang/fi.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/fr.json b/packages/nc-gui/lang/fr.json index 3af8a1226e..43d2542dbb 100644 --- a/packages/nc-gui/lang/fr.json +++ b/packages/nc-gui/lang/fr.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Appuyez sur Entrée", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/he.json b/packages/nc-gui/lang/he.json index f0ec6f4bdc..28418a6b8a 100644 --- a/packages/nc-gui/lang/he.json +++ b/packages/nc-gui/lang/he.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/hi.json b/packages/nc-gui/lang/hi.json index fbfbe1f9a6..8ab5171e8c 100644 --- a/packages/nc-gui/lang/hi.json +++ b/packages/nc-gui/lang/hi.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/hr.json b/packages/nc-gui/lang/hr.json index a31b789de7..1110c31da3 100644 --- a/packages/nc-gui/lang/hr.json +++ b/packages/nc-gui/lang/hr.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/id.json b/packages/nc-gui/lang/id.json index 09a928fa91..dade1e073a 100644 --- a/packages/nc-gui/lang/id.json +++ b/packages/nc-gui/lang/id.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/it.json b/packages/nc-gui/lang/it.json index 37f5de219c..08ca359eb5 100644 --- a/packages/nc-gui/lang/it.json +++ b/packages/nc-gui/lang/it.json @@ -429,7 +429,8 @@ "setDefault": "Imposta default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Nome sorgente obbligatorio", "changeWsName": "Cambia nome area di lavoro", "pressEnter": "Premi Invio", - "newFormLoaded": "Il nuovo form verrà caricato dopo", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "Nuovo campo", diff --git a/packages/nc-gui/lang/ja.json b/packages/nc-gui/lang/ja.json index e28e562d1a..3e970e8848 100644 --- a/packages/nc-gui/lang/ja.json +++ b/packages/nc-gui/lang/ja.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/ko.json b/packages/nc-gui/lang/ko.json index 49b7497188..335fc960f8 100644 --- a/packages/nc-gui/lang/ko.json +++ b/packages/nc-gui/lang/ko.json @@ -429,7 +429,8 @@ "setDefault": "기본값 설정" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "소스 이름이 필요합니다", "changeWsName": "작업 공간 이름 변경", "pressEnter": "Enter를 누르세요", - "newFormLoaded": "새로운 폼이 로드되었습니다.", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/lv.json b/packages/nc-gui/lang/lv.json index 13a8dc188d..e3ba9665f3 100644 --- a/packages/nc-gui/lang/lv.json +++ b/packages/nc-gui/lang/lv.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/nl.json b/packages/nc-gui/lang/nl.json index 650c68fbb4..d3657adf2b 100644 --- a/packages/nc-gui/lang/nl.json +++ b/packages/nc-gui/lang/nl.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/no.json b/packages/nc-gui/lang/no.json index 9fae7cbf82..672cf3c49c 100644 --- a/packages/nc-gui/lang/no.json +++ b/packages/nc-gui/lang/no.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/pl.json b/packages/nc-gui/lang/pl.json index e812dd0c61..0c25509d0a 100644 --- a/packages/nc-gui/lang/pl.json +++ b/packages/nc-gui/lang/pl.json @@ -429,7 +429,8 @@ "setDefault": "Ustaw domyślne" }, "selectFieldsFromRightPannelToAddHere": "Wybierz pole z panelu po prawej stronie aby tutaj dodać", - "noOptionsFound": "Nie znaleziono opcji" + "noOptionsFound": "Nie znaleziono opcji", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Wybierz rok", @@ -681,7 +682,7 @@ "sourceNameRequired": "nazwa źródła jest wymagana", "changeWsName": "Zmień nazwę przestrzeni roboczej", "pressEnter": "Naciśnij Enter", - "newFormLoaded": "Nowy formularz zostanie załadowany po", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "Nowe pole", diff --git a/packages/nc-gui/lang/pt.json b/packages/nc-gui/lang/pt.json index 0b2345522c..5707b2967c 100644 --- a/packages/nc-gui/lang/pt.json +++ b/packages/nc-gui/lang/pt.json @@ -429,7 +429,8 @@ "setDefault": "Definir como padrão" }, "selectFieldsFromRightPannelToAddHere": "Seleccione campos do painel direito para adicionar aqui", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Selecionar ano", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/pt_BR.json b/packages/nc-gui/lang/pt_BR.json index 1bbc6e153c..9c73e1d59d 100644 --- a/packages/nc-gui/lang/pt_BR.json +++ b/packages/nc-gui/lang/pt_BR.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/ru.json b/packages/nc-gui/lang/ru.json index b0bfc41c59..0fe6ee28fb 100644 --- a/packages/nc-gui/lang/ru.json +++ b/packages/nc-gui/lang/ru.json @@ -429,7 +429,8 @@ "setDefault": "Установить по умолчанию" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Имя источника обязательно", "changeWsName": "Изменить название рабочего пространства", "pressEnter": "Нажмите Enter", - "newFormLoaded": "Новая форма будет загружена после", + "newFormLoaded": "Loading new form in", "webhook": "Вебхук", "multiField": { "newField": "Новое поле", diff --git a/packages/nc-gui/lang/sk.json b/packages/nc-gui/lang/sk.json index f82ee2e964..7b5ad0a005 100644 --- a/packages/nc-gui/lang/sk.json +++ b/packages/nc-gui/lang/sk.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/sl.json b/packages/nc-gui/lang/sl.json index 9c7550fb08..543e2ea69b 100644 --- a/packages/nc-gui/lang/sl.json +++ b/packages/nc-gui/lang/sl.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/sv.json b/packages/nc-gui/lang/sv.json index 3871039a79..701bbbdc45 100644 --- a/packages/nc-gui/lang/sv.json +++ b/packages/nc-gui/lang/sv.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/th.json b/packages/nc-gui/lang/th.json index 67a1485167..9b639013d8 100644 --- a/packages/nc-gui/lang/th.json +++ b/packages/nc-gui/lang/th.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/tr.json b/packages/nc-gui/lang/tr.json index 46ca6876da..b302a2e3f2 100644 --- a/packages/nc-gui/lang/tr.json +++ b/packages/nc-gui/lang/tr.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/uk.json b/packages/nc-gui/lang/uk.json index 1f58b80be2..aada1f4aa5 100644 --- a/packages/nc-gui/lang/uk.json +++ b/packages/nc-gui/lang/uk.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/vi.json b/packages/nc-gui/lang/vi.json index bb8b6f9525..f6ca3de271 100644 --- a/packages/nc-gui/lang/vi.json +++ b/packages/nc-gui/lang/vi.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", diff --git a/packages/nc-gui/lang/zh-Hans.json b/packages/nc-gui/lang/zh-Hans.json index 5a54802e1b..a472dc3d55 100644 --- a/packages/nc-gui/lang/zh-Hans.json +++ b/packages/nc-gui/lang/zh-Hans.json @@ -429,7 +429,8 @@ "setDefault": "设为默认" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "必须填写源名称", "changeWsName": "更改工作区名称", "pressEnter": "按回车键", - "newFormLoaded": "新表格将在", + "newFormLoaded": "Loading new form in", "webhook": "网络钩子", "multiField": { "newField": "新建字段", diff --git a/packages/nc-gui/lang/zh-Hant.json b/packages/nc-gui/lang/zh-Hant.json index 7cfd258f35..b63b0babee 100644 --- a/packages/nc-gui/lang/zh-Hant.json +++ b/packages/nc-gui/lang/zh-Hant.json @@ -429,7 +429,8 @@ "setDefault": "Set Default" }, "selectFieldsFromRightPannelToAddHere": "Select fields from right panel to add here", - "noOptionsFound": "No options found" + "noOptionsFound": "No options found", + "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { "selectYear": "Select Year", @@ -681,7 +682,7 @@ "sourceNameRequired": "Source name is required", "changeWsName": "Change Workspace Name", "pressEnter": "Press Enter", - "newFormLoaded": "New form will be loaded after", + "newFormLoaded": "Loading new form in", "webhook": "Webhook", "multiField": { "newField": "New field", From bfd59264e7596b4a33032bbe6ef805d223b761d9 Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Thu, 14 Mar 2024 19:33:26 +0530 Subject: [PATCH 04/22] feat(nc-ui): swap pagination shortcuts arrowUp & arrowDown (#7865) --- .../components/smartsheet/grid/usePaginationShortcuts.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/grid/usePaginationShortcuts.ts b/packages/nc-gui/components/smartsheet/grid/usePaginationShortcuts.ts index 9eff4121c4..e9f33f385e 100644 --- a/packages/nc-gui/components/smartsheet/grid/usePaginationShortcuts.ts +++ b/packages/nc-gui/components/smartsheet/grid/usePaginationShortcuts.ts @@ -56,9 +56,7 @@ const usePaginationShortcuts = ({ if (!e.altKey) return e.preventDefault() - const page = 1 - - await changePageWithLoading(page) + await changePageWithLoading(getTotalPages()) } const onUp = async (e: KeyboardEvent) => { @@ -67,7 +65,7 @@ const usePaginationShortcuts = ({ if (!e.altKey) return e.preventDefault() - await changePageWithLoading(getTotalPages()) + await changePageWithLoading(1) } return { From 872d5b78949b21decea582bff05def4f044924a0 Mon Sep 17 00:00:00 2001 From: IFGGit <162738418+IFGGit@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:20:49 +0200 Subject: [PATCH 05/22] chore(deps): Add integrity for the xlsx tarball (#7835) We are building nocodb using pnpm2nix-nzbr [1], and that library requires all dependencies to have integrities. And it's more secure anyway, since if someone hijacks that website and replaces that tarball with something malicious, pnpm will refuse to use that. [1]: https://github.com/nzbr/pnpm2nix-nzbr --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b6cd43a73..1104586c55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27502,7 +27502,7 @@ packages: dev: true '@cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz': - resolution: {tarball: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz} + resolution: {integrity: sha512-8IfgFctB7fkvqkTGF2MnrDrC6vzE28Wcc1aSbdDQ+4/WFtzfS73YuapbuaPZwGqpR2e0EeDMIrFOJubQVLWFNA==, tarball: https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz} name: xlsx version: 0.19.3 engines: {node: '>=0.8'} From 7dbd824a156efb1f3b1db34c8d91d6860ae095b3 Mon Sep 17 00:00:00 2001 From: Anbarasu Date: Fri, 15 Mar 2024 11:40:07 +0530 Subject: [PATCH 06/22] fix(nocodb): comment update not working for other users (#7873) --- .../middlewares/extract-ids/extract-ids.middleware.ts | 11 +++++++++++ packages/nocodb/src/utils/acl.ts | 2 ++ 2 files changed, 13 insertions(+) diff --git a/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts b/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts index 22bbf1bb45..f8f5bce37a 100644 --- a/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts +++ b/packages/nocodb/src/middlewares/extract-ids/extract-ids.middleware.ts @@ -11,6 +11,7 @@ import type { NestMiddleware, } from '@nestjs/common'; import { + Audit, Base, Column, Filter, @@ -159,6 +160,16 @@ export class ExtractIdsMiddleware implements NestMiddleware, CanActivate { id: req.query?.fk_model_id, }); req.ncBaseId = model?.base_id; + } else if ( + [ + '/api/v1/db/meta/audits/:auditId/comment', + '/api/v2/meta/audits/:auditId/comment', + ].some((auditPatchPath) => req.route.path === auditPatchPath) && + req.method === 'PATCH' && + req.params.auditId + ) { + const audit = await Audit.get(params.auditId); + req.ncBaseId = audit?.base_id; } // extract base id from query params only if it's userMe endpoint or webhook plugin list else if ( diff --git a/packages/nocodb/src/utils/acl.ts b/packages/nocodb/src/utils/acl.ts index 1501d27e84..09fcc2a89e 100644 --- a/packages/nocodb/src/utils/acl.ts +++ b/packages/nocodb/src/utils/acl.ts @@ -92,6 +92,7 @@ const permissionScopes = { 'swaggerJson', 'commentList', 'commentsCount', + 'commentUpdate', 'hideAllColumns', 'showAllColumns', 'auditRowUpdate', @@ -197,6 +198,7 @@ const rolePermissions: commentList: true, commentsCount: true, commentRow: true, + commentUpdate: true, }, }, [ProjectRoles.EDITOR]: { From fe02007f5af57404dc1873f356fde0ffe03293b5 Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Fri, 15 Mar 2024 12:56:40 +0530 Subject: [PATCH 07/22] Nc fix(nc-gui): select type fields default value update issue (#7864) * fix(nc-gui): select type fields default value update issue * chore(nc-gui): lint * fix(nc-gui): pr review changes #2535 * fix: remove null assertion --------- Co-authored-by: Raju Udava <86527202+dstala@users.noreply.github.com> --- .../dashboard/TreeView/ProjectNode.vue | 2 +- .../smartsheet/column/SelectOptions.vue | 95 +++++++++++++------ 2 files changed, 67 insertions(+), 30 deletions(-) diff --git a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue index 44611a4b0a..b173089da6 100644 --- a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue +++ b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue @@ -527,7 +527,7 @@ const projectDelete = () => { v-if="base?.sources?.[0]?.enabled" key="erd" data-testid="nc-sidebar-base-relations" - @click="openErdView(base?.sources?.[0]!)" + @click="openErdView(base?.sources?.[0])" >
diff --git a/packages/nc-gui/components/smartsheet/column/SelectOptions.vue b/packages/nc-gui/components/smartsheet/column/SelectOptions.vue index 111f0751d0..99ec766c1a 100644 --- a/packages/nc-gui/components/smartsheet/column/SelectOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/SelectOptions.vue @@ -11,6 +11,8 @@ interface Option { id?: string fk_colum_id?: string order?: number + status?: 'remove' + index?: number } const props = defineProps<{ @@ -30,7 +32,7 @@ const { optionsMagic: _optionsMagic } = useNocoEe() const optionsWrapperDomRef = ref() -const options = ref<(Option & { status?: 'remove'; index?: number })[]>([]) +const options = ref([]) const isAddingOption = ref(false) @@ -39,15 +41,14 @@ const OPTIONS_PAGE_COUNT = 20 const loadedOptionAnchor = ref(OPTIONS_PAGE_COUNT) const isReverseLazyLoad = ref(false) -const renderedOptions = ref<(Option & { status?: 'remove'; index?: number })[]>([]) -const savedDefaultOption = ref
From 4c4bd240a83471086b10a32e45e7f955a0315b71 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:26:02 +0000 Subject: [PATCH 08/22] fix: api-snippet-v2 --- packages/nc-gui/components/smartsheet/details/Api.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/details/Api.vue b/packages/nc-gui/components/smartsheet/details/Api.vue index f8683425aa..d6b2dae3df 100644 --- a/packages/nc-gui/components/smartsheet/details/Api.vue +++ b/packages/nc-gui/components/smartsheet/details/Api.vue @@ -82,11 +82,7 @@ const selectedClient = ref(langs[0].clients && langs[0].clie const selectedLangName = ref(langs[0].name) const apiUrl = computed( - () => - new URL( - `/api/v1/db/data/noco/${base.value?.id}/${meta.value?.id}/views/${view.value?.id}`, - (appInfo.value && appInfo.value.ncSiteUrl) || '/', - ).href, + () => new URL(`/api/v2/tables/${meta.value?.id}/records`, (appInfo.value && appInfo.value.ncSiteUrl) || '/').href, ) const snippet = computed( From 1048fe90a48afd3be94ccde8f0455ac2b6b7a47f Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Fri, 15 Mar 2024 15:26:03 +0000 Subject: [PATCH 09/22] fix: include viewId as query param --- .../nc-gui/components/smartsheet/details/Api.vue | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/details/Api.vue b/packages/nc-gui/components/smartsheet/details/Api.vue index d6b2dae3df..efb7197a20 100644 --- a/packages/nc-gui/components/smartsheet/details/Api.vue +++ b/packages/nc-gui/components/smartsheet/details/Api.vue @@ -91,12 +91,15 @@ const snippet = computed( method: 'GET', headers: [{ name: 'xc-auth', value: token.value, comment: 'JWT Auth token' }], url: apiUrl.value, - queryString: Object.entries(queryParams.value || {}).map(([name, value]) => { - return { - name, - value: String(value), - } - }), + queryString: [ + ...Object.entries(queryParams.value || {}).map(([name, value]) => { + return { + name, + value: String(value), + } + }), + { name: 'viewId', value: view.value?.id }, + ], }), ) From f3c626abc3a401c0123970bb7745155f99b2223c Mon Sep 17 00:00:00 2001 From: Anbarasu Date: Sat, 16 Mar 2024 12:12:05 +0530 Subject: [PATCH 10/22] feat(nc-gui): new share ui (#7845) * feat(nc-gui): new share ui * fix(nc-gui): hide view, base tab when opened from base * fix(nc-gui): update prefill form labels * fix(nc-gui): invite user to base * fix(playwright): update share tests * fix(nc-gui): enable shared base edit access in oss * fix(nc-gui): truncate text if overflows * fix(nc-gui): show tooltips if truncated * fix(nc-gui): animate icons * fix(playwright): oss tests fix * fix(nc-gui): review changes * fix(nc-gui): minor changes * fix(nc-gui): update tabs * fix(nc-gui): update translation * fix(nc-gui): update heading size * feat(nc-gui): support sharing any views from share modal * fix(nc-gui): review changes * fix(nc-gui): pr review changes --- .../dlg/share-and-collaborate/ShareBase.vue | 489 ++++++++++++++++-- .../dlg/share-and-collaborate/SharePage.vue | 376 ++++++++------ .../dlg/share-and-collaborate/View.vue | 248 ++++----- .../nc-gui/components/general/CopyUrl.vue | 4 +- .../components/general/ShareProject.vue | 3 +- packages/nc-gui/components/nc/Modal.vue | 4 +- packages/nc-gui/components/nc/Switch.vue | 23 +- packages/nc-gui/components/nc/Tabs.vue | 2 +- .../components/project/ShareBaseDlg.vue | 9 +- packages/nc-gui/components/roles/Badge.vue | 2 +- .../components/workspace/InviteSection.vue | 4 - packages/nc-gui/lang/en.json | 8 +- .../pages/Dashboard/common/Topbar/Share.ts | 38 +- .../pages/Dashboard/common/Topbar/index.ts | 5 +- .../tests/db/features/baseShare.spec.ts | 5 +- 15 files changed, 819 insertions(+), 401 deletions(-) diff --git a/packages/nc-gui/components/dlg/share-and-collaborate/ShareBase.vue b/packages/nc-gui/components/dlg/share-and-collaborate/ShareBase.vue index 3bd06fe17e..f05f5313d4 100644 --- a/packages/nc-gui/components/dlg/share-and-collaborate/ShareBase.vue +++ b/packages/nc-gui/components/dlg/share-and-collaborate/ShareBase.vue @@ -1,5 +1,8 @@ + + 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 fafadd37ba..e53e15f81c 100644 --- a/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue +++ b/packages/nc-gui/components/dlg/share-and-collaborate/SharePage.vue @@ -1,7 +1,7 @@ @@ -459,18 +523,4 @@ watchEffect(() => {}) line-height: 1rem !important; } } - -.nc-modal-share-view-preFillMode { - @apply flex flex-col; - - .ant-radio-wrapper { - @apply !m-0 !flex !items-center w-full px-2 py-1 rounded-lg hover:bg-gray-100; - .ant-radio { - @apply !top-0; - } - .ant-radio + span { - @apply !flex !pl-4; - } - } -} diff --git a/packages/nc-gui/components/dlg/share-and-collaborate/View.vue b/packages/nc-gui/components/dlg/share-and-collaborate/View.vue index dd2742470a..e3ee76d5db 100644 --- a/packages/nc-gui/components/dlg/share-and-collaborate/View.vue +++ b/packages/nc-gui/components/dlg/share-and-collaborate/View.vue @@ -1,19 +1,12 @@ - diff --git a/packages/nc-gui/components/roles/Badge.vue b/packages/nc-gui/components/roles/Badge.vue index 8da82c3c19..35da2f77f3 100644 --- a/packages/nc-gui/components/roles/Badge.vue +++ b/packages/nc-gui/components/roles/Badge.vue @@ -13,7 +13,7 @@ const props = withDefaults( { clickable: false, inherit: false, - border: true, + border: false, size: 'sm', }, ) diff --git a/packages/nc-gui/components/workspace/InviteSection.vue b/packages/nc-gui/components/workspace/InviteSection.vue index 48b2fbe87a..bc01590197 100644 --- a/packages/nc-gui/components/workspace/InviteSection.vue +++ b/packages/nc-gui/components/workspace/InviteSection.vue @@ -268,10 +268,6 @@ const onRoleChange = (role: keyof typeof RoleLabels) => (inviteData.roles = role @apply rounded; } -.badge-text { - @apply text-[14px] pt-1 text-center; -} - :deep(.ant-select-selection-item) { @apply mt-0.75; } diff --git a/packages/nc-gui/lang/en.json b/packages/nc-gui/lang/en.json index 00857cae81..ce4c83be21 100644 --- a/packages/nc-gui/lang/en.json +++ b/packages/nc-gui/lang/en.json @@ -433,6 +433,7 @@ "surveyFormSubmitConfirmMsg": "Are you sure you want to submit this form?" }, "labels": { + "enterMultipleEmails": "Enter multiple E-mails by using commas to separate them", "selectYear": "Select Year", "save": "Save", "cancel": "Cancel", @@ -703,6 +704,9 @@ "clearSelection": "Clear selection" }, "activity": { + "inviteAs": "Invite as", + "toBase": "to base", + "manageAccess": "Manage Access", "addMembers": "Add Members", "enterEmail": "Enter email addresses", "inviteToBase": "Invite to Base", @@ -737,7 +741,7 @@ "outOfSync": "Out of sync", "newSource": "New Data Source", "newWebhook": "New Webhook", - "enablePublicAccess": "Enable Public Access", + "enablePublicAccess": "Enable Public Viewing", "doYouWantToSaveTheChanges": "Do you want to save the changes ?", "editingAccess": "Editing access", "enabledPublicViewing": "Enable Public Viewing", @@ -801,6 +805,8 @@ "invite": "Invite", "inviteMore": "Invite more", "inviteTeam": "Invite Team", + "inviteMembers": "Invite Member(s)", + "inviteUsers": "Invite User(s)", "inviteUser": "Invite User", "inviteToken": "Invite Token", "linkedRecords": "Linked Records", diff --git a/tests/playwright/pages/Dashboard/common/Topbar/Share.ts b/tests/playwright/pages/Dashboard/common/Topbar/Share.ts index bfcfdbfe53..1bc668e9c6 100644 --- a/tests/playwright/pages/Dashboard/common/Topbar/Share.ts +++ b/tests/playwright/pages/Dashboard/common/Topbar/Share.ts @@ -11,22 +11,21 @@ export class TopbarSharePage extends BasePage { } get() { - return this.rootPage.locator(`.nc-modal-share-collaborate`).locator('.ant-modal-content'); - } - - async clickShareView() { - await this.get().waitFor(); - // collapse header 0: Share Base, 1: Share View - await this.get().locator(`.ant-collapse-header`).nth(1).click(); + return this.rootPage.locator(`.nc-modal-share-collaborate`); } async clickShareProject() { await this.get().locator(`[data-testid="docs-share-dlg-share-base"]`).click(); } + async switchBaseShareTab({ tab }: { tab: 'public' | 'member' }) { + await this.get().getByTestId(`nc-base-share-${tab}`).waitFor({ state: 'visible' }); + await this.get().getByTestId(`nc-base-share-${tab}`).click(); + } + async clickShareViewPublicAccess() { - await expect(this.get().locator(`[data-testid="share-view-toggle"]`)).toHaveCount(1); - await this.get().locator(`[data-testid="share-view-toggle"]`).click(); + await expect(this.get().getByTestId('share-view-toggle')).toHaveCount(1); + await this.get().getByTestId('share-view-toggle').click(); } async clickCopyLink() { @@ -35,7 +34,7 @@ export class TopbarSharePage extends BasePage { async closeModal() { // await this.rootPage.keyboard.press('Escape'); - await this.get().locator('.ant-btn.ant-btn-secondary:has-text("Close")').click(); + await this.get().locator('.ant-btn.ant-btn-secondary:has-text("Finish")').click(); } async clickShareViewWithPassword({ password }: { password: string }) { @@ -48,7 +47,22 @@ export class TopbarSharePage extends BasePage { } async clickShareBase() { - await this.get().locator(`[data-testid="db-share-base"]`).click(); + await this.get().waitFor(); + const shareBase = this.get().getByTestId('nc-share-base-tab'); + + if (await shareBase.isVisible()) { + await shareBase.click(); + } + } + + async clickShareView() { + await this.get().waitFor(); + + const shareView = this.get().getByTestId('nc-share-view-tab'); + + if (await shareView.isVisible()) { + await shareView.click(); + } } async clickShareBasePublicAccess() { @@ -72,6 +86,8 @@ export class TopbarSharePage extends BasePage { async clickShareBaseEditorAccess() { await this.rootPage.waitForTimeout(1000); + await this.switchBaseShareTab({ tab: 'public' }); + const shareBaseSwitch = this.get().locator(`[data-testid="nc-share-base-sub-modal"]`).locator('.ant-switch'); const count = await shareBaseSwitch.count(); diff --git a/tests/playwright/pages/Dashboard/common/Topbar/index.ts b/tests/playwright/pages/Dashboard/common/Topbar/index.ts index d02fd3bddb..1b2981d8ed 100644 --- a/tests/playwright/pages/Dashboard/common/Topbar/index.ts +++ b/tests/playwright/pages/Dashboard/common/Topbar/index.ts @@ -36,7 +36,7 @@ export class TopbarPage extends BasePage { async getSharedViewUrl(surveyMode = false, password = '', download = false) { await this.clickShare(); - // await this.share.clickShareView(); + await this.share.clickShareView(); await this.share.clickShareViewPublicAccess(); await this.share.clickCopyLink(); if (surveyMode) { @@ -57,6 +57,9 @@ export class TopbarPage extends BasePage { async getSharedBaseUrl({ role, enableSharedBase }: { role: string; enableSharedBase: boolean }) { await this.clickShare(); + await this.share.clickShareBase(); + await this.share.switchBaseShareTab({ tab: 'public' }); + if (enableSharedBase) await this.share.clickShareBasePublicAccess(); if (role === 'editor' && enableSharedBase) { diff --git a/tests/playwright/tests/db/features/baseShare.spec.ts b/tests/playwright/tests/db/features/baseShare.spec.ts index a7426caa17..8879106d08 100644 --- a/tests/playwright/tests/db/features/baseShare.spec.ts +++ b/tests/playwright/tests/db/features/baseShare.spec.ts @@ -3,7 +3,7 @@ import { DashboardPage } from '../../../pages/Dashboard'; import setup, { NcContext, unsetup } from '../../../setup'; import { ToolbarPage } from '../../../pages/Dashboard/common/Toolbar'; import { LoginPage } from '../../../pages/LoginPage'; -import { getDefaultPwd } from '../../../tests/utils/general'; +import { getDefaultPwd } from '../../utils/general'; import { isEE } from '../../../setup/db'; // To be enabled after shared base is implemented @@ -62,9 +62,6 @@ test.describe('Shared base', () => { }); test('#1', async () => { - // close 'Team & Auth' tab - await dashboard.closeTab({ title: 'Team & Auth' }); - let url = ''; // share button visible only if a table is opened await dashboard.treeView.openTable({ title: 'Country' }); From 62414238caac2d11badbb5251fbabf10a6e08133 Mon Sep 17 00:00:00 2001 From: IFGGit <162738418+IFGGit@users.noreply.github.com> Date: Sat, 16 Mar 2024 10:52:07 +0200 Subject: [PATCH 11/22] fix(nc-gui): Hide Rename, Delete, Add record buttons when user doesn't have necessary permissions (#7871) * fix(nc-gui): Remove tableRename, tableDelete from org level role permissions For hiding Rename and Delete buttons in table context menu. * fix(nc-gui): Hide Add record button when user doesn't have dataInsert permission --- .../nc-gui/components/dashboard/TreeView/ProjectNode.vue | 2 +- packages/nc-gui/components/smartsheet/Kanban.vue | 6 +++++- packages/nc-gui/lib/acl.ts | 2 -- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue index b173089da6..80d9bf86c2 100644 --- a/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue +++ b/packages/nc-gui/components/dashboard/TreeView/ProjectNode.vue @@ -766,7 +766,7 @@ const projectDelete = () => { - +
{{ $t('general.delete') }} diff --git a/packages/nc-gui/components/smartsheet/Kanban.vue b/packages/nc-gui/components/smartsheet/Kanban.vue index 943f9c1c39..f1e210669c 100644 --- a/packages/nc-gui/components/smartsheet/Kanban.vue +++ b/packages/nc-gui/components/smartsheet/Kanban.vue @@ -513,7 +513,10 @@ const getRowId = (row: RowType) => {
- +
{
+
{{ $t('title.appStore') }}
diff --git a/packages/nc-gui/components/account/License.vue b/packages/nc-gui/components/account/License.vue index cfd1f684b4..9b42bd64b9 100644 --- a/packages/nc-gui/components/account/License.vue +++ b/packages/nc-gui/components/account/License.vue @@ -36,7 +36,7 @@ loadLicense()