From e7a15b77ec6c1ad0a24efe2d8fe53b97e93d46f4 Mon Sep 17 00:00:00 2001 From: flisowna Date: Thu, 1 Dec 2022 20:14:58 +0300 Subject: [PATCH] Barcode column type - WIP (mainly FE related code) --- .../nc-gui/components/smartsheet/Form.vue | 6 +- .../components/smartsheet/VirtualCell.vue | 2 + .../smartsheet/column/BarcodeOptions.vue | 68 +++++++++++++++++++ .../smartsheet/column/EditOrAdd.vue | 1 + .../smartsheet/column/FormulaOptions.vue | 2 +- .../smartsheet/column/LookupOptions.vue | 2 +- .../smartsheet/column/QrCodeOptions.vue | 4 +- .../toolbar/FieldListAutoCompleteDropdown.vue | 2 +- .../components/virtual-cell/Barcode.vue | 0 packages/nc-gui/composables/useSharedView.ts | 1 + packages/nc-gui/composables/useViewData.ts | 1 + packages/nc-gui/lang/en.json | 1 + packages/nc-gui/utils/columnUtils.ts | 6 ++ packages/nc-gui/utils/virtualCell.ts | 1 + .../src/lib/columnRules/QrCodeRules.ts | 2 +- packages/nocodb/src/lib/models/Column.ts | 4 +- 16 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 packages/nc-gui/components/smartsheet/column/BarcodeOptions.vue create mode 100644 packages/nc-gui/components/virtual-cell/Barcode.vue diff --git a/packages/nc-gui/components/smartsheet/Form.vue b/packages/nc-gui/components/smartsheet/Form.vue index 30b7da12c7..19a9482c63 100644 --- a/packages/nc-gui/components/smartsheet/Form.vue +++ b/packages/nc-gui/components/smartsheet/Form.vue @@ -33,7 +33,7 @@ provide(IsGalleryInj, ref(false)) // todo: generate hideCols based on default values const hiddenCols = ['created_at', 'updated_at'] -const hiddenColTypes = [UITypes.Rollup, UITypes.Lookup, UITypes.Formula, UITypes.QrCode, UITypes.SpecificDBType] +const hiddenColTypes = [UITypes.Rollup, UITypes.Lookup, UITypes.Formula, UITypes.QrCode, UITypes.Barcode, UITypes.SpecificDBType] const state = useGlobal() @@ -229,7 +229,9 @@ async function addAllColumns() { } function shouldSkipColumn(col: Record) { - return isDbRequired(col) || !!col.required || (!!col.rqd && !col.cdf) || col.uidt === UITypes.QrCode + return ( + isDbRequired(col) || !!col.required || (!!col.rqd && !col.cdf) || col.uidt === UITypes.QrCode || col.uidt === UITypes.Barcode + ) } async function removeAllColumns() { diff --git a/packages/nc-gui/components/smartsheet/VirtualCell.vue b/packages/nc-gui/components/smartsheet/VirtualCell.vue index dcf44f2c06..fe7f463ac8 100644 --- a/packages/nc-gui/components/smartsheet/VirtualCell.vue +++ b/packages/nc-gui/components/smartsheet/VirtualCell.vue @@ -14,6 +14,7 @@ import { isLookup, isMm, isQrCode, + isBarcode, isRollup, provide, toRef, @@ -59,6 +60,7 @@ function onNavigate(dir: NavigateDir, e: KeyboardEvent) { + diff --git a/packages/nc-gui/components/smartsheet/column/BarcodeOptions.vue b/packages/nc-gui/components/smartsheet/column/BarcodeOptions.vue new file mode 100644 index 0000000000..0033598bb2 --- /dev/null +++ b/packages/nc-gui/components/smartsheet/column/BarcodeOptions.vue @@ -0,0 +1,68 @@ + + + diff --git a/packages/nc-gui/components/smartsheet/column/EditOrAdd.vue b/packages/nc-gui/components/smartsheet/column/EditOrAdd.vue index f7a63fe1de..144c9f043c 100644 --- a/packages/nc-gui/components/smartsheet/column/EditOrAdd.vue +++ b/packages/nc-gui/components/smartsheet/column/EditOrAdd.vue @@ -171,6 +171,7 @@ useEventListener('keydown', (e: KeyboardEvent) => { + diff --git a/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue b/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue index 1ccb069b43..76b0124440 100644 --- a/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/FormulaOptions.vue @@ -26,7 +26,7 @@ const props = defineProps<{ const emit = defineEmits(['update:value']) -const uiTypesNotSupportedInFormulas = [UITypes.QrCode] +const uiTypesNotSupportedInFormulas = [UITypes.QrCode, UITypes.Barcode] const vModel = useVModel(props, 'value', emit) diff --git a/packages/nc-gui/components/smartsheet/column/LookupOptions.vue b/packages/nc-gui/components/smartsheet/column/LookupOptions.vue index 1bb039bc7d..c98e83512f 100644 --- a/packages/nc-gui/components/smartsheet/column/LookupOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/LookupOptions.vue @@ -55,7 +55,7 @@ const columns = $computed(() => { } return metas[selectedTable.id].columns.filter((c: any) => { - return !(isSystemColumn(c) || c.uidt === UITypes.QrCode) + return !(isSystemColumn(c) || c.uidt === UITypes.QrCode || c.uidt === UITypes.Barcode) }) }) diff --git a/packages/nc-gui/components/smartsheet/column/QrCodeOptions.vue b/packages/nc-gui/components/smartsheet/column/QrCodeOptions.vue index be08672d7a..3b7dd7d993 100644 --- a/packages/nc-gui/components/smartsheet/column/QrCodeOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/QrCodeOptions.vue @@ -1,6 +1,6 @@