From 29bfdd509d88aef16873207683302bec22bfe5a9 Mon Sep 17 00:00:00 2001 From: Bruno Wagner Date: Tue, 5 Jan 2016 10:54:37 -0200 Subject: Revert "Issue #25 - Implemented shortcuts on UI" This reverts commit aa66beb0c74ebaa950a083ed991f6e5f50f9c9ac. This commit broke the functional tests, so we are reverting it for now, while we fix it --- web-ui/app/js/dispatchers/right_pane_dispatcher.js | 10 -- web-ui/app/js/mail_view/ui/mail_actions.js | 15 ++- web-ui/app/js/mail_view/ui/reply_section.js | 4 - web-ui/app/js/page/default.js | 5 +- web-ui/app/js/page/events.js | 9 -- web-ui/app/js/page/shortcuts.js | 146 --------------------- web-ui/app/js/search/search_trigger.js | 5 - web-ui/app/js/services/delete_service.js | 1 - 8 files changed, 9 insertions(+), 186 deletions(-) delete mode 100644 web-ui/app/js/page/shortcuts.js (limited to 'web-ui') diff --git a/web-ui/app/js/dispatchers/right_pane_dispatcher.js b/web-ui/app/js/dispatchers/right_pane_dispatcher.js index 4d28588a..870bcd92 100644 --- a/web-ui/app/js/dispatchers/right_pane_dispatcher.js +++ b/web-ui/app/js/dispatchers/right_pane_dispatcher.js @@ -100,22 +100,12 @@ define( this.attr.currentTag = data.tag; }; - this.shortcutOpenComposeBox = function() { - this.trigger(document, events.dispatchers.rightPane.openComposeBox); - }; - - this.shortcutCloseMail = function() { - this.trigger(document, events.dispatchers.rightPane.openNoMessageSelected); - }; - this.after('initialize', function () { this.on(document, events.dispatchers.rightPane.openComposeBox, this.openComposeBox); - this.on(document, events.shortcuts.openComposeBox, this.shortcutOpenComposeBox); this.on(document, events.dispatchers.rightPane.openDraft, this.openDraft); this.on(document, events.ui.mail.open, this.openMail); this.on(document, events.dispatchers.rightPane.openFeedbackBox, this.openFeedbackBox); this.on(document, events.dispatchers.rightPane.openNoMessageSelected, this.openNoMessageSelectedPane); - this.on(document, events.shortcuts.closeMail, this.shortcutCloseMail); this.on(document, events.dispatchers.rightPane.selectTag, this.selectTag); this.on(document, events.ui.tag.selected, this.saveTag); this.on(document, events.ui.tag.select, this.saveTag); diff --git a/web-ui/app/js/mail_view/ui/mail_actions.js b/web-ui/app/js/mail_view/ui/mail_actions.js index aa90169f..65cd0aaa 100644 --- a/web-ui/app/js/mail_view/ui/mail_actions.js +++ b/web-ui/app/js/mail_view/ui/mail_actions.js @@ -37,13 +37,11 @@ define( moreActions: '#more-actions' }); - this.deleteMail = function () { - this.trigger(document, events.ui.mail.delete, {mail: this.attr.mail}); - this.select('moreActions').hide(); - }; this.displayMailActions = function () { + this.$node.html(templates.mails.mailActions()); + this.select('moreActions').hide(); this.on(this.select('replyButtonTop'), 'click', function () { @@ -55,6 +53,11 @@ define( this.select('moreActions').hide(); }.bind(this)); + this.on(this.select('deleteButtonTop'), 'click', function () { + this.trigger(document, events.ui.mail.delete, {mail: this.attr.mail}); + this.select('moreActions').hide(); + }.bind(this)); + this.on(this.select('viewMoreActions'), 'click', function () { this.select('moreActions').toggle(); }.bind(this)); @@ -69,14 +72,12 @@ define( this.select('moreActions').hide(); } }.bind(this)); + }; this.after('initialize', function () { this.on(document, events.dispatchers.rightPane.clear, this.teardown); - this.on(document, events.shortcuts.deleteMail, this.deleteMail); - this.displayMailActions(); - this.on(this.select('deleteButtonTop'), 'click', this.deleteMail); }); } } diff --git a/web-ui/app/js/mail_view/ui/reply_section.js b/web-ui/app/js/mail_view/ui/reply_section.js index 71e27b1e..46dfe863 100644 --- a/web-ui/app/js/mail_view/ui/reply_section.js +++ b/web-ui/app/js/mail_view/ui/reply_section.js @@ -112,10 +112,6 @@ define( this.on(document, events.mail.draftReply.notFound, this.showButtons); this.on(document, events.mail.draftReply.here, this.showDraftReply); - this.on(document, events.shortcuts.replyMail, this.showReply); - this.on(document, events.shortcuts.replyAllMail, this.showReplyAll); - this.on(document, events.shortcuts.forwardMail, this.showForward); - this.checkForDraftReply(); }); } diff --git a/web-ui/app/js/page/default.js b/web-ui/app/js/page/default.js index 91c9c904..e33ec723 100644 --- a/web-ui/app/js/page/default.js +++ b/web-ui/app/js/page/default.js @@ -51,7 +51,6 @@ define( 'mail_view/data/feedback_sender', 'page/version', 'page/unread_count_title', - 'page/shortcuts' ], function ( @@ -89,8 +88,7 @@ define( feedbackBox, feedbackSender, version, - unreadCountTitle, - shortcuts) { + unreadCountTitle) { 'use strict'; function initialize(path) { @@ -131,7 +129,6 @@ define( feedbackSender.attachTo(document); unreadCountTitle.attachTo(document); - shortcuts.attachTo(document); } return initialize; diff --git a/web-ui/app/js/page/events.js b/web-ui/app/js/page/events.js index 6d67e671..406c3b23 100644 --- a/web-ui/app/js/page/events.js +++ b/web-ui/app/js/page/events.js @@ -206,15 +206,6 @@ define(function () { tags: { refreshTagList: 'dispatchers:tag:refresh' } - }, - shortcuts: { - openComposeBox: 'shortcuts:openComposeBox', - closeMail: 'shortcuts:closeMail', - focusSearchField: 'shortcuts:focusSearchField', - replyMail: 'shortcuts:replyMail', - replyAllMail: 'shortcuts:replyAllMail', - forwardMail: 'shortcuts:forwardMail', - deleteMail: 'shortcuts:deleteMail' } }; 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); - }); - } -}); diff --git a/web-ui/app/js/search/search_trigger.js b/web-ui/app/js/search/search_trigger.js index cb670239..4b9cb1dc 100644 --- a/web-ui/app/js/search/search_trigger.js +++ b/web-ui/app/js/search/search_trigger.js @@ -68,10 +68,6 @@ define( } }; - this.shortcutFocusSearchField = function() { - this.$node.find('input[type=search]').focus(); - }; - this.after('initialize', function () { this.render(); this.on(this.select('form'), 'submit', this.search); @@ -79,7 +75,6 @@ define( this.on(this.select('input'), 'blur', this.showSearchTermsAndPlaceHolder); this.on(document, events.ui.tag.selected, this.clearInput); this.on(document, events.ui.tag.select, this.clearInput); - this.on(document, events.shortcuts.focusSearchField, this.shortcutFocusSearchField); }); } } diff --git a/web-ui/app/js/services/delete_service.js b/web-ui/app/js/services/delete_service.js index 92b5838b..5cf86d63 100644 --- a/web-ui/app/js/services/delete_service.js +++ b/web-ui/app/js/services/delete_service.js @@ -53,7 +53,6 @@ define(['flight/lib/component', 'page/events', 'views/i18n'], function (defineCo this.after('initialize', function () { this.on(document, events.ui.mail.delete, this.deleteEmail); this.on(document, events.ui.mail.deleteMany, this.deleteManyEmails); - this.on(document, events.shortcuts.deleteMail, this.deleteEmail); }); }); -- cgit v1.2.3