From fa1611a22c30d5d5d7a29b714445d64e6895be8a Mon Sep 17 00:00:00 2001 From: nathangray Date: Tue, 12 Jun 2018 13:49:59 -0600 Subject: [PATCH] * Addressbook - Disable merge contacts action if more than one account is selected --- addressbook/inc/class.addressbook_ui.inc.php | 3 ++- addressbook/js/app.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/addressbook/inc/class.addressbook_ui.inc.php b/addressbook/inc/class.addressbook_ui.inc.php index 8633863fcd..a0ace39969 100644 --- a/addressbook/inc/class.addressbook_ui.inc.php +++ b/addressbook/inc/class.addressbook_ui.inc.php @@ -585,7 +585,8 @@ class addressbook_ui extends addressbook_bo 'hint' => 'Merge into first or account, deletes all other!', 'allowOnMultiple' => 'only', 'group' => $group, - 'hideOnMobile' => true + 'hideOnMobile' => true, + 'enabled' => 'javaScript:app.addressbook.can_merge' ); // Duplicates view $actions['merge_duplicates'] = array( diff --git a/addressbook/js/app.js b/addressbook/js/app.js index dcd3d802f4..15615746a2 100644 --- a/addressbook/js/app.js +++ b/addressbook/js/app.js @@ -1237,5 +1237,20 @@ app.classes.addressbook = AppJS.extend( var geo_url = egw.config('geolocation_url'); if (geo_url) geo_url = geo_url[0]; return geo_url || default_url; + }, + + /** + * Check to see if the selection contains at most one account + * + * @param {egwAction} action + * @param {egwActionObject[]} selected Selected rows + */ + can_merge: function(action, selected) + { + return selected.filter(function (row) { + var data = egw.dataGetUIDdata(row.id); + return data && data.data.account_id; + }).length <= 1; } + });