diff options
Diffstat (limited to 'web-ui/app/js/page/shortcuts.js')
-rw-r--r-- | web-ui/app/js/page/shortcuts.js | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/web-ui/app/js/page/shortcuts.js b/web-ui/app/js/page/shortcuts.js deleted file mode 100644 index 2bb75d8c..00000000 --- a/web-ui/app/js/page/shortcuts.js +++ /dev/null @@ -1,146 +0,0 @@ -define([ - 'flight/lib/component', - 'page/events' -], -function(defineComponent, events) { -'use strict'; - - return defineComponent(shortcuts); - - function shortcuts() { - function hasInputFieldFocused() { - return $('input').is(':focus') || $('textarea').is(':focus'); - } - - function triggerOpenComposeBoxEvent() { - if(!hasInputFieldFocused()){ - this.trigger(document, events.shortcuts.openComposeBox); - event.preventDefault(); - } - } - - function triggerCloseBoxEvent() { - this.trigger(document, events.shortcuts.closeMail); - event.preventDefault(); - } - - function focusSearchField() { - if(!hasInputFieldFocused()) { - this.trigger(document, events.shortcuts.focusSearchField); - event.preventDefault(); - } - } - - function addTag() { - // TODO: refator to trigger an event that other component will handle - if(!hasInputFieldFocused()) { - event.preventDefault(); - $('#new-tag-button').click(); - } - } - - function triggerReplyEvent() { - if(!hasInputFieldFocused() && $('#reply-button').is(':visible')) { - this.trigger(document, events.shortcuts.replyMail); - } - } - - function triggerReplyAllEvent() { - if(!hasInputFieldFocused() && $('#reply-all-button').is(':visible')) { - this.trigger(document, events.shortcuts.replyAllMail); - } - } - - function triggerForwardEvent() { - if(!hasInputFieldFocused() && $('#forward-button').is(':visible')) { - this.trigger(document, events.shortcuts.forwardMail); - } - } - - function deleteMail() { - // TODO: refator to trigger an event that other component will handle - $('#delete-button-top').click(); - } - - function sendMail() { - // TODO: refator to trigger an event that other component will handle - $('#send-button').click(); - } - - function previousMail() { - if(!hasInputFieldFocused()) { - // TODO: implement previous mail logic - console.log('previous mail'); - } - } - - function nextMail() { - if(!hasInputFieldFocused()) { - // TODO: implement next mail logic - console.log('next mail'); - } - } - - var SPECIAL_CHARACTERES = { - 13: 'ENTER', - 27: 'ESC', - 33: 'PAGE-UP', - 34: 'PAGE-DOWN', - 37: 'LEFT', - 38: 'UP', - 39: 'RIGHT', - 40: 'DOWN', - 191: '/' - }; - - var SHORTCUT_MAP = { - 'C': triggerOpenComposeBoxEvent, - 'ESC': triggerCloseBoxEvent, - '/': focusSearchField, - 'S': focusSearchField, - 'T': addTag, - 'R': triggerReplyEvent, - 'A': triggerReplyAllEvent, - 'F': triggerForwardEvent, - 'SHIFT+3': deleteMail, - 'CTRL+ENTER': sendMail, - 'J': previousMail, - 'UP': previousMail, - 'K': nextMail, - 'DOWN': nextMail - }; - - this.convertCodeToShortcut = function(event) { - var shortcut = ''; - if(event.ctrlKey) { - shortcut += 'CTRL+'; - } - if(event.altKey) { - shortcut += 'ALT+'; - } - if(event.shiftKey) { - shortcut += 'SHIFT+'; - } - - if(SPECIAL_CHARACTERES.hasOwnProperty(event.which)) { - shortcut += SPECIAL_CHARACTERES[event.which]; - } else { - shortcut += String.fromCharCode(event.which); - } - - return shortcut; - }; - - this.riseEventFromShortcut = function(event) { - var shortcut = this.convertCodeToShortcut(event); - - if(SHORTCUT_MAP.hasOwnProperty(shortcut)) { - SHORTCUT_MAP[shortcut].apply(this); - } - }; - - this.after('initialize', function() { - this.on(document, 'keydown', this.riseEventFromShortcut); - }); - } -}); |