Rocket.Chat v3.11.0 Release Notes

  • 2021-01-31 · 8 🎉 · 9 🚀 · 52 🐛 · 44 🔍 · 32 👩‍💻👨‍💻

    Engine versions

    • Node: 12.18.4
    • NPM: 6.14.8
    • MongoDB: 3.4, 3.6, 4.0
    • Apps-Engine: 1.22.1

    🎉 New features

    • Apps: Apps Permission System (#20078)

    • Apps: IPreFileUpload event (#20285 by @lolimay)

    • ENTERPRISE: Automatic transfer of unanswered conversations to another agent (#20090)

    • ENTERPRISE: Omnichannel Contact Manager as preferred agent for routing (#20244)

    If the Contact-Manager is assigned to a Visitor, the chat will automatically get transferred to the respective Contact-Manager, provided the Contact-Manager is online. In-case the Contact-Manager is offline, the chat will be transferred to any other online agent. We have provided a setting to control this auto-assignment feature image

    Behavior based-on Routing method

    1. Auto-selection, Load-Balancing, or External Service (autoAssignAgent = true) This is straightforward, - if the Contact-manager is online, the chat will be transferred to the Contact-Manger only - if the Contact-manager is offline, the chat will be transferred to any other online-agent based on the Routing system

    2. Manual-selection (autoAssignAgent = false) - If the Contact-Manager is online, the chat will appear in the Queue of Contact-Manager ONLY - If the Contact-Manager is offline, the chat will appear in the Queue of all related Agents/Manager ( like it's done right now )

    • Banner system and NPS (#20221)

    More robust and scalable banner system for alerting users.

    With this new feature, email accounts will receive email messages(threads) which will be transformed into Omnichannel chats. It'll be possible to set up multiple email accounts, test the connection with email server(email provider) and define the behaviour of each account.

    https://user-images.githubusercontent.com/2493803/105430398-242d4980-5c32-11eb-835a-450c94837d23.mp4

    ### New item on admin menu

    image

    ### Send test email tooltip

    image

    ### Inbox Info

    image

    ### SMTP Info

    image

    ### IMAP Info

    image

    ### Messages

    image

    • Encrypted Discussions and new Encryption Permissions (#20201)

    • Server Info page (#19517)

    🚀 Improvements

    • ➕ Add extra SAML settings to update room subs and add private room subs. (#19489 by @tlskinneriv)

    Added a SAML setting to support updating room subscriptions each time a user logs in via SAML. Added a SAML setting to support including private rooms in SAML updated subscriptions (whether initial or on each logon).

    Global chat search is not set by default now.

    • Message Collection Hooks (#20121)

    Integrating a list of messages into a React component imposes some challenges. Its content is provided by some REST API calls and live-updated by streamer events. To avoid too much coupling with React Hooks, the structures RecordList, MessageList and their derivatives are simple event emitters created and connected on components via some simple hooks, like useThreadsList() and useRecordList().

    • Rewrite Announcement as React component (#20172)

    • Rewrite Prune Messages as React component (#19900)

    • Rewrite User Dropdown and Kebab menu. (#20070)

    image

    Made user avatar change buttons to be descriptive of what they do.

    Added the missing Tooltip for kebab menu on chat header. tooltip after

    🛠 🐛 Bug fixes

    Remove unnecessary spaces from the translation key, and added English translation value for the key.

    • Apps: Don't show the "review permissions" modal when there's none to review (#20506)

    • ENTERPRISE: Auditing RoomAutocomplete (#20311)

    • ENTERPRISE: Omnichannel custom fields not storing additional form values (#19953 by @rafaelblink)

    • Actions from User Info panel (#20073 by @Darshilp326)

    Users can be removed from channels without any error message.

    • ➕ Added context check for closing active tabbar for member-list (#20228 by @yash-rajpal)

    When we click on a username and then click on see user's full profile, a tab gets active and shows us the user's profile, the problem occurs when the tab is still active and we try to see another user's profile. In this case, tabbar gets closed. To resolve this, added context check for closing action of active tabbar.

    Added Margins between status bullet and status label

    Added success message after saving notification preferences.

    https://user-images.githubusercontent.com/55157259/104774617-03ca3e80-579d-11eb-8fa4-990b108dd8d9.mp4

    ### Before: image

    ### After: image

    https://user-images.githubusercontent.com/55157259/105151351-daf2d200-5b2b-11eb-8223-eae5d60f770d.mp4

    Different messages for ignoring/unignoring will be displayed.

    https://user-images.githubusercontent.com/55157259/103310307-4241c880-4a3d-11eb-8c6c-4c9b99d023db.mp4

    • Creation of Omnichannel rooms not working correctly through the Apps when the agent parameter is set (#19997)

    • Engagement dashboard graphs labels superposing each other (#20267)

    Now after a certain breakpoint, the graphs should stack vertically, and overlapping text rotated.

    image

    • Fields overflowing page (#20287)

    ### Before image

    ### After image

    • 🛠 Fix error that occurs on changing archive status of room (#20098 by @aKn1ghtOut)

    This PR fixes an issue that happens when you try to edit the info of a room, and save changes after changing the value of "Archived". The archive functionality is handled separately from other room settings. The archived key is not used in the saveRoomSettings method but was still being sent over. Hence, the request was being considered invalid. I deleted the "archived" key from the data being sent in the request, making the request valid again.

    • 🌐 Incorrect translations ZN (#20245 by @moniang)

    • 🎉 Initial values update on Account Preferences (#19938)

    • 📈 Invalid filters on the Omnichannel Analytics page (#19899)

    • Jump to message (#20265)

    • Livechat.RegisterGuest method removing unset fields (#20124 by @rafaelblink)

    After changes made on https://github.com/RocketChat/Rocket.Chat/pull/19931, the Livechat.RegisterGuest method started removing properties from the visitor inappropriately. The properties that did not receive value were removed from the object. Those changes were made to support the new Contact Form, but now the form has its own method to deal with Contact data so those changes are no longer necessary.

    With the new 3.10.0 version update the Links in topic section below room name were not working, for more info refer issue #20018

    • ⚡️ Messages being updated when not required after user changes his profile (#20114)

    • Meteor errors not translating for toast messages (#19993)

    • minWidth in FileIcon to prevent layout to broke (#19942)

    image

    • Normalize messages for users in endpoint chat.getStarredMessages (#19962)

    • OAuth users being asked to change password on second login (#20003)

    • Omnichannel - Contact Center form is not validating custom fields properly (#20196 by @rafaelblink)

    The contact form is accepting undefined values in required custom fields when creating or editing contacts, and, the errror message isn't following Rocket.chat design system.

    ### Before image

    ### After

    #### New image

    #### Edit image

    • Omnichannel Agents unable to take new chats in the queue (#20022 by @rafaelblink)

    • Omnichannel Business Hours form is not being rendered (#20007 by @rafaelblink)

    • Omnichannel raw model importing meteor dependency (#20093)

    • Omnichannel rooms breaking after return to queue or forward (#20089)

    • Profile picture changing with username (#19992)

    bug avatar

    • ✂ Remove duplicate blaze events call for EmojiActions from roomOld (#20159 by @aKn1ghtOut)

    A few methods concerning Emojis are bound multiple times to the DOM using the Template events() call, once in the reactions init.js and the other time after they get exported from app/ui/client/views/app/lib/getCommonRoomEvents.js to whatever page binds all the functions. The getCommonRoomEvents methods are always bound, hence negating a need to bind in a lower-level component.

    The "Hide room" and "Leave Room" confirmation prompts use the "name" key from the room info. When the setting " Allow Special Characters in Room Names" is enabled, the prompts show the normalized names instead of those that contain the special characters.

    Changed the value being used from name to fname, which always has the user-set name.

    Previous: Screenshot from 2021-01-20 15-52-29

    Updated: Screenshot from 2021-01-20 15-50-19

    • Room's list showing all rooms with same name (#20176)

    Add a migration to fix the room's list for those who ran version 3.10.1 and got it scrambled when a new user was registered.

    • RoomManager validation broken on IE (#20490)

    • Saving with blank email in edit user (#20259 by @RonLek)

    Disallows showing a success popup when email field is made blank in Edit User and instead shows the relevant error popup.

    https://user-images.githubusercontent.com/28918901/104960749-dbd81680-59fa-11eb-9c7b-2b257936f894.mp4

    • Search list filter (#19937)

    • Sidebar palette color broken on IE (#20457)

    image

    The Status Circle in status message text input is now centered vertically.

    Change translation keyword in order to allow the translation of Showing results %s - %s of %s in tables.

    • Unable to reset password by Email if upper case character is pr… (#19643 by @bhavayAnand9)

    • 👉 User Audio notification preference not being applied (#20061)

    • 🌐 User info 'Full Name' translation keyword (#20028 by @Karting06)

    Fix the Full Name translation keyword, so that it can be translated.

    • ⚡️ User registration updating wrong subscriptions (#20128)

    • Video call message not translated (#18722)

    Fixed video call message not translated.

    Fix View Logs title translation keyword to enable translation of the title

    🔍 Minor changes

    Closes #19915 The profile options menu is well translated in many languages. However, Edit Status is the only button which is not well translated. With this change, the whole profile options will be properly translated in a lot of languages.

    Adding api tests for the new licenses.* endpoints (licenses.get and licenses.add)

    • ✅ Chore: add tests to api/instances.get endpoint (#19988 by @lucassartor)

    • ⚠ Chore: Change console.warning() to console.warn() (#20200 by @lucassartor)

    • chore: Change return button (#20045)

    • Chore: Fix i18n duplicated keys (#19998)

    • ⚡️ Chore: Recover and update Storybook (#20047)

    It reenables Storybook's usage.

    • ⚡️ Language update from LingoHub 🤖 on 2020-12-30Z (#20013)

    • ⚡️ Language update from LingoHub 🤖 on 2021-01-04Z (#20034)

    • ⚡️ Language update from LingoHub 🤖 on 2021-01-11Z (#20146)

    • ⚡️ Language update from LingoHub 🤖 on 2021-01-18Z (#20246)

    • ✅ Regression: Add tests to new banners REST endpoints (#20492 by @lucassartor)

    Add tests for the new banners.* endpoints: banners.getNew and banners.dismiss.

    • Regression: Announcement bar not showing properly Markdown content (#20290)

    Before: image

    After: image

    • regression: Announcement link open in new tab (#20435)

    • Regression: Apps-Engine - Convert streams to buffers on file upload (#20523)

    This is an implementation to accommodate the changes in API for the IPreFileUpload hook in the Apps-Engine. Explanation on the reasoning for it is here https://github.com/RocketChat/Rocket.Chat.Apps-engine/pull/376

    • Regression: Attachments (#20291)

    • Regression: Bio page not rendering (#20450)

    • Regression: Change sort icon (#20177)

    ### Before image

    ### After image

    • Regression: Custom field labels are not displayed properly on Omnichannel Contact Profile form (#20393 by @rafaelblink)

    ### Before image

    image

    ### After

    image

    image

    Added explicit Return Type (Promise) on the function to fix eslint warning (explicit-function-return-type)

    • 🔀 Regression: Fix banners sync data types (#20517)

    • Regression: Fix Cron statistics TypeError (#20343 by @RonLek)

    • Regression: Fix duplicate email messages in multiple instances (#20495)

    • Regression: Fix e2e paused state (#20511)

    • ⚡️ Regression: Fixed update room avatar issue. (#20433 by @Darshilp326)

    Users can now update their room avatar without any error.

    https://user-images.githubusercontent.com/55157259/105951602-560d3880-6096-11eb-97a5-b5eb9a28b58d.mp4

    • 💅 Regression: Info Page Icon style and usage graph breaking (#20180)

    • 👕 Regression: Lint warnings and some datepicker (#20280)

    • Regression: NPS (#20514)

    • Regression: reactAttachments cpu (#20255)

    • Regression: Room not scrolling to bottom (#20516)

    • Regression: Set image sizes based on rotation (#20531)

    • Regression: Unread superposing announcement. (#20306)

    ### Before image

    ### After image

    • Regression: User Dropdown margin (#20222)

    • Rewrite : Message Thread metrics (#20051)

    image

    image

    • Rewrite Discussion Metric (#20117)

    https://user-images.githubusercontent.com/5263975/104031909-23190880-51ac-11eb-93dd-5d4b5295886d.mp4

    • Rewrite Message action links (#20123)

    • Rewrite: Message Attachments (#20106)

    image

    • 🔒 Security sync (#20430)

    • ⚡️ Update "Industry" setting (#20510)

    • ⚡️ Update Apps-Engine and permissions translations (#20491 by @lolimay)

    Update Apps-Engine version and apply changes in translations for the changed permissions. Please review the texts on the translation files to make sure they're clear.

    • ⚡️ Update Apps-Engine version (#20482)

    Update Apps-Engine version with some fixes for the current RC cycle.

    👩‍💻👨‍💻 Contributors 😍

    👩‍💻👨‍💻 Core Team 🤓