mirror of
https://github.com/Combodo/iTop.git
synced 2026-09-09 06:48:43 +02:00
N°2634 / N°2735 Fix dashlets identifiers : was causing prb on widget init, prefs save
Dashlet id now includes : * "CUSTOM-" if dashlet is contained in a custom dashboard, nothing elsewhere * the ID of the dashboard - for menus : menu id escaped for HTML - for AttributeDashboard : <class>__<field> * the row / cell / dashlet idx Examples : CUSTOM-UserRequestOverview_IDrow1-col0-0 Organization__overview_IDrow1-col0-12
This commit is contained in:
@@ -495,7 +495,10 @@ EOF
|
|||||||
$bCanEdit = UserRights::IsAdministrator() || $oAttDef->IsUserEditable();
|
$bCanEdit = UserRights::IsAdministrator() || $oAttDef->IsUserEditable();
|
||||||
$sDivId = $oDashboard->GetId();
|
$sDivId = $oDashboard->GetId();
|
||||||
$oPage->add('<div class="dashboard_contents" id="'.$sDivId.'">');
|
$oPage->add('<div class="dashboard_contents" id="'.$sDivId.'">');
|
||||||
$aExtraParams = array('query_params' => $this->ToArgsForQuery());
|
$aExtraParams = array(
|
||||||
|
'query_params' => $this->ToArgsForQuery(),
|
||||||
|
'dashboard_div_id' => $sDivId,
|
||||||
|
);
|
||||||
$oDashboard->Render($oPage, false, $aExtraParams, $bCanEdit);
|
$oDashboard->Render($oPage, false, $aExtraParams, $bCanEdit);
|
||||||
$oPage->add('</div>');
|
$oPage->add('</div>');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -825,6 +825,8 @@ class RuntimeDashboard extends Dashboard
|
|||||||
$aRenderParams = $aExtraParams;
|
$aRenderParams = $aExtraParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$aRenderParams['bCustomized'] = $this->bCustomized;
|
||||||
|
|
||||||
parent::Render($oPage, $bEditMode, $aRenderParams);
|
parent::Render($oPage, $bEditMode, $aRenderParams);
|
||||||
|
|
||||||
if (isset($aExtraParams['query_params']['this->object()']))
|
if (isset($aExtraParams['query_params']['this->object()']))
|
||||||
@@ -1092,9 +1094,11 @@ EOF
|
|||||||
{
|
{
|
||||||
$aRenderParams = $aExtraParams;
|
$aRenderParams = $aExtraParams;
|
||||||
}
|
}
|
||||||
|
$aRenderParams['dashboard_div_id'] = $aExtraParams['dashboard_div_id'];
|
||||||
$sJSExtraParams = json_encode($aExtraParams);
|
$sJSExtraParams = json_encode($aExtraParams);
|
||||||
$oPage->add('<div id="dashboard_editor">');
|
$oPage->add('<div id="dashboard_editor">');
|
||||||
$oPage->add('<div class="ui-layout-center">');
|
$oPage->add('<div class="ui-layout-center">');
|
||||||
|
$this->SetCustomFlag(true);
|
||||||
$this->Render($oPage, true, $aRenderParams);
|
$this->Render($oPage, true, $aRenderParams);
|
||||||
$oPage->add('</div>');
|
$oPage->add('</div>');
|
||||||
$oPage->add('<div class="ui-layout-east">');
|
$oPage->add('<div class="ui-layout-east">');
|
||||||
|
|||||||
@@ -129,10 +129,20 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout
|
|||||||
{
|
{
|
||||||
if ($oDashlet->IsVisible())
|
if ($oDashlet->IsVisible())
|
||||||
{
|
{
|
||||||
$sDashboardId = $oDashlet->GetID();
|
$sDashletId = $oDashlet->GetID();
|
||||||
// N°2634 : we must have a unique id per dashlet !
|
if(strpos($sDashletId, 'IDrow') === false)
|
||||||
// To avoid collision with other dashlets with the same ID we prefix it. Collisions typically happen with extensions.
|
{
|
||||||
$oDashlet->SetID("row$iRows-col$iCols-$sDashboardId");
|
$sDashboardDivId = $aExtraParams['dashboard_div_id'];
|
||||||
|
// N°2634 : we must have a unique id per dashlet !
|
||||||
|
// To avoid collision with other dashlets with the same ID we prefix it with row/cell id
|
||||||
|
// Collisions typically happen with extensions.
|
||||||
|
$sDashletId = $sDashboardDivId."_IDrow$iRows-col$iCols-$sDashletId";
|
||||||
|
if (array_key_exists('bCustomized', $aExtraParams) && ((bool)$aExtraParams['bCustomized']) === true)
|
||||||
|
{
|
||||||
|
$sDashletId = 'CUSTOM_'.$sDashletId;
|
||||||
|
}
|
||||||
|
$oDashlet->SetID($sDashletId);
|
||||||
|
}
|
||||||
$oDashlet->DoRender($oPage, $bEditMode, true /* bEnclosingDiv */, $aExtraParams);
|
$oDashlet->DoRender($oPage, $bEditMode, true /* bEnclosingDiv */, $aExtraParams);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1205,6 +1205,7 @@ class DashboardMenuNode extends MenuNode
|
|||||||
{
|
{
|
||||||
$sDivId = preg_replace('/[^a-zA-Z0-9_]/', '', $this->sMenuId);
|
$sDivId = preg_replace('/[^a-zA-Z0-9_]/', '', $this->sMenuId);
|
||||||
$oPage->add('<div class="dashboard_contents" id="'.$sDivId.'">');
|
$oPage->add('<div class="dashboard_contents" id="'.$sDivId.'">');
|
||||||
|
$aExtraParams['dashboard_div_id'] = $sDivId;
|
||||||
$oDashboard->SetReloadURL($this->GetHyperlink($aExtraParams));
|
$oDashboard->SetReloadURL($this->GetHyperlink($aExtraParams));
|
||||||
$oDashboard->Render($oPage, false, $aExtraParams);
|
$oDashboard->Render($oPage, false, $aExtraParams);
|
||||||
$oPage->add('</div>');
|
$oPage->add('</div>');
|
||||||
|
|||||||
@@ -1199,6 +1199,7 @@ EOF
|
|||||||
case 'dashboard_editor':
|
case 'dashboard_editor':
|
||||||
$sId = utils::ReadParam('id', '', false, 'raw_data');
|
$sId = utils::ReadParam('id', '', false, 'raw_data');
|
||||||
$aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data');
|
$aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data');
|
||||||
|
$aExtraParams['dashboard_div_id'] = preg_replace('/[^a-zA-Z0-9_]/', '', $sId);
|
||||||
$sDashboardFile = utils::ReadParam('file', '', false, 'raw_data');
|
$sDashboardFile = utils::ReadParam('file', '', false, 'raw_data');
|
||||||
$sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data');
|
$sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data');
|
||||||
$oKPI = new ExecutionKPI();
|
$oKPI = new ExecutionKPI();
|
||||||
|
|||||||
Reference in New Issue
Block a user