From 56916a8490f45e6f8232c73f1a1886dbfc39649e Mon Sep 17 00:00:00 2001 From: Muhammed Mustafa Date: Thu, 15 Sep 2022 21:42:56 +0530 Subject: [PATCH] feat(nc-gui): UI fixes to ERD, added prefix icons to ERD and added mm prop to TableType to sdk --- packages/nc-gui/components/erd/SimpleView.vue | 23 +++++++++++++++---- packages/nc-gui/components/erd/TableNode.vue | 18 +++++++++++---- packages/nc-gui/components/erd/View.vue | 18 +++++++-------- packages/nocodb-sdk/src/lib/Api.ts | 1 + scripts/sdk/swagger.json | 6 +++++ 5 files changed, 47 insertions(+), 19 deletions(-) diff --git a/packages/nc-gui/components/erd/SimpleView.vue b/packages/nc-gui/components/erd/SimpleView.vue index 6ee8767c68..fc3dd33d28 100644 --- a/packages/nc-gui/components/erd/SimpleView.vue +++ b/packages/nc-gui/components/erd/SimpleView.vue @@ -6,13 +6,15 @@ import { UITypes } from 'nocodb-sdk' import dagre from 'dagre' import TableNode from './TableNode.vue' import RelationEdge from './RelationEdge.vue' +import MdiView from '~icons/mdi/eye-circle-outline' +import MdiTableLarge from '~icons/mdi/table-large' interface Props { tables: any[] config: { showPkAndFk: boolean showViews: boolean - hideAllColumns: boolean + showAllColumns: boolean } } @@ -31,15 +33,15 @@ const populateInitialNodes = () => { tables.forEach((table) => { if (!table.id) return - const columns = metasWithIdAsKey.value[table.id].columns?.filter( - (col) => !config.hideAllColumns || (config.hideAllColumns && col.uidt === UITypes.LinkToAnotherRecord), + const columns = metasWithIdAsKey.value[table.id].columns!.filter( + (col) => config.showAllColumns || (!config.showAllColumns && col.uidt === UITypes.LinkToAnotherRecord), ) dagreGraph.setNode(table.id, { width: 250, height: 50 * columns.length }) initialNodes.value.push({ id: table.id, - data: { ...metasWithIdAsKey.value[table.id], showPkAndFk: config.showPkAndFk, hideAllColumns: config.hideAllColumns }, + data: { ...metasWithIdAsKey.value[table.id], showPkAndFk: config.showPkAndFk, showAllColumns: config.showAllColumns }, type: 'custom', }) }) @@ -141,5 +143,18 @@ onBeforeMount(async () => { +
+
+ +
Table
+
+
+ +
SQL View
+
+
diff --git a/packages/nc-gui/components/erd/TableNode.vue b/packages/nc-gui/components/erd/TableNode.vue index 8900fc670a..074819fbd1 100644 --- a/packages/nc-gui/components/erd/TableNode.vue +++ b/packages/nc-gui/components/erd/TableNode.vue @@ -4,9 +4,11 @@ import { Handle, Position } from '@braks/vue-flow' import type { ColumnType, TableType } from 'nocodb-sdk' import { UITypes, isVirtualCol } from 'nocodb-sdk' import type { Ref } from 'vue' +import MdiView from '~icons/mdi/eye-circle-outline' +import MdiTableLarge from '~icons/mdi/table-large' interface Props extends NodeProps { - data: TableType & { showPkAndFk: boolean; hideAllColumns: boolean } + data: TableType & { showPkAndFk: boolean; showAllColumns: boolean } } const props = defineProps() @@ -22,14 +24,14 @@ const columns = computed(() => { const pkAndFkColumns = computed(() => { return columns.value - ?.filter(() => data.value.showPkAndFk && !data.value.hideAllColumns) + ?.filter(() => data.value.showPkAndFk && data.value.showAllColumns) .filter((col) => col.pk || col.uidt === UITypes.ForeignKey) }) const nonPkColumns = computed(() => { return columns.value ?.filter( - (col: ColumnType) => !data.value.hideAllColumns || (data.value.hideAllColumns && col.uidt === UITypes.LinkToAnotherRecord), + (col: ColumnType) => data.value.showAllColumns || (!data.value.showAllColumns && col.uidt === UITypes.LinkToAnotherRecord), ) .filter((col: ColumnType) => !col.pk && col.uidt !== UITypes.ForeignKey) }) @@ -40,8 +42,14 @@ const relatedColumnId = (col: Record) =>