From 00849268ed2f3471729351b0224bbbe817f7f7d1 Mon Sep 17 00:00:00 2001 From: Ben Thomson Date: Thu, 19 Nov 2020 17:28:30 +0800 Subject: [PATCH] Allow customised deletion messages in lists Provides the ability for developers to specify a custom message for bulk deletion actions, as well as a custom message when no records could be deleted due to missing selections or an altered query not finding any applicable records. --- modules/backend/behaviors/ListController.php | 36 +++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/modules/backend/behaviors/ListController.php b/modules/backend/behaviors/ListController.php index d885f1625..4bc6c4d8b 100644 --- a/modules/backend/behaviors/ListController.php +++ b/modules/backend/behaviors/ListController.php @@ -297,16 +297,6 @@ class ListController extends ControllerBehavior return call_user_func_array([$this->controller, 'onDelete'], func_get_args()); } - /* - * Validate checked identifiers - */ - $checkedIds = post('checked'); - - if (!$checkedIds || !is_array($checkedIds) || !count($checkedIds)) { - Flash::error(Lang::get('backend::lang.list.delete_selected_empty')); - return $this->controller->listRefresh(); - } - /* * Establish the list definition */ @@ -318,6 +308,20 @@ class ListController extends ControllerBehavior $listConfig = $this->controller->listGetConfig($definition); + /* + * Validate checked identifiers + */ + $checkedIds = post('checked'); + + if (!$checkedIds || !is_array($checkedIds) || !count($checkedIds)) { + Flash::error(Lang::get( + (!empty($listConfig->noRecordsDeletedMessage)) + ? $listConfig->noRecordsDeletedMessage + : 'backend::lang.list.delete_selected_empty' + )); + return $this->controller->listRefresh(); + } + /* * Create the model */ @@ -344,10 +348,18 @@ class ListController extends ControllerBehavior $record->delete(); } - Flash::success(Lang::get('backend::lang.list.delete_selected_success')); + Flash::success(Lang::get( + (!empty($listConfig->deleteMessage)) + ? $listConfig->deleteMessage + : 'backend::lang.list.delete_selected_success' + )); } else { - Flash::error(Lang::get('backend::lang.list.delete_selected_empty')); + Flash::error(Lang::get( + (!empty($listConfig->noRecordsDeletedMessage)) + ? $listConfig->noRecordsDeletedMessage + : 'backend::lang.list.delete_selected_empty' + )); } return $this->controller->listRefresh($definition);