From dc5be05a5fa8d59565ee1ac0c8bd63a2dba033f7 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 2 Aug 2019 19:19:14 +0200 Subject: [PATCH] Select all records on the current list page with CTRL + A (#6813) --- CHANGELOG | 1 + program/js/list.js | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 880010542..8d2fac62e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -13,6 +13,7 @@ CHANGELOG Roundcube Webmail - Plugin API: Add 'render_folder_selector' hook - Added 'keyservers' option to define list of HKP servers for Enigma/Mailvelope (#6326) - Added flag to disable server certificate validation via Mysql DSN argument (#6848) +- Select all records on the current list page with CTRL + A (#6813) - Changes in `display_next` setting (#6795): - Move it to Preferences > User Interface > Main Options - Make it apply to Contacts interface too diff --git a/program/js/list.js b/program/js/list.js index f3a5fcb30..adc752dbd 100644 --- a/program/js/list.js +++ b/program/js/list.js @@ -1123,7 +1123,7 @@ select_next: function(uid) /** - * Select first row + * Select first row */ select_first: function(mod_key) { @@ -1441,8 +1441,8 @@ key_press: function(e) rcube_event.cancel(e); return this.select_row(this.last_selected, mod_key, true); - case 37: // Left arrow key - case 39: // Right arrow key + case 37: // Left arrow + case 39: // Right arrow // Stop propagation rcube_event.cancel(e); var ret = this.use_arrow_key(keyCode, mod_key); @@ -1460,7 +1460,15 @@ key_press: function(e) this.select_last(mod_key); return rcube_event.cancel(e); - case 27: + case 65: // Ctrl + A + if (mod_key == CONTROL_KEY && this.multiselect) { + this.select_first(); + this.select_last(SHIFT_KEY); + return rcube_event.cancel(e); + } + break; + + case 27: // Esc if (this.drag_active) return this.drag_mouse_up(e);