From 7131ba99b6917dc0fb99f93ab40495b9702024ab Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 27 Jan 2021 18:45:36 +0100 Subject: [PATCH 1/3] AddUserModal - enforce email input ref #44 --- src/components/AddUserModal.svelte | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/components/AddUserModal.svelte b/src/components/AddUserModal.svelte index 6298e61a..b1a53dc6 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,16 +238,10 @@ 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 + valid email is required {/if} -- 2.47.2 From 0dd9de2abc68ce10c4c763382945b92c0cd4e404 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 27 Jan 2021 18:48:23 +0100 Subject: [PATCH 2/3] UserDetail - enforce email input ref #44 --- src/components/UserDetail.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/UserDetail.svelte b/src/components/UserDetail.svelte index e60db298..6bf0f51b 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; -- 2.47.2 From 7897820632c7b9e1e00fbf3f86a1eb7e01794fa5 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Fri, 29 Jan 2021 16:34:55 +0100 Subject: [PATCH 3/3] UserDetail - invalid email UI feedback ref #44 --- src/components/AddUserModal.svelte | 4 +--- src/components/UserDetail.svelte | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/AddUserModal.svelte b/src/components/AddUserModal.svelte index b1a53dc6..7d7ad331 100644 --- a/src/components/AddUserModal.svelte +++ b/src/components/AddUserModal.svelte @@ -240,9 +240,7 @@ 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} - valid email 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 6bf0f51b..d079beef 100644 --- a/src/components/UserDetail.svelte +++ b/src/components/UserDetail.svelte @@ -265,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}