mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°3739 - Change dashboard menu entries (Fix dashboard edition)
This commit is contained in:
@@ -893,11 +893,53 @@ class RuntimeDashboard extends Dashboard
|
|||||||
$oDashboard->FromXml($sDashboardDefinition);
|
$oDashboard->FromXml($sDashboardDefinition);
|
||||||
$oDashboard->SetCustomFlag($bCustomized);
|
$oDashboard->SetCustomFlag($bCustomized);
|
||||||
$oDashboard->SetDefinitionFile($sDashboardFile);
|
$oDashboard->SetDefinitionFile($sDashboardFile);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
$oDashboard = null;
|
$oDashboard = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $oDashboard;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $sDashboardFile file name relative to the current module folder
|
||||||
|
* @param string $sDashBoardId code of the dashboard either menu_id or <class>__<attcode>
|
||||||
|
*
|
||||||
|
* @return null|RuntimeDashboard
|
||||||
|
* @throws \CoreException
|
||||||
|
* @throws \CoreUnexpectedValue
|
||||||
|
* @throws \MissingQueryArgument
|
||||||
|
* @throws \MySQLException
|
||||||
|
* @throws \MySQLHasGoneAwayException
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
|
public static function GetDashboardToEdit($sDashboardFile, $sDashBoardId)
|
||||||
|
{
|
||||||
|
$bCustomized = false;
|
||||||
|
|
||||||
|
// Search for an eventual user defined dashboard
|
||||||
|
$oUDSearch = new DBObjectSearch('UserDashboard');
|
||||||
|
$oUDSearch->AddCondition('user_id', UserRights::GetUserId(), '=');
|
||||||
|
$oUDSearch->AddCondition('menu_code', $sDashBoardId, '=');
|
||||||
|
$oUDSet = new DBObjectSet($oUDSearch);
|
||||||
|
if ($oUDSet->Count() > 0) {
|
||||||
|
// Assuming there is at most one couple {user, menu}!
|
||||||
|
$oUserDashboard = $oUDSet->Fetch();
|
||||||
|
$sDashboardDefinition = $oUserDashboard->Get('contents');
|
||||||
|
$bCustomized = true;
|
||||||
|
} else {
|
||||||
|
$sDashboardDefinition = @file_get_contents($sDashboardFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($sDashboardDefinition !== false) {
|
||||||
|
$oDashboard = new RuntimeDashboard($sDashBoardId);
|
||||||
|
$oDashboard->FromXml($sDashboardDefinition);
|
||||||
|
$oDashboard->SetCustomFlag($bCustomized);
|
||||||
|
$oDashboard->SetDefinitionFile($sDashboardFile);
|
||||||
|
} else {
|
||||||
|
$oDashboard = null;
|
||||||
|
}
|
||||||
|
|
||||||
return $oDashboard;
|
return $oDashboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -907,8 +949,7 @@ class RuntimeDashboard extends Dashboard
|
|||||||
*/
|
*/
|
||||||
public function Render($oPage, $bEditMode = false, $aExtraParams = array(), $bCanEdit = true)
|
public function Render($oPage, $bEditMode = false, $aExtraParams = array(), $bCanEdit = true)
|
||||||
{
|
{
|
||||||
if (!isset($aExtraParams['query_params']) && isset($aExtraParams['this->class']))
|
if (!isset($aExtraParams['query_params']) && isset($aExtraParams['this->class'])) {
|
||||||
{
|
|
||||||
$oObj = MetaModel::GetObject($aExtraParams['this->class'], $aExtraParams['this->id']);
|
$oObj = MetaModel::GetObject($aExtraParams['this->class'], $aExtraParams['this->id']);
|
||||||
$aRenderParams = array('query_params' => $oObj->ToArgsForQuery());
|
$aRenderParams = array('query_params' => $oObj->ToArgsForQuery());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1030,6 +1030,7 @@ try
|
|||||||
$sDashboardId = utils::ReadParam('dashboard_id', '', false, 'raw_data');
|
$sDashboardId = utils::ReadParam('dashboard_id', '', false, 'raw_data');
|
||||||
$aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data');
|
$aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data');
|
||||||
$sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data');
|
$sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data');
|
||||||
|
appUserPreferences::SetPref('display_original_dashboard_'.$sDashboardId, false);
|
||||||
$sJSExtraParams = json_encode($aExtraParams);
|
$sJSExtraParams = json_encode($aExtraParams);
|
||||||
$aParams = array();
|
$aParams = array();
|
||||||
$aParams['layout_class'] = utils::ReadParam('layout_class', '');
|
$aParams['layout_class'] = utils::ReadParam('layout_class', '');
|
||||||
@@ -1105,11 +1106,9 @@ EOF
|
|||||||
$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();
|
||||||
$oDashboard = RuntimeDashboard::GetDashboard($sDashboardFile, $sId);
|
$oDashboard = RuntimeDashboard::GetDashboardToEdit($sDashboardFile, $sId);
|
||||||
if (!is_null($oDashboard))
|
if (!is_null($oDashboard)) {
|
||||||
{
|
if (!empty($sReloadURL)) {
|
||||||
if (!empty($sReloadURL))
|
|
||||||
{
|
|
||||||
$oDashboard->SetReloadURL($sReloadURL);
|
$oDashboard->SetReloadURL($sReloadURL);
|
||||||
}
|
}
|
||||||
$oDashboard->RenderEditor($oPage, $aExtraParams);
|
$oDashboard->RenderEditor($oPage, $aExtraParams);
|
||||||
|
|||||||
Reference in New Issue
Block a user