diff --git a/src/components/AddUserModal.svelte b/src/components/AddUserModal.svelte index 6298e61a..7d7ad331 100644 --- a/src/components/AddUserModal.svelte +++ b/src/components/AddUserModal.svelte @@ -28,10 +28,7 @@ $: isLastnameValid = lastname_input_value.trim().length !== 0; $: isFirstnameValid = firstname_input_value.trim().length !== 0; $: createbtnenabled = - isFirstnameValid && - isLastnameValid && - isPasswordValid && - !(!isEmailValid && username_input_value.trim().length === 0); + isFirstnameValid && isLastnameValid && isPasswordValid && isEmailValid; (function () { document.onkeydown = function (e) { e = e || window.event; @@ -241,17 +238,9 @@ type="email" name="email" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> - - {#if !isEmailValid && username_input_value.trim().length === 0} - - valid email or username is required - + class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">{$_('valid-email-is-required')} {/if} diff --git a/src/components/UserDetail.svelte b/src/components/UserDetail.svelte index e60db298..d079beef 100644 --- a/src/components/UserDetail.svelte +++ b/src/components/UserDetail.svelte @@ -2,6 +2,7 @@ import { _ } from "svelte-i18n"; import lodashIsEqual from "lodash.isequal"; import store from "../store"; + import isEmail from "validator/es/lib/isEmail"; import { UserService, UserGroupService } from "@odit/lfk-client-js"; import Toastify from "toastify-js"; import PromiseError from "./PromiseError.svelte"; @@ -72,7 +73,8 @@ $: groups_changed = JSON.stringify(usergroups_array) === JSON.stringify(usergroups_array_original); - $: save_enabled = changes_performed || !groups_changed; + $: save_enabled = + (changes_performed || !groups_changed) && isEmail(editable_userdata.email); function submit() { if (data_loaded === true && save_enabled) { editable_userdata.groups = usergroups_array; @@ -263,6 +265,10 @@ name="email" class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 dark:bg-gray-900 dark:text-gray-100 rounded-md p-2" /> + {#if !isEmail(editable_userdata.email)} + {$_('valid-email-is-required')} + {/if}