Also show spoiler for sent messages.
This commit is contained in:
parent
d6da643a7f
commit
fa06b528e1
@ -753,18 +753,24 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let fullname = _converse.xmppstatus.get('fullname');
|
const attrs = this.getOutgoingMessageAttributes(text)
|
||||||
fullname = _.isEmpty(fullname)? _converse.bare_jid: fullname;
|
const message = this.model.messages.create(attrs);
|
||||||
|
|
||||||
const message = this.model.messages.create({
|
|
||||||
fullname,
|
|
||||||
sender: 'me',
|
|
||||||
time: moment().format(),
|
|
||||||
message: emojione.shortnameToUnicode(text)
|
|
||||||
});
|
|
||||||
this.sendMessage(message);
|
this.sendMessage(message);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getOutgoingMessageAttributes (text) {
|
||||||
|
/* Overridable method which returns the attributes to be
|
||||||
|
* passed to Backbone.Message's constructor.
|
||||||
|
*/
|
||||||
|
const fullname = _converse.xmppstatus.get('fullname');
|
||||||
|
return {
|
||||||
|
'fullname': _.isEmpty(fullname) ? _converse.bare_jid : fullname,
|
||||||
|
'sender': 'me',
|
||||||
|
'time': moment().format(),
|
||||||
|
'message': emojione.shortnameToUnicode(text)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
sendChatState () {
|
sendChatState () {
|
||||||
/* Sends a message with the status of the user in this chat session
|
/* Sends a message with the status of the user in this chat session
|
||||||
* as taken from the 'chat_state' attribute of the chat box.
|
* as taken from the 'chat_state' attribute of the chat box.
|
||||||
|
@ -61,11 +61,20 @@
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
isEditSpoilerMessage () {
|
getOutgoingMessageAttributes (text) {
|
||||||
return this.el.querySelector('.toggle-spoiler-edit').getAttribute('active') === 'true';
|
debugger;
|
||||||
|
const { __ } = this.__super__._converse,
|
||||||
|
attrs = this.__super__.getOutgoingMessageAttributes.apply(this, arguments);
|
||||||
|
|
||||||
|
if (this.model.get('sending_spoiler')) {
|
||||||
|
const spoiler = this.el.querySelector('.chat-textarea-hint')
|
||||||
|
attrs.is_spoiler = true;
|
||||||
|
attrs.spoiler_hint = spoiler.textContent.length > 0 ? spoiler.textContent : __('Spoiler');
|
||||||
|
}
|
||||||
|
return attrs;
|
||||||
},
|
},
|
||||||
|
|
||||||
'toggleSpoilerMessage': function (event) {
|
toggleSpoilerMessage (event) {
|
||||||
const { _converse } = this.__super__,
|
const { _converse } = this.__super__,
|
||||||
{ __ } = _converse;
|
{ __ } = _converse;
|
||||||
|
|
||||||
@ -109,7 +118,7 @@
|
|||||||
return hintTextArea;
|
return hintTextArea;
|
||||||
},
|
},
|
||||||
|
|
||||||
'toggleEditSpoilerMessage': function () {
|
toggleEditSpoilerMessage () {
|
||||||
const { _converse } = this.__super__,
|
const { _converse } = this.__super__,
|
||||||
{ __ } = _converse;
|
{ __ } = _converse;
|
||||||
|
|
||||||
@ -117,10 +126,10 @@
|
|||||||
const textArea = this.el.querySelector('.chat-textarea');
|
const textArea = this.el.querySelector('.chat-textarea');
|
||||||
const spoiler_button = this.el.querySelector('.toggle-spoiler-edit');
|
const spoiler_button = this.el.querySelector('.toggle-spoiler-edit');
|
||||||
|
|
||||||
if (this.isEditSpoilerMessage()) {
|
if (this.model.get('sending_spoiler')) {
|
||||||
textArea.style['background-color'] = '';
|
textArea.style['background-color'] = '';
|
||||||
textArea.setAttribute('placeholder', __('Personal message'));
|
textArea.setAttribute('placeholder', __('Personal message'));
|
||||||
spoiler_button.setAttribute("active", "false");
|
this.model.set('sending_spoiler', false);
|
||||||
spoiler_button.innerHTML = '<a class="icon-eye" title="' + __('Click here to write a message as a spoiler') + '"></a>'; // better get the element <a></a> and change the class?
|
spoiler_button.innerHTML = '<a class="icon-eye" title="' + __('Click here to write a message as a spoiler') + '"></a>'; // better get the element <a></a> and change the class?
|
||||||
const hintTextArea = document.querySelector('.chat-textarea-hint');
|
const hintTextArea = document.querySelector('.chat-textarea-hint');
|
||||||
if ( hintTextArea ) {
|
if ( hintTextArea ) {
|
||||||
@ -129,7 +138,7 @@
|
|||||||
} else {
|
} else {
|
||||||
textArea.style['background-color'] = '#D5FFD2';
|
textArea.style['background-color'] = '#D5FFD2';
|
||||||
textArea.setAttribute('placeholder', __('Write your spoiler\'s content here'));
|
textArea.setAttribute('placeholder', __('Write your spoiler\'s content here'));
|
||||||
spoiler_button.setAttribute("active", "true");
|
this.model.set('sending_spoiler', true);
|
||||||
// TODO template
|
// TODO template
|
||||||
spoiler_button.innerHTML = '<a class="icon-eye-blocked" title="' + __('Cancel writing spoiler message') + '"></a>';
|
spoiler_button.innerHTML = '<a class="icon-eye-blocked" title="' + __('Cancel writing spoiler message') + '"></a>';
|
||||||
// better get the element <a></a> and change the class?
|
// better get the element <a></a> and change the class?
|
||||||
@ -139,7 +148,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
addSpoilerElement (stanza) {
|
addSpoilerElement (stanza) {
|
||||||
if (this.isEditSpoilerMessage()) {
|
if (this.model.get('sending_spoiler')) {
|
||||||
const has_hint = this.el.querySelector('.chat-textarea-hint').value.length > 0;
|
const has_hint = this.el.querySelector('.chat-textarea-hint').value.length > 0;
|
||||||
if (has_hint) {
|
if (has_hint) {
|
||||||
const hint = document.querySelector('.chat-textarea-hint').value;
|
const hint = document.querySelector('.chat-textarea-hint').value;
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
<li class="toggle-spoiler-edit" data-active="false">
|
<li class="toggle-spoiler-edit">
|
||||||
<a class="icon-eye" title="{{ o.title }}"></a>
|
<a class="icon-eye" title="{{ o.title }}"></a>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user