From 5dec1b937f5950889de2d567af0785ce0b999fc5 Mon Sep 17 00:00:00 2001 From: Daniel Spaude Date: Mon, 20 Feb 2023 00:04:21 -0500 Subject: [PATCH] code scanner for forms - WIP --- .../smartsheet/toolbar/QrScannerButton.vue | 2 +- packages/nc-gui/lang/en.json | 3 +- .../form/[viewId]/index/index.vue | 75 +++++++++++++++---- 3 files changed, 63 insertions(+), 17 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/toolbar/QrScannerButton.vue b/packages/nc-gui/components/smartsheet/toolbar/QrScannerButton.vue index cfac5a387f..f7741b758e 100644 --- a/packages/nc-gui/components/smartsheet/toolbar/QrScannerButton.vue +++ b/packages/nc-gui/components/smartsheet/toolbar/QrScannerButton.vue @@ -96,7 +96,7 @@ const onDecode = async (codeValue: string) => {
- {{ $t('activity.scanCode') }} + {{ $t('activity.findRowByCodeScan') }}
import { RelationTypes, UITypes, isVirtualCol } from 'nocodb-sdk' -import { useSharedFormStoreOrThrow } from '#imports' +import { StreamBarcodeReader } from 'vue-barcode-reader' +import { NOCO, useSharedFormStoreOrThrow } from '#imports' -const { sharedFormView, submitForm, v$, formState, notFound, formColumns, submitted, secondsRemain, isLoading } = +import QrCodeScan from '~icons/mdi/qrcode-scan' + +// const meta = inject(MetaInj, ref()) + +// const { t } = useI18n() + + +const showCodeScannerOverlay = ref(false) + +const lastScannedCode = ref('') + +const scannerIsReady = ref(false) + + +// TODO: better use directly scannerIsReady +const showScannerField = computed(() => scannerIsReady.value) + + +const { formColumns } = useSharedFormStoreOrThrow() -function isRequired(_columnObj: Record, required = false) { - let columnObj = _columnObj - if ( - columnObj.uidt === UITypes.LinkToAnotherRecord && - columnObj.colOptions && - columnObj.colOptions.type === RelationTypes.BELONGS_TO - ) { - columnObj = formColumns.value?.find((c) => c.id === columnObj.colOptions.fk_child_column_id) as Record - } - - return !!(required || (columnObj && columnObj.rqd && !columnObj.cdf)) -}