Synchronized template.ftl d4science theme with KC24 ftl(s); removed username regexp pattern check
This commit is contained in:
parent
14bea17ce0
commit
8529c7634e
|
@ -1,132 +0,0 @@
|
||||||
<#import "template.ftl" as layout>
|
|
||||||
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','email','firstName','lastName'); section>
|
|
||||||
<#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>
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="username" class="${properties.kcLabelClass!}">${msg("username")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<!-- 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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
<#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>"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<#if messagesPerField.existsError('email')>
|
|
||||||
<span id="input-error-email" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
||||||
${kcSanitize(messagesPerField.get('email'))?no_esc}
|
|
||||||
</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="firstName" class="${properties.kcLabelClass!}">${msg("firstName")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="lastName" class="${properties.kcLabelClass!}">${msg("lastName")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
|
|
||||||
<div class="${properties.kcFormOptionsWrapperClass!}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- D4Science adds button name -->
|
|
||||||
<div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
|
|
||||||
<#if isAppInitiatedAction??>
|
|
||||||
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"
|
|
||||||
name="submitBtn"
|
|
||||||
/>
|
|
||||||
<button class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" type="submit" name="cancel-aia" value="true" />${msg("doCancel")}</button>
|
|
||||||
<#else>
|
|
||||||
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"
|
|
||||||
name="submitBtn"
|
|
||||||
/>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<!-- 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>
|
|
||||||
</#if>
|
|
||||||
</@layout.registrationLayout>
|
|
|
@ -1,191 +0,0 @@
|
||||||
<#import "template.ftl" as layout>
|
|
||||||
<#import "register-commons.ftl" as registerCommons>
|
|
||||||
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('firstName','lastName','email','username','password','password-confirm'); section>
|
|
||||||
<#if section = "header">
|
|
||||||
${msg("registerTitle")}
|
|
||||||
<#elseif section = "form">
|
|
||||||
<form id="kc-register-form" class="${properties.kcFormClass!}" action="${url.registrationAction}" method="post">
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="firstName" class="${properties.kcLabelClass!}">${msg("firstName")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<input type="text" id="firstName" class="${properties.kcInputClass!}" name="firstName"
|
|
||||||
value="${(register.formData.firstName!'')}"
|
|
||||||
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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="lastName" class="${properties.kcLabelClass!}">${msg("lastName")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<input type="text" id="lastName" class="${properties.kcInputClass!}" name="lastName"
|
|
||||||
value="${(register.formData.lastName!'')}"
|
|
||||||
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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<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" class="${properties.kcInputClass!}" name="email"
|
|
||||||
value="${(register.formData.email!'')}" autocomplete="email"
|
|
||||||
aria-invalid="<#if messagesPerField.existsError('email')>true</#if>"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<#if messagesPerField.existsError('email')>
|
|
||||||
<span id="input-error-email" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
||||||
${kcSanitize(messagesPerField.get('email'))?no_esc}
|
|
||||||
</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<#if !realm.registrationEmailAsUsername>
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="username" class="${properties.kcLabelClass!}">${msg("username")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<!-- D4Science username constraints with pattern check -->
|
|
||||||
<input type="text" id="username" class="${properties.kcInputClass!}" name="username"
|
|
||||||
value="${(register.formData.username!'')}" autocomplete="username"
|
|
||||||
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>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<#if passwordRequired??>
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="password" class="${properties.kcLabelClass!}">${msg("password")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<div class="${properties.kcInputGroup!}">
|
|
||||||
<input type="password" id="password" class="${properties.kcInputClass!}" name="password"
|
|
||||||
autocomplete="new-password"
|
|
||||||
aria-invalid="<#if messagesPerField.existsError('password','password-confirm')>true</#if>"
|
|
||||||
/>
|
|
||||||
<button class="pf-c-button pf-m-control" type="button" aria-label="${msg('showPassword')}"
|
|
||||||
aria-controls="password" data-password-toggle
|
|
||||||
data-label-show="${msg('showPassword')}" data-label-hide="${msg('hidePassword')}">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<#if messagesPerField.existsError('password')>
|
|
||||||
<span id="input-error-password" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
||||||
${kcSanitize(messagesPerField.get('password'))?no_esc}
|
|
||||||
</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div class="${properties.kcLabelWrapperClass!}">
|
|
||||||
<label for="password-confirm"
|
|
||||||
class="${properties.kcLabelClass!}">${msg("passwordConfirm")}</label>
|
|
||||||
</div>
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<div class="${properties.kcInputGroup!}">
|
|
||||||
<input type="password" id="password-confirm" class="${properties.kcInputClass!}"
|
|
||||||
name="password-confirm"
|
|
||||||
aria-invalid="<#if messagesPerField.existsError('password-confirm')>true</#if>"
|
|
||||||
/>
|
|
||||||
<button class="pf-c-button pf-m-control" type="button" aria-label="${msg('showPassword')}"
|
|
||||||
aria-controls="password-confirm" data-password-toggle
|
|
||||||
data-label-show="${msg('showPassword')}" data-label-hide="${msg('hidePassword')}">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<#if messagesPerField.existsError('password-confirm')>
|
|
||||||
<span id="input-error-password-confirm" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
|
||||||
${kcSanitize(messagesPerField.get('password-confirm'))?no_esc}
|
|
||||||
</span>
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<@registerCommons.termsAcceptance/>
|
|
||||||
|
|
||||||
<#if recaptchaRequired??>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="${properties.kcInputWrapperClass!}">
|
|
||||||
<div class="g-recaptcha" data-size="compact" data-sitekey="${recaptchaSiteKey}"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="${properties.kcFormGroupClass!}">
|
|
||||||
<div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
|
|
||||||
<div class="${properties.kcFormOptionsWrapperClass!}">
|
|
||||||
<span><a href="${url.loginUrl}">${kcSanitize(msg("backToLogin"))?no_esc}</a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
|
|
||||||
<!-- D4Science adds button name -->
|
|
||||||
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doRegister")}"
|
|
||||||
name="submitBtn"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<script type="module" src="${url.resourcesPath}/js/passwordVisibility.js"></script>
|
|
||||||
|
|
||||||
<!-- 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 kcRegisterForm = document.getElementById("kc-register-form")
|
|
||||||
kcRegisterForm.submitBtn.addEventListener("click", function(ev) {
|
|
||||||
if (!kcRegisterForm.checkValidity()) {
|
|
||||||
ev.preventDefault()
|
|
||||||
ev.stopPropagation()
|
|
||||||
kcRegisterForm.reportValidity()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
</#if>
|
|
||||||
</@layout.registrationLayout>
|
|
|
@ -30,6 +30,14 @@
|
||||||
<script src="${url.resourcesPath}/${script}" type="text/javascript"></script>
|
<script src="${url.resourcesPath}/${script}" type="text/javascript"></script>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
|
<script type="importmap">
|
||||||
|
{
|
||||||
|
"imports": {
|
||||||
|
"rfc4648": "${url.resourcesCommonPath}/node_modules/rfc4648/lib/rfc4648.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="${url.resourcesPath}/js/menu-button-links.js" type="module"></script>
|
||||||
<#if scripts??>
|
<#if scripts??>
|
||||||
<#list scripts as script>
|
<#list scripts as script>
|
||||||
<script src="${script}" type="text/javascript"></script>
|
<script src="${script}" type="text/javascript"></script>
|
||||||
|
@ -42,7 +50,7 @@
|
||||||
checkCookiesAndSetTimer(
|
checkCookiesAndSetTimer(
|
||||||
"${authenticationSession.authSessionId}",
|
"${authenticationSession.authSessionId}",
|
||||||
"${authenticationSession.tabId}",
|
"${authenticationSession.tabId}",
|
||||||
"${url.ssoLoginInOtherTabsUrl}"
|
"${url.ssoLoginInOtherTabsUrl?no_esc}"
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
</#if>
|
</#if>
|
||||||
|
@ -90,13 +98,15 @@
|
||||||
<#if realm.internationalizationEnabled && locale.supported?size gt 1>
|
<#if realm.internationalizationEnabled && locale.supported?size gt 1>
|
||||||
<div class="${properties.kcLocaleMainClass!}" id="kc-locale">
|
<div class="${properties.kcLocaleMainClass!}" id="kc-locale">
|
||||||
<div id="kc-locale-wrapper" class="${properties.kcLocaleWrapperClass!}">
|
<div id="kc-locale-wrapper" class="${properties.kcLocaleWrapperClass!}">
|
||||||
<div id="kc-locale-dropdown" class="${properties.kcLocaleDropDownClass!}">
|
<div id="kc-locale-dropdown" class="menu-button-links ${properties.kcLocaleDropDownClass!}">
|
||||||
<a href="#" id="kc-current-locale-link">${locale.current}</a>
|
<button tabindex="1" id="kc-current-locale-link" aria-label="${msg("languages")}" aria-haspopup="true" aria-expanded="false" aria-controls="language-switch1">${locale.current}</button>
|
||||||
<ul class="${properties.kcLocaleListClass!}">
|
<ul role="menu" tabindex="-1" aria-labelledby="kc-current-locale-link" aria-activedescendant="" id="language-switch1" class="${properties.kcLocaleListClass!}">
|
||||||
|
<#assign i = 1>
|
||||||
<#list locale.supported as l>
|
<#list locale.supported as l>
|
||||||
<li class="${properties.kcLocaleListItemClass!}">
|
<li class="${properties.kcLocaleListItemClass!}" role="none">
|
||||||
<a class="${properties.kcLocaleItemClass!}" href="${l.url}">${l.label}</a>
|
<a role="menuitem" id="language-${i}" class="${properties.kcLocaleItemClass!}" href="${l.url}">${l.label}</a>
|
||||||
</li>
|
</li>
|
||||||
|
<#assign i++>
|
||||||
</#list>
|
</#list>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -149,7 +159,6 @@
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div id="kc-content">
|
<div id="kc-content">
|
||||||
<div id="kc-content-wrapper">
|
<div id="kc-content-wrapper">
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue