Commit 283cab72 authored by Johannes Buechele's avatar Johannes Buechele
Browse files

Merge branch 'redesign' into 'master'

Redesign

See merge request !2
parents 111883fc 9d086786
......@@ -11,8 +11,8 @@ executeActionsSubject=Aktualisieren Sie Ihr Konto
executeActionsBody=Ihr Administrator hat Sie aufgefordert Ihren Account {2} zu aktualisieren. Klicken Sie auf den unten stehenden Link um den Prozess zu starten.\n\n{0}\n\nDie G\u00FCltigkeit des Links wird in {1} Minuten verfallen.\n\nSollten Sie sich dieser Aufforderung nicht bewusst sein, ignorieren Sie diese Nachricht und Ihr Account bleibt unver\u00E4ndert.
executeActionsBodyHtml=<p>Ihr Administrator hat Sie aufgefordert Ihren Account {2} zu aktualisieren. Klicken Sie auf den unten stehenden Link um den Prozess zu starten.</p><p><a href="{0}">Link zum Account-Update</a></p><p>Die G\u00FCltigkeit des Links wird in {1} Minuten verfallen.</p><p>Sollten Sie sich dieser Aufforderung nicht bewusst sein, ignorieren Sie diese Nachricht und Ihr Account bleibt unver\u00E4ndert.</p>
eventLoginErrorSubject=Fehlgeschlagene Anmeldung
eventLoginErrorBody=Jemand hat um {0} von {1} versucht, sich mit ihrem Konto anzumelden. Falls das nicht Sie waren, dann kontaktieren Sie bitte Ihren Admin.
eventLoginErrorBodyHtml=<p>Jemand hat um {0} von {1} versucht, sich mit ihrem Konto anzumelden. Falls das nicht Sie waren, dann kontaktieren Sie bitte Ihren Admin.</p>
eventLoginErrorBody=Ein Anmeldeversuch mit fairlogin ist um {0} fehlgeschlagen. Bitte nochmal probieren. Falls nicht Sie sich eben versucht haben anzumelden, k\u00F6nnte es auch ein Hacker gewesen sein. Vielleicht ist es Zeit, wieder einmal das Passwort auf fairapps.net zu \u00E4ndern.
eventLoginErrorBodyHtml=Ein Anmeldeversuch mit fairlogin ist um {0} fehlgeschlagen. Bitte nochmal probieren. Falls nicht Sie sich eben versucht haben anzumelden, k\u00F6nnte es auch ein Hacker gewesen sein. Vielleicht ist es Zeit, wieder einmal das Passwort auf <a href="https://fairapps.net">fairapps.net</a> zu \u00E4ndern.
eventRemoveTotpSubject=OTP Entfernt
eventRemoveTotpBody=OTP wurde von ihrem Konto am {0} von {1} entfernt. Falls das nicht Sie waren, dann kontaktieren Sie bitte Ihren Admin.
eventRemoveTotpBodyHtml=<p>OTP wurde von ihrem Konto am {0} von {1} entfernt. Falls das nicht Sie waren, dann kontaktieren Sie bitte Ihren Admin.</p>
......
......@@ -14,8 +14,8 @@ executeActionsSubject=Update Your Account
executeActionsBody=Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.\n\n{0}\n\nThis link will expire within {1} minutes.\n\nIf you are unaware that your admin has requested this, just ignore this message and nothing will be changed.
executeActionsBodyHtml=<p>Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.</p><p><a href="{0}">Link to account update</a></p><p>This link will expire within {1} minutes.</p><p>If you are unaware that your admin has requested this, just ignore this message and nothing will be changed.</p>
eventLoginErrorSubject=Login error
eventLoginErrorBody=A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an admin.
eventLoginErrorBodyHtml=<p>A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an admin.</p>
eventLoginErrorBody=A failed fairlogin attempt was detected to your account on {0}. Please try again. If this was not you, somebody may have tried to hack your account. Maybe it is time to change your password at fairapps.net.
eventLoginErrorBodyHtml=A failed fairlogin attempt was detected to your account on {0}. Please try again. If this was not you, somebody may have tried to hack your account. Maybe it is time to change your password at <a href="https://fairapps.net">fairapps.net</a>.
eventRemoveTotpSubject=Remove OTP
eventRemoveTotpBody=OTP was removed from your account on {0} from {1}. If this was not you, please contact an admin.
eventRemoveTotpBodyHtml=<p>OTP was removed from your account on {0} from {1}. If this was not you, please contact an admin.</p>
......
<#if message?has_content>
<#if message.type='success'>
<div class="alert alert-success" role="alert">
${message.summary?no_esc}
</div>
</#if>
<#if message.type='warning'>
<div class="alert alert-warning" role="alert">
${message.summary?no_esc}
</div>
</#if>
<#if message.type='error'>
<div class="alert alert-danger" role="alert">
${message.summary?no_esc}
</div>
</#if>
<#if message.type='info'>
<div class="alert alert-info" role="alert">
${message.summary?no_esc}
</div>
</#if>
</#if>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">
<#if code.success>
${msg("codeSuccessTitle")}
<#else>
${msg("codeErrorTitle", code.error)}
</#if>
</h4>
<#include "alert.ftl">
<div id="kc-code">
<#if code.success>
<p>${msg("copyCodeInstruction")}</p>
<input id="code" class="${properties.kcTextareaClass!}" value="${code.code}" />
<#else>
<p id="error">${code.error}</p>
</#if>
</div>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
<#import "template.ftl" as layout>
<@layout.registrationLayout displayMessage=false; section>
<#if section = "title">
${msg("errorTitle")}
<#elseif section = "header">
${msg("errorTitleHtml")}
<#elseif section = "form">
<div id="kc-error-message">
<p class="instruction">${message.summary}</p>
<#if client?? && client.baseUrl?has_content>
<p><a id="backToApplication" href="${client.baseUrl}">${msg("backToApplication")}</a></p>
</#if>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("errorTitleHtml")?no_esc}</h4>
<#include "alert.ftl">
<ul>
<div id="kc-error-message">
<#if client?? && client.baseUrl?has_content>
<p>
<a id="backToApplication" href="${client.baseUrl}">${msg("backToApplication")?no_esc}</a>
</p>
</#if>
</div>
</ul>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</#if>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<footer class="footer">
<div class="container">
<#if realm.internationalizationEnabled>
<div id="language-picker" class="row justify-content-center">
<div class="form-inline">
<div class="form-group">
<select id="language-picker-dropdown" class="form-control form-control-sm">
<option>${locale.current}</option>
<#list locale.supported as l>
<option value="${l.url}">${l.label}</option>
</#list>
</select>
</div>
</div>
</div>
</#if>
<div class="row justify-content-center">
<a href="${msg("imprintLink")}" class="text-muted">${msg("imprintText")}</a>
|
<a href="${msg("termsOfServiceLink")}" class="text-muted">${msg("termsOfServiceText")}</a>
|
<a href="${msg("cloudTermsLink")}" class="text-muted">${msg("cloudTermsText")}</a>
|
<a href="${msg("fairloginOnboardingLink")}" class="text-muted">${msg("fairloginOnboardingText")}</a>
|
<a href="${msg("fairloginFaqsLink")}" class="text-muted">${msg("fairloginFaqsText")}</a>
</div>
</div>
</footer>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout displayMessage=false; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<#include "alert.ftl">
<p class="instruction">${message.summary}
<#if requiredActions??>
<#list requiredActions>:
<b>
<#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}
<#sep>, </#items>
</b>
</#list>
<#else>
</#if>
</p>
<#if skipLink??>
<#else>
<#if pageRedirectUri??>
<p>
<a href="${pageRedirectUri}">${msg("backToApplication")?no_esc}</a>
</p>
<#elseif actionUri??>
<p>
<a href="${actionUri}">${msg("proceedWithAction")?no_esc}</a>
</p>
<#elseif client.baseUrl??>
<p>
<a href="${client.baseUrl}">${msg("backToApplication")?no_esc}</a>
</p>
</#if>
</#if>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout displayInfo=true; section>
<#if section = "title">
${msg("loginTotpTitle")}
<#elseif section = "header">
${msg("loginTotpTitle")}
<#elseif section = "form">
<ol id="kc-totp-settings">
<li>
<p>${msg("loginTotpStep1")}</p>
</li>
<li>
<p>${msg("loginTotpStep2")}</p>
<img src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode"><br/>
<span class="code">${totp.totpSecretEncoded}</span>
</li>
<li>
<p>${msg("loginTotpStep3")}</p>
</li>
</ol>
<form action="${url.loginAction}" class="form config-totp ${properties.kcFormClass!}" id="kc-totp-settings-form" method="post">
<div class="${properties.kcFormGroupClass!} row">
<div class="${properties.kcInputWrapperClass!} col-xs-12">
<input type="text" id="totp" name="totp" autocomplete="off" class="form-control ${properties.kcInputClass!}" />
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("loginTotpTitle")}</h4>
<#include "alert.ftl">
<ol id="kc-totp-settings">
<li>
<p>${msg("loginTotpStep1")}</p>
</li>
<#if mode?? && mode="manual">
<li>
<p>${msg("loginTotpManualStep2")}</p>
<p>
<span id="kc-totp-secret-key">${totp.totpSecretEncoded}</span>
</p>
<p>
<a href="${totp.qrUrl}" id="mode-barcode">${msg("loginTotpScanBarcode")}</a>
</p>
</li>
<li>
<p>${msg("loginTotpManualStep3")}</p>
<ul>
<li id="kc-totp-type">${msg("loginTotpType")}: ${msg("loginTotp." + totp.policy.type)}</li>
<li id="kc-totp-algorithm">${msg("loginTotpAlgorithm")}: ${totp.policy.algorithm}</li>
<li id="kc-totp-digits">${msg("loginTotpDigits")}: ${totp.policy.digits}</li>
<li id="kc-totp-period">${msg("loginTotpInterval")}: ${totp.policy.period}</li>
</ul>
</li>
<#else>
<li>
<p>${msg("loginTotpStep2")}</p>
<img id="kc-totp-secret-qr-code" src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode">
<br/>
<p>
<a href="${totp.manualUrl}" id="mode-manual">${msg("loginTotpUnableToScan")}</a>
</p>
</li>
</#if>
<li>
<p>${msg("loginTotpStep3")}</p>
</li>
</ol>
<form action="${url.loginAction}" id="kc-totp-settings-form" method="post">
<div class="${properties.kcFormGroupClass!}">
<div class="form-group">
<label for="totp">${msg("loginTotpOneTime")}</label>
<input type="text" id="totp" name="totp" autocomplete="off" class="form-control" />
</div>
<input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" />
</div>
<div class="form-group no-margin">
<button type="submit" class="btn btn-primary btn-block btn-main-action">
${msg("doSubmit")}
</button>
</div>
</form>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
<input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" />
</div>
<div class="row config-totp-button-container">
<div class="col-xs-6 col-xs-offset-6 col-sm-4 col-sm-offset-8">
<input class="btn btn-primary btn-flat btn-block ${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"/>
</div>
</div>
</form>
</#if>
</section>
</#if>
</@layout.registrationLayout>
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("confirmLinkIdpTitle")}</h4>
<#include "alert.ftl">
<form id="kc-register-form" action="${url.loginAction}" method="post">
<button type="submit" class="btn btn-primary" name="submitAction" id="updateProfile" value="updateProfile">${msg("confirmLinkIdpReviewProfile")}</button>
<button type="submit" class="btn btn-secondary" name="submitAction" id="linkAccount" value="linkAccount">${msg("confirmLinkIdpContinue", idpAlias)}</button>
</form>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("emailLinkIdpTitle", idpAlias)}</h4>
<#include "alert.ftl">
<p id="instruction1" class="instruction">
${msg("emailLinkIdp1", idpAlias, brokerContext.username, realm.displayName)}
</p>
<p id="instruction2" class="instruction">
${msg("emailLinkIdp2")}
<a href="${url.loginAction}">${msg("doClickHere")}</a> ${msg("emailLinkIdp3")}
</p>
<p id="instruction3" class="instruction">
${msg("emailLinkIdp4")}
<a href="${url.loginAction}">${msg("doClickHere")}</a> ${msg("emailLinkIdp5")}
</p>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout bodyClass="oauth"; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("oauthGrantRequest")}</h4>
<#include "alert.ftl">
<ul>
<#if oauth.claimsRequested??>
<li>
<span>
${msg("personalInfo")}&nbsp;
<#list oauth.claimsRequested as claim>
${advancedMsg(claim)}
<#if claim_has_next>,&nbsp;</#if>
</#list>
</span>
</li>
</#if>
<#if oauth.accessRequestMessage??>
<li>
<span>
${oauth.accessRequestMessage}
</span>
</li>
</#if>
<#if oauth.realmRolesRequested??>
<#list oauth.realmRolesRequested as role>
<li>
<span>
<#if role.description??>${advancedMsg(role.description)}
<#else>${advancedMsg(role.name)}</#if>
</span>
</li>
</#list>
</#if>
<#if oauth.resourceRolesRequested??>
<#list oauth.resourceRolesRequested?keys as resource>
<#list oauth.resourceRolesRequested[resource] as clientRole>
<li>
<span>
<#if clientRole.roleDescription??>${advancedMsg(clientRole.roleDescription)}
<#else>${advancedMsg(clientRole.roleName)}</#if>
</span>
<span>${msg("inResource")}
<strong>
<#if clientRole.clientName??>${advancedMsg(clientRole.clientName)}
<#else>${clientRole.clientId}</#if>
</strong>
</span>
</li>
</#list>
</#list>
</#if>
</ul>
<form class="form-actions" action="${url.oauthAction}" method="POST">
<input type="hidden" name="code" value="${oauth.code}">
<div class="${properties.kcFormGroupClass!}">
<div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
<div class="${properties.kcFormOptionsWrapperClass!}">
</div>
</div>
<div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
<div class="${properties.kcFormButtonsWrapperClass!}">
<input class="btn btn-primary" name="accept" id="kc-login" type="submit" value="${msg("doYes")}"/>
<input class="btn btn-secondary" name="cancel" id="kc-cancel" type="submit" value="${msg("doNo")}"/>
</div>
</div>
</div>
</form>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title"></h4>
<#include "alert.ftl">
<p id="instruction1" class="instruction">
${msg("pageExpiredMsg1")}
<a id="loginRestartLink" href="${url.loginRestartFlowUrl}">${msg("doClickHere")}</a> . ${msg("pageExpiredMsg2")}
<a id="loginContinueLink" href="${url.loginAction}">${msg("doClickHere")}</a> .
</p>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</div>
</section>
</#if>
</@layout.registrationLayout>
\ No newline at end of file
<#import "template.ftl" as layout>
<@layout.registrationLayout displayInfo=true; section>
<#if section = "title">
${msg("emailForgotTitle")}
<#elseif section = "header">
${msg("emailForgotTitle")}
<#elseif section = "form">
<form id="kc-reset-password-form" class="form reset-password ${properties.kcFormClass!}" action="${url.loginAction}" method="post">
<div class="reset-password-field ${properties.kcFormGroupClass!}">
<div class="${properties.kcLabelWrapperClass!}">
<label for="username" class="${properties.kcLabelClass!}"><#if !realm.loginWithEmailAllowed>${msg("username")}<#elseif !realm.registrationEmailAsUsername>${msg("usernameOrEmail")}<#else>${msg("email")}</#if></label>
</div>
<div class="${properties.kcInputWrapperClass!}">
<input type="text" id="username" name="username" class="form-control ${properties.kcInputClass!}" autofocus/>
</div>
</div>
<div class="${properties.kcFormGroupClass!} row">
<div id="kc-form-options" class="${properties.kcFormOptionsClass!} col-xs-5">
<div class="${properties.kcFormOptionsWrapperClass!}">
<span>
<a class="btn btn-default btn-flat btn-block" href="${url.loginUrl}"><i class="fa fa-caret-left"></i>&nbsp;&nbsp;${msg("backToLogin")}</a>
</span>
<@layout.registrationLayout displayInfo=true; section>
<#if section="form">
<section>
<div class="container h-100">
<div class="row justify-content-md-center align-items-center h-100">
<div class="card-wrapper">
<div class="text-center margin-bottom-30 margin-top-80">
<img src="${url.resourcesPath}/img/fairlogin.svg">
</div>
</div>
<div class="card fat">
<div class="card-body">
<h4 class="card-title">${msg("emailForgotTitle")}</h4>
<#include "alert.ftl">
<form action="${url.loginAction}" method="post">
<div class="form-group">
<label for="username">${msg("email")}</label>
<input id="username" type="email" class="form-control" name="username" value="" required autofocus>
<div class="form-text text-muted">
${msg("emailInstruction")}
</div>
</div>
<div id="kc-form-buttons" class="${properties.kcFormButtonsClass!} col-xs-7">
<input class="btn btn-primary btn-flat btn-block ${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"/>
<div class="form-group no-margin">
<button type="submit" class="btn btn-primary btn-block btn-main-action">
${msg("doSubmit")}
</button>
</div>
</form>
</div>
</div>
<#include "footer.ftl">
</div>
</div>
</form>
<#elseif section = "info" >
<hr />
${msg("emailInstruction")}
</#if>
</div>
</section>
</#if>
</@layout.registrationLayout>
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section = "title">
${msg("loginTitleFairlogin")}
<#elseif section = "header">
<img id="kc-logo-wrapper" src="${url.resourcesPath}/img/fairlogin_logo.png" class="img-responsive center-block" alt="fairlogin"></a></div>
<#elseif section = "form">
<form id="kc-totp-login-form" class="form totp ${properties.kcFormClass!}" action="${url.loginAction}" method="post">
<div class="${properties.kcFormGroupClass!}">
<div class="${properties.kcLabelWrapperClass!}">
<h4>${msg("loginOtpTitle")}</h4>
<p class="margin-default">${msg("loginOtpDescription")}</p>
</div>
<div class="${properties.kcInputWrapperClass!}">
<input id="totp" name="totp" autocomplete="off" type="text" class="form-control ${properties.kcInputClass!}" autofocus />
</div>
</div>
<div class="${properties.kcFormGroupClass!} totp-button-container">
<div id="kc-form-options" class="${properties.kcFormOptionsClass!}">