Releases: conversejs/converse.js
Releases · conversejs/converse.js
Version 4.0.0 - 2018-09-07
New Features
- #161 XEP-0363: HTTP File Upload
- #194 Include entity capabilities in outgoing presence stanzas
- #337 API call to update a VCard
- #421 XEP-0308: Last Message Correction
- #497 XEP-0384: OMEMO encrypted messaging
- #968 Use nickname from VCard when joining a room
- #986 Affiliation changes aren't displayed in the chat
- #1081 Allow for shift-enter to insert newlines
- #1091 There's now only one CSS file for all view modes.
- #1094 Show room members who aren't currently online
- #1106 Support for Roster Versioning
- #1137 Autocompletion and support for XEP-0372 References, specifically section "3.2 Mentions".
- It's now also possible to edit your VCard via the UI
- Automatically grow/shrink input as text is entered/removed
- MP4 and MP3 files when sent as XEP-0066 Out of Band Data, are now playable directly in chat
- Support for rendering URLs sent according to XEP-0066 Out of Band Data.
- Geo-URIs (e.g. from Conversations) are now replaced by links to openstreetmap (works in reverse also)
- Add a checkbox to indicate whether a trusted device is being used or not.
If the device is not trusted, sessionStorage is used and all user data is deleted from the browser cache upon logout.
If the device is trusted, localStorage is used and user data is cached indefinitely. - Initial support for XEP-0357 Push Notifications, specifically registering an "App Server".
- Add support for logging in via OAuth (see the oauth_providers setting)
Bugfixes
- Spoiler messages didn't include the message author's name.
- Documentation includes utf-8 charset to make minfied versions compatible across platforms. #1017
- #1026 Typing in MUC shows "Typing from another device"
- #1039 Multi-option data form elements not shown and saved correctly
- #1143 Able to send blank message
API changes
_converse.api.vcard.get
now also accepts aBackbone.Model
instance and
has an additionalforce
parameter to force fetching the vcard even if it
has already been fetched.- New API method
_converse.api.vcard.update
. - The
contactStatusChanged
event has been renamed tocontactPresenceChanged
and a eventpresenceChanged
is now also triggered on the contact. _converse.api.chats.open
and_converse.api.rooms.open
now returns a
Presence
which resolves with theBackbone.Model
representing the chat
object.
UI changes
- #956 Conversation pane should show my own identity in pane header
- The UI is now based on Bootstrap4 and Flexbox is used extensively.
- Fontawesome 5 is used for icons.
- User Avatars are now shown in chat messages.
Configuration changes
- Removed the
storage
configuration setting, use trusted instead. - Removed the
use_vcards
configuration setting, instead VCards are always used. - Removed the
xhr_custom_status
andxhr_custom_status_url
configuration
settings. If you relied on these settings, you can instead listen for the
statusMessageChanged
event and make the XMLHttpRequest yourself. - Removed
xhr_user_search
in favor of only acceptingxhr_user_search_url
as configuration option. xhr_user_search_url
has to include the?
character now in favor of more flexibility. See example in the documentation.- The data returned from the
xhr_user_search_url
must now include the user's
jid
instead of just anid
. - New configuration settings nickname
and auto_join_private_chats.
Architectural changes
- Extracted the views from
converse-muc.js
intoconverse-muc-views.js
and
where appropriate moved methods from the views into the models/collections.
This makes MUC possible in headless mode. - Created a new core plugin
converse-roster.js
which contains the models for
roster-related data. Previously this code was inconverse-core.js
. - VCards are now stored separately from chats and roster contacts.
Other
- Support for OTR (off-the-record) encryption has been dropped.
Release 3.3.4 (2018-03-05)
- Don't show bookmark toggles when PEP bookmarking not supported by the XMPP server.
- Emojis are now sent in unicode instead of short names (also in MUCs)
Bugfixes
- Server field in
Rooms
tab showed MUC supporting clients instead of only components. - Avatars weren't being shown.
- Bookmarks list and open rooms list weren't recreated after logging in for a 2nd time (without reloading the browser).
- #1022 Status message not sent out on subsequent presences
- #1024 null reference on MUC Invite
- #1025 OTR lock icon disappears
- #1027
new Event
not supported in IE11 - #1028 Avoid
eval
(crept in via_.template
from lodash).
Translation changes
- New locale: Bulgarian
- Updated German, Russian, Chinese (traditional), Norwegian Bokmål and French translations.
Release 3.3.3 (2018-02-14)
Changelog
3.3.3 (2018-02-14)
Bugfixes
- Attribute error when empty IQ stanza is returned for vCard query
- In fullscreen view, sometimes a background MUC would come into the foreground
when a new message appears inside it.
Security fixes
-
CVE-2018-6591: Don't allow PEP bookmarks if
pubsub#publish-options
is not advertised by the server.In previous versions of converse.js, bookmarks sent to servers that don't
supportpubsub#publish-options
were visible to all your contacts, even
though they should be kept private. This is due to those servers simply
ignoring thepubsub#publish-options
directive and converse.js not checking
first whetherpubsub#publish-options
is supported before setting bookmarks
via PEP.More info here: https://gultsch.de/converse_bookmarks.html
New features
- XEP-0382 Spoiler Messages (currently only for private chats)
- Listen for new room bookmarks pushed from the user's PEP service.
- Simplified the embedded usecase.
- No need to manually blacklist or whitelist any plugins.
- Relies on the view_mode being set to
'embedded'
. - The main
converse.js
build can be used for the embedded usecase. - Maintain MUC session upon page reload
API changes
- New API method
_converse.disco.getIdentity
to check whether a JID has a given identity.
Configuration settings
auto_reconnect
is now set totrue
by default.- New configuration setting allow_public_bookmarks
- New configuration setting root
- The view_mode setting now has a new possible value:
embedded
Translation updates
- Chinese (Traditional), French, German, Portuguese (Brazil), Russian, Ukrainian
Release 3.3.2 (2018-01-29)
Bugfixes
- Various fixes for IE11.
- Could not register on Ejabberd 18.
"Missing attribute 'id' in tag qualified by namespace 'jabber:client'"
- #878 Ending slash in link not recognized
- #921 FATAL error when
visible_toolbar_buttons.emoji = false
- #959 Add padding for the iPhone X (to the mobile CSS).
- #993
moment.format
is not a function error when sending a message. - #994 TypeError when using the
user.login
API. - #995
ChildNode.replaceWith
is not available in Internet Explorer or Safari. UseNode.replaceChild
instead. - #999 MUC Chat Send button causes page reload
- #1000 Scroll to bottom when maximizing a chat room.
- #1003 Handle bare MUC room JIDs
Translation changes
- Updated Dutch, French, Japanese, Norwegian Bokmål and Ukrainian translations
Release 3.3.1 (2018-01-18)
Changes
UI/UX changes
- Add new configuration option
show_message_load_animation
with a default value offalse
. The message load animations (added in 3.3.0)
cause slowness and performance issues in Firefox, so they're now disabled by default.
Translation changes
- Updated Spanish and French translations.
- New translation: "Simplified Chinese"
- Rename
zh
language code tozh_TW
and add Simplified Chinese aszh_CN
Release 3.3.0 (2018-01-17)
Changes
Bugfixes
- #800 Could not register successfully in ejabberd 17.01
- #949 Don't flash the roster contacts filter (i.e. hide by default)
- #951 Duplicate messages received in an MUC chat room.
- #953 MUC "Features" displayed when exiting configuration
- #967 Rooms list doesn't show when the server doesn't support bookmarks
- Don't require
auto_login
to betrue
when using the API to log in. - Moment locale wasn't being set to the value passed via the
i18n
option. - In the chat heading, two avatars sometimes get rendered.
- Refetch the roster from the server after reconnection.
From the perspective of the XMPP server, this is an entirely new login,
and therefore as per RFC-6121
the roster SHOULD be queried, making the client an "interested resource".
Otherwise connected contacts might not get your presence updates. - The way the archive ID of a MAM message is specified, has changed.
See https://xmpp.org/extensions/xep-0313.html#archives_id - Fixed error building DOM toggle_chats.html span.unread-message-count class attribute
- Bugfix. In a MUC the
/help
command didn't render properly. - The
/voice
MUC command didn't set the right role in order to grant voice again.
New Features
- Emojis are now sent in unicode instead of short names
- #314 Add support for opening chat rooms with a URL fragment such as
#converse/room?jid=room@domain
and private chats with a URL fragment such as#converse/chat?jid=user@domain
- #828 Add routing for the
#converse/login
and#converse/register
URL
fragments, which will render the registration and login forms respectively. - New configuration setting view_mode
This removes the need for separateinverse.js
andconverse-mobile.js
builds. Instead theconverse.js
build is now used withview_mode
set to
fullscreen
andmobile
respectively. - Fetch VCard when starting a chat with someone not in the user's roster.
- Show status messages in an MUC room when a user's role changes.
- In MUC chat rooms, collapse multiple, consecutive join/leave messages.
- Performance improvements for rendering private chats, rooms and the contacts roster.
- MUC Leave/Join messages now also show a new day indicator if applicable.
API changes
- New API method
_converse.disco.supports
to check whether a certain
service discovery feature is supported by an entity. - New API method
_converse.api.vcard.get
which fetches the VCard for a
particular JID.
Configuration changes
hide_open_bookmarks
is now by defaulttrue
.
UX/UI changes
- #984 Improve loading of archived messages via "infinite scroll"
- Use CSS3 fade transitions to render various elements.
- Remove
Login
andRegistration
tabs and consolidate into one panel. - Show validation error messages on the login form.
- Don't hang indefinitely and provide nicer error messages when a connection
can't be established. - Consolidate error and validation reporting on the registration form.
- Don't close the emojis panel after inserting an emoji.
- Focus the message textarea when the emojis panel is opened or closed.
- MUC chatroom occupants are now sorted alphabetically and according to their roles.
Technical changes
- Converse.js now includes a Virtual DOM
via backbone.vdomview and uses
it to render various views. - Converse.js no longer includes all the translations in its build. Instead,
only the currently relevant translation is requested. This results in a much
smaller filesize but means that the translations you want to provide need to
be available. See the locales_url
configuration setting for more info. - The translation machinery has now been moved to a separate module in
src/i18n.js
. - jQuery has been completely removed as a dependency (still used in tests though).
Release 3.2.1 (2017-08-29)
Bugfixes
- Various IE11 fixes.
- #907 Unnecessary login validation error when
default_domain
orlocked_domain
are set. - #908 Login form for inVerse is only 200px when
allow_registration
is set tofalse
. - #909 Translations written as template literals aren't parsed properly by xgettext.
- #911 Use
getDefaultNickName
consistently to allow better overrides via plugins. - #912
maximize
method inconverse-minimize
fails if thecontrolbox
is not there.
Release 3.2.0 (2017-08-09)
New Plugins
- New plugin
converse-disco
which replaces the original support for
XEP-0030 and which has been
refactored to allow features for multiple entities to be stored.
New features and improvements
- Add support for Emojis (either native, or via Emojione).
- Add JID validation to the contact add form, the occupant invite form and the login form.
- #896 Consistently use
XMPP username
in user-facing text (instead of JID, Jabber ID etc.).
New configuration settings
- The
visible_toolbar_buttons.emoticons
configuration option is now changed tovisible_toolbar_buttons.emoji
. - use_emojione
is used to determine whether Emojione should be used to render emojis,
otherwise rendering falls back to native browser or OS support. - emojione_image_path
is used to specify from where Emojione will load images for rendering emojis.
New events
Code changes
- Removed jQuery from
converse-core
,converse-vcard
andconverse-roomslist
. - Remove
jquery.easing
from the full build. Was only being used by the
conversejs.org website, which has been updated to not rely on it. - All promises are now native (or polyfilled) ES2015 Promises instead of jQuery's Deferred.
- #866 Add babel in order to support ES2015 syntax
Bugfixes:
- The domain was queried for MAM:2 support, instead of the JID.
- Roster filter is not shown when all groups are collapsed.
- When filtering, contacts in closed groups appear.
- Room name wasn't being updated after changing it in the configuration form.
- Server disco features were "forgotten" after logging out and then logging in again.
- Don't show duplicate sent groupchat messages in Slack chat rooms.
- Bookmark icon shown in the open rooms list when
allow_bookmarks
is tofalse
. - It wasn't possible to add or remove bookmarks via the "Open Rooms" list.
- #879 Text in links are converted to smileys leading to non-clickable links.
- #899: Only touch
stamp-npm
ifnpm install
was successful - #902
make build
dependends on non-existing files
Release candidate for 3.2.0
Refer to CHANGES.md for the changelog.
Release 3.1.1 (2017-07-12)
- Use a patched version of awesomplete which doesn't render suggestions as HTML (possible XSS attack vector). [jcbrand]
More info here: LeaVerou/awesomplete#17082