Merge branch 'hotfix/21.56.9' into master
[gitter.git] / public / js / views / modals / notification-features-collection-view.js
blob89ea195aa8231159104a92065a860fa9edb077a5
1 'use strict';
3 var Marionette = require('backbone.marionette');
4 var Backbone = require('backbone');
5 var _ = require('lodash');
7 var View = Marionette.CollectionView.extend({
8   tagName: 'ul',
9   childView: Marionette.ItemView.extend({
10     tagName: 'li',
11     template: _.template('<%= text %>')
12   }),
13   initialize: function() {
14     this.collection = new Backbone.Collection([]);
15   },
16   resetFromHash: function(notificationFeaturesHash) {
17     var features = [];
18     if (notificationFeaturesHash.unread) {
19       features.push({ id: 1, text: 'Show unread item counts' });
20       features.push({
21         id: 6,
22         text:
23           'You will get emails for all unread messages which we know might be undesirable, see #1205'
24       });
25     }
27     if (notificationFeaturesHash.activity) {
28       features.push({ id: 2, text: 'Show activity indicator on chat' });
29     }
31     if (notificationFeaturesHash.desktop) {
32       features.push({ id: 5, text: 'Notify for all chats' });
33     }
35     if (notificationFeaturesHash.mention) {
36       features.push({ id: 3, text: "Notify when you're mentioned" });
37     }
39     if (notificationFeaturesHash.announcement) {
40       features.push({ id: 4, text: 'Notify on @/all announcements' });
41     }
43     // For now, desktop = mobile so don't confuse the user
44     // if (notificationFeaturesHash.mobile) {
45     //   features.push({ id: 6, text: 'Mobile notifications for chats' });
46     // }
48     this.collection.reset(features);
49     return features.length;
50   },
52   resetFromMode: function(mode) {
53     var features = [];
54     if (mode === 'all' || mode === 'announcement') {
55       features.push({ id: 1, text: 'Show unread item counts' });
56       features.push({
57         id: 6,
58         text:
59           'You will get emails for all unread messages which we know might be undesirable, see #1205'
60       });
61     }
63     if (mode === 'mute') {
64       features.push({ id: 2, text: 'Show activity indicator on chat' });
65     }
67     if (mode === 'all') {
68       features.push({ id: 5, text: 'Notify for all chats' });
69     }
71     features.push({ id: 3, text: "Notify when you're mentioned" });
73     if (mode === 'all' || mode === 'announcement') {
74       features.push({ id: 4, text: 'Notify on @/all announcements' });
75     }
77     this.collection.reset(features);
78     return features.length;
79   }
80 });
82 module.exports = View;