diff options
author | Giovane <giovaneliberato@gmail.com> | 2015-09-15 16:37:24 -0300 |
---|---|---|
committer | Giovane <giovaneliberato@gmail.com> | 2015-09-15 17:06:54 -0300 |
commit | 78ece9852d5584e0681b4fffd91c704bd9919a1c (patch) | |
tree | 8ecdaa91fb1903c4d67a04614300de84171d8d4d /web-ui/app/js | |
parent | 75eafc2b5dfa7fa4eaa2a1770fbfcb628727ee47 (diff) |
#442 adds feedback compose box component.
Diffstat (limited to 'web-ui/app/js')
-rw-r--r-- | web-ui/app/js/dispatchers/right_pane_dispatcher.js | 10 | ||||
-rw-r--r-- | web-ui/app/js/feedback/compose_feedback.js | 40 | ||||
-rw-r--r-- | web-ui/app/js/views/templates.js | 3 |
3 files changed, 51 insertions, 2 deletions
diff --git a/web-ui/app/js/dispatchers/right_pane_dispatcher.js b/web-ui/app/js/dispatchers/right_pane_dispatcher.js index 8de89858..7de6f07a 100644 --- a/web-ui/app/js/dispatchers/right_pane_dispatcher.js +++ b/web-ui/app/js/dispatchers/right_pane_dispatcher.js @@ -23,10 +23,11 @@ define( 'mail_view/ui/reply_section', 'mail_view/ui/draft_box', 'mail_view/ui/no_message_selected_pane', + 'feedback/compose_feedback', 'page/events' ], - function(defineComponent, ComposeBox, MailView, ReplySection, DraftBox, NoMessageSelectedPane, events) { + function(defineComponent, ComposeBox, MailView, ReplySection, DraftBox, NoMessageSelectedPane, FeedbackBox, events) { 'use strict'; return defineComponent(rightPaneDispatcher); @@ -35,6 +36,7 @@ define( this.defaultAttrs({ rightPane: '#right-pane', composeBox: 'compose-box', + feedbackBox: 'feedback-box', mailView: 'mail-view', noMessageSelectedPane: 'no-message-selected-pane', replySection: 'reply-section', @@ -60,6 +62,11 @@ define( 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); @@ -97,6 +104,7 @@ define( 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.ui.feedback.open, 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); diff --git a/web-ui/app/js/feedback/compose_feedback.js b/web-ui/app/js/feedback/compose_feedback.js new file mode 100644 index 00000000..6fc454e0 --- /dev/null +++ b/web-ui/app/js/feedback/compose_feedback.js @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2015 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', 'views/templates', 'page/events', 'features'], + function (defineComponent, templates, events, features) { + 'use strict'; + + return defineComponent(function () { + this.render = function () { + this.$node.html(templates.feedback.compose_feedback()); + }; + + this.openComposeBox = function() { + var stage = this.reset('compose-box'); + this.attachTo(stage); + } + + this.after('initialize', function () { + if (features.isEnabled('feedback')) { + this.render(); + this.on(document, events.ui.feedback.open, this.openComposeBox); + } + }); + + }); +}); diff --git a/web-ui/app/js/views/templates.js b/web-ui/app/js/views/templates.js index 77864569..d0fc9893 100644 --- a/web-ui/app/js/views/templates.js +++ b/web-ui/app/js/views/templates.js @@ -61,7 +61,8 @@ define(['hbs/templates'], function (templates) { version: window.Pixelated['app/templates/page/version.hbs'] }, feedback: { - feedback: window.Pixelated['app/templates/feedback/feedback.hbs'] + feedback: window.Pixelated['app/templates/feedback/feedback.hbs'], + compose_feedback: window.Pixelated['app/templates/feedback/compose_feedback.hbs'] } }; |