From ff44fcdfe04ed236393468daf39455ed1565b2f6 Mon Sep 17 00:00:00 2001 From: acognet Date: Thu, 28 Jan 2021 11:02:56 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B0331=20-=20L'ordre=20de=20tri=20des=20tic?= =?UTF-8?q?kets=20change=20au=20rechargement=20auto=20-=20add=20ability=20?= =?UTF-8?q?to=20give=20to=20Menu=20how=20to=20refresh=20the=20panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/displayblock.class.inc.php | 4 ++-- .../application/UI/Base/Component/DataTable/DataTable.php | 5 +++++ .../UI/Base/Component/DataTable/DataTableUIBlockFactory.php | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/application/displayblock.class.inc.php b/application/displayblock.class.inc.php index 49f6d6a29..5d0b66529 100644 --- a/application/displayblock.class.inc.php +++ b/application/displayblock.class.inc.php @@ -1727,7 +1727,7 @@ class MenuBlock extends DisplayBlock } $sClass = $this->m_oFilter->GetClass(); $oSet = new CMDBObjectSet($this->m_oFilter); - $sRefreshAction = ''; + $sRefreshAction = $aExtraParams['sRefreshAction']??''; $aActions = []; if ((!isset($aExtraParams['selection_mode']) || $aExtraParams['selection_mode'] == "") && $this->m_sStyle != 'listInObject') { $oAppContext = new ApplicationContext(); @@ -1780,7 +1780,7 @@ class MenuBlock extends DisplayBlock } } else { $id = $oObj->GetKey(); - if (utils::ReadParam('operation') == 'details') { + if (empty($sRefreshAction) && utils::ReadParam('operation') == 'details') { if ($_SERVER['REQUEST_METHOD'] == 'GET') { $sRefreshAction = "window.location.reload();"; } else { diff --git a/sources/application/UI/Base/Component/DataTable/DataTable.php b/sources/application/UI/Base/Component/DataTable/DataTable.php index c575670ac..fc5413672 100644 --- a/sources/application/UI/Base/Component/DataTable/DataTable.php +++ b/sources/application/UI/Base/Component/DataTable/DataTable.php @@ -158,4 +158,9 @@ class DataTable extends UIContentBlock { $this->aOptions = $aOptions; } + + public function GetJSRefresh():array{ + return ["$('#".$this->sId."').DataTable().clearPipeline(); + $('#".$this->sId."').DataTable().ajax.reload(null, false);"]; + } } diff --git a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php index c6f5b9065..004d6125b 100644 --- a/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php +++ b/sources/application/UI/Base/Component/DataTable/DataTableUIBlockFactory.php @@ -108,6 +108,7 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory { if (!isset($aExtraParams['menu']) || $aExtraParams['menu']) { $oMenuBlock = new MenuBlock($oSet->GetFilter(), $sStyle); + $aExtraParams['sRefreshAction'] = $oDataTable->GetJSRefresh()[0]; $oBlockMenu = $oMenuBlock->GetRenderContent($oPage, $aExtraParams, $sListId); } else { $oBlockMenu = new UIContentBlock();