Merge branch 'hotfix/21.56.9' into master
[gitter.git] / public / js / views / modals / delete-room-view.js
blobc0631f9545263b33d8b728b1865c76b9a0af9283
1 'use strict';
3 var Marionette = require('backbone.marionette');
4 var ModalView = require('./modal');
5 var context = require('gitter-web-client-context');
6 var apiClient = require('../../components/api-client');
7 var appEvents = require('../../utils/appevents');
8 var DelayLock = require('../../models/delay-lock-model');
9 var template = require('./tmpl/delete-room-view.hbs');
11 var View = Marionette.ItemView.extend({
12   tagName: 'p',
13   attributes: { style: 'padding-bottom: 15px' },
14   modelEvents: {
15     change: 'render'
16   },
17   initialize: function() {
18     this.listenTo(this, 'menuItemClicked', this.menuItemClicked);
19   },
20   template: template,
21   menuItemClicked: function(button) {
22     switch (button) {
23       case 'delete':
24         apiClient.room.delete().then(function() {
25           appEvents.trigger('navigation', '/home', 'home', '');
26         });
27         break;
29       case 'cancel':
30         this.dialog.hide();
31         break;
32     }
33   }
34 });
36 var Modal = ModalView.extend({
37   initialize: function(options) {
38     options = options || {};
39     options.title = 'Careful Now...';
40     var roomName = context.troupe().get('uri');
41     options.menuItems = [
42       {
43         disabled: true,
44         action: 'delete',
45         text: 'Delete "' + roomName + '"',
46         className: 'modal--default__footer__btn--negative'
47       }
48     ];
50     var lock = new DelayLock();
52     this.listenTo(lock, 'change:locked', function() {
53       this.setButtonState('delete', true);
54     });
56     ModalView.prototype.initialize.call(this, options);
57     this.view = new View({
58       model: lock
59     });
60   }
61 });
63 module.exports = Modal;