Skip to content

Commit

Permalink
fix: avoid marking updated on select (#8741)
Browse files Browse the repository at this point in the history
* fix: avoid marking updated on select

* fix: handle null/undefined meta

* fix: use local meta for field details

* fix: avoid creating options on update

* fix: improve readability
  • Loading branch information
mertmit committed Jun 14, 2024
1 parent aa7b9a1 commit da706f4
Show file tree
Hide file tree
Showing 18 changed files with 207 additions and 97 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ vModel.value.meta = {
// allow all mime types by default
supportedAttachmentMimeTypes: ['*'],
}),
...vModel.value.meta,
...(vModel.value.meta || {}),
}
const expandedKeys = ref<(string | number)[]>([])
Expand Down
20 changes: 3 additions & 17 deletions packages/nc-gui/components/smartsheet/column/BarcodeOptions.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import type { ColumnType, UITypes } from 'nocodb-sdk'
import { type ColumnType, UITypes } from 'nocodb-sdk'
import { AllowedColumnTypesForQrAndBarcodes, isVirtualCol } from 'nocodb-sdk'
const props = defineProps<{
Expand Down Expand Up @@ -29,25 +29,11 @@ const columnsAllowedAsBarcodeValue = computed<ColumnType[]>(() => {
)
})
const supportedBarcodeFormats = [
{ value: 'CODE128', label: 'CODE128' },
{ value: 'upc', label: 'UPC' },
{ value: 'EAN13', label: 'EAN-13' },
{ value: 'EAN8', label: 'EAN-8' },
{ value: 'EAN5', label: 'EAN-5' },
{ value: 'EAN2', label: 'EAN-2' },
{ value: 'CODE39', label: 'CODE39' },
{ value: 'ITF14', label: 'ITF-14' },
{ value: 'MSI', label: 'MSI' },
{ value: 'PHARMACODE', label: 'PHARMACODE' },
{ value: 'CODABAR', label: 'CODABAR' },
]
onMounted(() => {
// set default value
vModel.value.meta = {
barcodeFormat: supportedBarcodeFormats[0].value,
...vModel.value.meta,
...columnDefaultMeta[UITypes.Barcode],
...(vModel.value.meta || {}),
}
vModel.value.fk_barcode_value_column_id =
(column?.value?.colOptions as Record<string, any>)?.fk_barcode_value_column_id || columnsAllowedAsBarcodeValue.value?.[0]?.id
Expand Down
10 changes: 4 additions & 6 deletions packages/nc-gui/components/smartsheet/column/CheckboxOptions.vue
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand Down Expand Up @@ -50,12 +52,8 @@ const isOpenColorPicker = ref(false)
// set default value
vModel.value.meta = {
icon: {
checked: 'mdi-check-bold',
unchecked: 'mdi-crop-square',
},
color: '#777',
...vModel.value.meta,
...columnDefaultMeta[UITypes.Checkbox],
...(vModel.value.meta || {}),
}
// antdv doesn't support object as value
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
interface Option {
label: string
value: string
Expand Down Expand Up @@ -64,9 +66,8 @@ function filterOption(input: string, option: Option) {
// set default value
vModel.value.meta = {
currency_locale: 'en-US',
currency_code: 'USD',
...vModel.value.meta,
...columnDefaultMeta[UITypes.Currency],
...(vModel.value.meta || {}),
}
currencyLocales().then((locales) => {
Expand Down
9 changes: 5 additions & 4 deletions packages/nc-gui/components/smartsheet/column/DateOptions.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { dateFormats, dateMonthFormats } from 'nocodb-sdk'
import { UITypes, dateFormats, dateMonthFormats } from 'nocodb-sdk'
const props = defineProps<{
value: any
Expand All @@ -9,9 +9,10 @@ const emit = defineEmits(['update:value'])
const vModel = useVModel(props, 'value', emit)
if (!vModel.value.meta?.date_format) {
if (!vModel.value.meta) vModel.value.meta = {}
vModel.value.meta.date_format = dateFormats[0]
// set default value
vModel.value.meta = {
...columnDefaultMeta[UITypes.Date],
...(vModel.value.meta || {}),
}
</script>

Expand Down
18 changes: 5 additions & 13 deletions packages/nc-gui/components/smartsheet/column/DateTimeOptions.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import { dateFormats, timeFormats } from 'nocodb-sdk'
import { UITypes, dateFormats, timeFormats } from 'nocodb-sdk'
const props = defineProps<{
value: any
Expand All @@ -9,18 +9,10 @@ const emit = defineEmits(['update:value'])
const vModel = useVModel(props, 'value', emit)
if (!vModel.value.meta?.date_format) {
if (!vModel.value.meta) vModel.value.meta = {}
vModel.value.meta.date_format = dateFormats[0]
}
if (!vModel.value.meta?.time_format) {
if (!vModel.value.meta) vModel.value.meta = {}
vModel.value.meta.time_format = timeFormats[0]
}
if (vModel.value.meta?.is12hrFormat === undefined) {
if (!vModel.value.meta) vModel.value.meta = {}
vModel.value.meta.is12hrFormat = false
// set default value
vModel.value.meta = {
...columnDefaultMeta[UITypes.DateTime],
...(vModel.value.meta || {}),
}
</script>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand All @@ -24,8 +26,7 @@ const vModel = useVModel(props, 'value', emit)
// set default value
vModel.value.meta = {
precision: precisionFormats[0],
isLocaleString: false,
...columnDefaultMeta[UITypes.Decimal],
...(vModel.value.meta || {}),
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand All @@ -16,8 +18,8 @@ const durationOptionList =
// set default value
vModel.value.meta = {
duration: 0,
...vModel.value.meta,
...columnDefaultMeta[UITypes.Duration],
...(vModel.value.meta || {}),
}
</script>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ setAdditionalValidations({
vModel.value.meta = {
singular: '',
plural: '',
...vModel.value.meta,
...(vModel.value.meta || {}),
}
</script>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand All @@ -9,7 +11,7 @@ const vModel = useVModel(props, 'value', emit)
// set default value
vModel.value.meta = {
isLocaleString: false,
...columnDefaultMeta[UITypes.Number],
...(vModel.value.meta || {}),
}
</script>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
isEdit?: boolean
Expand All @@ -18,8 +20,8 @@ setAdditionalValidations({
// set default value
vModel.value.meta = {
is_progress: false,
...vModel.value.meta,
...columnDefaultMeta[UITypes.Percent],
...(vModel.value.meta || {}),
}
</script>

Expand Down
36 changes: 4 additions & 32 deletions packages/nc-gui/components/smartsheet/column/RatingOptions.vue
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand All @@ -7,30 +9,6 @@ const emit = defineEmits(['update:value'])
const vModel = useVModel(props, 'value', emit)
// cater existing v1 cases
const iconList = [
{
full: 'mdi-star',
empty: 'mdi-star-outline',
},
{
full: 'mdi-heart',
empty: 'mdi-heart-outline',
},
{
full: 'mdi-moon-full',
empty: 'mdi-moon-new',
},
{
full: 'mdi-thumb-up',
empty: 'mdi-thumb-up-outline',
},
{
full: 'mdi-flag',
empty: 'mdi-flag-outline',
},
]
const picked = computed({
get: () => vModel.value.meta.color,
set: (val) => {
Expand All @@ -42,14 +20,8 @@ const isOpenColorPicker = ref(false)
// set default value
vModel.value.meta = {
iconIdx: 0,
icon: {
full: 'mdi-star',
empty: 'mdi-star-outline',
},
color: '#fcb401',
max: 5,
...vModel.value.meta,
...columnDefaultMeta[UITypes.Rating],
...(vModel.value.meta || {}),
}
// antdv doesn't support object as value
Expand Down
4 changes: 3 additions & 1 deletion packages/nc-gui/components/smartsheet/column/TimeOptions.vue
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
}>()
Expand All @@ -9,7 +11,7 @@ const vModel = useVModel(props, 'value', emit)
// set default value
vModel.value.meta = {
is12hrFormat: false,
...columnDefaultMeta[UITypes.Time],
...(vModel.value.meta ?? {}),
}
</script>
Expand Down
7 changes: 4 additions & 3 deletions packages/nc-gui/components/smartsheet/column/UserOptions.vue
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<script setup lang="ts">
import { UITypes } from 'nocodb-sdk'
const props = defineProps<{
value: any
isEdit: boolean
Expand All @@ -22,9 +24,8 @@ setAdditionalValidations({
// set default value
vModel.value.meta = {
is_multi: false,
notify: false,
...vModel.value.meta,
...columnDefaultMeta[UITypes.User],
...(vModel.value.meta || {}),
}
onMounted(() => {
Expand Down
Loading

0 comments on commit da706f4

Please sign in to comment.