4.5.0
2022-02-28 · 3 🎉 · 15 🚀 · 19 🐛 · 72 🔍 · 30 👩💻👨💻
Engine versions
- Node:
14.18.3
- NPM:
6.14.15
- MongoDB:
3.6, 4.0, 4.2, 4.4, 5.0
- Apps-Engine:
1.31.0
🎉 New features
-
E2E password generator (#24114)
-
Marketplace sort filter (#24567)
Implemented a sort filter for the marketplace screen. This component sorts the marketplace apps list in 4 ways, alphabetical order(A-Z), inverse alphabetical order(Z-A), most recently updated(MRU), and least recent updated(LRU). Besides that, I've generalized some components and types to increase code reusability, renamed some helpers as well as deleted some useless ones, and inserted the necessary new translations on the English i18n dictionary.
Demo gif:
-
VoIP Support for Omnichannel (#23102)
-
Created VoipService to manage VoIP connections and PBX connection
-
Created LivechatVoipService that will handle custom cases for livechat (creating rooms, assigning chats to queue, actions when call is finished, etc)
-
Created Basic interfaces to support new services and new model
-
Created Endpoints for management interfaces
-
Implemented asterisk connector on VoIP service
-
Created UI components to show calls incoming and to allow answering/rejecting calls
-
Added new settings to control call server/management server connection values
-
Added endpoints to associate Omnichannel Agents with PBX Extensions
-
Added support for event listening on server side, to get metadata about calls being received/ongoing
-
Created new pages to update settings & to see user-extension association
-
Created new page to see ongoing calls (and past calls)
-
Added support for remote hangup/hold on calls
-
Implemented call metrics calculation (hold time, waiting time, talk time)
-
Show a notificaiton when call is received
-
🚀 Improvements
-
ENTERPRISE: Improve how micro services are loaded (#24388)
-
Add return button in chats opened from the list of current chats (#24458)
The new return button for Omnichannel chats came out with release 3.15 but the feature was only available for chats that were opened from Omnichannel Contact Center.
Now, the same UI/UX is supported for chats opened from Current Chats list.The chat now opens in the Omnichannel settings and has the return button so the user can go back to the Current Chats list.
-
Add tooltips on action buttons of Canned Response message composer (#24483)
The tooltips were missing on the action buttons of CR message composer.
Users can now feel more encouraged to use these actions knowing what they are supposed to do.
-
Add user to room on "Click to Join!" button press (#24041)
-
Add user to room on "Click to Join!" button press;
-
Display the "Join" button in discussions inside channels (keeping the behavior consistent with discussions inside groups).
-
-
Added a new "All" tab which shows all integrations in Integrations (#24109 by @aswinidev)
-
ChatBox Text to File Description (#24451)
The text content from chatbox goes to the file description when drag and drop a file.
-
Close modal on esc and outside click (#24275)
This is a QUICK change in order to close modals pressing Esc button and clicking outside of it intentionally.
-
CloudLoginModal visual consistency (#24334)
before
after
-
Convert tag edit with department data to tsx (#24369)
-
Descriptive tooltip for Encrypted Key on Room Header (#24121)
-
OTR system messages (#24382)
OTR system messages to indicate key refresh and joining chat to users.
-
Purchase Type Filter for marketplace apps and Categories filter anchor refactoring (#24454)
Implemented a filter by purchase type(free or paid) component for the apps screen of the marketplace. Besides that, new entries on the dictionary, fixed some parts of the App type (purchaseType was typed as unknown and price as string), and created some helpers to work alongside the filter. Will be refactoring the categories filter anchor and then will open this PR for reviews.
Refactored the categories filter anchor from a plain fuselage select to a select button with dynamic colors.
Demo gif:
-
Replace AutoComplete in UserAutoComplete & UserAutoCompleteMultiple components (#24529)
This PR replaces a deprecated fuselage's component
AutoComplete
in favor ofSelect
andMultiSelect
which fixes some of UX/UI issues in selecting usersbefore
after
-
Skip encryption for slash commands in E2E rooms (#24475)
Currently Slash Commands don't work in an E2EE room, as we encrypt the message before slash command is detected by the server, So removed encryption for slash commands in e2e rooms.
-
Team system messages feedback (#24209)
-
Delete some keys that aren't being used (eg: User_left_female).
-
Add new Teams' system messages:
added-user-to-team
: added @\user to this Team;removed-user-from-team
: removed @\user from this Team;user-converted-to-team
: converted #\room to a Team;user-converted-to-channel
: converted #\room to a Channel;user-removed-room-from-team
: removed @\user from this Team;user-deleted-room-from-team
: deleted #\room from this Team;user-added-room-to-team
: deleted #\room to this Team;
-
Add the corresponding options to hide each new system message and the missing
ujt
andult
hide options.
-
🐛 Bug fixes
-
2FA via email when logging in using OAuth (#24572)
-
Add ?close to OAuth callback url (#24381)
-
GDPR action to forget visitor data on request (#24441)
-
Implement client errors on ddp-streamer (#24310)
-
Inconsistent validation of user's access to rooms (#24037)
-
Issues on selecting users when importing CSV (#24253)
-
Fix users selecting by fixing their _id
-
Add condition to disable 'Start importing' button if
usersCount
,channelsCount
andmessageCount
equals 0, or if messageCount is alone -
Remove
disabled={usersCount === 0}
on user Tab
-
-
OAuth mismatch redirect_uri error (#24450)
-
Oembed request not respecting payload limit (#24418)
-
Omnichannel managers can't join chats in progress (#24553)
-
Outgoing webhook without scripts not saving messages (#24401)
-
Prevent Apps Bridge to remove visitor status from room (#24305)
-
Read receipts showing first messages of the room as read even if not read by everyone (#24508)
-
respect
Accounts_Registration_Users_Default_Roles
setting (#24173)- Fix
user
role being added as default regardless of theAccounts_Registration_Users_Default_Roles
setting.
- Fix
-
Room context tabs not working in Omnichannel current chats page (#24559)
-
Skip admin info in setup wizard for servers with admin registered (#24485)
-
Skip cloud steps for registered servers on setup wizard (#24407)
-
Slash commands previews not working (#24387)
-
Startup errors creating indexes (#24409)
Fix
bio
andprid
startup index creation errors. -
typo on register server tooltip of setup wizard (#24466)
🔍 Minor changes
-
Bump @types/ws from 8.2.2 to 8.2.3 in /ee/server/services (#24556 by @dependabot[bot])
-
Bump adm-zip from 0.4.14 to 0.5.9 (#24538 by @dependabot[bot])
-
Bump body-parser from 1.19.0 to 1.19.1 in /ee/server/services (#23963 by @dependabot[bot])
-
Bump body-parser from 1.19.1 to 1.19.2 in /ee/server/services (#24517 by @dependabot[bot])
-
Bump cookie from 0.4.1 to 0.4.2 in /ee/server/services (#24472 by @dependabot[bot])
-
Bump date-fns from 2.24.0 to 2.28.0 (#24058 by @dependabot[bot])
-
Bump express from 4.17.1 to 4.17.2 in /ee/server/services (#24469 by @dependabot[bot])
-
Bump express from 4.17.2 to 4.17.3 in /ee/server/services (#24522 by @dependabot[bot])
-
Bump follow-redirects from 1.14.7 to 1.14.8 in /ee/server/services (#24491 by @dependabot[bot])
-
Bump jaeger-client from 3.18.1 to 3.19.0 in /ee/server/services (#23961 by @dependabot[bot])
-
Bump pm2 from 5.1.2 to 5.2.0 in /ee/server/services (#24537 by @dependabot[bot])
-
Bump simple-get from 4.0.0 to 4.0.1 (#24341 by @dependabot[bot])
-
Bump sodium-native from 3.2.1 to 3.3.0 in /ee/server/services (#23512 by @dependabot[bot])
-
Bump underscore.string from 3.3.5 to 3.3.6 in /ee/server/services (#24498 by @dependabot[bot])
-
Bump url-parse from 1.5.3 to 1.5.7 (#24528 by @dependabot[bot])
-
Bump vm2 from 3.9.5 to 3.9.7 in /ee/server/services (#24509 by @dependabot[bot])
-
Chore:
twoFactorRequired
signature (#24518)Improved type checking for decorator
twoFactorRequired
. -
Chore: Add description to global OTR setting (#24333)
-
Chore: Bump Fuselage packages (#24573)
It uses the last stable version of Fuselage packages.
-
Chore: bump fuselage version (#24453)
-
Chore: Convert JS files to Typescript (#24410)
This pull request converts 26 more files from Javascript to Typescript, to check variable types and increase validation on the code.
-
Chore: Convert to typescript the me slashCommands files (#24321)
Convert to typescript the me slashCommands files
-
Chore: Convert to typescript the mute and unmute slash commands files (#24325)
Convert to typescript the mute and unmute slash commands files
-
Chore: Convert to typescript the slash commands create files (#24306)
Convert Slash Commands create files to typescript.
-
Chore: Convert to typescript the slash commands invite files (#24311)
Convert to typescript the slash commands invite files
-
Chore: Convert to typescript the unarchive slash commands files (#24331)
Convert to typescript the unarchive slash commands files
-
Chore: Delete unused file (NewAdminInfoPage.js) (#24196)
Just removing a duplicated/unused file.
-
Chore: Improve PR title validation regex (#24467)
-
Chore: Js to ts slash commands archive (#24304)
Convert Slash Commands archive files to typescript
-
Chore: Remove storybook build job from CI (#24530)
-
Chore: roomTypes: Stop mixing client and server code together (#24536)
-
Chore: Run tests using microservices deployment on CI (#24513)
-
Chore: Set Docker image tag to latest only when really latest (#24366)
-
Chore: Unify ILivechatAgent with ILivechatAgentRecord (#24406)
-
Chore: Update Apps-Engine (#24568)
-
Chore: Update Apps-Engine (#24651)
-
Chore: Update fuselage deps to match monolith versions (#24501)
-
Chore: Update Meteor to 2.5.6 (#24461)
-
Chore: Update ws package (#24477)
-
Chore(deps-dev): Bump ts-node from 10.0.0 to 10.5.0 in /ee/server/services (#24435 by @dependabot[bot])
-
Chore(deps): Bump node-fetch from 2.6.1 to 2.6.7 in /ee/server/services (#24299 by @dependabot[bot])
-
i18n: Language update from LingoHub 🤖 on 2022-01-31Z (#24357)
-
i18n: Language update from LingoHub 🤖 on 2022-02-07Z (#24429)
-
i18n: Language update from LingoHub 🤖 on 2022-02-14Z (#24493)
-
i18n: Language update from LingoHub 🤖 on 2022-02-21Z (#24558)
-
Merge master into develop & Set version to 4.5.0-develop (#24363)
-
Regression: Add support to namespace within micro services (#24581)
-
Regression: Admin Sidebar colors inverted. (#24609)
-
Regression: Bunch of settings fixes for VoIP (#24594)
-
Regression: Do not show toast on incoming voip calls (#24619)
-
Regression: Encode registration info as JWT when signing key is provided (#24626)
-
Regression: Error setting user avatars and mentioning rooms on Slack Import (#24585)
-
Fix
Mentioned room not found
error when importing rooms from Slack; -
Fix
Forbidden
error when setting avatars for users imported from Slack (on user import/creation); -
Fix incorrect message count on imported rooms;
-
Fix missing username on messages imported from Slack;
-
-
Regression: Error when trying to load name of dm rooms for avatars and notifications (#24583)
-
Regression: Extension List panel UI not aligned with designs (#24645)
-
Regression: Fix double value on holdTime and empty msg on last message (#24630)
-
Regression: Fix in-correct room status shown to agents (#24592)
-
Regression: Fix incoming voip call ringtone is not ringing (#24616)
-
Regression: Fix room not getting created due to null visitor status (#24562)
-
Regression: Fix time fields and wrap up in Voip Room Contexual bar (#24625)
-
Regression: Fix time format on Voip system messages (#24603)
-
Regression: Fix translation for call started message (#24615)
-
Regression: Fix wrong tab name for VoIP settings (#24647)
-
Regression: Fixes in Voice Contextual Bar and Directory (#24596)
-
Regression: If Asterisk suddenly goes down, server has no way to know. Causes server to get stuck. Needs restart (#24624)
-
Regression: Mark all rooms as read modal closing instantly. (#24610)
-
Regression: No audio when call comes from Skype/IP phone (#24602)
The audio was not rendered because of re-rendering of react element based on
queueCounter and roomInfo. queueCounter and roomInfo cause the dom to re-render when call gets accepted
because after accepting call, queueCounter changes or a room gets created.
The audio element gets recreated. But VoIP user probably holds the old one.
The behaviour is not predictable when such case happens. If everything gets cleanly setup,
even if the audio element goes headless, it still continues to play the remote audio.
But in other cases, it is unreferenced the one on dom has its srcObject as null.
This causes no audio.This fix provides a way to re-initialise the rendering elements in VoIP user
and calls this function on useEffect() if the re-render has happen. -
Regression: Prevent button from losing state when rerendering (#24648)
-
Regression: Prevent connect to asterisk when VoIP is disabled (#24601)
-
Regression: Queue counter aggregator for incoming/hanged calls (#24635)
-
Regression: Refresh server connection when MI server settings change (#24649)
-
Regression: Server crashing if Voip credentials are invalid (#24646)
-
Regression: VoIP service button displayed when VoIP is disabled (#24598)
👩💻👨💻 Contributors 😍
👩💻👨💻 Core Team 🤓
- @KevLehman
- @LucasFASouza
- @MartinSchoeler
- @albuquerquefabio
- @amolghode1981
- @d-gubert
- @debdutdeb
- @dougfabris
- @eduardofcabrera
- @felipe-rod123
- @filipemarins
- @gabriellsh
- @ggazzo
- @guijun13
- @juliajforesti
- @matheusbsilva137
- @murtaza98
- @ostjen
- @pedrogssouza
- @pierre-lehnen-rc
- @renatobecker
- @rique223
- @rodrigok
- @sampaiodiego
- @tassoevan
- @tiagoevanp
- @ujorgeleite
- @yash-rajpal