(js) Support backspace AND delete keys

pull/237/head
Francis Lachapelle 2017-06-14 13:37:13 -04:00
parent 67b9ef0b8b
commit 7464c2e680
7 changed files with 56 additions and 43 deletions

1
NEWS
View File

@ -14,6 +14,7 @@ Enhancements
- [web] added Latvian (lv) translation - thanks to Juris Balandis - [web] added Latvian (lv) translation - thanks to Juris Balandis
- [web] expose user's defaults and settings inline - [web] expose user's defaults and settings inline
- [web] can now discard incoming mails during vacation - [web] can now discard incoming mails during vacation
- [web] support both backspace and delete keys in Mail and Contacts modules
Bug fixes Bug fixes
- [web] respect SOGoLanguage and SOGoSupportedLanguages (#4169) - [web] respect SOGoLanguage and SOGoSupportedLanguages (#4169)

View File

@ -88,11 +88,13 @@
description: l('Add previous item to selection'), description: l('Add previous item to selection'),
callback: _addPreviousCardToSelection callback: _addPreviousCardToSelection
})); }));
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
description: l('Delete selected card or address book'), key: hotkey,
callback: confirmDeleteSelectedCards description: l('Delete selected card or address book'),
})); callback: confirmDeleteSelectedCards
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {

View File

@ -38,14 +38,16 @@
function _registerHotkeys(keys) { function _registerHotkeys(keys) {
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
description: l('Delete selected card or address book'), key: hotkey,
callback: function() { description: l('Delete selected card or address book'),
if (AddressBook.selectedFolder && !AddressBook.selectedFolder.hasSelectedCard()) callback: function() {
confirmDelete(); if (AddressBook.selectedFolder && !AddressBook.selectedFolder.hasSelectedCard())
} confirmDelete();
})); }
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {

View File

@ -53,15 +53,17 @@
function _registerHotkeys(keys) { function _registerHotkeys(keys) {
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
description: l('Delete'), key: hotkey,
callback: function($event) { description: l('Delete'),
if (vm.currentFolder.$selectedCount() === 0) callback: function($event) {
confirmDelete(); if (vm.currentFolder.$selectedCount() === 0)
$event.preventDefault(); confirmDelete();
} $event.preventDefault();
})); }
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {

View File

@ -99,11 +99,13 @@
callback: _addPreviousMessageToSelection, callback: _addPreviousMessageToSelection,
preventInClass: ['sg-mail-part'] preventInClass: ['sg-mail-part']
})); }));
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
description: l('Delete selected message or folder'), key: hotkey,
callback: vm.confirmDeleteSelectedMessages description: l('Delete selected message or folder'),
})); callback: vm.confirmDeleteSelectedMessages
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {

View File

@ -48,14 +48,16 @@
function _registerHotkeys(keys) { function _registerHotkeys(keys) {
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
description: l('Delete selected message or folder'), key: hotkey,
callback: function() { description: l('Delete selected message or folder'),
if (Mailbox.selectedFolderController && Mailbox.selectedFolder && !Mailbox.selectedFolder.hasSelectedMessage()) callback: function() {
Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder); if (Mailbox.selectedFolderController && Mailbox.selectedFolder && !Mailbox.selectedFolder.hasSelectedMessage())
} Mailbox.selectedFolderController.confirmDelete(Mailbox.selectedFolder);
})); }
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {

View File

@ -147,14 +147,16 @@
description: l('Flagged'), description: l('Flagged'),
callback: _unlessInDialog(angular.bind(stateMessage, stateMessage.toggleFlag)) callback: _unlessInDialog(angular.bind(stateMessage, stateMessage.toggleFlag))
})); }));
keys.push(sgHotkeys.createHotkey({ _.forEach(['backspace', 'delete'], function(hotkey) {
key: 'backspace', keys.push(sgHotkeys.createHotkey({
callback: _unlessInDialog(function($event) { key: hotkey,
if (vm.mailbox.$selectedCount() === 0) callback: _unlessInDialog(function($event) {
deleteMessage(); if (vm.mailbox.$selectedCount() === 0)
$event.preventDefault(); deleteMessage();
}) $event.preventDefault();
})); }),
}));
});
// Register the hotkeys // Register the hotkeys
_.forEach(keys, function(key) { _.forEach(keys, function(key) {