N°1192 - Change default behavior for navigation rules

This commit is contained in:
Molkobain
2019-12-05 15:01:47 +01:00
parent 8911a9a3ed
commit c883d618c3
3 changed files with 42 additions and 9 deletions

View File

@@ -38,6 +38,7 @@ use FalseExpression;
use FieldExpression;
use FileUploadException;
use IssueLog;
use JSButtonItem;
use ListExpression;
use MetaModel;
use ScalarExpression;
@@ -45,7 +46,6 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
use URLButtonItem;
use UserRights;
use utils;
use VariableExpression;
@@ -129,13 +129,14 @@ class ObjectController extends BrickController
// Add an edit button if user is allowed
if ($oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY, $sObjectClass, $sObjectId))
{
$oModifyButton = new URLButtonItem(
$sModifyUrl = $oUrlGenerator->generate('p_object_edit', array('sObjectClass' => $sObjectClass, 'sObjectId' => $sObjectId));
$oModifyButton = new JSButtonItem(
'modify_object',
Dict::S('UI:Menu:Modify'),
$oUrlGenerator->generate('p_object_edit', array('sObjectClass' => $sObjectClass, 'sObjectId' => $sObjectId))
'CombodoPortalToolbox.OpenUrlInModal("'.$sModifyUrl.'");'
);
// Putting this one first
$aData['form']['buttons']['links'][] = $oModifyButton->GetMenuItem();
$aData['form']['buttons']['actions'][] = $oModifyButton->GetMenuItem() + array('js_files' => $oModifyButton->GetLinkedScripts());
}
// Preparing response

View File

@@ -70,11 +70,11 @@ class NavigationRuleHelper
/** @var string DEFAULT_RULE_SUBMIT_PAGE */
const DEFAULT_RULE_SUBMIT_PAGE = self::ENUM_RULE_GO_TO_OBJECT;
/** @var string DEFAULT_RULE_SUBMIT_MODAL */
const DEFAULT_RULE_SUBMIT_MODAL = self::DEFAULT_RULE_SUBMIT_PAGE;
const DEFAULT_RULE_SUBMIT_MODAL = self::ENUM_RULE_CLOSE;
/** @var string DEFAULT_RULE_CANCEL_PAGE */
const DEFAULT_RULE_CANCEL_PAGE = self::ENUM_RULE_CLOSE;
/** @var string DEFAULT_RULE_CANCEL_MODAL */
const DEFAULT_RULE_CANCEL_MODAL = self::DEFAULT_RULE_CANCEL_PAGE;
const DEFAULT_RULE_CANCEL_MODAL = self::ENUM_RULE_CLOSE;
// Rule go-to-object properties
/** @var string DEFAULT_RULE_GO_TO_OBJECT_PROP_MODE */
@@ -231,6 +231,19 @@ class NavigationRuleHelper
// Default rules definition
//-------------------------
/**
* Return the default definition of a rule based on the $sType (close, go-to-homepage, go-to-brick, ...)
*
* @param string $sRuleType
*
* @return array
*/
public function GetDefaultRuleDefinitionFromType($sRuleType)
{
$sRuleFunctionName = 'GetDefault'.utils::ToCamelCase($sRuleType).'RuleDefinition';
return $this->$sRuleFunctionName();
}
/**
* Return the default definition of the "Close" rule
*
@@ -570,13 +583,14 @@ class NavigationRuleHelper
switch($sButtonCode)
{
case 'submit':
$aRuleDef = $this->GetDefaultGoToObjectRuleDefinition();
$sDefaultRuleType = ($bIsCurrentFormInModal) ? static::DEFAULT_RULE_SUBMIT_MODAL : static::DEFAULT_RULE_SUBMIT_PAGE;
break;
case 'cancel':
$aRuleDef = $this->GetDefaultCloseRuleDefinition();
$sDefaultRuleType = ($bIsCurrentFormInModal) ? static::DEFAULT_RULE_CANCEL_MODAL : static::DEFAULT_RULE_CANCEL_PAGE;
break;
}
$aRuleDef = $this->GetDefaultRuleDefinitionFromType($sDefaultRuleType);
}
// - Specified rule
else