Commit Graph

4387 Commits

Author SHA1 Message Date
JC Brand 31b10aa0b0 CSS: add right margin 2022-10-03 14:01:12 +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 1a8ae3dcbe Make roster contacts toggleable 2022-10-02 15:52:01 +02:00
JC Brand 34a4a70ae2 Move bookmarks into a modal 2022-10-01 10:52:08 +02:00
JC Brand f791169f47 Fixes #3030
* The `confirm` modal didn't show the `title`
* Refactor the new modal code to not automatically show a close button in the footer.
2022-09-30 09:29:49 +02:00
JC Brand 782de0165f Add hover effect to tabs in modal 2022-09-29 14:26:54 +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 74cda3f4b4 Remove FA font files 2022-09-29 14:09:21 +02:00
JC Brand aebd98cf0a Stop using font-awesome fonts to render icons
This commit just does the last 1% of work necessary to get rid of font-awesome fonts.

fixes #1004
fixes #2639
2022-09-28 15:11:46 +02:00
JC Brand 983d5ea09c CSS: more tweaks to cut off vertical zalgo text 2022-09-28 12:53:35 +02:00
JC Brand 3720092c09 CSS fix: prevent zalgo text from going out of vertical bounds
(previous commit didn't work properly it seems)
2022-09-28 11:15:39 +02:00
JC Brand 36cb7a644e CSS fix: prevent zalgo text from going out of vertical bounds 2022-09-28 11:01:36 +02:00
JC Brand 6293efd8ee Avoid double wrapping with anchor tag and tweak unfurl CSS
to make it smaller on large screens.
2022-09-27 14:31:19 +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 bd60861c1e Don't import plugins' `index.js` file from other plugins
Importing a plugin's `index.js` file from other plugins means that it's no
longer possible to remove that plugin by removing it from `src/converse.js`.

Instead, all plugins need to be imported in proper order from
`src/headless/headless.js` and `src/converse.js`.

Updates #3026
2022-09-20 14:48:20 +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 927add0707 Wrap `requestUpdate` in an arrow function
Otherwise parameters from the event handler might be passed in to it,
causing potential weirdness.
2022-09-16 10:26:21 +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 98ae55790d Add a `list` property to the `converse-autocomplete` component
This can be used instead of the `getAutoCompleteList` function and
avoids unnecessary computation.
2022-09-10 15:20:05 +02:00
JC Brand bb0ad432b2 Move add-contact modal to the rosterview plugin 2022-09-10 14:46:32 +02:00
JC Brand 55e3417df3 Move user settings modal to profile plugin 2022-09-10 14:37:01 +02:00
Keith Maika 92f71bafb2 Fix muc icons not working due to incorrect target element. 2022-09-08 11:21:53 +02:00
JC Brand f1734dbb40 Bugfix. Trim whitespace after JID 2022-09-06 13:45:30 +02:00
JC Brand 0489e0f902 Remove unused function 2022-09-01 17:28:29 +02:00
JC Brand 0aa66fee99 CSS Fixes.
- Remove max height for MUC heading, otherwise subject text can get cut off
- Fix offset in mobile due to the background image
2022-08-27 16:40:13 +02:00
JC Brand ed1099490c Fix bug where auto-complete list would jump to top 2022-08-26 23:19:08 +02:00
JC Brand a74bbd093f Improve rendering of add-muc autocomplete suggestions 2022-08-26 22:58:46 +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
JC Brand 97be0bd8ac Styling: Use zero-width space and maintain position of newline char
Fixes #2879
2022-08-15 15:56:15 +02:00
Debanjana Sarkar 7f99b24e28 Fix for #2870 2022-08-15 15:54:29 +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 45e989f048 Move `converse-oauth` to the `community-plugins` repo 2022-08-09 10:42:33 +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 4aab83c4af Remove unused method 2022-07-14 08:47:39 +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 ba7c6d7a50 Let `HeadlinesHeading` use `CustomElement` 2022-06-19 13:03:06 +02:00
JC Brand 7e2dd55c16 Use `api.elements.define` 2022-06-19 12:12:09 +02:00
JC Brand 8dc8b1d564 Insert only the MUC JID when clicking an auto-complete suggestion 2022-06-12 10:25:41 +02:00
JC Brand d2b4f2e0f6 MUC search: no need to first fetch the form 2022-06-12 09:59:50 +02:00
JC Brand 320f11f795 Use XMPP to search for MUCs via search.jabber.network
Also refactor AutoComplete somewhat to not compute `this._list` too
eagerly and to also pass the query string to `this._list`.
2022-06-11 23:43:43 +02:00
JC Brand 4237e5b3ae Style the add-muc modal autocomplete
- Let it drop down to the bottom
- Add a border
- Let it scroll
2022-06-11 23:42:47 +02:00
JC Brand 8671afc4b1 Document converse-autocomplete and always add closing tag
Weird parsing issues happen when a closing tag is not present.
2022-06-11 23:42:47 +02:00
JC Brand 0316f073e0 Replace font icons with svg icons 2022-06-11 23:42:47 +02:00
JC Brand 1744dbc420 Move roomslist tests to the right plugin 2022-06-11 23:42:47 +02:00
JC Brand eb8ebea920 Move bookmarks list tests into separate file 2022-06-11 23:42:47 +02:00
JC Brand 4c8bc187b2 Allow autofocus to be set on an autocomplete input 2022-06-01 22:04:43 +02:00
Sanskar Bajpai 1ad6de2dd6 AutoComplete: added `converse-autocomplete` suggestion to group chat query
this commit introduces autocomplete feature to the muc-list group chat dialog,
previously there was only an input field which displayed hardcoded servers.
2022-05-24 17:31:24 +02:00
Sanskar Bajpai 795a9a7e3e add-modal-test: replaced a mistyped jid 2022-05-24 17:04:38 +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
eapo 52693bfc0b Translated using Weblate (Hungarian)
Currently translated at 95.1% (494 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/hu/
2022-05-13 10:50:39 +02:00
HAMANO Tsukasa 79063b9993 Translated using Weblate (Japanese)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ja/
2022-05-13 10:50:39 +02:00
HAMANO Tsukasa 22840f8a50 Translated using Weblate (Japanese)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ja/
2022-05-13 10:50:39 +02:00
HAMANO Tsukasa 92f74b888b Translated using Weblate (Japanese)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ja/
2022-05-13 10:50:39 +02:00
Emmanuel Gil Peyrot ac241e5ed1 Translated using Weblate (French)
Currently translated at 99.8% (519 of 520 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/fr/
2022-05-13 10:50:39 +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 2a7bfd13b5 Add ability to specify group when adding contact 2022-05-13 10:18:22 +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 a3c0f90476 Don't use browser's `confirm` dialog when logging out
Refs https://github.com/conversejs/converse-desktop/issues/18
2022-05-11 09:13:17 +02:00
JC Brand b5bcc05947 Create `generatePreKeys` function 2022-05-08 23:37:47 +02:00
HAMANO Tsukasa bd579d8613 remove unnecessary } 2022-05-08 22:46:57 +02:00
Eric 7e9861ba8f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (417 of 417 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/zh_Hans/
2022-05-06 13:10:00 +02:00
Emmanuel Gil Peyrot 0c9fd691ac Translated using Weblate (French)
Currently translated at 100.0% (417 of 417 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/fr/
2022-05-06 13:09:39 +02:00
JC Brand 984386aa64 Bugfix. Add missing translations
Some translations were erroneously removed due to the nodeps build
contained string literals.
2022-05-06 13:02:03 +02:00
JC Brand ae2bd63d8f Release 9.1.1 2022-05-05 21:33:31 +02:00
Иван Иванович 5e27e27845 Translated using Weblate (Russian)
Currently translated at 96.5% (501 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ru/
2022-05-05 20:57:59 +02:00
Yoandry González Castro ca9d68b99e Translated using Weblate (Spanish)
Currently translated at 90.5% (470 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/es/
2022-05-05 20:57:59 +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
Eric dbc0028880 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/zh_Hans/
2022-05-02 09:48:25 +02:00
Oğuz Ersen f27238b76f Translated using Weblate (Turkish)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/tr/
2022-05-02 09:48:25 +02:00
Xosé M 5adc39ebac Translated using Weblate (Galician)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/gl/
2022-05-02 09:48:25 +02:00
nautilusx 53ccc4948f Translated using Weblate (German)
Currently translated at 100.0% (519 of 519 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/de/
2022-05-02 09:48:25 +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 0af72d41da Fix button hover color 2022-04-26 20:45:37 +02:00
JC Brand ebd9474ac1 Add more ways to get VCard for occupant modal 2022-04-26 20:41:04 +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 3c2eda4a1d Better documentation for getHeadingButtons 2022-04-25 09:58:27 +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 1915d70c41 Turn controlbox into a Lit element 2022-04-23 12:01:41 +02:00
JC Brand 059795c0f3 No need to log cache misses 2022-04-22 10:06:08 +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
Allan Nordhøy 1b60697565 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/
2022-04-20 13:47:22 +02:00
JC Brand fb158e418b Show number of participants in sidebar 2022-04-20 09:59:57 +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 d4382fda19 OMEMO bugfix. Don't auto-create device list without JID 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
SilverYoCha 7cb86638b5 Fixing display problems with chatbox view with mobile view mode 2022-04-15 06:48:25 +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 8e1c3e47df Improve how the `muc_domain` setting is populated via disco
Remove brittle code that uses `querySelector` to get the rooms list model.
This code was causing a TypeError due to a race condition.
2022-04-09 10:57:55 +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
SilverYoCha b331405658 Bugfix: selected emoji inserted into all open chat boxes
when in overlay view mode.
2022-04-08 08:21:19 +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 af342456c5 Add `enterkeyhint` attribute to message form inputs 2022-04-06 09:55:56 +02:00
JC Brand 5d3895078b Use the `loading` HTML attr to lazily load images 2022-04-06 08:33:23 +02:00
JC Brand 32a443408a Bugfix. GIF unfurl images not loading...
and causing `TypeError: this.shouldRenderMedia is not a function`
2022-04-04 16:31:32 +02:00
JC Brand b429484501 Move `csi_waiting_time` setting to the `converse-status` plugin 2022-04-04 15:03:57 +02:00
JC Brand 6b1845ff39 Release 9.1.0 2022-04-02 19:31:37 +02:00
JC Brand fb704fdf87 Don't import from i18n in headless 2022-04-02 15:55:56 +02:00
Ricky Tigg f6a985c24f Translated using Weblate (Finnish)
Currently translated at 83.5% (426 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/fi/
2022-04-01 15:51:52 +02:00
Edward 44cd910154 Translated using Weblate (Romanian)
Currently translated at 45.0% (230 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ro/
2022-04-01 15:51:52 +02:00
Γκουλιούμης Θεόδωρος f21fc90629 Translated using Weblate (Greek)
Currently translated at 0.3% (2 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/el/
2022-04-01 15:51:52 +02:00
Hasan 21fb57ecfd
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/
2022-03-31 09:33:27 +02:00
Xosé M 3bb645ce24
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/
2022-03-31 09:33:27 +02:00
JC Brand fd991846f4 Replace `ElementView` with `CustomElement` for `RoomsList` 2022-03-30 09:50:36 +02:00
JC Brand 523566c218 Move MUC tests into their own files 2022-03-30 09:48:39 +02:00
JC Brand c3933426b9 Refactor `checkFileTypes`
- Don't check the protocol in `checkFileTypes`, it should be doing one
    thing only, and that is check whether the URL ends with a particular
    file extension.
- Raise an error when a URI object can't be created from the passed in URL

Adds new function `isAllowedProtocolForMedia` which checks whether the
URL points to a file on the file system (`file:`), is in a Chrome
extension or uses HTTPs.

Use that in `shouldRenderMediaFromURL` to filter out URLs that shouldn't
be rendered.

Re-add utility methods to the `u` object so that 3rd party plugins can
use them.
2022-03-29 19:41:16 +02:00
Keith Maika be561addfa Fix endless loop of adding .png to image URL. 2022-03-29 19:08:39 +02:00
JC Brand c379fe80fb Handle 'forbidden' MUC errors with type 'cancel' and add fallthrough 2022-03-29 10:36:32 +02:00
JC Brand 5ef0f3ad5d CSS: various color fixes between light/dark themes 2022-03-29 10:35:25 +02:00
JC Brand d570b6095e Don't make the connection URL input required
It might be that it's shown in response to a failed XEP-156 lookup
because the user mistyped.

In which case the user can just correct the JID and try again, without
entering a connection URL.
2022-03-25 08:54:38 +01:00
JC Brand fca275b7c9 Refactor the login form
Render the form based on `api.settings` instead of its own model.

When the login form is submitted, save the JID, password and connection
URL to `api.settings`.

Set the `service` on the Strophe connection object just before
connecting for the first time, otherwise a user supplied URL (via the
login form) is never used.

New API setting: show_connection_url_input
2022-03-24 23:15:30 +01:00
JC Brand e160ee2ed5 Add JID and password values to login form (if available) 2022-03-24 21:05:40 +01:00
JC Brand fbfd6c3ac4 Updates #2849: add test for incoming MUC OMEMO corrections 2022-03-23 21:30:53 +01:00
JC Brand 7355c2c5fe Updates #2849
Add test case for incoming OMEMO message corrections.

The correction was being ignored because the parsed `msgid` of an
incoming correction was set to the `msgid` of the message being
replaced.
2022-03-22 23:12:45 +01:00
JC Brand 297869c59f Don't explicitly sort messages.
Apparently not necessary, I was wrong about the race condition in 82fb263438
2022-03-15 21:24:32 +01:00
JC Brand defea1631c Bugfix. Don't ignore groupchat messages that contain receipt requests 2022-03-15 11:35:15 +01:00
JC Brand 82fb263438 Explicitly sort messages before pruning
to avoid a race-condition where messages aren't sorted and the wrong
message gets pruned.
2022-03-14 21:19:43 +01:00
JC Brand d2b9c954d9 MUC: move some tests to headless plugin 2022-03-14 20:35:01 +01:00
JC Brand f9a9d327d1 Use `body` as attribute for the message body text
For error messages we still use the `message` attribute, since error
messages generally don't have a body, and if one does, it likely refers
to the `body` of a rejected message that the error refers to.

We're still setting both `body` and `message` attributes, but usage of
`message` for a normal `chat`, `groupchat` or `headline` stanza should
be considered deprecated.
2022-03-14 09:28:34 +01:00
JC Brand d2622f6fed Fixes #2557
Add the ability to send OMEMO corrections.

Refactor how OMEMO messages are sent to avoid having to override
`sendMessage` and thereby also allowing corrections of OMEMO messages to
be sent out.

Add two new hooks.
- getOutgoingMessageAttributes
- createMessageStanza
2022-03-13 10:02:34 +01:00
JC Brand 731e98b07c OMEMO fixes for completely new user
Fix bugs related to there not being a server-side device list (not even an empty one) for a new user.
2022-03-13 10:02:34 +01:00
JC Brand 89a3c81a19 OMEMO: don't wait for all device lists...
to be fetched from the server before triggering OMEMOInitialized.

For some contacts, the IQ to fetch the device list never receives a
response. IQ stanzas take 20 seconds to timeout, which means that all
OMEMO operations are blocked for 20 seconds (because everything waits
for `OMEMOInitialized`).

Create a new API method `api.omemo.devicelists.get` and use that to
fetch and `await` for any devicelist. That way we lazily wait for
devicelists to be fetched from the server and can continue with other
OMEMO operations unrelated to users who's clients don't respond to
devicelist queries.
2022-03-10 20:51:04 +01:00
JC Brand 2133241998 CSS: Fix chat title width and elipsis color
in overlayed view mode.
2022-03-10 20:51:04 +01:00
JC Brand 47b016599e Stop using `this` in tests.
It will be unsupported in future versions of Jasmine
2022-03-09 12:44:49 +01:00
JC Brand e52056bb33 Refactor the emoji-picker somewhat
Trigger an `emojiSelected` event instead of manually calling `insertIntoTextArea` on the `converse-message-form` a component.
This loosens the coupling between the emoji picker and `converse-message-form`.

Call `disableArrowNavigation` when the emoji-picker is disconnected from
the DOM or when escape is pressed. See #2754
2022-03-09 12:44:33 +01:00
JC Brand 1c0ce25f12 Move keycodes and chat states to constants.js 2022-03-09 12:22:44 +01:00
JC Brand c42bd90c9d Don't clear textarea on escape, unless we're correcting a message 2022-03-09 11:24:32 +01:00
SilverYoCha 7409668a5d Fixes #2754 2022-03-08 16:40:26 +01:00
JC Brand d432bab73a Remove and recreate lockfiles
To see if that fixes Github Actions CI
2022-02-28 13:34:40 +01:00
JC Brand 9328db645d Update to latest Skeletor
So that we can use the `getAll` IndexedDB method to fetch multiple
entries at once. Should result in a significant speedup.
2022-02-28 10:37:58 +01:00
JC Brand b7ad1eaade Fix failing tests 2022-02-22 11:44:53 +01:00
JC Brand 727bad01c7 Don't send `<show>online</show>` joining a MUC 2022-02-22 11:30:38 +01:00
JC Brand b248803a4b Fixes #2822 2022-02-20 19:17:52 +01:00
JC Brand 7b63b7b30f Make various error messages ephemeral.
Also make it possible to specify the timeout for an ephemeral message.
2022-02-19 23:11:22 +01:00
JC Brand ca20f687bf minimize: initialize chat via event instead of override 2022-02-19 23:10:17 +01:00
JC Brand bbef09346a Various CSS fixes and use `converse-icon` for nav button 2022-02-19 23:09:39 +01:00
JC Brand 1c8085f00e CSS: Set modal header color for error alerts
Also fix various element colors for Dracula theme
2022-02-19 21:32:25 +01:00
JC Brand beb220f188 Updates #2781
Only send presence status update when a MUC is entered, and when joining
a MUC, include the `<show>` element.
2022-02-18 10:55:20 +01:00
JC Brand 20cd90855f Dracula theme: Set correcting color 2022-02-16 10:14:53 +01:00
JC Brand 39e9ed8fe4 Updates #2733
Rather use `false` for a bool
2022-02-15 14:48:01 +01:00
JC Brand 22a7e1b35f Updates #2733
Set `is_error` to back to undefined
2022-02-15 14:46:00 +01:00
JC Brand 9a95c2d048 Normalize URL path
Udates #2814

Otherwise `"` gets escaped as `&quot;` by lit-html which is not correct.
2022-02-15 14:38:40 +01:00
JC Brand 9a2424fa26 Fixes #2814. Links are mangled on open/copy 2022-02-15 14:10:40 +01:00
JC Brand b44e1c82f0 Updates #2733
- Clear timer when a messages changes from epehemeral to non-ephemeral
- Set MUC occupant on `groupchat` message when `type` changes to `groupchat` (from `error`)
- Set roster contact on `chat` message when `type` changes to `chat` (from `error`)

Thanks @afriedmanGlacier
2022-02-15 12:23:46 +01:00
JC Brand a07bd7c817 Use SVG icons for refresh button and toggle switch 2022-02-15 11:17:41 +01:00
JC Brand 85d75a5494 Fixes #2745. Wraps MUC details in `converse-rich-text`
Also fixed an issue where the `config` model on the MUC wasn't being
properly persisted and fetched.
2022-02-15 11:17:33 +01:00
JC Brand a2c7e83812 Take offset into account when parsing text for URLs 2022-02-14 19:08:26 +01:00
JC Brand 7c7b667745 MUC: Register handler to parse for commands in the plugin index.js 2022-02-14 15:17:05 +01:00
JC Brand 38519a6261 Updates #2733
Properly handle the same OMEMO message being recieved twice, with the
2nd one failing to decrypt.
2022-02-14 12:59:49 +01:00
JC Brand f6c524f760 Move MUC modals to the muc-views plugin 2022-02-14 12:59:49 +01:00
JC Brand 0fb4dcac96 Translated using Weblate (Spanish)
Currently translated at 90.1% (460 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/es/
2022-02-10 14:24:06 +01:00
Xosé M caf8360745 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/
2022-02-10 14:24:06 +01:00
Dalde Pro ea63c9a17d Translated using Weblate (Spanish)
Currently translated at 90.1% (460 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/es/
2022-02-10 14:24:06 +01:00
ButterflyOfFire 6a293de86b Translated using Weblate (Arabic)
Currently translated at 74.3% (379 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/ar/
2022-02-10 14:24:06 +01:00
translator 5caa5aa9ae 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/
2022-02-10 14:24:06 +01:00
Yaron Shahrabani b8487cfaa6 Translated using Weblate (Hebrew)
Currently translated at 73.3% (374 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/he/
2022-02-10 14:24:06 +01:00
aitzol berasategi 203afea72b Translated using Weblate (Basque)
Currently translated at 99.8% (509 of 510 strings)

Translation: Converse.js/Translations
Translate-URL: https://hosted.weblate.org/projects/conversejs/translations/eu/
2022-02-10 14:24:06 +01:00
JC Brand 7f40d1a2f2 Fix #2627 2022-02-10 13:36:22 +01:00
JC Brand 47f3109957 Dracula: Set colors for unread messages indicator and nickname autocomplete 2022-02-10 13:03:47 +01:00
JC Brand 066d29d637 Fix alignment of close button for MUC sidebar 2022-02-10 12:09:02 +01:00
JC Brand 12a2354d9e CSS: Fix chat heading colors 2022-02-09 21:38:30 +01:00
JC Brand d8f6a16936 Avoid unnecessary call to requestUpdate and use updateComplete 2022-02-09 21:22:38 +01:00
JC Brand 8a9e0f6d23 CSS fix for emoji picker when there are no search results 2022-02-09 20:47:29 +01:00
JC Brand f4fdc36d31 Add modal for changing your nickname...
once you're already in a MUC.
2022-02-09 20:05:30 +01:00
JC Brand ba52defdae Move nickname tests into a new file 2022-02-09 20:05:30 +01:00
JC Brand 505416a59e Let bookmarks be created/removed via a modal 2022-02-09 20:05:30 +01:00
JC Brand 9d250c3cbf Fix failing test due to converse-icon being used 2022-02-09 20:05:30 +01:00
JC Brand 46e6cfb0d4 Fix some failing tests after #2803 2022-02-09 20:05:30 +01:00
afriedmanGlacier 3d8a583101
Wait for parseMessages before queuing to UI (#2803)
* parse messages before queuing

* update CHANGES

* remove unused variable

Co-authored-by: aFriedmanGlacier <afriedman@glaciersecurity.com>
2022-02-05 22:02:24 +01:00
JC Brand 337638034f Fix `TypeError` when trying to use `@converse/headless`
Fixes #2788
2022-02-03 12:39:59 +01:00
JC Brand 0f648ed1eb Don't re-initialize OMEMO on reconnection
Promises only get recreated upon logout, not reconnection.

However OMEMO was getting re-initialized on reconnection and
`_converse.omemo_store` was also deleted.

This caused a race condition where an incoming MAM message would cause
`parseEncryptedMessage` that then throws an AttributeError because
`_converse.omemo_store` is undefined because OMEMO isn't yet
initialized.

Waiting for the `OMEMOInitialized` promise doesn't help because it's
still the old (already resolved) promise from before the reconnection.
2022-02-02 23:18:45 +01:00
JC Brand d3fa925bff Move reconnection code to Connection class
And avoid calling `tearDown` twice
2022-02-02 13:53:05 +01:00
JC Brand bef2cbb462 Use SVG icons and tweak message padding 2022-01-31 23:00:26 +01:00
Rob j Loranger 125f45c447
increase stanza timeout to 20s (#2799)
* increase stanza timeout to 20s

fixes issues with higher latency connections timing out fetching stanzas
2022-01-31 12:06:30 +01:00
JC Brand 817b1200ca CSS: fix hover color 2022-01-29 12:29:54 +01:00
JC Brand 8dcacd41bf Add hover color for svg icons 2022-01-29 12:12:36 +01:00
JC Brand 2e9f478c87 CSS: tweak padding for avatar in message 2022-01-29 11:46:02 +01:00
JC Brand b13c674047 Show encrypted lock icon in message as svg 2022-01-29 11:31:09 +01:00
JC Brand dd539c7675 CSS: fix unread msgs indicator in Dracula theme
Also try to create some initial structure with the CSS properties to
make theming easier
2022-01-29 11:19:00 +01:00
JC Brand 818ad0955a Add ability to switch between dark and light modes 2022-01-28 21:20:12 +01:00
JC Brand ac473fd297 Add dark theme Dracula
https://draculatheme.com
2022-01-28 20:28:48 +01:00
JC Brand 11bbbb4899 Create separate theme files 2022-01-28 12:43:24 +01:00
JC Brand 0d0ee294ad Don't fetch vcard if failed attempt was already made today 2022-01-28 12:43:24 +01:00
JC Brand 7c51147023 Use the `parseMessageForCommands` hook to also parse MUC commands
Also fix issue where `model.getAllowedCommands()` prevents 3rd party
implementations.
2022-01-28 12:40:21 +01:00
JC Brand 003a90c71c Don't explicitly trigger the hook `parseMessageForCommands`
inside `parseMessageForMUCCommands`.

If the function doesn't find any core MUC commands, it calls
`parseMessageForCommands` which will trigger the hook.

I think it's appropriate to give built-in commands preference above
commands by 3rd party plugins and this also solves the issue of the hook
being triggered twice (once in `parseMessageForMUCCommands` and
then again in `parseMessageForCommands`).
2022-01-27 19:12:35 +01:00
JC Brand d06761e2a8 Fix failing tests 2022-01-27 19:12:35 +01:00
Dele Olajide c83cc69cef Implement new hook `parseMessageForCommands` for plugins to add custom commands 2022-01-27 14:34:20 +01:00
JC Brand 351212cd13 Move webpack files into dir 2022-01-27 13:08:40 +01:00
JC Brand 007b4bce2f Set BOSH `wait` period to 59 seconds also when attaching to a session 2022-01-25 13:13:14 +01:00
JC Brand 46a5a64dda Set `id` on MUC join presence
This is necessary for the Bifrost Matrix-XMPP bridge
2022-01-25 13:07:03 +01:00
JC Brand 72eb9d9595 Bump Strophe version 2022-01-21 20:25:01 +01:00