5.4.0
2022-12-05 · 9 🎉 · 13 🚀 · 61 🐛 · 87 🔍 · 57 👩💻👨💻
Engine versions
- Node:
14.19.3
- NPM:
6.14.17
- MongoDB:
4.2, 4.4, 5.0
🎉 New features
-
Add new endpoint 'livechat/agent.status' & deprecate changeLivechatStatus meteor method (#27047)
-
Bugsnag client (#23580)
-
Custom MessageType for video conference messages (#27333)
-
Emphasis Elements (italic, strike and bold) in Message Parser Components (#27003)
Currently the message parser does not accept Emphasis elements mixed with plain text
[Normal Link - *Bold*, _Italic_ and ~strike~ Styles](https://rocket.chat/)
return plain text → Should return a Lin with bold/italic/strikeTo fix this behavior it was necessary to edit LinkSpan component in gazzodown package (changes included in this PR) and the grammar/utils files in the
fuselage/message-parser
repositoryFuselage Pull Request: RocketChat/fuselage#887
-
Federation events coverage expansion (#27119)
This PR adds the following features for the Matrix Federation feature:
-
Ability to sync Users' real names (since they have at least one room in common with other users);
-
User typing event;
-
-
Incompatible Apps (#27280)
-
REST API endpoint
/v1/oauth-apps.create
(#27054)Created the 'oauth-apps.addOAuthApp' endpoint for the
apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx
file, and added Ajv validation. -
REST API endpoint
/v1/rooms.delete
(#26866) -
Video Conference Message blocks and info action (#27310)
🚀 Improvements
-
Add message name container component to message name header and system message (#27184)
Add
MessageNameContainer
wrapper to displayname
andusername
inline and separate them with a blank space.Update font size of system message:
Add removed message variation to
ThreadMessageOrigin
component
Before:
-
Add searchTerm support for livechat/rid/messages API (#27214)
-
Add update option to apps list kebab menu and implement new update badge on apps list (#27246)
Added a new update option to the app menu to follow the removal of the CTA buttons from the apps list. Also implemented the new update badge that will replace the old update button.
Demo gif:
-
Adding a noscript tag for letting users know if they have JS disabled (#23632 by @sidmohanty11)
-
Improve searchChats endpoint to have source filter support (#27262)
-
Login rewrite in react (#26782)
-
Marketplace feedback toasts (#27239)
Jira tasks
Save app changes toast: MKP-160
Uninstall app toast: MKP-168
Enable/disable app feedback toast: MKP-169Implemented/refactored four toast notifications and refactored another two in marketplace. The first one happens after the user saves the settings of an app, the second one when the user successfully uninstalls an app and the third and fourth ones happen when the user enables and disables an app respectfully.
Demo gif:
-
Move app list install logic to app menu (#27056)
Jira task: MKP-136
Moved the install/buy/subscribe logic from the CTA buttons that existed in the app list to the app menu. Now the user can install apps by clicking in the kebab menu in the right of the app list entry. Also solved a little undefined bug happening in the app permissions modal.
Demo gif:
-
Quotes on E2EE Messages (#26303)
This PR provides basic quoting to E2EE messages, it doesn't support multiple chaining of quotes messages.
-
Read threads when marking a room as read (#26754)
This PR changes the functionality of
subscription.read
to add read threads when endpoint is called -
Removed tool tip from sidebar menu (#24605 by @Himanshu664)
-
Sorting functionality in team channel while leaving a team (#21790 by @sumukhah)
-
VideoConf Miss Config Modal (#27153)
Jira Issue: [VC-9]
🐛 Bug fixes
-
channels.convertToTeam
endpoint doesn't work when only thechannelName
param is provided (#26858)- Fix the
channels.convertToTeam
endpoint not working when thechannelName
is sent as parameter.
- Fix the
-
Add condition to createUser button on UsersPage (#27189)
Hide the create user button in admin if the user doesn't have the permission to do so. It was not the case before.
2021-04-23.02-55-02.mp4
-
Add condition to invite user if user doesn't have permission (#27190)
If you deactivated the permission to send links, the button was always there and led to an error message.
Before:2021-04-23.02-22-04.mp4
After:
2021-04-23.02-34-49.mp4
-
Add pause functionality to Custom Sounds (#24361)
-
Adding error message for wrong dates (#21677 by @shrinish123)
After:
-
Adjust read only toggle on create channel based on permissions (#27318)
-
Adjusted form validation to disallow duplicated emails (#27037)
This pull request revisits the user info form, fixing a bug that allowed the form to be saved with an already existing e-mail. Taking advantage of this opportunity this PR also refactors the file to typescript and adds new libs like
useForm
anduseQuery
. -
Always parse encrypted messages on client (#27092)
-
Archived channels reappearing permanently (#20476)
-
AttachmentDescription color token (#27222)
-
Avg response time calculation (#27163)
-
Change GridFS error message validation (#26957)
Allow uninstalling an app even if source files cannot be found. This validation was already done in the past, but since the error message was changed, the validation was broken.
-
Delete first message when initializing thread returns black screen (#27117)
-
Discussion list timestamp and Edit room system messages (#27180)
-
Discussions list divider on contextualBar (#27178)
-
Display Edit Team instead of Edit Room when in a team (#27230)
-
Ensure onetime job runs according to 'startupSetting' everytime (#27311)
-
Fixes the condition of not running a onetime job at the app's startup scheduled to run by using the
startupSetting
if the job was run previously at another app startup (Agenda does not remove already run jobs from the database, preventing the app from scheduling the job a second time as it thinks the job is already scheduled); -
Declutters the scheduler's collection by removing onetime jobs documents after they are run.
-
-
Featured apps disappearing, install toast config and save changes button behavior (#27181)
Jira tasks
Featured apps disappearing: MKP-161
Install toast config: MKP-162
Save changes button behavior: MKP-163Fixed three bugs: In the first one featured apps would disappear from the apps list after installation, in the second one the install toast wasn't correctly configured, and in the third one the app details page save button would render even when the current app wasn't installed.
Demo gif: -
Fix Piwik and add extra setting to allow workarounds (#27416)
-
Fixed Allow reacting toggle button in Edit room (#20324 by @Darshilp326)
Users can now see changes for toggling allow reacting button after changes.
Users do not need to come back for changing allow reacting button.Edit-Room-Pr.mp4
-
Gap between message content and message header when there's no text. (#27165)
Additionaly removed a component that was being rendered inside itself, causing spacing issues.
-
Improper grammar when converting channel member to owner (#27265 by @JoshMcCullough)
-
Install private apps modal behavior marketplace (#26973)
Fixed two bugs in the private app install page:
-
The first one is a lack of pt-br translation to the agree button of the apps permission modal
-
The second one is that the review modal did not show the default permission list when the app being installed did not provide a permissions list.
-
-
Integration history breaking when there's more than 49 records (#27290)
Aditionally, fixed example data for incoming webhooks and converted some files to TS.
-
LDAP "Sync Roles" option doesn't work for custom roles (#26842)
Previously the sync of custom fields on LDAP wasn't working because the check was assuming that the
name
of the role is the same value from_id
, which is the same for initial roles, but different for custom. -
LDAP groups to channel mapping attempts to create a new room instead of using an existing one (#27312)
- Check rooms' name and display name in order to confirm they don't exist (and then try to create a new room).
-
Livechat: Allow resolving external image and media blocks (#27387)
Allow external urls to be viewed on livechat.
-
MarkdownText component not respecting
Markdown_SupportSchemesForLink
setting (#27245) -
Marketplace app details page back-button behavior (#27062)
Jira task: MKP-26
Fixed the behavior of the marketplace app details page back button. Now it will return the user to the page they accessed the app details from. Also, refactored the overall routing of the marketplace and removed the admin-apps route as everything is now handled by the admin-marketplace route.
-
Message Parser version upgrade (#27284)
-
Message search breaking URL, usertags and emojis (#20878 by @TBG-FR)
-
Missing React When Read Only setting on Admin Rooms Edit (#27183)
When the user was editing a room in the admin, he could not set React When Read Only because the option was not there unlike a normal room edit. So i added the option.
-
Modifying userActionIndicator syntax for translations (#27004 by @TBG-FR)
-
multiple user assigned for a role (#23741 by @Aman-Maheshwari)
-
Navigate to home after deleting a channel from edit screen (#21602 by @sumukhah)
-
Removed mobile requirement for showing real name (#26968 by @TedsCabin)
Removed the mobile requirement for allowing real names to be used in message headers.
-
Replace regex not compatible with safari (#27294)
-
Room Avatar being deleted after upload. (#27060)
Remove avatar before updating it. S3 already overwrites the old image, but since this part of the code is shared among many other File Storage providers, we need to make this deletion before the upload.
-
RoomForeword design (#27196)
-
Scrollable report message (#26853 by @yasemincidem)
-
Set default value "false" for global search. (#25568 by @ivan1kazantsev)
If we disable the "global search", then the "global search" checkbox removes from the UI. It's not what we want. I think, we should set the default to "false", because the default is to search inside the channel/dialog.
-
Show a consistent name on information screen (#21603 by @sumukhah)
-
Show Favorite icon only if user has joined room (#21976)
Before: There was a favorite button even if the user hasn't joined the room
After:
-
Shrug missing backslash character (#27233)
Previously the escape character
\
was escaping everything.To avoid unexpected text formatting errors it was restricted to only escape curtains chars like: * _ ~ ` # .
Doing so the Shrug had to change in the code to display the correct ASCII Art -
Sidebar context menu in searchList (#23830 by @Aman-Maheshwari)
Removed onClose function from the Box Component inside
searchList.js
as this component wraps the complete list which is rendered and when clicked on the any rendered row inside the component it closes the searchList preventing the context menu to be displayed.
Also addedusePreventDefault
hook.Before
before_sidebar_contextmenu.mp4
After
after_sidebar_contextmenu.mp4
-
Sidebar Room list extended preview not updating on new messages. (#27259)
-
Sort RecordList items in REVERSE chronological order, not FORWARD (#27201 by @nmagedman)
Sort items in the Files sidebar in reverse chronological order (newest at top, oldest at bottom), as it did before RC v3.11.0.
-
The parent room icon is now clickable (#21655 by @shrinish123)
The parent room icon as shown in the video was not clickable but the cursor type on the icon was a pointer. Now even clicking on the icon or anywhere on the parent room tag will redirect you to the parent room.
Before :
Untitled.project.Made.with.Clipchamp.2.mp4
After:
Untitled.project.Made.with.Clipchamp.3.mp4
-
Thread view expand command in wide screens (#23136 by @edward-raven)
-
ThreadRow hover color (#27166)
-
Threads replied message not clickable on new message template (#27359)
Add the link to the parent message on the
ThreadMessagePreview
component;
Addmessage ignored
status to the parent message too;
Also, allow clicking the message when is ignored status. -
UiKit modals taking 5 seconds to close (#27225)
-
Unable to set idleTimeLimit for users (#26951)
-
Upgrading fuselage package and fix quote message prepend (#27307)
Adding heading styles to message
[OLD] As it was before this change:
[NEW] As it is NOW:
Fix heading style in quote messages
-
Uploading Custom Sound files not working, but showing success (#27177)
-
Use name if fname is undefined (#20459 by @aKn1ghtOut)
In the default general room(and possibly in other cases), the fname property is not set. The site should use the "name" property as a fallback in such cases.
After fix
-
User approval email doesn't display username and e-mail when user logs in with OAuth (#27111)
-
User auto complete breaks on enter key press (#27213)
-
User email address does not change when provisioned by OAuth (#27148)
-
UserCard not opening inside Threads (#27096)
🔍 Minor changes
-
Bump version to 5.4.0-develop (#27439)
-
Chore: Add deprecation warning to settings (#27295)
List of settings:
-
Show edited status
-
Allow Message snippeting
-
Show formating Tips
-
Disable Embeded for Users
-
Issue tracker links
-
Message attachments > Group Attachment Buttons
-
Markdown > All settings inside Group
-
Autolinker > All settings inside Group
Edited Message for old federation.
-
-
Chore: Add info log to remove all rooms method (#27106)
-
Chore: Add tests for omni-jobs & add more context in system messages for jobs (#27048)
-
Chore: Added tooltip to options of message-actions (#24043 by @aswinidev)
message_options_before.mp4
-
Chore: also send thread to channel translations (#27242)
-
Chore: Apps/Marketplace code organization (#27061)
-
Chore: Beta Dark Theme switch (#27324)
Add RadioButton on UserDropDown to toggle between light and dark theme.
-
Chore: Bump actions/upload-artifact from 2 to 3 (#27109 by @rettinghaus)
Bump actions/upload-artifact from 2 to 3 (no changes in behavior expected)
-
Chore: bumping apps engine version (#27414)
-
Chore: change apps-engine version (#27326)
-
Chore: Convert chat history react (#27302)
-
Chore: Convert client/views/directory/hooks to ts (#26936)
-
Chore: Convert client/views/directory/RoomTags to ts (#26937)
-
Chore: Convert omni libs to typescript (#27205)
-
Chore: Converting game center to typescript (#26915)
-
Chore: create AccountProfileForm endpoints (#26415)
Created the '/v1/users.checkUsernameAvailability' and other endpoints for the
apps/meteor/client/views/account/profile/AccountProfileForm.tsx
file, and added Ajv validations. -
Chore: create MailerRoute endpoints (#26742)
Created 'email-inbox.sendMail' endpoint for the
apps/meteor/client/views/admin/mailer/MailerRoute.tsx
file. -
Chore: Create new endpoint for test webhooks and deprecate meteor method (#27160)
-
Chore: Create unique index for
E2EKey
field (#27301) -
Chore: CreateTeamModal Refactor (#27027)
Jira Issue: [UFR-36]
-
Replace
useForm
-
Improve UI validations on Modal
-
Add ToastBar message on creating a team
-
-
Chore: Cursor pointer to all the action buttons (#24440 by @sidmohanty11)
js-message-action-css.mp4
-
Chore: deprecate refreshClients methods (#26956)
Created the 'assets.refreshClients' endpoint for the
apps/meteor/client/views/admin/settings/groups/AssetsGroupPage.tsx
file. -
Chore: Deprecation warning on 'typing' stream event. (#27299)
-
Chore: docs grammar fix (#26894 by @tusharxoxoxo)
-
Chore: Enable PR Title Checker for forks (#27144)
-
Chore: Fix grammatical typos in release.md (#21297 by @sumukhah)
-
Chore: Fix missing license for forks (#27258)
-
Chore: Fix typo in pa-in.js (#26717 by @eltociear)
-
Chore: Improve configurations related to Typescript in Livechat (#27232)
-
Chore: Make it easier to run micro services (#27223)
You can now run a microservices environment with
yarn turbo run ms
-
Chore: Migrate EE LivechatRooms model to typescript (#27046)
-
Chore: New Password field is confusing (#20338 by @im-adithya)
-
Chore: README.md (#21974 by @satishp962)
-
Chore: Refactor LeaveTeam to Typescript (#27197)
Additionally, it fixes:
-
Users would be able to select team channels that they want to leave while leaving the team.
-
Users would now automatically leave from team channels he/she selected.
BEFORE
Channel-leave-Issue.1.mp4
BEFORE
Leave.Team-issue.mp4
AFTER
Channel-Leave-PR.mp4
AFTER
Leave-Team-PR.mp4
-
-
Chore: remove auto label action (#27192)
-
Chore: Remove blank owner field from rooms (#21766 by @Kartik18g)
-
Chore: Remove js-preventer Action (#27195)
-
Chore: Remove role requirement to use change streams (#27281)
We used to require the
clusterMonitor
role to be able to use Change Streams because we performed aserverStatus
command, to be able to check if the requirements for change streams are met (like using wired tiger for example). But since our minimum MongoDB supported version is now 4.2, and MMAPv1 was removed on this version, there is no need to check that.The new approach is just try to use change streams, if it fails for any reason, fallback to oplog.
If oplog fails as well, we're now halting the process, since it wasn't able to establish a connection for reading real time data, something that is crucial for the application. An additional check was added to make sure
$MONGO_OPLOG_URL
is pointing to thelocal
database. -
Chore: Remove secrets.RC_TURBO_GH_TOKEN dep from build (#27176)
-
Chore: Remove SoundRow.js (#27215)
-
Chore: Remove turborepo if env is not set (#27199)
-
Chore: Remove unused css (#27289)
-
Chore: removing useEndpointData from license api (#26634)
The deprecated hook
useEndpointData
was removed and changed touseMethod
+useQuery
separated in a hook.In
useQuery
options we added an option to keep the cache asInfinity
until the queries are invalidated or the page refreshes, also the query keys were changed to consolidate the keys and manage the cache in the best way possible to avoid unnecessary API calls.In settings changed or user action that impact the License status was added a method to invalidate the cache for license query keys
E.g:
queryClient.invalidateQueries(['licenses']);
-
Chore: Replace all saveUserPreferences method calls (#26187)
-
Chore: Restrict
ChatMessages
API - Phase 1 (#27191)It prepares
ChatMessages
to be splitted into smaller components to handle the interaction of a list of messages and the message composer. -
Chore: Rewrite AutoCompleteDepartment to TypeScript (#27198)
Department field inside of current chats is one of the places who uses AutoCompleteDeparment:
-
Chore: Rewrite the label/description of the Push_request_content_from_server setting (#27136 by @nmagedman)
Documentation: Clarify the meaning/effect of the setting Push_request_content_from_server ("Fetch full message content from the server on receipt"), which can lead to unexpected "You have a new message" notifications
-
Chore: Show better error logs (#27156)
-
Chore: subscriptions.read accepts both "roomId" and "rid" as payload (#20312 by @lucassartor)
Adding
roomId
as another option of payload in thesubscriptions.read
endpoint besides fromrid
. -
Chore: Test for import (#26871)
-
Chore: Update Apps-Engine to latest (#27433)
-
Chore: Update badge tokens (#27363)
-
Chore: Update dark theme tokens (#27386)
Update dark theme tokens:
-
surface-tint
-
button-background-secondary-disabled
-
button-background-secondary-danger-disabled
-
all status-background
-
all status-font
-
-
Chore: Update tokens (#27408)
Add/update tokens on light and dark palette:
-
update stroke-extra-light color
-
add status-warning-2
-
add status-service-3
-
add font-pure-white
-
add font-pure-black
-
-
Chore: Updates rocket.cat's logo to match colors of our new logo (#27314)
-
Chore: UserAvatar wrapper missing key in RoomForeword (#27300)
-
Chore(deps): Bump felixmosh/turborepo-gh-artifacts from 1 to 2 (#27170 by @dependabot[bot])
-
i18n: Language update from LingoHub 🤖 on 2022-10-24Z (#27127)
-
i18n: Language update from LingoHub 🤖 on 2022-10-31Z (#27150)
-
i18n: Language update from LingoHub 🤖 on 2022-11-07Z (#27202)
-
i18n: Language update from LingoHub 🤖 on 2022-11-14Z (#27255)
-
i18n: Language update from LingoHub 🤖 on 2022-11-21Z (#27306)
-
i18n: Language update from LingoHub 🤖 on 2022-11-28Z (#27375)
-
i18n: Language update from LingoHub 🤖 on 2022-11-29Z (#27410)
-
Merge master into develop & Set version to 5.4.0-develop (#27162)
-
Regression: Admin menu apps option not working (#27422)
Solved a bug caused by the RC production build steps breaking the flow router triggersEnter event that did some rerouting for marketplace. Removed the cited function from the routes.tsx file, and now the rerouting is done directly inside the AppsRoute file.
Demo gif:
-
Regression: Bad words Filtering not working on new Message Parser (#27368 by @xareyli)
-
Regression: Custom fields form not showing in user profile nor admin (#27244)
-
Regression: Elevation and components z-index fixes (#27421)
-
Regression: fix contact chat history borders (#27319)
-
Regression: Fix custom oauth undefined clientConfig (#27320)
-
Regression: Fix issues with ContactHistoryItem (#27406)
-
Regression: Fix sidebar token highlighted usage (#27334)
-
Regression: fix small issues before release (#27443)
-
Regression: Login and Registration UI Tweaks (#27411)
-
Regression: message-box-editing-color (#27420)
-
Regression: Old threads not opening (#27384)
-
Regression: Quoting Issue (#27369 by @henit-chobisa)
-
Regression: Remove actions from VideoConf Message Block (#27344)
-
Regression: Restore fuselage-ui-kit version (#27331)
-
Regression: Team name validation on Create Team Modal (#27345)
-
Regression: Update VideoConf components colors (#27365)
-
Regression: Update VideoConfListItem Color Tokens (#27402)
-
Regression: videoconf block showing a zero when no user has joined the call (#27332)
-
Regression: VideoConf default info modal not showing meeting URL as a link (#27382)
👩💻👨💻 Contributors 😍
- @Aman-Maheshwari
- @Darshilp326
- @Himanshu664
- @JoshMcCullough
- @Kartik18g
- @TBG-FR
- @TedsCabin
- @aKn1ghtOut
- @aswinidev
- @dependabot[bot]
- @edward-raven
- @eltociear
- @henit-chobisa
- @im-adithya
- @ivan1kazantsev
- @lucassartor
- @nmagedman
- @rettinghaus
- @satishp962
- @shrinish123
- @sidmohanty11
- @sumukhah
- @tusharxoxoxo
- @xareyli
- @yasemincidem
👩💻👨💻 Core Team 🤓
- @AllanPazRibeiro
- @KevLehman
- @LucianoPierdona
- @MarcosSpessatto
- @MartinSchoeler
- @aleksandernsilva
- @carlosrodrigues94
- @casalsgh
- @cauefcr
- @d-gubert
- @debdutdeb
- @dougfabris
- @felipe-rod123
- @filipemarins
- @gabriellsh
- @ggazzo
- @guijun13
- @hugocostadev
- @juliajforesti
- @matheusbsilva137
- @matheuslc
- @murtaza98
- @nishant23122000
- @pierre-lehnen-rc
- @rique223
- @sampaiodiego
- @tapiarafael
- @tassoevan
- @thassiov
- @tiagoevanp
- @weslley543
- @yash-rajpal