Initial work on sending a different stanza for OMEMO messages
updates #497
This commit is contained in:
parent
a99e7a317e
commit
f906761dc0
@ -170,6 +170,15 @@
|
|||||||
const toggle = toolbar.querySelector('.toggle-omemo');
|
const toggle = toolbar.querySelector('.toggle-omemo');
|
||||||
expect(u.hasClass('fa-unlock', toggle)).toBe(false);
|
expect(u.hasClass('fa-unlock', toggle)).toBe(false);
|
||||||
expect(u.hasClass('fa-lock', toggle)).toBe(true);
|
expect(u.hasClass('fa-lock', toggle)).toBe(true);
|
||||||
|
|
||||||
|
const textarea = view.el.querySelector('.chat-textarea');
|
||||||
|
textarea.value = 'This message will be sent encrypted';
|
||||||
|
view.keyPressed({
|
||||||
|
target: textarea,
|
||||||
|
preventDefault: _.noop,
|
||||||
|
keyCode: 13
|
||||||
|
});
|
||||||
|
|
||||||
done();
|
done();
|
||||||
}).catch(_.partial(console.error, _));
|
}).catch(_.partial(console.error, _));
|
||||||
}));
|
}));
|
||||||
|
@ -308,8 +308,8 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
sendMessageStanza (message) {
|
sendMessageStanza (message) {
|
||||||
const messageStanza = this.createMessageStanza(message);
|
const stanza = this.createMessageStanza(message);
|
||||||
_converse.connection.send(messageStanza);
|
_converse.connection.send(stanza);
|
||||||
if (_converse.forward_messages) {
|
if (_converse.forward_messages) {
|
||||||
// Forward the message, so that other connected resources are also aware of it.
|
// Forward the message, so that other connected resources are also aware of it.
|
||||||
_converse.connection.send(
|
_converse.connection.send(
|
||||||
@ -322,7 +322,7 @@
|
|||||||
'xmns': Strophe.NS.DELAY,
|
'xmns': Strophe.NS.DELAY,
|
||||||
'stamp': moment().format()
|
'stamp': moment().format()
|
||||||
}).up()
|
}).up()
|
||||||
.cnode(messageStanza.tree())
|
.cnode(stanza.tree())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
], factory);
|
], factory);
|
||||||
}(this, function (converse, tpl_toolbar_omemo) {
|
}(this, function (converse, tpl_toolbar_omemo) {
|
||||||
|
|
||||||
const { Backbone, Promise, Strophe, sizzle, $iq, _, b64_sha1 } = converse.env;
|
const { Backbone, Promise, Strophe, sizzle, $iq, $msg, _, b64_sha1 } = converse.env;
|
||||||
const u = converse.env.utils;
|
const u = converse.env.utils;
|
||||||
|
|
||||||
Strophe.addNamespace('OMEMO', "eu.siacs.conversations.axolotl");
|
Strophe.addNamespace('OMEMO', "eu.siacs.conversations.axolotl");
|
||||||
@ -59,6 +59,42 @@
|
|||||||
dependencies: ["converse-chatview"],
|
dependencies: ["converse-chatview"],
|
||||||
|
|
||||||
overrides: {
|
overrides: {
|
||||||
|
|
||||||
|
ChatBox: {
|
||||||
|
|
||||||
|
createOMEMOMessageStanza (message) {
|
||||||
|
const { _converse } = this.__super__;
|
||||||
|
const stanza = $msg({
|
||||||
|
'from': _converse.connection.jid,
|
||||||
|
'to': this.get('jid'),
|
||||||
|
'type': this.get('message_type'),
|
||||||
|
'id': message.get('msgid')
|
||||||
|
}).c('body').t(message.get('message')).up()
|
||||||
|
.c(_converse.ACTIVE, {'xmlns': Strophe.NS.CHATSTATES}).up();
|
||||||
|
|
||||||
|
if (message.get('is_spoiler')) {
|
||||||
|
if (message.get('spoiler_hint')) {
|
||||||
|
stanza.c('spoiler', {'xmlns': Strophe.NS.SPOILER }, message.get('spoiler_hint')).up();
|
||||||
|
} else {
|
||||||
|
stanza.c('spoiler', {'xmlns': Strophe.NS.SPOILER }).up();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (message.get('file')) {
|
||||||
|
stanza.c('x', {'xmlns': Strophe.NS.OUTOFBAND}).c('url').t(message.get('message')).up();
|
||||||
|
}
|
||||||
|
return stanza;
|
||||||
|
},
|
||||||
|
|
||||||
|
createMessageStanza () {
|
||||||
|
if (this.get('omemo_active')) {
|
||||||
|
return this.createOMEMOMessageStanza.apply(this, arguments);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return this.__super__.createMessageStanza.apply(this, arguments);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
ChatBoxView: {
|
ChatBoxView: {
|
||||||
events: {
|
events: {
|
||||||
'click .toggle-omemo': 'toggleOMEMO'
|
'click .toggle-omemo': 'toggleOMEMO'
|
||||||
|
Loading…
Reference in New Issue
Block a user