Support passing custom contexts to relationcontroller

This commit is contained in:
flynsarmy 2015-02-11 09:53:21 +10:00
parent 99fc380aa3
commit 40ebb9bfa2

View File

@ -506,7 +506,7 @@ class RelationController extends ControllerBehavior
return $results->lists($foreignKeyName); return $results->lists($foreignKeyName);
} }
// //
// Overrides // Overrides
// //
@ -1027,10 +1027,12 @@ class RelationController extends ControllerBehavior
* Form * Form
*/ */
elseif ($this->manageMode == 'form' && isset($this->config->form)) { elseif ($this->manageMode == 'form' && isset($this->config->form)) {
$context = !empty($this->config->manage['context']) ? $this->config->manage['context'] : 'relation';
$config = $this->makeConfig($this->config->form); $config = $this->makeConfig($this->config->form);
$config->model = $this->relationModel; $config->model = $this->relationModel;
$config->arrayName = class_basename($this->relationModel); $config->arrayName = class_basename($this->relationModel);
$config->context = 'relation'; $config->context = is_string($context) ? $context : 'relation';
$config->alias = $this->alias . 'ManageForm'; $config->alias = $this->alias . 'ManageForm';
/* /*
@ -1043,6 +1045,15 @@ class RelationController extends ControllerBehavior
'class' => get_class($config->model), 'id' => $this->manageId 'class' => get_class($config->model), 'id' => $this->manageId
])); ]));
} }
if (is_array($context) && isset($context['create'])) {
$config->context = $context['create'];
}
}
else {
if (is_array($context) && isset($context['update'])) {
$config->context = $context['update'];
}
} }
$widget = $this->makeWidget('Backend\Widgets\Form', $config); $widget = $this->makeWidget('Backend\Widgets\Form', $config);