From cf4e8c65d2aa50fce26b909b35c17d00dfb546f6 Mon Sep 17 00:00:00 2001 From: Eric Date: Thu, 26 Nov 2020 16:50:58 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B03123=20-=20Create=20specific=20block=20f?= =?UTF-8?q?or=20DisplayBlock(type:=20List)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/backoffice/main.scss | 3 +- css/backoffice/specific/_all.scss | 6 ++ .../specific/displayblock/_all.scss | 2 + .../specific/displayblock/_blocklist.scss | 4 ++ lib/composer/autoload_classmap.php | 3 +- lib/composer/autoload_static.php | 3 +- .../DisplayBlock/BlockList/BlockList.php | 26 ++++++++ .../DisplayBlock}/DisplayBlockFactory.php | 2 +- sources/application/UI/tBlockParams.php | 60 +++++++++++++++++++ .../displayblock/blocklist/layout.html.twig | 25 ++++++++ .../displayblock/blocklist/layout.js.twig | 7 +++ 11 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 css/backoffice/specific/_all.scss create mode 100644 css/backoffice/specific/displayblock/_all.scss create mode 100644 css/backoffice/specific/displayblock/_blocklist.scss create mode 100644 sources/application/UI/Specific/DisplayBlock/BlockList/BlockList.php rename sources/application/UI/{Service => Specific/DisplayBlock}/DisplayBlockFactory.php (90%) create mode 100644 sources/application/UI/tBlockParams.php create mode 100644 templates/specific/displayblock/blocklist/layout.html.twig create mode 100644 templates/specific/displayblock/blocklist/layout.js.twig diff --git a/css/backoffice/main.scss b/css/backoffice/main.scss index 6cd0c4b07..53c1133ad 100644 --- a/css/backoffice/main.scss +++ b/css/backoffice/main.scss @@ -22,4 +22,5 @@ @import "components/all"; @import "layout/all"; @import "pages/all"; -@import "themes/all"; \ No newline at end of file +@import "specific/all"; +@import "themes/all"; diff --git a/css/backoffice/specific/_all.scss b/css/backoffice/specific/_all.scss new file mode 100644 index 000000000..7becb69fc --- /dev/null +++ b/css/backoffice/specific/_all.scss @@ -0,0 +1,6 @@ +/*! + * copyright Copyright (C) 2010-2020 Combodo SARL + * license http://opensource.org/licenses/AGPL-3.0 + */ + +@import "displayblock/all"; \ No newline at end of file diff --git a/css/backoffice/specific/displayblock/_all.scss b/css/backoffice/specific/displayblock/_all.scss new file mode 100644 index 000000000..a86cb3a4f --- /dev/null +++ b/css/backoffice/specific/displayblock/_all.scss @@ -0,0 +1,2 @@ + +@import "blocklist"; \ No newline at end of file diff --git a/css/backoffice/specific/displayblock/_blocklist.scss b/css/backoffice/specific/displayblock/_blocklist.scss new file mode 100644 index 000000000..2b1c120e8 --- /dev/null +++ b/css/backoffice/specific/displayblock/_blocklist.scss @@ -0,0 +1,4 @@ +/*! + * copyright Copyright (C) 2010-2020 Combodo SARL + * license http://opensource.org/licenses/AGPL-3.0 + */ diff --git a/lib/composer/autoload_classmap.php b/lib/composer/autoload_classmap.php index 4e0af6a17..3620b3697 100644 --- a/lib/composer/autoload_classmap.php +++ b/lib/composer/autoload_classmap.php @@ -147,7 +147,7 @@ return array( 'Combodo\\iTop\\Application\\Search\\CriterionConversion\\CriterionToSearchForm' => $baseDir . '/sources/application/search/criterionconversion/criteriontosearchform.class.inc.php', 'Combodo\\iTop\\Application\\Search\\CriterionParser' => $baseDir . '/sources/application/search/criterionparser.class.inc.php', 'Combodo\\iTop\\Application\\Search\\SearchForm' => $baseDir . '/sources/application/search/searchform.class.inc.php', - 'Combodo\\iTop\\Application\\Service\\DisplayBlockFactory' => $baseDir . '/sources/application/UI/Service/DisplayBlockFactory.php', + 'Combodo\\iTop\\Application\\Specific\\DisplayBlock\\DisplayBlockFactory' => $baseDir . '/sources/application/UI/Specific/DisplayBlock/DisplayBlockFactory.php', 'Combodo\\iTop\\Application\\TwigBase\\Controller\\Controller' => $baseDir . '/sources/application/TwigBase/Controller/Controller.php', 'Combodo\\iTop\\Application\\TwigBase\\Controller\\PageNotFoundException' => $baseDir . '/sources/application/TwigBase/Controller/Controller.php', 'Combodo\\iTop\\Application\\TwigBase\\Twig\\Extension' => $baseDir . '/sources/application/TwigBase/Twig/Extension.php', @@ -242,6 +242,7 @@ return array( 'Combodo\\iTop\\Application\\UI\\UIBlock' => $baseDir . '/sources/application/UI/UIBlock.php', 'Combodo\\iTop\\Application\\UI\\UIException' => $baseDir . '/sources/application/UI/UIException.php', 'Combodo\\iTop\\Application\\UI\\iUIBlock' => $baseDir . '/sources/application/UI/iUIBlock.php', + 'Combodo\\iTop\\Application\\UI\\tBlockParams' => $baseDir . '/sources/application/UI/tBlockParams.php', 'Combodo\\iTop\\Application\\UI\\tUIContentAreas' => $baseDir . '/sources/application/UI/tUIContentAreas.php', 'Combodo\\iTop\\Composer\\iTopComposer' => $baseDir . '/sources/Composer/iTopComposer.php', 'Combodo\\iTop\\Controller\\AjaxRenderController' => $baseDir . '/sources/Controller/AjaxRenderController.php', diff --git a/lib/composer/autoload_static.php b/lib/composer/autoload_static.php index 1d255c97a..ba7b0c059 100644 --- a/lib/composer/autoload_static.php +++ b/lib/composer/autoload_static.php @@ -377,7 +377,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Combodo\\iTop\\Application\\Search\\CriterionConversion\\CriterionToSearchForm' => __DIR__ . '/../..' . '/sources/application/search/criterionconversion/criteriontosearchform.class.inc.php', 'Combodo\\iTop\\Application\\Search\\CriterionParser' => __DIR__ . '/../..' . '/sources/application/search/criterionparser.class.inc.php', 'Combodo\\iTop\\Application\\Search\\SearchForm' => __DIR__ . '/../..' . '/sources/application/search/searchform.class.inc.php', - 'Combodo\\iTop\\Application\\Service\\DisplayBlockFactory' => __DIR__ . '/../..' . '/sources/application/UI/Service/DisplayBlockFactory.php', + 'Combodo\\iTop\\Application\\Specific\\DisplayBlock\\DisplayBlockFactory' => __DIR__ . '/../..' . '/sources/application/UI/Specific/DisplayBlock/DisplayBlockFactory.php', 'Combodo\\iTop\\Application\\TwigBase\\Controller\\Controller' => __DIR__ . '/../..' . '/sources/application/TwigBase/Controller/Controller.php', 'Combodo\\iTop\\Application\\TwigBase\\Controller\\PageNotFoundException' => __DIR__ . '/../..' . '/sources/application/TwigBase/Controller/Controller.php', 'Combodo\\iTop\\Application\\TwigBase\\Twig\\Extension' => __DIR__ . '/../..' . '/sources/application/TwigBase/Twig/Extension.php', @@ -472,6 +472,7 @@ class ComposerStaticInit0018331147de7601e7552f7da8e3bb8b 'Combodo\\iTop\\Application\\UI\\UIBlock' => __DIR__ . '/../..' . '/sources/application/UI/UIBlock.php', 'Combodo\\iTop\\Application\\UI\\UIException' => __DIR__ . '/../..' . '/sources/application/UI/UIException.php', 'Combodo\\iTop\\Application\\UI\\iUIBlock' => __DIR__ . '/../..' . '/sources/application/UI/iUIBlock.php', + 'Combodo\\iTop\\Application\\UI\\tBlockParams' => __DIR__ . '/../..' . '/sources/application/UI/tBlockParams.php', 'Combodo\\iTop\\Application\\UI\\tUIContentAreas' => __DIR__ . '/../..' . '/sources/application/UI/tUIContentAreas.php', 'Combodo\\iTop\\Composer\\iTopComposer' => __DIR__ . '/../..' . '/sources/Composer/iTopComposer.php', 'Combodo\\iTop\\Controller\\AjaxRenderController' => __DIR__ . '/../..' . '/sources/Controller/AjaxRenderController.php', diff --git a/sources/application/UI/Specific/DisplayBlock/BlockList/BlockList.php b/sources/application/UI/Specific/DisplayBlock/BlockList/BlockList.php new file mode 100644 index 000000000..4eac35e72 --- /dev/null +++ b/sources/application/UI/Specific/DisplayBlock/BlockList/BlockList.php @@ -0,0 +1,26 @@ +aParameters[$sName])) { + return $this->aParameters[$sName]; + } else { + return null; + } + } + + /** + * @param string $sName + * @param $value + */ + public function AddParameter(string $sName, $value) + { + $this->aParameters[$sName] = $value; + } + + /** + * @return array + */ + public function GetParameters(): array + { + return $this->aParameters; + } + + /** + * @param array $aParameters + */ + public function SetParameters(array $aParameters): void + { + $this->aParameters = $aParameters; + } + +} \ No newline at end of file diff --git a/templates/specific/displayblock/blocklist/layout.html.twig b/templates/specific/displayblock/blocklist/layout.html.twig new file mode 100644 index 000000000..caa593de0 --- /dev/null +++ b/templates/specific/displayblock/blocklist/layout.html.twig @@ -0,0 +1,25 @@ +{# @copyright Copyright (C) 2010-2020 Combodo SARL #} +{# @license http://opensource.org/licenses/AGPL-3.0 #} +{% apply spaceless %} + + {% if oUIBlock.GetParameter('bEmptySet') %} +

{{ 'UI:NoObjectToDisplay'|dict_s }}

+ {% endif %} + + {% if oUIBlock.GetParameter('bNotAuthorized') %} +

{{ 'UI:NoObjectToDisplay'|dict_s }}

+ {% endif %} + + {% if oUIBlock.GetParameter('bCreateNew') %} +

+ + {{ 'UI:ClickToCreateNew'|dict_format(oUIBlock.GetParameter('sClassName')) }} + +

+ {% endif %} + + {% for oSubBlock in oUIBlock.GetSubBlocks() %} + {{ render_block(oSubBlock, {aPage: aPage}) }} + {% endfor %} + +{% endapply %} \ No newline at end of file diff --git a/templates/specific/displayblock/blocklist/layout.js.twig b/templates/specific/displayblock/blocklist/layout.js.twig new file mode 100644 index 000000000..ba777adc7 --- /dev/null +++ b/templates/specific/displayblock/blocklist/layout.js.twig @@ -0,0 +1,7 @@ +{# @copyright Copyright (C) 2010-2020 Combodo SARL #} +{# @license http://opensource.org/licenses/AGPL-3.0 #} +{% apply spaceless %} + {% if oUIBlock.GetParameter('sEventAttachedData') is not empty %} + $('body').trigger('update_history.itop', [{{ oUIBlock.GetParameter('sEventAttachedData') }}]) + {% endif %} +{% endapply %} \ No newline at end of file