mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 11:08:45 +02:00
N°2711 - Portal: Remove "goto" xsi:type in action rules
This commit is contained in:
@@ -15,7 +15,6 @@ use DBObjectSearch;
|
|||||||
use DBObjectSet;
|
use DBObjectSet;
|
||||||
use DBProperty;
|
use DBProperty;
|
||||||
use DBSearch;
|
use DBSearch;
|
||||||
use DeprecatedCallsLog;
|
|
||||||
use DOMFormatException;
|
use DOMFormatException;
|
||||||
use DOMNodeList;
|
use DOMNodeList;
|
||||||
use Exception;
|
use Exception;
|
||||||
@@ -41,8 +40,6 @@ class ContextManipulatorHelper
|
|||||||
{
|
{
|
||||||
/** @var string ENUM_RULE_CALLBACK_BACK */
|
/** @var string ENUM_RULE_CALLBACK_BACK */
|
||||||
const ENUM_RULE_CALLBACK_BACK = 'back';
|
const ENUM_RULE_CALLBACK_BACK = 'back';
|
||||||
/** @var string ENUM_RULE_CALLBACK_GOTO */
|
|
||||||
const ENUM_RULE_CALLBACK_GOTO = 'goto';
|
|
||||||
/** @var string ENUM_RULE_CALLBACK_OPEN */
|
/** @var string ENUM_RULE_CALLBACK_OPEN */
|
||||||
const ENUM_RULE_CALLBACK_OPEN = 'open';
|
const ENUM_RULE_CALLBACK_OPEN = 'open';
|
||||||
/** @var string ENUM_RULE_CALLBACK_OPEN_VIEW */
|
/** @var string ENUM_RULE_CALLBACK_OPEN_VIEW */
|
||||||
@@ -184,16 +181,7 @@ class ContextManipulatorHelper
|
|||||||
|
|
||||||
$aRule[$sSubNodeName]['refresh'] = $sRefresh;
|
$aRule[$sSubNodeName]['refresh'] = $sRefresh;
|
||||||
break;
|
break;
|
||||||
case static::ENUM_RULE_CALLBACK_GOTO:
|
|
||||||
// Retrieving value
|
|
||||||
$sBrickId = $oSubNode->GetUniqueElement('brick')->GetText();
|
|
||||||
if ($sBrickId === null)
|
|
||||||
{
|
|
||||||
throw new DOMFormatException('Brick tag value must not be empty.', null, null, $oSubNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
$aRule[$sSubNodeName]['brick_id'] = $sBrickId;
|
|
||||||
break;
|
|
||||||
case static::ENUM_RULE_CALLBACK_OPEN:
|
case static::ENUM_RULE_CALLBACK_OPEN:
|
||||||
// Default value
|
// Default value
|
||||||
$sMode = static::ENUM_RULE_CALLBACK_OPEN_VIEW;
|
$sMode = static::ENUM_RULE_CALLBACK_OPEN_VIEW;
|
||||||
@@ -424,75 +412,6 @@ class ContextManipulatorHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a hash array of urls for each type of callback
|
|
||||||
*
|
|
||||||
* eg :
|
|
||||||
* array(
|
|
||||||
* 'submit' => 'http://localhost/',
|
|
||||||
* 'cancel' => null
|
|
||||||
* );
|
|
||||||
*
|
|
||||||
* @since 2.3.0
|
|
||||||
* @deprecated 2.7.0 N°1192 Use navigation rules for form callbacks
|
|
||||||
*
|
|
||||||
* @param array $aData
|
|
||||||
* @param \DBObject $oObject
|
|
||||||
* @param boolean $bModal
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function GetCallbackUrls(array $aData, DBObject $oObject, $bModal = false)
|
|
||||||
{
|
|
||||||
DeprecatedCallsLog::NotifyDeprecatedPhpMethod('Use navigation rules for form callbacks');
|
|
||||||
$aResults = array(
|
|
||||||
'submit' => null,
|
|
||||||
'cancel' => null,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (isset($aData['rules'])) {
|
|
||||||
foreach ($aData['rules'] as $sId) {
|
|
||||||
// Retrieving current rule
|
|
||||||
$aRule = $this->GetRule($sId);
|
|
||||||
|
|
||||||
// For each type of callbacks, we check if there is a rule to apply
|
|
||||||
foreach (array('submit', 'cancel') as $sCallbackName)
|
|
||||||
{
|
|
||||||
if (is_array($aRule[$sCallbackName]))
|
|
||||||
{
|
|
||||||
// Previously declared rule on a callback is overwritten by the last
|
|
||||||
$sCallbackUrl = null;
|
|
||||||
switch ($aRule[$sCallbackName]['type'])
|
|
||||||
{
|
|
||||||
case static::ENUM_RULE_CALLBACK_BACK:
|
|
||||||
if (!$bModal)
|
|
||||||
{
|
|
||||||
$sCallbackUrl = ($_SERVER['HTTP_REFERER'] !== '') ? $_SERVER['HTTP_REFERER'] : null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case static::ENUM_RULE_CALLBACK_GOTO:
|
|
||||||
$oBrick = $this->oBrickCollection->GetBrickById($aRule[$sCallbackName]['brick_id']);
|
|
||||||
$sCallbackUrl = $this->oRouter->generate($oBrick->GetRouteName(), array('sBrickId' => $oBrick->GetId()));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case static::ENUM_RULE_CALLBACK_OPEN:
|
|
||||||
$sCallbackUrl = ($oObject->IsNew()) ? null : $this->oRouter->generate('p_object_'.$aRule[$sCallbackName]['mode'],
|
|
||||||
array('sObjectClass' => get_class($oObject), 'sObjectId' => $oObject->GetKey()));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$aResults[$sCallbackName] = $sCallbackUrl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $aResults;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares the rules as an array of rules and source objects so it can be tokenized
|
* Prepares the rules as an array of rules and source objects so it can be tokenized
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1569,11 +1569,6 @@
|
|||||||
<preset id="2">copy(service_id, service_id)</preset>
|
<preset id="2">copy(service_id, service_id)</preset>
|
||||||
</presets>
|
</presets>
|
||||||
</action_rule>
|
</action_rule>
|
||||||
<action_rule id="go-to-open-request-on-submit" _delta="define">
|
|
||||||
<submit xsi:type="goto">
|
|
||||||
<brick>ongoing-tickets-for-portal-user</brick>
|
|
||||||
</submit>
|
|
||||||
</action_rule>
|
|
||||||
</action_rules>
|
</action_rules>
|
||||||
<navigation_rules>
|
<navigation_rules>
|
||||||
<!-- Open a manage brick (simple method) -->
|
<!-- Open a manage brick (simple method) -->
|
||||||
|
|||||||
Reference in New Issue
Block a user