Merge branch 'hotfix/21.56.9' into master
[gitter.git] / public / js / views / chat / chatInputView.js
blob3ed33669ee19c8a1f2fd27632d12620772ce0790
1 'use strict';
3 var Backbone = require('backbone');
4 var Marionette = require('backbone.marionette');
5 var context = require('gitter-web-client-context');
6 var template = require('./tmpl/chatInputView.hbs');
7 var ChatInputBoxView = require('./chat-input-box-view');
8 var ChatInputButtons = require('./chat-input-buttons');
10 require('../behaviors/isomorphic');
12 var ChatInputView = Marionette.LayoutView.extend({
13   template: template,
15   behaviors: {
16     Widgets: {},
17     Isomorphic: {
18       chatInputBox: { el: '#chat-input-box-region', init: 'initChatInputBoxRegion' },
19       chatInputButtons: { el: '#chat-input-buttons-region', init: 'initChatInputButtonsRegion' }
20     }
21   },
23   regions: {
24     chatInputBox: '#chat-input-box-region',
25     chatInputButtons: '#chat-input-buttons-region'
26   },
28   initialize: function() {
29     // clean up old compose mode persistence in the next event loop.
30     // Remove this by 1 December 2015
31     setTimeout(function() {
32       window.localStorage.removeItem('compose_mode_enabled');
33     }, 0);
35     this.composeMode = new Backbone.Model({ isComposeModeEnabled: false });
36   },
38   serializeData: function() {
39     return { user: context.user() };
40   },
42   initChatInputBoxRegion: function(optionsForRegion) {
43     return new ChatInputBoxView(
44       optionsForRegion({
45         composeMode: this.composeMode,
46         collection: this.collection
47       })
48     );
49   },
51   initChatInputButtonsRegion: function(optionsForRegion) {
52     return new ChatInputButtons(
53       optionsForRegion({
54         model: this.composeMode
55       })
56     );
57   }
58 });
60 module.exports = ChatInputView;