|
@@ -366,13 +366,12 @@ converse.plugins.add('converse-chatview', {
|
|
|
},
|
|
|
|
|
|
render () {
|
|
|
- // XXX: Is this still needed?
|
|
|
- this.el.setAttribute('id', this.model.get('box_id'));
|
|
|
this.el.innerHTML = tpl_chatbox(
|
|
|
- Object.assign(this.model.toJSON(), {
|
|
|
- 'unread_msgs': __('You have unread messages')
|
|
|
- }
|
|
|
- ));
|
|
|
+ Object.assign(
|
|
|
+ this.model.toJSON(),
|
|
|
+ {'unread_msgs': __('You have unread messages')}
|
|
|
+ )
|
|
|
+ );
|
|
|
this.content = this.el.querySelector('.chat-content');
|
|
|
this.renderMessageForm();
|
|
|
this.insertHeading();
|
|
@@ -402,17 +401,11 @@ converse.plugins.add('converse-chatview', {
|
|
|
},
|
|
|
|
|
|
renderMessageForm () {
|
|
|
- let placeholder;
|
|
|
- if (this.model.get('composing_spoiler')) {
|
|
|
- placeholder = __('Hidden message');
|
|
|
- } else {
|
|
|
- placeholder = __('Message');
|
|
|
- }
|
|
|
const form_container = this.el.querySelector('.bottom-panel');
|
|
|
form_container.innerHTML = tpl_chatbox_message_form(
|
|
|
Object.assign(this.model.toJSON(), {
|
|
|
'hint_value': _.get(this.el.querySelector('.spoiler-hint'), 'value'),
|
|
|
- 'label_message': placeholder,
|
|
|
+ 'label_message': this.model.get('composing_spoiler') ? __('Hidden message') : __('Message'),
|
|
|
'label_send': __('Send'),
|
|
|
'label_spoiler_hint': __('Optional hint'),
|
|
|
'message_value': _.get(this.el.querySelector('.chat-textarea'), 'value'),
|
|
@@ -420,6 +413,8 @@ converse.plugins.add('converse-chatview', {
|
|
|
'show_toolbar': _converse.show_toolbar,
|
|
|
'unread_msgs': __('You have unread messages')
|
|
|
}));
|
|
|
+ const textarea_el = this.el.querySelector('.chat-textarea');
|
|
|
+ textarea_el.addEventListener('focus', () => this.emitFocused());
|
|
|
this.renderToolbar();
|
|
|
},
|
|
|
|
|
@@ -1256,17 +1251,21 @@ converse.plugins.add('converse-chatview', {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ emitFocused: _.debounce(() => {
|
|
|
+ /**
|
|
|
+ * Triggered when the focus has been moved to a particular chat.
|
|
|
+ * @event _converse#chatBoxFocused
|
|
|
+ * @type { _converse.ChatBoxView | _converse.ChatRoomView }
|
|
|
+ * @example _converse.api.listen.on('chatBoxFocused', view => { ... });
|
|
|
+ */
|
|
|
+ _converse.api.trigger('chatBoxFocused', this);
|
|
|
+ }, 25, {'leading': true}),
|
|
|
+
|
|
|
focus () {
|
|
|
const textarea_el = this.el.querySelector('.chat-textarea');
|
|
|
if (!_.isNull(textarea_el)) {
|
|
|
textarea_el.focus();
|
|
|
- /**
|
|
|
- * Triggered when the focus has been moved to a particular chat.
|
|
|
- * @event _converse#chatBoxFocused
|
|
|
- * @type { _converse.ChatBoxView | _converse.ChatRoomView }
|
|
|
- * @example _converse.api.listen.on('chatBoxFocused', view => { ... });
|
|
|
- */
|
|
|
- _converse.api.trigger('chatBoxFocused', this);
|
|
|
+ this.emitFocused();
|
|
|
}
|
|
|
return this;
|
|
|
},
|