From 28fa99d976fd41d1c5365b0e41fba3a10ffd7145 Mon Sep 17 00:00:00 2001 From: Guillaume Lajarige Date: Thu, 6 Oct 2016 07:13:33 +0000 Subject: [PATCH] (Retrofit from trunk) #1334 Portal : Sorting objects on BrowseBrick regarding the all classes' default order and not the first class' order only. (For example the services catalog might appear as sorted on the first column but not the second one) SVN:2.3[4446] --- .../src/controllers/browsebrickcontroller.class.inc.php | 5 ++++- .../src/controllers/managebrickcontroller.class.inc.php | 1 + .../portal/src/views/bricks/browse/mode_list.html.twig | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php index 03530bbfc..b2881c8b9 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/browsebrickcontroller.class.inc.php @@ -281,7 +281,10 @@ class BrowseBrickController extends BrickController } } $oSet->OptimizeColumnLoad($aColumnAttrs); - + + // Sorting objects through defined order (in DM) + $oSet->SetOrderByClasses(); + // Retrieving results and organizing them for templating $aItems = array(); while ($aCurrentRow = $oSet->FetchAssoc()) diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php index ab3d01140..7352d8e43 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/managebrickcontroller.class.inc.php @@ -326,6 +326,7 @@ class ManageBrickController extends BrickController $oSet = new DBObjectSet($oQuery); } $oSet->OptimizeColumnLoad(array($oQuery->GetClassAlias() => $aColumnsAttrs)); + $oSet->SetOrderByClasses(); $aSets[$sKey] = $oSet; } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/views/bricks/browse/mode_list.html.twig b/datamodels/2.x/itop-portal-base/portal/src/views/bricks/browse/mode_list.html.twig index b6b559ca3..b219ace24 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/views/bricks/browse/mode_list.html.twig +++ b/datamodels/2.x/itop-portal-base/portal/src/views/bricks/browse/mode_list.html.twig @@ -239,6 +239,7 @@ "displayLength": {{ constant('Combodo\\iTop\\Portal\\Brick\\BrowseBrick::DEFAULT_COUNT_PER_PAGE_LIST') }}, "dom": '<"row"<"col-sm-6"l><"col-sm-6"<"visible-xs"p>>>t<"row"<"col-sm-6"i><"col-sm-6"p>>', "columns": getColumnsDefinition(), + "order": [], "drawCallback": function(settings){ // Tooltip has to been created here, as the render callback only returns a string, not an object. $(this).find('[data-toggle="tooltip"]').tooltip({container: 'body', html: true, trigger: 'hover', placement: 'right'}); // container option is necessary when in a table