in webui/js/source/key-commands.js [138:189]
function keyCommands(e) {
if (!e.ctrlKey) {
// Get calling element and its type
let target = e.target || e.srcElement;
let type = target.tagName;
// We won't jump out of an input field!
if (['INPUT', 'TEXTAREA', 'SELECT'].has(type)) {
return;
}
switch (e.key) {
case 's':
document.getElementById('q').focus();
return;
case 'h':
showHelp();
return;
case 'c':
compose_email(null, `${G_current_list}@${G_current_domain}`);
return;
case 'r':
if (G_current_open_email && G_full_emails[G_current_open_email]) {
compose_email(G_current_open_email);
}
return;
case 'Escape':
hideWindows();
return;
case 'ArrowRight': // quick-next
if (G_current_json) { // IF list view...
let blobs = G_current_json.emails;
if (G_current_listmode == 'threaded') blobs = G_current_json.thread_struct;
let no_emails = blobs.length;
if (G_current_email_idx == undefined && G_current_json && (G_current_index_pos + G_current_per_page) < no_emails) {
listview_header({
pos: G_current_index_pos + G_current_per_page
}, G_current_json);
}
}
return;
case 'ArrowLeft': // quick previous
if (G_current_json) { // IF list view...
if (G_current_email_idx == undefined && G_current_json && (G_current_index_pos - G_current_per_page) >= 0) {
listview_header({
pos: G_current_index_pos - G_current_per_page
}, G_current_json);
}
}
return;
}
}
}