diff options
Diffstat (limited to 'web-ui/public/js/dispatchers')
-rw-r--r-- | web-ui/public/js/dispatchers/left_pane_dispatcher.js | 62 | ||||
-rw-r--r-- | web-ui/public/js/dispatchers/middle_pane_dispatcher.js | 74 | ||||
-rw-r--r-- | web-ui/public/js/dispatchers/right_pane_dispatcher.js | 117 |
3 files changed, 0 insertions, 253 deletions
diff --git a/web-ui/public/js/dispatchers/left_pane_dispatcher.js b/web-ui/public/js/dispatchers/left_pane_dispatcher.js deleted file mode 100644 index 0037a88f..00000000 --- a/web-ui/public/js/dispatchers/left_pane_dispatcher.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2014 ThoughtWorks, Inc. - * - * Pixelated 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. - * - * Pixelated 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 Pixelated. If not, see <http://www.gnu.org/licenses/>. - */ -define( - [ - 'flight/lib/component', - 'page/router/url_params', - 'page/events' - ], - - function(defineComponent, urlParams, events) { - 'use strict'; - - return defineComponent(leftPaneDispatcher); - - function leftPaneDispatcher() { - var initialized = false; - - this.refreshTagList = function (ev, data) { - this.trigger(document, events.tags.want, { caller: this.$node, skipMailListRefresh: data.skipMailListRefresh }); - }; - - this.loadTags = function (ev, data) { - this.trigger(document, events.ui.tagList.load, data); - }; - - this.selectTag = function (ev, data) { - var tag = (data && data.tag) || urlParams.getTag(); - this.trigger(document, events.ui.tag.select, { tag: tag, skipMailListRefresh: data.skipMailListRefresh }); - }; - - this.pushUrlState = function (ev, data) { - if (initialized) { - this.trigger(document, events.router.pushState, data); - } - initialized = true; - }; - - this.after('initialize', function () { - //this.on(this.$node, events.tags.received, this.loadTags); - this.on(document, events.dispatchers.tags.refreshTagList, this.refreshTagList); - this.on(document, events.ui.tags.loaded, this.selectTag); - this.on(document, events.ui.tag.selected, this.pushUrlState); - this.on(document, events.ui.tag.select, this.pushUrlState); - this.trigger(document, events.tags.want, { caller: this.$node }); - }); - } - } -); diff --git a/web-ui/public/js/dispatchers/middle_pane_dispatcher.js b/web-ui/public/js/dispatchers/middle_pane_dispatcher.js deleted file mode 100644 index 12222aec..00000000 --- a/web-ui/public/js/dispatchers/middle_pane_dispatcher.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2014 ThoughtWorks, Inc. - * - * Pixelated 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. - * - * Pixelated 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 Pixelated. If not, see <http://www.gnu.org/licenses/>. - */ -define(['flight/lib/component', 'page/events', 'helpers/triggering', 'mail_view/ui/no_mails_available_pane'], function(defineComponent, events, triggering, NoMailsAvailablePane) { - 'use strict'; - - return defineComponent(function() { - this.defaultAttrs({ - middlePane: '#middle-pane', - noMailsAvailablePane: 'no-mails-available-pane' - }); - - this.createChildDiv = function (component_id) { - var child_div = $('<div>', {id: component_id}); - this.select('middlePane').append(child_div); - return child_div; - }; - - this.resetChildDiv = function(component_id) { - $('#' + component_id).remove(); - }; - - this.refreshMailList = function (ev, data) { - this.trigger(document, events.ui.mails.fetchByTag, data); - }; - - this.cleanSelected = function(ev, data) { - this.trigger(document, events.ui.mails.cleanSelected); - }; - - this.resetScroll = function() { - this.select('middlePane').scrollTop(0); - }; - - this.updateMiddlePaneHeight = function() { - var vh = $(window).height(); - var top = $('#main').outerHeight() + $('#top-pane').outerHeight(); - this.select('middlePane').css({height: (vh - top) + 'px'}); - }; - - this.onMailsChange = function (ev, data) { - this.resetChildDiv(this.attr.noMailsAvailablePane); - if (data.mails.length > 0) { - NoMailsAvailablePane.teardownAll(); - } else { - var child_div = this.createChildDiv(this.attr.noMailsAvailablePane); - NoMailsAvailablePane.attachTo(child_div, {tag: data.tag, forSearch: data.forSearch}); - } - }; - - this.after('initialize', function () { - this.on(document, events.dispatchers.middlePane.refreshMailList, this.refreshMailList); - this.on(document, events.dispatchers.middlePane.cleanSelected, this.cleanSelected); - this.on(document, events.dispatchers.middlePane.resetScroll, this.resetScroll); - this.on(document, events.mails.available, this.onMailsChange); - - this.updateMiddlePaneHeight(); - $(window).on('resize', this.updateMiddlePaneHeight.bind(this)); - }); - }); -}); diff --git a/web-ui/public/js/dispatchers/right_pane_dispatcher.js b/web-ui/public/js/dispatchers/right_pane_dispatcher.js deleted file mode 100644 index 870bcd92..00000000 --- a/web-ui/public/js/dispatchers/right_pane_dispatcher.js +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2014 ThoughtWorks, Inc. - * - * Pixelated 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. - * - * Pixelated 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 Pixelated. If not, see <http://www.gnu.org/licenses/>. - */ - -define( - [ - 'flight/lib/component', - 'mail_view/ui/compose_box', - 'mail_view/ui/mail_view', - 'mail_view/ui/reply_section', - 'mail_view/ui/draft_box', - 'mail_view/ui/no_message_selected_pane', - 'mail_view/ui/feedback_box', - 'page/events' - ], - - function(defineComponent, ComposeBox, MailView, ReplySection, DraftBox, NoMessageSelectedPane, FeedbackBox, events) { - 'use strict'; - - return defineComponent(rightPaneDispatcher); - - function rightPaneDispatcher() { - this.defaultAttrs({ - rightPane: '#right-pane', - composeBox: 'compose-box', - feedbackBox: 'feedback-box', - mailView: 'mail-view', - noMessageSelectedPane: 'no-message-selected-pane', - replySection: 'reply-section', - draftBox: 'draft-box', - currentTag: '' - }); - - this.createAndAttach = function(newContainer) { - var stage = $('<div>', { id: newContainer }); - this.select('rightPane').append(stage); - return stage; - }; - - this.reset = function (newContainer) { - this.trigger(document, events.dispatchers.rightPane.clear); - this.select('rightPane').empty(); - var stage = this.createAndAttach(newContainer); - return stage; - }; - - this.openComposeBox = function() { - var stage = this.reset(this.attr.composeBox); - ComposeBox.attachTo(stage, {currentTag: this.attr.currentTag}); - }; - - this.openFeedbackBox = function() { - var stage = this.reset(this.attr.feedbackBox); - FeedbackBox.attachTo(stage); - }; - - this.openMail = function(ev, data) { - var stage = this.reset(this.attr.mailView); - MailView.attachTo(stage, data); - - var replySectionContainer = this.createAndAttach(this.attr.replySection); - ReplySection.attachTo(replySectionContainer, { ident: data.ident }); - }; - - this.initializeNoMessageSelectedPane = function () { - var stage = this.reset(this.attr.noMessageSelectedPane); - NoMessageSelectedPane.attachTo(stage); - this.trigger(document, events.dispatchers.middlePane.cleanSelected); - }; - - this.openNoMessageSelectedPane = function(ev, data) { - this.initializeNoMessageSelectedPane(); - - this.trigger(document, events.router.pushState, { tag: this.attr.currentTag, isDisplayNoMessageSelected: true }); - }; - - this.openDraft = function (ev, data) { - var stage = this.reset(this.attr.draftBox); - DraftBox.attachTo(stage, { mailIdent: data.ident, currentTag: this.attr.currentTag }); - }; - - this.selectTag = function(ev, data) { - this.trigger(document, events.ui.tags.loaded, {tag: data.tag}); - }; - - this.saveTag = function(ev, data) { - this.attr.currentTag = data.tag; - }; - - this.after('initialize', function () { - this.on(document, events.dispatchers.rightPane.openComposeBox, this.openComposeBox); - 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.dispatchers.rightPane.selectTag, this.selectTag); - this.on(document, events.ui.tag.selected, this.saveTag); - this.on(document, events.ui.tag.select, this.saveTag); - this.on(document, events.dispatchers.rightPane.openNoMessageSelectedWithoutPushState, this.initializeNoMessageSelectedPane); - this.initializeNoMessageSelectedPane(); - }); - } - } -); |