From 82cf7776caa60a8ef5dc9fc567040401afca4bf7 Mon Sep 17 00:00:00 2001
From: Denis Flaven
Date: Tue, 24 Jul 2012 15:15:36 +0000
Subject: [PATCH] Customizable tables implementation, beta version done.
SVN:trunk[2130]
---
application/cmdbabstract.class.inc.php | 13 +++++--
application/dashlet.class.inc.php | 1 +
application/datatable.class.inc.php | 6 ++--
application/displayblock.class.inc.php | 9 +++++
application/menunode.class.inc.php | 41 ++++++++---------------
application/ui.extkeywidget.class.inc.php | 2 +-
application/ui.linkswidget.class.inc.php | 2 +-
7 files changed, 40 insertions(+), 34 deletions(-)
diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php
index 81fe02719..555ba51f8 100644
--- a/application/cmdbabstract.class.inc.php
+++ b/application/cmdbabstract.class.inc.php
@@ -296,7 +296,8 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
'object_id' => $this->GetKey(),
'menu' => true,
'default' => $aDefaults,
- );
+ 'table_id' => $sClass.'_'.$sAttCode,
+ );
$oBlock = new DisplayBlock($oFilter, 'list', false);
$oBlock->Display($oPage, $sInputId, $aParams);
@@ -341,7 +342,8 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
'object_id' => $this->GetKey(),
'menu' => false,
'default' => $aDefaults,
- );
+ 'table_id' => $sClass.'_'.$sAttCode,
+ );
}
else
{
@@ -357,6 +359,7 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
'view_link' => false,
'menu' => false,
'display_limit' => true, // By default limit the list to speed up the initial load & display
+ 'table_id' => $sClass.'_'.$sAttCode,
);
}
$oPage->p(MetaModel::GetClassIcon($sTargetClass)." ".$oAttDef->GetDescription());
@@ -1369,6 +1372,12 @@ abstract class cmdbAbstractObject extends CMDBObject implements iDisplay
}
$sHtml .= "
\n";
$sHtml .= "\n";
+ if (isset($aExtraParams['table_id']))
+ {
+ // Rename to avoid collisions...
+ $aExtraParams['_table_id_'] = $aExtraParams['table_id'];
+ unset($aExtraParams['table_id']);
+ }
foreach($aExtraParams as $sName => $sValue)
{
$sHtml .= "\n";
diff --git a/application/dashlet.class.inc.php b/application/dashlet.class.inc.php
index 4ac8fd842..05930d348 100644
--- a/application/dashlet.class.inc.php
+++ b/application/dashlet.class.inc.php
@@ -343,6 +343,7 @@ class DashletObjectList extends Dashlet
$oBlock = new DisplayBlock($oFilter, 'list');
$aExtraParams = array(
'menu' => $sShowMenu,
+ 'table_id' => 'Dashlet'.$this->sId,
);
$sBlockId = 'block_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM)
$oBlock->Display($oPage, $sBlockId, $aExtraParams);
diff --git a/application/datatable.class.inc.php b/application/datatable.class.inc.php
index 2ecd0bfa2..899716ae0 100644
--- a/application/datatable.class.inc.php
+++ b/application/datatable.class.inc.php
@@ -95,7 +95,7 @@ class DataTable
$sToolkitMenu = $this->GetToolkitMenu($oPage, $aExtraParams);
}
$sDataTable = $this->GetHTMLTable($oPage, $aColumns, $sSelectMode, $iPageSize, $bViewLink, $aExtraParams);
- $sConfigDlg = $this->GetTableConfigDlg($oPage, $aColumns, $bViewLink);
+ $sConfigDlg = $this->GetTableConfigDlg($oPage, $aColumns, $bViewLink, $iDefaultPageSize);
$sHtml = "iListId}\" class=\"datatable\">\n";
$sHtml .= "| $sObjectsCount |
\n";
@@ -244,7 +244,7 @@ EOF;
return $sHtml;
}
- protected function GetTableConfigDlg(WebPage $oPage, $aColumns, $bViewLink)
+ protected function GetTableConfigDlg(WebPage $oPage, $aColumns, $bViewLink, $iDefaultPageSize)
{
$sHtml = "iListId}\" style=\"display: none;\">";
$sHtml .= "