diff --git a/.all-contributorsrc b/.all-contributorsrc
index 08a707910f..fead53513c 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -837,6 +837,15 @@
"contributions": [
"translation"
]
+ },
+ {
+ "login": "drsantam",
+ "name": "Santam Chakraborty",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10681456?v=4",
+ "profile": "https://github.com/drsantam",
+ "contributions": [
+ "translation"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/README.md b/README.md
index d6dfb705db..03af937ccd 100644
--- a/README.md
+++ b/README.md
@@ -449,6 +449,7 @@ Our mission is to provide the most powerful no-code interface for databases whic
Yohan Boniface 🌍 |
+ Santam Chakraborty 🌍 |
diff --git a/packages/nc-gui-v2/components/cell/Text.vue b/packages/nc-gui-v2/components/cell/Text.vue
index b1de025b8d..653842a105 100644
--- a/packages/nc-gui-v2/components/cell/Text.vue
+++ b/packages/nc-gui-v2/components/cell/Text.vue
@@ -1,100 +1,28 @@
-
- {{ localState }}
-
+
+ {{ vModel }}
-
-
+
diff --git a/packages/nc-gui-v2/components/cell/TextArea.vue b/packages/nc-gui-v2/components/cell/TextArea.vue
index d27590877d..e02de3d753 100644
--- a/packages/nc-gui-v2/components/cell/TextArea.vue
+++ b/packages/nc-gui-v2/components/cell/TextArea.vue
@@ -5,70 +5,34 @@ interface Props {
modelValue?: string
}
-const { modelValue: value } = defineProps()
+const props = defineProps()
-const emit = defineEmits(['update:modelValue'])
+const emits = defineEmits(['update:modelValue'])
const editEnabled = inject('editEnabled', false)
-const root = ref()
+const vModel = useVModel(props, 'modelValue', emits)
-const localState = computed({
- get: () => value,
- set: (val) => emit('update:modelValue', val),
-})
-
-onMounted(() => {
- root.value?.focus()
-})
-
-/* export default {
- name: 'TextAreaCell',
- props: {
- value: String,
- },
- computed: {
- localState: {
- get() {
- return this.value
- },
- set(val) {
- this.$emit('input', val)
- },
- },
- parentListeners() {
- const $listeners = {}
-
- if (this.$listeners.blur) {
- $listeners.blur = this.$listeners.blur
- }
- if (this.$listeners.focus) {
- $listeners.focus = this.$listeners.focus
- }
-
- return $listeners
- },
- },
- created() {
- this.localState = this.value
- },
- mounted() {
- this.$refs.textarea && this.$refs.textarea.focus()
- },
-} */
+const onSetRef = (el: HTMLInputElement) => {
+ el.focus()
+}
-
- {{ localState }}
+
+ {{ vModel }}
diff --git a/packages/nc-gui-v2/components/dlg/AirtableImport.vue b/packages/nc-gui-v2/components/dlg/AirtableImport.vue
index 390c4a4511..6b5ce40636 100644
--- a/packages/nc-gui-v2/components/dlg/AirtableImport.vue
+++ b/packages/nc-gui-v2/components/dlg/AirtableImport.vue
@@ -336,7 +336,8 @@ onBeforeUnmount(() => {
-
Go to DashboardGo to Dashboard
diff --git a/packages/nc-gui-v2/components/smartsheet-column/AdvancedOptions.vue b/packages/nc-gui-v2/components/smartsheet-column/AdvancedOptions.vue
index 043982561c..26bf40e44f 100644
--- a/packages/nc-gui-v2/components/smartsheet-column/AdvancedOptions.vue
+++ b/packages/nc-gui-v2/components/smartsheet-column/AdvancedOptions.vue
@@ -5,9 +5,6 @@ const { formState, validateInfos, setAdditionalValidations, sqlUi, onDataTypeCha
const dataTypes = computed(() => sqlUi?.value?.getDataTypeListForUiType(formState))
-// set additional validations
-setAdditionalValidations({})
-
// to avoid type error with checkbox
formState.value.rqd = !!formState.value.rqd
formState.value.pk = !!formState.value.pk
diff --git a/packages/nc-gui-v2/components/smartsheet-column/CurrencyOptions.vue b/packages/nc-gui-v2/components/smartsheet-column/CurrencyOptions.vue
new file mode 100644
index 0000000000..29cf63b9e4
--- /dev/null
+++ b/packages/nc-gui-v2/components/smartsheet-column/CurrencyOptions.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+ {{ currencyLocale.text }}
+
+
+
+
+
+
+
+
+ {{ currencyCode }}
+
+
+
+
+
+ {{ message }}
+
+
+
diff --git a/packages/nc-gui-v2/components/smartsheet-column/EditOrAdd.vue b/packages/nc-gui-v2/components/smartsheet-column/EditOrAdd.vue
index 659238e984..c1aa52e34d 100644
--- a/packages/nc-gui-v2/components/smartsheet-column/EditOrAdd.vue
+++ b/packages/nc-gui-v2/components/smartsheet-column/EditOrAdd.vue
@@ -23,6 +23,8 @@ const {
isEdit,
} = useColumnCreateStoreOrThrow()
+const columnToValidate = [UITypes.Email, UITypes.URL, UITypes.PhoneNumber]
+
const uiTypesOptions = computed(() => {
return [
...uiTypes.filter((t) => !isEdit || !t.virtual),
@@ -85,6 +87,7 @@ watchEffect(() => {
+
@@ -97,6 +100,15 @@ watchEffect(() => {
+
+
+ {{ `Accept only valid ${formState.uidt}` }}
+
+
diff --git a/packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue b/packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue
index 0c05c1a8a5..10ea007c32 100644
--- a/packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue
+++ b/packages/nc-gui-v2/components/smartsheet-header/CellIcon.vue
@@ -5,10 +5,13 @@ import FilePhoneIcon from '~icons/mdi/file-phone'
import { useColumn } from '#imports'
import KeyIcon from '~icons/mdi/key-variant'
import JSONIcon from '~icons/mdi/code-json'
+import ClockIcon from '~icons/mdi/clock-time-five'
// import FKIcon from '~icons/mdi/link-variant'
+import WebIcon from '~icons/mdi/web'
import TextAreaIcon from '~icons/mdi/card-text-outline'
import StringIcon from '~icons/mdi/alpha-a-box-outline'
import BooleanIcon from '~icons/mdi/check-box-outline'
+import YearIcon from '~icons/mdi/calendar'
import SingleSelectIcon from '~icons/mdi/radiobox-marked'
import MultiSelectIcon from '~icons/mdi/checkbox-multiple-marked'
import DatetimeIcon from '~icons/mdi/calendar-clock'
@@ -17,7 +20,6 @@ import RatingIcon from '~icons/mdi/star'
import GenericIcon from '~icons/mdi/square-rounded'
import NumericIcon from '~icons/mdi/numeric'
import AttachmentIcon from '~icons/mdi/image-multiple-outline'
-import URLIcon from '~icons/mdi/link'
import EmailIcon from '~icons/mdi/email'
import CurrencyIcon from '~icons/mdi/currency-usd-circle-outline'
import PercentIcon from '~icons/mdi/percent-outline'
@@ -48,14 +50,16 @@ const icon = computed(() => {
return TextAreaIcon
} else if (additionalColMeta.isEmail) {
return EmailIcon
+ } else if (additionalColMeta.isYear) {
+ return YearIcon
+ } else if (additionalColMeta.isTime) {
+ return ClockIcon
} else if (additionalColMeta.isRating) {
return RatingIcon
} else if (additionalColMeta.isAttachment) {
return AttachmentIcon
} else if (additionalColMeta.isDecimal) {
return DecimalIcon
- } else if (additionalColMeta.isInt || additionalColMeta.isFloat) {
- return NumericIcon
} else if (additionalColMeta.isPhoneNumber) {
return FilePhoneIcon
}
@@ -63,11 +67,13 @@ const icon = computed(() => {
// return FKIcon
// }
else if (additionalColMeta.isURL) {
- return URLIcon
+ return WebIcon
} else if (additionalColMeta.isCurrency) {
return CurrencyIcon
} else if (additionalColMeta.isPercent) {
return PercentIcon
+ } else if (additionalColMeta.isInt || additionalColMeta.isFloat) {
+ return NumericIcon
} else if (additionalColMeta.isString) {
return StringIcon
} else {
diff --git a/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue b/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue
index 9d91c76f80..5caf418e77 100644
--- a/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue
+++ b/packages/nc-gui-v2/components/smartsheet-header/VirtualCellIcon.vue
@@ -8,6 +8,8 @@ import BTIcon from '~icons/mdi/table-arrow-left'
import MMIcon from '~icons/mdi/table-network'
import FormulaIcon from '~icons/mdi/math-integral'
import RollupIcon from '~icons/mdi/movie-roll'
+import CountIcon from '~icons/mdi/counter'
+import SpecificDBTypeIcon from '~icons/mdi/database-settings'
const { columnMeta } = defineProps<{ columnMeta?: ColumnType }>()
@@ -25,12 +27,16 @@ const icon = computed(() => {
return BTIcon
}
break
+ case UITypes.SpecificDBType:
+ return SpecificDBTypeIcon
case UITypes.Formula:
return FormulaIcon
case UITypes.Lookup:
return GenericIcon
case UITypes.Rollup:
return RollupIcon
+ case UITypes.Count:
+ return CountIcon
}
return GenericIcon
})
diff --git a/packages/nc-gui-v2/components/smartsheet/VirtualCell.vue b/packages/nc-gui-v2/components/smartsheet/VirtualCell.vue
index 4c8a4725ea..47eb8e5cc1 100644
--- a/packages/nc-gui-v2/components/smartsheet/VirtualCell.vue
+++ b/packages/nc-gui-v2/components/smartsheet/VirtualCell.vue
@@ -15,7 +15,7 @@ const emit = defineEmits(['update:modelValue'])
provide(ColumnInj, column)
provide('value', value)
-const { isLookup, isBt, isRollup, isMm, isHm, isFormula } = useVirtualCell(column)
+const { isLookup, isBt, isRollup, isMm, isHm, isFormula, isCount } = useVirtualCell(column)
@@ -25,6 +25,7 @@ const { isLookup, isBt, isRollup, isMm, isHm, isFormula } = useVirtualCell(colum
+