From f594529222d7da7c4d825841a9c501a57ba90e40 Mon Sep 17 00:00:00 2001 From: Giovane Date: Mon, 14 Sep 2015 15:54:59 -0300 Subject: #442 Add feature hiddig to feedback link. --- service/pixelated/resources/features_resource.py | 15 +++++++------- web-ui/app/js/page/feedback.js | 9 ++++++--- web-ui/test/spec/page/feedback.spec.js | 25 ++++++++++++++++++++++-- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/service/pixelated/resources/features_resource.py b/service/pixelated/resources/features_resource.py index 6a1a49ca..0770d867 100644 --- a/service/pixelated/resources/features_resource.py +++ b/service/pixelated/resources/features_resource.py @@ -20,13 +20,14 @@ from twisted.web.resource import Resource class FeaturesResource(Resource): - DISABLED_FEATURES = ['draftReply'] - isLeaf = True def render_GET(self, request): - try: - disabled_features = {'logout': os.environ['DISPATCHER_LOGOUT_URL']} - except KeyError: - disabled_features = {} - return respond_json({'disabled_features': self.DISABLED_FEATURES, 'dispatcher_features': disabled_features}, request) + disabled_features = ['draftReply'] + dispatcher_features = {'logout': os.environ.get('DISPATCHER_LOGOUT_URL')} + + if not os.environ.get('FEEDBACK_ENABLE'): + self.DISABLED_FEATURES.append('feedback') + + return respond_json( + {'disabled_features': disabled_features, 'dispatcher_features': dispatcher_features}, request) diff --git a/web-ui/app/js/page/feedback.js b/web-ui/app/js/page/feedback.js index 34af9b67..48747280 100644 --- a/web-ui/app/js/page/feedback.js +++ b/web-ui/app/js/page/feedback.js @@ -15,7 +15,8 @@ * along with Pixelated. If not, see . */ -define(['flight/lib/component', 'views/templates', 'page/events'], function (defineComponent, templates, events) { +define(['flight/lib/component', 'views/templates', 'page/events', 'features'], + function (defineComponent, templates, events, features) { 'use strict'; return defineComponent(function () { @@ -28,8 +29,10 @@ define(['flight/lib/component', 'views/templates', 'page/events'], function (def } this.after('initialize', function () { - this.render(); - this.on('click', this.onClick); + if (features.isEnabled('feedback')) { + this.render(); + this.on('click', this.onClick); + } }); }); diff --git a/web-ui/test/spec/page/feedback.spec.js b/web-ui/test/spec/page/feedback.spec.js index 1435a4b8..fd46fe5b 100644 --- a/web-ui/test/spec/page/feedback.spec.js +++ b/web-ui/test/spec/page/feedback.spec.js @@ -1,9 +1,30 @@ describeComponent('page/feedback', function () { 'use strict'; - describe('feedback link', function () { + describe('Feedback form', function () { + var features; - it('should trigger ui:feedback:open event on click', function () { + 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); -- cgit v1.2.3