asdsad
This commit is contained in:
@@ -1,146 +1,121 @@
|
||||
<#import "template.ftl" as layout>
|
||||
<#import "passkeys.ftl" as passkeys>
|
||||
|
||||
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','password') displayInfo=realm.password && realm.registrationAllowed && !registrationDisabled??; section>
|
||||
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','password') displayInfo=false; section>
|
||||
|
||||
<#if section = "header">
|
||||
${msg("loginAccountTitle")}
|
||||
Desktop-Anmeldung
|
||||
|
||||
<#elseif section = "form">
|
||||
<section class="kb-login-shell">
|
||||
<div class="kb-login-curtains" aria-hidden="true">
|
||||
<span class="kb-login-curtain kb-login-curtain-top kb-login-curtain-top-a"></span>
|
||||
<span class="kb-login-curtain kb-login-curtain-top kb-login-curtain-top-b"></span>
|
||||
<span class="kb-login-curtain kb-login-curtain-bottom kb-login-curtain-bottom-a"></span>
|
||||
<span class="kb-login-curtain kb-login-curtain-bottom kb-login-curtain-bottom-b"></span>
|
||||
</div>
|
||||
<div class="kb-login-ambient" aria-hidden="true"></div>
|
||||
<div class="kb-login-backdrop" aria-hidden="true"></div>
|
||||
|
||||
<div class="kb-login-panel">
|
||||
<div class="kb-login-copy">
|
||||
<p class="kb-login-kicker">Kusche.Berlin</p>
|
||||
<h1 class="kb-login-title">${msg("kbDesktopLoginHeadline")}</h1>
|
||||
<p class="kb-login-subtitle">${msg("kbDesktopLoginSubheadline")}</p>
|
||||
</div>
|
||||
<div class="kb-login-stage">
|
||||
<header class="kb-login-clock" aria-live="polite">
|
||||
<p class="kb-login-date" id="kb-login-date">${msg("kbClockDateFallback", "Montag, 18. November")}</p>
|
||||
<p class="kb-login-time" id="kb-login-time">${msg("kbClockTimeFallback", "4:20")}</p>
|
||||
</header>
|
||||
|
||||
<div id="kc-form" class="kb-login-form-shell">
|
||||
<div id="kc-form-wrapper">
|
||||
<#if realm.password>
|
||||
<form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post">
|
||||
<#if !usernameHidden??>
|
||||
<div class="${properties.kcFormGroupClass!}">
|
||||
<label for="username" class="${properties.kcLabelClass!}">
|
||||
<#if !realm.loginWithEmailAllowed>
|
||||
${msg("username")}
|
||||
<#elseif !realm.registrationEmailAsUsername>
|
||||
${msg("usernameOrEmail")}
|
||||
<#else>
|
||||
${msg("email")}
|
||||
<div class="kb-login-card">
|
||||
<div class="kb-login-brand">
|
||||
<p class="kb-login-kicker">Kusche.Berlin</p>
|
||||
</div>
|
||||
|
||||
<div id="kc-form" class="kb-login-form-shell">
|
||||
<div id="kc-form-wrapper">
|
||||
<#if realm.password>
|
||||
<form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post">
|
||||
<#if !usernameHidden??>
|
||||
<div class="kb-form-group">
|
||||
<input tabindex="2" id="username" class="kb-text-input" name="username" value="${(login.username!'')}" type="text"
|
||||
autofocus autocomplete="${(enableWebAuthnConditionalUI?has_content)?then('username webauthn', 'username')}"
|
||||
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>"
|
||||
dir="ltr"
|
||||
placeholder="Benutzername oder E-Mail eingeben" />
|
||||
|
||||
<#if messagesPerField.existsError('username','password')>
|
||||
<span id="input-error" class="kb-input-error" aria-live="polite">
|
||||
${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
|
||||
</span>
|
||||
</#if>
|
||||
</label>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<input tabindex="2" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}" type="text"
|
||||
autofocus autocomplete="${(enableWebAuthnConditionalUI?has_content)?then('username webauthn', 'username')}"
|
||||
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>"
|
||||
dir="ltr" />
|
||||
<div class="kb-form-group">
|
||||
<div class="kb-password-row" dir="ltr">
|
||||
<input tabindex="3" id="password" class="kb-text-input kb-text-input-password" name="password" type="password" autocomplete="current-password"
|
||||
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>"
|
||||
placeholder="Passwort eingeben" />
|
||||
|
||||
<#if messagesPerField.existsError('username','password')>
|
||||
<span id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
||||
<button class="kb-password-toggle" type="button" aria-label="${msg("showPassword")}"
|
||||
aria-controls="password" data-password-toggle tabindex="4"
|
||||
data-icon-show="${properties.kcFormPasswordVisibilityIconShow!}" data-icon-hide="${properties.kcFormPasswordVisibilityIconHide!}"
|
||||
data-label-show="${msg('showPassword')}" data-label-hide="${msg('hidePassword')}">
|
||||
<span aria-hidden="true">◉</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<#if usernameHidden?? && messagesPerField.existsError('username','password')>
|
||||
<span id="input-error" class="kb-input-error" aria-live="polite">
|
||||
${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
|
||||
</span>
|
||||
</#if>
|
||||
</div>
|
||||
</#if>
|
||||
|
||||
<div class="${properties.kcFormGroupClass!}">
|
||||
<label for="password" class="${properties.kcLabelClass!}">${msg("password")}</label>
|
||||
<div class="${properties.kcInputGroup!}" dir="ltr">
|
||||
<input tabindex="3" id="password" class="${properties.kcInputClass!}" name="password" type="password" autocomplete="current-password"
|
||||
aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>" />
|
||||
|
||||
<button class="${properties.kcFormPasswordVisibilityButtonClass!}" type="button" aria-label="${msg("showPassword")}"
|
||||
aria-controls="password" data-password-toggle tabindex="4"
|
||||
data-icon-show="${properties.kcFormPasswordVisibilityIconShow!}" data-icon-hide="${properties.kcFormPasswordVisibilityIconHide!}"
|
||||
data-label-show="${msg('showPassword')}" data-label-hide="${msg('hidePassword')}">
|
||||
<i class="${properties.kcFormPasswordVisibilityIconShow!}" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<#if usernameHidden?? && messagesPerField.existsError('username','password')>
|
||||
<span id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
|
||||
${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
|
||||
</span>
|
||||
</#if>
|
||||
</div>
|
||||
|
||||
<div class="${properties.kcFormGroupClass!} ${properties.kcFormSettingClass!}">
|
||||
<div id="kc-form-options">
|
||||
<#if realm.rememberMe && !usernameHidden??>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<div class="kb-form-meta">
|
||||
<div class="kb-form-options" id="kc-form-options">
|
||||
<#if !usernameHidden??>
|
||||
<label class="kb-remember">
|
||||
<#if login.rememberMe??>
|
||||
<input tabindex="5" id="rememberMe" name="rememberMe" type="checkbox" checked> ${msg("rememberMe")}
|
||||
<input tabindex="5" id="rememberMe" name="rememberMe" type="checkbox" checked>
|
||||
<#else>
|
||||
<input tabindex="5" id="rememberMe" name="rememberMe" type="checkbox"> ${msg("rememberMe")}
|
||||
<input tabindex="5" id="rememberMe" name="rememberMe" type="checkbox">
|
||||
</#if>
|
||||
<span>Angemeldet bleiben</span>
|
||||
</label>
|
||||
</div>
|
||||
</#if>
|
||||
</#if>
|
||||
</div>
|
||||
|
||||
<div class="kb-form-links">
|
||||
<#if (url.loginResetCredentialsUrl!'')?has_content>
|
||||
<a tabindex="6" href="${url.loginResetCredentialsUrl}">Passwort vergessen?</a>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="${properties.kcFormOptionsWrapperClass!}">
|
||||
<#if realm.resetPasswordAllowed>
|
||||
<span><a tabindex="6" href="${url.loginResetCredentialsUrl}">${msg("doForgotPassword")}</a></span>
|
||||
</#if>
|
||||
<div id="kc-form-buttons" class="kb-form-submit">
|
||||
<input type="hidden" id="id-hidden-input" name="credentialId" <#if auth.selectedCredential?has_content>value="${auth.selectedCredential}"</#if>/>
|
||||
<input tabindex="7" class="kb-submit-button" name="login" id="kc-login" type="submit" value="Anmelden"/>
|
||||
</div>
|
||||
</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="7" class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" name="login" id="kc-login" type="submit" value="${msg("doLogIn")}"/>
|
||||
</div>
|
||||
</form>
|
||||
</#if>
|
||||
<div id="kc-registration-container" class="kb-registration">
|
||||
<div id="kc-registration">
|
||||
<a class="kb-register-button" id="kb-register-button" tabindex="8" href="#" hidden>Registrieren</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<aside class="kb-login-info">
|
||||
<strong>Willkommen im Familienbereich</strong>
|
||||
<p>Dieser geschützte Dashboardbereich ist für die Familie Kusche und enge Freunde gedacht. Hier entstehen persönliche Übersichten, gemeinsame Tools, interne Informationen und weitere digitale Bereiche für Alltag, Organisation und Zusammenarbeit.</p>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<@passkeys.conditionalUIData />
|
||||
<script type="module" src="${url.resourcesPath}/js/passwordVisibility.js"></script>
|
||||
<script src="${url.resourcesPath}/js/login-clock.js"></script>
|
||||
<script src="${url.resourcesPath}/js/desktop-register-link.js"></script>
|
||||
|
||||
<#elseif section = "info" >
|
||||
<#if realm.password && realm.registrationAllowed && !registrationDisabled??>
|
||||
<div id="kc-registration-container">
|
||||
<div id="kc-registration">
|
||||
<span>${msg("noAccount")} <a tabindex="8" href="${url.registrationUrl}">${msg("doRegister")}</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</#if>
|
||||
<#-- Intentionally unused. Registration is rendered inside the form section. -->
|
||||
|
||||
<#elseif section = "socialProviders" >
|
||||
<#if realm.password && social?? && social.providers?has_content>
|
||||
<div id="kc-social-providers" class="${properties.kcFormSocialAccountSectionClass!}">
|
||||
<hr/>
|
||||
<h2>${msg("identity-provider-login-label")}</h2>
|
||||
<ul class="${properties.kcFormSocialAccountListClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountListGridClass!}</#if>">
|
||||
<#list social.providers as p>
|
||||
<li>
|
||||
<a data-once-link data-disabled-class="${properties.kcFormSocialAccountListButtonDisabledClass!}" id="social-${p.alias}"
|
||||
class="${properties.kcFormSocialAccountListButtonClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountGridItem!}</#if>"
|
||||
type="button" href="${p.loginUrl}">
|
||||
<#if p.iconClasses?has_content>
|
||||
<i class="${properties.kcCommonLogoIdP!} ${p.iconClasses!}" aria-hidden="true"></i>
|
||||
<span class="${properties.kcFormSocialAccountNameClass!} kc-social-icon-text">${p.displayName!}</span>
|
||||
<#else>
|
||||
<span class="${properties.kcFormSocialAccountNameClass!}">${p.displayName!}</span>
|
||||
</#if>
|
||||
</a>
|
||||
</li>
|
||||
</#list>
|
||||
</ul>
|
||||
</div>
|
||||
</#if>
|
||||
<#-- Social logins are intentionally hidden for this theme. -->
|
||||
</#if>
|
||||
|
||||
</@layout.registrationLayout>
|
||||
|
||||
Reference in New Issue
Block a user