From 0688bc3aeacf96bb13f39ba0260a18ad6c403c2d Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 9 May 2019 15:14:56 -0700 Subject: [PATCH] Added option to override/modify default Create/Update buttons (triggers) eg. $this->setDefaultTrigger(array('cancel' => array(LAN_CANCEL, 'cancel'))); // display only a cancel button. --- e107_handlers/admin_ui.php | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/e107_handlers/admin_ui.php b/e107_handlers/admin_ui.php index 7cfc48807..bd3145253 100755 --- a/e107_handlers/admin_ui.php +++ b/e107_handlers/admin_ui.php @@ -1647,6 +1647,12 @@ class e_admin_controller * @var string default action name */ protected $_default_action = 'index'; + + + /** + * @var string default trigger action. + */ + protected $_default_trigger = 'auto'; /** * List (numerical array) of only allowed for this controller actions @@ -2358,6 +2364,14 @@ class e_admin_controller return $this->_default_action; } + + + public function getDefaultTrigger() + { + return $this->_default_trigger; + + } + /** * Set default action * @param string $action_name @@ -2369,6 +2383,21 @@ class e_admin_controller return $this; } + + /** + * Set default trigger + * @param string|array $triggers 'auto' or array of triggers + * @example $triggers['submit'] = array(LAN_UPDATE, 'update', $model->getId()); + $triggers['submit'] = array(LAN_CREATE, 'create', 0); + $triggers['cancel'] = array(LAN_CANCEL, 'cancel'); + * @return e_admin_controller + */ + public function setDefaultTrigger($triggers) + { + $this->_default_trigger = $triggers; + return $this; + } + /** * @return boolean */ @@ -6563,10 +6592,11 @@ class e_admin_form_ui extends e_form 'footer' => $form_end, //XXX Unused? 'after_submit_options' => $controller->getAfterSubmitOptions(), // or true for default redirect options 'after_submit_default' => $request->getPosted('__after_submit_action', $controller->getDefaultAction()), // or true for default redirect options - 'triggers' => 'auto', // standard create/update-cancel triggers + 'triggers' => $controller->getDefaultTrigger(), // standard create/update-cancel triggers ) ) ); + $models[] = $controller->getModel(); return $this->renderCreateForm($forms, $models, e_AJAX_REQUEST);