JC Brand
6494b34da3
Don't automatically log in again if the user manually logged out
...
Fixes #2759
2022-12-28 09:57:32 +01:00
JC Brand
447fe8ba08
Refactor the code related to storing SCRAM keys
...
- No need to create a new storage mechanism, just use `persistent`.
- Store SCRAM keys per JID
- Upon succesfull login, store the current session JID, so that we know who to fetch SCRAM keys for
- Only store SCRAM keys when the device is trusted
Fixes #3001
2022-12-28 09:56:41 +01:00
based-a-tron
8ab0b718de
Added option to save SCRAM keys
2022-12-27 22:39:12 +01:00
JC Brand
a76393f216
Also handle 'normal'
messages from roster contacts
2022-12-26 19:17:40 +01:00
JC Brand
e63ba2075f
Use repeat
directive to render roster and MUC occupant items
...
If we don't use `repeat`, a DOM node may be reused with different state
(e.g. the `model` it receives originally changes upon next render).
https://lit.dev/docs/templates/lists/#when-to-use-map-or-repeat
Fixes #2816
2022-12-13 10:04:13 +01:00
JC Brand
78a7841afb
Don't duplicate disco items across two collections
...
We now no longer have an `.items` collection on a disco entity.
Instead, add a new API method `api.disco.entities.items` should be used.
This should solve the issue of the entities disappearing when reloading
the page.
Updates #2925
2022-12-02 22:50:06 +01:00
JC Brand
8c84e276ff
Run npm update
2022-11-08 20:35:17 +01:00
JC Brand
a251608fc5
Fix race condition where waitUntilFeaturesDiscovered
was resolved too early
...
When calling `api.supports(feature, entity_jid)`, it checks whether the entity
supports the feature or whether any of the sub-items on the entity
supports that feature.
However, on `DiscoEntity`, the `waitUntilFeaturesDiscovered` promise
didn't wait for the items on the entity to be fetched, and was therefore
resolved too quickly.
This caused the file upload button to not render.
Updates #2925
2022-11-08 20:03:37 +01:00
JC Brand
038a38cae0
Run npm update
2022-11-04 16:47:01 +01:00
JC Brand
d5deed0871
Release 10.0.0
2022-10-30 17:03:41 +01:00
dependabot[bot]
a5be19ad50
Bump dayjs from 1.11.3 to 1.11.6
...
Bumps [dayjs](https://github.com/iamkun/dayjs ) from 1.11.3 to 1.11.6.
- [Release notes](https://github.com/iamkun/dayjs/releases )
- [Changelog](https://github.com/iamkun/dayjs/blob/v1.11.6/CHANGELOG.md )
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.3...v1.11.6 )
---
updated-dependencies:
- dependency-name: dayjs
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-30 10:51:26 +01:00
JC Brand
dbd36a0d75
Ran npm update
and manually update to Strophe 1.6.0
2022-10-30 10:10:27 +01:00
JC Brand
eb9fd74c77
Provide error message instead of aesm URL
...
when encrypted media cannot be decrypted because it can't be downloaded.
2022-10-23 11:56:59 +02:00
JC Brand
63cc8411a5
Run npm update
2022-10-19 10:02:03 +02:00
JC Brand
ef16a52ced
Make toggling of rooms list reactive and remove imperative code
2022-10-02 16:04:49 +02:00
JC Brand
e555469e3f
Move clearSession
function to utils
2022-09-29 14:26:54 +02:00
JC Brand
b4eb6c0994
Always enable carbons upon connection or reconnection
...
Previously we tried to remember whether carbons were enabled before by
saving a flag in the session storage, but apparently this resulted in
false positives and carbons then not being enabled.
With carbons not enabled, clients don't get sent messages.
I don't like the idea of enabling carbons every time the page reloads,
but the alternative is lost messages which is way worse.
I think the issue is that it's not possible to guarantee that the
session is always properly cleared. For example if Converse crashes, and
then the page is reloaded, the session will wrongly indicate that
carbons have been enabled, even though they won't be.
2022-09-29 14:26:54 +02:00
JC Brand
5760379e0a
Only send out ping if we're actually authenticated
...
Fixes #2562
2022-09-20 15:01:55 +02:00
JC Brand
a4ee3085b7
MUC: Don't ping when we're not connected
...
Instead, wait for the `reconnection` event and then ping.
2022-09-20 15:01:51 +02:00
JC Brand
fbe86e5af8
Create an ElementView base modal and use it for all modals
...
Modals are now all web components and are opened by component name.
2022-09-16 10:33:47 +02:00
JC Brand
8378ce739b
Remove unfurls for hyperlinks removed in a message correction
2022-09-12 10:05:54 +02:00
JC Brand
f9e6c3ff95
Fix groups auto-complete for add-contact modal
2022-09-12 09:28:37 +02:00
JC Brand
0489e0f902
Remove unused function
2022-09-01 17:28:29 +02:00
JC Brand
8ae4b6abd4
MUC: Set occupant ID from reflected message
2022-08-21 17:33:35 +02:00
JC Brand
ca3c8fc10b
Fixes #3007
...
Bugfix: Links in message become text when the message is edited
2022-08-20 11:12:59 +02:00
JC Brand
e8b9681a15
MAM: Always query for newest MAM messages after cached ones have been fetched
...
The `_converse.connection.restored` check ensured that 1:1 chats
manually opened after tab reload would never get their MAM messages
fetched 🤦
2022-08-17 13:53:31 +02:00
JC Brand
51516e38f6
Remove duplicate trigger of afterMessagesFetched
2022-08-17 13:38:57 +02:00
JC Brand
de72d6bae3
MUC: Move constants to separate file
2022-08-17 12:53:41 +02:00
JC Brand
0d9561e666
MUC: When closing, only send read marker if we were entered
...
When using RAI, it's possible to close a MUC without it being entered.
2022-08-17 12:49:44 +02:00
Keith Maika
17e5804be7
Select the immediate body, not the one in fallback.
2022-08-13 10:00:40 +02:00
JC Brand
fd9e41a917
Fix failing test.
...
The fix from @joudinet was to call `this.items.create` on `DiscoEntity`,
however we still need to pass in the same `entity` model as before so that both
collections (`this.items` and `_converse.disco_entities`) have a
referene to the same model.
That way, when attributes like `.identities` are added on the entity,
it's available from both `this.items` and `_converse.disco_entities`.
2022-08-12 10:27:09 +02:00
Johan Oudinet
760f4f7dd1
Fix missing disco-items in session storage
...
This should fix #2925 .
2022-08-12 10:07:12 +02:00
JC Brand
5231262bda
Take from_real_jid
into account when determining sender
...
of MUC messages.
This is safer than simply checking nicknames when the XEP-0421 occupant-id is not
available.
2022-08-12 09:43:49 +02:00
JC Brand
34927b5b77
Use occupant_id
to get own occupant O(1) if available
2022-08-12 09:21:01 +02:00
JC Brand
7028286855
Restrict editing of MUC messages...
...
to ones with the same XEP-0421 occupant ID
2022-08-11 22:44:11 +02:00
JC Brand
342c75775b
Save the user's XEP-0421 occupant ID on the ChatRoom
2022-08-11 15:47:09 +02:00
JC Brand
f1cc8c85f4
Rename the stanza
TTL to stx
to avoid name clashes
2022-08-11 15:30:51 +02:00
JC Brand
c5588e3c49
MUC: Features are fetched in join
...
due to the `await this.refreshDiscoInfo()` call in `join`.
So should be safe to remove the check whether features were fetched.
2022-08-11 15:12:55 +02:00
JC Brand
3d19def3e7
Wait for emojis to be initialized before sending a message
2022-08-11 14:31:28 +02:00
JC Brand
53521c2236
Import utilty function directly and use optional chaining
2022-08-11 10:42:00 +02:00
JC Brand
22170450b4
Stop using zipObject
from lodash
2022-08-11 10:30:07 +02:00
JC Brand
f014db8b7a
Update nick
attr on ChatRoom when user nick changes
2022-08-11 10:23:16 +02:00
JC Brand
fe9345b7fc
MUC: only allow corrections with a matching sender occupant-id
...
Also, don't render messages from a sender with a different `occupant-id`
as a followup message.
2022-08-10 14:53:18 +02:00
JC Brand
d2bdce51e8
Add a tagged template literal function stanza
...
For creating XML stanzas from template literals.
2022-08-10 14:50:12 +02:00
JC Brand
5f6e70289b
Run npm update
to update headless deps
2022-08-09 11:06:44 +02:00
JC Brand
71d1383604
Move code that sets active
flag on session to initSession
...
It doesn't belong in the `converse-status` plugin and the event handler
doesn't get registered when all CSI-related timeouts are set to 0.
2022-07-25 11:59:25 +02:00
dependabot[bot]
06a2aac022
Bump dayjs from 1.11.1 to 1.11.3
...
Bumps [dayjs](https://github.com/iamkun/dayjs ) from 1.11.1 to 1.11.3.
- [Release notes](https://github.com/iamkun/dayjs/releases )
- [Changelog](https://github.com/iamkun/dayjs/blob/dev/CHANGELOG.md )
- [Commits](https://github.com/iamkun/dayjs/compare/v1.11.1...v1.11.3 )
---
updated-dependencies:
- dependency-name: dayjs
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-19 15:35:30 +02:00
JC Brand
d8ea42a845
Add XEP-372 URI as data attribute to mention element
2022-07-19 11:59:55 +02:00
JC Brand
eb29d962f5
Bugfix. Don't try to look up occupant via MUC JID
...
Also set function as class method
2022-07-18 16:19:02 +02:00
JC Brand
605c02901a
Fix yet more tests
2022-07-14 21:17:32 +02:00
JC Brand
368bcf258f
Fix failing tests
2022-07-14 20:40:58 +02:00
JC Brand
07efd601da
Use the native crypto library for SHA-1
...
instead of the one from Strophe
2022-07-14 20:34:15 +02:00
JC Brand
4d9c0d3f9a
Also check for body
2022-07-12 09:05:28 +02:00
JC Brand
5d3da20bd9
Remove/update old comments
2022-07-03 13:36:15 +02:00
JC Brand
a95c070c2b
Set autoprefixer version to fix compilation error
2022-06-22 14:05:03 +02:00
JC Brand
c14c2b3b59
Carbons: check for server support before enabling
2022-06-20 22:44:23 +02:00
JC Brand
25891ef0ee
findOccupant
: Don't fall back to nick/jid search...
...
if the occupant can't be found via XEP-0421 occupant id.
We cannot safely assume that an occupant found via nick/jid but without
the same occupant id is the same occupant.
2022-06-20 14:33:44 +02:00
JC Brand
858a6051ac
Refactoring of the headlines plugins
...
- Move template to relevant plugin
- Turn ElementView into CustomElement
- Use the terminology "Headlines Feed" instead of "Headlines Box"
- Break the `converse-headlines` plugin up into multiple files
- Fix CSS styling for headlines feeds for the Dracula theme
2022-05-13 16:49:45 +02:00
JC Brand
6573d080e4
Message carbons
...
- Remove the `converse-carbons` plugin and make carbons part of the `converse-chat` plugin.
- Remove the `message_carbons` configuration setting. Carbons are now always enabled.
2022-05-13 10:32:54 +02:00
JC Brand
12a0d0e3cc
Show roster contacts with subscription
set to none
...
Remove the `allow_chat_pending_contacts` config option.
2022-05-13 10:19:52 +02:00
JC Brand
ab7e879261
Don't automatically convert OpenStreetMap URLs into geo:
URIs in sent messages
...
Updates #1850 and #2914
2022-05-13 10:14:31 +02:00
JC Brand
a57853156e
Use our own confirm
dialog consistently
2022-05-12 23:23:24 +02:00
JC Brand
ae2bd63d8f
Release 9.1.1
2022-05-05 21:33:31 +02:00
JC Brand
99c5d7a760
Fix failing test
2022-05-05 07:57:33 +02:00
JC Brand
f929f8b7f9
Bugfix. Chunks not loading when using converse.js build
...
(Although they do load when using converse.min.js)
I wasn't able to figure out why exactly, but setting `mode` to
`production` for the `converse.js` build solved the issue.
2022-05-04 21:54:51 +02:00
JC Brand
1f7fe4f48e
Upgrade to Strophe 1.5.0 and upgrade various other dependencies
...
Had to add `src/strophe-shims.js` as a webpack alias to the shims.js
file in Strophe because the usage of `require` to load Node.js packags
in shims.js is causing problems with Webpack 5.
Set postcss-clean to 1.2.0 to fix the build error `node.getIterator() is
not a function`
Upgrade to latest Webpack
2022-04-28 23:53:31 +02:00
JC Brand
55d02cb37b
Update headless package-lock.json
2022-04-26 21:09:16 +02:00
JC Brand
8e612e3cd9
Bump lit, karma, prettierx and localforage-webextensionstorage-driver
2022-04-26 21:05:14 +02:00
JC Brand
2172409fec
Set from_real_jid
on the message when its occupant is attached.
2022-04-26 20:38:20 +02:00
JC Brand
d22c063ae5
Make sure that the occupant_id
is also the id
for occupants
...
insofar we have an `occupant_id`.
We do this by subclassing `create` on the `ChatRoomOccupants` collection
and `save` on the `ChatRoomOccupant` model, to make sure that whenever
an occupant is created or saved, that the `id` matches the `occupant_id`
value if it's available.
This lets us look up the occupant via `occupant_id` via dictionary lookup,
instead of array traversal.
Another change is to save `from_real_jid` when adding an occupant to a message
2022-04-26 20:38:20 +02:00
JC Brand
b71a7ae2ac
Turn ChatRoomOccupants
and ChatRoomOccupant
into classes
2022-04-26 20:33:54 +02:00
JC Brand
6c26c1397f
Update dayjs to 1.11.1
2022-04-26 14:21:47 +02:00
JC Brand
0a07cad2cb
Move connection api into separate file
2022-04-25 09:48:08 +02:00
JC Brand
f93b30f7b3
Show spinner in controlbox when reconnecting
2022-04-24 11:18:09 +02:00
JC Brand
0260e5f803
Fix infinite loop in service discovery
...
When there is a circular dependency between disco entities (via their
advertised `disco#items`), Converse went into an infinite loop because
even though there was a check whether an entity already existed, it
failed to add newly created entities to the global
`_converse.disco_entities` collection.
2022-04-22 09:39:47 +02:00
JC Brand
995cc51f99
Fix failing SMACKS test
2022-04-20 09:52:17 +02:00
JC Brand
760fa4ae63
Send out carbon IQ after stream resumption
2022-04-20 09:52:17 +02:00
JC Brand
4c394c072e
Don't wait for vcards before initializing the roster
2022-04-20 09:52:17 +02:00
JC Brand
699326547a
Show MUC avatar
2022-04-20 09:52:17 +02:00
JC Brand
2a9a01bc32
Fix flashing of bookmarks on page load
2022-04-19 22:52:33 +02:00
JC Brand
ce22508344
Turn bookmarks list into a Lit component
2022-04-19 21:08:52 +02:00
JC Brand
230b72139a
Set jid
as id attribute for vcards, presence and roster contacts
...
This allows models to be retrieved from a dict instead of via array
traversal.
2022-04-19 09:28:06 +02:00
JC Brand
0b168e8439
Use listenTo
2022-04-16 14:25:39 +02:00
JC Brand
e492885ac0
Set jid
as the id attribute of the VCards collection
...
This reduces lookup time for vcards greatly, since we don't can access a
map of ids instead of using `findWhere` through an array of models.
2022-04-16 00:15:27 +02:00
JC Brand
2d5b0753e2
Remove local contacts not returned from a full roster response
2022-04-14 11:29:28 +02:00
JC Brand
7b31f4d333
Remove allow_muc
setting
2022-04-09 09:11:54 +02:00
JC Brand
8930201b99
Fixes #2746
...
Update to latest Strophe which adds a fallback handler for unhandled incoming "get" and "set" IQs.
2022-04-08 22:17:01 +02:00
JC Brand
ad11dce92f
Call safeSave to avoid error when MUC is not yet persistable
2022-04-08 12:19:05 +02:00
JC Brand
0c049dd364
Resolve fetched promise when clearing messages
...
This fixes an issue where chats stay empty after reconnection when
`clear_messages_on_reconnection` is `true`.
2022-04-08 11:22:21 +02:00
JC Brand
ca0953e4bd
Bump urijs, skeletor and localforage-getitems
2022-04-08 11:22:15 +02:00
JC Brand
a17e8bea1c
Only warn when getting an error in safeDestroy
2022-04-08 10:58:06 +02:00
JC Brand
f0297fe075
Add status
and show
elements to MUC join presence in status plugin
...
and not in the muc plugin.
This decouples the plugins more. Ideally we can remove the status plugin
entirely from a customized Converse build (but we're not there yet).
2022-04-07 11:08:00 +02:00
ubermanu
5c5825fb75
Add missing headless dependencies
2022-04-06 23:16:09 +02:00
ubermanu
e0e1fd4f02
Update lock file with root node version (16.3)
2022-04-06 23:10:13 +02:00
ubermanu
5e4fa98577
Add subdir to repo information
2022-04-06 23:10:13 +02:00
ubermanu
7e18873bcd
Target to converse default export
2022-04-06 23:10:13 +02:00
ubermanu
592d982210
Include all headless files except tests
2022-04-06 23:10:13 +02:00
JC Brand
9d4382c754
Move emoji functions to utils.js
...
Also, move various emoji utility methods out of @converse/headless, and
thereby remove the dependency on lit-html
2022-04-06 23:07:16 +02:00
JC Brand
5d3895078b
Use the loading
HTML attr to lazily load images
2022-04-06 08:33:23 +02:00
JC Brand
b429484501
Move csi_waiting_time
setting to the converse-status
plugin
2022-04-04 15:03:57 +02:00