diff --git a/packages/nc-gui/components/project/spreadsheet/editColumn/editColumn.vue b/packages/nc-gui/components/project/spreadsheet/editColumn/editColumn.vue
index ed4b5a1f07..69f566fd37 100644
--- a/packages/nc-gui/components/project/spreadsheet/editColumn/editColumn.vue
+++ b/packages/nc-gui/components/project/spreadsheet/editColumn/editColumn.vue
@@ -22,252 +22,263 @@
+
{{$vuetify.theme.dark ? 'mdi-weather-sunny':'mdi-weather-night'}}
+ class="ml-3"> {{ $vuetify.theme.dark ? 'mdi-weather-sunny' : 'mdi-weather-night' }}
@@ -645,6 +648,13 @@
+
+
+
+ info Copy Project info
+
+
+
@@ -824,6 +834,7 @@ import 'splitpanes/dist/splitpanes.css'
import XBtn from "../components/global/xBtn";
import ChangeEnv from "../components/changeEnv";
import Discord from "@/components/discord";
+import {copyTextToClipboard} from "@/helpers/xutils";
export default {
components: {
@@ -971,7 +982,7 @@ export default {
'xc-auth': this.$store.state.users.token
}
})).data;
- const obj = Object.values(info).find(v => v.apiType === 'rest' ? v.swaggerUrl : v.gqlApiUrl);
+ const obj = Object.values(info).find(v => v.apiType === 'rest' ? v.swaggerUrl : v.gqlApiUrl);
this.swaggerOrGraphiqlUrl = obj.apiType === 'rest' ? obj.swaggerUrl : obj.gqlApiUrl
} catch (e) {
}
@@ -1296,6 +1307,15 @@ export default {
},
changeTheme() {
this.$store.dispatch('windows/ActToggleDarkMode', !this.$store.state.windows.darkTheme);
+ },
+ async copyProjectInfo() {
+ try {
+ const data = await this.$store.dispatch('sqlMgr/ActSqlOp', [null, 'ncProjectInfo'])
+ copyTextToClipboard(Object.entries(data).map(([k, v]) => `${k}: **${v}**`).join('\n'));
+ this.$toast.info('Copied project info to clipboard').goAway(3000);
+ } catch (e) {
+ this.$toast.error(e.message).goAway(3000);
+ }
}
},
@@ -1344,7 +1364,7 @@ a {
animation-iteration-count: infinite;
}
-/deep/ .v-toolbar__items{
+/deep/ .v-toolbar__items {
align-items: center;
}
diff --git a/packages/nc-gui/pages/projects/index.vue b/packages/nc-gui/pages/projects/index.vue
index cfd46052da..be4ec2e548 100644
--- a/packages/nc-gui/pages/projects/index.vue
+++ b/packages/nc-gui/pages/projects/index.vue
@@ -36,7 +36,8 @@
@click="projectsLoad"
v-bind:tooltip="$t('projects.reload_projects_tooltip')"
>
- mdi-refresh
@@ -125,19 +126,20 @@
{{
- $t('projects.create_new_project_button.subtext_1')
+ $t('projects.create_new_project_button.subtext_1')
}}
mdi-information-outlinemdi-information-outline
+
{{
- $t('projects.create_new_project_button.subtext_1_tooltip')
+ $t('projects.create_new_project_button.subtext_1_tooltip')
}}
@@ -163,12 +165,13 @@
mdi-information-outlinemdi-information-outline
+
{{
- $t('projects.create_new_project_button.subtext_2_tooltip')
+ $t('projects.create_new_project_button.subtext_2_tooltip')
}}
@@ -243,8 +246,8 @@
{{
- props.item.title
- }}
+ props.item.title
+ }}
mdi-stop-circle-outline
+ >mdi-stop-circle-outline
mdi-loading mdi-spin
+ >mdi-loading mdi-spin
mdi-dots-verticalmdi-dots-vertical
+
@@ -330,7 +334,7 @@
{{
- $t('projects.verticial_option_1')
+ $t('projects.verticial_option_1')
}}
@@ -344,8 +348,8 @@
{{
- $t('projects.verticial_option_2')
- }}
+ $t('home.project_verticial_option_2')
+ }}
{{
- $t('projects.verticial_option_3')
+ $t('projects.verticial_option_3')
}}
@@ -374,7 +378,7 @@
:value="true"
color="error"
icon="warning"
- >{{ $t('projects.search.no_result', { search }) }}
+ >{{ $t('projects.search.no_result', { search }) }}
@@ -435,7 +439,8 @@
@click="onCreateProject"
>
- mdi-lightbulb-on
{{ $t('projects.create_new_project_button.text') }}
@@ -454,7 +459,7 @@
align-start
"
>
-
+
@@ -507,12 +512,13 @@
>
mdi-calendar-monthmdi-calendar-month
+
{{
- $t('projects.show_community_message_2')
+ $t('projects.show_community_message_2')
}}
@@ -522,7 +528,7 @@
{{
- $t('projects.show_community_message_3')
+ $t('projects.show_community_message_3')
}}
@@ -532,7 +538,7 @@
{{
- $t('projects.show_community_message_4')
+ $t('projects.show_community_message_4')
}}
@@ -558,479 +564,505 @@
\ No newline at end of file
+-->
diff --git a/packages/nc-lib-gui/package.json b/packages/nc-lib-gui/package.json
index ced0063dc3..764e3a8559 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.1.216",
+ "version": "0.1.217",
"description": "> TODO: description",
"author": "“pranavxc” ",
"homepage": "https://gitlab.com/xgenecloud-ts/xgenecloud-ts#readme",
diff --git a/packages/nocodb/package-lock.json b/packages/nocodb/package-lock.json
index 63befd9722..bdfdceeec1 100644
--- a/packages/nocodb/package-lock.json
+++ b/packages/nocodb/package-lock.json
@@ -11126,9 +11126,9 @@
"integrity": "sha512-3AryS9uwa5NfISLxMciUonrH7YfXp+nlahB9T7girXIsLQrmwX4MdnuKs32akduCOGpKmjTJSWmATULbuMkbfw=="
},
"nc-help": {
- "version": "0.1.104",
- "resolved": "https://registry.npmjs.org/nc-help/-/nc-help-0.1.104.tgz",
- "integrity": "sha512-Tbn+RrRg8ELwXZtu+Lu0cunNKyB8fj7d91JAd5U2sjV3r+02PExpZ0PWT7bFwkNcEVDItQtAvzNl7uoLgchzzw==",
+ "version": "0.1.107",
+ "resolved": "https://registry.npmjs.org/nc-help/-/nc-help-0.1.107.tgz",
+ "integrity": "sha512-Lgqx9i1Oxt4WGTU+D35KyhKpwWgmHKzI7P1yPcqhsWNrLjnR7XHEumjKT1UovyJo5zkkiMCFnaxOGbWCnM9waA==",
"requires": {
"axios": "^0.21.1",
"boxen": "^4.2.0",
@@ -11203,9 +11203,9 @@
}
},
"nc-lib-gui": {
- "version": "0.1.216",
- "resolved": "https://registry.npmjs.org/nc-lib-gui/-/nc-lib-gui-0.1.216.tgz",
- "integrity": "sha512-zVQlsjK0fCZnlX8k0Rky8RKCfdMYmcVDwn1Kjff1JdXMduuFunjGAz7zFDBJNBY8DflmJSrLyDvZ9GR9i+kMUw==",
+ "version": "0.1.217",
+ "resolved": "https://registry.npmjs.org/nc-lib-gui/-/nc-lib-gui-0.1.217.tgz",
+ "integrity": "sha512-SA2RuY8g62qa9d9FwGsxd+lk5eE11EzKDQMSQyCcJhMgDeMrNUsbpoVPCB/zxo71kR3MqQa1tNYO5uIgwx6vtg==",
"requires": {
"axios": "^0.19.2",
"body-parser": "^1.19.0",
diff --git a/packages/nocodb/package.json b/packages/nocodb/package.json
index c7eb0513be..9e61bcb0a1 100644
--- a/packages/nocodb/package.json
+++ b/packages/nocodb/package.json
@@ -1,6 +1,6 @@
{
"name": "nocodb",
- "version": "0.9.25",
+ "version": "0.9.26",
"description": "xc-cli",
"main": "dist/bundle.js",
"repository": "https://github.com/nocodb/nocodb/nc-cli",
@@ -54,8 +54,9 @@
"postbuild": "npm run copy-files",
"copy-files": "copyfiles -u 1 \"src/**/*.ejs\" build/main && copyfiles -u 1 \"src/**/*.ejs\" build/module && copyfiles -u 1 \"src/**/*.ejs\" docker",
"docker:build": "EE=\"true-xc-test\" webpack --config docker/webpack.config.js",
- "docker:image:build": "docker build . -t nocodb/nocodb:latest -t nocodb/nocodb:0.9.25 --no-cache",
- "docker:image:deploy": "docker push nocodb/nocodb:latest && docker push nocodb/nocodb:0.9.25",
+ "docker:image:build": "docker build . -t nocodb/nocodb:latest -t nocodb/nocodb:0.9.26 --no-cache",
+ "docker:image:buildx": "docker buildx build . --platform linux/arm64 -t nocodb/nocodb:arm64 --no-cache",
+ "docker:image:deploy": "docker push nocodb/nocodb:latest && docker push nocodb/nocodb:0.9.26",
"docker:build:publish:image": "npm run build && npm run docker:build && npm run docker:image:build && npm run docker:image:deploy",
"docker:s3:image:build": "docker build . --file litestream/Dockerfile -t xgenecloud/xc-s3:latest -t xgenecloud/xc-s3:0.0.1 --no-cache",
"docker:s3:image:deploy": "docker push xgenecloud/xc-s3:latest && docker push xgenecloud/xc-s3:0.0.1",
@@ -123,6 +124,7 @@
"handlebars": "^4.7.6",
"import-fresh": "^3.2.1",
"inflection": "^1.12.0",
+ "is-docker": "^2.2.1",
"js-beautify": "^1.11.0",
"json2csv": "^5.0.6",
"jsonfile": "^6.1.0",
@@ -140,8 +142,8 @@
"mysql2": "^2.2.5",
"nanoid": "^3.1.20",
"nc-common": "0.0.6",
- "nc-help": "^0.1.104",
- "nc-lib-gui": "^0.1.216",
+ "nc-help": "^0.1.107",
+ "nc-lib-gui": "^0.1.217",
"nc-plugin": "^0.1.1",
"nodemailer": "^6.4.10",
"ora": "^4.0.4",
diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts
index 8398e981b7..1786b18ccb 100644
--- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts
+++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts
@@ -38,17 +38,18 @@ import ExpressXcTsRoutesHm from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoute
import ExpressXcTsRoutesBt from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoutesBt";
import ExpressXcTsRoutes from "../../sqlMgr/code/routes/xc-ts/ExpressXcTsRoutes";
import NcPluginMgr from "../plugins/NcPluginMgr";
-
+import isDocker from 'is-docker';
// import packageInfo from '../../../../package.json'
// require('pkginfo')(module, 'version');
const XC_PLUGIN_DET = 'XC_PLUGIN_DET';
-let packageInfo:any = {};
-try{
- packageInfo = JSON.parse(fs.readFileSync('package.json','utf8'));
-}catch (_e) {}
+let packageInfo: any = {};
+try {
+ packageInfo = JSON.parse(fs.readFileSync('package.json', 'utf8'));
+} catch (_e) {
+}
export default class NcMetaMgr {
public projectConfigs = {};
@@ -1083,6 +1084,9 @@ export default class NcMetaMgr {
case 'xcVirtualTableUpdate':
result = await this.xcVirtualTableUpdate(args);
break;
+ case 'ncProjectInfo':
+ result = await this.ncProjectInfo(args);
+ break;
case 'xcVirtualTableDelete':
result = await this.xcVirtualTableDelete(args, req);
break;
@@ -3106,6 +3110,19 @@ export default class NcMetaMgr {
}
+ protected async ncProjectInfo(args) {
+
+ const config = this.projectConfigs[this.getProjectId(args)];
+ return {
+ node: process.version,
+ arch: process.arch,
+ platform: process.platform,
+ docker: isDocker(),
+ database: config.envs?.[process.env.NODE_ENV || 'dev']?.db?.[0]?.client,
+ packageVersion: packageInfo?.version
+ }
+ }
+
protected async xcVirtualTableList(args): Promise {
return (await this.xcMeta.metaList(this.getProjectId(args), this.getDbAlias(args), 'nc_models', {
xcCondition: {
diff --git a/packages/nocodb/src/lib/sqlMgr/SqlMgr.ts b/packages/nocodb/src/lib/sqlMgr/SqlMgr.ts
index 2a9f786ce2..92c6393b2e 100644
--- a/packages/nocodb/src/lib/sqlMgr/SqlMgr.ts
+++ b/packages/nocodb/src/lib/sqlMgr/SqlMgr.ts
@@ -820,7 +820,7 @@ export default class SqlMgr {
migrationSteps: 9999,
folder: this.currentProjectFolder
};
- console.log(`Migration up args for '${op}'`, migrationArgs);
+ // console.log(`Migration up args for '${op}'`, migrationArgs);
await this.migrator().migrationsUp(migrationArgs);
}
|