mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°2311 - Login Page extensibility
This commit is contained in:
@@ -121,6 +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'));
|
||||
|
||||
$bEnableResetPassword = empty(MetaModel::GetConfig()->Get('forgot_password')) ? true : MetaModel::GetConfig()->Get('forgot_password');
|
||||
$sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd';
|
||||
|
||||
@@ -157,34 +157,21 @@ class LoginTwigContext
|
||||
|
||||
public function Render(NiceWebPage $oPage, $sTwigFile, $aVars = array())
|
||||
{
|
||||
$sType = 'html';
|
||||
$oTemplate = $this->GetTwig()->load($sTwigFile);
|
||||
$oPage->add($oTemplate->renderBlock('body', $aVars));
|
||||
$oPage->add_script($oTemplate->renderBlock('script', $aVars));
|
||||
$oPage->add_ready_script($oTemplate->renderBlock('ready_script', $aVars));
|
||||
$oPage->add_style($oTemplate->renderBlock('css', $aVars));
|
||||
|
||||
if (preg_match('/.*\.(html|ready\.js|js)\.twig/U', $sTwigFile, $matches))
|
||||
// Render CSS links
|
||||
foreach ($this->aPluginFormData as $oFormData)
|
||||
{
|
||||
$sType = $matches[1];
|
||||
}
|
||||
|
||||
switch ($sType)
|
||||
{
|
||||
case 'html':
|
||||
$oPage->add($this->GetTwig()->render($sTwigFile, $aVars));
|
||||
// Render CSS links
|
||||
foreach ($this->aPluginFormData as $oFormData)
|
||||
{
|
||||
/** @var \LoginTwigData $oFormData */
|
||||
$sCSSFile = $oFormData->GetCSSFile();
|
||||
if (!empty($sCSSFile))
|
||||
{
|
||||
$oPage->add_linked_stylesheet($sCSSFile);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'js':
|
||||
$oPage->add_script($this->GetTwig()->render($sTwigFile, $aVars));
|
||||
break;
|
||||
case 'ready.js':
|
||||
$oPage->add_ready_script($this->GetTwig()->render($sTwigFile, $aVars));
|
||||
break;
|
||||
/** @var \LoginTwigData $oFormData */
|
||||
$sCSSFile = $oFormData->GetCSSFile();
|
||||
if (!empty($sCSSFile))
|
||||
{
|
||||
$oPage->add_linked_stylesheet($sCSSFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,6 @@ class LoginWebPage extends NiceWebPage
|
||||
$aVars['sFailureReason'] = $sFailureReason;
|
||||
|
||||
$oTwigContext->Render($this, 'forgotpwdform.html.twig', $aVars);
|
||||
$oTwigContext->Render($this, 'forgotpwdform.ready.js.twig');
|
||||
}
|
||||
|
||||
protected function ForgotPwdGo()
|
||||
@@ -277,7 +276,6 @@ class LoginWebPage extends NiceWebPage
|
||||
}
|
||||
|
||||
$oTwigContext->Render($this, 'resetpwdform.html.twig', $aVars);
|
||||
$oTwigContext->Render($this, 'resetpwdform.js.twig');
|
||||
}
|
||||
|
||||
public function DoResetPassword()
|
||||
@@ -326,7 +324,6 @@ class LoginWebPage extends NiceWebPage
|
||||
$oTwigContext = new LoginTwigContext();
|
||||
$aVars = $oTwigContext->GetDefaultVars();
|
||||
$aVars['bFailedLogin'] = $bFailedLogin;
|
||||
$oTwigContext->Render($this, 'changepwdform.js.twig');
|
||||
$oTwigContext->Render($this, 'changepwdform.html.twig', $aVars);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{# @copyright Copyright (C) 2010-2019 Combodo SARL #}
|
||||
{# @license http://opensource.org/licenses/AGPL-3.0 #}
|
||||
|
||||
|
||||
{% block body %}
|
||||
{% import "macros.twig" as Macro %}
|
||||
{% block login_logo %}
|
||||
<div id="login-logo">
|
||||
<a href="{{ sIconUrl }}">
|
||||
@@ -12,6 +14,23 @@
|
||||
{% block login_content %}
|
||||
{% endblock login_content %}
|
||||
{% block login_footer %}
|
||||
<div id="login-footer"></div>
|
||||
<div id="login-footer">
|
||||
{{ Macro.BlockData(aPluginFormData, 'login_footer') }}
|
||||
</div>
|
||||
{% endblock login_footer %}
|
||||
{% endblock body %}
|
||||
|
||||
{% block script %}
|
||||
{% import "macros.twig" as Macro %}
|
||||
{{ Macro.BlockData(aPluginFormData, 'script') }}
|
||||
{% endblock script %}
|
||||
|
||||
{% block ready_script %}
|
||||
{% import "macros.twig" as Macro %}
|
||||
{{ Macro.BlockData(aPluginFormData, 'ready_script') }}
|
||||
{% endblock ready_script %}
|
||||
|
||||
{% block css %}
|
||||
{% import "macros.twig" as Macro %}
|
||||
{{ Macro.BlockData(aPluginFormData, 'css') }}
|
||||
{% endblock css %}
|
||||
|
||||
@@ -3,9 +3,8 @@
|
||||
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% import "macros.twig" as Macro %}
|
||||
|
||||
{% block login_content %}
|
||||
{% import "macros.twig" as Macro %}
|
||||
<div id="login">
|
||||
{% block login_title %}
|
||||
<div id="login-title">
|
||||
@@ -49,6 +48,11 @@
|
||||
{% endblock login_content %}
|
||||
|
||||
{% block login_footer %}
|
||||
{{ Macro.BlockData(aPluginFormData, 'login_footer') }}
|
||||
<div id="login-footer">
|
||||
{{ Macro.BlockData(aPluginFormData, 'login_footer') }}
|
||||
</div>
|
||||
{% endblock login_footer %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4
templates/login/loginformfooter.html.twig
Normal file
4
templates/login/loginformfooter.html.twig
Normal file
@@ -0,0 +1,4 @@
|
||||
{# @copyright Copyright (C) 2010-2019 Combodo SARL #}
|
||||
{# @license http://opensource.org/licenses/AGPL-3.0 #}
|
||||
|
||||
{{ 'UI:Login:About'|dict_s }}
|
||||
@@ -3,13 +3,12 @@
|
||||
|
||||
{% macro BlockData(aPluginFormData, sBlockName, sText = '') %}
|
||||
{% set bHaveBlock = 'false' %}
|
||||
{% for oLoginData in aPluginFormData if oLoginData.GetBlockData(sBlockName) %}
|
||||
{% set oBlockData = oLoginData.GetBlockData(sBlockName) %}
|
||||
{% for oLoginData in aPluginFormData if (oLoginData is defined and oLoginData.GetBlockData(sBlockName)) %}
|
||||
{% set bHaveBlock = 'true' %}
|
||||
{% set oBlockData = oLoginData.GetBlockData(sBlockName) %}
|
||||
{% set sTwig = oBlockData.GetTwig() %}
|
||||
{% set aData = oBlockData.GetData() %}
|
||||
{% set sContent = include(sTwig ? sTwig : '') %}
|
||||
{{ sContent|raw }}
|
||||
{% include sTwig ignore missing %}
|
||||
{% endfor %}
|
||||
{% if bHaveBlock == 'true' %}
|
||||
{{ sText|raw }}
|
||||
|
||||
@@ -20,3 +20,7 @@
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block script %}
|
||||
{% include 'changepwdform.js.twig' %}
|
||||
{% endblock script %}
|
||||
|
||||
@@ -19,3 +19,8 @@
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block ready_script %}
|
||||
{% include 'forgotpwdform.ready.js.twig' %}
|
||||
{% endblock ready_script %}
|
||||
|
||||
@@ -25,3 +25,7 @@
|
||||
{% endif %}
|
||||
</div
|
||||
{% endblock %}
|
||||
|
||||
{% block script %}
|
||||
{% include 'resetpwdform.js.twig' %}
|
||||
{% endblock script %}
|
||||
|
||||
Reference in New Issue
Block a user