|
@ -25,110 +25,113 @@ |
|
|
<div class="header-login-title">${msg("loginAccountTitle")}</div> |
|
|
<div class="header-login-title">${msg("loginAccountTitle")}</div> |
|
|
<#elseif section = "form"> |
|
|
<#elseif section = "form"> |
|
|
<div id="kc-form"> |
|
|
<div id="kc-form"> |
|
|
<div id="kc-form-wrapper"> |
|
|
|
|
|
<#if realm.password> |
|
|
|
|
|
<form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post"> |
|
|
|
|
|
<div class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
|
|
|
<div id="kc-form-wrapper"> |
|
|
|
|
|
<#if realm.password> |
|
|
|
|
|
<form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post"> |
|
|
|
|
|
<div class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
|
|
|
<#if usernameEditDisabled??> |
|
|
|
|
|
<input tabindex="1" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}" placeholder=${msg("usernameOrEmail")} type="text" disabled /> |
|
|
|
|
|
<#else> |
|
|
|
|
|
<input tabindex="1" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}" placeholder=${msg("usernameOrEmail")} type="text" autofocus autocomplete="username" |
|
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>" |
|
|
|
|
|
/> |
|
|
|
|
|
<#if messagesPerField.existsError('username','password')> |
|
|
|
|
|
<div id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite"> |
|
|
|
|
|
${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc} |
|
|
|
|
|
</div> |
|
|
|
|
|
</#if> |
|
|
|
|
|
<label class="login-form-input-label">${msg("usernameOrEmail")}</label> |
|
|
|
|
|
|
|
|
|
|
|
</#if> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
|
|
|
<#if usernameEditDisabled??> |
|
|
|
|
|
<input tabindex="1" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}" placeholder=${msg("usernameOrEmail")} type="text" disabled /> |
|
|
|
|
|
<#else> |
|
|
|
|
|
<input tabindex="1" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}" placeholder=${msg("usernameOrEmail")} type="text" autofocus autocomplete="username" |
|
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>" |
|
|
|
|
|
/> |
|
|
|
|
|
<#if messagesPerField.existsError('username','password')> |
|
|
|
|
|
<div id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite"> |
|
|
|
|
|
${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc} |
|
|
|
|
|
</div> |
|
|
|
|
|
</#if> |
|
|
|
|
|
<label class="login-form-input-label">${msg("usernameOrEmail")}</label> |
|
|
|
|
|
|
|
|
<input tabindex="2" id="password" class="${properties.kcInputClass!}" name="password" type="password" placeholder=${msg("password")} |
|
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>" |
|
|
|
|
|
/> |
|
|
|
|
|
<label class="login-form-input-label">${msg("password")}</label> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
</#if> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div id="kc-form-buttons" class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
<input type="hidden" id="id-hidden-input" name="credentialId" <#if auth.selectedCredential?has_content>value="${auth.selectedCredential}"</#if>/> |
|
|
|
|
|
<input tabindex="4" class="${properties.kcButtonClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" name="login" id="kc-login" type="submit" value="${msg("doLogIn")}"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<#if realm.password && social.providers??> |
|
|
|
|
|
<div id="kc-social-providers" class="${properties.kcFormSocialAccountSectionClass!}"> |
|
|
|
|
|
<div class="separate-container"> |
|
|
|
|
|
<div class="separator"></div> |
|
|
|
|
|
<div class="separate-text">${msg("identity-provider-login-label")} </div> |
|
|
|
|
|
<div class="separator"></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<input tabindex="2" id="password" class="${properties.kcInputClass!}" name="password" type="password" placeholder=${msg("password")} |
|
|
|
|
|
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>" |
|
|
|
|
|
/> |
|
|
|
|
|
<label class="login-form-input-label">${msg("password")}</label> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<ul class="${properties.kcFormSocialAccountListClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountListGridClass!}</#if>"> |
|
|
|
|
|
<#list social.providers as p> |
|
|
|
|
|
<a id="social-${p.alias}" class="${properties.kcButtonClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountGridItem!}</#if> social-button" |
|
|
|
|
|
type="button" href="${p.loginUrl}"> |
|
|
|
|
|
<#if p.displayName=="Facebook" > |
|
|
|
|
|
<div class="login-sign-image facebook"></div> |
|
|
|
|
|
<#elseif p.displayName=="Twitter" > |
|
|
|
|
|
<div class="login-sign-image twitter"></div> |
|
|
|
|
|
<#elseif p.displayName=="Google" > |
|
|
|
|
|
<div class="login-sign-image google"></div> |
|
|
|
|
|
<#elseif p.displayName=="LinkedIn" > |
|
|
|
|
|
<div class="login-sign-image linkedin"></div> |
|
|
|
|
|
<#elseif p.displayName=="Apple" > |
|
|
|
|
|
<div class="login-sign-image apple"></div> |
|
|
|
|
|
<#elseif p.iconClasses?has_content> |
|
|
|
|
|
<i class="${properties.kcCommonLogoIdP!} ${p.iconClasses!}" aria-hidden="true"></i> |
|
|
|
|
|
<#else> |
|
|
|
|
|
<span class="${properties.kcFormSocialAccountNameClass!}">${p.displayName!}</span> |
|
|
|
|
|
</#if> |
|
|
|
|
|
</a> |
|
|
|
|
|
</#list> |
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
</#if> |
|
|
|
|
|
|
|
|
|
|
|
<#if realm.internationalizationEnabled && locale.supported?size gt 1> |
|
|
|
|
|
<#if locale.current="Deutsch"> |
|
|
|
|
|
<div class="signup-terms login-signup-terms"> |
|
|
|
|
|
Mit der Registrierung erklären Sie sich mit den |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/tos_de.html">Nutzungsbedingungen</a> und der |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/gdpr_de.html">Datenschutzerklärung</a> von Juice einverstanden. |
|
|
|
|
|
|
|
|
<div id="kc-form-buttons" class="${properties.kcFormGroupClass!}"> |
|
|
|
|
|
<input type="hidden" id="id-hidden-input" name="credentialId" <#if auth.selectedCredential?has_content>value="${auth.selectedCredential}"</#if>/> |
|
|
|
|
|
<input tabindex="4" class="${properties.kcButtonClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" name="login" id="kc-login" type="submit" value="${msg("doLogIn")}"/> |
|
|
</div> |
|
|
</div> |
|
|
<#else> |
|
|
|
|
|
<div class="signup-terms login-signup-terms"> |
|
|
|
|
|
By signing up, you agree to Juice's |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/tos_en.html">ToS</a> and |
|
|
|
|
|
<a href=" https://app.jplus-pilot.com/legal/gdpr_en.html">Privacy</a> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<#if realm.password && social.providers??> |
|
|
|
|
|
<div id="kc-social-providers" class="${properties.kcFormSocialAccountSectionClass!}"> |
|
|
|
|
|
<div class="separate-container"> |
|
|
|
|
|
<div class="separator"></div> |
|
|
|
|
|
<div class="separate-text">${msg("identity-provider-login-label")} </div> |
|
|
|
|
|
<div class="separator"></div> |
|
|
</div> |
|
|
</div> |
|
|
</#if> |
|
|
|
|
|
</#if> |
|
|
|
|
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
<div class="${properties.kcFormGroupClass!} ${properties.kcFormSettingClass!}"> |
|
|
|
|
|
<div id="kc-form-options"> |
|
|
|
|
|
<#if realm.resetPasswordAllowed> |
|
|
|
|
|
<span><a tabindex="5" href="${url.loginResetCredentialsUrl}">${msg("doForgotPassword")}</a></span> |
|
|
|
|
|
|
|
|
<ul class="${properties.kcFormSocialAccountListClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountListGridClass!}</#if>"> |
|
|
|
|
|
<#list social.providers as p> |
|
|
|
|
|
<a id="social-${p.alias}" class="${properties.kcButtonClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountGridItem!}</#if> social-button" |
|
|
|
|
|
type="button" href="${p.loginUrl}"> |
|
|
|
|
|
<#if p.displayName=="Facebook" > |
|
|
|
|
|
<div class="login-sign-image facebook"></div> |
|
|
|
|
|
<#elseif p.displayName=="Twitter" > |
|
|
|
|
|
<div class="login-sign-image twitter"></div> |
|
|
|
|
|
<#elseif p.displayName=="Google" > |
|
|
|
|
|
<div class="login-sign-image google"></div> |
|
|
|
|
|
<#elseif p.displayName=="LinkedIn" > |
|
|
|
|
|
<div class="login-sign-image linkedin"></div> |
|
|
|
|
|
<#elseif p.displayName=="Apple" > |
|
|
|
|
|
<div class="login-sign-image apple"></div> |
|
|
|
|
|
<#elseif p.iconClasses?has_content> |
|
|
|
|
|
<i class="${properties.kcCommonLogoIdP!} ${p.iconClasses!}" aria-hidden="true"></i> |
|
|
|
|
|
<#else> |
|
|
|
|
|
<span class="${properties.kcFormSocialAccountNameClass!}">${p.displayName!}</span> |
|
|
</#if> |
|
|
</#if> |
|
|
|
|
|
</a> |
|
|
|
|
|
</#list> |
|
|
|
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
<#if realm.password && realm.registrationAllowed && !registrationDisabled??> |
|
|
|
|
|
<div id="kc-registration-container"> |
|
|
|
|
|
<div id="kc-registration"> |
|
|
|
|
|
<span>${msg("noAccount")} <a tabindex="6" |
|
|
|
|
|
href="${url.registrationUrl}">${msg("signUpHere")}</a></span> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
</#if> |
|
|
|
|
|
|
|
|
|
|
|
<#if realm.internationalizationEnabled && locale.supported?size gt 1> |
|
|
|
|
|
<#if locale.current="Deutsch"> |
|
|
|
|
|
<div class="signup-terms login-signup-terms"> |
|
|
|
|
|
Mit der Registrierung erklären Sie sich mit den |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/tos_de.html">Nutzungsbedingungen</a> und der |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/gdpr_de.html">Datenschutzerklärung</a> von Juice einverstanden. |
|
|
|
|
|
</div> |
|
|
|
|
|
<#else> |
|
|
|
|
|
<div class="signup-terms login-signup-terms"> |
|
|
|
|
|
By signing up, you agree to Juice's |
|
|
|
|
|
<a href="https://app.jplus-pilot.com/legal/tos_en.html">ToS</a> and |
|
|
|
|
|
<a href=" https://app.jplus-pilot.com/legal/gdpr_en.html">Privacy</a> |
|
|
</div> |
|
|
</div> |
|
|
</#if> |
|
|
</#if> |
|
|
</div> |
|
|
|
|
|
|
|
|
</#if> |
|
|
|
|
|
|
|
|
</form> |
|
|
|
|
|
</#if> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
<div class="${properties.kcFormGroupClass!} ${properties.kcFormSettingClass!}"> |
|
|
|
|
|
|
|
|
|
|
|
<#if realm.password && realm.registrationAllowed && !registrationDisabled??> |
|
|
|
|
|
<div id="kc-registration-container"> |
|
|
|
|
|
<div id="kc-registration"> |
|
|
|
|
|
<span>${msg("noAccount")} <a tabindex="6" |
|
|
|
|
|
href="${url.registrationUrl}">${msg("signUpHere")}</a></span> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</#if> |
|
|
|
|
|
<div id="kc-form-options"> |
|
|
|
|
|
<#if realm.resetPasswordAllowed> |
|
|
|
|
|
<span><a tabindex="5" href="${url.loginResetCredentialsUrl}">${msg("doForgotPassword")}</a></span> |
|
|
|
|
|
</#if> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
</form> |
|
|
|
|
|
</#if> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</#if> |
|
|
</#if> |
|
|
</@layout.registrationLayout> |
|
|
</@layout.registrationLayout> |
|
|