Commit Graph

3931 Commits

Author SHA1 Message Date
JC Brand
de092f8f00 Emit events on the settings object
instead of on a separate object
2021-09-22 16:36:28 +02:00
JC Brand
9e48fdc91c Emit an event when a configuration setting gets changed 2021-09-21 17:08:30 +02:00
JC Brand
05dcb4e8d7 Breaking change: stop setting config variables on the _converse object 2021-09-21 17:08:30 +02:00
JC Brand
864e8910c4 Move settings related files into one directory 2021-09-21 17:08:30 +02:00
JC Brand
efafc2d691 Allow media to be invidually shown/rendered...
even if the global configuration is to disallow it.

* When parsing, include all media URLs, not just the ones from allowed domains.
  That makes it possible to change allowed domains on-the-fly,
  while still allowing media in individual messages to be shown manually
  (via the message actions dropdown).
* Merge `embed_audio`, `embed_video` and `show_images_inline` into `render_media`
* Create new config settings for allowable domains for images, video and audio
* Check the URL domain against a whitelist for the message actions dropdown
2021-09-21 17:08:30 +02:00
JC Brand
ed490fc202 Create directory for modal plugin 2021-09-20 11:13:26 +02:00
ayu
ae6dbeb287 Update vcard.js
Example code wouldn't work anymore.
2021-09-18 21:59:17 +02:00
JC Brand
75fee76693 Fixes #2650 2021-09-14 22:27:49 +02:00
JC Brand
caffcaaef2 Move occupant-related tests into new file 2021-09-14 22:03:10 +02:00
JC Brand
2b7624e622 Make sure all files are used when generating API docs 2021-09-14 15:04:12 +02:00
JC Brand
ad501d4309 Avoid AttributeError when _converse.disco_entities is undefined 2021-09-13 14:23:46 +02:00
Ariel Fuggini
d44abbb48e
Adds hook to fetchLoginCredentials function (#2640)
* Adds hook to fetchLoginCredentials function

* Adds documentation
2021-09-10 16:12:46 +02:00
JC Brand
40a49042e9 Postrelease 2021-09-09 22:43:37 +02:00
JC Brand
6b3f8a3f39 Release 8.0.1 2021-09-09 22:09:26 +02:00
Allan Nordhøy
2c1d6e3ecb Translated using Weblate (Norwegian Bokmål)
Currently translated at 70.9% (362 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/nb_NO/
2021-09-09 21:45:42 +02:00
JC Brand
906a606010 Get rid of unnecessary specificity and functions 2021-09-09 11:35:00 +02:00
JC Brand
ef2c206507 Fix failing test 2021-09-09 11:12:31 +02:00
JC Brand
b78c19f6f2 Fix showing of HTML5 notifications for MEP messages 2021-09-08 17:30:30 +02:00
JC Brand
8aa16ea0be Fix broken import 2021-09-08 10:52:37 +02:00
JC Brand
8d01d7a710 Use optional chaining and update changelog 2021-09-08 10:35:46 +02:00
The Stranjer
660d765c59
Ensure that the converse session is actually present (#2636)
* Ensure that the converse session is actually present before trying to get anything out of it

* Update changelog
2021-09-08 10:32:59 +02:00
JC Brand
8f34065fc0 Also create MEP messages received from a MAM archive 2021-09-08 10:22:26 +02:00
JC Brand
f40a8f69ae Don't show minimized chats when logged out 2021-09-06 22:08:36 +02:00
JC Brand
286ab1ad83 Fixes #2633. 2021-09-06 21:56:56 +02:00
JC Brand
f04a376653 Fixes #2628: Open bookmarks toggle emits an error 2021-09-06 21:29:35 +02:00
JC Brand
b75e67fafa Fixes #2629 OMEMO button tooltip is wrong in private chat 2021-09-06 20:59:26 +02:00
JC Brand
8854f67c20 Bugfix: Image previews not loading when not serving Converse locally
Fixes #2634
2021-09-06 20:00:01 +02:00
JC Brand
9b4ce0011e Postrelease 2021-09-04 09:42:45 +02:00
JC Brand
c03bc7d600 Prepare release 8.0.0 2021-09-03 15:40:11 +02:00
random r
8f2f3e6498 Translated using Weblate (Italian)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/it/
2021-09-03 14:44:41 +02:00
ButterflyOfFire
730cb9c822 Translated using Weblate (Arabic)
Currently translated at 69.8% (356 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ar/
2021-09-03 14:44:41 +02:00
Tymofii Lytvynenko
acbd6000fc Translated using Weblate (Ukrainian)
Currently translated at 33.7% (172 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/uk/
2021-09-03 14:44:41 +02:00
Xosé M
e80a12a8a4 Translated using Weblate (Galician)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/gl/
2021-09-03 14:44:41 +02:00
Quentin PAGÈS
a21abae5f6
Translated using Weblate (Occitan)
Currently translated at 81.5% (416 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/oc/
2021-09-03 14:38:43 +02:00
JC Brand
5095027a0b Don't render OOB url if it's the same as the body
Otherwise the file gets shown/rendered twice.
2021-09-01 10:35:32 +02:00
JC Brand
5dc89fb2b3 Ignore 'minimized' flag when not in overlayed view mode 2021-08-31 12:11:27 +02:00
JC Brand
353a90788c Make IndexedDB the default persistent store 2021-08-31 12:11:27 +02:00
JC Brand
90ea092e4d Register a XEP-0316 MEP handler
Add caps element to the MUC join presence, so that the MUC MEP node can
know whether we're interested in receiving MEP messages.

Create info messages for any `conference-info` tags that contain `activity` tags.

Check for both `headline` and `normal` MEP messages (even though the XEP
only show `headline` examples), since `normal` messages can be archived
in MAM, but `headline` ones not.

Update the XEP-0372 reference-parsing code to take the `anchor`
attribute into consideration, specifically to check which text element
the reference applies to.

Add support for rendering XEP-0372 mentions in "info" messages and for
triggering HTML5 Desktop notifications for such mentions.

Background:
-----------

XEP-0316 describes a way for a MUC to send out PEP-like messages to MUC
participants. This feature can be used to describe custom activity happening
in the MUC.
2021-08-31 11:23:49 +02:00
JC Brand
7e88ffd098 Move MUC functions to utils 2021-08-31 11:23:49 +02:00
JC Brand
6827e21df1 Fix race conditions in tests 2021-08-31 11:23:49 +02:00
JC Brand
0c0af2d00b Fix the minimized chats toggle
Clicking didn't make the minimized chats appear.
Also turn it into a Lit component
2021-08-29 00:15:45 +02:00
JC Brand
6c3a3dd1d3 Fix background for overlayed mode 2021-08-29 00:15:45 +02:00
JC Brand
9edab0729f Bump localforage 2021-08-26 06:30:39 +02:00
JC Brand
9cef50323a Add two new sponsors 2021-08-26 06:24:02 +02:00
JC Brand
df53282b6e Bump dayjs 2021-08-25 14:32:34 +02:00
JC Brand
f739b9d37d Fix encrypted images not showing inline.
Updates #1182 #2554
2021-08-24 20:03:04 +02:00
JC Brand
8eac031047 Re-add wrapper anchor for unfurl images
We don't want the wrapper for interactive elements (GIF, video, audio),
but for images we still want them to link to the unfurled URL.
2021-08-10 13:45:56 +02:00
JC Brand
edd3b681c5 Create converse-message-versions component
Enables re-use outside of the message versions modal.
2021-08-10 10:48:50 +02:00
JC Brand
82ade54caa Use converse-icon to show message edited icon/toggle 2021-08-09 15:53:50 +02:00
JC Brand
610e334bed Use converse-icon in the modtools modal 2021-08-06 13:38:12 +02:00
JC Brand
44a573b6c4 Handle GIFs inside Unfurls
- Add ability to play/pause by using `converse-rich-text`
- Make `converse-rich-text` component configurable whether the media URLs for GIF/audio/video are shown
- Add fallback options for GIFs that have errors
2021-08-03 12:14:13 +02:00
JC Brand
95fbd55a19 Fixes #2583 2021-07-30 09:58:35 +02:00
JC Brand
d0627f800c Clear unread message counters when chat becomes visible 2021-07-30 09:56:17 +02:00
JC Brand
ac36407d1d Immediately draw and clear pause icon...
as you move the mouse over or away from a gif
2021-07-29 21:21:51 +02:00
JC Brand
ebfda5c86e Fix GIF rendering
- Fix some GIFs getting stuck
- Add a delay of 80ms for GIFs that specify a delay of 0
- Refactor slightly and add JSDoc
- Remove the unused `loop_delay` option, to allow further simplification of the code
2021-07-29 13:24:27 +02:00
JC Brand
106cde9262 Update modtools component...
to accept jid and affiliation and to not use a Model to store state
2021-07-28 13:28:01 +02:00
JC Brand
7b4f8954b3 No longer necessary to import Bootstrap dropdown styles in index 2021-07-27 14:51:43 +02:00
JC Brand
0242fdb020 Extract moderator tools functionality and put it in a component
This makes it easier for 3rd parties to embed it in other modals (besides the bootstrap modal).
2021-07-27 12:53:39 +02:00
JC Brand
10c610232c Use converse-icon instead of webfonts in heading dropdown 2021-07-27 11:11:36 +02:00
JC Brand
c961615609 Move converse-dropdown styles in separate file
And add some tweaks
2021-07-27 10:53:23 +02:00
JC Brand
55146820e3 Use converse-icon in the converse-dropdown component
Instead of using webfonts
2021-07-26 19:27:59 +02:00
JC Brand
0ccf25d986 Add support for controlling (e.g. pausing, looping) gifs
- Create new component `converse-gif`
- Draw gif in canvas and add controlls
2021-07-23 19:31:43 +02:00
JC Brand
316748988b Allow contact's profile modal to be shown...
even if there is now OMEMO device info
2021-07-23 18:30:07 +02:00
JC Brand
7075c9feee Move modal test out of spec 2021-07-19 16:40:40 +02:00
JC Brand
5cce34eb40 Split push plugin up into multiple files 2021-07-19 16:40:40 +02:00
JC Brand
60826ac6c6 Move functions out of core.js 2021-07-19 16:40:40 +02:00
JC Brand
8931c61876 Prevent attribute error on timeout 2021-07-19 16:40:40 +02:00
JC Brand
d1abf3a04e Wait for roster to be initialized 2021-07-19 16:40:40 +02:00
JC Brand
2bdea0dd18 Move settings API from core.js to own file
Move CORE_PLUGINS to `constants.js`
2021-07-19 15:50:50 +02:00
JC Brand
d2a35d4ce1 Turn converse-roster and converse-roster-filter into Lit elements 2021-07-15 17:26:09 +02:00
JC Brand
8de4671603 Replace more elements that use font icons with svg icons 2021-07-15 16:28:12 +02:00
JC Brand
c209b9e2b9 Bump urijs to 1.19.7 2021-07-15 14:18:51 +02:00
JC Brand
2bcf01f5ab Use DOMPurify instead of XSS.js
Remove exports-loader, which is therefore no longer necessary
2021-07-15 14:16:41 +02:00
JC Brand
3c0a621b47 Bump various dependencies 2021-07-15 11:54:55 +02:00
JC Brand
fe3650d766 Bugfix. XEP-0198 stream management not working when using IndexedDB
The issue was that batched writing was incorrectly also being applied
for sessionStorage stores, so when the `active` flag in
`_converse.session` was being set to `false` on window unload, the
change wasn't persisted before the window was unloaded.

This caused a new session to be created upon reload, thereby losing the
SMACKS data.

We already solved this for persistent stores by flushing them, and
doing so for the session stores would also work, but session stores
don't have to be batched in the first place, so we turn that off.
2021-07-08 15:57:06 +02:00
JC Brand
46201613a6 Bump skeletor to 0.0.5 2021-07-08 10:33:35 +02:00
JC Brand
f2aa39e1c3 Identify media URLs during message parsing 2021-07-06 13:35:22 +02:00
JC Brand
b90a435833 Move url related utility methods to @converse/headless 2021-07-05 18:35:58 +02:00
JC Brand
bff714f24c OMEMO: Include XEP-0380 EME tag in encrypted messages 2021-07-05 18:35:58 +02:00
JC Brand
06460507d4 Don't let message actions drop upwards if...
it's the first (or second) message in the history, otherwise it might
appear behind the chat header.
2021-07-05 18:35:58 +02:00
JC Brand
01efb02f9e Make sure XEP-0363 urls are also OMEMO encrypted
by re-using `ChatBox.prototype.sendMessage`.

updates #1182
2021-07-03 00:22:03 +02:00
JC Brand
3d8852950d Add ability to let dropdown appear at the top, left-aligned
And use that for the last message in the chat history, otherwise the
dropdown is obscured.
2021-07-01 15:23:37 +02:00
JC Brand
e675c853f3 Add XEP-0454 support for encrypting files
Fixes #1182
2021-07-01 14:35:48 +02:00
JC Brand
6665bef76c Fix failing tests
Handle missing message model (happens during tests)
2021-06-29 16:00:10 +02:00
JC Brand
dff5f485c9 Split out MUC tests 2021-06-29 15:59:49 +02:00
JC Brand
4047d619a1 Remove lodash dependency in tests 2021-06-29 15:59:49 +02:00
JC Brand
956a890b94 Don't reject on error in sendTimedMessage
It's the only way I could get a failing test (due to the Jasmine upgrade AFAIK) to pass.

I don't understand why this happens, given that the promise has a
`catch` clause in `retractOwnMessage`, but for some reason the promise
rejection gets caught by Jasmine, causing the test to fail.
2021-06-29 15:59:49 +02:00
JC Brand
767d5ec91d fix failing test 2021-06-29 15:59:49 +02:00
JC Brand
335a491e0d Stop using the Jasmine "done" callback 2021-06-29 15:59:49 +02:00
JC Brand
3e9f028bf4 Update more 3rd party deps 2021-06-29 13:00:36 +02:00
JC Brand
8506646db2 Remove unnecessary event trigger 2021-06-29 12:57:48 +02:00
JC Brand
be329a2d10 Don't subclass the chatbox for the controlbox model 2021-06-29 12:55:29 +02:00
JC Brand
73989e09a9 Fixes concerning dropdowns 2021-06-29 11:33:24 +02:00
JC Brand
46f567d0d1 Fix memory leak in sessionStorage
The disco entities collection gets recreated and repopulated every time
the connection is re-established or after the user logs in again after
having logged out.

The old disco entities weren't being removed, due to an erroneous
`shouldClearCache` call (not applicable to sessionStorage data).

In addition we need a handler to fire and clear the entities cache when
Converse is going to restart.
2021-06-29 11:20:50 +02:00
JC Brand
18f883545b Remove duplicate method 2021-06-25 18:19:01 +02:00
ubermanu
524e14f464 Register the document events once the picker is connected 2021-06-25 17:29:06 +02:00
ubermanu
7503de27c5 Remove document event listener once the dropdown is disconnected 2021-06-25 17:29:06 +02:00
JC Brand
14020125b9 Remove sinon and bump npm 2021-06-25 11:21:17 +02:00
JC Brand
0f82b76c09 fix failing test due to i18n string change 2021-06-25 10:59:13 +02:00
dhruva dhruva
f9a2719507 Translated using Weblate (Romanian)
Currently translated at 43.7% (223 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ro/
2021-06-25 10:43:37 +02:00
juliojulian
0b00d4f9e1 Translated using Weblate (Spanish)
Currently translated at 90.7% (463 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/es/
2021-06-25 10:43:37 +02:00
Luna Jernberg
aa80093665 Translated using Weblate (Swedish)
Currently translated at 99.6% (509 of 511 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/sv/
2021-06-25 10:43:33 +02:00
G
778121010f Translated using Weblate (Polish)
Currently translated at 92.7% (473 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/pl/
2021-06-25 10:43:07 +02:00
lilim
a5c391a6a3 Translated using Weblate (French)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/fr/
2021-06-25 10:43:07 +02:00
ssantos
f846cb1b20 Translated using Weblate (Portuguese)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/pt/
2021-06-25 10:43:07 +02:00
bashl
789d3438e3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.8% (504 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/pt_BR/
2021-06-25 10:43:07 +02:00
Xosé M
f6de5247d6 Translated using Weblate (Galician)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/gl/
2021-06-25 10:43:07 +02:00
member7me
c80d65cf60 Translated using Weblate (Russian)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ru/
2021-06-25 10:43:07 +02:00
Oğuz Ersen
cba44998b9 Translated using Weblate (Turkish)
Currently translated at 100.0% (510 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/tr/
2021-06-25 10:43:07 +02:00
JC Brand
ba0ea6c2c4 Update translations based on suggestions from Zash on weblate 2021-06-25 10:38:38 +02:00
JC Brand
7848d8cb2f Add support for decrypting XEP-0454 OMEMO media 2021-06-25 09:24:18 +02:00
JC Brand
2c0fbec43c Move arraybuffer utility methods into their own file 2021-06-24 18:57:32 +02:00
JC Brand
c5de9dd9f1 Render embedded media with full width in overlayed view mode 2021-06-24 16:13:02 +02:00
JC Brand
92093d6d28 Further style tweaks for embedded media 2021-06-24 13:04:25 +02:00
JC Brand
670f435c64 Set max widths with embedded audio and video content 2021-06-24 12:51:02 +02:00
JC Brand
846dfd6762 Allow subdomains to be passed for domain whitelists 2021-06-24 12:36:51 +02:00
JC Brand
e00bf3da36 Make sure unread messages are cleared when showing a chat 2021-06-23 17:18:32 +02:00
JC Brand
9e21813251 Move tests into new file 2021-06-23 17:11:13 +02:00
JC Brand
3d3242c00d Bugfix. Images automatically load in modal 2021-06-23 13:24:05 +02:00
JC Brand
522998bade converse-roster: dedupe group names 2021-06-23 12:02:47 +02:00
JC Brand
629f382642 converse-roster: Move functions to utils 2021-06-23 12:02:47 +02:00
JC Brand
ad96db994e Fix failing tests on Travis 2021-06-23 10:52:32 +02:00
JC Brand
958d98a1a1 Use mock method in test 2021-06-22 17:04:27 +02:00
JC Brand
fb6bafdf6c Styling: Fix an offset bug
That caused empty inline code hints to be considered valid.

Also update the tests that were failing due to the changes in the
previous commit.
2021-06-22 16:54:05 +02:00
JC Brand
6dea5959cc Use API to get chat/room models in components 2021-06-22 14:47:35 +02:00
JC Brand
afd737f965 Fixes #2520 2021-06-22 12:50:50 +02:00
JC Brand
8de6e78729 In converse-muc-chatarea, use API to get room
and handle asynchronicity.
2021-06-18 11:56:35 +02:00
JC Brand
be8a47b672 Avoid rendering borders for empty unfurl 2021-06-18 11:37:33 +02:00
JC Brand
cf11f2588c Rename method 2021-06-18 11:35:38 +02:00
JC Brand
bb60f8cff4 Move trigger out of while loop 2021-06-18 10:21:03 +02:00
JC Brand
42b15497fc New event historyPruned 2021-06-18 10:07:30 +02:00
JC Brand
f598b7d267 Fix function not being exported 2021-06-17 16:32:58 +02:00
JC Brand
619fb538d7 Show video download URL 2021-06-17 15:50:10 +02:00
JC Brand
095d9b60cd Render audio from URLs in messages 2021-06-17 15:24:25 +02:00
JC Brand
33b426c79e Render videos from URLs in messages 2021-06-17 14:06:18 +02:00
JC Brand
2ac49fb9a5 Bugfix. Images being rendered when they shouldn't 2021-06-17 14:06:18 +02:00
JC Brand
b071a0e22f MAM: Prevent multiple simultaneous queries when scrolling up 2021-06-17 11:39:20 +02:00
JC Brand
b6f2662ad7 Set 'scrolled' flag on model.ui
This prevents it from being persisted across page loads and makes more
sense logically.

Also move markScrolled to utils and MUC unread messages indicator to bottom panel.
2021-06-17 11:39:20 +02:00
JC Brand
5ea9564cc3 Add new configuration setting prune_messages_above
If set to a positive integer, the chat history will be kept to that size
by removing older messages.

This happens as new messages come in (as long as the chat isn't scrolled up)
and when the user scrolls down.

Also add the `pruning_behavior` setting
2021-06-17 11:39:20 +02:00
JC Brand
85a651ae79 Move functions to utils 2021-06-17 11:35:06 +02:00
JC Brand
dc711d494f Add a placeholder to indicate a gap in the message history
The user can click the placeholder to fill in the gap.
2021-06-17 11:35:06 +02:00
JC Brand
14f0ed43c5 Add dayjs as dependency to @converse/headless 2021-06-16 14:47:34 +02:00
JC Brand
6f318bc86d Fix reference error 2021-06-16 14:47:34 +02:00
JC Brand
bbc952b265 Fix MUC and headlines heaidngs, so that they still work
as ElementViews, since I ran out of time converting them to lit
components as well.

This reverts commit 1121a90af0.
2021-06-15 11:09:34 +02:00
JC Brand
1121a90af0 Revert "Turn heading into a lit component"
This reverts commit 969b2f2e11.
2021-06-15 10:52:17 +02:00
JC Brand
969b2f2e11 Turn heading into a lit component 2021-06-15 10:33:33 +02:00
JC Brand
8907adc236 Move method to utils 2021-06-15 10:03:10 +02:00
JC Brand
c8304497b5 Remove onStatusMessageChanged handler
It's no longer necessary and calls a method that doesn't exist anymore.
2021-06-15 09:59:40 +02:00
JC Brand
68f0be996f Let chats be closed by calling close on the models
Instead of on the views/components.

We still have `close` methods on the components, but they are just
event handlers and not external API methods to be called by other code.
Instead `close` should be called on the model.
2021-06-15 09:59:40 +02:00
JC Brand
9fb92080f2 Get rid of the APIs to fetch chat views
This is largely a leftover from the Backbone.View days and makes less
sense now that the UI is componentized.

Ideally we don't want to call commands on the "views themselves, instead
we should be working on the the models and let the "views" update
themselves automatically.

Also, given that the `jid` attribute on the chat views might change,
especially when rendered declaratively in other frameworks like React,
a view might not be available at times where we previously might have
expected it to be (since it's been repurposed for a different JID).
2021-06-15 09:59:40 +02:00