From 3c20ec828d3a8d5da7bcad4b92c6414f31a32dc6 Mon Sep 17 00:00:00 2001 From: Giovane Date: Mon, 14 Sep 2015 18:42:02 -0300 Subject: #442 Moves feedback files to a dedicated folder. --- web-ui/app/js/feedback/feedback.js | 39 ++++++++++++++++++++++++++++++ web-ui/app/js/page/default.js | 4 +-- web-ui/app/js/page/feedback.js | 39 ------------------------------ web-ui/app/js/views/templates.js | 4 ++- web-ui/app/templates/feedback/feedback.hbs | 8 ++++++ web-ui/app/templates/page/feedback.hbs | 8 ------ web-ui/test/spec/feedback/feedback.spec.js | 38 +++++++++++++++++++++++++++++ web-ui/test/spec/page/feedback.spec.js | 38 ----------------------------- web-ui/test/test-main.js | 1 + 9 files changed, 91 insertions(+), 88 deletions(-) create mode 100644 web-ui/app/js/feedback/feedback.js delete mode 100644 web-ui/app/js/page/feedback.js create mode 100644 web-ui/app/templates/feedback/feedback.hbs delete mode 100644 web-ui/app/templates/page/feedback.hbs create mode 100644 web-ui/test/spec/feedback/feedback.spec.js delete mode 100644 web-ui/test/spec/page/feedback.spec.js diff --git a/web-ui/app/js/feedback/feedback.js b/web-ui/app/js/feedback/feedback.js new file mode 100644 index 00000000..e98c3e30 --- /dev/null +++ b/web-ui/app/js/feedback/feedback.js @@ -0,0 +1,39 @@ +/* + * 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 . + */ + +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.feedback()); + }; + + this.onClick = function() { + this.trigger(document, events.ui.feedback.open); + }; + + this.after('initialize', function () { + if (features.isEnabled('feedback')) { + this.render(); + this.on('click', this.onClick); + } + }); + + }); +}); diff --git a/web-ui/app/js/page/default.js b/web-ui/app/js/page/default.js index 42aec759..d0a8fcd7 100644 --- a/web-ui/app/js/page/default.js +++ b/web-ui/app/js/page/default.js @@ -41,9 +41,9 @@ define( 'views/i18n', 'views/recipientListFormatter', 'flight/lib/logger', + 'feedback/feedback', 'page/logout', 'page/logout_shortcut', - 'page/feedback', 'page/version', ], @@ -73,9 +73,9 @@ define( viewI18n, recipientListFormatter, withLogging, + feedback, logout, logoutShortcut, - feedback, version) { 'use strict'; diff --git a/web-ui/app/js/page/feedback.js b/web-ui/app/js/page/feedback.js deleted file mode 100644 index 2ced9fee..00000000 --- a/web-ui/app/js/page/feedback.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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 . - */ - -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.page.feedback()); - }; - - this.onClick = function() { - this.trigger(document, events.ui.feedback.open); - }; - - this.after('initialize', function () { - if (features.isEnabled('feedback')) { - this.render(); - this.on('click', this.onClick); - } - }); - - }); -}); diff --git a/web-ui/app/js/views/templates.js b/web-ui/app/js/views/templates.js index 1d9861db..77864569 100644 --- a/web-ui/app/js/views/templates.js +++ b/web-ui/app/js/views/templates.js @@ -58,8 +58,10 @@ define(['hbs/templates'], function (templates) { page: { logout: window.Pixelated['app/templates/page/logout.hbs'], logoutShortcut: window.Pixelated['app/templates/page/logout_shortcut.hbs'], - feedback: window.Pixelated['app/templates/page/feedback.hbs'], version: window.Pixelated['app/templates/page/version.hbs'] + }, + feedback: { + feedback: window.Pixelated['app/templates/feedback/feedback.hbs'] } }; diff --git a/web-ui/app/templates/feedback/feedback.hbs b/web-ui/app/templates/feedback/feedback.hbs new file mode 100644 index 00000000..72f9b94b --- /dev/null +++ b/web-ui/app/templates/feedback/feedback.hbs @@ -0,0 +1,8 @@ + diff --git a/web-ui/app/templates/page/feedback.hbs b/web-ui/app/templates/page/feedback.hbs deleted file mode 100644 index 72f9b94b..00000000 --- a/web-ui/app/templates/page/feedback.hbs +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/web-ui/test/spec/feedback/feedback.spec.js b/web-ui/test/spec/feedback/feedback.spec.js new file mode 100644 index 00000000..d0f936e8 --- /dev/null +++ b/web-ui/test/spec/feedback/feedback.spec.js @@ -0,0 +1,38 @@ +describeComponent('feedback/feedback', function () { + 'use strict'; + + describe('Feedback form', function () { + var features; + + beforeEach(function() { + features = require('features'); + }); + + it('Should provide feedback link if logout is enabled', function () { + spyOn(features, 'isEnabled').and.returnValue(true); + this.setupComponent('', {}); + + var feedback_link = this.component.$node.find('a')[0]; + expect(feedback_link).toExist(); + }); + + it('Should not provide feedback link if disabled', function() { + spyOn(features, 'isEnabled').and.returnValue(false); + this.setupComponent('', {}); + + var feedback_link = this.component.$node.find('a')[0]; + expect(feedback_link).not.toExist(); + }); + + it('Should trigger ui:feedback:open event on click', function () { + + this.setupComponent('', {}); + var spy = spyOnEvent(document, Pixelated.events.ui.feedback.open); + + this.$node.find('a').click(); + expect(spy).toHaveBeenTriggeredOn(document); + }); + + }); +}); + diff --git a/web-ui/test/spec/page/feedback.spec.js b/web-ui/test/spec/page/feedback.spec.js deleted file mode 100644 index fd46fe5b..00000000 --- a/web-ui/test/spec/page/feedback.spec.js +++ /dev/null @@ -1,38 +0,0 @@ -describeComponent('page/feedback', function () { - 'use strict'; - - describe('Feedback form', function () { - var features; - - beforeEach(function() { - features = require('features'); - }); - - it('Should provide feedback link if logout is enabled', function () { - spyOn(features, 'isEnabled').and.returnValue(true); - this.setupComponent('', {}); - - var feedback_link = this.component.$node.find('a')[0]; - expect(feedback_link).toExist(); - }); - - it('Should not provide feedback link if disabled', function() { - spyOn(features, 'isEnabled').and.returnValue(false); - this.setupComponent('', {}); - - var feedback_link = this.component.$node.find('a')[0]; - expect(feedback_link).not.toExist(); - }); - - it('Should trigger ui:feedback:open event on click', function () { - - this.setupComponent('', {}); - var spy = spyOnEvent(document, Pixelated.events.ui.feedback.open); - - this.$node.find('a').click(); - expect(spy).toHaveBeenTriggeredOn(document); - }); - - }); -}); - diff --git a/web-ui/test/test-main.js b/web-ui/test/test-main.js index 9cd5b12a..42ff1ba2 100644 --- a/web-ui/test/test-main.js +++ b/web-ui/test/test-main.js @@ -16,6 +16,7 @@ requirejs.config({ 'flight': 'app/bower_components/flight', 'views': 'app/js/views', 'helpers': 'app/js/helpers', + 'feedback': 'app/js/feedback', 'tags': 'app/js/tags', 'mail_list': 'app/js/mail_list', 'mail_list_actions': 'app/js/mail_list_actions', -- cgit v1.2.3