diff --git a/NEWS b/NEWS index 6f4ca0cc5..fd3c57e25 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ Enhancements - [web] added Latvian (lv) translation - thanks to Juris Balandis - [web] expose user's defaults and settings inline - [web] can now discard incoming mails during vacation + - [web] support both backspace and delete keys in Mail and Contacts modules Bug fixes - [web] respect SOGoLanguage and SOGoSupportedLanguages (#4169) diff --git a/UI/WebServerResources/js/Contacts/AddressBookController.js b/UI/WebServerResources/js/Contacts/AddressBookController.js index c012589c1..bd0c0942e 100644 --- a/UI/WebServerResources/js/Contacts/AddressBookController.js +++ b/UI/WebServerResources/js/Contacts/AddressBookController.js @@ -88,11 +88,13 @@ description: l('Add previous item to selection'), callback: _addPreviousCardToSelection })); - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - description: l('Delete selected card or address book'), - callback: confirmDeleteSelectedCards - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + description: l('Delete selected card or address book'), + callback: confirmDeleteSelectedCards + })); + }); // Register the hotkeys _.forEach(keys, function(key) { diff --git a/UI/WebServerResources/js/Contacts/AddressBooksController.js b/UI/WebServerResources/js/Contacts/AddressBooksController.js index 9d7c85640..19e7568fd 100644 --- a/UI/WebServerResources/js/Contacts/AddressBooksController.js +++ b/UI/WebServerResources/js/Contacts/AddressBooksController.js @@ -38,14 +38,16 @@ function _registerHotkeys(keys) { - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - description: l('Delete selected card or address book'), - callback: function() { - if (AddressBook.selectedFolder && !AddressBook.selectedFolder.hasSelectedCard()) - confirmDelete(); - } - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + description: l('Delete selected card or address book'), + callback: function() { + if (AddressBook.selectedFolder && !AddressBook.selectedFolder.hasSelectedCard()) + confirmDelete(); + } + })); + }); // Register the hotkeys _.forEach(keys, function(key) { diff --git a/UI/WebServerResources/js/Contacts/CardController.js b/UI/WebServerResources/js/Contacts/CardController.js index 81a6046a6..2cb86268b 100644 --- a/UI/WebServerResources/js/Contacts/CardController.js +++ b/UI/WebServerResources/js/Contacts/CardController.js @@ -53,15 +53,17 @@ function _registerHotkeys(keys) { - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - description: l('Delete'), - callback: function($event) { - if (vm.currentFolder.$selectedCount() === 0) - confirmDelete(); - $event.preventDefault(); - } - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + description: l('Delete'), + callback: function($event) { + if (vm.currentFolder.$selectedCount() === 0) + confirmDelete(); + $event.preventDefault(); + } + })); + }); // Register the hotkeys _.forEach(keys, function(key) { diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index 3c8d26183..6f3ac3acf 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -99,11 +99,13 @@ callback: _addPreviousMessageToSelection, preventInClass: ['sg-mail-part'] })); - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - description: l('Delete selected message or folder'), - callback: vm.confirmDeleteSelectedMessages - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + description: l('Delete selected message or folder'), + callback: vm.confirmDeleteSelectedMessages + })); + }); // Register the hotkeys _.forEach(keys, function(key) { diff --git a/UI/WebServerResources/js/Mailer/MailboxesController.js b/UI/WebServerResources/js/Mailer/MailboxesController.js index d1f92117e..18ebbecae 100644 --- a/UI/WebServerResources/js/Mailer/MailboxesController.js +++ b/UI/WebServerResources/js/Mailer/MailboxesController.js @@ -48,14 +48,16 @@ function _registerHotkeys(keys) { - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - description: l('Delete selected message or folder'), - callback: function() { - if (Mailbox.selectedFolderController && Mailbox.selectedFolder && !Mailbox.selectedFolder.hasSelectedMessage()) - Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder); - } - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + description: l('Delete selected message or folder'), + callback: function() { + if (Mailbox.selectedFolderController && Mailbox.selectedFolder && !Mailbox.selectedFolder.hasSelectedMessage()) + Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder); + } + })); + }); // Register the hotkeys _.forEach(keys, function(key) { diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index ea4f08b65..11505e3f1 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -147,14 +147,16 @@ description: l('Flagged'), callback: _unlessInDialog(angular.bind(stateMessage, stateMessage.toggleFlag)) })); - keys.push(sgHotkeys.createHotkey({ - key: 'backspace', - callback: _unlessInDialog(function($event) { - if (vm.mailbox.$selectedCount() === 0) - deleteMessage(); - $event.preventDefault(); - }) - })); + _.forEach(['backspace', 'delete'], function(hotkey) { + keys.push(sgHotkeys.createHotkey({ + key: hotkey, + callback: _unlessInDialog(function($event) { + if (vm.mailbox.$selectedCount() === 0) + deleteMessage(); + $event.preventDefault(); + }), + })); + }); // Register the hotkeys _.forEach(keys, function(key) {