From 762c5e754b27b105856fea1a124731d0997eedc8 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Fri, 25 Mar 2016 14:03:11 +1100 Subject: [PATCH] Switch the manage popup title according to the button pressed Fixes #1755 --- .../backend/behaviors/RelationController.php | 40 +++++++++++++++++++ .../behaviors/UserPreferencesModel.php | 2 +- .../partials/_manage_form.htm | 6 +-- .../partials/_manage_list.htm | 2 +- .../partials/_manage_pivot.htm | 2 +- modules/backend/lang/en/lang.php | 1 + 6 files changed, 45 insertions(+), 8 deletions(-) diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index dddf8b4a8..def6613f4 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -130,6 +130,11 @@ class RelationController extends ControllerBehavior */ protected $viewMode; + /** + * @var string The title used for the manage popup. + */ + protected $manageTitle; + /** * @var string Management of relation as list, form, or pivot. */ @@ -220,6 +225,7 @@ class RelationController extends ControllerBehavior { $this->vars['relationManageId'] = $this->manageId; $this->vars['relationLabel'] = $this->config->label ?: $this->field; + $this->vars['relationManageTitle'] = $this->manageTitle; $this->vars['relationField'] = $this->field; $this->vars['relationType'] = $this->relationType; $this->vars['relationSearchWidget'] = $this->searchWidget; @@ -309,6 +315,7 @@ class RelationController extends ControllerBehavior $this->toolbarButtons = $this->evalToolbarButtons(); $this->viewMode = $this->evalViewMode(); $this->manageMode = $this->evalManageMode(); + $this->manageTitle = $this->evalManageTitle(); $this->manageId = post('manage_id'); $this->foreignId = post('foreign_id'); @@ -1315,6 +1322,39 @@ class RelationController extends ControllerBehavior } } + /** + * Determine the management mode popup title. + * @return string + */ + protected function evalManageTitle() + { + if ($customTitle = $this->getConfig('manage[title]')) { + return $customTitle; + } + + switch ($this->manageMode) { + case 'list': + if ($this->eventTarget == 'button-link') { + return 'backend::lang.relation.add_a_link'; + } + else { + return 'backend::lang.relation.add_a_new'; + } + break; + case 'form': + if ($this->readOnly) { + return 'backend::lang.relation.preview_name'; + } + else { + return 'backend::lang.relation.update_name'; + } + break; + case 'pivot': + return 'backend::lang.relation.add_a_new'; + break; + } + } + /** * Determine the management mode based on the relation type and settings. * @return string diff --git a/modules/backend/behaviors/UserPreferencesModel.php b/modules/backend/behaviors/UserPreferencesModel.php index ea6a1ab25..f552a2210 100644 --- a/modules/backend/behaviors/UserPreferencesModel.php +++ b/modules/backend/behaviors/UserPreferencesModel.php @@ -18,7 +18,7 @@ use Backend\Models\UserPreferences; */ class UserPreferencesModel extends SettingsModel { - private static $instances = []; + protected static $instances = []; /** * Constructor diff --git a/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm b/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm index fa6054862..c34ae0c9a 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_manage_form.htm @@ -12,11 +12,7 @@ diff --git a/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm b/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm index 81aa675bf..865c82dee 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_manage_list.htm @@ -2,7 +2,7 @@ diff --git a/modules/backend/behaviors/relationcontroller/partials/_manage_pivot.htm b/modules/backend/behaviors/relationcontroller/partials/_manage_pivot.htm index bda2792b8..ee11a0945 100644 --- a/modules/backend/behaviors/relationcontroller/partials/_manage_pivot.htm +++ b/modules/backend/behaviors/relationcontroller/partials/_manage_pivot.htm @@ -2,7 +2,7 @@