N°3123 - Create specific block for DisplayBlock(type: List)

This commit is contained in:
Eric
2020-11-26 16:50:58 +01:00
parent 9a595e3178
commit cf4e8c65d2
11 changed files with 137 additions and 4 deletions

View File

@@ -22,4 +22,5 @@
@import "components/all";
@import "layout/all";
@import "pages/all";
@import "themes/all";
@import "specific/all";
@import "themes/all";

View File

@@ -0,0 +1,6 @@
/*!
* copyright Copyright (C) 2010-2020 Combodo SARL
* license http://opensource.org/licenses/AGPL-3.0
*/
@import "displayblock/all";

View File

@@ -0,0 +1,2 @@
@import "blocklist";

View File

@@ -0,0 +1,4 @@
/*!
* copyright Copyright (C) 2010-2020 Combodo SARL
* license http://opensource.org/licenses/AGPL-3.0
*/

View File

@@ -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',

View File

@@ -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',

View File

@@ -0,0 +1,26 @@
<?php
/**
* @copyright Copyright (C) 2010-2020 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\Application\UI\Specific\DisplayBlock\BlockList;
use Combodo\iTop\Application\UI\Layout\UIContentBlock;
use Combodo\iTop\Application\UI\tBlockParams;
/**
* Class BlockList
*
* @package Combodo\iTop\Application\UI\Specific\DisplayBlock\BlockList
*/
class BlockList extends UIContentBlock
{
// Overloaded constants
public const BLOCK_CODE = 'ibo-blocklist';
public const HTML_TEMPLATE_REL_PATH = 'specific/displayblock/blocklist/layout';
public const JS_TEMPLATE_REL_PATH = 'specific/displayblock/blocklist/layout';
use tBlockParams;
}

View File

@@ -5,7 +5,7 @@
*/
namespace Combodo\iTop\Application\Service;
namespace Combodo\iTop\Application\Specific\DisplayBlock;
use Combodo\iTop\Application\UI\iUIBlock;

View File

@@ -0,0 +1,60 @@
<?php
/**
* @copyright Copyright (C) 2010-2020 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\Application\UI;
/**
* Trait tBlockParams
*
* Add generic parameters to blocks
*
* @package Combodo\iTop\Application\UI
*/
trait tBlockParams
{
/** @var array */
protected $aParameters;
/**
* @param string $sName
*
* @return mixed|null
*/
public function GetParameter(string $sName)
{
if (isset($this->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;
}
}

View File

@@ -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') %}
<p>{{ 'UI:NoObjectToDisplay'|dict_s }}</p>
{% endif %}
{% if oUIBlock.GetParameter('bNotAuthorized') %}
<p>{{ 'UI:NoObjectToDisplay'|dict_s }}</p>
{% endif %}
{% if oUIBlock.GetParameter('bCreateNew') %}
<p>
<a{{ oUIBlock.GetParameter('sLinkTarget') }} href="{{ oUIBlock.GetParameter('sAbsoluteUrlAppRoot') }}pages/UI.php?operation=new&class={{ oUIBlock.GetParameter('sClass') }}&{{ oUIBlock.GetParameter('sParams') }}{{ oUIBlock.GetParameter('sDefault') }}">
{{ 'UI:ClickToCreateNew'|dict_format(oUIBlock.GetParameter('sClassName')) }}
</a>
</p>
{% endif %}
{% for oSubBlock in oUIBlock.GetSubBlocks() %}
{{ render_block(oSubBlock, {aPage: aPage}) }}
{% endfor %}
{% endapply %}

View File

@@ -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 %}