Commit Graph

1841 Commits

Author SHA1 Message Date
JC Brand
7bb7f8f4dc Can now successfully send an encrypted stanza
updates #497
2018-08-23 14:03:16 +02:00
JC Brand
c1123fd6a0 Used wrong registration id and identity key when building a session
updates #497
2018-08-23 14:03:12 +02:00
JC Brand
058905134e Serialize all array buffers to base64 before storing
Array Buffers can't be JSON serialized as is.

updates #497
2018-08-23 14:03:09 +02:00
JC Brand
d4ccf20e7f Update modals when devices get added
updates #497
2018-08-23 14:03:06 +02:00
JC Brand
b17579501f Provide error output to user when encrypted message can't be sent
updates #497
2018-08-23 14:03:00 +02:00
JC Brand
7692a46e17 Nonsencical to wrap a promise in try/catch 2018-08-23 14:02:53 +02:00
JC Brand
069d4a9fae Remove unnecessary promise wrapper
updates #497
2018-08-23 14:02:50 +02:00
JC Brand
fd639e2da6 Remove the active flag for devices.
Instead of setting `active` to `false`, we remove the device entirely
(unless its the current device).

Doing it this way means more fetching of bundles for devices that
disappear and then reappear from a user's devicelist.

However, there might be caching invalidation concerns with just reusing
a cached bundle for a device id that disappeared and then reappears.

Additionally this change simplifies the showing of a contact's device
fingerprints in the modal, since we don't have to take active/inactive
into consideration.

updates #497
2018-08-23 14:02:43 +02:00
JC Brand
781ad3d643 Update to use _converse.config 2018-08-23 09:49:51 +02:00
JC Brand
5e9d6c3d6a Merge branch 'master' into converse-omemo 2018-08-23 09:45:13 +02:00
JC Brand
9f8d30dde3 Create a new store, _converse.config to store trusted
The `_converse.session` store gets cleared after logout, but we want the
`trusted` flag to persist after logout.

Also update the documentation no that the `storage` config option has
been removed in favor of `trusted`.
2018-08-23 09:41:39 +02:00
JC Brand
62cecbec5f Merge branch 'master' into converse-omemo 2018-08-22 23:41:36 +02:00
JC Brand
76a2192afa Singleton models need an id attribute via its getter
Setting it on the model itself is not sufficient and then causes
changes which should be type `update` become type `create`, causing
multiple versions of the model... resulting in chaos.
2018-08-22 23:39:42 +02:00
JC Brand
9ed2ad631a Store whether this is a trusted device in _converse.session
So that it persists across page loads. Otherwise storage falls back to
the default, causing records to be in both local- and sessionStorage.

Additionally, update singleton models to have the 'id' available as a getter.

Otherwise multiple records gets stored in browserStorage, causing random
results being returned.
2018-08-22 23:36:54 +02:00
JC Brand
f01b6c29c8 Collections shouldn't have id attributes
Otherwise the collection's items aren't fetched but it's own properties.
The way to persistently remove items from a collection is to destroy
them, NOT to call `remove`.
2018-08-22 19:26:38 +02:00
JC Brand
5ded22207b identity_key should be stored as base64, not array buffer 2018-08-22 18:32:31 +02:00
JC Brand
fa0e7aeff5 Updated so that own device is properly created and published
Based on live testing. Updated tests accordingly.
2018-08-22 18:16:36 +02:00
JC Brand
a422f07866 Bugfix. beforeTearDown event handler not fired in tests 2018-08-22 14:33:09 +02:00
JC Brand
75bd24c19e Update device lists in modals if devices get removed 2018-08-22 14:33:09 +02:00
JC Brand
21a04d9de5 Avoid unnecessary promise-wrapping 2018-08-22 14:33:08 +02:00
JC Brand
de077ba9af Various small fixes while trying to get it to work 2018-08-22 14:33:08 +02:00
JC Brand
24d86c7edd Wrap in try/catch, otherwise handler gets removed upon error 2018-08-22 14:33:08 +02:00
JC Brand
235b24d1d4 Bugfixes.
- Use sizzle xmlns selector (which doesn't work with `querySelector`)
- PEP Subscription didn't have `+` before `notify`
2018-08-22 14:33:08 +02:00
JC Brand
cf3a33a82e __super__ is undefined because it's not an override 2018-08-22 14:33:00 +02:00
JC Brand
23a26cfdf5 __super__ is undefined because it's not an override 2018-08-22 11:41:38 +02:00
JC Brand
0339c59390 Clear old modals upon logout 2018-08-21 18:32:16 +02:00
JC Brand
3ec426e11d Don't render OMEMO stuff in profile modal if OMEMO's not enabled 2018-08-21 18:03:34 +02:00
JC Brand
a06d2c494a Implement own device removal via stanza 2018-08-21 17:35:17 +02:00
JC Brand
26e936583f Add devices section to own profile modal
Allow for devices to be removed.
2018-08-21 09:28:16 +02:00
JC Brand
8cc69ee5fb No need for a toJSON call, it's already an object 2018-08-20 11:17:26 +02:00
JC Brand
7d1db66056 Less explicit Promise declarations.
It's usually not necessary to wrap a promise inside another one, instead
the original promise can just be returned.
2018-08-20 11:16:06 +02:00
JC Brand
cda426bc82 Merge branch 'master' into converse-omemo 2018-08-20 10:34:04 +02:00
JC Brand
f98b11afeb Fix linting error 2018-08-20 08:59:48 +02:00
Emmanuel Gil Peyrot
958e8a98a8 Use the roster name or vCard nickname before falling back to vCard fullname or JID. 2018-08-20 08:59:01 +02:00
JC Brand
e7f211bacf Avoid an unnecessary promise and create message as soon as possible
under non-OMEMO circumstances. Otherwise, when messages are fetched in
bulk via MAM, then a message referring to a previous one (e.g.
a correction) may be processed before the message being referred to has
been created.
2018-08-19 10:32:43 +02:00
JC Brand
9a7f56db7d Fix format of stanza that queries for devices. 2018-08-19 10:09:43 +02:00
JC Brand
4ed43854bd Bugfix. Items need to go inside the list 2018-08-18 18:25:52 +02:00
JC Brand
c4ac73cc88 prekey id must be an int. 2018-08-18 18:24:29 +02:00
JC Brand
ca9229a906 createMessage now returns a promise.
Also, fix all broken tests, mostly related to this.
2018-08-18 17:12:22 +02:00
JC Brand
b4110dc162 Merge branch 'master' into converse-omemo 2018-08-18 10:24:55 +02:00
JC Brand
299fa4f3f8 Nicer error logging when translations are not found 2018-08-18 10:22:31 +02:00
JC Brand
e123c690f0 Add autocomplete support for occupants with only a JID 2018-08-16 17:11:04 +02:00
JC Brand
2db3db9bab Add support for editing messages containing mentions 2018-08-16 15:17:54 +02:00
JC Brand
d9c5867ff2 Check references when incrementing unread messages counter 2018-08-16 15:17:54 +02:00
JC Brand
b7eb19e225 Render mentions in a message 2018-08-16 15:17:54 +02:00
JC Brand
15df9b8605 Inlcude references in the outgoing XMPP stanza 2018-08-16 15:17:54 +02:00
JC Brand
f2b017ec89 Add method to determine references from message text 2018-08-16 15:17:53 +02:00
JC Brand
70b953ab84 Change selected item to the one the mouse is hovering over 2018-08-16 15:17:53 +02:00
JC Brand
324ffd5e40 Let @ trigger autocomplete with all possible options shown 2018-08-16 15:17:53 +02:00
JC Brand
cc3a158b57 Initial work on showing all options on @ 2018-08-16 15:17:53 +02:00
JC Brand
b6f5cd2cc9 Use the auto_first setting 2018-08-16 15:17:53 +02:00
JC Brand
9a8d3b695e Generic message which works for both single and groupchats 2018-08-16 15:17:53 +02:00
JC Brand
73deaf24c0 Make sure occupants toggle gets shown 2018-08-16 15:17:53 +02:00
JC Brand
13c9612a8a Let an additional tab select the currently highlighted element 2018-08-16 15:17:53 +02:00
JC Brand
2abd1c1db1 Get selection via up/down arrow to work 2018-08-16 15:17:53 +02:00
JC Brand
86fab99c54 Expand test case and improve code. 2018-08-16 15:17:53 +02:00
JC Brand
5ded3b6cb9 Make list an executable 2018-08-16 15:17:53 +02:00
JC Brand
ad73abbd12 Rewrite as ES2015 class 2018-08-16 15:17:53 +02:00
JC Brand
b6f4f05b9e Add converse-autocomplete and use that in the chat textarea 2018-08-16 15:17:53 +02:00
linkmauve
f0ad326e2e Simplify an error message on MUC service shutdown (#1161) 2018-08-16 11:36:44 +02:00
JC Brand
ddfe35b2c8 Set proper content type for file upload 2018-08-14 18:45:45 +02:00
JC Brand
45d1440684 Cancel message correction by pressing escape.
Also fixes #1153
2018-08-10 11:48:07 +02:00
JC Brand
c652568a03 Clear color after submitting a corrected message 2018-08-09 16:33:25 +02:00
JC Brand
c25cc4c76b Bugfix. Existing occupants weren't found because query was only by jid
Which meant that occupants were being duplicated.

updates #1146
2018-08-09 15:46:49 +02:00
JC Brand
1aceaa9c40 Avoid creating unnecesary promises
by returning existing promises and by using _converse.api.sendIQ
2018-08-09 14:44:39 +02:00
JC Brand
daf470e311 Check permissions before attempting to execute action on behalf of user 2018-08-09 14:43:40 +02:00
JC Brand
5e42bb2d49 Bugfix. Don't only set, save to storage.
Otherwise the flag doesn't persist across page loads.
2018-08-08 10:01:26 +02:00
JC Brand
8d40d5f108 Bugfix. Stanza passed in as 2nd parameter 2018-08-08 09:43:32 +02:00
JC Brand
2d05487862 More code reuse between chatboxview and chatroomview 2018-08-07 15:32:13 +02:00
JC Brand
d852721933 Place cursor at the end when correcting a message 2018-08-07 10:09:36 +02:00
JC Brand
08dce556f9 When correcting a message, also highlight the textarea. 2018-08-07 10:09:35 +02:00
JC Brand
27bc33ba09 Use nickname from global settings when entering a room 2018-08-07 10:09:35 +02:00
JC Brand
2884549bb3 Test decryption of incoming OMEMO message
updates #497
2018-08-04 23:49:01 +02:00
JC Brand
713f49453f Working example of AES-GCM encryption and decryption
with key import and export.

updates #497
2018-08-04 21:32:08 +02:00
JC Brand
f2c283c907 More work on decrypting messages 2018-08-04 19:41:06 +02:00
JC Brand
be0eaecff9 Parse incoming OMEMO encrypted messages 2018-08-04 09:26:23 +02:00
JC Brand
bb1fdd843a Use ternary operator to make more compact 2018-08-04 09:07:59 +02:00
JC Brand
4c3645c559 Merge branch 'master' into converse-omemo 2018-08-03 14:47:20 +02:00
JC Brand
b027f0f784 Fixes #1143 Disallow sending of empty messages 2018-08-01 18:48:02 +02:00
JC Brand
f120fbd209 Bugfix. Own groupchat messages weren't being recognized 2018-08-01 18:37:54 +02:00
JC Brand
dc4c832fce Add jsdoc docstrings to chats API.
Link to the jsdoc output from the Sphinx docs
2018-08-01 12:11:10 +02:00
JC Brand
506aa33131 Wait for promises before opening chats in API methods 2018-08-01 11:12:00 +02:00
JC Brand
cb118b9cd0 Extract inline code into method 2018-08-01 11:10:43 +02:00
JC Brand
cbe6092c33 Handle case where chat content is empty 2018-08-01 11:10:43 +02:00
JC Brand
1443fdd447 (WIP) Wait for promises before opening chats in API methods 2018-08-01 11:10:43 +02:00
Emmanuel Gil Peyrot
8de78dfaf5 Fix disco#info result stanza
Converse forgot to add the wrapping query element, making the iq
invalid[1].

Thanks to lovetox for reporting this bug!

[1] https://pastebin.com/raw/T7h3FKHu
2018-07-31 17:52:07 +02:00
JC Brand
7a47b7b992 Don't require a chat JID to be specified in embedded mode
We might want to only open a chat later.
2018-07-30 16:42:54 +02:00
JC Brand
964b10dc33 Set default BOSH wait time to 59
to avoid timing conflicts with the webserver
2018-07-28 17:13:13 +02:00
JC Brand
e774e9d1af Test that own devices (from other clients) get included
when sending out encrypted messages.

updates #497
2018-07-28 16:36:56 +02:00
JC Brand
a3593dbc7d Implement and test sending of encrypted messages
updates #497
2018-07-28 15:37:36 +02:00
JC Brand
f40e4b4dbb Merge branch 'master' into converse-omemo 2018-07-25 12:06:42 +02:00
JC Brand
4cefc7cdf9 Fix failing tests due to renames 2018-07-25 12:05:09 +02:00
JC Brand
bcd6845756 Show fingerprints in the user details modal
updates #497
2018-07-25 11:33:16 +02:00
JC Brand
ce447e4035 Merge branch 'master' into converse-omemo 2018-07-22 12:15:16 +02:00
JC Brand
5abb9f8bb2 Found more instance of room to be replaced with groupchat 2018-07-22 11:31:45 +02:00
JC Brand
114e46dfab Fix broken test and refactor slightly. updates #497 2018-07-22 10:33:57 +02:00
JC Brand
b80a77a21c Include signedPreKeySignature in published bundle
updates #497
2018-07-21 21:53:31 +02:00
JC Brand
bf13927946 Merge branch 'master' into converse-omemo 2018-07-21 11:34:51 +02:00
JC Brand
87406f5f93 Allow messages to be edited by clicking a pencil icon
updates #421
2018-07-21 10:41:10 +02:00
JC Brand
6a790916d3 Only own messages should be editable.
Fixes #1139
2018-07-21 08:12:33 +02:00