JC Brand
b5eea12d49
Refactor so that message attributes are parsed early
...
It's better to parse an incoming message stanza early, than to have
all kinds of methods throughout the codebase that does querySelector
etc.
Firstly, it allows us to catch and report errors and malicious stanzas early on.
It also simplifies programming because you don't need to try and
remember how to properly parse a stanza, all the work is done upfront
for you.
2020-04-27 16:34:37 +02:00
JC Brand
bad815b429
Bugfix. Don't create multiple RosterContactView objects
2020-04-27 16:30:33 +02:00
JC Brand
958379682a
muc: Render role change messages as ephemeral notifications
2020-04-23 15:11:36 +02:00
JC Brand
4b270359f6
Use Karma as test runner
2020-04-23 11:55:51 +02:00
JC Brand
7e23adf26f
Remove the need for require.js to run tests
2020-04-22 12:10:39 +02:00
JC Brand
c1efb0d2b4
Add an external API for sending presences
2020-04-19 09:41:38 +02:00
JC Brand
8a7b25584d
Show error messages via objects
...
Instead of injecting them directly into the DOM.
2020-04-19 08:03:44 +02:00
JC Brand
60b3f7ae25
Add an autocomplete component
2020-04-17 11:01:44 +02:00
Dele Olajide
f97d827280
fix #1963 - Mentions are visually incorrect when used in message replies ( #1968 )
...
* fix #1963 - Mentions are visually incorrect when used in message replies
2020-04-15 12:25:53 +02:00
JC Brand
c9084e4ed5
muc-views: Present challenge to destroy
confirmation
...
And also allow the user to specify the JID to where the conversation has
moved to.
2020-04-15 09:30:10 +02:00
JC Brand
df9612f937
Add support for XEP-0317 MUC Hats
2020-04-13 22:57:29 +02:00
JC Brand
a1d5563963
Move OMEMO-related message parsing to utils/stanza.js
2020-04-13 17:44:47 +02:00
JC Brand
e91a38547a
MUC: create role/affiliation change message objects
...
in @converse/headless instead of injecting HTML via the view
2020-04-13 11:21:40 +02:00
JC Brand
4ef5363024
Fix failing tests
2020-04-10 16:59:34 +02:00
JC Brand
4425c3dde7
Always show a new topic, even if the previous one was hidden
2020-04-08 14:31:18 +02:00
JC Brand
bc4d016557
Don't show duplicate topic change notifications
2020-04-08 13:08:15 +02:00
JC Brand
5fd316816d
MUC: Don't show topic change notification for old changes.
...
Also, show topic by creating a message object, instead of directly
inserting HTML into the DOM. This is a necessary precursor to being able
to render chat messages via lit-html/lit-element.
2020-04-07 11:49:12 +02:00
JC Brand
e18fe5e212
Use the getHeadingButtons
hook instead of overrides
2020-04-07 10:20:43 +02:00
JC Brand
531ebf335c
Properly test and fix show/hide of MUC topic
2020-04-06 15:27:32 +02:00
JC Brand
bb9e394e93
muc: handle join/leave notifications similarly to CSNs
...
Remove the `muc_show_join_leave_status` config setting.
We don't show the optional statuses at all now.
2020-04-01 14:34:11 +02:00
JC Brand
c20dbbbbbd
Store in user settings whether a MUC topic is hidden or not
2020-03-31 22:57:22 +02:00
JC Brand
6391cc0803
Rename applyUserSettings to applySiteSettings
2020-03-31 14:08:34 +02:00
JC Brand
631b9bb438
Use the settings API for setting and getting config settings
...
This is an initial step towards no longer storing and accessing settings
directly via the `_converse` object
2020-03-31 11:57:03 +02:00
JC Brand
321a54323e
Allow moderators to retract their own messages...
...
when retractions are restricted to mods only
2020-03-26 10:35:08 +01:00
JC Brand
6865a73f46
Fix failing tests
2020-03-25 12:18:19 +01:00
JC Brand
e3bd7b45f5
Distinguish between chat content and messages content.
...
Fixes a bug that prevented scrolling from working correctly
2020-03-24 14:34:57 +01:00
JC Brand
7812d4e7b6
Show chat state notifications inside the scrollable area
...
Rename CSS class to conform to convention
2020-03-24 11:28:50 +01:00
JC Brand
5e27579ebe
Don't ignore groupchat messages that also contain a CSN
2020-03-23 20:54:27 +01:00
JC Brand
57709b2e78
Sort modtools search results by nickname
2020-03-23 18:06:36 +01:00
JC Brand
00cac6d250
Add the ability to filter the results in the modtools modal
2020-03-23 14:34:19 +01:00
JC Brand
b215c59bd0
Add more XSS tests
2020-03-21 21:43:29 +01:00
JC Brand
540a85e8db
Move XSS tests into a separate spec
2020-03-21 21:12:36 +01:00
JC Brand
b5d57f0ef8
Handle and render chat state notifications separately from messages
2020-03-21 17:21:53 +01:00
JC Brand
ca012d4479
Update to newer Skeletor.js
...
`.forEach` on a Collection no longer returns the models, so need to
update some tests.
2020-03-12 15:24:29 +01:00
JC Brand
c9f29f76e5
Use lit-html to render URLs
2020-03-06 12:24:23 +01:00
JC Brand
366dee0aa5
Bugfix. Allow moderators to retract their own messages
2020-03-05 13:42:58 +01:00
JC Brand
a7f28cd61d
When creating message objects, wait for confirmation from storage
...
Queue messages and handle them sequentially, each time waiting for promises to
resolve before handling the next message.
Updates #1899 , which likely happens because an error message is received
before messages have been fetched.
2020-03-04 15:14:57 +01:00
Lance Stout
a6aaf3f595
Update chat state notifications when message is edited.
2020-03-03 15:24:15 +01:00
JC Brand
f34cc63d4c
Log out before running test
...
To avoid one test which times out, causing subsequent tests to not be
run (and therefore also time out).
2020-03-03 15:12:20 +01:00
JC Brand
831e59c1a7
controlbox: Wait when saving while closing
...
Otherwise we run into race conditions while testing
2020-03-03 14:38:29 +01:00
JC Brand
8aaa1a6417
core: Make clearSession
a synchronous event
...
In order to give plugins time to properly clear data from the browser storage.
2020-03-03 10:23:46 +01:00
JC Brand
9295850789
controlbox Only call show/hide callback when the action was actually done
2020-03-03 08:21:55 +01:00
JC Brand
2af93f4492
modtools: settings for which roles/affiliations may be queried or assigned
2020-02-22 23:16:22 +01:00
JC Brand
e5341d54a9
Bugfix. Dangling moderation messages not applied
2020-02-22 22:59:30 +01:00
JC Brand
61e86a3c23
Fixes #1535
...
Add option to destroy MUC in the dropdown context menu.
Also add a confirmation dialog.
2020-02-22 20:22:02 +01:00
JC Brand
3c9ec96350
MUC: create references for nicks gathered from messages
2020-02-21 12:30:40 +01:00
JC Brand
d361d1d0a3
MUC: Include nicks from messages in the mentions auto-complete list
2020-02-20 19:14:34 +01:00
JC Brand
62ef18a027
muc_fetch_members now accepts an array of affiliations
2020-02-20 18:39:56 +01:00
JC Brand
49817a850f
MUC: Queue messages received before we're ready
2020-02-20 07:13:04 +01:00
JC Brand
0137eb88ae
Smacks: Handle MUC messages received before the MUC exists
2020-02-19 13:39:07 +01:00
JC Brand
ce08819a43
Retracted moderated sent message should not be editable.
2020-02-18 16:47:52 +01:00
JC Brand
ead8cdbcd6
Retracted moderated message should not be editable.
...
Also, don't set retracted MUC messages as ephemeral, we want to keep on
showing them to provide context in a MUC.
2020-02-18 16:06:59 +01:00
JC Brand
227b70339c
Bugfix. Retracted messages shouldn't be editable.
2020-02-18 15:45:55 +01:00
JC Brand
004d2b7f23
Fix method name in log
2020-02-18 15:45:55 +01:00
JC Brand
f564a1edaf
Show reason and actor for ban/kick events
2020-02-14 13:19:12 +01:00
JC Brand
39d140005e
Change when/how chats are shown
...
Goal is to fix a timing bug that results in `show` being triggered
before the `ChatBoxView` has been initialized, which means that 1:1
chats aren't opened when you reload the page.
2020-02-14 11:06:04 +01:00
JC Brand
3400acbfeb
Show MUC buttons in a dropdown menu
...
- Get rid of the ChatBoxHeading class
- Add support for showing standalone buttons in overlay viewmode
2020-02-13 20:57:47 +01:00
JC Brand
2235d4c432
Use lit-html to render MUC heading
2020-02-07 14:58:26 +01:00
JC Brand
7d91b17552
Rename methods to clarify their purpose
2020-02-07 12:42:19 +01:00
JC Brand
0653505a40
tests: Use u.getUniqueId
instead of time for message ids
2020-02-07 12:35:54 +01:00
JC Brand
fb9fe280ac
Updates to how dupes are detected.
...
- Collapse 3 different loops into one.
- Check all saved stanza ids in the parsed attrs, not just the archive id
- Remove check for archive id in converse-mam since it just duplicates what's now being done in converse-chat
- Don't use disco to check for support, XEP-359 mandates that services SHOULD advertise support,
which is not a strong enough guarantee that they do.
updates #1856
2020-02-07 12:35:45 +01:00
JC Brand
6e8a987694
Fix failing test (when run in isolation)
2020-02-04 13:46:43 +01:00
JC Brand
7d7c41a135
OMEMO: fix timing errors
...
- Use async/await
- Wait for devices to be created before continuing
2020-02-03 23:24:44 +01:00
JC Brand
f78837cbc5
Refactor identification of duplicates...
...
to rely on the parsed stanza attributes
This was to fix a bug whereby a full stanza was used to query for 1:1
messages with a full JID when the bare JID is stored.
We now are sure that the attributes we're using to query for duplicates
are the same attributes that get saved for a messages.
2020-02-03 23:24:44 +01:00
JC Brand
e3708bd598
Refactor headlines list to render everything with one view
2020-01-30 19:57:04 +01:00
JC Brand
73fa24a844
headlines: move view code into converse-headlines-view.js
2020-01-30 18:18:27 +01:00
JC Brand
30d08d2bfe
muc-views: Remove features section...
...
and replace with button to open invite modal
2020-01-30 17:36:55 +01:00
JC Brand
9fb2056753
Move MUC invite widget into a modal
2020-01-30 17:36:55 +01:00
JC Brand
d32c4c1f61
muc-views: replace VDOMView with HTMLView
2020-01-30 17:36:55 +01:00
JC Brand
d310f1e3e4
emoji-views: use lit-html for templating
...
* declare picker events in lit-html
* init intersection observer only once
* don't set value manually
* don't manually add classes
* avoid x-scrollbar and 'undefined' in search input
2020-01-30 17:36:55 +01:00
JC Brand
ad93407907
Replace modal templates with lit-html components
2020-01-30 17:36:55 +01:00
JC Brand
a8104d7498
Add Skeletor as dependency
2020-01-30 17:36:55 +01:00
JC Brand
b08f5d355b
roster: avoid race-condition by waiting for contacts to be fetched
...
before creating any new ones
2020-01-30 17:36:55 +01:00
Christoph Scholz
a472a0806e
show headline messages in controlbox
2020-01-23 11:32:15 +01:00
JC Brand
464c68a3b6
Fix typo
2020-01-22 15:58:28 +01:00
JC Brand
bda704901f
emoji-views: lazily render picker only once user clicks to open
2020-01-22 15:00:16 +01:00
JC Brand
f3472e1b9f
emoji: Add initialize
API method and call when chat view gets created
2020-01-22 13:20:59 +01:00
JC Brand
901f70272e
message-view: Re-use image element and fix autoscroll after image loads
2020-01-21 15:32:34 +01:00
JC Brand
b0a9782d31
emoji: Lazy load the emoji JSON
...
Only load it once the first chat has been opened.
2020-01-21 12:45:34 +01:00
JC Brand
17ef50f662
muc-views: admins can also change the MUC subject
2020-01-17 14:50:25 +01:00
JC Brand
161cbec0d8
For forbidden
errors, show error message from server
2020-01-17 14:44:05 +01:00
JC Brand
aa86a8be32
muc: Store room configuration (e.g. disco#info fields
) on the MUC
...
This will make it easier to add config-based functionality, such as
allowing/showing the `/topic` slash command only to those users who are
allowed to set the subject.
2020-01-16 15:28:02 +01:00
JC Brand
d17ae811d7
More CSS and test fixes
2020-01-15 15:48:31 +01:00
JC Brand
8a4c71305f
Fix failing tests
2020-01-15 14:23:05 +01:00
JC Brand
9ce315dece
Bugfix. Handle stanza that clears the MUC subject
2020-01-14 10:07:23 +01:00
JC Brand
4018dd959e
Fixes #1764 : Incorrect URI encoding in references
2020-01-09 14:59:45 +01:00
JC Brand
17654aaf40
emoji-views: incorporate tab-based navigation
2020-01-08 11:38:31 +01:00
JC Brand
995f2a9997
Add arrow navigation to the emoji picker
2020-01-07 15:47:05 +01:00
JC Brand
8b6c902c4c
Set VCards via events, thereby reducing coupling
...
- Rename `chatRoomOpened` event to `chatRoomViewInitialized`
- Rename `chatBoxInitialized` to `chatBoxViewInitialized` and trigger only for `ChatBoxView` instances.
- New event `headlinesBoxViewInitialized`
- Trigger the `chatBoxInitialized` event when a new `_converse.ChatBox` is opened.
2019-12-18 15:20:51 +01:00
JC Brand
c3102561f4
updates #1795 : Only download metadata for video files
2019-12-18 15:20:51 +01:00
JC Brand
b0e66232d3
Fixes #1253 : Show contacts with unread messages at the top of the roster
2019-12-18 11:42:26 +01:00
JC Brand
03b7ae0a30
Improvements to how things are stored.
...
- Use the bare JID as indexedDB dataStore
- Collapse localStorage and indexedDB stores into one `persistent` store.
- When testing, only clear test data
2019-12-17 13:59:43 +01:00
JC Brand
a4567ee075
muc: Store connection_status
in session storage
...
Otherwise we might run into a situation where a very old,
cached MUC that's being restored has `connection_status` set to ENTERED
(and the user happens to be in the MUC via another client)
and then restores cached messages without taking
`clear_messages_on_reconnection` into account.
2019-12-11 08:10:27 +01:00
JC Brand
3d3738f3be
muc: refactor MUC joining
...
We now distinguish more clearly between joining and re-joining a MUC.
The `enterRoom` method has been refactored away.
Instead, `join` or `rejoin` should be used, depending on the circumstances.
Don't fetch cached occupants in the `initialize` function, instead, only fetch
them if we're restoring a MUC that we're still connected to.
If we're not restoring a still-connected MUC, then we clear the
occupants cache, and the messages cache if `clear_messages_on_reconnection` is `true`.
updates #1807
updates #1808
2019-12-09 17:17:33 +01:00
JC Brand
7bf39a092f
muc: move message handler into own method
2019-12-06 13:09:09 +01:00
Dele Olajide
890db3427f
Handle message notifications about affiliation change for users not in a room
...
See https://git.happy-dev.fr/startinblox/components/sib-chat/issues/96
2019-12-06 12:55:07 +01:00
JC Brand
1c116b0385
mam: distinguish between messages fetched before and after MUC join
2019-11-29 16:17:48 +01:00
JC Brand
d7d810ba89
Improvements to rendering MUC MAM logs before joining
...
- Add config variable `muc_show_logs_before_join`
- Restore nickname form for the original use-case (when not showing MAM logs before joining).
- Render nickname form in the `.muc-bottom-panel` when showing MAM logs (instead of in a modal)
- Show a message when there aren't any archived messages to show
- Fix converse-mam so that chat logs are properly fetched before entering a MUC
closes #1266
2019-11-29 09:23:15 +01:00
JC Brand
e23c7ce543
More retraction updates
...
- Retracted moderated message are not editable
- Use "removed" for user-facing text
2019-11-26 22:04:38 +01:00
JC Brand
adf2e97ea1
Fix failing tests
2019-11-22 13:50:36 +01:00