From b48b0afb9847deb1f3137b83220a740d707aaefc Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 17:50:24 +0800 Subject: [PATCH 001/125] wip(gui-v2): more actions draft --- .../smartsheet-toolbar/MoreActions.vue | 391 ++++-------------- 1 file changed, 79 insertions(+), 312 deletions(-) diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue index 13f1bc5f98..95c6b9b3ce 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue @@ -1,324 +1,91 @@ - From 81fe2454841ac721dfe4145654aeaa1d3245d23c Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:00:19 +0800 Subject: [PATCH 003/125] feat(gui-v2): add ADrawer --- packages/nc-gui-v2/components.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index a2373af8bd..49e4512a11 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -15,6 +15,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'] From 1d4d577cc9edab7c2ce877c1c28a90b9860e019c Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:01:13 +0800 Subject: [PATCH 004/125] feat(gui-v2): webhook drawer --- .../nc-gui-v2/components/webhook/Drawer.vue | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 packages/nc-gui-v2/components/webhook/Drawer.vue diff --git a/packages/nc-gui-v2/components/webhook/Drawer.vue b/packages/nc-gui-v2/components/webhook/Drawer.vue new file mode 100644 index 0000000000..4b5de4745a --- /dev/null +++ b/packages/nc-gui-v2/components/webhook/Drawer.vue @@ -0,0 +1,31 @@ + + + From 69e4e62e3ef9ea7f21f335e6d3c6b114af8f7a9d Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:01:21 +0800 Subject: [PATCH 005/125] feat(gui-v2): webhook list --- .../nc-gui-v2/components/webhook/List.vue | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/nc-gui-v2/components/webhook/List.vue diff --git a/packages/nc-gui-v2/components/webhook/List.vue b/packages/nc-gui-v2/components/webhook/List.vue new file mode 100644 index 0000000000..99d97ec3e8 --- /dev/null +++ b/packages/nc-gui-v2/components/webhook/List.vue @@ -0,0 +1,39 @@ + + + From 2272b0a8a6a81368352653911d22504c43375794 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:01:43 +0800 Subject: [PATCH 006/125] feat(gui-v2): webhook editor --- .../nc-gui-v2/components/webhook/Editor.vue | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 packages/nc-gui-v2/components/webhook/Editor.vue diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue new file mode 100644 index 0000000000..b50b426c51 --- /dev/null +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -0,0 +1,130 @@ + + + From 786d87a3e2afbfe0eed4a638690d3ea0f842877d Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:03:15 +0800 Subject: [PATCH 007/125] feat(gui-v2): include WebhookDrawer --- .../nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue b/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue index 95c6b9b3ce..1d339644b4 100644 --- a/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue +++ b/packages/nc-gui-v2/components/smartsheet-toolbar/MoreActions.vue @@ -8,6 +8,7 @@ import MdiHookIcon from '~icons/mdi/hook' const { isUIAllowed } = useUIPermission() // TODO:: identify based on meta const isView = ref(false) +const showWebhookDrawer = ref(false) function exportCsv() { // TODO @@ -22,7 +23,7 @@ function openSharedViewModal() { } function openWebhookModal() { - // TODO: + showWebhookDrawer.value = true } @@ -86,6 +87,7 @@ function openWebhookModal() { + From eef5a2110d9e06559380378385a790026bb9bcee Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 20:08:36 +0800 Subject: [PATCH 008/125] fix(gui-v2): validators --- packages/nc-gui-v2/components/webhook/Editor.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index b50b426c51..5ed73d8643 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -54,7 +54,12 @@ const methodList = ref([ ]) const validators = computed(() => { - return {} + return { + 'title': [], + 'event': [], + 'notification.type': [], + 'method': [], + } }) const { resetFields, validate, validateInfos } = useForm(formState, validators) @@ -98,7 +103,7 @@ onMounted(() => { - + {{ notification.type From 8f5f71cbbbfb117fd83e2498cf55722675bae057 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 22:07:23 +0800 Subject: [PATCH 009/125] feat(gui-v2): render webhook form input --- .../nc-gui-v2/components/webhook/Editor.vue | 143 +++++++++++++++++- 1 file changed, 136 insertions(+), 7 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 5ed73d8643..1af6f9e539 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -18,6 +18,104 @@ const formState = reactive({ method: 'GET', }) +const formInput = ref({ + 'Email': [ + { + key: 'to', + label: 'To Address', + placeholder: 'To Address', + type: 'SingleLineText', + required: true, + }, + { + key: 'subject', + label: 'Subject', + placeholder: 'Subject', + type: 'SingleLineText', + required: true, + }, + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + ], + 'Slack': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + ], + 'Microsoft Teams': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + ], + 'Discord': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + ], + 'Mattermost': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + ], + 'Twilio': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + { + key: 'to', + label: 'Comma separated Mobile #', + placeholder: 'Comma separated Mobile #', + type: 'LongText', + required: true, + }, + ], + 'Whatsapp Twilio': [ + { + key: 'body', + label: 'Body', + placeholder: 'Body', + type: 'LongText', + required: true, + }, + { + key: 'to', + label: 'Comma separated Mobile #', + placeholder: 'Comma separated Mobile #', + type: 'LongText', + required: true, + }, + ], +}) +const notification = ref({ + method: 'POST', + body: '{{ json data }}', +}) + const eventList = ref([ { title: 'After Insert', @@ -63,6 +161,10 @@ const validators = computed(() => { }) const { resetFields, validate, validateInfos } = useForm(formState, validators) +function onNotTypeChange() { + // TODO +} + onMounted(() => { loadViews() }) @@ -94,7 +196,7 @@ onMounted(() => { - + @@ -104,9 +206,14 @@ onMounted(() => { - - {{ - notification.type + + {{ + notificationOption.type }} @@ -119,15 +226,37 @@ onMounted(() => { - + + + - TODO: Slack TODO: Microsoft Teams TODO: Discord TODO: Mattermost - + + + + + + + + + + From 25eec485cd33039b5decc8f70a7446abbfe746c4 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 22:47:48 +0800 Subject: [PATCH 010/125] feat(gui-v2): add sample payload part --- .../nc-gui-v2/components/webhook/Editor.vue | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 1af6f9e539..683b5a3fc4 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -17,7 +17,7 @@ const formState = reactive({ }, method: 'GET', }) - +const filters = [] const formInput = ref({ 'Email': [ { @@ -258,7 +258,35 @@ onMounted(() => { - +
+ + Available context variables are data and user + + + + data : Row data
+ user : User information
+
+
+
+ + + {{ $t('labels.docReference') }} + +
+ +
From 3cc42470fa49bddfc4a1ee6bd65cc4b72b440e69 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 22:48:01 +0800 Subject: [PATCH 011/125] feat(gui-v2): add WebhookTest --- .../nc-gui-v2/components/webhook/Test.vue | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/nc-gui-v2/components/webhook/Test.vue diff --git a/packages/nc-gui-v2/components/webhook/Test.vue b/packages/nc-gui-v2/components/webhook/Test.vue new file mode 100644 index 0000000000..6144639494 --- /dev/null +++ b/packages/nc-gui-v2/components/webhook/Test.vue @@ -0,0 +1,49 @@ + + + From 6e016c54043ef22356c0f0b5538bf1151d124bbc Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 22:50:10 +0800 Subject: [PATCH 012/125] fix(gui-v2): inject meta to get model id --- packages/nc-gui-v2/components/webhook/Test.vue | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Test.vue b/packages/nc-gui-v2/components/webhook/Test.vue index 6144639494..74be2ed77f 100644 --- a/packages/nc-gui-v2/components/webhook/Test.vue +++ b/packages/nc-gui-v2/components/webhook/Test.vue @@ -1,5 +1,6 @@ From c60b65407a630fd91b5a381763e4e07f7a34a939 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Tue, 26 Jul 2022 22:57:11 +0800 Subject: [PATCH 013/125] feat(gui-v2): add icons for notification options --- .../nc-gui-v2/components/webhook/Editor.vue | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 683b5a3fc4..80b0ca6195 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -5,6 +5,14 @@ import type { TableType } from 'nocodb-sdk' import { MetaInj } from '~/context' import useViews from '~/composables/useViews' import MdiContentSaveIcon from '~icons/mdi/content-save' +import MdiLinkIcon from '~icons/mdi/link' +import MdiEmailIcon from '~icons/mdi/email' +import MdiSlackIcon from '~icons/mdi/slack' +import MdiMicrosoftTeamsIcon from '~icons/mdi/microsoft-teams' +import MdiDiscordIcon from '~icons/mdi/discord' +import MdiChatIcon from '~icons/mdi/chat' +import MdiWhatsAppIcon from '~icons/mdi/whatsapp' +import MdiCellPhoneMessageIcon from '~icons/mdi/cellphone-message' const meta = inject(MetaInj) const { views, loadViews } = useViews(meta as Ref) @@ -200,7 +208,9 @@ onMounted(() => { - {{ event.title }} + + {{ event.title }} + @@ -212,9 +222,19 @@ onMounted(() => { :placeholder="$t('general.notification')" @change="onNotTypeChange" > - {{ - notificationOption.type - }} + +
+ + + + + + + + + {{ notificationOption.type }} +
+
From 57b8053f58673d6f9277c0126eaa332f52150443 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 00:27:51 +0800 Subject: [PATCH 014/125] wip(gui-v2): editHook --- packages/nc-gui-v2/components/webhook/Drawer.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/nc-gui-v2/components/webhook/Drawer.vue b/packages/nc-gui-v2/components/webhook/Drawer.vue index 4b5de4745a..393c9b40c2 100644 --- a/packages/nc-gui-v2/components/webhook/Drawer.vue +++ b/packages/nc-gui-v2/components/webhook/Drawer.vue @@ -16,12 +16,17 @@ const dialogShow = computed({ emit('update:modelValue', v) }, }) + +function editHook(hook: Record) { + editOrAdd.value = true + // TODO: update editor ref hook +} \ No newline at end of file From 0e842e9a09cb0f4d607ff9e62fb10ffada589449 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 11:32:59 +0800 Subject: [PATCH 019/125] feat(gui-v2): Mattermost Channel --- packages/nc-gui-v2/components/webhook/Editor.vue | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index dd6be9ac10..d77a0c5599 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -313,7 +313,19 @@ onMounted(() => { - TODO: Mattermost + + + + + + + @@ -368,4 +380,4 @@ onMounted(() => { - \ No newline at end of file + From 388d5d2944d966fa5d5cb2cfcc59c7dce89abb2d Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 11:43:39 +0800 Subject: [PATCH 020/125] fix(gui-v2): webhook editor validations --- .../nc-gui-v2/components/webhook/Editor.vue | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index d77a0c5599..da9c262a3f 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -13,6 +13,7 @@ import MdiDiscordIcon from '~icons/mdi/discord' import MdiChatIcon from '~icons/mdi/chat' import MdiWhatsAppIcon from '~icons/mdi/whatsapp' import MdiCellPhoneMessageIcon from '~icons/mdi/cellphone-message' +import { fieldRequiredValidator } from '~/utils/validation' interface Option { label: string @@ -29,7 +30,7 @@ const formState = reactive({ title: '', notification: { type: 'URL', - channel: '', + channels: '', }, method: 'GET', }) @@ -180,10 +181,12 @@ const methodList = ref([ const validators = computed(() => { return { - 'title': [], - 'event': [], - 'notification.type': [], - 'method': [], + 'title': [fieldRequiredValidator], + 'event': [fieldRequiredValidator], + 'notification.type': [fieldRequiredValidator], + 'notification.url': [fieldRequiredValidator], + 'notification.channels': [fieldRequiredValidator], + 'method': [fieldRequiredValidator], } }) const { resetFields, validate, validateInfos } = useForm(formState, validators) @@ -224,8 +227,12 @@ onMounted(() => { - - + + + + + + @@ -270,7 +277,7 @@ onMounted(() => { - + @@ -278,7 +285,7 @@ onMounted(() => { { { { { - + + - + + From f1396f580a9509e05175f4e5a0104b3d1af6d164 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 12:09:10 +0800 Subject: [PATCH 021/125] feat(gui-v2): add column filter to webhook & tooltip --- .../nc-gui-v2/components/webhook/Editor.vue | 76 +++++++++++-------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index da9c262a3f..43a68aadb1 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -13,6 +13,8 @@ import MdiDiscordIcon from '~icons/mdi/discord' import MdiChatIcon from '~icons/mdi/chat' import MdiWhatsAppIcon from '~icons/mdi/whatsapp' import MdiCellPhoneMessageIcon from '~icons/mdi/cellphone-message' +import MdiGestureDoubleTapIcon from '~icons/mdi/gesture-double-tap' +import MdiInformationIcon from '~icons/mdi/information' import { fieldRequiredValidator } from '~/utils/validation' interface Option { @@ -211,7 +213,7 @@ onMounted(() => {
- + Test Webhook
@@ -333,7 +335,7 @@ onMounted(() => { - + @@ -345,36 +347,46 @@ onMounted(() => { - -
- - Available context variables are data and user - - - - data : Row data
- user : User information
-
-
-
- - - {{ $t('labels.docReference') }} - -
- -
+ + + On Condition + + + + + +
+ Available context variables are data and user + + + + + + + +
+ +
+
From 098d719adaedebc3d0e8a5f454b53eea9fdc8ead Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 12:12:13 +0800 Subject: [PATCH 022/125] chore(gui-v2): add TODO --- packages/nc-gui-v2/components/webhook/Editor.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 43a68aadb1..b337ff469c 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -282,6 +282,7 @@ onMounted(() => { +
From 1c9c241b1d2fd39a4b2ec1aeafdd9cfa5b5302da Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 12:26:44 +0800 Subject: [PATCH 023/125] feat(gui-v2): add loadPluginList & use meta to show title --- .../nc-gui-v2/components/webhook/Editor.vue | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index b337ff469c..d8ae3b6dc1 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -1,9 +1,8 @@ From ec5893d67f6f25394660167f37a63648fd628282 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:05:04 +0800 Subject: [PATCH 026/125] feat(gui-v2): add onNotTypeChange & refactor naming in webhook --- .../nc-gui-v2/components/webhook/Editor.vue | 72 +++++++++++-------- 1 file changed, 43 insertions(+), 29 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index a728c40d8d..9c464210be 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -30,7 +30,7 @@ const meta = inject(MetaInj) const useForm = Form.useForm -const formState = reactive({ +const hook = reactive({ title: '', notification: { type: 'URL', @@ -39,7 +39,7 @@ const formState = reactive({ method: 'GET', }) -const apps = ref({}) +const apps: Record = ref() const slackChannels = ref() @@ -145,10 +145,7 @@ const formInput = ref({ ], }) -const notification = ref({ - method: 'POST', - body: '{{ json data }}', -}) +const notification = ref({}) const eventList = ref([ { @@ -195,10 +192,27 @@ const validators = computed(() => { 'method': [fieldRequiredValidator], } }) -const { resetFields, validate, validateInfos } = useForm(formState, validators) +const { resetFields, validate, validateInfos } = useForm(hook, validators) function onNotTypeChange() { - // TODO + notification.value = {} + + if (hook.notification.type === 'Slack') { + slackChannels.value = (apps && apps?.Slack && apps.Slack.parsedInput) || [] + } + if (hook.notification.type === 'Microsoft Teams') { + teamsChannels.value = (apps && apps['Microsoft Teams'] && apps['Microsoft Teams'].parsedInput) || [] + } + if (hook.notification.type === 'Discord') { + discordChannels.value = (apps && apps.Discord && apps.Discord.parsedInput) || [] + } + if (hook.notification.type === 'Mattermost') { + mattermostChannels.value = (apps && apps.Mattermost && apps.Mattermost.parsedInput) || [] + } + if (hook.notification.type === 'URL') { + notification.value = notification.value || {} + notification.value.body = '{{ json data }}' + } } function filterOption(input: string, option: Option) { @@ -245,19 +259,19 @@ onMounted(() => {
- + - + - + {{ event.title }} @@ -267,7 +281,7 @@ onMounted(() => { { - + - + {{ method.title }} - + - + { - + { - + { - + { - - + + @@ -368,8 +382,8 @@ onMounted(() => { - On Condition - + On Condition + @@ -396,10 +410,10 @@ onMounted(() => { Date: Wed, 27 Jul 2022 13:42:59 +0800 Subject: [PATCH 027/125] chore(gui-v2): deactivate a-collapse initially --- packages/nc-gui-v2/components/webhook/Test.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nc-gui-v2/components/webhook/Test.vue b/packages/nc-gui-v2/components/webhook/Test.vue index 9e60ff5570..3e02581b12 100644 --- a/packages/nc-gui-v2/components/webhook/Test.vue +++ b/packages/nc-gui-v2/components/webhook/Test.vue @@ -15,7 +15,7 @@ const sampleData = ref({ data: {}, user: {}, }) -const activeKey = ref(1) +const activeKey = ref(0) watch( () => hook?.operation, From cb5ba18c36ceaba0cb5e6d0073230b36341661d2 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:43:10 +0800 Subject: [PATCH 028/125] chore(gui-v2): add AList* --- packages/nc-gui-v2/components.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index 49e4512a11..c17b11a884 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -27,6 +27,9 @@ declare module '@vue/runtime-core' { ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader'] 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'] From d9932fc2a00755a1ce58beabe6e11bbf0ce1cf8a Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:43:58 +0800 Subject: [PATCH 029/125] wip(gui-v2): body, params, headers & auth tabs --- .../nc-gui-v2/components/webhook/Editor.vue | 67 ++++++++++++++++--- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 9c464210be..6f8d62e4d4 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -36,9 +36,22 @@ const hook = reactive({ type: 'URL', channels: '', }, - method: 'GET', + api: { + method: 'POST', + path: '', + body: '{{ json data }}', + params: [], + auth: '', + headers: [], + response: {}, + perf: {}, + meta: {}, + }, + condition: false, }) +const urlTabKey = ref('body') + const apps: Record = ref() const slackChannels = ref() @@ -145,7 +158,17 @@ const formInput = ref({ ], }) -const notification = ref({}) +const notification = ref({ + method: 'GET', + path: '', + body: '', + params: [], + auth: '', + headers: [], + response: {}, + perf: {}, + meta: {}, +}) const eventList = ref([ { @@ -187,7 +210,8 @@ const validators = computed(() => { 'title': [fieldRequiredValidator], 'event': [fieldRequiredValidator], 'notification.type': [fieldRequiredValidator], - 'notification.url': [fieldRequiredValidator], + 'api.method': [fieldRequiredValidator], + 'api.path': [fieldRequiredValidator], 'notification.channels': [fieldRequiredValidator], 'method': [fieldRequiredValidator], } @@ -195,7 +219,17 @@ const validators = computed(() => { const { resetFields, validate, validateInfos } = useForm(hook, validators) function onNotTypeChange() { - notification.value = {} + notification.value = { + method: 'GET', + path: '', + body: '', + params: [], + auth: '', + headers: [], + response: {}, + perf: {}, + meta: {}, + } if (hook.notification.type === 'Slack') { slackChannels.value = (apps && apps?.Slack && apps.Slack.parsedInput) || [] @@ -305,16 +339,33 @@ onMounted(() => { - + {{ method.title }} - - + + - + + + + + + + + + + + + + + + + + + From 2324a3e82049a8003101249a733726ec79d6ef6e Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:51:25 +0800 Subject: [PATCH 030/125] init(gui-v2): ApiClientParams --- packages/nc-gui-v2/components/api-client/Params.vue | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/nc-gui-v2/components/api-client/Params.vue diff --git a/packages/nc-gui-v2/components/api-client/Params.vue b/packages/nc-gui-v2/components/api-client/Params.vue new file mode 100644 index 0000000000..557e754982 --- /dev/null +++ b/packages/nc-gui-v2/components/api-client/Params.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file From e4fb824b1dabe543adf751a67b0241f6ad22e3cb Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:51:34 +0800 Subject: [PATCH 031/125] init(gui-v2): ApiClientHeaders --- packages/nc-gui-v2/components/api-client/Headers.vue | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/nc-gui-v2/components/api-client/Headers.vue diff --git a/packages/nc-gui-v2/components/api-client/Headers.vue b/packages/nc-gui-v2/components/api-client/Headers.vue new file mode 100644 index 0000000000..d7f82849a5 --- /dev/null +++ b/packages/nc-gui-v2/components/api-client/Headers.vue @@ -0,0 +1,7 @@ + + + \ No newline at end of file From ee5d2d8fff88cece4e0f756f9328f2fbae813ddc Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 13:51:49 +0800 Subject: [PATCH 032/125] feat(gui-v2): include ApiClientParams & ApiClientHeaders --- packages/nc-gui-v2/components/webhook/Editor.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 6f8d62e4d4..13487d3d6b 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -355,10 +355,10 @@ onMounted(() => { - + - + From bb884ce5af91f10b10af40fa45affa8acff53a0f Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 14:09:42 +0800 Subject: [PATCH 033/125] refactor(gui-v2): style webhook form --- .../nc-gui-v2/components/webhook/Editor.vue | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index 13487d3d6b..aae3ac6f2c 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -337,7 +337,7 @@ onMounted(() => {
- + {{ method.title }} @@ -349,7 +349,7 @@ onMounted(() => {
- + @@ -423,11 +423,23 @@ onMounted(() => { - + - +
From f43f79334ba110f171c6fd579d46293bc2fdcd26 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 15:38:53 +0800 Subject: [PATCH 034/125] feat(gui-v2): add auth message & wrap on condition with a-card --- packages/nc-gui-v2/components/webhook/Editor.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index aae3ac6f2c..e942dc684d 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -363,6 +363,10 @@ onMounted(() => { + + For more about auth option refer + axios docs. + @@ -445,8 +449,10 @@ onMounted(() => { - On Condition - + + On Condition + + From 08e8d5a71db4ef22eae1bff13f198519a0c08cea Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 16:08:29 +0800 Subject: [PATCH 035/125] chore(gui-v2): fix width problem in webhook drawer --- packages/nc-gui-v2/components/webhook/Drawer.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nc-gui-v2/components/webhook/Drawer.vue b/packages/nc-gui-v2/components/webhook/Drawer.vue index 393c9b40c2..7ff39b2474 100644 --- a/packages/nc-gui-v2/components/webhook/Drawer.vue +++ b/packages/nc-gui-v2/components/webhook/Drawer.vue @@ -27,7 +27,7 @@ function editHook(hook: Record) { -
+
🚀 We are Hiring! 🚀 From 4bb8029804ba01697916aad7af8d7d7f18b67e24 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Wed, 27 Jul 2022 16:09:14 +0800 Subject: [PATCH 036/125] feat(gui-v2): delete webhooks --- .../nc-gui-v2/components/webhook/List.vue | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/nc-gui-v2/components/webhook/List.vue b/packages/nc-gui-v2/components/webhook/List.vue index 2585a9013b..c97c0a5195 100644 --- a/packages/nc-gui-v2/components/webhook/List.vue +++ b/packages/nc-gui-v2/components/webhook/List.vue @@ -1,11 +1,36 @@ From e84d4e61612fa7b778b139f55b92fe611ad3ad90 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Thu, 28 Jul 2022 20:07:36 +0800 Subject: [PATCH 069/125] chore(gui-v2): make test webhook button outlined --- packages/nc-gui-v2/components/webhook/Editor.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nc-gui-v2/components/webhook/Editor.vue b/packages/nc-gui-v2/components/webhook/Editor.vue index c753ecc1b9..9d646352a4 100644 --- a/packages/nc-gui-v2/components/webhook/Editor.vue +++ b/packages/nc-gui-v2/components/webhook/Editor.vue @@ -410,7 +410,7 @@ onMounted(() => {
- +
From 937b418ee0f245fb61d1e3ef3b28a2296626dc50 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 30 Jul 2022 13:03:08 +0800 Subject: [PATCH 070/125] 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 071/125] 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 072/125] 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 073/125] 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(() => {