summaryrefslogtreecommitdiff
path: root/web-ui/app/js/page/shortcuts.js
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/app/js/page/shortcuts.js')
-rw-r--r--web-ui/app/js/page/shortcuts.js146
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);
- });
- }
-});