From 40baf5aa94aaabfb1e7a7c0fe46c3935b514f486 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sat, 17 Sep 2022 00:12:16 +0530 Subject: [PATCH 1/7] fix(api): default form validation re #3652 Signed-off-by: Pranav C --- packages/nc-gui/components/smartsheet/Form.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/Form.vue b/packages/nc-gui/components/smartsheet/Form.vue index 9f797dec50..6cc2670532 100644 --- a/packages/nc-gui/components/smartsheet/Form.vue +++ b/packages/nc-gui/components/smartsheet/Form.vue @@ -641,7 +641,7 @@ onMounted(async () => { v-if="isVirtualCol(element)" class="!m-0 gap-0 p-0" :name="element.title" - :rules="[{ required: element.required, message: `${element.title} is required` }]" + :rules="[{ required: isRequired(element, element.required), message: `${element.title} is required` }]" > { v-else class="!m-0 gap-0 p-0" :name="element.title" - :rules="[{ required: element.required, message: `${element.title} is required` }]" + :rules="[{ required: isRequired(element, element.required), message: `${element.title} is required` }]" > Date: Sat, 17 Sep 2022 00:23:11 +0530 Subject: [PATCH 2/7] fix(api): email me enabling error re #3651 Signed-off-by: Pranav C --- packages/nc-gui/components/smartsheet/Form.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/Form.vue b/packages/nc-gui/components/smartsheet/Form.vue index 6cc2670532..d2c955ffaa 100644 --- a/packages/nc-gui/components/smartsheet/Form.vue +++ b/packages/nc-gui/components/smartsheet/Form.vue @@ -243,8 +243,10 @@ async function checkSMTPStatus() { emailMe.value = false // Please activate SMTP plugin in App store for enabling email notification message.info(t('msg.toast.formEmailSMTP')) + return false } } + return true } function setFormData() { @@ -263,7 +265,6 @@ function setFormData() { } catch (e) {} emailMe.value = data[state.user.value?.email as string] - checkSMTPStatus() localColumns.value = col .filter( @@ -306,12 +307,13 @@ function isRequired(_columnObj: Record, required = false) { return required || (columnObj && columnObj.rqd && !columnObj.cdf) } -function updateEmail() { +async function updateEmail() { try { + if (!(await checkSMTPStatus())) return + const data = formViewData.value?.email ? JSON.parse(formViewData.value?.email) : {} data[state.user.value?.email as string] = emailMe.value formViewData.value!.email = JSON.stringify(data) - checkSMTPStatus() } catch (e) {} } From 3680b14ee76821bf0f19b184cd3c40e9f96c81ac Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sat, 17 Sep 2022 00:32:05 +0530 Subject: [PATCH 3/7] chore(gui): lint Signed-off-by: Pranav C --- packages/nc-gui/components.d.ts | 38 ------------------- .../composables/useColumnCreateStore.ts | 1 - 2 files changed, 39 deletions(-) diff --git a/packages/nc-gui/components.d.ts b/packages/nc-gui/components.d.ts index abfefb9a7b..30edfc757b 100644 --- a/packages/nc-gui/components.d.ts +++ b/packages/nc-gui/components.d.ts @@ -8,7 +8,6 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { AAlert: typeof import('ant-design-vue/es')['Alert'] - AAutoComplete: typeof import('ant-design-vue/es')['AutoComplete'] ABadgeRibbon: typeof import('ant-design-vue/es')['BadgeRibbon'] AButton: typeof import('ant-design-vue/es')['Button'] ACard: typeof import('ant-design-vue/es')['Card'] @@ -24,7 +23,6 @@ declare module '@vue/runtime-core' { ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] - ADropdownButton: typeof import('ant-design-vue/es')['DropdownButton'] AEmpty: typeof import('ant-design-vue/es')['Empty'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] @@ -67,21 +65,16 @@ declare module '@vue/runtime-core' { ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATimePicker: typeof import('ant-design-vue/es')['TimePicker'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] - ATypography: typeof import('ant-design-vue/es')['Typography'] ATypographyTitle: typeof import('ant-design-vue/es')['TypographyTitle'] AUploadDragger: typeof import('ant-design-vue/es')['UploadDragger'] BiFiletypeJson: typeof import('~icons/bi/filetype-json')['default'] BiFiletypeXlsx: typeof import('~icons/bi/filetype-xlsx')['default'] CilFullscreen: typeof import('~icons/cil/fullscreen')['default'] CilFullscreenExit: typeof import('~icons/cil/fullscreen-exit')['default'] - ClarityColorPickerLine: typeof import('~icons/clarity/color-picker-line')['default'] ClarityColorPickerSolid: typeof import('~icons/clarity/color-picker-solid')['default'] ClarityImageLine: typeof import('~icons/clarity/image-line')['default'] - ClaritySuccessLine: typeof import('~icons/clarity/success-line')['default'] EvaEmailOutline: typeof import('~icons/eva/email-outline')['default'] - 'Ic:twotoneWidthFull': typeof import('~icons/ic/twotone-width-full')['default'] IcBaselineMoreVert: typeof import('~icons/ic/baseline-more-vert')['default'] - IcBaselineWidthFull: typeof import('~icons/ic/baseline-width-full')['default'] IcOutlineInsertDriveFile: typeof import('~icons/ic/outline-insert-drive-file')['default'] IcRoundEdit: typeof import('~icons/ic/round-edit')['default'] IcRoundKeyboardArrowDown: typeof import('~icons/ic/round-keyboard-arrow-down')['default'] @@ -94,7 +87,6 @@ declare module '@vue/runtime-core' { MaterialSymbolsArrowCircleLeftRounded: typeof import('~icons/material-symbols/arrow-circle-left-rounded')['default'] MaterialSymbolsArrowCircleRightRounded: typeof import('~icons/material-symbols/arrow-circle-right-rounded')['default'] MaterialSymbolsAttachFile: typeof import('~icons/material-symbols/attach-file')['default'] - MaterialSymbolsChevronLeftRounded: typeof import('~icons/material-symbols/chevron-left-rounded')['default'] MaterialSymbolsChevronRightRounded: typeof import('~icons/material-symbols/chevron-right-rounded')['default'] MaterialSymbolsCloseRounded: typeof import('~icons/material-symbols/close-rounded')['default'] MaterialSymbolsFileCopyOutline: typeof import('~icons/material-symbols/file-copy-outline')['default'] @@ -102,28 +94,18 @@ declare module '@vue/runtime-core' { MaterialSymbolsSendOutline: typeof import('~icons/material-symbols/send-outline')['default'] MaterialSymbolsTranslate: typeof import('~icons/material-symbols/translate')['default'] MaterialSymbolsWarning: typeof import('~icons/material-symbols/warning')['default'] - MaterialSymbolsWidthFull: typeof import('~icons/material-symbols/width-full')['default'] - MaterialSymbolsWidthWideOutline: typeof import('~icons/material-symbols/width-wide-outline')['default'] - 'Mdi:arrowExpandHorizontal': typeof import('~icons/mdi/arrow-expand-horizontal')['default'] MdiAccount: typeof import('~icons/mdi/account')['default'] MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] - MdiAccountGroup: typeof import('~icons/mdi/account-group')['default'] - MdiAccountGroupIcon: typeof import('~icons/mdi/account-group-icon')['default'] - MdiAccountIcon: typeof import('~icons/mdi/account-icon')['default'] MdiAccountOutline: typeof import('~icons/mdi/account-outline')['default'] - MdiAccountPlus: typeof import('~icons/mdi/account-plus')['default'] MdiAccountPlusOutline: typeof import('~icons/mdi/account-plus-outline')['default'] - MdiAccountSupervisorOutline: typeof import('~icons/mdi/account-supervisor-outline')['default'] MdiAlpha: typeof import('~icons/mdi/alpha')['default'] MdiAlphaA: typeof import('~icons/mdi/alpha-a')['default'] MdiApi: typeof import('~icons/mdi/api')['default'] MdiArrowExpand: typeof import('~icons/mdi/arrow-expand')['default'] - MdiArrowExpandHorizontal: typeof import('~icons/mdi/arrow-expand-horizontal')['default'] MdiArrowLeftBold: typeof import('~icons/mdi/arrow-left-bold')['default'] MdiAt: typeof import('~icons/mdi/at')['default'] MdiBackburger: typeof import('~icons/mdi/backburger')['default'] MdiBookOpenOutline: typeof import('~icons/mdi/book-open-outline')['default'] - MdiBookOpenPageVariantOutline: typeof import('~icons/mdi/book-open-page-variant-outline')['default'] MdiBugOutline: typeof import('~icons/mdi/bug-outline')['default'] MdiCalculator: typeof import('~icons/mdi/calculator')['default'] MdiCalendarMonth: typeof import('~icons/mdi/calendar-month')['default'] @@ -131,7 +113,6 @@ declare module '@vue/runtime-core' { MdiCellphoneMessage: typeof import('~icons/mdi/cellphone-message')['default'] MdiChat: typeof import('~icons/mdi/chat')['default'] MdiCheck: typeof import('~icons/mdi/check')['default'] - MdiChevronDoubleLeft: typeof import('~icons/mdi/chevron-double-left')['default'] MdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] MdiChevronLeft: typeof import('~icons/mdi/chevron-left')['default'] MdiClose: typeof import('~icons/mdi/close')['default'] @@ -145,7 +126,6 @@ declare module '@vue/runtime-core' { MdiContentCopy: typeof import('~icons/mdi/content-copy')['default'] MdiContentSave: typeof import('~icons/mdi/content-save')['default'] MdiCurrencyUsd: typeof import('~icons/mdi/currency-usd')['default'] - MdiDatabase: typeof import('~icons/mdi/database')['default'] MdiDatabaseOutline: typeof import('~icons/mdi/database-outline')['default'] MdiDelete: typeof import('~icons/mdi/delete')['default'] MdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default'] @@ -169,28 +149,20 @@ declare module '@vue/runtime-core' { MdiFileUploadOutline: typeof import('~icons/mdi/file-upload-outline')['default'] MdiFilterOutline: typeof import('~icons/mdi/filter-outline')['default'] MdiFlag: typeof import('~icons/mdi/flag')['default'] - MdiFlashOutline: typeof import('~icons/mdi/flash-outline')['default'] MdiFolder: typeof import('~icons/mdi/folder')['default'] - MdiFullscreen: typeof import('~icons/mdi/fullscreen')['default'] - MdiFullscreenExit: typeof import('~icons/mdi/fullscreen-exit')['default'] MdiFunction: typeof import('~icons/mdi/function')['default'] MdiGestureDoubleTap: typeof import('~icons/mdi/gesture-double-tap')['default'] MdiGithub: typeof import('~icons/mdi/github')['default'] - MdiGmail: typeof import('~icons/mdi/gmail')['default'] - MdiGridLarge: typeof import('~icons/mdi/grid-large')['default'] MdiHeart: typeof import('~icons/mdi/heart')['default'] MdiHook: typeof import('~icons/mdi/hook')['default'] MdiInformation: typeof import('~icons/mdi/information')['default'] MdiJson: typeof import('~icons/mdi/json')['default'] MdiKeyboardReturn: typeof import('~icons/mdi/keyboard-return')['default'] - MdiKeyChange: typeof import('~icons/mdi/key-change')['default'] - MdiKeyPlus: typeof import('~icons/mdi/key-plus')['default'] MdiKeyStar: typeof import('~icons/mdi/key-star')['default'] MdiLink: typeof import('~icons/mdi/link')['default'] MdiLinkVariant: typeof import('~icons/mdi/link-variant')['default'] MdiLinkVariantRemove: typeof import('~icons/mdi/link-variant-remove')['default'] MdiLoading: typeof import('~icons/mdi/loading')['default'] - MdiLockOutlineIcon: typeof import('~icons/mdi/lock-outline-icon')['default'] MdiLogin: typeof import('~icons/mdi/login')['default'] MdiLogout: typeof import('~icons/mdi/logout')['default'] MdiMagnify: typeof import('~icons/mdi/magnify')['default'] @@ -199,32 +171,23 @@ declare module '@vue/runtime-core' { MdiMicrosoftTeams: typeof import('~icons/mdi/microsoft-teams')['default'] MdiMinusCircleOutline: typeof import('~icons/mdi/minus-circle-outline')['default'] MdiMoonFull: typeof import('~icons/mdi/moon-full')['default'] - MdiNotebookCheckOutline: typeof import('~icons/mdi/notebook-check-outline')['default'] - MdiNull: typeof import('~icons/mdi/null')['default'] MdiNumeric: typeof import('~icons/mdi/numeric')['default'] MdiOpenInNew: typeof import('~icons/mdi/open-in-new')['default'] MdiPencil: typeof import('~icons/mdi/pencil')['default'] MdiPlus: typeof import('~icons/mdi/plus')['default'] - MdiPlusBoxOutline: typeof import('~icons/mdi/plus-box-outline')['default'] MdiPlusCircleOutline: typeof import('~icons/mdi/plus-circle-outline')['default'] MdiPlusOutline: typeof import('~icons/mdi/plus-outline')['default'] - MdiPlusRoundedOutline: typeof import('~icons/mdi/plus-rounded-outline')['default'] MdiRefresh: typeof import('~icons/mdi/refresh')['default'] MdiReload: typeof import('~icons/mdi/reload')['default'] MdiRocketLaunchOutline: typeof import('~icons/mdi/rocket-launch-outline')['default'] MdiScriptTextKeyOutline: typeof import('~icons/mdi/script-text-key-outline')['default'] MdiScriptTextOutline: typeof import('~icons/mdi/script-text-outline')['default'] - MdiSearch: typeof import('~icons/mdi/search')['default'] - MdiShieldLockOutline: typeof import('~icons/mdi/shield-lock-outline')['default'] MdiSlack: typeof import('~icons/mdi/slack')['default'] MdiSort: typeof import('~icons/mdi/sort')['default'] MdiStar: typeof import('~icons/mdi/star')['default'] MdiStarOutline: typeof import('~icons/mdi/star-outline')['default'] - MdiStore: typeof import('~icons/mdi/store')['default'] MdiTable: typeof import('~icons/mdi/table')['default'] MdiTableArrowRight: typeof import('~icons/mdi/table-arrow-right')['default'] - MdiTableBorder: typeof import('~icons/mdi/table-border')['default'] - MdiTableLarge: typeof import('~icons/mdi/table-large')['default'] MdiText: typeof import('~icons/mdi/text')['default'] MdiThumbUp: typeof import('~icons/mdi/thumb-up')['default'] MdiTrashCan: typeof import('~icons/mdi/trash-can')['default'] @@ -238,6 +201,5 @@ declare module '@vue/runtime-core' { PhFileCsv: typeof import('~icons/ph/file-csv')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - SystemUiconsExpandWidth: typeof import('~icons/system-uicons/expand-width')['default'] } } diff --git a/packages/nc-gui/composables/useColumnCreateStore.ts b/packages/nc-gui/composables/useColumnCreateStore.ts index 1d01368c63..4f287356a5 100644 --- a/packages/nc-gui/composables/useColumnCreateStore.ts +++ b/packages/nc-gui/composables/useColumnCreateStore.ts @@ -4,7 +4,6 @@ import type { ColumnType, TableType } from 'nocodb-sdk' import { UITypes } from 'nocodb-sdk' import type { Ref } from 'vue' import { useI18n } from 'vue-i18n' -import { useColumn } from './useColumn' import { computed, createInjectionState, extractSdkResponseErrorMsg, useNuxtApp } from '#imports' const useForm = Form.useForm From ed2d640da4861d49dbddb068d65dac2f8387dc05 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sat, 17 Sep 2022 00:50:20 +0530 Subject: [PATCH 4/7] enhancement(gui): add not found page for handling invalid base url re #3648 Signed-off-by: Pranav C --- packages/nc-gui/composables/useProject.ts | 13 +++++++++++-- packages/nc-gui/pages/404.vue | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 packages/nc-gui/pages/404.vue diff --git a/packages/nc-gui/composables/useProject.ts b/packages/nc-gui/composables/useProject.ts index 5aa7b15bb9..676a137cba 100644 --- a/packages/nc-gui/composables/useProject.ts +++ b/packages/nc-gui/composables/useProject.ts @@ -64,6 +64,8 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { const isPg = computed(() => projectBaseType === 'pg') const isSharedBase = computed(() => projectType === 'base') + const router = useRouter() + async function loadProjectMetaInfo(force?: boolean) { if (!projectMetaInfo.value || force) { projectMetaInfo.value = await api.project.metaGet(project.value.id!, {}, {}) @@ -104,8 +106,15 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { if (id) { project.value = await api.project.read(projectId.value) } else if (projectType === 'base') { - const baseData = await api.public.sharedBaseGet(route.params.projectId as string) - project.value = await api.project.read(baseData.project_id!) + try { + const baseData = await api.public.sharedBaseGet(route.params.projectId as string) + project.value = await api.project.read(baseData.project_id!) + } catch (e) { + if (e?.response?.status === 404) { + return router.push('/404') + } + throw e + } } else if (projectId.value) { project.value = await api.project.read(projectId.value) } else { diff --git a/packages/nc-gui/pages/404.vue b/packages/nc-gui/pages/404.vue new file mode 100644 index 0000000000..7197e8ef53 --- /dev/null +++ b/packages/nc-gui/pages/404.vue @@ -0,0 +1,14 @@ + + + From 07e248dc69f004d9f15ad2c655dacf9ed29ecd83 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Sat, 17 Sep 2022 12:49:42 +0530 Subject: [PATCH 5/7] refactor(gui): move 404 page Signed-off-by: Pranav C --- packages/nc-gui/components.d.ts | 1 + packages/nc-gui/composables/useProject.ts | 4 ++-- packages/nc-gui/pages/{ => error}/404.vue | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) rename packages/nc-gui/pages/{ => error}/404.vue (62%) diff --git a/packages/nc-gui/components.d.ts b/packages/nc-gui/components.d.ts index 30edfc757b..377cd11c6a 100644 --- a/packages/nc-gui/components.d.ts +++ b/packages/nc-gui/components.d.ts @@ -195,6 +195,7 @@ declare module '@vue/runtime-core' { MdiUpload: typeof import('~icons/mdi/upload')['default'] MdiUploadOutline: typeof import('~icons/mdi/upload-outline')['default'] MdiViewListOutline: typeof import('~icons/mdi/view-list-outline')['default'] + MdiWarning: typeof import('~icons/mdi/warning')['default'] MdiWhatsapp: typeof import('~icons/mdi/whatsapp')['default'] MdiXml: typeof import('~icons/mdi/xml')['default'] MiCircleWarning: typeof import('~icons/mi/circle-warning')['default'] diff --git a/packages/nc-gui/composables/useProject.ts b/packages/nc-gui/composables/useProject.ts index 676a137cba..f5b728d4f0 100644 --- a/packages/nc-gui/composables/useProject.ts +++ b/packages/nc-gui/composables/useProject.ts @@ -109,9 +109,9 @@ const [setup, use] = useInjectionState((_projectId?: MaybeRef) => { try { const baseData = await api.public.sharedBaseGet(route.params.projectId as string) project.value = await api.project.read(baseData.project_id!) - } catch (e) { + } catch (e: any) { if (e?.response?.status === 404) { - return router.push('/404') + return router.push('/error/404') } throw e } diff --git a/packages/nc-gui/pages/404.vue b/packages/nc-gui/pages/error/404.vue similarity index 62% rename from packages/nc-gui/pages/404.vue rename to packages/nc-gui/pages/error/404.vue index 7197e8ef53..0948eb7d08 100644 --- a/packages/nc-gui/pages/404.vue +++ b/packages/nc-gui/pages/error/404.vue @@ -2,13 +2,16 @@ import { definePageMeta } from '#imports' definePageMeta({ - title: 'Page Not Found', + requiresAuth: false, public: true, }) From 312120fd0b32882829d2ac957414177fcc7dcca5 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Mon, 19 Sep 2022 13:15:25 +0530 Subject: [PATCH 6/7] test: cy-stability for dropdown Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com> --- .../nc-gui/components/api-client/Headers.vue | 8 +++++++- .../nc-gui/components/cell/MultiSelect.vue | 1 + .../nc-gui/components/cell/SingleSelect.vue | 1 + .../smartsheet-column/AdvancedOptions.vue | 2 +- .../smartsheet-column/CheckboxOptions.vue | 2 +- .../smartsheet-column/CurrencyOptions.vue | 2 ++ .../smartsheet-column/DateOptions.vue | 2 +- .../smartsheet-column/DurationOptions.vue | 2 +- .../smartsheet-column/EditOrAdd.vue | 8 +++++++- .../LinkedToAnotherRecordOptions.vue | 17 +++++++++++++++-- .../smartsheet-column/LookupOptions.vue | 13 +++++++++++-- .../smartsheet-column/PercentOptions.vue | 2 +- .../smartsheet-column/RatingOptions.vue | 4 ++-- .../smartsheet-column/RollupOptions.vue | 19 ++++++++++++++++--- .../FieldListAutoCompleteDropdown.vue | 1 + .../smartsheet-toolbar/FieldsMenu.vue | 8 +++++++- .../smartsheet-toolbar/SearchData.vue | 2 +- .../smartsheet-toolbar/SortListMenu.vue | 2 +- .../components/smartsheet/ApiSnippet.vue | 7 ++++++- .../tabs/auth/user-management/ShareBase.vue | 7 ++++++- .../tabs/auth/user-management/UsersModal.vue | 2 +- .../nc-gui/components/template/Editor.vue | 9 ++++++++- .../components/webhook/ChannelMultiSelect.vue | 8 +++++++- packages/nc-gui/components/webhook/Editor.vue | 9 ++++++++- .../pages/index/index/create-external.vue | 19 +++++++++++++++---- .../common/1b_table_column_operations.js | 2 +- .../integration/common/3b_formula_column.js | 2 +- .../integration/common/3c_lookup_column.js | 6 +++--- .../integration/common/3d_rollup_column.js | 8 ++++---- .../integration/common/3e_duration_column.js | 6 +++--- .../common/3f_link_to_another_record.js | 4 ++-- .../integration/common/6g_base_share.js | 4 ++-- .../cypress/integration/common/8a_webhook.js | 4 ++-- .../cypress/support/page_objects/mainPage.js | 4 ++-- .../support/page_objects/navigation.js | 2 +- 35 files changed, 149 insertions(+), 50 deletions(-) diff --git a/packages/nc-gui/components/api-client/Headers.vue b/packages/nc-gui/components/api-client/Headers.vue index 4047eb8652..d6e08efc38 100644 --- a/packages/nc-gui/components/api-client/Headers.vue +++ b/packages/nc-gui/components/api-client/Headers.vue @@ -87,7 +87,13 @@ const deleteHeaderRow = (idx: number) => vModel.value.splice(idx, 1) - + {{ header }} diff --git a/packages/nc-gui/components/cell/MultiSelect.vue b/packages/nc-gui/components/cell/MultiSelect.vue index 004f3e7eb1..77bfd5a3e2 100644 --- a/packages/nc-gui/components/cell/MultiSelect.vue +++ b/packages/nc-gui/components/cell/MultiSelect.vue @@ -134,6 +134,7 @@ watch(isOpen, (n, _o) => { :show-search="false" :open="isOpen" :disabled="readOnly" + dropdown-class-name="nc-dropdown-multi-select-cell" @keydown="handleKeys" @click="isOpen = !isOpen" > diff --git a/packages/nc-gui/components/cell/SingleSelect.vue b/packages/nc-gui/components/cell/SingleSelect.vue index 72078b651e..d3690bc9ba 100644 --- a/packages/nc-gui/components/cell/SingleSelect.vue +++ b/packages/nc-gui/components/cell/SingleSelect.vue @@ -73,6 +73,7 @@ watch(isOpen, (n, _o) => { :open="isOpen" :disabled="readOnly" :show-arrow="!readOnly && (active || vModel === null)" + dropdown-class-name="nc-dropdown-single-select-cell" @select="isOpen = false" @keydown="handleKeys" @click="isOpen = !isOpen" diff --git a/packages/nc-gui/components/smartsheet-column/AdvancedOptions.vue b/packages/nc-gui/components/smartsheet-column/AdvancedOptions.vue index 97d68eb9ca..f6b6192b93 100644 --- a/packages/nc-gui/components/smartsheet-column/AdvancedOptions.vue +++ b/packages/nc-gui/components/smartsheet-column/AdvancedOptions.vue @@ -82,7 +82,7 @@ onBeforeMount(() => { - + {{ type }} diff --git a/packages/nc-gui/components/smartsheet-column/CheckboxOptions.vue b/packages/nc-gui/components/smartsheet-column/CheckboxOptions.vue index c4bda123c6..f4a89a3b7e 100644 --- a/packages/nc-gui/components/smartsheet-column/CheckboxOptions.vue +++ b/packages/nc-gui/components/smartsheet-column/CheckboxOptions.vue @@ -78,7 +78,7 @@ watch( - +
{{ currencyLocale.text }} @@ -98,6 +99,7 @@ vModel.value.meta = { show-search :filter-option="filterOption" :disabled="isMoney && isPg" + dropdown-class-name="nc-dropdown-currency-cell-code" > {{ currencyCode }} diff --git a/packages/nc-gui/components/smartsheet-column/DateOptions.vue b/packages/nc-gui/components/smartsheet-column/DateOptions.vue index 84585a07d9..6e181a4693 100644 --- a/packages/nc-gui/components/smartsheet-column/DateOptions.vue +++ b/packages/nc-gui/components/smartsheet-column/DateOptions.vue @@ -17,7 +17,7 @@ if (!vModel.value.meta?.date_format) { - +