Page MenuHomePhorge

No OneTemporary

diff --git a/plugins/kolab_shortcuts/kolab_shortcuts.js b/plugins/kolab_shortcuts/kolab_shortcuts.js
index 4111fa78..07d10395 100644
--- a/plugins/kolab_shortcuts/kolab_shortcuts.js
+++ b/plugins/kolab_shortcuts/kolab_shortcuts.js
@@ -1,249 +1,249 @@
/**
* Kolab keyboard shortcuts
*
* @author Aleksander Machniak <machniak@kolabsys.com>
*
* @licstart The following is the entire license notice for the
* JavaScript code in this file.
*
* Copyright (C) 2015, Kolab Systems AG <contact@kolabsys.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*/
var kolab_shortcuts = {
'mail.refresh': {
key: 108, // Ctrl+L
ctrl: true,
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) { return rcmail.command('checkmail', '', e.target, e); }
},
'mail.copy': {
key: 99, // c
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
e = kolab_shortcuts_menu_target(e);
e.rcmail.command('copy', '', e.target, e);
e.target.remove();
}
},
'mail.edit': {
key: 116, // t
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
var mode = rcmail.env.mailbox == rcmail.env.drafts_mailbox ? '' : 'new';
return rcmail.command('edit', mode, e.target, e);
}
},
'mail.expand-all-threads': {
key: 46, // Ctrl+.
ctrl: true,
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
return rcmail.command('expand-all', '', e.target, e);
}
},
'mail.expand-thread': {
key: 46, // .
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
if (rcmail.message_list) {
var row, uid = rcmail.message_list.get_single_selection();
if (uid && (row = rcmail.message_list.rows[uid])) {
rcmail.message_list.expand_all(row);
}
}
}
},
'mail.collapse-all-threads': {
key: 44, // Ctrl+,
ctrl: true,
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
return rcmail.command('collapse-all', '', e.target, e);
}
},
'mail.collapse-thread': {
key: 44, // ,
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
if (rcmail.message_list) {
var row, uid = rcmail.message_list.get_single_selection();
if (uid && (row = rcmail.message_list.rows[uid])) {
rcmail.message_list.collapse_all(row);
}
}
}
},
'search.focus': {
key: 115, // s
active: function(e) { return true; },
action: function(e) {
if (!rcmail.is_framed())
$('#quicksearchbox').focus();
else if (window.parent && window.parent.$)
window.parent.$('#quicksearchbox').focus();
}
},
'mail.move': {
key: 109, // m
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
e = kolab_shortcuts_menu_target(e);
e.rcmail.command('move', '', e.target, e);
e.target.remove();
}
},
'mail.next-msg': {
key: 110, // n
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
if (rcmail.message_list)
return rcmail.message_list.select_next();
else
return rcmail.command('nextmessage', '', '', e);
}
},
'mail.prev-msg': {
key: 112, // p
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
if (rcmail.message_list)
return rcmail.message_list.use_arrow_key(38, false);
else
return rcmail.command('previousmessage', '', '', e);
}
},
'mail.replyall': {
key: 97, // a
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) { return rcmail.command('reply-all', 'sub', e.target, e); }
},
'mail.replylist': {
key: 108, // l
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
return rcmail.commands['reply-list'] ? rcmail.command('reply-list', '', e.target, e) : false;
}
},
'mail.reply': {
key: 114, // r
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) { return rcmail.command('reply', '', e.target, e); }
},
'mail.forward-attachment': {
key: 102, // f
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) { return rcmail.command('forward-attachment', 'sub', e.target, e); }
},
'mail.forward-inline': {
key: 70, // F
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) { return rcmail.command('forward-inline', 'sub', e.target, e); }
},
'mail.html2text': {
key: 72, // H
active: function(e) { return rcmail.task == 'mail'; },
action: function(e) {
var rc = rcmail;
// we're in list mode, get reference to preview window
if (rc.env.contentframe) {
var win = rc.get_frame_window(rc.env.contentframe);
if (!win || !win.rcmail)
return false;
rc = win.rcmail;
}
if (rc.env.optional_format) {
var format = rc.env.optional_format == 'html' ? 'html' : 'text';
return rc.command('change-format', format, e.target, e);
}
}
}
};
// create a fake element centered on the page,
// so folder selector popupup appears in the center
var kolab_shortcuts_menu_target = function(e)
{
var rc, target,
css = {visibility: 'hidden', width: 10, height: 10, margin: 'auto'};
if (rcmail.is_framed()) {
rc = parent.rcmail;
target = parent.$('<div>').css(css).appendTo(parent.$('body'));
}
else {
rc = rcmail;
target = $('<div>').css(css).appendTo($('body'));
}
e.target = target;
e.rcmail = rc;
return e;
};
var kolab_shortcuts_keypress = function(e)
{
var i, handler, key = e.which, alt = e.altKey, ctrl = e.ctrlKey;
- console.log(e.which);
+ //console.log(e.which);
// do nothing on input elements
if ($(e.target).is('textarea,input')) {
return true;
}
// do nothing if any popup menu is displayed
if ($('.popupmenu:visible').length) {
return true;
}
for (i in kolab_shortcuts) {
handler = kolab_shortcuts[i];
// check if presses key(s) match
if (handler.key == key
&& ((handler.ctrl && ctrl) || (!handler.ctrl && !ctrl))
&& ((handler.alt && alt) || (!handler.alt && !alt))
) {
// ... and action is active here
if (handler.active(e)) {
// execute action, the real check if action is active
// will be done in .action() or in rcmail.command()
handler.action(e);
e.preventDefault();
return false;
}
// we can break here, there can be only one handler
// for the specified shortcut
break;
}
}
return true;
};
// register the keypress handler
window.rcmail && $(document).ready(function() {
$(document).on('keypress.kolab_shortcuts', function(e) {
return kolab_shortcuts_keypress(e);
});
});

File Metadata

Mime Type
text/x-diff
Expires
Thu, Nov 21, 7:32 PM (8 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
80036
Default Alt Text
(8 KB)

Event Timeline