Portal: Fixes on ManageBrick routes and display modes.

SVN:trunk[5860]
This commit is contained in:
Guillaume Lajarige
2018-06-13 15:21:45 +00:00
parent ee43a365dc
commit 0727c9774b
12 changed files with 108 additions and 87 deletions

View File

@@ -108,9 +108,9 @@ Dict::Add('EN US', 'English', 'English', array(
'Brick:Portal:Manage:Name' => 'Manage items',
'Brick:Portal:Manage:Table:NoData' => 'No item.',
'Brick:Portal:Manage:Table:ItemActions' => 'Actions',
'Brick:Portal:Manage:DisplayType:pie-chart' => 'Pie Chart',
'Brick:Portal:Manage:DisplayType:bar-chart' => 'Bar Chart',
'Brick:Portal:Manage:DisplayType:default' => 'List',
'Brick:Portal:Manage:DisplayMode:pie-chart' => 'Pie Chart',
'Brick:Portal:Manage:DisplayMode:bar-chart' => 'Bar Chart',
'Brick:Portal:Manage:DisplayMode:default' => 'List',
'Brick:Portal:Manage:Others' => 'Others',
'Brick:Portal:Manage:All' => 'All',
'Brick:Portal:Manage:Group' => 'Group',

View File

@@ -108,9 +108,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Brick:Portal:Manage:Name' => 'Gestion d\'éléments',
'Brick:Portal:Manage:Table:NoData' => 'Aucun élément',
'Brick:Portal:Manage:Table:ItemActions' => 'Actions',
'Brick:Portal:Manage:DisplayType:pie-chart' => 'Secteur',
'Brick:Portal:Manage:DisplayType:bar-chart' => 'Histogramme',
'Brick:Portal:Manage:DisplayType:default' => 'Liste',
'Brick:Portal:Manage:DisplayMode:pie-chart' => 'Secteur',
'Brick:Portal:Manage:DisplayMode:bar-chart' => 'Histogramme',
'Brick:Portal:Manage:DisplayMode:default' => 'Liste',
'Brick:Portal:Manage:Others' => 'Autres',
'Brick:Portal:Manage:All' => 'Total',
'Brick:Portal:Manage:Group' => 'Groupe',

View File

@@ -54,7 +54,7 @@ class ManageBrickController extends BrickController
* @param \Symfony\Component\HttpFoundation\Request $oRequest
* @param \Silex\Application $oApp
* @param string $sBrickId
* @param string $sDisplayType
* @param string $sDisplayMode
* @param string $sGroupingTab
* @param string $sDataLoading
*
@@ -65,21 +65,21 @@ class ManageBrickController extends BrickController
* @throws \MySQLException
* @throws \OQLException
*/
public function DisplayAction(Request $oRequest, Application $oApp, $sBrickId, $sGroupingTab, $sDisplayType = null, $sDataLoading = null)
public function DisplayAction(Request $oRequest, Application $oApp, $sBrickId, $sGroupingTab, $sDisplayMode = null, $sDataLoading = null)
{
/** @var ManageBrick $oBrick */
$oBrick = ApplicationHelper::GetLoadedBrickFromId($oApp, $sBrickId);
if (is_null($sDisplayType))
if (is_null($sDisplayMode))
{
$sDisplayType = $oBrick->GetDisplayType();
$sDisplayMode = $oBrick->GetDisplayMode();
}
$aDisplayParams = $oBrick->GetPresentationDataForDisplayType($sDisplayType);
$aDisplayParams = $oBrick->GetPresentationDataForDisplayMode($sDisplayMode);
$aData = $this->GetData($oRequest, $oApp, $sBrickId, $sGroupingTab, $aDisplayParams['need_details']);
$aExportFields = $oBrick->GetExportFields();
$aData = $aData + array(
'sDisplayType' => $sDisplayType,
'sDisplayMode' => $sDisplayMode,
'bCanExport' => !empty($aExportFields),
);
// Preparing response
@@ -701,7 +701,7 @@ class ManageBrickController extends BrickController
);
$aUrls[] = $oApp['url_generator']->generate('p_manage_brick', array(
'sBrickId' => $sBrickId,
'sDisplayType' => 'default',
'sDisplayMode' => 'default',
'sGroupingTab' => $aValues['value']
));
}

View File

@@ -30,29 +30,37 @@ use Combodo\iTop\Portal\Brick\PortalBrick;
*/
class BrowseBrick extends PortalBrick
{
const DEFAULT_DECORATION_CLASS_HOME = 'fa fa-map';
const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fa fa-map fa-2x';
const ENUM_BROWSE_MODE_LIST = 'list';
const ENUM_BROWSE_MODE_TREE = 'tree';
const ENUM_BROWSE_MODE_MOSAIC = 'mosaic';
const ENUM_ACTION_VIEW = 'view';
const ENUM_ACTION_EDIT = 'edit';
const ENUM_ACTION_DRILLDOWN = 'drilldown';
const ENUM_ACTION_CREATE_FROM_THIS = 'create_from_this';
const ENUM_ACTION_ICON_CLASS_VIEW = 'glyphicon glyphicon-list-alt';
const ENUM_ACTION_ICON_CLASS_EDIT = 'glyphicon glyphicon-pencil';
const ENUM_ACTION_ICON_CLASS_DRILLDOWN = 'glyphicon glyphicon-menu-down';
const ENUM_ACTION_ICON_CLASS_CREATE_FROM_THIS = 'glyphicon glyphicon-edit';
const ENUM_FACTORY_TYPE_METHOD = 'method';
const ENUM_FACTORY_TYPE_CLASS = 'class';
const DEFAULT_DATA_LOADING = self::ENUM_DATA_LOADING_FULL;
const DEFAULT_DECORATION_CLASS_HOME = 'fa fa-map';
const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fa fa-map fa-2x';
const DEFAULT_DATA_LOADING = self::ENUM_DATA_LOADING_FULL;
const DEFAULT_LEVEL_NAME_ATT = 'name';
const DEFAULT_BROWSE_MODE = self::ENUM_BROWSE_MODE_LIST;
const DEFAULT_ACTION = self::ENUM_ACTION_DRILLDOWN;
const DEFAULT_ACTION_OPENING_TARGET = self::ENUM_OPENING_TARGET_MODAL;
const DEFAULT_LIST_LENGTH = 20;
static $aBrowseModes = array(self::ENUM_BROWSE_MODE_LIST, self::ENUM_BROWSE_MODE_TREE, self::ENUM_BROWSE_MODE_MOSAIC);
static $aBrowseModes = array(
self::ENUM_BROWSE_MODE_LIST,
self::ENUM_BROWSE_MODE_TREE,
self::ENUM_BROWSE_MODE_MOSAIC
);
static $sRouteName = 'p_browse_brick';

View File

@@ -1,6 +1,6 @@
<?php
// Copyright (C) 2010-2017 Combodo SARL
// Copyright (C) 2010-2018 Combodo SARL
//
// This file is part of iTop.
//
@@ -25,17 +25,21 @@ use DBSearch;
use DOMFormatException;
use MetaModel;
define('MANAGE_BRICK_LAYOUT_PATH', 'itop-portal-base/portal/src/views/bricks/manage/');
class ManageBrick extends PortalBrick
{
const ENUM_ACTION_VIEW = 'view';
const ENUM_ACTION_EDIT = 'edit';
const DEFAULT_DECORATION_CLASS_HOME = 'fa fa-pencil-square';
const ENUM_DISPLAY_MODE_TABLE = 'default';
const ENUM_DISPLAY_MODE_PIE = 'pie-chart';
const ENUM_DISPLAY_MODE_BAR = 'bar-chart';
const ENUM_PAGE_TEMPLATE_PATH_TABLE = 'itop-portal-base/portal/src/views/bricks/manage/layout-table.html.twig';
const ENUM_PAGE_TEMPLATE_PATH_CHART = 'itop-portal-base/portal/src/views/bricks/manage/layout-chart.html.twig';
const DEFAULT_DECORATION_CLASS_HOME = 'fa fa-pencil-square';
const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fa fa-pencil-square fa-2x';
const DEFAULT_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/src/views/bricks/manage/layout-table.html.twig';
const CHART_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/src/views/bricks/manage/layout-chart.html.twig';
const DEFAULT_PAGE_TEMPLATE_PATH = self::ENUM_PAGE_TEMPLATE_PATH_TABLE;
const DEFAULT_OQL = '';
const DEFAULT_OPENING_MODE = self::ENUM_ACTION_EDIT;
const DEFAULT_DATA_LOADING = self::ENUM_DATA_LOADING_LAZY;
@@ -46,7 +50,14 @@ class ManageBrick extends PortalBrick
const DEFAULT_TILE_TEMPLATE_PATH = 'itop-portal-base/portal/src/views/bricks/manage/tile-default.html.twig';
const DEFAULT_TILE_CONTROLLER_ACTION = 'Combodo\\iTop\\Portal\\Controller\\ManageBrickController::TileAction';
static $aDisplayModes = array(
self::ENUM_DISPLAY_MODE_TABLE,
self::ENUM_DISPLAY_MODE_PIE,
self::ENUM_DISPLAY_MODE_BAR,
);
static $sRouteName = 'p_manage_brick';
protected $sOql;
protected $sOpeningMode;
protected $aGrouping;
@@ -56,7 +67,7 @@ class ManageBrick extends PortalBrick
/**
* @var string default display mode for the brick's tile
*/
protected $sDisplayType;
protected $sDisplayMode;
protected $iGroupLimit;
protected $bGroupShowOthers;
@@ -64,48 +75,40 @@ class ManageBrick extends PortalBrick
'badge' => array(
'decorationCssClass' => 'fa fa-id-card-o fa-2x',
'tileTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/tile-badge.html.twig',
'layoutTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/layout-table.html.twig',
'layoutDisplayType' => ManageBrick::DISPLAY_MODE_TABLE,
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_TABLE,
'need_details' => true,
),
'top-list' => array(
'decorationCssClass' => 'fa fa-signal fa-rotate-270 fa-2x',
'tileTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/tile-top-list.html.twig',
'layoutTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/layout-table.html.twig',
'layoutDisplayType' => ManageBrick::DISPLAY_MODE_TABLE,
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_TABLE,
'need_details' => true,
),
'pie-chart' => array(
'decorationCssClass' => 'fa fa-pie-chart fa-2x',
'tileTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/tile-chart.html.twig',
'layoutTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/layout-chart.html.twig',
'layoutDisplayType' => ManageBrick::DISPLAY_MODE_PIE,
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_CHART,
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_PIE,
'need_details' => false,
),
'bar-chart' => array(
'decorationCssClass' => 'fa fa-bar-chart fa-2x',
'tileTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/tile-chart.html.twig',
'layoutTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/layout-chart.html.twig',
'layoutDisplayType' => ManageBrick::DISPLAY_MODE_BAR,
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_CHART,
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_BAR,
'need_details' => false,
),
'default' => array(
'decorationCssClass' => 'fa fa-pencil-square fa-2x',
'tileTemplate' => self::DEFAULT_TILE_TEMPLATE_PATH,
'layoutTemplate' => 'itop-portal-base/portal/src/views/bricks/manage/layout-table.html.twig',
'layoutDisplayType' => ManageBrick::DISPLAY_MODE_TABLE,
'layoutTemplate' => self::ENUM_PAGE_TEMPLATE_PATH_TABLE,
'layoutDisplayMode' => self::ENUM_DISPLAY_MODE_TABLE,
'need_details' => true,
),
);
protected $aAvailableDisplayModes = array();
const DISPLAY_MODE_TABLE = 'default';
const DISPLAY_MODE_PIE = 'pie-chart';
const DISPLAY_MODE_BAR = 'bar-chart';
const DISPLAY_MODES_ALLOWED = array(
ManageBrick::DISPLAY_MODE_TABLE,
ManageBrick::DISPLAY_MODE_PIE,
ManageBrick::DISPLAY_MODE_BAR
);
public function __construct()
{
@@ -185,29 +188,29 @@ class ManageBrick extends PortalBrick
/**
* @return string
*/
public function GetDisplayType()
public function GetDisplayMode()
{
return $this->sDisplayType;
return $this->sDisplayMode;
}
/**
* @param string $sDisplayType
* @param string $sDisplayMode
*/
public function SetDisplayType($sDisplayType)
public function SetDisplayMode($sDisplayMode)
{
$this->sDisplayType = $sDisplayType;
$this->sDisplayMode = $sDisplayMode;
}
/**
* @param string $sDisplayType
* @param string $sDisplayMode
*
* @return string[] parameters for specified type, default parameters if type is invalid
*/
public function GetPresentationDataForDisplayType($sDisplayType)
public function GetPresentationDataForDisplayMode($sDisplayMode)
{
if (isset($this->aPresentationData[$sDisplayType]))
if (isset($this->aPresentationData[$sDisplayMode]))
{
return $this->aPresentationData[$sDisplayType];
return $this->aPresentationData[$sDisplayMode];
}
return $this->aPresentationData['default'];
@@ -495,7 +498,7 @@ class ManageBrick extends PortalBrick
public function LoadFromXml(DesignElement $oMDElement)
{
parent::LoadFromXml($oMDElement);
$this->sDisplayType = 'default';
$this->sDisplayMode = 'default';
$this->iGroupLimit = 0;
$this->bGroupShowOthers = true;
$bUseListFieldsForExport = false;
@@ -509,7 +512,7 @@ class ManageBrick extends PortalBrick
$sClass = $oBrickSubNode->GetText();
if ($sClass === '')
{
throw new DOMFormatException('ManageBrick : class tag is empty. Must contain Classname', null,
throw new DOMFormatException('ManageBrick: class tag is empty. Must contain Classname', null,
null, $oBrickSubNode);
}
@@ -520,7 +523,7 @@ class ManageBrick extends PortalBrick
$sOql = $oBrickSubNode->GetText();
if ($sOql === '')
{
throw new DOMFormatException('ManageBrick : oql tag is empty. Must contain OQL statement', null,
throw new DOMFormatException('ManageBrick: oql tag is empty. Must contain OQL statement', null,
null, $oBrickSubNode);
}
@@ -531,7 +534,7 @@ class ManageBrick extends PortalBrick
$sOpeningMode = $oBrickSubNode->GetText(static::DEFAULT_OPENING_MODE);
if (!in_array($sOpeningMode, array(static::ENUM_ACTION_VIEW, static::ENUM_ACTION_EDIT)))
{
throw new DOMFormatException('ManageBrick : opening_mode tag value must be edit|view ("'.$sOpeningMode.'" given)',
throw new DOMFormatException('ManageBrick: opening_mode tag value must be edit|view ("'.$sOpeningMode.'" given)',
null, null, $oBrickSubNode);
}
@@ -548,14 +551,14 @@ class ManageBrick extends PortalBrick
{
if (!$oModeNode->hasAttribute('id'))
{
throw new DOMFormatException('ManageBrick : display mode must have a unique ID attribute',
throw new DOMFormatException('ManageBrick: Display mode must have a unique ID attribute',
null, null, $oModeNode);
}
$sModeId = $oModeNode->getAttribute('id');
if (!in_array($sModeId, ManageBrick::DISPLAY_MODES_ALLOWED))
if (!in_array($sModeId, static::$aDisplayModes))
{
throw new DOMFormatException('ManageBrick : display mode has an invalid value',
throw new DOMFormatException('ManageBrick: Display mode has an invalid value. Expected '.implode('/', static::$aDisplayModes.', "'.$sModeId.'" given.'),
null, null, $oModeNode);
}
@@ -564,8 +567,8 @@ class ManageBrick extends PortalBrick
break;
case 'default';
$this->sDisplayType = $oDisplayNode->nodeValue;
$aDisplayParameterForType = $this->GetPresentationDataForDisplayType($this->sDisplayType);
$this->sDisplayMode = $oDisplayNode->nodeValue;
$aDisplayParameterForType = $this->GetPresentationDataForDisplayMode($this->sDisplayMode);
$this->SetTileTemplatePath($aDisplayParameterForType['tileTemplate']);
$this->SetPageTemplatePath($aDisplayParameterForType['layoutTemplate']);
break;
@@ -693,8 +696,8 @@ class ManageBrick extends PortalBrick
}
// Display modes : at least one selected
$sDefaultDetailDisplayMode = (isset($this->sDisplayType))
? $this->aPresentationData[$this->sDisplayType]['layoutDisplayType']
$sDefaultDetailDisplayMode = (isset($this->sDisplayMode))
? $this->aPresentationData[$this->sDisplayMode]['layoutDisplayMode']
: 'default';
$bHasAvailableDisplayModes = (count($this->GetAvailablesDisplayModes()) > 0);
$bIsDefaultDisplayModeInAvailableModes = in_array($sDefaultDetailDisplayMode,
@@ -725,9 +728,9 @@ class ManageBrick extends PortalBrick
// Checking the navigation icon
$sDecorationClassNavigationMenu = $this->GetDecorationClassNavigationMenu();
if (empty($sDecorationClassNavigationMenu) && isset($this->aPresentationData[$this->sDisplayType]))
if (empty($sDecorationClassNavigationMenu) && isset($this->aPresentationData[$this->sDisplayMode]))
{
$sDecorationClassNavigationMenu = $this->aPresentationData[$this->sDisplayType]['decorationCssClass'];
$sDecorationClassNavigationMenu = $this->aPresentationData[$this->sDisplayMode]['decorationCssClass'];
if (!empty($sDecorationClassNavigationMenu))
{
$this->SetDecorationClassNavigationMenu($sDecorationClassNavigationMenu);

View File

@@ -22,19 +22,29 @@ namespace Combodo\iTop\Portal\Router;
class ManageBrickRouter extends AbstractRouter
{
static $aRoutes = array(
array(
'pattern' => '/manage/{sBrickId}/{sGroupingTab}/{sDisplayType}',
'callback' => 'Combodo\\iTop\\Portal\\Controller\\ManageBrickController::DisplayAction',
'bind' => 'p_manage_brick',
'asserts' => array(
'sDisplayType' => 'badge|pie-chart|bar-chart|top-list|default'
),
'values' => array(
'sDisplayType' => 'default',
'sGroupingTab' => null,
)
),
array(
array(
'pattern' => '/manage/{sBrickId}/{sGroupingTab}',
'callback' => 'Combodo\\iTop\\Portal\\Controller\\ManageBrickController::DisplayAction',
'bind' => 'p_manage_brick',
'asserts' => array(),
'values' => array(
'sDisplayMode' => 'default',
'sGroupingTab' => null,
)
),
array(
'pattern' => '/manage/{sBrickId}/display-as/{sDisplayMode}/{sGroupingTab}',
'callback' => 'Combodo\\iTop\\Portal\\Controller\\ManageBrickController::DisplayAction',
'bind' => 'p_manage_brick_display_as',
'asserts' => array(
'sDisplayMode' => 'badge|pie-chart|bar-chart|top-list|default'
),
'values' => array(
'sDisplayMode' => 'default',
'sGroupingTab' => null,
)
),
array(
'pattern' => '/manage/{sBrickId}/{sGroupingTab}/{sGroupingArea}/page/{iPageNumber}/show/{iListLength}',
'callback' => 'Combodo\\iTop\\Portal\\Controller\\ManageBrickController::DisplayAction',
'bind' => 'p_manage_brick_lazy',

View File

@@ -8,7 +8,7 @@
{% block pMainContentHolder %}
<div class="panel panel-default">
<div class="panel-body">
{% include 'itop-portal-base/portal/src/views/bricks/manage/mode-' ~ sDisplayType ~ '.html.twig' with {'oBrick': oBrick, 'aColumns': aColumns, 'aNames': aNames, 'aUrls': aUrls, 'aDisplayValues': aDisplayValues} %}
{% include 'itop-portal-base/portal/src/views/bricks/manage/mode-' ~ sDisplayMode ~ '.html.twig' with {'oBrick': oBrick, 'aColumns': aColumns, 'aNames': aNames, 'aUrls': aUrls, 'aDisplayValues': aDisplayValues} %}
</div>
</div>
{% endblock %}

View File

@@ -9,7 +9,7 @@
<ul class="nav nav-pills grouping_tabs">
{% for aGroupingTab in aGroupingTabsValues %}
<li{% if sGroupingTab is defined and sGroupingTab == aGroupingTab.value %} class="active"{% endif %}>
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayType': 'default', 'sGroupingTab': aGroupingTab.value}) }}"
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayMode': 'default', 'sGroupingTab': aGroupingTab.value}) }}"
id="btn_tab_for_{{ aGroupingTab.value }}">
{{ aGroupingTab.label|raw }}
{% if oBrick.GetShowTabCounts() %}

View File

@@ -7,10 +7,10 @@
{% if oBrick.GetAvailablesDisplayModes|length > 1 %}
<div class="btn-group btn_group_explicit">
{% for sDisplay in oBrick.GetAvailablesDisplayModes %}
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayType': sDisplay}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayMode': sDisplay}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
id="btn_tab_for_{{ sDisplay }}"
class="btn btn-default {% if sDisplay == oBrick.GetPresentationDataForDisplayType(sDisplayType).layoutDisplayType %}active{% endif %}">
{{ ('Brick:Portal:Manage:DisplayType:' ~ sDisplay)|dict_s }}
class="btn btn-default {% if sDisplay == oBrick.GetPresentationDataForDisplayMode(sDisplayMode).layoutDisplayMode %}active{% endif %}">
{{ ('Brick:Portal:Manage:DisplayMode:' ~ sDisplay)|dict_s }}
</a>
{% endfor %}
</div>

View File

@@ -3,7 +3,7 @@
<div class="col-xs-12 col-sm-{{ oBrick.GetWidth }} tile-badge">
{% block pTileWrapper %}
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayType': oBrick.GetDisplayType}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
<a href="{{ app.url_generator.generate('p_manage_brick_display_as', {'sBrickId': sBrickId, 'sDisplayMode': oBrick.GetDisplayMode}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] is defined %}{% for key, value in app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] %} {{ key }}="{{ value }}"{% endfor %}{% endif %}
{% if oBrick.GetModal %}data-toggle="modal" data-target="#modal-for-all"{% endif %}
class="tile{# vertical-center#}"

View File

@@ -3,16 +3,16 @@
<div class="col-xs-12 col-sm-{{ oBrick.GetWidth }} tile-chart">
{% block pTileWrapper %}
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayType': oBrick.GetDisplayType}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
<a href="{{ app.url_generator.generate('p_manage_brick_display_as', {'sBrickId': sBrickId, 'sDisplayMode': oBrick.GetDisplayMode}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] is defined %}{% for key, value in app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] %} {{ key }}="{{ value }}"{% endfor %}{% endif %}
{% if oBrick.GetModal %}data-toggle="modal" data-target="#modal-for-all"{% endif %}
class="tile{# vertical-center#}"
id="brick-{{ oBrick.GetId }}"
data-brick-id="{{ oBrick.GetId }}">
<div>
<div class="tile_title"><span class="icon fa fa-{{ oBrick.GetDisplayType }}"></span> {{ oBrick.GetTitle()|dict_s }}
<div class="tile_title"><span class="icon fa fa-{{ oBrick.GetDisplayMode }}"></span> {{ oBrick.GetTitle()|dict_s }}
({{ iCount }})</span> </div>
{% include 'itop-portal-base/portal/src/views/bricks/manage/mode-' ~ oBrick.GetDisplayType ~ '.html.twig' with {'oBrick': oBrick, 'aColumns': aColumns, 'aNames': aNames, 'aUrls': aUrls, 'aDisplayValues': aDisplayValues} %}
{% include 'itop-portal-base/portal/src/views/bricks/manage/mode-' ~ oBrick.GetDisplayMode ~ '.html.twig' with {'oBrick': oBrick, 'aColumns': aColumns, 'aNames': aNames, 'aUrls': aUrls, 'aDisplayValues': aDisplayValues} %}
</div>
</a>
{% endblock %}

View File

@@ -3,7 +3,7 @@
<div class="col-xs-12 col-sm-{{ oBrick.GetWidth }}">
{% block pTileWrapper %}
<a href="{{ app.url_generator.generate('p_manage_brick', {'sBrickId': sBrickId, 'sDisplayType': oBrick.GetDisplayType}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
<a href="{{ app.url_generator.generate('p_manage_brick_display_as', {'sBrickId': sBrickId, 'sDisplayMode': oBrick.GetDisplayMode}) }}{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] is defined %}#{{ app['combodo.portal.instance.routes'][oBrick.GetRouteName]['hash'] }}{% endif %}"
{% if app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] is defined %}{% for key, value in app['combodo.portal.instance.routes'][oBrick.GetRouteName]['navigation_menu_attr'] %} {{ key }}="{{ value }}"{% endfor %}{% endif %}
{% if oBrick.GetModal %}data-toggle="modal" data-target="#modal-for-all"{% endif %}
class="tile{# vertical-center#}"