diff --git a/lib/composer/autoload_classmap.php b/lib/composer/autoload_classmap.php index f1568a072..21034b236 100644 --- a/lib/composer/autoload_classmap.php +++ b/lib/composer/autoload_classmap.php @@ -487,6 +487,7 @@ return array( 'Combodo\\iTop\\Forms\\Block\\Base\\DateFormBlock' => $baseDir . '/sources/Forms/Block/Base/DateFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\DateTimeFormBlock' => $baseDir . '/sources/Forms/Block/Base/DateTimeFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\FormBlock' => $baseDir . '/sources/Forms/Block/Base/FormBlock.php', + 'Combodo\\iTop\\Forms\\Block\\Base\\HiddenFormBlock' => $baseDir . '/sources/Forms/Block/Base/HiddenFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\NumberFormBlock' => $baseDir . '/sources/Forms/Block/Base/NumberFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\TextAreaFormBlock' => $baseDir . '/sources/Forms/Block/Base/TextAreaFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\TextFormBlock' => $baseDir . '/sources/Forms/Block/Base/TextFormBlock.php', diff --git a/lib/composer/autoload_static.php b/lib/composer/autoload_static.php index c9679a601..f59757e6a 100644 --- a/lib/composer/autoload_static.php +++ b/lib/composer/autoload_static.php @@ -873,6 +873,7 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f 'Combodo\\iTop\\Forms\\Block\\Base\\DateFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/DateFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\DateTimeFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/DateTimeFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\FormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/FormBlock.php', + 'Combodo\\iTop\\Forms\\Block\\Base\\HiddenFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/HiddenFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\NumberFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/NumberFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\TextAreaFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/TextAreaFormBlock.php', 'Combodo\\iTop\\Forms\\Block\\Base\\TextFormBlock' => __DIR__ . '/../..' . '/sources/Forms/Block/Base/TextFormBlock.php', diff --git a/sources/Application/UI/Base/Component/TurboForm/TurboForm.php b/sources/Application/UI/Base/Component/TurboForm/TurboForm.php index daffe18c3..2b7bb563e 100644 --- a/sources/Application/UI/Base/Component/TurboForm/TurboForm.php +++ b/sources/Application/UI/Base/Component/TurboForm/TurboForm.php @@ -16,10 +16,10 @@ class TurboForm extends UIContentBlock public const BLOCK_CODE = 'ibo-form'; public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/turbo-form/layout'; - /** @var string */ - protected $sOnSubmitJsCode; - /** @var string */ - protected $sAction; + /** @var string|null */ + protected ?string $sOnSubmitJsCode; + /** @var string|null */ + protected ?string $sAction; private FormView $oFormView; public function __construct(FormView $oFormView, string $sId = null) @@ -45,7 +45,7 @@ class TurboForm extends UIContentBlock } /** - * @return string + * @return string|null */ public function GetAction(): ?string { diff --git a/sources/Application/UI/Base/Component/TurboForm/TurboFormUIBlockFactory.php b/sources/Application/UI/Base/Component/TurboForm/TurboFormUIBlockFactory.php index 05ae68e5c..901fde572 100644 --- a/sources/Application/UI/Base/Component/TurboForm/TurboFormUIBlockFactory.php +++ b/sources/Application/UI/Base/Component/TurboForm/TurboFormUIBlockFactory.php @@ -12,6 +12,7 @@ use Combodo\iTop\Forms\Block\FormBlockService; use Combodo\iTop\Forms\Compiler\FormsCompiler; use Combodo\iTop\Forms\Compiler\FormsController; use Symfony\Component\Form\FormView; +use utils; /** * Class TurboFormUIBlockFactory @@ -29,13 +30,21 @@ class TurboFormUIBlockFactory extends AbstractUIBlockFactory /** * @api + * + * @param \Symfony\Component\Form\FormView $oFormView + * @param string|null $sAction * @param string|null $sId * * @return \Combodo\iTop\Application\UI\Base\Component\TurboForm\TurboForm An HTML form in which you can add UIBlocks */ - public static function MakeStandard(FormView $oFormView, string $sId = null): TurboForm + public static function MakeStandard(FormView $oFormView, string $sAction = null, string $sId = null): TurboForm { - return new TurboForm($oFormView, $sId); + $oTurboForm = new TurboForm($oFormView, $sId); + if (!is_null($sAction)) { + $oTurboForm->setAction($sAction); + } + + return $oTurboForm; } /** @@ -45,7 +54,7 @@ class TurboFormUIBlockFactory extends AbstractUIBlockFactory * * @return \Combodo\iTop\Application\UI\Base\Component\TurboForm\TurboForm */ - public static function MakeForDashlet(string $sDashletId, string $sAction = null, string $sId = null): TurboForm + public static function MakeForDashlet(string $sDashletId, string $sId = null): TurboForm { $oBlockForm = FormBlockService::GetInstance()->GetFormBlockById($sDashletId); $oController = new FormsController(); @@ -53,9 +62,7 @@ class TurboFormUIBlockFactory extends AbstractUIBlockFactory $oForm = $oBuilder->getForm(); $oTurboForm = new TurboForm($oForm->createView(), $sId); - if (!is_null($sAction)) { - $oTurboForm->SetAction($sAction); - } + $oTurboForm->SetAction(utils::GetAbsoluteUrlAppRoot()."pages/UI.php?route=forms.dashlet_configuration&dashlet_code=$sDashletId"); return $oTurboForm; } diff --git a/sources/Forms/Block/Base/CheckboxFormBlock.php b/sources/Forms/Block/Base/CheckboxFormBlock.php index 6554de91e..3d80f8d3c 100644 --- a/sources/Forms/Block/Base/CheckboxFormBlock.php +++ b/sources/Forms/Block/Base/CheckboxFormBlock.php @@ -8,7 +8,6 @@ namespace Combodo\iTop\Forms\Block\Base; use Combodo\iTop\Forms\Block\AbstractTypeFormBlock; -use Combodo\iTop\Forms\IO\Converter\BoolConverter; use Combodo\iTop\Forms\IO\Format\BooleanIOFormat; use Combodo\iTop\Forms\Register\IORegister; use Combodo\iTop\Forms\Register\OptionsRegister; diff --git a/sources/Forms/Block/Base/HiddenFormBlock.php b/sources/Forms/Block/Base/HiddenFormBlock.php new file mode 100644 index 000000000..070147cd7 --- /dev/null +++ b/sources/Forms/Block/Base/HiddenFormBlock.php @@ -0,0 +1,22 @@ +getRequest(); + $sId = $oRequest->query->get('dashlet_code'); + // Get the form block from the service (and the compiler) - $oFormBlock = FormBlockService::GetInstance()->GetFormBlockById('VerySimpleForm'); + $oFormBlock = FormBlockService::GetInstance()->GetFormBlockById($sId); $oBuilder = $this->GetFormBuilder($oFormBlock, []); $oForm = $oBuilder->getForm(); - $oForm->handleRequest($this->GetRequest()); + $oForm->handleRequest($oRequest); if ($oForm->isSubmitted()) { if ($oForm->isValid()) { @@ -46,6 +49,7 @@ class FormsController extends Controller $this->DisplayPage([ 'form' => $oForm->createView(), + 'sAction' => '', ], 'BasicForm'); } catch (Exception $e) { diff --git a/templates/base/components/turbo-form/layout.html.twig b/templates/base/components/turbo-form/layout.html.twig index 600be25b2..ed8c462b1 100644 --- a/templates/base/components/turbo-form/layout.html.twig +++ b/templates/base/components/turbo-form/layout.html.twig @@ -21,5 +21,6 @@ {% endfor %} {%- endblock -%} + {{ form_end(oUIBlock.GetFormView()) }} \ No newline at end of file