111 lines
6.0 KiB
Plaintext
111 lines
6.0 KiB
Plaintext
<#import "template.ftl" as layout>
|
|
<@layout.registrationLayout; 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!} ${messagesPerField.printIfExists('firstName',properties.kcFormGroupErrorClass!)}">
|
|
<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!'')}" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('lastName',properties.kcFormGroupErrorClass!)}">
|
|
<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!'')}" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('email',properties.kcFormGroupErrorClass!)}">
|
|
<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" />
|
|
</div>
|
|
</div>
|
|
|
|
<#if !realm.registrationEmailAsUsername>
|
|
<div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('username',properties.kcFormGroupErrorClass!)}">
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
<label for="username" class="${properties.kcLabelClass!}">${msg("username")}</label>
|
|
</div>
|
|
<div class="${properties.kcInputWrapperClass!}">
|
|
<input type="text" id="username" class="${properties.kcInputClass!}" name="username" value="${(register.formData.username!'')}" pattern="^(?!postfix$)(?!cyrus$)[a-zA-Z0-9\.]+$" title='${msg("usernameValidityMsg")}' autocomplete="username" />
|
|
</div>
|
|
</div>
|
|
</#if>
|
|
|
|
<#if passwordRequired??>
|
|
<div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('password',properties.kcFormGroupErrorClass!)}">
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
<label for="password" class="${properties.kcLabelClass!}">${msg("password")}</label>
|
|
</div>
|
|
<div class="${properties.kcInputWrapperClass!}">
|
|
<input type="password" id="password" class="${properties.kcInputClass!}" name="password" autocomplete="new-password"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="${properties.kcFormGroupClass!} ${messagesPerField.printIfExists('password-confirm',properties.kcFormGroupErrorClass!)}">
|
|
<div class="${properties.kcLabelWrapperClass!}">
|
|
<label for="password-confirm" class="${properties.kcLabelClass!}">${msg("passwordConfirm")}</label>
|
|
</div>
|
|
<div class="${properties.kcInputWrapperClass!}">
|
|
<input type="password" id="password-confirm" class="${properties.kcInputClass!}" name="password-confirm" />
|
|
</div>
|
|
</div>
|
|
</#if>
|
|
|
|
<#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!}">
|
|
<input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" name="submitBtn" type="submit" value="${msg("doRegister")}"/>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<script type="text/javascript">
|
|
var screenname = document.getElementById("username")
|
|
if (screenname) {
|
|
screenname.addEventListener("input", function(ev) {
|
|
if (screenname.validity.patternMismatch) {
|
|
screenname.setCustomValidity('${msg("usernameValidityMsg")}')
|
|
screenname.reportValidity()
|
|
} else {
|
|
screenname.setCustomValidity('')
|
|
screenname.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>
|