From 0524b4c5b6bf92132a1af882f954232e9eadb8c9 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 18 Mar 2021 11:51:19 +0100 Subject: [PATCH] table structure tab --- .../web/src/appobj/ColumnAppObject.svelte | 2 +- packages/web/src/commands/registerCommand.ts | 3 +- .../src/datagrid/ColumnHeaderControl.svelte | 2 +- .../web/src/datagrid/ColumnManagerRow.svelte | 2 +- .../{datagrid => elements}/ColumnLabel.svelte | 0 .../web/src/elements/ConstraintLabel.svelte | 17 +++ .../ForeignKeyObjectListControl.svelte | 43 +++++++ .../web/src/elements/ObjectListControl.svelte | 78 +++++++++++++ packages/web/src/elements/TableControl.svelte | 23 ++-- .../web/src/tabs/TableStructureTab.svelte | 107 ++++++++++++++++++ packages/web/src/tabs/index.js | 4 +- 11 files changed, 265 insertions(+), 16 deletions(-) rename packages/web/src/{datagrid => elements}/ColumnLabel.svelte (100%) create mode 100644 packages/web/src/elements/ConstraintLabel.svelte create mode 100644 packages/web/src/elements/ForeignKeyObjectListControl.svelte create mode 100644 packages/web/src/elements/ObjectListControl.svelte create mode 100644 packages/web/src/tabs/TableStructureTab.svelte diff --git a/packages/web/src/appobj/ColumnAppObject.svelte b/packages/web/src/appobj/ColumnAppObject.svelte index 4ee66bc29..8598414e0 100644 --- a/packages/web/src/appobj/ColumnAppObject.svelte +++ b/packages/web/src/appobj/ColumnAppObject.svelte @@ -3,7 +3,7 @@ + + + + {constraintName} + diff --git a/packages/web/src/elements/ForeignKeyObjectListControl.svelte b/packages/web/src/elements/ForeignKeyObjectListControl.svelte new file mode 100644 index 000000000..4ca6a70ce --- /dev/null +++ b/packages/web/src/elements/ForeignKeyObjectListControl.svelte @@ -0,0 +1,43 @@ + + + + + {row?.columns.map(x => x.columnName).join(', ')} + {row?.columns.map(x => x.refColumnName).join(', ')} + diff --git a/packages/web/src/elements/ObjectListControl.svelte b/packages/web/src/elements/ObjectListControl.svelte new file mode 100644 index 000000000..f6fbe692e --- /dev/null +++ b/packages/web/src/elements/ObjectListControl.svelte @@ -0,0 +1,78 @@ + + +{#if collection?.length > 0 || showIfEmpty} +
+
+ {title} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +{/if} diff --git a/packages/web/src/elements/TableControl.svelte b/packages/web/src/elements/TableControl.svelte index 658c8134b..f46e3f919 100644 --- a/packages/web/src/elements/TableControl.svelte +++ b/packages/web/src/elements/TableControl.svelte @@ -1,10 +1,5 @@ - - export let columns: TableColumn[]; + + + + +
+ ({ ...x, ordinal: index + 1 }))} + title="Columns" + columns={[ + { + fieldName: 'notNull', + header: 'Not NULL', + sortable: true, + slot: 0, + }, + { + fieldName: 'dataType', + header: 'Data Type', + sortable: true, + }, + { + fieldName: 'defaultValue', + header: 'Default value', + sortable: true, + }, + { + fieldName: 'isSparse', + header: 'Is Sparse', + sortable: true, + slot: 1, + }, + { + fieldName: 'computedExpression', + header: 'Computed Expression', + sortable: true, + }, + { + fieldName: 'isPersisted', + header: 'Is Persisted', + sortable: true, + slot: 2, + }, + ]} + > + {row?.notNull ? 'YES' : 'NO'} + {row?.isSparse ? 'YES' : 'NO'} + {row?.isPersisted ? 'YES' : 'NO'} + + + + + + {row?.columns.map(x => x.columnName).join(', ')} + + + + +
+ + diff --git a/packages/web/src/tabs/index.js b/packages/web/src/tabs/index.js index 1b85db00e..46cc527b0 100644 --- a/packages/web/src/tabs/index.js +++ b/packages/web/src/tabs/index.js @@ -1,6 +1,6 @@ import * as TableDataTab from './TableDataTab.svelte'; import * as ViewDataTab from './ViewDataTab.svelte'; -// import TableStructureTab from './TableStructureTab'; +import * as TableStructureTab from './TableStructureTab.svelte'; import * as QueryTab from './QueryTab.svelte'; import * as ShellTab from './ShellTab.svelte'; // import InfoPageTab from './InfoPageTab'; @@ -17,7 +17,7 @@ import * as MarkdownEditorTab from './MarkdownEditorTab.svelte'; export default { TableDataTab, ViewDataTab, - // TableStructureTab, + TableStructureTab, QueryTab, // InfoPageTab, ShellTab,