diff --git a/src/bundle/Resources/encore/ibexa.js.config.js b/src/bundle/Resources/encore/ibexa.js.config.js index f20be7061..32a0b0725 100644 --- a/src/bundle/Resources/encore/ibexa.js.config.js +++ b/src/bundle/Resources/encore/ibexa.js.config.js @@ -250,7 +250,6 @@ module.exports = (Encore) => { .addEntry('ibexa-admin-ui-login-js', [ path.resolve(__dirname, '../public/js/scripts/admin.input.text.js'), path.resolve('./vendor/ibexa/design-system-twig/src/bundle/Resources/public/ts/init_components.ts'), - path.resolve(__dirname, '../public/js/scripts/login.js'), ]) .addEntry('ibexa-admin-ui-reset-password-js', [ path.resolve(__dirname, '../public/js/scripts/admin.input.text.js'), diff --git a/src/bundle/Resources/public/js/scripts/login.js b/src/bundle/Resources/public/js/scripts/login.js deleted file mode 100644 index 4f5952835..000000000 --- a/src/bundle/Resources/public/js/scripts/login.js +++ /dev/null @@ -1,31 +0,0 @@ -(function (global, doc) { - const AUTOFILL_TIMEOUT = 500; - const loginBtn = doc.querySelector('.ibexa-login__btn--sign-in'); - const nameInput = doc.querySelector('.ibexa-login__input--name'); - const passwordInput = doc.querySelector('.ibexa-login__input--password'); - const toggleLoginBtnState = () => { - const shouldBeDisabled = !nameInput.value || !passwordInput.value; - - loginBtn.toggleAttribute('disabled', shouldBeDisabled); - }; - const handleAutofill = () => { - const isNameInputAutofilled = nameInput.matches(':-webkit-autofill'); - const isPasswordInputAutofilled = nameInput.matches(':-webkit-autofill'); - const isAutofilled = isNameInputAutofilled && isPasswordInputAutofilled; - - if (isAutofilled) { - loginBtn.removeAttribute('disabled'); - } - }; - - if (loginBtn) { - nameInput.addEventListener('keyup', toggleLoginBtnState, false); - nameInput.addEventListener('change', toggleLoginBtnState, false); - passwordInput.addEventListener('keyup', toggleLoginBtnState, false); - passwordInput.addEventListener('change', toggleLoginBtnState, false); - - toggleLoginBtnState(); - - global.setTimeout(handleAutofill, AUTOFILL_TIMEOUT); - } -})(window, window.document); diff --git a/src/bundle/Resources/public/scss/_inputs.scss b/src/bundle/Resources/public/scss/_inputs.scss index 075d7442c..e1dc20d4a 100644 --- a/src/bundle/Resources/public/scss/_inputs.scss +++ b/src/bundle/Resources/public/scss/_inputs.scss @@ -1,6 +1,7 @@ @use '@ibexa-admin-ui/src/bundle/Resources/public/scss/custom.scss' as *; @use '@ibexa-admin-ui/src/bundle/Resources/public/scss/functions/calculate.rem' as *; @use '@ibexa-admin-ui/src/bundle/Resources/public/scss/mixins/inputs' as *; +@use '@ids-assets/scss/variables/colors' as *; @use 'sass:color'; .form-control { @@ -50,6 +51,10 @@ border-color: var(--ibexa-input-disabled-border-color, #{$ibexa-color-dark-200}); } + &.ids-input--error { + border-color: var(--ids-input-error-border-color, #{$color-error-80}); + } + &--text, &--textarea, &--date { diff --git a/src/bundle/Resources/views/themes/admin/account/forgot_password/index.html.twig b/src/bundle/Resources/views/themes/admin/account/forgot_password/index.html.twig index e7ffa3b29..00df085b4 100644 --- a/src/bundle/Resources/views/themes/admin/account/forgot_password/index.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/forgot_password/index.html.twig @@ -10,7 +10,15 @@ {% if form_forgot_user_password is defined %} {{ form_start(form_forgot_user_password, {'attr': {'class': 'ibexa-form-validate ibexa-login__forgot-password-form'}}) }}
- {{ form_row(form_forgot_user_password.email, {'attr': {'class': 'ibexa-login__input'}}) }} + {{ form_row(form_forgot_user_password.email, { + 'attr': { + 'class': 'ibexa-login__input', + 'error': form_forgot_user_password.email.vars.errors is not empty, + }, + 'label_attr': { + 'class': form_forgot_user_password.email.vars.errors is not empty ? 'ids-label--error' : '', + }, + }) }}
{{ form_widget(form_forgot_user_password.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn ibexa-login__btn--reset-password'}}) }} diff --git a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig index 12a513896..3a5ceb7c1 100644 --- a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig @@ -10,7 +10,14 @@ {% if form_forgot_user_password_with_login is defined %} {{ form_start(form_forgot_user_password_with_login, {'attr': {'class': 'ibexa-form-validate'} }) }}
- {{ form_row(form_forgot_user_password_with_login.login) }} + {{ form_row(form_forgot_user_password_with_login.login, { + 'attr': { + 'error': form_forgot_user_password_with_login.login.vars.errors is not empty, + }, + 'label_attr': { + 'class': form_forgot_user_password_with_login.login.vars.errors is not empty ? 'ids-label--error' : '', + }, + }) }}
{{ form_widget(form_forgot_user_password_with_login.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn ibexa-login__btn--reset-password'}}) }} diff --git a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig index 446fa64c6..610d691fe 100644 --- a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig @@ -3,16 +3,23 @@ {% set is_sso = false %} {%- block content -%} + {% set blank_fields = error is not null and error.blankFields is defined ? error.blankFields : [] %} + {% set has_username_error = 'username' in blank_fields %} + {% set has_password_error = 'password' in blank_fields %} + {% set show_error_alert = error is not null and blank_fields is empty %} + {% set username_label = 'authentication.login'|trans|desc('Login') %} + {% set password_label = 'authentication.password'|trans|desc('Password') %} + {# TODO: change to {{ 'base.sign_in'|trans|desc('Sign in to Cohesivo') }} {% block login_form %} {{ ibexa_twig_component_group('admin-ui-login-form-before') }} -
+
{% block login_form_errors %} - {% if error %} + {% if show_error_alert %}