Commit Graph

2198 Commits

Author SHA1 Message Date
JC Brand
d426d79702 Bugfix. Room features weren't being refreshed properly
We were removing the disco entity, but it's associated collections
(`features`, `fields`, `identities` etc) were still stored in
localStorage and not cleared.

So when the entity gets recreated, the stale localStorage cached items
repopulate the collections.

Added `refreshFeatures` API method for refetching disco features and use
that instead.
2018-10-05 04:42:34 +02:00
JC Brand
c1106f3867 Bugfix. Handler not triggered when submitting password form 2nd time 2018-10-05 03:29:14 +02:00
JC Brand
9bc8bdf34c Test updates after updating to use latest strophe.js
`toLocaleString` now returns element attributes in alphabetical order
(for better cross-browser consistency).

Also, `toLocaleString` is now used in favor of `outerHTML` because
browsers aren't consistent with one another in their output.
2018-10-03 21:11:20 +02:00
JC Brand
79b8ed7177 New release 4.0.2 2018-10-02 22:51:01 +02:00
JC Brand
dbfd460125 Don't include additionalData when en/decrypting with crypto.subtle
Otherwise compatibility with Conversations is broken.
Unfortunately this means that OMEMO won't work on Edge, because it
for some reason requires the additionalData.

References:
* https://github.com/conversejs/converse.js/issues/1187#issuecomment-426276243
* https://stackoverflow.com/questions/42933162/web-crypto-api-using-microsoft-edge-38-14393-0-0/42950731

Fixes #1187
2018-10-02 22:07:16 +02:00
JC Brand
148eaeacf5 Bugfix. Error messages don't have associated vcards 2018-10-02 18:04:03 +02:00
JC Brand
ba37826d44 Hook in Hindi and Romanian and update all pot, po and json files 2018-10-02 17:34:59 +02:00
JC Brand
45643d52bf fixes #1225 2018-10-01 21:50:25 +02:00
JC Brand
e05b7e9de3 OMEMO fixes for Edge. 2018-09-25 13:21:48 +02:00
JC Brand
bf76b3b486 Add a polyfill for TextEncoder/TextDecoder for Edge 2018-09-25 13:20:55 +02:00
JC Brand
6bd4782ff6 Include filename in download link and embedd ogg audio 2018-09-25 00:21:17 +02:00
JC Brand
af35d461e8 Set max-height for embedded videos.
Also udpate markup to not use `<source>`.

updates #1189
2018-09-24 23:56:54 +02:00
JC Brand
31080bf2f9 Add a FormData polyfill for Edge comptaibility
Fixes #1220
2018-09-24 16:18:51 +02:00
Dele Olajide
647f7cf302 Deleolajide m4a webm support (#1217)
* Add support for webm video and m4a audio media files
* updated CHANGES.md
2018-09-24 10:00:10 +02:00
JC Brand
505df62eab Remove start.frag and end.frag
They're no longer needed since we're using webpack
2018-09-19 16:00:39 +02:00
JC Brand
682bace83b Don't show new messages indicator for CSN messages 2018-09-19 13:27:03 +02:00
JC Brand
6dfd0d1aa5 Make sure popovers also work in overlay view mode 2018-09-19 13:01:15 +02:00
contrapunctus-1
7d861be8d7 Use compliance.conversations.im for server recommendation (#1206) 2018-09-19 12:25:12 +02:00
JC Brand
094a8a578a Fixes #1201 Emoji picker appears when pressing enter 2018-09-18 16:26:10 +02:00
JC Brand
0833478da4 Use bootstrap4 for the Converse website 2018-09-18 16:15:32 +02:00
JC Brand
48dc02cf3a Fixes #1117
Silently set status when it comes from a presence stanza
2018-09-18 14:04:50 +02:00
JC Brand
dee49e382c Avoid horizontal scrolling for messages in Firefox 2018-09-18 13:14:55 +02:00
JC Brand
c37a1dcbb2 Add explanatory snippets from relevant XEP 2018-09-17 10:26:05 +02:00
JC Brand
ad9a840cb7 Avoid saving full MUC JID as domain 2018-09-14 10:31:58 +02:00
JC Brand
b4a70c5f31 Refactor getJidsWithAffiliations
Previously the Promise.all made it all-or-nothing, now it'll return
partial matches as well and it'll also log error stanzas.
2018-09-13 16:42:54 +02:00
JC Brand
93c956ba4b Bugfix. Should be && not || 2018-09-13 16:42:54 +02:00
JC Brand
0a3a6222c6 Provide error feedback to the /register command.
Also fix if/boolean bug when checking whether we should automatically
register
2018-09-13 12:39:50 +02:00
JC Brand
8c391fe067 Add new config setting enable_muc_push 2018-09-13 11:48:11 +02:00
JC Brand
dee10bfe45 Clear MUC disco after closing a room
This is to avoid having a stale/inaccurate MUC features list when
reopening a previously closed MUC
2018-09-13 11:23:37 +02:00
JC Brand
cd05b89726 Fix failing tests due to MUC disco refactoring 2018-09-13 10:52:25 +02:00
JC Brand
8806efce50 Include nick when registering someone as a member
This will cause their nick to be registered (if Prosody supports it).
2018-09-12 15:32:38 +02:00
JC Brand
f5b10ff6e8 Formatting 2018-09-12 15:32:37 +02:00
JC Brand
71370f5b45 Add the /register command for registering yourself 2018-09-12 15:32:37 +02:00
JC Brand
17401cb903 Improvements to automatic nick registrations
Also expand and fix the associated test.
2018-09-12 12:36:25 +02:00
JC Brand
6457bc765a MUC: Use converse-disco to query for room features
By doing so we create a new DiscoEntity for the room, which allows us to
query for features via the disco API.

We also avoid duplication of functionality between converse-muc and
converse-disco
2018-09-12 12:36:14 +02:00
JC Brand
197451db54 Add support XEP-0128 service discovery extensions
Also add new API methods which return features and XEP-128 fields.
2018-09-12 12:36:13 +02:00
JC Brand
acef8feaaa Refactoring of fetching of reserved nick
- Move `getDefaultNickName` to the model and rename to `getDefaultNick`
- Let `checkForReservedNick` return a promise and save `nick` once received
- Updated `openAndEnterChatRoom` to wait appropriately and remove presence-wrapper
- Update tests to wait appropriately
- Remove presence-wrapper in `getRoomFeatures`
2018-09-12 12:36:13 +02:00
JC Brand
2df9b24211 Add option to auto-register your nickname to a room
See https://xmpp.org/extensions/xep-0045.html#register
2018-09-12 12:36:13 +02:00
JC Brand
764686dd19 Enable push services for a MUC domain
As soon as a chatroom from that domain is opened and if the MUC supports it.
2018-09-11 11:29:02 +02:00
JC Brand
989ce0f54d Fixes #1184 2018-09-10 16:21:52 +02:00
JC Brand
a3911094d3 Fix incorrect closing tag 2018-09-10 16:09:38 +02:00
Martin/Geno
dbe88535f1 [BUGFIX] html br 2018-09-10 15:58:17 +02:00
JC Brand
2f2b2ceaf2 Bugfix. Don't create occupants without nick/JID 2018-09-10 08:11:09 +02:00
JC Brand
09bb6b494d New release 4.0.0 2018-09-07 16:20:30 +02:00
JC Brand
201b8559b6 Avoid bookmark toggle duplication 2018-09-07 16:09:12 +02:00
JC Brand
cfcab80147 Don't inform of unencryptable OMEMO messages unless in debug mode 2018-09-07 15:23:16 +02:00
JC Brand
06352b67c1 Fix AttributeError 2018-09-07 14:49:11 +02:00
JC Brand
8cc88d9b17 Fixes #1152 CSN in MUC triggers rate limiting.
- Avoid registering `sendChatState` twice as handler.
- Avoid sending out a CSN right after sending out a message
2018-09-07 14:00:57 +02:00
JC Brand
999536365d Fixes #1014 Don't show IRC gateway as MUC prefill 2018-09-07 13:14:36 +02:00
JC Brand
014354d075 Fixes #986 Affiliation changes aren't displayed in the chat 2018-09-07 11:54:29 +02:00
JC Brand
47bde92513 Fixes #1052 Moment locale incorrectly set to zh-tw 2018-09-07 10:38:47 +02:00
JC Brand
27378068c0 Fixes #1064 /topic without argument sets topic to "undefined" 2018-09-07 10:21:47 +02:00
JC Brand
572cc49498 Show room subject in heading, not description 2018-09-07 09:55:36 +02:00
JC Brand
2ef117e402 Fix more missing icons due to Fontawesome upgrade 2018-09-06 19:50:41 +02:00
JC Brand
2acc11f776 Fixes #1158. Fall back to bookmark JID if name is not available 2018-09-06 17:25:10 +02:00
JC Brand
baf598608a Fix leave icon 2018-09-06 17:09:47 +02:00
JC Brand
50a1bd7bc5 Fixes #1159 2018-09-06 17:09:32 +02:00
JC Brand
99432eebd9 I think this fixes #1160
Don't included MAM data form if there's nothing to filter
2018-09-06 16:56:13 +02:00
JC Brand
565cfc3984 Hook in the Czech translations 2018-09-06 16:03:37 +02:00
JC Brand
023249f62e Render profile avatar as canvas.
We now have uniform avatar rendering for the profile, messages and
chatboxes.

By rendering as canvas, we can avoid stretching the image.

In the process I also moved the ChatBoxViews collection into its own
plugin `converse-chatboxviews` and placed the AvatarAware views there.

fixes #1157
2018-09-06 15:33:13 +02:00
JC Brand
9da214fb76 Match uppercase file names and extensions 2018-09-06 14:03:41 +02:00
JC Brand
c7ae188002 Re-add signout icon and hide clear-text icon when appropriate 2018-09-06 13:37:55 +02:00
JC Brand
4903d748d0 Save hidden state of singletons if possible 2018-09-06 09:44:44 +02:00
JC Brand
eca11953bb Upgrade to fontawesome 5 2018-09-04 13:34:06 +02:00
JC Brand
adee252b28 Close emoji dropdown on enter and prevent default 2018-09-03 14:36:09 +02:00
JC Brand
23b65f5fc5 Lazily load emoji images 2018-09-03 14:20:14 +02:00
JC Brand
e35fceff1a Remove the need for emojione 2018-09-03 14:16:59 +02:00
JC Brand
1d38d8af03 Use twemoji for rendering emojis 2018-09-03 13:24:37 +02:00
JC Brand
6b157eedde Remove converse-oauth as core plugin 2018-09-03 10:50:51 +02:00
JC Brand
866f2737da More JSDoc docstrings for API methods 2018-09-02 23:43:39 +02:00
JC Brand
5f16babebd Fix failing OMEMO test and simplify by using async/await 2018-09-02 14:27:05 +02:00
JC Brand
cce27fac99 Avoid unnecessary promise wrapping 2018-09-02 14:18:05 +02:00
JC Brand
16deecd468 All API methods of converse-core are now documented with jsdoc 2018-09-02 12:15:26 +02:00
JC Brand
45fc71c05d More jsdoc docstrings as well as an intro page and JSON config 2018-09-02 10:11:37 +02:00
JC Brand
6f13676ee1 Show OMEMO error messages only in debug mode 2018-08-31 21:33:46 +02:00
JC Brand
1d5cf8eb7c Fix AES-GCM encryption/decryption so that it works with Conversations
Fixes #497
2018-08-31 21:13:33 +02:00
JC Brand
c2184ce8e1 Always create a new session 2018-08-31 18:44:24 +02:00
JC Brand
fc6982ce08 Merge branch 'omemo-debug' 2018-08-31 18:39:01 +02:00
JC Brand
bd1fd7eef1 Key should be AES-128, not AES-256 2018-08-31 18:33:03 +02:00
JC Brand
c2f1b2543f Pass array buffer to libsignal decrypt 2018-08-31 18:24:08 +02:00
JC Brand
c8211085fd Pass array buffer to libsignal encrypt/decrypt methods 2018-08-31 18:10:09 +02:00
JC Brand
6a061b4525 Use raw key format and not jwk. Set correct key size. 2018-08-31 17:15:03 +02:00
JC Brand
ed9afe9afb Only include key and not whole payload from libsignal 2018-08-31 13:57:49 +02:00
JC Brand
18c7ba4ad8 Bugfix. Need to first create bookmark
Otherwise we don't include it in the stanza.
So if an error occurs, remove the bookmark again.
2018-08-31 11:24:05 +02:00
JC Brand
bb6d4f75bf Fade out enter/leave messages sooner and add check 2018-08-31 10:36:51 +02:00
JC Brand
86a0fa280b Call clearSession when disconnecting
So that the chatboxes get closed/removed.

Also, don't render the login form when we're just reconnecting.
2018-08-31 10:17:24 +02:00
JC Brand
1294d682e1 Automatically remove leave/enter and enter/leave messages
after 10 seconds.
2018-08-30 23:13:28 +02:00
JC Brand
4b5b517390 Update bookmark form with proper bootstrap markup 2018-08-30 22:32:16 +02:00
JC Brand
a44f38329c Only create bookmark after succesfully setting it on the server 2018-08-30 13:39:50 +02:00
JC Brand
34541d6410 Add check before resetting 2018-08-30 13:39:33 +02:00
JC Brand
f947bcc4b1 Also notify if the chat is not visible in the page. 2018-08-29 13:56:18 +02:00
JC Brand
33c2d4614f Remove unused method 2018-08-29 10:33:43 +02:00
JC Brand
f72ace506f Replace the onChatBoxAdded override with event handlers 2018-08-28 15:08:38 +02:00
JC Brand
934e86536e Remove another vestige of OTR 2018-08-28 14:58:07 +02:00
JC Brand
21178add98 Remove converse-otr 2018-08-27 22:09:22 +02:00
JC Brand
4f8b5a4022 Use built-in crypto instead of CryptoJS 2018-08-27 21:54:29 +02:00
JC Brand
1dc1c1f98a Properly generate and render fingerprints 2018-08-27 21:02:31 +02:00
JC Brand
c142437320 Create new message for correction if the original is not available
Fixes #1172
2018-08-27 21:02:31 +02:00
JC Brand
3e7c8655ad Add a <store> hint to OMEMO messages.
updates #497
2018-08-27 16:44:19 +02:00
JC Brand
15a4bcd11e Add method to generate missing prekeys
When receiving a PreKeySignalMessage, then a prekey has been chosen and
should now be removed from the list of available prekeys in the bundle,
so that a different device doesn't choose it as well.

AFAICT, libsignal removes the prekey, so it's then up to us to
regenerate it and republish our bundle.

updates #497
2018-08-27 16:43:58 +02:00
JC Brand
ea5144c7e5 Refactor the OMEMOStore to not duplicate prekeys
Before these changes, prekeys were stored in two places, one place that
converse-omemo accessed and one that libsignal accessed and when
libsignal deleted a prekey the other store wasn't updated.

Now we let the methods called by libsignal store/remove prekeys (and the
signed_prekey) in the same place as used by the code in converse-omemo.
2018-08-25 23:22:18 +02:00
JC Brand
7959855891 Move publishBundle to OMEMOStore
updates #497
2018-08-24 16:32:40 +02:00
JC Brand
d784e4a73a Show an icon to indicate that a message is encrypted
updates #497
2018-08-24 16:26:54 +02:00
JC Brand
4c5ea34acf New build 2018-08-24 15:39:14 +02:00
JC Brand
3eb5e93f81 Finally able to send a message and decrypt it on the other side
Updates #497
2018-08-24 14:40:48 +02:00
JC Brand
2dd5976f65 Fix bugs in the OMEMO store and in the decrypt method.
Updates #497
2018-08-24 13:17:32 +02:00
JC Brand
9e56858aae Remove unnecessary promise wrapper 2018-08-24 10:51:59 +02:00
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
JC Brand
acd9a18696 Update with new message markup 2018-07-21 07:34:03 +02:00
linkmauve
d25b227ba4 Remove @locked_domain if it has been provided in the JID. (#1132)
Fixes #917.
2018-07-17 08:15:27 +02:00
JC Brand
bb5dff9a74 Merge branch 'better-chat_status' of https://github.com/linkmauve/converse.js into linkmauve-better-chat_status 2018-07-16 01:05:45 +02:00
JC Brand
6717315d05 Add support for message corrections in MUC. 2018-07-16 00:49:00 +02:00
JC Brand
16faf62d3f Fixes #1129 Hide "Contacts" section when logged in anonymously 2018-07-16 00:09:54 +02:00
Emmanuel Gil Peyrot
d518596a2e Add missing closing quote in label_download. 2018-07-14 18:27:25 +02:00
Emmanuel Gil Peyrot
d643d4c9cf Remove order constraint in file upload error message. 2018-07-14 18:26:42 +02:00
Emmanuel Gil Peyrot
3fcf9acfcc Remove order constraint in chatstate message. 2018-07-14 18:26:42 +02:00
Emmanuel Gil Peyrot
422757832b Remove order constraint in chat_status message. 2018-07-14 18:26:42 +02:00
JC Brand
b4d2007972 Allow any earlier message to be edited.
updates #421
2018-07-08 15:20:58 +02:00
JC Brand
a9bb99a1a7 Show animation when a message has been corrected
updates #421
2018-07-08 13:43:28 +02:00
JC Brand
84a10d77d9 Cancel message correction by pressing the down arrow
Also, add a class `correcting` to the message being corrected, to
provide a visual cue.

updates #421
2018-07-08 11:30:15 +02:00
JC Brand
2929647e16 Add support for correcting the last message sent
fixes #421
2018-07-08 00:39:28 +02:00
JC Brand
f3f58a8da4 Test multiple corrections of the same message 2018-07-06 01:51:27 +02:00
JC Brand
9e965fa20e Add a rudimentary message versions modal 2018-07-06 01:36:34 +02:00
JC Brand
19b9aeadfd Show an indicator that the message has been edited 2018-07-06 01:18:03 +02:00
JC Brand
9f42f09d1e Get the first message correction test to pass 2018-07-06 01:04:34 +02:00
JC Brand
52d5677e40 Rename message to stanza to avoid confusion 2018-07-06 00:59:16 +02:00
JC Brand
7b86e24b9a Add missing CSS class to bookmark list item and fix test
updates #1069
2018-07-04 11:24:02 +02:00
JC Brand
388719ff2d Update CSS of controlbox list items
Trying to use more generic CSS selectors and to extract out common patterns.
2018-07-04 10:57:30 +02:00
JC Brand
47ec7501ed updates #1069 Don't show room-info icon for bookmarks
Currently we can only show the room info modal for open rooms, because
we need the Backbone.Model.

Querying the room info and displaying it for non-open rooms will be more
work and will require a separate modal.
2018-07-04 09:18:54 +02:00
JC Brand
145167baae Don't remove ourselves as occupant
when removing offline users who are no longer on the member lists
2018-07-04 09:08:23 +02:00
JC Brand
efa5e30596 updates #1069 Highlight currently open private chat in the sidebar 2018-07-04 09:08:22 +02:00
JC Brand
58ee1460fe Updates #1069
Highlight the currently open groupchat in the sidebar (in singleton mode).
2018-07-02 23:29:57 +02:00
JC Brand
a67fa6d4e5 Render URLs in the topic in the room details modal 2018-07-02 21:20:37 +02:00
JC Brand
a2fef1277c Don't render labels for hidden inputs 2018-07-02 20:22:16 +02:00
JC Brand
d335173fd7 Bootstrap markup for auto-generated forms 2018-07-02 20:18:22 +02:00
JC Brand
e64edf19b4 Use "Groupchat" instead of "Chatroom" 2018-07-02 16:27:58 +02:00
JC Brand
4331f920cf Fix failing tests 2018-07-02 15:23:49 +02:00
JC Brand
c6d7317bb2 Show the topic in the room info modal 2018-07-02 13:41:15 +02:00
JC Brand
1880b3f209 Nicer rendering of MUC disconnection messages 2018-07-02 12:52:19 +02:00
JC Brand
eb1f462e07 Handle all presence stanzas sent from the room
Our handler was too restrictive due to the namespace matching.
When joining a room and the room's remote server can not be found, then
the resulting error messages doesn't not have the MUC namespace.
2018-07-02 12:52:13 +02:00
JC Brand
118a84f111 Bugfix. Make sure outgoing messages all have unique ids 2018-07-01 12:01:07 +02:00
JC Brand
e2b5f1d15e Don't reuse the forwarded stanza's id 2018-07-01 11:46:16 +02:00
JC Brand
648c0387dd Refactor message sending
so that we don't have to always wait for stanza creation.
We only need to wait when OMEMO is active, so we keep the waiting
contained to that usecase.
2018-07-01 11:45:58 +02:00
JC Brand
6785eff4a7 Merge branch 'master' into converse-omemo 2018-07-01 11:44:04 +02:00
JC Brand
e5c030c15a Render max 2 newlines 2018-06-30 16:15:27 +02:00
JC Brand
6e99af698d Merge branch 'timetag' of https://github.com/Zash/converse.js into Zash-timetag 2018-06-30 15:12:57 +02:00
JC Brand
b5a27b34a1 Render newlines 2018-06-30 15:07:30 +02:00
JC Brand
cc98cea009 Fix failing tests by waiting appropriately 2018-06-30 14:01:47 +02:00
JC Brand
9a60b5bb15 Let api.disco.info use api.sendIQ (and therefore be promise based) 2018-06-30 14:01:47 +02:00
Joachim Vandersmissen
878b106c7b Allow for shift-enter to insert newlines (#1115)
* Allow for shift-enter to insert newlines

See issue #1081

* Update CHANGES.md
2018-06-19 06:41:22 +02:00
JC Brand
3dac4ae45c Add support for logging in with OAuth 2018-06-13 18:39:51 +02:00
JC Brand
a2dec2371d Bugfix. jid of null was set on own VCard
Also made a few other minor improvements and did some cleanup.
2018-06-12 12:14:49 +02:00
JC Brand
7b19483271 Rename push_services to push_app_servers to avoid confusion 2018-06-11 14:17:34 +02:00
JC Brand
a09333f82c Allow multiple push services to be enabled and also allow disabling 2018-06-07 16:25:59 +02:00
JC Brand
5954cd8f29 Avoid duplicating entities 2018-06-07 15:27:11 +02:00
JC Brand
6126781d83 Proper checking of disco support for push notifications 2018-06-07 15:00:36 +02:00
JC Brand
6cd9d2e813 Rename _tearDown to tearDown and rebuild 2018-06-07 14:30:10 +02:00
JC Brand
2cdd46f6dc Don't close chatboxes after disconnection has already happened
Otherwise it attemtps to send out stanzas (causing `this.socket is null`
errors when using websocket).
2018-06-07 14:29:47 +02:00
JC Brand
5d62023701 Only fetch VCards once we're already connected 2018-06-07 14:28:20 +02:00
JC Brand
d4d03925b8 Set hidden to true by default for chats in singleton mode.
However, when a new chat is created due to an incoming message, and
there aren't any other chats visible, then show it.
2018-06-07 14:09:19 +02:00
JC Brand
37b622251e Improve and simplify unread message notifications in the roster
Use one event instead of two, by listening to `num_unread` on chatboxes.
2018-06-07 13:40:20 +02:00
JC Brand
083f191ead Consider delayed, non-archived messages as "new"
New in the sense that we haven't seen them before
2018-06-07 13:06:32 +02:00
JC Brand
ec65bb3512 createMessage doesn't need the delay parameter 2018-06-07 12:37:56 +02:00
JC Brand
57b4dec5a0 Bugfix. Validation messages wasn't being shown
due to Awesomplete doing things to the DOM and then confusing Snabbdom.
2018-06-06 18:31:04 +02:00
JC Brand
7ee71b0132 Add a plugin for XEP-0357
Currently only allows enabling an "App Service", based on pass-in
configuration values.
2018-06-06 14:00:52 +02:00
JC Brand
eed141b53e Remove unnecessary path aliases from the webpack config 2018-06-06 11:04:23 +02:00
JC Brand
1dac1d781f Don't show own typing notifications in groupchats 2018-06-06 09:57:37 +02:00
JC Brand
734f3469dd Bugfix. Message indicator wasn't shown
when we received a message for a yet non-existing chat in singleton
mode.
2018-06-06 09:56:46 +02:00
JC Brand
54c6bcd861 Disconnect chatrooms upon tab reload (when using websocket)
This is a workaround until we have support for XEP-0198

updates #1111
2018-06-06 09:56:35 +02:00
JC Brand
3153604823 Inform user of error messages which don't have text 2018-06-05 13:14:24 +02:00
JC Brand
a3fe6162c1 Proper MUC reconnection is handled in converse-muc-views 2018-06-05 13:01:47 +02:00
JC Brand
ca9d53a653 These didn't have the intended effect.
Calling `remove` without models does nothing
2018-06-05 12:42:49 +02:00
JC Brand
bea76e5b2b Use the logout event, instead of an override 2018-06-05 12:42:49 +02:00
JC Brand
ee5e77e851 Remove call to non-existing method 2018-06-05 11:14:51 +02:00
JC Brand
78d6d493d6 Add info icon in room header and show room details in modal 2018-06-04 19:54:11 +02:00
JC Brand
f7c3351e2b Merge branch 'master' into webpack 2018-06-04 13:46:27 +02:00
JC Brand
bc872ee2cb Fix various failing tests and update Makefile 2018-06-04 11:20:34 +02:00
JC Brand
74eed32e82 Add shims to webpack config and fix bugs in templates 2018-06-02 17:18:42 +02:00
JC Brand
8948be1d3d In mobile view, add arrows to chat headings
so that you can navigate "back" to the controlbox.
2018-06-01 14:57:19 +02:00
JC Brand
b00567a0ea Fix styles for mobile view 2018-06-01 12:49:45 +02:00
JC Brand
2ca382b7a5 Move const declarations out of initialize method 2018-06-01 12:21:41 +02:00
JC Brand
b02c70b4ea Check the view_mode on the fly
instead of disabling the plugin immediately.

This allows us to change the view_mode dynamically.
2018-05-31 06:41:53 +02:00
JC Brand
9c6c90a4fc Move config settings into the relevant plugins 2018-05-31 06:38:40 +02:00
JC Brand
195a9781c1 Use an event instead of an override 2018-05-30 17:18:41 +02:00
JC Brand
5e97db95f9 Add a close button on the occupants sidebar 2018-05-30 16:55:28 +02:00
JC Brand
8c983ab2a3 Use different icon for adding a groupchat
Fixes #1072
2018-05-30 16:38:51 +02:00
JC Brand
d384c70929 Use double angle brackets as occupants toggle icon
updates #1072
2018-05-30 16:27:45 +02:00
JC Brand
d205afe3a2 Don't try to render register link if auto_login is true 2018-05-30 16:04:56 +02:00
JC Brand
4e67b420ba New event streamFeaturesAdded 2018-05-29 12:04:42 +02:00
JC Brand
291fceeb74 Make sure disco info is stored in sessionStorage
Otherwise we might have stale disco info and no way to invalidate the cache.
2018-05-28 13:59:38 +02:00
JC Brand
bb95375f9c Support for roster versioning
fixes #1106
2018-05-28 13:59:11 +02:00
JC Brand
4cfade2843 Add support for stream features to converse-disco 2018-05-28 11:40:33 +02:00
JC Brand
e8a26eb185 Store the roster version
updates #1106
2018-05-28 10:31:52 +02:00
JC Brand
43d0932d78 Update roster push handling code
- Remove misleading comment and fix conditional logic
- Check that there's only one <item> element.

updates #1106
2018-05-28 09:36:12 +02:00
JC Brand
ec609a3883 Refetch VCards which we couldn't retrieve before 2018-05-25 16:25:02 +02:00
JC Brand
ab4d0204f3 Update all vcards that might be associated with an occupant 2018-05-25 15:55:34 +02:00
JC Brand
6dc9e8edf1 Use webpack for module bundling 2018-05-25 14:23:32 +02:00
JC Brand
eff656931c Move code for handling own presence into new method
Fix two bugs as well.

- Pass by reference bug for presence defaults
- querySelector for `delay` returned nothing (use sizzle instead)
2018-05-24 15:47:27 +02:00
JC Brand
c0080390a7 Only initialize presence collection after login 2018-05-24 15:09:01 +02:00
JC Brand
a85401627c Combine inverse/converse chatrooms css
updates #1091
2018-05-24 12:45:10 +02:00
JC Brand
63f659326b Store VCard JID on the groupchat message
for easier retrieval later and to work around MUC's inability to
retrieve VCards for users not in the MUC.
2018-05-24 10:50:07 +02:00
JC Brand
adad60e298 Refactor so that nick-deduplication takes VCard nick into account
Updates #968
2018-05-24 10:24:48 +02:00
JC Brand
3849f56270 Swop buttons and try to make column responsive 2018-05-24 10:18:27 +02:00
JC Brand
e76dc01265 Use nickname from VCard when joining a room
updates #968
2018-05-24 10:15:58 +02:00
JC Brand
dd51ad8618 Bugfix. Nickname wasn't being set correctly in vcard 2018-05-24 10:15:25 +02:00
JC Brand
dd5f6f1025 Show join/leave notifications for members who go offline
updates #1094
2018-05-24 09:48:01 +02:00
JC Brand
04e95a17c5 Make sure converse-muc-views is loaded first (if available) 2018-05-24 09:09:09 +02:00
JC Brand
d484320c09 Test that bundles can be updated via PEP
Fix bugs in the process

udpates #497
2018-05-23 12:51:01 +02:00
JC Brand
ddd0ef8e20 Test that device lists can get updated via PEP
Fix various bugs in the process.

updates #497
2018-05-23 12:51:01 +02:00
JC Brand
41db49ffca Initial code for handling a bundle update via PEP
udpates #497
2018-05-23 12:51:01 +02:00
JC Brand
839210f87c Fetch and parse bundles, then generate sessions for them
udpates #497
2018-05-23 12:51:01 +02:00
JC Brand
5b9f81099b More OMEMO work
- Implement storage interface required by libsignal
- Add some skeleton code for building sessions and sending encrypted messages

updates #497
2018-05-23 12:51:01 +02:00
JC Brand
f906761dc0 Initial work on sending a different stanza for OMEMO messages
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
a99e7a317e Change lock icon when clicking the toggle
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
61dcebbbf6 When generating a device id, check whether it already exists
and if so, generate a new one.

To do so we have to change the order of events.

1. first we fetch our device list
2. then we generate our bundle info (if necessary)
3. then we update our device list (if necessary)
4. then we publish our bundle

updates #497
2018-05-23 12:51:01 +02:00
JC Brand
fd3bb570cd Add an omemo_active flag on the chatbox
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
9645641505 Add own device to the server-stored devicelist
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
281865d9b1 Based on feedback from @iNPUTmice, no need to check for PEP support
Since you can still start OMEMO sessions with contacts without it, they
just can't create sessions with you.
2018-05-23 12:51:01 +02:00
JC Brand
09eb1731b5 Add code to generate and publish our bundle and update the test
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
6042c233bc Add test that the OMEMO toolbar button renders
Fix and improve accordingly. updates #497
2018-05-23 12:51:01 +02:00
JC Brand
2f149a0ea2 Fetch devices upon devicelist creation
updates #497
2018-05-23 12:51:01 +02:00
JC Brand
0c50808b65 Add missing declaration and don't run OTR tests
Add 3rd party dependencies

updates #497
2018-05-23 12:51:01 +02:00
JC Brand
e833af14bf updates #497
Various fixes to code checking for server and contact client support
2018-05-23 12:51:01 +02:00
JC Brand
bfc246d9c7 Disable OTR and add code for adding the toolbar button. 2018-05-23 12:51:01 +02:00
JC Brand
039f30a5d3 Add 3rdparty dependencies (used by libsignal)
Hopefully later we can use NPM for them, first want to get things to work
2018-05-23 12:51:01 +02:00
JC Brand
7b28cb7943 updates #497
Initial work on adding OMEMO support
2018-05-23 12:51:00 +02:00
JC Brand
3f0920a8c4 Don't remove occupants who are on member lists.
updates #1094
2018-05-23 12:48:11 +02:00
JC Brand
9afc344b89 We no longer clear the whole roster, only presence data 2018-05-23 04:34:38 +02:00
JC Brand
f0b1295577 Updates #1098 IE doesn't support document.contains 2018-05-23 04:22:47 +02:00
JC Brand
9500900f22 Make sure bookmarks are cleared before re-initializing
Otherwise subtle, hard-to-reproduce bugs happen while testing.

Also, don't unnecessarily call `delegateEvents`, it also causes
heisen-breakage.
2018-05-22 21:59:17 +02:00
JC Brand
36fd859a88 Store presence info in a separate collection
So that we can cache roster data for longer and presence data for
shorter.
2018-05-22 21:09:43 +02:00
JC Brand
b939de03bc Make sure that the textarea resizes back to original size
after sending
2018-05-19 08:22:57 +02:00
JC Brand
fe8b257243 Looks like we stopped supporting EXTERNAL auth 2018-05-19 08:22:24 +02:00
JC Brand
c920725832 Add a clearSession event to avoid using overrides. 2018-05-18 15:44:42 +02:00
JC Brand
2508ef0e9e Make the default value for the 'trusted' checkbox configurable
Also remove the `message_storage` setting.
2018-05-18 15:44:42 +02:00
JC Brand
e82112715d Update padding of controlbox elements
Instead of padding the container, pad individual elements that need it.
This enables us to have highlighting (e.g. on hover) that spans the full
width of the controlbox.

updates #1069
2018-05-18 15:44:42 +02:00
JC Brand
59535656b6 Add checkbox to indicate whether this is a trusted device 2018-05-18 15:44:42 +02:00
ChaosKid42
7a36acade5 remove "?" from user-search-query (#1103) 2018-05-17 18:26:06 +02:00
JC Brand
d339a06ea7 Bugfix. Wrong dict key used. 2018-05-17 11:25:05 +02:00
JC Brand
4490e27e08 Forgot we're moving away from using inverse here :) 2018-05-17 11:19:07 +02:00
JC Brand
897a5b2a86 branding 2018-05-17 11:10:52 +02:00
JC Brand
d0a97fe3c2 Only inform new users that the room is not anonymous
instead of informing all users every time someone enters the room.
2018-05-15 10:29:56 +02:00
JC Brand
dc97488b7a Bugfix. Image was getting unset when saving own vcard 2018-05-15 10:16:52 +02:00
JC Brand
37ce3fb737 Add a button to refresh a contact's vcard 2018-05-15 10:11:13 +02:00
JC Brand
63ce501798 We now only need to override set for the actual VCards
so rename model and only use it in the VCards collection.
2018-05-15 09:47:52 +02:00
JC Brand
50a67331e2 Find MUC VCard by real JID if we know what it is. 2018-05-14 13:49:04 +02:00
JC Brand
ec5a57b9d2 Remove unnecessary btn class 2018-05-14 13:49:04 +02:00
JC Brand
2a7c6142a5 Use newer classes 2018-05-14 13:49:04 +02:00
ChaosKid42
4bdc9636b4 another fix for IE11 (#1102) 2018-05-13 12:39:16 +02:00
ChaosKid42
63764a7d51 fix selected values in list-multi form fields (#1101) 2018-05-12 16:45:40 +02:00
JC Brand
a33b451b73 Bugfix. Messages were losing followup class when re-rendered 2018-05-12 12:09:17 +02:00