diff --git a/application/loginform.class.inc.php b/application/loginform.class.inc.php index c2f159c5d..a1a12471f 100644 --- a/application/loginform.class.inc.php +++ b/application/loginform.class.inc.php @@ -121,7 +121,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginDataExtension ); $oLoginData->AddBlockData('login_input', new LoginBlockData('loginforminput.html.twig', $aData)); $oLoginData->AddBlockData('login_submit', new LoginBlockData('loginformsubmit.html.twig')); - $oLoginData->AddBlockData('login_footer', new LoginBlockData('loginformfooter.html.twig')); + $oLoginData->AddBlockData('login_form_footer', new LoginBlockData('loginformfooter.html.twig')); $bEnableResetPassword = empty(MetaModel::GetConfig()->Get('forgot_password')) ? true : MetaModel::GetConfig()->Get('forgot_password'); $sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd'; diff --git a/css/login.css b/css/login.css index c3a0a87c8..445c48a55 100644 --- a/css/login.css +++ b/css/login.css @@ -1,68 +1,193 @@ @CHARSET "UTF-8"; -body { - background: #eee; - margin: 0; - padding: 0; + +html,body { + height: 100%; } -#login-logo { - margin-top: 150px; - width: 300px; - padding-left: 20px; - padding-right: 20px; - padding-top: 10px; - padding-bottom: 10px; - margin-left: auto; - margin-right: auto; - background: #f6f6f1; - height: 54px; - border-top: 1px solid #000; - border-left: 1px solid #000; - border-right: 1px solid #000; - border-bottom: 0; - text-align: center; -} -@media (max-height: 700px) -{ - #login-logo { - margin-top: 0; - } - h1 { - margin-top: 0; - } -} -#login-logo img { - border: 0; -} -#login { - width: 300px; - margin-left: auto; - margin-right: auto; - padding: 20px; - background-color: #fff; - border-bottom: 1px solid #000; - border-left: 1px solid #000; - border-right: 1px solid #000; - border-top: 0; - text-align: center; -} -#login table { - width: 100%; -} -#pwd, #user, #old_pwd, #new_pwd, #retype_new_pwd { - width: 10em; -} -.center { - text-align: center; + +#login-title { + width: 70%; + margin-left: 15%; } + h1 { color: #1C94C4; font-size: 16pt; } + +a { + text-decoration: none; + color: #1c94c4; + font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; +} + +a:hover { + text-decoration: underline; + color: #ea7d1e; +} + +#login-body { + background: #eee; + margin: 0; + padding: 0; + height: 100%; + position: relative; +} + +#login-header { +} + +#login-logo, #login-content { + width: 350px; + margin-left: auto; + margin-right: auto; + text-align: center; + position: absolute; + left: 0; + right: 0; + top: 0; +} + +#login-logo { + padding-left: 20px; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; + height: 54px; + margin-top: 150px; +} + +#login-content { + padding: 20px; + background-color: #fff; + border: 2px solid #CBD2D9; + border-radius: 4px; + margin-top: 224px; +} + +@media (max-height: 700px) +{ + #login-logo { + margin-top: 0; + } + #login-content { + margin-top: 74px; + } + h1 { + margin-top: 0; + } +} + +#login-logo img { + border: 0; +} + +#login-form { + padding-top: 1em; +} + +#login-additional-content { + position: absolute; + left: 0; + top: 0; + margin-top: 150px; +} + +#login-form-content > div { + width: 70%; + margin-left: 15%; + color: #37322f; + font-size: 12px; + margin-top: 10px; +} + +#login-form-content .divider { + margin-top: 17px; +} + +#login-form-content .divider hr { + margin-left:auto; + margin-right:auto; + width:40%; + color: #eee; +} + +#login-form-content .divider hr.left { + float:left; +} + +#login-form-content .divider hr.right { + float:right; +} + +#login-input > div { + text-align: left; + margin-top: 10px; +} + +#login-input input { + background-color: #fff; + height: 2em; + padding: 0.1em 1em; + border: solid 2px #DDD; + border-radius: 0.25em; + width: calc(100% - 2em - 4px); +} + +#login-submit.forgotpwd-submit input { + width: 49%; +} + +#login-submit input.login-submit-secondary { + background-color: #e0e0e0; + color: #333a4bf5; +} + +#login-submit input { + background-color: #333a4bf5; + padding: 0.1em 1em; + border-radius: 0.25em; + width: 100%; + color: #eee; + border: 0; + height: 2.2em; + margin-top: 10px; + cursor: pointer; +} + + +.center { + text-align: center; +} + .v-spacer { padding-top: 1em; } + .sso-button { - width: 100%; - margin-bottom: 0.5em; + margin: 5px 0px; + position: relative; + cursor: pointer; + padding: 0.7em 0.5em; + border-radius: 0.25em; + + background-color: #E4E7EB; + filter: grayscale(1) opacity(0.8); + transition-duration: 750ms; +} + +.sso-button:hover { + filter: grayscale(0) opacity(1); +} + +.sso-image { + position: absolute; + left: 5%; + height: 1em; + margin-right: 1em; + top: 0; + bottom: 0; + margin-top: auto; + margin-bottom: auto; } diff --git a/datamodels/2.x/authent-cas/view/cas_css.css.twig b/datamodels/2.x/authent-cas/view/cas_css.css.twig index ac2bb6c0a..678797a7b 100644 --- a/datamodels/2.x/authent-cas/view/cas_css.css.twig +++ b/datamodels/2.x/authent-cas/view/cas_css.css.twig @@ -1,18 +1,2 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} - -.cas_button { - width: 19em; - cursor: pointer; - margin-left: auto; - margin-right: auto; - padding: 0.5em; - background-color: #eee; - border-radius: 0.25em; -} - -.cas_image { - height: 1em; - vertical-align: middle; - margin-right: 1em; -} \ No newline at end of file diff --git a/datamodels/2.x/authent-cas/view/cas_sso_button.html.twig b/datamodels/2.x/authent-cas/view/cas_sso_button.html.twig index 005f871f2..e6888786c 100644 --- a/datamodels/2.x/authent-cas/view/cas_sso_button.html.twig +++ b/datamodels/2.x/authent-cas/view/cas_sso_button.html.twig @@ -1,33 +1,27 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} - - -
-
- - {{ aData.sLabel }} -
-
- - \ No newline at end of file +
+ + {{ aData.sLabel }} +
\ No newline at end of file diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php index 3a121031d..b329d0300 100644 --- a/dictionaries/en.dictionary.itop.ui.php +++ b/dictionaries/en.dictionary.itop.ui.php @@ -545,7 +545,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:ResetPwd-Ready' => 'The password has been changed.', 'UI:ResetPwd-Login' => 'Click here to login...', - 'UI:Login:About' => '', + 'UI:Login:About' => 'Powered by iTop by Combodo', 'UI:Login:ChangeYourPassword' => 'Change Your Password', 'UI:Login:OldPasswordPrompt' => 'Old password', 'UI:Login:NewPasswordPrompt' => 'New password', diff --git a/templates/login/base.html.twig b/templates/login/base.html.twig index c1129fbc8..92c34589b 100644 --- a/templates/login/base.html.twig +++ b/templates/login/base.html.twig @@ -4,20 +4,32 @@ {% block body %} {% import "macros.twig" as Macro %} - {% block login_logo %} - - {% endblock login_logo %} - {% block login_content %} - {% endblock login_content %} - {% block login_footer %} - - {% endblock login_footer %} +
+ {% block login_header %} +
+ {{ Macro.BlockData(aPluginFormData, 'login_header') }} +
+ {% endblock login_header %} + {% block login_logo %} + + {% endblock login_logo %} + {% block login_content %} + {% endblock login_content %} + {% block login_additional_content %} +
+ {{ Macro.BlockData(aPluginFormData, 'login_additional_content') }} +
+ {% endblock login_additional_content %} + {% block login_footer %} + + {% endblock login_footer %} +
{% endblock body %} {% block script %} diff --git a/templates/login/login.html.twig b/templates/login/login.html.twig index 56de060cb..f871d56ce 100644 --- a/templates/login/login.html.twig +++ b/templates/login/login.html.twig @@ -5,7 +5,7 @@ {% block login_content %} {% import "macros.twig" as Macro %} -
+
{% block login_title %}

{{ 'UI:Login:Welcome'|dict_s }}

@@ -19,23 +19,38 @@ {% block login_form %}
- +
{% block login_sso_buttons %} - {{ Macro.BlockData(aPluginFormData, 'login_sso_buttons', '
') }} +
+ {{ Macro.BlockData(aPluginFormData, 'login_sso_buttons', '

' ~ 'UI:Login:SeparatorOr'|dict_s ~ '
') }} +
{% endblock login_sso_buttons %} {% block login_input %} - {{ Macro.BlockData(aPluginFormData, 'login_input') }} +
+ {{ Macro.BlockData(aPluginFormData, 'login_input') }} +
{% endblock login_input %} {% block login_submit %} - {{ Macro.BlockData(aPluginFormData, 'login_submit') }} +
+ {{ Macro.BlockData(aPluginFormData, 'login_submit') }} +
{% endblock login_submit %} {% block login_additional_controls %} - {{ Macro.BlockData(aPluginFormData, 'login_additional_controls') }} +
+ {{ Macro.BlockData(aPluginFormData, 'login_additional_controls') }} +
{% endblock login_additional_controls %} {% block login_links %} - {{ Macro.BlockData(aPluginFormData, 'login_links') }} + {% endblock login_links %} -
' ~ 'UI:Login:SeparatorOr'|dict_s ~ '
+ {% block login_form_footer %} + + {% endblock login_form_footer %} +
{% for sName, sValue in aPreviousPostedVars %} diff --git a/templates/login/loginformfooter.html.twig b/templates/login/loginformfooter.html.twig index 0040f6b0e..515d80e03 100644 --- a/templates/login/loginformfooter.html.twig +++ b/templates/login/loginformfooter.html.twig @@ -1,4 +1,6 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} -{{ 'UI:Login:About'|dict_s }} \ No newline at end of file +
+ {{ 'UI:Login:About'|dict_s }} +
\ No newline at end of file diff --git a/templates/login/loginforminput.html.twig b/templates/login/loginforminput.html.twig index 41385c51c..258af10fd 100644 --- a/templates/login/loginforminput.html.twig +++ b/templates/login/loginforminput.html.twig @@ -1,19 +1,11 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} - - +
- - - - - - +
+
- - - - +
diff --git a/templates/login/loginformlinks.html.twig b/templates/login/loginformlinks.html.twig index 5c4d4d652..79cac8dd1 100644 --- a/templates/login/loginformlinks.html.twig +++ b/templates/login/loginformlinks.html.twig @@ -2,9 +2,7 @@ {# @license http://opensource.org/licenses/AGPL-3.0 #} {% if aData.bEnableResetPassword %} - - - {{ 'UI:Login:ForgotPwd'|dict_s }} - - + {% endif %} diff --git a/templates/login/loginformsubmit.html.twig b/templates/login/loginformsubmit.html.twig index eef5d7e8f..15e86a751 100644 --- a/templates/login/loginformsubmit.html.twig +++ b/templates/login/loginformsubmit.html.twig @@ -1,10 +1,6 @@ {# @copyright Copyright (C) 2010-2019 Combodo SARL #} {# @license http://opensource.org/licenses/AGPL-3.0 #} - - - - - - - +
+ +
diff --git a/templates/login/logout.html.twig b/templates/login/logout.html.twig index 6c4b978ca..2bce26ec1 100644 --- a/templates/login/logout.html.twig +++ b/templates/login/logout.html.twig @@ -4,7 +4,7 @@ {% extends "base.html.twig" %} {% block login_content %} -
+

{{ sTitle }}

{{ sMessage }}

diff --git a/templates/login/password/changepwdform.html.twig b/templates/login/password/changepwdform.html.twig index fe6c56b17..23c4ff14d 100644 --- a/templates/login/password/changepwdform.html.twig +++ b/templates/login/password/changepwdform.html.twig @@ -4,19 +4,19 @@ {% extends "base.html.twig" %} {% block login_content %} -
-

{{ 'UI:Login:ChangeYourPassword'|dict_s }}

- {% if bFailedLogin %} -

{{ 'UI:Login:IncorrectOldPassword'|dict_s }}

- {% endif %} - - - - - - -
  
- +
+

{{ 'UI:Login:ChangeYourPassword'|dict_s }}

+ {% if bFailedLogin %} +

{{ 'UI:Login:IncorrectOldPassword'|dict_s }}

+ {% endif %} + +
+ + + +    +
+
{% endblock %} diff --git a/templates/login/password/forgotpwdform.html.twig b/templates/login/password/forgotpwdform.html.twig index 37359d948..ce0ab5110 100644 --- a/templates/login/password/forgotpwdform.html.twig +++ b/templates/login/password/forgotpwdform.html.twig @@ -4,19 +4,33 @@ {% extends "base.html.twig" %} {% block login_content %} -
-

{{ 'UI:Login:ForgotPwdForm'|dict_s }}

-

{{ 'UI:Login:ForgotPwdForm+'|dict_s }}

- {% if bFailedToReset %} -

{{ 'UI:Login:ResetPwdFailed'|dict_format(sFailureReason) }}

- {% endif %} -
- - - -
  
- -
+
+
+

{{ 'UI:Login:ForgotPwdForm'|dict_s }}

+

{{ 'UI:Login:ForgotPwdForm+'|dict_s }}

+ {% if bFailedToReset %} +

{{ 'UI:Login:ResetPwdFailed'|dict_format(sFailureReason) }}

+ {% endif %} +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
{% endblock %} diff --git a/templates/login/password/forgotpwdsent.html.twig b/templates/login/password/forgotpwdsent.html.twig index 57e8b75d2..15bd5d7ef 100644 --- a/templates/login/password/forgotpwdsent.html.twig +++ b/templates/login/password/forgotpwdsent.html.twig @@ -4,7 +4,7 @@ {% extends "base.html.twig" %} {% block login_content %} -
+

{{ 'UI:Login:ForgotPwdForm'|dict_s }}

{{ 'UI:ResetPwd-EmailSent'|dict_s }}

diff --git a/templates/login/password/resetpwddone.html.twig b/templates/login/password/resetpwddone.html.twig index 58f0fb139..240e92d44 100644 --- a/templates/login/password/resetpwddone.html.twig +++ b/templates/login/password/resetpwddone.html.twig @@ -4,7 +4,7 @@ {% extends "base.html.twig" %} {% block login_content %} -
+

{{ 'UI:ResetPwd-Title'|dict_s }}

{% if bNoUser %}

{{ 'UI:ResetPwd-Error-WrongLogin'|dict_format(sAuthUser) }}

diff --git a/templates/login/password/resetpwdform.html.twig b/templates/login/password/resetpwdform.html.twig index 8101aeb1e..b63ec0ef3 100644 --- a/templates/login/password/resetpwdform.html.twig +++ b/templates/login/password/resetpwdform.html.twig @@ -4,26 +4,42 @@ {% extends "base.html.twig" %} {% block login_content %} -
-

{{ 'UI:ResetPwd-Title'|dict_s }}

- {% if bNoUser %} -

{{ 'UI:ResetPwd-Error-WrongLogin'|dict_format(sAuthUser) }}

- {% elseif bBadToken %} -

{{ 'UI:ResetPwd-Error-InvalidToken'|dict_s }}

- {% else %} +
+
+

{{ 'UI:ResetPwd-Title'|dict_s }}

+ {% if bNoUser %} +

{{ 'UI:ResetPwd-Error-WrongLogin'|dict_format(sAuthUser) }}

+ {% elseif bBadToken %} +

{{ 'UI:ResetPwd-Error-InvalidToken'|dict_s }}

+ {% else %}

{{ 'UI:ResetPwd-Error-EnterPassword'|dict_format(sUserName) }}

- - - - - -
+
+
+ +
+
+
+ + +
+
+ + +
+
+
+
+ +
+
+
- {% endif %} -
+
{% endblock %} {% block script %}