mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-17 06:18:44 +02:00
N°2847 Refactor Inputs components
This commit is contained in:
@@ -21,6 +21,7 @@ use Combodo\iTop\Application\UI\Component\Button\ButtonFactory;
|
||||
use Combodo\iTop\Application\UI\Component\Form\Form;
|
||||
use Combodo\iTop\Application\UI\Component\Html\Html;
|
||||
use Combodo\iTop\Application\UI\Component\Input\InputFactory;
|
||||
use Combodo\iTop\Application\UI\Component\Input\RichText\RichText;
|
||||
use Combodo\iTop\Application\UI\Component\Panel\Panel;
|
||||
use Combodo\iTop\Application\UI\Component\Title\TitleFactory;
|
||||
use Combodo\iTop\Application\UI\Layout\PageContent\PageContentFactory;
|
||||
@@ -463,10 +464,12 @@ function GetUserLanguageForm(ApplicationContext $oAppContext, string $sURL): For
|
||||
$aSortedLang[$aLang['description']] = $sCode;
|
||||
}
|
||||
ksort($aSortedLang);
|
||||
$oUserLanguageBlockSelect = InputFactory::MakeForSelect('language', Dict::S('UI:Favorites:SelectYourLanguage'));
|
||||
$oUserLanguageBlockSelect = InputFactory::MakeForSelectWithLabel('language', Dict::S('UI:Favorites:SelectYourLanguage'));
|
||||
/** @var \Combodo\iTop\Application\UI\Component\Input\Select $oUserLanguageBlockSelectInput */
|
||||
$oUserLanguageBlockSelectInput = $oUserLanguageBlockSelect->GetInput();
|
||||
foreach ($aSortedLang as $sCode) {
|
||||
$bSelected = ($sCode == Dict::GetUserLanguage());
|
||||
$oUserLanguageBlockSelect->AddOption(InputFactory::MakeForSelectOption($sCode, $aLanguages[$sCode]['description'].' ('.$aLanguages[$sCode]['localized_description'].')', $bSelected));
|
||||
$oUserLanguageBlockSelectInput->AddOption(InputFactory::MakeForSelectOption($sCode, $aLanguages[$sCode]['description'].' ('.$aLanguages[$sCode]['localized_description'].')', $bSelected));
|
||||
}
|
||||
$oUserLanguageForm->AddSubBlock($oUserLanguageBlockSelect);
|
||||
|
||||
@@ -478,6 +481,9 @@ function GetUserLanguageForm(ApplicationContext $oAppContext, string $sURL): For
|
||||
// - Submit button
|
||||
$oUserLanguageSubmitButton = ButtonFactory::MakeForValidationAction(Dict::S('UI:Button:Apply'), null, null, true);
|
||||
$oUserLanguageForm->AddSubBlock($oUserLanguageSubmitButton);
|
||||
|
||||
$oTestRichText = new RichText();
|
||||
$oUserLanguageForm->AddSubBlock($oTestRichText);
|
||||
return $oUserLanguageForm;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
namespace Combodo\iTop\Application\UI\Component\Input;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\Component\Input\Select\Select;
|
||||
use Combodo\iTop\Application\UI\Component\Input\Select\SelectOption;
|
||||
|
||||
class InputFactory
|
||||
{
|
||||
|
||||
@@ -22,13 +25,20 @@ class InputFactory
|
||||
return $oInput;
|
||||
}
|
||||
|
||||
public static function MakeForSelect(string $sName, string $sLabel, ?string $sId = null): Select
|
||||
public static function MakeForSelectWithLabel(string $sName, string $sLabel, ?string $sId = null): InputWithLabel
|
||||
{
|
||||
$oInput = new Select();
|
||||
$oInput->SetName($sName);
|
||||
|
||||
$oInputWithLabel = new InputWithLabel($sLabel, $oInput, $sId);
|
||||
|
||||
return $oInputWithLabel;
|
||||
}
|
||||
public static function MakeForSelect(string $sName, ?string $sId = null): Select
|
||||
{
|
||||
$oInput = new Select($sId);
|
||||
|
||||
$oInput->SetName($sName)
|
||||
->SetLabel($sLabel);
|
||||
|
||||
$oInput->SetName($sName);
|
||||
|
||||
return $oInput;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,12 +8,49 @@
|
||||
namespace Combodo\iTop\Application\UI\Component\Input;
|
||||
|
||||
|
||||
class InputWithLabel extends Input
|
||||
use Combodo\iTop\Application\UI\UIBlock;
|
||||
|
||||
class InputWithLabel extends UIBlock
|
||||
{
|
||||
public const HTML_TEMPLATE_REL_PATH = 'components/input/inputwithlabel';
|
||||
|
||||
/** @var string */
|
||||
protected $sLabel;
|
||||
/** @var \Combodo\iTop\Application\UI\Component\Input\Input */
|
||||
protected $oInput;
|
||||
|
||||
/**
|
||||
* InputWithLabel constructor.
|
||||
*
|
||||
* @param string $sLabel
|
||||
* @param \Combodo\iTop\Application\UI\Component\Input\Input $oInput
|
||||
*/
|
||||
public function __construct(string $sLabel, \Combodo\iTop\Application\UI\Component\Input\Input $oInput, ?string $sId)
|
||||
{
|
||||
parent::__construct($sId);
|
||||
$this->sLabel = $sLabel;
|
||||
$this->oInput = $oInput;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Combodo\iTop\Application\UI\Component\Input\Input
|
||||
*/
|
||||
public function GetInput(): \Combodo\iTop\Application\UI\Component\Input\Input
|
||||
{
|
||||
return $this->oInput;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Combodo\iTop\Application\UI\Component\Input\Input $oInput
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function SetInput(\Combodo\iTop\Application\UI\Component\Input\Input $oInput): InputWithLabel
|
||||
{
|
||||
$this->oInput = $oInput;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
|
||||
@@ -5,12 +5,14 @@
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Component\Input;
|
||||
namespace Combodo\iTop\Application\UI\Component\Input\Select;
|
||||
|
||||
|
||||
class Select extends InputWithLabel
|
||||
use Combodo\iTop\Application\UI\Component\Input\Input;
|
||||
|
||||
class Select extends Input
|
||||
{
|
||||
public const HTML_TEMPLATE_REL_PATH = 'components/input/select';
|
||||
public const HTML_TEMPLATE_REL_PATH = 'components/input/select/select';
|
||||
|
||||
/** @var array */
|
||||
protected $aOptions;
|
||||
@@ -5,14 +5,14 @@
|
||||
*/
|
||||
|
||||
|
||||
namespace Combodo\iTop\Application\UI\Component\Input;
|
||||
namespace Combodo\iTop\Application\UI\Component\Input\Select;
|
||||
|
||||
|
||||
use Combodo\iTop\Application\UI\UIBlock;
|
||||
|
||||
class SelectOption extends UIBlock
|
||||
{
|
||||
public const HTML_TEMPLATE_REL_PATH = 'components/input/selectoption';
|
||||
public const HTML_TEMPLATE_REL_PATH = 'components/input/select/selectoption';
|
||||
|
||||
/** @var string */
|
||||
protected $sValue;
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends "components/input/layout.html.twig" %}
|
||||
{% block iboInputLabel %}
|
||||
<label for="{{ oUIBlock.GetId() }}">{{ oUIBlock.GetLabel() }}</label>
|
||||
{{ render_block(oUIBlock.GetInput()) }}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{# @copyright Copyright (C) 2010-2020 Combodo SARL #}
|
||||
{# @license http://opensource.org/licenses/AGPL-3.0 #}
|
||||
{% extends "components/input/inputwithlabel.html.twig" %}
|
||||
{% extends "components/input/layout.html.twig" %}
|
||||
{% block iboInput %}
|
||||
<select id="{{ oUIBlock.GetId() }}" name="{{ oUIBlock.GetName() }}">
|
||||
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
|
||||
Reference in New Issue
Block a user