mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-20 00:58:48 +02:00
Merge remote-tracking branch 'origin/support/2.7' into develop
# Conflicts: # application/ui.extkeywidget.class.inc.php # pages/ajax.render.php
This commit is contained in:
@@ -79,11 +79,28 @@ class ObjectFormManager extends FormManager
|
||||
protected $aCallbackUrls = array();
|
||||
/**
|
||||
* List of hidden fields, used for form update (eg. remove them from the form regarding they dependencies)
|
||||
*
|
||||
* @var array $aHiddenFieldsId
|
||||
* @since 2.7.5
|
||||
*/
|
||||
protected $aHiddenFieldsId = array();
|
||||
|
||||
/**
|
||||
* @param string|array $formManagerData value of the formmanager_data portal parameter, either JSON or object
|
||||
*
|
||||
* @return array formmanager_data as a PHP array
|
||||
*
|
||||
* @since 2.7.6 3.0.0 N°4384 method creation : factorize as this is used twice now
|
||||
*/
|
||||
protected static function DecodeFormManagerData($formManagerData)
|
||||
{
|
||||
if (is_array($formManagerData)) {
|
||||
return $formManagerData;
|
||||
}
|
||||
|
||||
return json_decode($formManagerData, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sJson JSON data that must contain at least :
|
||||
* - formobject_class : The class of the object that is being edited/viewed
|
||||
@@ -101,11 +118,7 @@ class ObjectFormManager extends FormManager
|
||||
*/
|
||||
public static function FromJSON($sJson, $bTrustContent = false)
|
||||
{
|
||||
if (is_array($sJson)) {
|
||||
$aJson = $sJson;
|
||||
} else {
|
||||
$aJson = json_decode($sJson, true);
|
||||
}
|
||||
$aJson = static::DecodeFormManagerData($sJson);
|
||||
|
||||
$oConfig = utils::GetConfig();
|
||||
$bIsContentCheckEnabled = $oConfig->GetModuleSetting(PORTAL_ID, 'enable_formmanager_content_check', true);
|
||||
@@ -180,7 +193,7 @@ class ObjectFormManager extends FormManager
|
||||
*/
|
||||
public static function CanTrustFormLayoutContent($sPostedFormManagerData, $aOriginalFormProperties)
|
||||
{
|
||||
$aPostedFormManagerData = json_decode($sPostedFormManagerData, true);
|
||||
$aPostedFormManagerData = static::DecodeFormManagerData($sPostedFormManagerData);
|
||||
$sPostedFormLayoutType = (isset($aPostedFormManagerData['formproperties']['layout']['type'])) ? $aPostedFormManagerData['formproperties']['layout']['type'] : '';
|
||||
|
||||
if ($sPostedFormLayoutType === 'xhtml') {
|
||||
|
||||
@@ -965,7 +965,7 @@ try
|
||||
break;
|
||||
|
||||
case 'save_dashboard':
|
||||
$sDashboardId = utils::ReadParam('dashboard_id', '', false, 'element_identifier');
|
||||
$sDashboardId = utils::ReadParam('dashboard_id', '', false, 'context_param');
|
||||
$aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data');
|
||||
$sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data');
|
||||
appUserPreferences::SetPref('display_original_dashboard_'.$sDashboardId, false);
|
||||
@@ -976,22 +976,26 @@ try
|
||||
$aParams['auto_reload'] = utils::ReadParam('auto_reload', false);
|
||||
$aParams['auto_reload_sec'] = utils::ReadParam('auto_reload_sec', 300);
|
||||
$aParams['cells'] = utils::ReadParam('cells', array(), false, 'raw_data');
|
||||
|
||||
$oDashboard = new RuntimeDashboard($sDashboardId);
|
||||
$oDashboard->FromParams($aParams);
|
||||
$oDashboard->Save();
|
||||
|
||||
$sDashboardFile = addslashes(utils::ReadParam('file', '', false, 'string'));
|
||||
$sDashboardDivId = preg_replace('/[^a-zA-Z0-9_]/', '', $sDashboardId);
|
||||
|
||||
// trigger a reload of the current page since the dashboard just changed
|
||||
$oPage->add_script(
|
||||
<<<EOF
|
||||
$('.ibo-dashboard#$sDashboardId').block();
|
||||
<<<JS
|
||||
$('.ibo-dashboard#{$sDashboardDivId}').block();
|
||||
$.post(GetAbsoluteUrlAppRoot()+'pages/ajax.render.php',
|
||||
{ operation: 'reload_dashboard', dashboard_id: '$sDashboardId', file: '$sDashboardFile', extra_params: $sJSExtraParams, reload_url: '$sReloadURL'},
|
||||
{ operation: 'reload_dashboard', dashboard_id: '{$sDashboardId}', file: '{$sDashboardFile}', extra_params: {$sJSExtraParams}, reload_url: '{$sReloadURL}'},
|
||||
function(data){
|
||||
$('.ibo-dashboard#$sDashboardId').html(data);
|
||||
$('.ibo-dashboard#$sDashboardId').unblock();
|
||||
$('.ibo-dashboard#{$sDashboardDivId}').html(data);
|
||||
$('.ibo-dashboard#{$sDashboardDivId}').unblock();
|
||||
}
|
||||
);
|
||||
EOF
|
||||
JS
|
||||
);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user