JC Brand
d0627f800c
Clear unread message counters when chat becomes visible
2021-07-30 09:56:17 +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
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
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
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
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
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
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
be329a2d10
Don't subclass the chatbox for the controlbox model
2021-06-29 12:55:29 +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
14020125b9
Remove sinon and bump npm
2021-06-25 11:21:17 +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
e00bf3da36
Make sure unread messages are cleared when showing a chat
2021-06-23 17:18:32 +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
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
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
543cf9066a
Bugfix. TypeError: cannot read property 'length' of undefined
2021-06-14 10:50:58 +02:00
JC Brand
bccd4a81b8
Add missing test file
2021-06-11 16:55:37 +02:00
JC Brand
17d9d2766d
BUgfix. undefined
used as store prefix
2021-06-11 16:53:19 +02:00
JC Brand
ff1b6d3adf
MUC: Don't first check if we're registered before unregistering
...
The IQ stanza being sent to check was in any case incorrect and it
doesn't seem necessary.
2021-06-10 10:40:45 +02:00
JC Brand
9e4a4ba2ff
Add example for retractOtherMessage
2021-06-07 10:10:19 +02:00
JC Brand
ff233a5b1c
Merge branch 'jcbrand/declarative-scrolling'
2021-06-04 12:59:52 +02:00
JC Brand
f3efbba26c
Create converse-message-form
component
...
More work on making bottom panel sub-components declarative
- Handle auto-completion in the converse-muc-message-form element
- Make message limit indicator a component
- Rename template
2021-06-04 12:53:03 +02:00
ubermanu
2f7dcb6bbc
Move decodeHTMLEntities util into headless
2021-06-03 19:23:49 +02:00
JC Brand
58d96c8594
Use intersection observer to remember scrolling position
2021-06-03 18:24:55 +02:00
Christoph Scholz
8701708b53
fix /nick command not working
2021-06-03 17:29:45 +02:00
JC Brand
fe3e63d8c5
Declarative scrolling and rendering new messages indicator
...
- Increment `num_unread` when new messages appear while scrolled up
- Set scrolling state in model code (as opposed to view)
2021-06-03 14:16:03 +02:00
JC Brand
ec93e2fff3
Render chat messages loading spinner declaratively
...
instead of imperatively.
Add new non-persisted UI model for rendering UI changes. Currently only
being used for rendering the spinner
2021-06-03 00:02:33 +02:00
JC Brand
59d55b3526
Add option to deregister nickname when closing a MUC
...
By setting `auto_register_muc_nickname` to `'unregister'`
2021-06-02 22:06:57 +02:00
JC Brand
0756af2b30
Refactor chat close
methods
...
- Remove the shared base-class method.
- Trigger `chatBoxClosed` on the model
- Send CSN from the model, not the view
2021-06-02 17:55:52 +02:00
JC Brand
994e528b45
Bugfix. Properly escape | character in mentioned nicknames
2021-05-19 14:47:20 +02:00
JC Brand
06f03fc884
MUC: Store disconnection data on the session
2021-05-13 15:45:12 +02:00
JC Brand
698f3a7b15
Bugfix. Can't call tagName
on a Strophe.Builder object
2021-05-13 14:41:44 +02:00
JC Brand
c0c8fbac38
Wrongly passed data to the context parameter in hook
...
Causes `undefined` to be returned from `constructPresence` when `converse-caps` is not enabled
2021-05-13 12:15:39 +02:00
JC Brand
19b34231d4
JSDoc improvements
2021-05-13 11:44:19 +02:00
JC Brand
2b12f8e257
Use lodash-es everywhere
2021-05-12 12:14:28 +02:00
JC Brand
9e81fa495e
Upgrade pluggable.js and skeletor
2021-05-12 12:13:10 +02:00
JC Brand
f40bbbf145
Turn status plugin into folder
...
Remove the use of an override and add a hook `presenceConstructed` instead
2021-05-11 17:04:15 +02:00
JC Brand
1fc44b9d8e
Turn caps plugin into folder.
...
Move more test files to plugins
2021-05-11 16:18:34 +02:00
JC Brand
7bd0d9a83f
Bugfix. Don't re-init bookmarks on reconnection
...
This causes an empty bookmarks list in the controlbox, because the
collection gets cleared (and then asynchronousy repopulated) while the
`bookmarksInitialized` promise stays `true` (resulting in a race
condition).
Alternative fix could be to clear the bookmarks and recreate the promise
before reconnecting but doesn't seem necessary to do all that work.
2021-05-07 12:27:29 +02:00
JC Brand
c8f0406c84
Refactor bookmark plugins
...
Mainly moving functions and methods to utils
2021-05-07 12:27:29 +02:00
JC Brand
dd609c1cec
Get the webpack dev server to work again
...
This required triggering the `converse-loaded` event in the entry.js
file, which means it won't be triggered for `@converse/headless` when
used in isolation.
Not ideal, but probably ok because consumers of `@converse/headless`
should probably import it into their own project in any case.
2021-05-06 12:07:44 +02:00
JC Brand
8966290369
Don't make bundled dependencies devDependencies
...
Otherwise you need to manually include them in downstream consumer projects
2021-04-30 14:17:46 +02:00
Shaun Wu
9ea8653ef7
Upgrade to Webpack 3
...
Had to make various other changes due to incompatibilities.
- Use the new `lit` package instead of `lit-html` or `lit-element`
- Drop `haunted` since it breaks the rules by specifying `type: module`
but then doesn't import with file extensions
- Use Sass Dart instead of node-sass (fixes #2445 )
- Upgrade Karma
2021-04-30 13:50:50 +02:00
Shaun Wu
1cb2b1f7a9
Adding configurable url history changing
2021-04-29 11:59:28 +02:00
JC Brand
754f1fcb25
Split smacks plugin up into multiple files
2021-04-28 18:50:54 +02:00
JC Brand
3d58b67517
Use @converse/openpromise
2021-04-28 18:35:08 +02:00
JC Brand
57ccf4c20e
Batched writes to IndexedDB
...
- Update to the latest @converse/skeletor (which uses mergebounce to batch writes)
- Flush storage before logging out
- Flush when reloading the tab
- Create initStorage method
2021-04-28 16:53:50 +02:00
JC Brand
4c804fcf2d
Wait on chatBoxesFetched
in API
...
Otherwise we can run into race conditions when using IndexedDB with
mergebounce
2021-04-28 12:05:40 +02:00
JC Brand
d86f3094b9
Fix failing test
2021-04-23 12:05:30 +02:00
JC Brand
4b737c1c93
Disable interval handler when running tests
2021-04-23 12:00:29 +02:00
JC Brand
ff14a706cf
Fix parameters signature for onDiscoInfoRequest
2021-04-23 11:49:45 +02:00
JC Brand
db12e8a1e6
ping: use setInterval
to continuously send out pings
2021-04-22 16:27:19 +02:00
JC Brand
7b49296a24
Bugfix. Avoid creating an undefined store
2021-04-22 14:47:01 +02:00
JC Brand
a4b90e3ab2
Move tests to headless plugin
2021-04-21 12:25:28 +02:00
JC Brand
458c51b32d
Move tests for message image rendering to new file
2021-04-21 12:06:10 +02:00
JC Brand
6af9142810
Move ping plugin into folder
2021-04-21 11:18:48 +02:00
JC Brand
7b7ec45db8
Move disco plugin into folder and import lodash utilities separately
2021-04-21 11:03:22 +02:00
JC Brand
b2f09f64c3
Use API to get room
2021-04-19 15:23:58 +02:00
JC Brand
fdde708327
Add a new MUC room state: converse.ROOMSTATUS.BANNED
...
This makes it easier to distinguish between being banned from a room, or
being disconnected for other reasons.
2021-04-15 12:34:00 +02:00
JC Brand
b439ae1cc4
Bugfix. Don't set fake nick...
...
when creating occupant from affiliation change stanza.
This means that when a presence for that occupant arrives, a duplicate
occupant is created (presumably because the original can't be find due
to the wrong nick being set).
2021-04-14 18:02:41 +02:00
JC Brand
cd9977c94e
Add an API for setting affiliations
...
This allows us to set affiliations in MUCs without having to first enter
the MUC in order to create a `ChatRoom` instance.
2021-04-14 10:44:31 +02:00
JC Brand
383f5c1d60
Extract affiliation-related methods out of the ChatRoom model
...
and put them together in a utils file
2021-04-14 10:44:31 +02:00
JC Brand
ccd60f76c3
Cleanup
...
- Move top-level functinos to utils files
- Get rid of unused/obsolete overrides
- Only import components there where they're used
- Bump version in package.json
2021-03-26 10:58:51 +01:00
ubermanu
3bfd60a3df
Move the httpToGeoUri util into core
2021-03-25 09:08:39 +01:00
JC Brand
3c99f1f840
Fixes #2348
...
Don't automatically hide the first MUC opened in uni-view
2021-03-22 11:39:17 +01:00
JC Brand
3bdae848b3
Fix this
binding bug
2021-03-19 13:02:56 +01:00
JC Brand
9d5d94a8f4
Update to latest Skeletor with localforage-setitems optimization
2021-03-18 16:21:15 +01:00
JC Brand
05abb1dae9
Move method from view to model
2021-03-17 11:27:13 +01:00
JC Brand
d548180f20
Add support for more languages, 'da', 'sw', 'th'
2021-03-17 10:20:19 +01:00
JC Brand
fff431737b
Add support for new languages 'fa', 'el', 'lt'
2021-03-17 09:41:58 +01:00
JC Brand
dde3ef206d
Update to Strophe with a SASL fix
2021-03-16 15:10:09 +01:00
JC Brand
c7c077074f
Chat: Move two methdos from component to the model
2021-03-16 11:01:10 +01:00
JC Brand
d8daedea0d
Render the MUC view component declaratively
2021-03-15 12:34:56 +01:00
JC Brand
4ca30c4b93
Create converse-muc-chatarea
component
2021-03-11 10:26:09 +01:00
JC Brand
4fd848ff3e
Bugfix. Use init settings to check for test env
2021-03-10 12:39:17 +01:00