diff options
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']      }    }; | 
