2022-02-08 11:52:31 +01:00
|
|
|
<#import "template.ftl" as layout>
|
2022-02-16 10:09:31 +01:00
|
|
|
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','email','firstName','lastName'); section>
|
2022-02-08 11:52:31 +01:00
|
|
|
<#if section = "header">
|
|
|
|
${msg("loginProfileTitle")}
|
|
|
|
<#elseif section = "form">
|
|
|
|
<form id="kc-update-profile-form" class="${properties.kcFormClass!}" action="${url.loginAction}" method="post">
|
|
|
|
<#if user.editUsernameAllowed>
|
2022-02-16 10:09:31 +01:00
|
|
|
<div class="${properties.kcFormGroupClass!}">
|
2022-02-08 11:52:31 +01:00
|
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
|
|
<label for="username" class="${properties.kcLabelClass!}">${msg("username")}</label>
|
|
|
|
</div>
|
|
|
|
<div class="${properties.kcInputWrapperClass!}">
|
2022-02-16 10:09:31 +01:00
|
|
|
<!-- D4Science username constraints with pattern check -->
|
|
|
|
<input type="text" id="username" name="username" value="${(user.username!'')}"
|
|
|
|
class="${properties.kcInputClass!}"
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('username')>true</#if>"
|
|
|
|
pattern="^(?!postfix$)(?!cyrus$)[a-zA-Z0-9\.]+$"
|
|
|
|
title="${msg('usernameValidityMsg')}"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<#if messagesPerField.existsError('username')>
|
|
|
|
<span id="input-error-username" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
|
|
${kcSanitize(messagesPerField.get('username'))?no_esc}
|
|
|
|
</span>
|
|
|
|
</#if>
|
2022-02-08 11:52:31 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</#if>
|
2022-09-28 18:56:07 +02:00
|
|
|
<#if user.editEmailAllowed>
|
|
|
|
<div class="${properties.kcFormGroupClass!}">
|
|
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
|
|
<label for="email" class="${properties.kcLabelClass!}">${msg("email")}</label>
|
|
|
|
</div>
|
|
|
|
<div class="${properties.kcInputWrapperClass!}">
|
|
|
|
<input type="text" id="email" name="email" value="${(user.email!'')}"
|
|
|
|
class="${properties.kcInputClass!}"
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('email')>true</#if>"
|
|
|
|
/>
|
2022-02-16 10:09:31 +01:00
|
|
|
|
2022-09-28 18:56:07 +02:00
|
|
|
<#if messagesPerField.existsError('email')>
|
|
|
|
<span id="input-error-email" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
|
|
${kcSanitize(messagesPerField.get('email'))?no_esc}
|
|
|
|
</span>
|
|
|
|
</#if>
|
|
|
|
</div>
|
2022-02-08 11:52:31 +01:00
|
|
|
</div>
|
2022-09-28 18:56:07 +02:00
|
|
|
</#if>
|
2022-02-08 11:52:31 +01:00
|
|
|
|
2022-02-16 10:09:31 +01:00
|
|
|
<div class="${properties.kcFormGroupClass!}">
|
2022-02-08 11:52:31 +01:00
|
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
|
|
<label for="firstName" class="${properties.kcLabelClass!}">${msg("firstName")}</label>
|
|
|
|
</div>
|
|
|
|
<div class="${properties.kcInputWrapperClass!}">
|
2022-02-16 10:09:31 +01:00
|
|
|
<input type="text" id="firstName" name="firstName" value="${(user.firstName!'')}"
|
|
|
|
class="${properties.kcInputClass!}"
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('firstName')>true</#if>"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<#if messagesPerField.existsError('firstName')>
|
|
|
|
<span id="input-error-firstname" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
|
|
${kcSanitize(messagesPerField.get('firstName'))?no_esc}
|
|
|
|
</span>
|
|
|
|
</#if>
|
2022-02-08 11:52:31 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2022-02-16 10:09:31 +01:00
|
|
|
<div class="${properties.kcFormGroupClass!}">
|
2022-02-08 11:52:31 +01:00
|
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
|
|
<label for="lastName" class="${properties.kcLabelClass!}">${msg("lastName")}</label>
|
|
|
|
</div>
|
|
|
|
<div class="${properties.kcInputWrapperClass!}">
|
2022-02-16 10:09:31 +01:00
|
|
|
<input type="text" id="lastName" name="lastName" value="${(user.lastName!'')}"
|
|
|
|
class="${properties.kcInputClass!}"
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('lastName')>true</#if>"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<#if messagesPerField.existsError('lastName')>
|
|
|
|
<span id="input-error-lastname" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
|
|
${kcSanitize(messagesPerField.get('lastName'))?no_esc}
|
|
|
|
</span>
|
|
|
|
</#if>
|
2022-02-08 11:52:31 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="${properties.kcFormGroupClass!}">
|
|
|
|
<div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
|
|
|
|
<div class="${properties.kcFormOptionsWrapperClass!}">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2022-02-16 10:09:31 +01:00
|
|
|
<!-- D4Science adds button name -->
|
2022-02-08 11:52:31 +01:00
|
|
|
<div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
|
|
|
|
<#if isAppInitiatedAction??>
|
2022-02-16 10:09:31 +01:00
|
|
|
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"
|
|
|
|
name="submitBtn"
|
|
|
|
/>
|
2022-02-08 11:52:31 +01:00
|
|
|
<button class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" type="submit" name="cancel-aia" value="true" />${msg("doCancel")}</button>
|
|
|
|
<#else>
|
2022-02-16 10:09:31 +01:00
|
|
|
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"
|
|
|
|
name="submitBtn"
|
|
|
|
/>
|
2022-02-08 11:52:31 +01:00
|
|
|
</#if>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</form>
|
2022-02-16 10:09:31 +01:00
|
|
|
|
|
|
|
<!-- D4Science username constraints js check -->
|
|
|
|
<script type="text/javascript">
|
|
|
|
var d4Screenname = document.getElementById("username")
|
|
|
|
if (d4Screenname) {
|
|
|
|
d4Screenname.addEventListener("input", function(ev) {
|
|
|
|
if (d4Screenname.validity.patternMismatch) {
|
|
|
|
d4Screenname.setCustomValidity('${msg("usernameValidityMsg")}')
|
|
|
|
d4Screenname.reportValidity()
|
|
|
|
} else {
|
|
|
|
d4Screenname.setCustomValidity('')
|
|
|
|
d4Screenname.reportValidity()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
var kcUpdateProfileForm = document.getElementById("kc-update-profile-form")
|
|
|
|
kcUpdateProfileForm.submitBtn.addEventListener("click", function(ev) {
|
|
|
|
if (!kcUpdateProfileForm.checkValidity()) {
|
|
|
|
ev.preventDefault()
|
|
|
|
ev.stopPropagation()
|
|
|
|
kcUpdateProfileForm.reportValidity()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
</script>
|
2022-02-08 11:52:31 +01:00
|
|
|
</#if>
|
|
|
|
</@layout.registrationLayout>
|