From 8074c7b6e510a150bb78bbe5a2c2943d19bf7a82 Mon Sep 17 00:00:00 2001 From: Pranav C <61551451+pranavxc@users.noreply.github.com> Date: Thu, 29 Jul 2021 15:22:27 +0530 Subject: [PATCH] feat: Add option to show m2m tables re #388 Signed-off-by: Pranav C <61551451+pranavxc@users.noreply.github.com> --- .../sync/disableOrEnableTables.vue | 2 +- .../project/settings/appearance.vue | 26 +++++++++++++++++++ .../editableCell/dateTimePickerCell.vue | 2 +- packages/nc-gui/store/project.js | 5 ++-- packages/nc-gui/store/windows.js | 6 ++++- .../nocodb/src/lib/noco/meta/NcMetaMgr.ts | 2 +- 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/packages/nc-gui/components/project/projectMetadata/sync/disableOrEnableTables.vue b/packages/nc-gui/components/project/projectMetadata/sync/disableOrEnableTables.vue index 8eacd23830..258da54847 100644 --- a/packages/nc-gui/components/project/projectMetadata/sync/disableOrEnableTables.vue +++ b/packages/nc-gui/components/project/projectMetadata/sync/disableOrEnableTables.vue @@ -270,7 +270,7 @@ export default { this.tables = (await this.$store.dispatch('sqlMgr/ActSqlOp', [{ dbAlias: this.db.meta.dbAlias, env: this.$store.getters['project/GtrEnv'] - }, 'tableList', { force: true }])).data.list + }, 'tableList', { force: true, includeM2M: true }])).data.list }, async saveModels() { diff --git a/packages/nc-gui/components/project/settings/appearance.vue b/packages/nc-gui/components/project/settings/appearance.vue index 7efccbb2be..f6f5ffe5d2 100644 --- a/packages/nc-gui/components/project/settings/appearance.vue +++ b/packages/nc-gui/components/project/settings/appearance.vue @@ -60,6 +60,24 @@ + + Show M2M Tables + + + + Include/Exclude M2M tables + + + Language @@ -220,6 +238,14 @@ export default { set(show) { this.$store.commit('windows/MutScreensaver', show) } + }, + includeM2M: { + get() { + return this.$store.state.windows.includeM2M + }, + set(show) { + this.$store.commit('windows/MutIncludeM2M', show) + } } }, created() { diff --git a/packages/nc-gui/components/project/spreadsheet/components/editableCell/dateTimePickerCell.vue b/packages/nc-gui/components/project/spreadsheet/components/editableCell/dateTimePickerCell.vue index fc6523c61c..9b1d965541 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/editableCell/dateTimePickerCell.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/editableCell/dateTimePickerCell.vue @@ -31,7 +31,7 @@ export default { return new Date(+this.value) } - return /\dT\d/.test(this.value) ? new Date(this.value.replace(/(\d)T(?=\d)/, '$1 ')) : (this.value && new Date(this.value)) + return /\dT\d/.test(this.value) ? new Date(this.value.replace(/(\d)T(?=\d)/, '$1 ')) : ((this.value && new Date(this.value))) }, set(val) { const uVal = val && new Date(val).toISOString().slice(0, 19).replace('T', ' ').replace(/(\d{1,2}:\d{1,2}):\d{1,2}$/, '$1') diff --git a/packages/nc-gui/store/project.js b/packages/nc-gui/store/project.js index 5480c15b23..67c33f651e 100644 --- a/packages/nc-gui/store/project.js +++ b/packages/nc-gui/store/project.js @@ -292,13 +292,12 @@ export const actions = { // dbAlias: data._nodes.dbAlias // }); // const result = await client.tableList(); - const result = await dispatch('sqlMgr/ActSqlOpPlus', [ { env: data._nodes.env, dbAlias: data._nodes.dbAlias }, - "tableList" + "tableList", {includeM2M: rootState.windows.includeM2M} ], {root: true}); @@ -307,7 +306,7 @@ export const actions = { } result.data.list = result.data.list.filter(t => rootState.windows.metatables || !isMetaTable(t.tn)); - console.log("tablelist debufg", result.data.list); + console.log("tablelist", result.data.list); deepSet(state.unserializedList, result.data.list, `${key}`); commit("list", state.unserializedList); } else { diff --git a/packages/nc-gui/store/windows.js b/packages/nc-gui/store/windows.js index 9dad4ec2b4..4e0eeefe69 100644 --- a/packages/nc-gui/store/windows.js +++ b/packages/nc-gui/store/windows.js @@ -37,7 +37,8 @@ export const state = () => ({ miniSponsorCard: 0, screensaver: true, autoApplyFilter: true, - apiLoading: false + apiLoading: false, + includeM2M: false }) export const mutations = { @@ -150,6 +151,9 @@ export const mutations = { }, MutMiniSponsorCard(state, miniSponsorCard) { state.miniSponsorCard = miniSponsorCard + }, + MutIncludeM2M(state, includeM2M) { + state.includeM2M = includeM2M } } diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts index 1ef2d97499..a51cc98c06 100644 --- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts +++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts @@ -2942,7 +2942,7 @@ export default class NcMetaMgr { let tables = await this.xcMeta.metaList(this.getProjectId(args), this.getDbAlias(args), 'nc_models', { condition: { type: 'table', - mm: null + ...(args?.args?.includeM2M ? {} : {mm: null}) } });