summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovane <giovaneliberato@gmail.com>2015-09-14 15:54:59 -0300
committerGiovane <giovaneliberato@gmail.com>2015-09-14 15:55:37 -0300
commitf594529222d7da7c4d825841a9c501a57ba90e40 (patch)
tree9128906974a6da969672930ef178d04f8db54e6a
parent424f135cf1c777399ff6659b7e5ba1d1f37593ea (diff)
#442 Add feature hiddig to feedback link.
-rw-r--r--service/pixelated/resources/features_resource.py15
-rw-r--r--web-ui/app/js/page/feedback.js9
-rw-r--r--web-ui/test/spec/page/feedback.spec.js25
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 <http://www.gnu.org/licenses/>.
*/
-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('<nav id="feedback"></nav>', {});
+
+ 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('<nav id="feedback"></nav>', {});
+
+ 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('<nav id="feedback"></nav>', {});
var spy = spyOnEvent(document, Pixelated.events.ui.feedback.open);