diff --git a/packages/nc-gui/app.vue b/packages/nc-gui/app.vue
index 32480b0839..dfd4c809a6 100644
--- a/packages/nc-gui/app.vue
+++ b/packages/nc-gui/app.vue
@@ -1,5 +1,5 @@
@@ -30,7 +55,7 @@ const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus()
v-if="editEnabled"
:ref="focus"
v-model="vModel"
- class="outline-none text-sm px-2"
+ class="w-full outline-none text-sm px-2"
@blur="editEnabled = false"
@keydown.down.stop
@keydown.left.stop
diff --git a/packages/nc-gui/components/cell/TimePicker.vue b/packages/nc-gui/components/cell/TimePicker.vue
index 862d7a3036..205b2bed6b 100644
--- a/packages/nc-gui/components/cell/TimePicker.vue
+++ b/packages/nc-gui/components/cell/TimePicker.vue
@@ -95,7 +95,6 @@ useSelectedCellKeyupListener(active, (e: KeyboardEvent) => {
value,
set: (val) => {
localState.value = val
- if (!parseProp(column.value.meta)?.validate || (val && isValidURL(val)) || !val) {
+ if (!parseProp(column.value.meta)?.validate || (val && isValidURL(val)) || !val || isSurveyForm.value) {
emit('update:modelValue', val)
}
},
@@ -119,7 +122,7 @@ watch(
- Invalid URL
+ {{ t('msg.error.invalidURL') }}
diff --git a/packages/nc-gui/components/smartsheet/Cell.vue b/packages/nc-gui/components/smartsheet/Cell.vue
index 1a76886aa6..946dd62d13 100644
--- a/packages/nc-gui/components/smartsheet/Cell.vue
+++ b/packages/nc-gui/components/smartsheet/Cell.vue
@@ -8,6 +8,7 @@ import {
IsFormInj,
IsLockedInj,
IsPublicInj,
+ IsSurveyFormInj,
ReadonlyInj,
computed,
inject,
@@ -66,7 +67,7 @@ const column = toRef(props, 'column')
const active = toRef(props, 'active', false)
-const readOnly = toRef(props, 'readOnly', undefined)
+const readOnly = toRef(props, 'readOnly', false)
provide(ColumnInj, column)
@@ -84,6 +85,8 @@ const isPublic = inject(IsPublicInj, ref(false))
const isLocked = inject(IsLockedInj, ref(false))
+const isSurveyForm = inject(IsSurveyFormInj, ref(false))
+
const { currentRow } = useSmartsheetRowStoreOrThrow()
const { sqlUis } = storeToRefs(useProject())
@@ -118,11 +121,10 @@ const vModel = computed({
},
})
-const syncAndNavigate = (dir: NavigateDir, e: KeyboardEvent) => {
+const navigate = (dir: NavigateDir, e: KeyboardEvent) => {
if (isJSON(column.value)) return
if (currentRow.value.rowMeta.changed || currentRow.value.rowMeta.new) {
- emit('save')
currentRow.value.rowMeta.changed = false
}
emit('navigate', dir)
@@ -158,9 +160,10 @@ const onContextmenu = (e: MouseEvent) => {
`nc-cell-${(column?.uidt || 'default').toLowerCase()}`,
{ 'text-blue-600': isPrimary(column) && !props.virtual && !isForm },
{ 'nc-grid-numeric-cell': isGrid && !isForm && isNumericField },
+ { 'h-[40px]': !props.editEnabled && isForm && !isSurveyForm },
]"
- @keydown.enter.exact="syncAndNavigate(NavigateDir.NEXT, $event)"
- @keydown.shift.enter.exact="syncAndNavigate(NavigateDir.PREV, $event)"
+ @keydown.enter.exact="navigate(NavigateDir.NEXT, $event)"
+ @keydown.shift.enter.exact="navigate(NavigateDir.PREV, $event)"
@contextmenu="onContextmenu"
>
diff --git a/packages/nc-gui/components/smartsheet/Form.vue b/packages/nc-gui/components/smartsheet/Form.vue
index 0171c83a76..e71424ec4f 100644
--- a/packages/nc-gui/components/smartsheet/Form.vue
+++ b/packages/nc-gui/components/smartsheet/Form.vue
@@ -97,6 +97,8 @@ const submitted = ref(false)
const activeRow = ref('')
+const editEnabled = ref([])
+
const { t } = useI18n()
const { betaFeatureToggleState } = useBetaFeatureToggle()
@@ -283,6 +285,8 @@ function setFormData() {
.sort((a, b) => a.order - b.order)
.map((c) => ({ ...c, required: !!c.required }))
+ editEnabled.value = new Array(localColumns.value.length).fill(false)
+
systemFieldsIds.value = getSystemColumns(col).map((c) => c.fk_column_id)
hiddenColumns.value = col.filter(
@@ -727,7 +731,10 @@ watch(view, (nextView) => {
:class="`nc-form-input-${element.title.replaceAll(' ', '')}`"
:data-testid="`nc-form-input-${element.title.replaceAll(' ', '')}`"
:column="element"
- :edit-enabled="true"
+ :edit-enabled="editEnabled[index]"
+ @click="editEnabled[index] = true"
+ @cancel="editEnabled[index] = false"
+ @update:edit-enabled="editEnabled[index] = $event"
@click.stop.prevent
/>
diff --git a/packages/nc-gui/components/tabs/auth/user-management/UsersModal.vue b/packages/nc-gui/components/tabs/auth/user-management/UsersModal.vue
index 400a0058c2..18f6c0fbf4 100644
--- a/packages/nc-gui/components/tabs/auth/user-management/UsersModal.vue
+++ b/packages/nc-gui/components/tabs/auth/user-management/UsersModal.vue
@@ -4,6 +4,7 @@ import type { ProjectUserReqType } from 'nocodb-sdk'
import {
Form,
computed,
+ emailValidator,
extractSdkResponseErrorMsg,
message,
onMounted,
@@ -17,7 +18,6 @@ import {
useI18n,
useNuxtApp,
useProject,
- validateEmail,
} from '#imports'
import type { User } from '~/lib'
import { ProjectRole } from '~/lib'
@@ -54,24 +54,10 @@ let usersData = $ref({ emails: undefined, role: ProjectRole.Viewer, invit
const formRef = ref()
const useForm = Form.useForm
+
const validators = computed(() => {
return {
- emails: [
- {
- validator: (rule: any, value: string, callback: (errMsg?: string) => void) => {
- if (!value || value.length === 0) {
- callback('Email is required')
- return
- }
- const invalidEmails = (value || '').split(/\s*,\s*/).filter((e: string) => !validateEmail(e))
- if (invalidEmails.length > 0) {
- callback(`${invalidEmails.length > 1 ? ' Invalid emails:' : 'Invalid email:'} ${invalidEmails.join(', ')} `)
- } else {
- callback()
- }
- },
- },
- ],
+ emails: [emailValidator],
}
})
diff --git a/packages/nc-gui/context/index.ts b/packages/nc-gui/context/index.ts
index d64d74ecd0..cb9c99f15c 100644
--- a/packages/nc-gui/context/index.ts
+++ b/packages/nc-gui/context/index.ts
@@ -14,6 +14,7 @@ export const PaginationDataInj: InjectionKey['pag
Symbol('pagination-data-injection')
export const ChangePageInj: InjectionKey['changePage']> = Symbol('pagination-data-injection')
export const IsFormInj: InjectionKey[> = Symbol('is-form-injection')
+export const IsSurveyFormInj: InjectionKey][> = Symbol('is-survey-form-injection')
export const IsGridInj: InjectionKey][> = Symbol('is-grid-injection')
export const IsGalleryInj: InjectionKey][> = Symbol('is-gallery-injection')
export const IsKanbanInj: InjectionKey][> = Symbol('is-kanban-injection')
diff --git a/packages/nc-gui/lang/ar.json b/packages/nc-gui/lang/ar.json
index 495e02e1c5..326dee838a 100644
--- a/packages/nc-gui/lang/ar.json
+++ b/packages/nc-gui/lang/ar.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "قائمة الأحرف الخاصة المسموح بها"
},
"invalidURL": "رابط غير صالح",
+ "invalidEmail": "Invalid Email",
"internalError": "حدث خطأ داخلي",
"templateGeneratorNotFound": "لا يمكن العثور على مولد القالب!",
"fileUploadFailed": "فشل في رفع الملف",
diff --git a/packages/nc-gui/lang/bn_IN.json b/packages/nc-gui/lang/bn_IN.json
index 0de1493666..205a55ac24 100644
--- a/packages/nc-gui/lang/bn_IN.json
+++ b/packages/nc-gui/lang/bn_IN.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/cs.json b/packages/nc-gui/lang/cs.json
index 64f1324515..e226b5feaf 100644
--- a/packages/nc-gui/lang/cs.json
+++ b/packages/nc-gui/lang/cs.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Seznam povolených speciálních znaků"
},
"invalidURL": "Neplatná adresa URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Došlo k nějaké interní chybě",
"templateGeneratorNotFound": "Generátor šablon nelze najít!",
"fileUploadFailed": "Nepodařilo se nahrát soubor",
diff --git a/packages/nc-gui/lang/da.json b/packages/nc-gui/lang/da.json
index a1eab1ef5e..57941b6c1a 100644
--- a/packages/nc-gui/lang/da.json
+++ b/packages/nc-gui/lang/da.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Liste over tilladte specialtegn"
},
"invalidURL": "Ugyldig URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Der er opstået en intern fejl",
"templateGeneratorNotFound": "Template Generator kan ikke findes!",
"fileUploadFailed": "Det er ikke lykkedes at uploade filen",
diff --git a/packages/nc-gui/lang/de.json b/packages/nc-gui/lang/de.json
index f3df25d4c5..5b3727e78d 100644
--- a/packages/nc-gui/lang/de.json
+++ b/packages/nc-gui/lang/de.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Erlaubte Sonderzeichenliste"
},
"invalidURL": "Ungültige URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Interner Fehler aufgetreten",
"templateGeneratorNotFound": "Template-Generator kann nicht gefunden werden!",
"fileUploadFailed": "Fehler beim Hochladen der Datei",
diff --git a/packages/nc-gui/lang/en.json b/packages/nc-gui/lang/en.json
index 1842c5d810..227c9050f7 100644
--- a/packages/nc-gui/lang/en.json
+++ b/packages/nc-gui/lang/en.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/es.json b/packages/nc-gui/lang/es.json
index 527f2f605a..ce9d16e1ae 100644
--- a/packages/nc-gui/lang/es.json
+++ b/packages/nc-gui/lang/es.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Lista de caracteres especiales permitidos"
},
"invalidURL": "URL no válida",
+ "invalidEmail": "Invalid Email",
"internalError": "Se ha producido algún error interno",
"templateGeneratorNotFound": "¡No se encuentra el generador de plantillas!",
"fileUploadFailed": "Fallo al cargar el archivo",
diff --git a/packages/nc-gui/lang/eu.json b/packages/nc-gui/lang/eu.json
index 65c38bd26f..45a45c4548 100644
--- a/packages/nc-gui/lang/eu.json
+++ b/packages/nc-gui/lang/eu.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/fa.json b/packages/nc-gui/lang/fa.json
index 042fe98c08..808f872b03 100644
--- a/packages/nc-gui/lang/fa.json
+++ b/packages/nc-gui/lang/fa.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/fi.json b/packages/nc-gui/lang/fi.json
index 87088e2c46..dadff7ac7f 100644
--- a/packages/nc-gui/lang/fi.json
+++ b/packages/nc-gui/lang/fi.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Sallittujen erikoismerkkien luettelo"
},
"invalidURL": "Virheellinen URL-osoite",
+ "invalidEmail": "Invalid Email",
"internalError": "Tapahtui jokin sisäinen virhe",
"templateGeneratorNotFound": "Template Generatoria ei löydy!",
"fileUploadFailed": "Tiedoston lataaminen epäonnistui",
diff --git a/packages/nc-gui/lang/fr.json b/packages/nc-gui/lang/fr.json
index 44305bb27d..0a3922bd38 100644
--- a/packages/nc-gui/lang/fr.json
+++ b/packages/nc-gui/lang/fr.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Liste des caractères spéciaux autorisés"
},
"invalidURL": "URL invalide",
+ "invalidEmail": "Invalid Email",
"internalError": "Une erreur interne est survenue",
"templateGeneratorNotFound": "Le générateur de modèles est introuvable !",
"fileUploadFailed": "Échec du téléversement du fichier",
diff --git a/packages/nc-gui/lang/he.json b/packages/nc-gui/lang/he.json
index 54d8b66187..3c46019eb9 100644
--- a/packages/nc-gui/lang/he.json
+++ b/packages/nc-gui/lang/he.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/hi.json b/packages/nc-gui/lang/hi.json
index 23d3a47785..7b665edaf1 100644
--- a/packages/nc-gui/lang/hi.json
+++ b/packages/nc-gui/lang/hi.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/hr.json b/packages/nc-gui/lang/hr.json
index 534eb7f94b..ff186b405d 100644
--- a/packages/nc-gui/lang/hr.json
+++ b/packages/nc-gui/lang/hr.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/id.json b/packages/nc-gui/lang/id.json
index 9c07caf39f..90d35461b1 100644
--- a/packages/nc-gui/lang/id.json
+++ b/packages/nc-gui/lang/id.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Daftar karakter khusus yang diizinkan"
},
"invalidURL": "URL tidak valid",
+ "invalidEmail": "Invalid Email",
"internalError": "Beberapa kesalahan internal terjadi",
"templateGeneratorNotFound": "Pembuat Templat tidak dapat ditemukan!",
"fileUploadFailed": "Gagal mengunggah file",
diff --git a/packages/nc-gui/lang/it.json b/packages/nc-gui/lang/it.json
index d2ecc1c59a..6224fc12ba 100644
--- a/packages/nc-gui/lang/it.json
+++ b/packages/nc-gui/lang/it.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Elenco dei caratteri speciali consentiti"
},
"invalidURL": "URL non valido",
+ "invalidEmail": "Invalid Email",
"internalError": "Si è verificato un errore interno",
"templateGeneratorNotFound": "Il generatore di modelli non può essere trovato!",
"fileUploadFailed": "Non è riuscito a caricare il file",
diff --git a/packages/nc-gui/lang/ja.json b/packages/nc-gui/lang/ja.json
index ca0280260e..1112f5b2c0 100644
--- a/packages/nc-gui/lang/ja.json
+++ b/packages/nc-gui/lang/ja.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "利用できる記号の一覧"
},
"invalidURL": "無効なURL",
+ "invalidEmail": "Invalid Email",
"internalError": "内部エラーが発生しました",
"templateGeneratorNotFound": "テンプレートジェネレーターが見つかりません!",
"fileUploadFailed": "ファイルのアップロードに失敗しました",
diff --git a/packages/nc-gui/lang/ko.json b/packages/nc-gui/lang/ko.json
index 551effe304..9aa3763d1d 100644
--- a/packages/nc-gui/lang/ko.json
+++ b/packages/nc-gui/lang/ko.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/lv.json b/packages/nc-gui/lang/lv.json
index 6f97dc1766..1caf7c977b 100644
--- a/packages/nc-gui/lang/lv.json
+++ b/packages/nc-gui/lang/lv.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Atļauto īpašo rakstzīmju saraksts"
},
"invalidURL": "Nederīgs URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Notika kāda iekšēja kļūda",
"templateGeneratorNotFound": "Šablonu ģenerators nav atrodams!",
"fileUploadFailed": "Fail to upload file",
diff --git a/packages/nc-gui/lang/nl.json b/packages/nc-gui/lang/nl.json
index 64dc944058..082fe2449e 100644
--- a/packages/nc-gui/lang/nl.json
+++ b/packages/nc-gui/lang/nl.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Lijst met toegestane speciale tekens"
},
"invalidURL": "Ongeldige URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Er is een interne fout opgetreden",
"templateGeneratorNotFound": "Sjabloongenerator kan niet worden gevonden!",
"fileUploadFailed": "Bestand niet geüpload",
diff --git a/packages/nc-gui/lang/no.json b/packages/nc-gui/lang/no.json
index 657fac3b93..8cb1e785c1 100644
--- a/packages/nc-gui/lang/no.json
+++ b/packages/nc-gui/lang/no.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/pl.json b/packages/nc-gui/lang/pl.json
index 85c44a38c9..feda0acb8c 100644
--- a/packages/nc-gui/lang/pl.json
+++ b/packages/nc-gui/lang/pl.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Dozwolona lista znaków specjalnych"
},
"invalidURL": "Nieprawidłowy adres URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Wystąpił błąd wewnętrzny",
"templateGeneratorNotFound": "Nie można znaleźć generatora szablonów!",
"fileUploadFailed": "Nie udało się przesłać pliku",
diff --git a/packages/nc-gui/lang/pt.json b/packages/nc-gui/lang/pt.json
index b98e7c5f5b..4dcaf6640c 100644
--- a/packages/nc-gui/lang/pt.json
+++ b/packages/nc-gui/lang/pt.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Lista de caracteres especiais permitidos"
},
"invalidURL": "URL inválido",
+ "invalidEmail": "Invalid Email",
"internalError": "Ocorreu algum erro interno",
"templateGeneratorNotFound": "O Gerador de Modelos não pode ser encontrado!",
"fileUploadFailed": "Falha no carregamento do ficheiro",
diff --git a/packages/nc-gui/lang/pt_BR.json b/packages/nc-gui/lang/pt_BR.json
index 6931c855de..daddef58d6 100644
--- a/packages/nc-gui/lang/pt_BR.json
+++ b/packages/nc-gui/lang/pt_BR.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Lista de caracteres especiais permitidos"
},
"invalidURL": "URL inválido",
+ "invalidEmail": "Invalid Email",
"internalError": "Ocorreu algum erro interno",
"templateGeneratorNotFound": "O Gerador de Modelos não pode ser encontrado!",
"fileUploadFailed": "Falha no carregamento do ficheiro",
diff --git a/packages/nc-gui/lang/ru.json b/packages/nc-gui/lang/ru.json
index 606f788c14..836259b3d0 100644
--- a/packages/nc-gui/lang/ru.json
+++ b/packages/nc-gui/lang/ru.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Список разрешенных специальных символов"
},
"invalidURL": "Неверный URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Произошла какая-то внутренняя ошибка",
"templateGeneratorNotFound": "Генератор шаблонов не найден!",
"fileUploadFailed": "Не удалось загрузить файл",
diff --git a/packages/nc-gui/lang/sk.json b/packages/nc-gui/lang/sk.json
index 8e58be21bb..7e1d070fb0 100644
--- a/packages/nc-gui/lang/sk.json
+++ b/packages/nc-gui/lang/sk.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Zoznam povolených špeciálnych znakov"
},
"invalidURL": "Neplatná adresa URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Vyskytla sa nejaká vnútorná chyba",
"templateGeneratorNotFound": "Generátor šablón nemožno nájsť!",
"fileUploadFailed": "Nepodarilo sa nahrať súbor",
diff --git a/packages/nc-gui/lang/sl.json b/packages/nc-gui/lang/sl.json
index e8e782d10c..0beb4b38df 100644
--- a/packages/nc-gui/lang/sl.json
+++ b/packages/nc-gui/lang/sl.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Seznam dovoljenih posebnih znakov"
},
"invalidURL": "Nepravilen URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Zgodila se je neka notranja napaka",
"templateGeneratorNotFound": "Generatorja predlog ni mogoče najti!",
"fileUploadFailed": "Ni uspelo naložiti datoteke",
diff --git a/packages/nc-gui/lang/sv.json b/packages/nc-gui/lang/sv.json
index 30c28135b0..4bab1921dc 100644
--- a/packages/nc-gui/lang/sv.json
+++ b/packages/nc-gui/lang/sv.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Förteckning över tillåtna specialtecken"
},
"invalidURL": "Ogiltig URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Ett internt fel har uppstått.",
"templateGeneratorNotFound": "Mallgeneratorn kan inte hittas!",
"fileUploadFailed": "Uppladdning av filen misslyckades",
diff --git a/packages/nc-gui/lang/th.json b/packages/nc-gui/lang/th.json
index 4f80158442..889634257d 100644
--- a/packages/nc-gui/lang/th.json
+++ b/packages/nc-gui/lang/th.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/tr.json b/packages/nc-gui/lang/tr.json
index ba3eebc83b..67e4be109d 100644
--- a/packages/nc-gui/lang/tr.json
+++ b/packages/nc-gui/lang/tr.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "İzin verilen özel karakter listesi"
},
"invalidURL": "Geçersiz URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Bazı dahili hatalar oluştu",
"templateGeneratorNotFound": "Şablon Oluşturucu bulunamıyor!",
"fileUploadFailed": "Dosya yüklenemedi",
diff --git a/packages/nc-gui/lang/uk.json b/packages/nc-gui/lang/uk.json
index d7288f9df4..ac80cd8394 100644
--- a/packages/nc-gui/lang/uk.json
+++ b/packages/nc-gui/lang/uk.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Дозволений список спеціальних символів"
},
"invalidURL": "Неправильна URL-адреса",
+ "invalidEmail": "Invalid Email",
"internalError": "Сталась внутрішня помилка",
"templateGeneratorNotFound": "Генератор шаблонів не знайдено!",
"fileUploadFailed": "Не вдалося завантажити файл",
diff --git a/packages/nc-gui/lang/vi.json b/packages/nc-gui/lang/vi.json
index d8c8b8172a..0ef83aab45 100644
--- a/packages/nc-gui/lang/vi.json
+++ b/packages/nc-gui/lang/vi.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "Allowed special character list"
},
"invalidURL": "Invalid URL",
+ "invalidEmail": "Invalid Email",
"internalError": "Some internal error occurred",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "Failed to upload file",
diff --git a/packages/nc-gui/lang/zh-Hans.json b/packages/nc-gui/lang/zh-Hans.json
index f44715bd3b..cd1e843db2 100644
--- a/packages/nc-gui/lang/zh-Hans.json
+++ b/packages/nc-gui/lang/zh-Hans.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "允许的特殊字符列表"
},
"invalidURL": "无效的 URL",
+ "invalidEmail": "Invalid Email",
"internalError": "发生了一些内部错误",
"templateGeneratorNotFound": "模板生成器无法找到!",
"fileUploadFailed": "文件上传失败",
diff --git a/packages/nc-gui/lang/zh-Hant.json b/packages/nc-gui/lang/zh-Hant.json
index a35b1dd222..eca49b1184 100644
--- a/packages/nc-gui/lang/zh-Hant.json
+++ b/packages/nc-gui/lang/zh-Hant.json
@@ -698,6 +698,7 @@
"allowedSpecialCharList": "允許特殊字元列表"
},
"invalidURL": "無效的連結",
+ "invalidEmail": "Invalid Email",
"internalError": "發生內部錯誤",
"templateGeneratorNotFound": "Template Generator cannot be found!",
"fileUploadFailed": "上傳文件失敗",
diff --git a/packages/nc-gui/pages/[projectType]/[projectId]/index.vue b/packages/nc-gui/pages/[projectType]/[projectId]/index.vue
index 465d05bd4a..8703b88dfa 100644
--- a/packages/nc-gui/pages/[projectType]/[projectId]/index.vue
+++ b/packages/nc-gui/pages/[projectType]/[projectId]/index.vue
@@ -1,6 +1,5 @@
]