From 937b418ee0f245fb61d1e3ef3b28a2296626dc50 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 30 Jul 2022 13:03:08 +0800 Subject: [PATCH 01/30] fix(gui-v2): replace formState by table from useTableCreate --- .../nc-gui-v2/components/dlg/TableCreate.vue | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/packages/nc-gui-v2/components/dlg/TableCreate.vue b/packages/nc-gui-v2/components/dlg/TableCreate.vue index 9466bd41f4..51da509f0b 100644 --- a/packages/nc-gui-v2/components/dlg/TableCreate.vue +++ b/packages/nc-gui-v2/components/dlg/TableCreate.vue @@ -53,23 +53,13 @@ const validateDuplicate = (v: string) => { const inputEl = ref() const useForm = Form.useForm -const formState = reactive({ - title: '', - table_name: '', - columns: { - id: true, - title: true, - created_at: true, - updated_at: true, - }, -}) const validators = computed(() => { return { title: [validateTableName, validateDuplicateAlias], table_name: [validateTableName], } }) -const { resetFields, validate, validateInfos } = useForm(formState, validators) +const { resetFields, validate, validateInfos } = useForm(table, validators) onMounted(() => { generateUniqueTitle() @@ -91,10 +81,10 @@ onMounted(() => { >
- +
{{ $t('activity.createTable') }}
@@ -133,17 +123,17 @@ onMounted(() => { - ID + ID - title + title - created_at + created_at - updated_at + updated_at
From 915674dd1e734ad725a2096464558524ba599f0a Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 30 Jul 2022 13:03:41 +0800 Subject: [PATCH 02/30] fix(gui-v2): change columns to Record --- packages/nc-gui-v2/composables/useTableCreate.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui-v2/composables/useTableCreate.ts b/packages/nc-gui-v2/composables/useTableCreate.ts index f6f39dd493..98135d9479 100644 --- a/packages/nc-gui-v2/composables/useTableCreate.ts +++ b/packages/nc-gui-v2/composables/useTableCreate.ts @@ -4,10 +4,15 @@ import { useNuxtApp } from '#app' import { useProject } from '#imports' export default (onTableCreate?: (tableMeta: TableType) => void) => { - const table = reactive<{ title: string; table_name: string; columns: string[] }>({ + const table = reactive<{ title: string; table_name: string; columns: Record }>({ title: '', table_name: '', - columns: ['id', 'title', 'created_at', 'updated_at'], + columns: { + id: true, + title: true, + created_at: true, + updated_at: true, + }, }) const { sqlUi, project, tables } = useProject() @@ -16,13 +21,13 @@ export default (onTableCreate?: (tableMeta: TableType) => void) => { const createTable = async () => { if (!sqlUi?.value) return const columns = sqlUi?.value?.getNewTableColumns().filter((col) => { - if (col.column_name === 'id' && table.columns.includes('id_ag')) { + if (col.column_name === 'id' && table.columns.id_ag) { Object.assign(col, sqlUi?.value?.getDataTypeForUiType({ uidt: UITypes.ID }, 'AG')) col.dtxp = sqlUi?.value?.getDefaultLengthForDatatype(col.dt) col.dtxs = sqlUi?.value?.getDefaultScaleForDatatype(col.dt) return true } - return table.columns.includes(col.column_name) + return !!table.columns[col.column_name] }) const tableMeta = await $api.dbTable.create(project?.value?.id as string, { From da9e23a62b3c4a2f46f7d0a8a6ea441232cd31d0 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 30 Jul 2022 13:04:19 +0800 Subject: [PATCH 03/30] chore(gui-v2): lint --- packages/nc-gui-v2/components.d.ts | 3 +++ .../components/dashboard/settings/AuditTab.vue | 9 ++++++++- .../components/dashboard/settings/Metadata.vue | 2 +- .../components/dashboard/settings/UIAcl.vue | 4 ++-- .../nc-gui-v2/components/dlg/AirtableImport.vue | 14 ++++++++++++-- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index 692c3f667c..0aeedc3574 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -7,6 +7,7 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { + AAlert: typeof import('ant-design-vue/es')['Alert'] AAnchorLink: typeof import('ant-design-vue/es')['AnchorLink'] AAutoComplete: typeof import('ant-design-vue/es')['AutoComplete'] AButton: typeof import('ant-design-vue/es')['Button'] @@ -16,6 +17,7 @@ declare module '@vue/runtime-core' { ACollapse: typeof import('ant-design-vue/es')['Collapse'] ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel'] ADivider: typeof import('ant-design-vue/es')['Divider'] + ADrawer: typeof import('ant-design-vue/es')['Drawer'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] @@ -29,6 +31,7 @@ declare module '@vue/runtime-core' { ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider'] AList: typeof import('ant-design-vue/es')['List'] AListItem: typeof import('ant-design-vue/es')['ListItem'] + AListItemMeta: typeof import('ant-design-vue/es')['ListItemMeta'] AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuDivider: typeof import('ant-design-vue/es')['MenuDivider'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] diff --git a/packages/nc-gui-v2/components/dashboard/settings/AuditTab.vue b/packages/nc-gui-v2/components/dashboard/settings/AuditTab.vue index 45a109f5fe..91e5cd56af 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/AuditTab.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/AuditTab.vue @@ -96,6 +96,13 @@ const columns = [ /> - + diff --git a/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue b/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue index fc66c3e353..91b385b0d6 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue @@ -88,7 +88,7 @@ const columns = [ ({ class: `nc-metasync-row nc-metasync-row-${record.title}`, }) diff --git a/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue b/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue index 2a1970ddd8..41c4d41f93 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/UIAcl.vue @@ -13,7 +13,7 @@ const toast = useToast() const roles = $ref(['editor', 'commenter', 'viewer']) let isLoading = $ref(false) let tables = $ref([]) -let searchInput = $ref('') +const searchInput = $ref('') const filteredTables = computed(() => tables.filter( @@ -123,7 +123,7 @@ const columns = [ :pagination="false" :loading="isLoading" bordered - :customRow=" + :custom-row=" (record) => ({ class: `nc-acl-table-row nc-acl-table-row-${record.title}`, }) diff --git a/packages/nc-gui-v2/components/dlg/AirtableImport.vue b/packages/nc-gui-v2/components/dlg/AirtableImport.vue index 28c808e539..673e93d3c7 100644 --- a/packages/nc-gui-v2/components/dlg/AirtableImport.vue +++ b/packages/nc-gui-v2/components/dlg/AirtableImport.vue @@ -240,10 +240,20 @@ onBeforeUnmount(() => { - + - + Advanced Settings From a3407dda72e90e35fc7d35db0887a8dccdb131db Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 30 Jul 2022 13:27:05 +0800 Subject: [PATCH 04/30] fix(gui-v2): set maskClosable to false --- packages/nc-gui-v2/components/dlg/AirtableImport.vue | 2 +- packages/nc-gui-v2/components/dlg/QuickImport.vue | 2 +- packages/nc-gui-v2/components/dlg/TableCreate.vue | 1 + packages/nc-gui-v2/components/dlg/TableRename.vue | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/dlg/AirtableImport.vue b/packages/nc-gui-v2/components/dlg/AirtableImport.vue index 673e93d3c7..94b1efad22 100644 --- a/packages/nc-gui-v2/components/dlg/AirtableImport.vue +++ b/packages/nc-gui-v2/components/dlg/AirtableImport.vue @@ -210,7 +210,7 @@ onBeforeUnmount(() => {