diff --git a/.docker/Dockerfile.rhel b/.docker/Dockerfile.rhel index c3d1e6114f2c..1bf0175dac88 100644 --- a/.docker/Dockerfile.rhel +++ b/.docker/Dockerfile.rhel @@ -1,6 +1,6 @@ FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7 -ENV RC_VERSION 3.4.2 +ENV RC_VERSION 3.5.1 MAINTAINER buildmaster@rocket.chat diff --git a/.eslintignore b/.eslintignore index 95cbb0e09dac..b3898fcd0979 100644 --- a/.eslintignore +++ b/.eslintignore @@ -9,14 +9,13 @@ packages/rocketchat-livechat/assets/rocketchat-livechat.min.js packages/rocketchat-livechat/assets/rocket-livechat.js app/theme/client/vendor/ app/ui/client/lib/Modernizr.js -public/mp3-realtime-worker.js -public/lame.min.js public/packages/rocketchat_videobridge/client/public/external_api.js packages/tap-i18n/lib/tap_i18next/tap_i18next-1.7.3.js private/moment-locales/ public/livechat/ !.scripts public/pdf.worker.min.js +public/workers/**/* imports/client/ !/.storybook/ app/utils/client/lib/sha1.js diff --git a/.eslintrc b/.eslintrc index de12661f255b..84f6452c94e3 100644 --- a/.eslintrc +++ b/.eslintrc @@ -77,6 +77,8 @@ "error", "prefer-single" ], + "indent": "off", + "no-extra-parens": "off", "react/jsx-uses-react": "error", "react/jsx-uses-vars": "error", "react/jsx-no-undef": "error", @@ -87,7 +89,21 @@ "@typescript-eslint/ban-ts-ignore": "off", "@typescript-eslint/indent": [ "error", - "tab" + "tab", + { + "SwitchCase": 1 + } + ], + "@typescript-eslint/no-extra-parens": [ + "error", + "all", + { + "conditionalAssign": true, + "nestedBinaryExpressions": false, + "returnAssign": true, + "ignoreJSX": "all", + "enforceForArrowConditionals": false + } ], "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/interface-name-prefix": [ diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 973977269c89..0672350829fb 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -16,235 +16,9 @@ The following is a set of guidelines for contributing to Rocket.Chat, which are __Note:__ If there's a feature you'd like, there's a bug you'd like to fix, or you'd just like to get involved please raise an issue and start a conversation. We'll help as much as we can so you can get contributing - although we may not always be able to respond right away :) -## Setup +## Development Guidelines -Your development workstation needs to have at least 8GB RAM or more to be able to build the Rocket.Chat's source code. - -Rocket.Chat runs on top of [Meteor](https://www.meteor.com/). To run it on development mode you need to [install Meteor](https://www.meteor.com/install) and clone/download the Rocket.Chat's code, then just open the code folder and run: -```shell -meteor npm install && meteor -``` -It should build and run the application and database for you, now you can access the UI on (http://localhost:3000) - -It's not necessary to install Nodejs or NPM, every time you need to use them you can run `meteor node` or `meteor npm`. - -It's important to always run the NPM commands using `meteor npm` to ensure that you are installing the modules using the right Nodejs version. - -## Coding - -We provide a [.editorconfig](../.editorconfig) file that will help you to keep some standards in place. - -### ECMAScript vs TypeScript - -We are currently adopting TypeScript as the default language on our projects, the current codebase will be migrated incrementally from JavaScript to TypeScript. - -While we still have a lot of JavaScript files you should not create new ones. As much as possible new code contributions should be in **TypeScript**. - -### Blaze vs React - -We are currently adopting React over Blaze as our UI engine, the current codebase is under migration and will continue. You will still find Blaze templates in our code. Code changes or contributions may need to be made in Blaze while we continue to evolve our components library. - -[Fuselage](https://github.com/RocketChat/Rocket.Chat.Fuselage) is our component library based on React, check it out when contributing to the Rocket.Chat UI and feel free to contribute new components or fixes. - -### Standards - -Most of the coding standards are covered by ESLint configured at [.eslintrc](../.eslintrc), and most of them came from our own [ESLint Config Package](https://github.com/RocketChat/eslint-config-rocketchat). - -Things not covered by `eslint`: - -* Prefer longer/descriptive variable names, e.g. `error` vs `err`, unless dealing with common record properties already shortened, e.g. `rid` and `uid` -* Use return early pattern. [See more](https://blog.timoxley.com/post/47041269194/avoid-else-return-early) -* Prefer `Promise` over `callbacks` -* Prefer `await` over `then/catch` -* Don't create queries outside models, the query description should be inside the model class. -* Don't hardcode fields inside models. Same method can be used for different purposes, using different fields. -* Prefer create REST endpoints over Meteor methods -* Prefer call REST endpoints over Meteor methods when both are available -* v1 REST endpoints should follow the following pattern: `/api/v1/dashed-namespace.camelCaseAction` -* Prefer TypeScript over JavaScript. Check [ECMAScript vs TypeScript](#ecmascript-vs-typescript) - -#### Blaze -* Import the HTML file from it's sibling JS/TS file - -### Syntax check - -Before submitting a PR you should get no errors on `eslint`. - -To check your files run: - -```shell -meteor npm run lint -``` - -## Tests - -There are 2 types of tests we run on Rocket.Chat, **Unit** tests and **End to End** tests. The major difference is that End to End tests require a Rocket.Chat instance running to execute the API and UI checks. - -### End to End Tests - -First you need to run a Rocket.Chat server on **Test Mode** and on a **Empty Database**: -```shell -# Running with a local mongodb database -MONGO_URL=mongodb://localhost/empty MONGO_OPLOG_URL=mongodb://localhost/local TEST_MODE=true meteor -``` -```shell -# Running with a local mongodb database but cleaning it before -mongo --eval "db.dropDatabase()" empty && MONGO_URL=mongodb://localhost/empty MONGO_OPLOG_URL=mongodb://localhost/local TEST_MODE=true meteor -``` - -Now you can run the tests: -```shell -meteor npm test -``` - -### Unit Tests - -Unit tests are simpler to setup and run. They do not require a working Rocket.Chat instance. -```shell -meteor npm run testunit -``` - -It's possible to run on watch mode as well: -```shell -meteor npm run testunit-watch -``` - - - -## Before Push your code - -It's important to run the lint and tests before push your code or submit a Pull Request, otherwise your contribution may fail quickly on the CI. Reviewers are forced to demand fixes and the review of your contribution will be further delayed. - -Rocket.Chat uses [husky](https://www.npmjs.com/package/husky) to run the **lint** and **unit tests** before proceed to the code push process, so you may notice a delay when pushing your code to your repository. - -## Choosing a good PR title - -It is very important to note that we use PR titles when creating our change log. Keep this in mind when you title your PR. Make sure the title makes sense to a person reading a releases' change log! - -Keep your PR's title as short and concise as possible, use PR's description section, which you can find in the PR's template, to provide more details into the changelog. - -Good titles require thinking from a user's point of view. Don't get technical and talk code or architecture. What is the actual user-facing feature or the bug fixed? For example: - -``` -[NEW] Allow search permissions and settings by name instead of only ID -``` - -Even it's being something new in the code the users already expect the filter to filter by what they see (translations), a better one would be: - -``` -[FIX] Permissions' search doesn't filter base on presented translation, only on internal ids -``` - -## Choosing the right PR tag - -You can use several tags do describe your PR, i.e.: `[FIX]`, `[NEW]`, etc. You can use the descriptions below to better understand the meaning of each one, and decide which one you should use: - -### `[NEW]` - -#### When -- When adding a new feature that is important to the end user - -#### How - -Do not start repeating the section (`Add ...` or `New ...`) -Always describe what's being fixed, improved or added and not *how* it was fixed, improved or added. - -Exemple of **bad** PR titles: - -``` -[NEW] Add ability to set tags in the Omnichannel room closing dialog -[NEW] Adds ability for Rocket.Chat Apps to create discussions -[NEW] Add MMS support to Voxtelesys -[NEW] Add Color variable to left sidebar -``` - -Exemple of **good** PR titles: - -``` -[NEW] Ability to set tags in the Omnichannel room closing dialog -[NEW] Ability for Rocket.Chat Apps to create discussions -[NEW] MMS support to Voxtelesys -[NEW] Color variable to left sidebar -``` - -### `[FIX]` - -#### When -- When fixing something not working or behaving wrong from the end user perspective - -#### How - -Always describe what's being fixed and not *how* it was fixed. - -Exemple of a **bad** PR title: - -``` -[FIX] Add Content-Type for public files with JWT -``` - -Exemple of a **good** PR title: - -``` -[FIX] Missing Content-Type header for public files with JWT -``` - -### `[IMPROVE]` - -#### When -- When a change enhances a not buggy behavior. When in doubt if it's a Improve or Fix prefer to use as fix. - -#### How -Always describe what's being improved and not *how* it was improved. - -Exemple of **good** PR title: - -``` -[IMPROVE] Displays Nothing found on admin sidebar when search returns nothing -``` - -### `[BREAK]` - -#### When -- When the changes affect a working feature - -##### Back-End -- When the API contract (data structure and endpoints) are limited, expanded as required or removed -- When the business logic (permissions and roles) are limited, expanded (without migration) or removed - -##### Front-End -- When the change limits (format, size, etc) or removes the ability of read or change the data (when the limitation was not caused by the back-end) - -### Second tag e.g. `[NEW][ENTERPRISE]` - -Use a second tag to group entries on the change log, we currently use it only for the Enterprise items but we are going to expand it's usage soon, please do not use it until we create a patter for it. - -### Minor Changes - -For those PRs that aren't important for the end user, we are working on a better pattern, but for now please use the same tags, use them without the brackets and in camel case: - -``` -Fix: Missing Content-Type header for public files with JWT -``` - -All those PRs will be grouped under the `Minor changes` section which is collapsed, so users can expand it to check for those minor things but they are not visible directly on changelog. - -## Security Best Practices - -- Never expose unnecessary data to the APIs' responses -- Always check for permissions or create new ones when you must expose sensitive data -- Never provide new APIs without rate limiters -- Always escape the user's input when rendering data -- Always limit the user's input size on server side -- Always execute the validations on the server side even when executing on the client side as well - -## Performance Best Practices - -- Prefer inform the fields you want, and only the necessary ones, when querying data from database over query the full documents -- Limit the number of returned records to a reasonable value -- Check if the query is using indexes, if it's not create new indexes -- Prefer queues over long executions -- Create new metrics to mesure things whenever possible -- Cache data and returns whenever possible +Check out our Handbook for the [Development Guidelines](https://handbook.rocket.chat/product/development/development-guidelines) on how to setup your enviroment, do code, test and push your code. There you find our patterns on how to compose your Pull Requests' titles to have your contribution accepted. ## Contributor License Agreement diff --git a/.github/history.json b/.github/history.json index dfa064883282..175f45db050e 100644 --- a/.github/history.json +++ b/.github/history.json @@ -46800,16 +46800,1047 @@ } ] }, + "3.5.0-rc.0": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0-beta.3516", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18319", + "title": "Regression: Close UserCard if action opens a new page", + "userLogin": "ggazzo", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18320", + "title": "[FIX] SlackBridge error", + "userLogin": "sampaiodiego", + "milestone": "3.5.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18316", + "title": "[IMPROVE] Change setting that blocks unauthenticated access to avatar to public", + "userLogin": "djorkaeffalexandre", + "milestone": "3.5.0", + "contributors": [ + "djorkaeffalexandre", + "sampaiodiego" + ] + }, + { + "pr": "18317", + "title": "[FIX] Bug on entering token in connectivity services", + "userLogin": "geekgonecrazy", + "milestone": "3.5.0", + "contributors": [ + "geekgonecrazy", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "18026", + "title": "Move the development guidelines to our handbook", + "userLogin": "rodrigok", + "contributors": [ + "rodrigok", + "web-flow" + ] + }, + { + "pr": "17049", + "title": "[IMPROVE] Improve performance and remove agents when the department is removed", + "userLogin": "MarcosSpessatto", + "milestone": "3.5.0", + "contributors": [ + "MarcosSpessatto", + "web-flow", + "renatobecker" + ] + }, + { + "pr": "18254", + "title": "[NEW][ENTERPRISE] Push Notification Data Privacy", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.5.0", + "contributors": [ + "pierre-lehnen-rc", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "18213", + "title": "[FIX] SAML login saves invalid username when receiving multiple values", + "userLogin": "pierre-lehnen-rc", + "contributors": [ + "pierre-lehnen-rc", + "sampaiodiego" + ] + }, + { + "pr": "18318", + "title": "[FIX] Local Account login error when both LDAP and Email 2FA are enabled", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.5.0", + "contributors": [ + "pierre-lehnen-rc", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "18309", + "title": "[IMPROVE] Mention autocomplete UI and performance improvements ", + "userLogin": "rodrigok", + "description": "* New setting to configure the number of suggestions `Admin > Layout > User Interface > Number of users' autocomplete suggestions` (default 5)\r\n* The UI shows whenever the user is not a member of the room\r\n* The UI shows when the suggestion came from the last messages for quick selection/reply\r\n* The suggestions follow this order:\r\n * The user with the exact username and member of the room\r\n * The user with the exact username but not a member of the room (if allowed to list non-members)\r\n * The users containing the text in username, name or nickname and member of the room\r\n * The users containing the text in username, name or nickname and not a member of the room (if allowed to list non-members)", + "milestone": "3.5.0", + "contributors": [ + "rodrigok", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "18315", + "title": "[FIX] Error when fetching a nonexistent business hour from the server", + "userLogin": "renatobecker", + "milestone": "3.5.0", + "contributors": [ + "renatobecker", + "web-flow" + ] + }, + { + "pr": "18314", + "title": "[FIX] \"Join\" button on thread when room is read only", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "17339", + "title": "[FIX] Merge user custom fields on LDAP sync", + "userLogin": "tobiasge", + "milestone": "3.5.0", + "contributors": [ + "tobiasge" + ] + }, + { + "pr": "18093", + "title": "[NEW][ENTERPRISE] Add support to license tags", + "userLogin": "sampaiodiego", + "description": "Enterprise installations will show tags on Admin panel with the type of the license applied. The tag will be visible on the top-left corner of the administration area as a badge helping administrators to identify which license they have.", + "milestone": "3.5.0", + "contributors": [ + "sampaiodiego", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "18310", + "title": "[FIX] Delete user warning message undefined", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18044", + "title": "[FIX] Don't show agent info in the transcript if the setting is disabled", + "userLogin": "antkaz", + "milestone": "3.5.0", + "contributors": [ + "antkaz", + "renatobecker", + "web-flow" + ] + }, + { + "pr": "18308", + "title": "[FIX] Closing the admin does not return to last opened room", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18307", + "title": "LingoHub based on develop", + "userLogin": "engelgabriel", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18294", + "title": "Update Apps-Engine to Beta version", + "userLogin": "d-gubert", + "milestone": "3.5.0", + "contributors": [ + "d-gubert" + ] + }, + { + "pr": "18194", + "title": "[NEW] User profile and User card", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "tassoevan", + "web-flow", + "gabriellsh" + ] + }, + { + "pr": "18271", + "title": "[NEW] Update Apps-Engine version", + "userLogin": "d-gubert", + "milestone": "3.5.0", + "contributors": [ + "d-gubert", + "web-flow" + ] + }, + { + "pr": "18290", + "title": "Rewrite: My Account > Integrations rewritten", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh", + "tassoevan", + "web-flow" + ] + }, + { + "pr": "18176", + "title": "LingoHub based on develop", + "userLogin": "engelgabriel", + "contributors": [ + "rodrigok", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "18289", + "title": "[FIX] View close uikit event sending wrong payload", + "userLogin": "d-gubert", + "milestone": "3.5.0", + "contributors": [ + "d-gubert" + ] + }, + { + "pr": "18285", + "title": "[FIX] Fix sticky notifications not working", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18288", + "title": "Regression: Account Sidebar not rendering properly", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18287", + "title": "Regression - Profile page crashing for users without password", + "userLogin": "pierre-lehnen-rc", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18009", + "title": "[FIX] Few adjustments to accept fuselage theme", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "tassoevan", + "web-flow" + ] + }, + { + "pr": "18106", + "title": "Rewrite: My Account using React", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh", + "web-flow", + "ggazzo", + "tassoevan" + ] + }, + { + "pr": "18274", + "title": "[FIX] Apps page loading indefinitely if no Markeplace data", + "userLogin": "gabriellsh", + "milestone": "3.4.3", + "contributors": [ + "gabriellsh", + "tassoevan", + "web-flow", + "ggazzo" + ] + }, + { + "pr": "18277", + "title": "[NEW] External MP3 encoder worker for audio recording", + "userLogin": "tassoevan", + "milestone": "3.5.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "18273", + "title": "Regression: Message actions under \"unread messages\" warning", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18260", + "title": "[NEW] Added profile field to inform Nickname for users in order to be searchable", + "userLogin": "rodrigok", + "description": "Nickname is a new user field that can be used to better identify users when searching for someone to add in a channel or do a mention. Useful for large organizations or countries where name repetition is common.", + "milestone": "3.5.0", + "contributors": [ + "rodrigok", + "web-flow" + ] + }, + { + "pr": "18258", + "title": "[NEW] Sign in with apple (iOS client only)", + "userLogin": "djorkaeffalexandre", + "description": "Add Sign in with Apple service for the iOS client-only, support for the Web and Android clients will land in future releases.", + "milestone": "3.5.0", + "contributors": [ + "djorkaeffalexandre", + "web-flow" + ] + }, + { + "pr": "18190", + "title": "[IMPROVE] Message action styles", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "web-flow" + ] + }, + { + "pr": "18127", + "title": "Rewrite Contextual Bar Discussion List in React", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "web-flow" + ] + }, + { + "pr": "18244", + "title": "Regression: Remove calls to Console API in useForm hook", + "userLogin": "tassoevan", + "milestone": "3.5.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "18240", + "title": "[FIX]Update link URL at AppsWhatIsIt", + "userLogin": "tassoevan", + "milestone": "3.5.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "18226", + "title": "Update the API of React Hooks using Meteor's reactive system", + "userLogin": "tassoevan", + "milestone": "3.5.0", + "contributors": [ + "tassoevan", + "web-flow" + ] + }, + { + "pr": "18238", + "title": "[FIX] CAS login not merging users with local accounts", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18224", + "title": "[FIX] SAML login crashing when receiving an array of roles", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18222", + "title": "[FIX] Application not loading due to reverse proxy decoding API calls unnecessarily", + "userLogin": "rodrigok", + "milestone": "3.4.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "18212", + "title": "[NEW] Update Apps-Engine version", + "userLogin": "d-gubert", + "contributors": [ + "d-gubert" + ] + }, + { + "pr": "18185", + "title": "[FIX] Old Data Migrations breaking upgrades", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18147", + "title": "[FIX] Cannot open admin when server uses ROOT_URL with subpath (#18105)", + "userLogin": "omarchehab98", + "milestone": "3.4.2", + "contributors": [ + "omarchehab98" + ] + }, + { + "pr": "18080", + "title": "[FIX] App details returns to apps table, instead of previous page.", + "userLogin": "gabriellsh", + "milestone": "3.4.2", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18047", + "title": "[FIX] Clipboard not working when permalinking a pinned message", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler" + ] + }, + { + "pr": "18110", + "title": "[FIX] \"Add reaction\" icon missing when the viewport size is smaller than 500px", + "userLogin": "mariaeduardacunha", + "milestone": "3.4.1", + "contributors": [ + "mariaeduardacunha", + "web-flow" + ] + }, + { + "pr": "18111", + "title": "[FIX] Jitsi opening twice", + "userLogin": "ggazzo", + "milestone": "3.4.1", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18088", + "title": "[FIX] Email notifications were still being sent for online users", + "userLogin": "densik", + "milestone": "3.4.1", + "contributors": [ + "densik", + "web-flow" + ] + }, + { + "pr": "18090", + "title": "[FIX] The livechat agent activity monitor wasn't being initialised because due to an internal error", + "userLogin": "paulobernardoaf", + "milestone": "3.4.1", + "contributors": [ + "paulobernardoaf" + ] + }, + { + "pr": "18109", + "title": "[FIX] Avatar ETag missing from User", + "userLogin": "gabriellsh", + "milestone": "3.4.1", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18102", + "title": "[FIX] Omnichannel close room callback returning promise", + "userLogin": "renatobecker", + "milestone": "3.4.1", + "contributors": [ + "renatobecker", + "web-flow" + ] + }, + { + "pr": "18101", + "title": "[FIX] Not possible to read encrypted messages after disable E2E on channel level", + "userLogin": "rodrigok", + "milestone": "3.4.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "18081", + "title": "[IMPROVE] List dropdown", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler" + ] + }, + { + "pr": "18006", + "title": "[FIX] Misleading labels in Prune Messages", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh", + "ggazzo" + ] + }, + { + "pr": "18030", + "title": "[FIX] Geolocation permission being asked on load", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "17984", + "title": "[FIX] Corrects Typo in Analytics section of the admin page", + "userLogin": "darigovresearch", + "milestone": "3.5.0", + "contributors": [ + "darigovresearch", + "web-flow" + ] + }, + { + "pr": "18083", + "title": "Merge master into develop & Set version to 3.5.0-develop", + "userLogin": "sampaiodiego", + "contributors": [ + "lpilz", + "sampaiodiego", + "d-gubert", + "graywolf336", + "MarcosSpessatto", + "mariaeduardacunha", + "renatobecker", + "cking-vonix", + "pierre-lehnen-rc", + "web-flow", + "rodrigok" + ] + } + ] + }, "3.4.1": { "node_version": "12.16.1", "npm_version": "6.14.0", - "apps_engine_version": "1.15.0", + "apps_engine_version": "1.15.0", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18134", + "title": "Release 3.4.1", + "userLogin": "sampaiodiego", + "contributors": [ + "ggazzo", + "sampaiodiego", + "dudizilla", + "gabriellsh", + "renatobecker", + "rodrigok", + "paulobernardoaf", + "densik" + ] + }, + { + "pr": "18088", + "title": "[FIX] Email notifications were still being sent for online users", + "userLogin": "densik", + "milestone": "3.4.1", + "contributors": [ + "densik", + "web-flow" + ] + }, + { + "pr": "18090", + "title": "[FIX] The livechat agent activity monitor wasn't being initialised because due to an internal error", + "userLogin": "paulobernardoaf", + "milestone": "3.4.1", + "contributors": [ + "paulobernardoaf" + ] + }, + { + "pr": "18101", + "title": "[FIX] Not possible to read encrypted messages after disable E2E on channel level", + "userLogin": "rodrigok", + "milestone": "3.4.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "18102", + "title": "[FIX] Omnichannel close room callback returning promise", + "userLogin": "renatobecker", + "milestone": "3.4.1", + "contributors": [ + "renatobecker", + "web-flow" + ] + }, + { + "pr": "18109", + "title": "[FIX] Avatar ETag missing from User", + "userLogin": "gabriellsh", + "milestone": "3.4.1", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18110", + "title": "[FIX] \"Add reaction\" icon missing when the viewport size is smaller than 500px", + "userLogin": "dudizilla", + "milestone": "3.4.1", + "contributors": [ + "dudizilla", + "web-flow" + ] + }, + { + "pr": "18111", + "title": "[FIX] Jitsi opening twice", + "userLogin": "ggazzo", + "milestone": "3.4.1", + "contributors": [ + "ggazzo" + ] + } + ] + }, + "3.4.2": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.15.0", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18241", + "title": "Release 3.4.2", + "userLogin": "rodrigok", + "contributors": [ + "gabriellsh", + "rodrigok", + "omarchehab98", + "pierre-lehnen-rc" + ] + }, + { + "pr": "18238", + "title": "[FIX] CAS login not merging users with local accounts", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18224", + "title": "[FIX] SAML login crashing when receiving an array of roles", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18222", + "title": "[FIX] Application not loading due to reverse proxy decoding API calls unnecessarily", + "userLogin": "rodrigok", + "milestone": "3.4.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "18185", + "title": "[FIX] Old Data Migrations breaking upgrades", + "userLogin": "pierre-lehnen-rc", + "milestone": "3.4.2", + "contributors": [ + "pierre-lehnen-rc" + ] + }, + { + "pr": "18147", + "title": "[FIX] Cannot open admin when server uses ROOT_URL with subpath (#18105)", + "userLogin": "omarchehab98", + "milestone": "3.4.2", + "contributors": [ + "omarchehab98" + ] + }, + { + "pr": "18080", + "title": "[FIX] App details returns to apps table, instead of previous page.", + "userLogin": "gabriellsh", + "milestone": "3.4.2", + "contributors": [ + "gabriellsh" + ] + } + ] + }, + "3.5.0-rc.1": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0-beta.3516", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18339", + "title": "[FIX] Update check not able to be disabled", + "userLogin": "graywolf336", + "description": "Update checker can now be disabled.", + "milestone": "3.5.0", + "contributors": [ + "graywolf336", + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "18350", + "title": "Regression: Admin User password ", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler" + ] + }, + { + "pr": "18341", + "title": "Regression: Preferences crashing when User has no preferences set.", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh", + "tassoevan", + "web-flow", + "ggazzo" + ] + }, + { + "pr": "18343", + "title": "Regression: User Status selector", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh", + "web-flow" + ] + } + ] + }, + "3.5.0-rc.2": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0-beta.3516", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18360", + "title": "Regression: Fix defaultFields for null values", + "userLogin": "sampaiodiego", + "milestone": "3.5.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18358", + "title": "Broken link on readme", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler", + "web-flow" + ] + }, + { + "pr": "18359", + "title": "Regression: nickname field in user profile.", + "userLogin": "gabriellsh", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18356", + "title": "Regression: Thread Title not being escaped", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18354", + "title": "Regression: Userinfo center avatar image", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler" + ] + }, + { + "pr": "18353", + "title": "Regression: Notification with id-only isn't showed by iOS devices", + "userLogin": "djorkaeffalexandre", + "contributors": [ + "djorkaeffalexandre", + "web-flow" + ] + } + ] + }, + "3.5.0-rc.3": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0-beta.3516", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18373", + "title": "Regression: Provide a fallback text when push notification is idOnly", + "userLogin": "djorkaeffalexandre", + "contributors": [ + "djorkaeffalexandre", + "sampaiodiego" + ] + }, + { + "pr": "18369", + "title": "Regression: Mentions in thread title", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "tassoevan", + "web-flow" + ] + }, + { + "pr": "18375", + "title": "Regression: Edit messages after opening thread", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18372", + "title": "Regression: Wrong background in disabled inputs", + "userLogin": "gabriellsh", + "milestone": "3.5.0", + "contributors": [ + "gabriellsh", + "web-flow", + "tassoevan" + ] + }, + { + "pr": "18371", + "title": "Regression: MP3 worker", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo", + "tassoevan", + "web-flow" + ] + }, + { + "pr": "18370", + "title": "Regression: useStorage", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + } + ] + }, + "3.5.0-rc.4": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0", "mongo_versions": [ "3.4", "3.6", "4.0" ], "pull_requests": [ + { + "pr": "18389", + "title": "Update Apps Engine", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18383", + "title": "[FIX] Missing Privacy Terms Cloud Register warning", + "userLogin": "gabriellsh", + "milestone": "3.6.0", + "contributors": [ + "gabriellsh" + ] + }, + { + "pr": "18386", + "title": "Regression: Return original message on push API", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18385", + "title": "Regression: useUserContext", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18378", + "title": "Regression: Fix useUserSubscription usage", + "userLogin": "ggazzo", + "milestone": "3.5.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18263", + "title": "[FIX] File uploads for unknown file types but nothing is blocked", + "userLogin": "20051231", + "contributors": [ + "20051231", + "web-flow" + ] + }, + { + "pr": "18377", + "title": "[FIX] Push gateway and cloud integration", + "userLogin": "sampaiodiego", + "milestone": "3.5.0", + "contributors": [ + "sampaiodiego", + "web-flow" + ] + } + ] + }, + "3.5.0": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], + "pull_requests": [ + { + "pr": "18241", + "title": "Release 3.4.2", + "userLogin": "rodrigok", + "contributors": [ + "gabriellsh", + "rodrigok", + "omarchehab98", + "pierre-lehnen-rc" + ] + }, { "pr": "18088", "title": "[FIX] Email notifications were still being sent for online users", @@ -46860,10 +47891,10 @@ { "pr": "18110", "title": "[FIX] \"Add reaction\" icon missing when the viewport size is smaller than 500px", - "userLogin": "mariaeduardacunha", + "userLogin": "dudizilla", "milestone": "3.4.1", "contributors": [ - "mariaeduardacunha", + "dudizilla", "web-flow" ] }, @@ -46878,7 +47909,7 @@ } ] }, - "3.4.2": { + "3.4.3": { "node_version": "12.16.1", "npm_version": "6.14.0", "apps_engine_version": "1.15.0", @@ -46887,59 +47918,91 @@ "3.6", "4.0" ], + "pull_requests": [] + }, + "3.5.1": { + "node_version": "12.16.1", + "npm_version": "6.14.0", + "apps_engine_version": "1.16.0", + "mongo_versions": [ + "3.4", + "3.6", + "4.0" + ], "pull_requests": [ { - "pr": "18238", - "title": "[FIX] CAS login not merging users with local accounts", - "userLogin": "pierre-lehnen-rc", - "milestone": "3.4.2", + "pr": "18457", + "title": "[FIX] Migration 194", + "userLogin": "thirsch", "contributors": [ - "pierre-lehnen-rc" + "thirsch", + "web-flow" ] }, { - "pr": "18224", - "title": "[FIX] SAML login crashing when receiving an array of roles", - "userLogin": "pierre-lehnen-rc", - "milestone": "3.4.2", + "pr": "18412", + "title": "[FIX] Omnichannel session monitor is not starting", + "userLogin": "renatobecker", + "milestone": "3.5.1", "contributors": [ - "pierre-lehnen-rc" + "renatobecker", + "web-flow" ] }, { - "pr": "18222", - "title": "[FIX] Application not loading due to reverse proxy decoding API calls unnecessarily", - "userLogin": "rodrigok", - "milestone": "3.4.2", + "pr": "18426", + "title": "[FIX] Invalid MIME type when uploading audio files", + "userLogin": "renatobecker", + "milestone": "3.5.1", "contributors": [ - "rodrigok" + "renatobecker" ] }, { - "pr": "18185", - "title": "[FIX] Old Data Migrations breaking upgrades", - "userLogin": "pierre-lehnen-rc", - "milestone": "3.4.2", + "pr": "18428", + "title": "[FIX] Error when updating omnichannel department without agents parameter", + "userLogin": "renatobecker", + "milestone": "3.5.1", "contributors": [ - "pierre-lehnen-rc" + "renatobecker" ] }, { - "pr": "18147", - "title": "[FIX] Cannot open admin when server uses ROOT_URL with subpath (#18105)", - "userLogin": "omarchehab98", - "milestone": "3.4.2", + "pr": "18446", + "title": "[FIX] Omnichannel Take Inquiry endpoint checking wrong permission", + "userLogin": "renatobecker", + "milestone": "3.5.1", "contributors": [ - "omarchehab98" + "renatobecker" ] }, { - "pr": "18080", - "title": "[FIX] App details returns to apps table, instead of previous page.", + "pr": "18442", + "title": "[FIX] Multiple push notifications sent via native drivers", + "userLogin": "sampaiodiego", + "milestone": "3.5.1", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "18430", + "title": "[FIX] Appending 'false' to Jitsi URL", + "userLogin": "ggazzo", + "milestone": "3.5.1", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "18355", + "title": "[FIX] Can't send long messages as attachment", "userLogin": "gabriellsh", - "milestone": "3.4.2", + "milestone": "3.5.1", "contributors": [ - "gabriellsh" + "gabriellsh", + "tassoevan", + "web-flow" ] } ] diff --git a/.meteor/versions b/.meteor/versions index f7e78d3598b1..31b4f0d6fef2 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -144,6 +144,6 @@ twitter-oauth@1.2.0 typescript@3.7.6 ui@1.0.13 underscore@1.0.10 -url@1.3.0 +url@1.3.1 webapp@1.9.1 webapp-hashing@1.0.9 diff --git a/.snapcraft/resources/prepareRocketChat b/.snapcraft/resources/prepareRocketChat index f8645c215bbe..6565ef2ffbdf 100755 --- a/.snapcraft/resources/prepareRocketChat +++ b/.snapcraft/resources/prepareRocketChat @@ -1,6 +1,6 @@ #!/bin/bash -curl -SLf "https://releases.rocket.chat/3.4.2/download/" -o rocket.chat.tgz +curl -SLf "https://releases.rocket.chat/3.5.1/download/" -o rocket.chat.tgz tar xf rocket.chat.tgz --strip 1 diff --git a/.snapcraft/snap/snapcraft.yaml b/.snapcraft/snap/snapcraft.yaml index e15a46dab296..a70d896a0fcb 100644 --- a/.snapcraft/snap/snapcraft.yaml +++ b/.snapcraft/snap/snapcraft.yaml @@ -7,7 +7,7 @@ # 5. `snapcraft snap` name: rocketchat-server -version: 3.4.2 +version: 3.5.1 summary: Rocket.Chat server description: Have your own Slack like online chat, built with Meteor. https://rocket.chat/ confinement: strict diff --git a/HISTORY.md b/HISTORY.md index ee9811d1fa8b..a0308f5fb206 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,373 +1,650 @@ -# 3.4.2 -`2020-07-10 · 6 🐛 · 4 👩‍💻👨‍💻` +# 3.5.1 +`2020-08-01 · 8 🐛 · 6 👩‍💻👨‍💻` ### Engine versions - Node: `12.16.1` - NPM: `6.14.0` - MongoDB: `3.4, 3.6, 4.0` -- Apps-Engine: `1.15.0` +- Apps-Engine: `1.16.0` ### 🐛 Bug fixes -- App details returns to apps table, instead of previous page. ([#18080](https://github.com/RocketChat/Rocket.Chat/pull/18080)) +- Migration 194 ([#18457](https://github.com/RocketChat/Rocket.Chat/pull/18457) by [@thirsch](https://github.com/thirsch)) -- Application not loading due to reverse proxy decoding API calls unnecessarily ([#18222](https://github.com/RocketChat/Rocket.Chat/pull/18222)) +- Omnichannel session monitor is not starting ([#18412](https://github.com/RocketChat/Rocket.Chat/pull/18412)) -- Cannot open admin when server uses ROOT_URL with subpath (#18105) ([#18147](https://github.com/RocketChat/Rocket.Chat/pull/18147) by [@omarchehab98](https://github.com/omarchehab98)) +- Invalid MIME type when uploading audio files ([#18426](https://github.com/RocketChat/Rocket.Chat/pull/18426)) -- CAS login not merging users with local accounts ([#18238](https://github.com/RocketChat/Rocket.Chat/pull/18238)) +- Error when updating omnichannel department without agents parameter ([#18428](https://github.com/RocketChat/Rocket.Chat/pull/18428)) -- Old Data Migrations breaking upgrades ([#18185](https://github.com/RocketChat/Rocket.Chat/pull/18185)) +- Omnichannel Take Inquiry endpoint checking wrong permission ([#18446](https://github.com/RocketChat/Rocket.Chat/pull/18446)) -- SAML login crashing when receiving an array of roles ([#18224](https://github.com/RocketChat/Rocket.Chat/pull/18224)) +- Multiple push notifications sent via native drivers ([#18442](https://github.com/RocketChat/Rocket.Chat/pull/18442)) + +- Appending 'false' to Jitsi URL ([#18430](https://github.com/RocketChat/Rocket.Chat/pull/18430)) + +- Can't send long messages as attachment ([#18355](https://github.com/RocketChat/Rocket.Chat/pull/18355)) ### 👩‍💻👨‍💻 Contributors 😍 -- [@omarchehab98](https://github.com/omarchehab98) +- [@thirsch](https://github.com/thirsch) ### 👩‍💻👨‍💻 Core Team 🤓 - [@gabriellsh](https://github.com/gabriellsh) -- [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) -- [@rodrigok](https://github.com/rodrigok) +- [@ggazzo](https://github.com/ggazzo) +- [@renatobecker](https://github.com/renatobecker) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) -# 3.4.1 -`2020-07-02 · 7 🐛 · 7 👩‍💻👨‍💻` +# 3.5.0 +`2020-07-27 · 8 🎉 · 5 🚀 · 29 🐛 · 34 🔍 · 21 👩‍💻👨‍💻` ### Engine versions - Node: `12.16.1` - NPM: `6.14.0` - MongoDB: `3.4, 3.6, 4.0` -- Apps-Engine: `1.15.0` +- Apps-Engine: `1.16.0` -### 🐛 Bug fixes +### 🎉 New features -- "Add reaction" icon missing when the viewport size is smaller than 500px ([#18110](https://github.com/RocketChat/Rocket.Chat/pull/18110)) +- **ENTERPRISE:** Push Notification Data Privacy ([#18254](https://github.com/RocketChat/Rocket.Chat/pull/18254)) -- Avatar ETag missing from User ([#18109](https://github.com/RocketChat/Rocket.Chat/pull/18109)) +- **ENTERPRISE:** Add support to license tags ([#18093](https://github.com/RocketChat/Rocket.Chat/pull/18093)) -- Email notifications were still being sent for online users ([#18088](https://github.com/RocketChat/Rocket.Chat/pull/18088) by [@densik](https://github.com/densik)) + Enterprise installations will show tags on Admin panel with the type of the license applied. The tag will be visible on the top-left corner of the administration area as a badge helping administrators to identify which license they have. -- Jitsi opening twice ([#18111](https://github.com/RocketChat/Rocket.Chat/pull/18111)) +- User profile and User card ([#18194](https://github.com/RocketChat/Rocket.Chat/pull/18194)) -- Not possible to read encrypted messages after disable E2E on channel level ([#18101](https://github.com/RocketChat/Rocket.Chat/pull/18101)) +- Update Apps-Engine version ([#18271](https://github.com/RocketChat/Rocket.Chat/pull/18271)) -- Omnichannel close room callback returning promise ([#18102](https://github.com/RocketChat/Rocket.Chat/pull/18102)) +- External MP3 encoder worker for audio recording ([#18277](https://github.com/RocketChat/Rocket.Chat/pull/18277)) -- The livechat agent activity monitor wasn't being initialised because due to an internal error ([#18090](https://github.com/RocketChat/Rocket.Chat/pull/18090) by [@paulobernardoaf](https://github.com/paulobernardoaf)) +- Added profile field to inform Nickname for users in order to be searchable ([#18260](https://github.com/RocketChat/Rocket.Chat/pull/18260)) -### 👩‍💻👨‍💻 Contributors 😍 + Nickname is a new user field that can be used to better identify users when searching for someone to add in a channel or do a mention. Useful for large organizations or countries where name repetition is common. -- [@densik](https://github.com/densik) -- [@paulobernardoaf](https://github.com/paulobernardoaf) +- Sign in with apple (iOS client only) ([#18258](https://github.com/RocketChat/Rocket.Chat/pull/18258)) -### 👩‍💻👨‍💻 Core Team 🤓 + Add Sign in with Apple service for the iOS client-only, support for the Web and Android clients will land in future releases. -- [@gabriellsh](https://github.com/gabriellsh) -- [@ggazzo](https://github.com/ggazzo) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) -- [@renatobecker](https://github.com/renatobecker) -- [@rodrigok](https://github.com/rodrigok) +- Update Apps-Engine version ([#18212](https://github.com/RocketChat/Rocket.Chat/pull/18212)) -# 3.4.0 -`2020-06-30 · 18 🎉 · 19 🚀 · 42 🐛 · 52 🔍 · 52 👩‍💻👨‍💻` +### 🚀 Improvements -### Engine versions -- Node: `12.16.1` -- NPM: `6.14.0` -- MongoDB: `3.4, 3.6, 4.0` -- Apps-Engine: `1.15.0` -### 🎉 New features +- Change setting that blocks unauthenticated access to avatar to public ([#18316](https://github.com/RocketChat/Rocket.Chat/pull/18316)) +- Improve performance and remove agents when the department is removed ([#17049](https://github.com/RocketChat/Rocket.Chat/pull/17049) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- **API:** Add `interation.update` endpoint ([#13618](https://github.com/RocketChat/Rocket.Chat/pull/13618) by [@tonobo](https://github.com/tonobo)) +- Mention autocomplete UI and performance improvements ([#18309](https://github.com/RocketChat/Rocket.Chat/pull/18309)) -- **API:** Endpoint `groups.setEncrypted` ([#13477](https://github.com/RocketChat/Rocket.Chat/pull/13477)) + * New setting to configure the number of suggestions `Admin > Layout > User Interface > Number of users' autocomplete suggestions` (default 5) + * The UI shows whenever the user is not a member of the room + * The UI shows when the suggestion came from the last messages for quick selection/reply + * The suggestions follow this order: + * The user with the exact username and member of the room + * The user with the exact username but not a member of the room (if allowed to list non-members) + * The users containing the text in username, name or nickname and member of the room + * The users containing the text in username, name or nickname and not a member of the room (if allowed to list non-members) -- **API:** Endpoint `settings.addCustomOAuth` to create Custom OAuth services ([#14912](https://github.com/RocketChat/Rocket.Chat/pull/14912) by [@g-rauhoeft](https://github.com/g-rauhoeft)) +- Message action styles ([#18190](https://github.com/RocketChat/Rocket.Chat/pull/18190)) -- **API:** New endpoints to manage User Custom Status `custom-user-status.create`, custom-user-status.delete` and `custom-user-status.update` ([#16550](https://github.com/RocketChat/Rocket.Chat/pull/16550)) +- List dropdown ([#18081](https://github.com/RocketChat/Rocket.Chat/pull/18081)) -- **ENTERPRISE:** Download engagement data ([#17920](https://github.com/RocketChat/Rocket.Chat/pull/17920)) +### 🐛 Bug fixes -- **ENTERPRISE:** Omnichannel multiple business hours ([#17947](https://github.com/RocketChat/Rocket.Chat/pull/17947)) -- Ability to configure Jitsi room options via new setting `URL Suffix` ([#17950](https://github.com/RocketChat/Rocket.Chat/pull/17950) by [@fthiery](https://github.com/fthiery)) +- SlackBridge error ([#18320](https://github.com/RocketChat/Rocket.Chat/pull/18320)) -- Accept variable `#{userdn}` on LDAP group filter ([#16273](https://github.com/RocketChat/Rocket.Chat/pull/16273) by [@ChrissW-R1](https://github.com/ChrissW-R1)) +- Bug on entering token in connectivity services ([#18317](https://github.com/RocketChat/Rocket.Chat/pull/18317)) -- Add ability to block failed login attempts by user and IP ([#17783](https://github.com/RocketChat/Rocket.Chat/pull/17783)) +- SAML login saves invalid username when receiving multiple values ([#18213](https://github.com/RocketChat/Rocket.Chat/pull/18213)) -- Allows agents to send chat transcript to omnichannel end-users ([#17774](https://github.com/RocketChat/Rocket.Chat/pull/17774)) +- Local Account login error when both LDAP and Email 2FA are enabled ([#18318](https://github.com/RocketChat/Rocket.Chat/pull/18318)) -- Assign oldest active user as owner when deleting last room owner ([#16088](https://github.com/RocketChat/Rocket.Chat/pull/16088)) +- Error when fetching a nonexistent business hour from the server ([#18315](https://github.com/RocketChat/Rocket.Chat/pull/18315)) -- Blocked Media Types setting ([#17617](https://github.com/RocketChat/Rocket.Chat/pull/17617)) +- "Join" button on thread when room is read only ([#18314](https://github.com/RocketChat/Rocket.Chat/pull/18314)) -- Highlight matching words in message search results ([#16166](https://github.com/RocketChat/Rocket.Chat/pull/16166)) +- Merge user custom fields on LDAP sync ([#17339](https://github.com/RocketChat/Rocket.Chat/pull/17339) by [@tobiasge](https://github.com/tobiasge)) -- Make ldap avatar source field customizable ([#12958](https://github.com/RocketChat/Rocket.Chat/pull/12958) by [@alexbartsch](https://github.com/alexbartsch)) +- Delete user warning message undefined ([#18310](https://github.com/RocketChat/Rocket.Chat/pull/18310)) -- Reply notification email to sender's email when the Direct Reply feature is disabled ([#15767](https://github.com/RocketChat/Rocket.Chat/pull/15767) by [@localguru](https://github.com/localguru)) +- Don't show agent info in the transcript if the setting is disabled ([#18044](https://github.com/RocketChat/Rocket.Chat/pull/18044) by [@antkaz](https://github.com/antkaz)) -- Rewrite Apps ([#17906](https://github.com/RocketChat/Rocket.Chat/pull/17906)) +- Closing the admin does not return to last opened room ([#18308](https://github.com/RocketChat/Rocket.Chat/pull/18308)) -- Setting to determine if the LDAP user active state should be synced ([#17645](https://github.com/RocketChat/Rocket.Chat/pull/17645)) +- View close uikit event sending wrong payload ([#18289](https://github.com/RocketChat/Rocket.Chat/pull/18289)) -- Skip Export Operations that haven't been updated in over a day ([#16135](https://github.com/RocketChat/Rocket.Chat/pull/16135)) +- Fix sticky notifications not working ([#18285](https://github.com/RocketChat/Rocket.Chat/pull/18285)) -### 🚀 Improvements +- Few adjustments to accept fuselage theme ([#18009](https://github.com/RocketChat/Rocket.Chat/pull/18009)) +- Apps page loading indefinitely if no Markeplace data ([#18274](https://github.com/RocketChat/Rocket.Chat/pull/18274)) -- **Federation:** Add support for _tcp and protocol DNS entries ([#17818](https://github.com/RocketChat/Rocket.Chat/pull/17818)) +- Update link URL at AppsWhatIsIt ([#18240](https://github.com/RocketChat/Rocket.Chat/pull/18240)) -- **Performance:** Add new database indexes to improve data query performance ([#17839](https://github.com/RocketChat/Rocket.Chat/pull/17839)) +- CAS login not merging users with local accounts ([#18238](https://github.com/RocketChat/Rocket.Chat/pull/18238)) -- Add rate limiter to UiKit endpoints ([#17859](https://github.com/RocketChat/Rocket.Chat/pull/17859)) +- SAML login crashing when receiving an array of roles ([#18224](https://github.com/RocketChat/Rocket.Chat/pull/18224)) -- Allow webhook message to respond in thread ([#17863](https://github.com/RocketChat/Rocket.Chat/pull/17863) by [@Karting06](https://github.com/Karting06)) +- Application not loading due to reverse proxy decoding API calls unnecessarily ([#18222](https://github.com/RocketChat/Rocket.Chat/pull/18222)) -- Change default upload settings to only block SVG files ([#17933](https://github.com/RocketChat/Rocket.Chat/pull/17933)) +- Old Data Migrations breaking upgrades ([#18185](https://github.com/RocketChat/Rocket.Chat/pull/18185)) -- Don't send emails to online users and remove delay when away/idle ([#17907](https://github.com/RocketChat/Rocket.Chat/pull/17907)) +- Cannot open admin when server uses ROOT_URL with subpath (#18105) ([#18147](https://github.com/RocketChat/Rocket.Chat/pull/18147) by [@omarchehab98](https://github.com/omarchehab98)) -- Make the implementation of custom code easier by having placeholders for a custom folder ([#15106](https://github.com/RocketChat/Rocket.Chat/pull/15106) by [@justinr1234](https://github.com/justinr1234)) +- App details returns to apps table, instead of previous page. ([#18080](https://github.com/RocketChat/Rocket.Chat/pull/18080)) -- Performance editing Admin settings ([#17916](https://github.com/RocketChat/Rocket.Chat/pull/17916)) +- Clipboard not working when permalinking a pinned message ([#18047](https://github.com/RocketChat/Rocket.Chat/pull/18047)) -- React hooks lint rules ([#17941](https://github.com/RocketChat/Rocket.Chat/pull/17941)) +- Misleading labels in Prune Messages ([#18006](https://github.com/RocketChat/Rocket.Chat/pull/18006)) -- Refactor Omnichannel Office Hours feature ([#17824](https://github.com/RocketChat/Rocket.Chat/pull/17824)) +- Geolocation permission being asked on load ([#18030](https://github.com/RocketChat/Rocket.Chat/pull/18030)) -- Refactor Omnichannel Past Chats List ([#17346](https://github.com/RocketChat/Rocket.Chat/pull/17346) by [@nitinkumartiwari](https://github.com/nitinkumartiwari)) +- Corrects Typo in Analytics section of the admin page ([#17984](https://github.com/RocketChat/Rocket.Chat/pull/17984) by [@darigovresearch](https://github.com/darigovresearch)) -- Rewrite admin sidebar in React ([#17801](https://github.com/RocketChat/Rocket.Chat/pull/17801)) +- Update check not able to be disabled ([#18339](https://github.com/RocketChat/Rocket.Chat/pull/18339)) -- Rewrite Federation Dashboard ([#17900](https://github.com/RocketChat/Rocket.Chat/pull/17900)) + Update checker can now be disabled. -- SAML implementation ([#17742](https://github.com/RocketChat/Rocket.Chat/pull/17742)) +- Missing Privacy Terms Cloud Register warning ([#18383](https://github.com/RocketChat/Rocket.Chat/pull/18383)) -- Slack import: Parse channel and user mentions ([#17637](https://github.com/RocketChat/Rocket.Chat/pull/17637)) +- File uploads for unknown file types but nothing is blocked ([#18263](https://github.com/RocketChat/Rocket.Chat/pull/18263) by [@20051231](https://github.com/20051231)) -- Split NOTIFICATIONS_SCHEDULE_DELAY into three separate variables ([#17669](https://github.com/RocketChat/Rocket.Chat/pull/17669) by [@jazztickets](https://github.com/jazztickets)) +- Push gateway and cloud integration ([#18377](https://github.com/RocketChat/Rocket.Chat/pull/18377)) - Email notification delay can now be customized with the following environment variables: - NOTIFICATIONS_SCHEDULE_DELAY_ONLINE - NOTIFICATIONS_SCHEDULE_DELAY_AWAY - NOTIFICATIONS_SCHEDULE_DELAY_OFFLINE - Setting the value to -1 disable notifications for that type. +
+🔍 Minor changes -- Threads ([#17416](https://github.com/RocketChat/Rocket.Chat/pull/17416)) -- Use REST for DDP calls by default ([#17934](https://github.com/RocketChat/Rocket.Chat/pull/17934)) +- Release 3.4.2 ([#18241](https://github.com/RocketChat/Rocket.Chat/pull/18241) by [@omarchehab98](https://github.com/omarchehab98)) -- User avatar cache invalidation ([#17925](https://github.com/RocketChat/Rocket.Chat/pull/17925)) +- Regression: Close UserCard if action opens a new page ([#18319](https://github.com/RocketChat/Rocket.Chat/pull/18319)) -### 🐛 Bug fixes +- Move the development guidelines to our handbook ([#18026](https://github.com/RocketChat/Rocket.Chat/pull/18026)) +- LingoHub based on develop ([#18307](https://github.com/RocketChat/Rocket.Chat/pull/18307)) -- Add Authorization Bearer to allowed Headers ([#8566](https://github.com/RocketChat/Rocket.Chat/pull/8566) by [@Siedlerchr](https://github.com/Siedlerchr)) +- Update Apps-Engine to Beta version ([#18294](https://github.com/RocketChat/Rocket.Chat/pull/18294)) -- Add missing i18n entry for LDAP connection test success message ([#17691](https://github.com/RocketChat/Rocket.Chat/pull/17691) by [@AbhinavTalari](https://github.com/AbhinavTalari)) +- Rewrite: My Account > Integrations rewritten ([#18290](https://github.com/RocketChat/Rocket.Chat/pull/18290)) -- Added explicit server oembed provider for Twitter ([#17954](https://github.com/RocketChat/Rocket.Chat/pull/17954) by [@Cleod9](https://github.com/Cleod9)) +- LingoHub based on develop ([#18176](https://github.com/RocketChat/Rocket.Chat/pull/18176)) -- Autocomplete component is not working property when searching channels in the Livechat Departments form ([#17970](https://github.com/RocketChat/Rocket.Chat/pull/17970)) +- Regression: Account Sidebar not rendering properly ([#18288](https://github.com/RocketChat/Rocket.Chat/pull/18288)) -- Cannot react while "Allow reaction" is set to true ([#17964](https://github.com/RocketChat/Rocket.Chat/pull/17964)) +- Regression - Profile page crashing for users without password ([#18287](https://github.com/RocketChat/Rocket.Chat/pull/18287)) -- Channel/Room inconsistency for leave and hide options ([#10165](https://github.com/RocketChat/Rocket.Chat/pull/10165) by [@c0dzilla](https://github.com/c0dzilla)) +- Rewrite: My Account using React ([#18106](https://github.com/RocketChat/Rocket.Chat/pull/18106)) -- Close the user info context panel does not navigate back to the user's list ([#14085](https://github.com/RocketChat/Rocket.Chat/pull/14085) by [@mohamedar97](https://github.com/mohamedar97)) +- Regression: Message actions under "unread messages" warning ([#18273](https://github.com/RocketChat/Rocket.Chat/pull/18273)) -- Disabling `Json Web Tokens protection to file uploads` disables the File Upload protection entirely ([#16262](https://github.com/RocketChat/Rocket.Chat/pull/16262) by [@antkaz](https://github.com/antkaz)) +- Rewrite Contextual Bar Discussion List in React ([#18127](https://github.com/RocketChat/Rocket.Chat/pull/18127)) -- Discussion List paddings ([#17955](https://github.com/RocketChat/Rocket.Chat/pull/17955)) +- Regression: Remove calls to Console API in useForm hook ([#18244](https://github.com/RocketChat/Rocket.Chat/pull/18244)) -- Discussion not updating rooms list and not checking right permissions ([#17959](https://github.com/RocketChat/Rocket.Chat/pull/17959)) +- Update the API of React Hooks using Meteor's reactive system ([#18226](https://github.com/RocketChat/Rocket.Chat/pull/18226)) -- Discussion sort option even with discussions disabled ([#17963](https://github.com/RocketChat/Rocket.Chat/pull/17963)) +- Merge master into develop & Set version to 3.5.0-develop ([#18083](https://github.com/RocketChat/Rocket.Chat/pull/18083) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@cking-vonix](https://github.com/cking-vonix) & [@lpilz](https://github.com/lpilz) & [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- double slashes in avatar url ([#17739](https://github.com/RocketChat/Rocket.Chat/pull/17739)) +- Regression: Admin User password ([#18350](https://github.com/RocketChat/Rocket.Chat/pull/18350)) -- Duplicated password placeholder ([#17898](https://github.com/RocketChat/Rocket.Chat/pull/17898)) +- Regression: Preferences crashing when User has no preferences set. ([#18341](https://github.com/RocketChat/Rocket.Chat/pull/18341)) -- Encode custom oauth2 URL params ([#13373](https://github.com/RocketChat/Rocket.Chat/pull/13373) by [@InstinctBas](https://github.com/InstinctBas)) +- Regression: User Status selector ([#18343](https://github.com/RocketChat/Rocket.Chat/pull/18343)) -- Hide system message add/remove owner ([#17938](https://github.com/RocketChat/Rocket.Chat/pull/17938)) +- Regression: Fix defaultFields for null values ([#18360](https://github.com/RocketChat/Rocket.Chat/pull/18360)) -- Importers progress sending too much update events to clients ([#17857](https://github.com/RocketChat/Rocket.Chat/pull/17857)) +- Broken link on readme ([#18358](https://github.com/RocketChat/Rocket.Chat/pull/18358)) -- Link preview containing HTML encoded chars ([#16512](https://github.com/RocketChat/Rocket.Chat/pull/16512)) +- Regression: nickname field in user profile. ([#18359](https://github.com/RocketChat/Rocket.Chat/pull/18359)) -- Links being escaped twice leading to visible encoded characters ([#16481](https://github.com/RocketChat/Rocket.Chat/pull/16481)) +- Regression: Thread Title not being escaped ([#18356](https://github.com/RocketChat/Rocket.Chat/pull/18356)) -- Markdown links not accepting URLs with parentheses ([#13605](https://github.com/RocketChat/Rocket.Chat/pull/13605) by [@knrt10](https://github.com/knrt10)) +- Regression: Userinfo center avatar image ([#18354](https://github.com/RocketChat/Rocket.Chat/pull/18354)) -- Message action popup doesn't adjust itself on screen resize ([#16508](https://github.com/RocketChat/Rocket.Chat/pull/16508) by [@ritvikjain99](https://github.com/ritvikjain99)) +- Regression: Notification with id-only isn't showed by iOS devices ([#18353](https://github.com/RocketChat/Rocket.Chat/pull/18353)) -- Missing i18n key for setting: Verify Email for External Accounts ([#18002](https://github.com/RocketChat/Rocket.Chat/pull/18002)) +- Regression: Provide a fallback text when push notification is idOnly ([#18373](https://github.com/RocketChat/Rocket.Chat/pull/18373)) -- Missing pinned icon indicator for messages pinned ([#16448](https://github.com/RocketChat/Rocket.Chat/pull/16448)) +- Regression: Mentions in thread title ([#18369](https://github.com/RocketChat/Rocket.Chat/pull/18369)) -- Missing User when forwarding Omnichannel conversations via Apps-Engine ([#17918](https://github.com/RocketChat/Rocket.Chat/pull/17918)) +- Regression: Edit messages after opening thread ([#18375](https://github.com/RocketChat/Rocket.Chat/pull/18375)) -- New Omnichannel Past Chats list padding ([#17994](https://github.com/RocketChat/Rocket.Chat/pull/17994)) +- Regression: Wrong background in disabled inputs ([#18372](https://github.com/RocketChat/Rocket.Chat/pull/18372)) -- No rotate option, to prevent image quality loss ([#15196](https://github.com/RocketChat/Rocket.Chat/pull/15196) by [@stleitner](https://github.com/stleitner)) +- Regression: MP3 worker ([#18371](https://github.com/RocketChat/Rocket.Chat/pull/18371)) -- No Way to Display Password Policy on Password Reset Screen ([#16400](https://github.com/RocketChat/Rocket.Chat/pull/16400)) +- Regression: useStorage ([#18370](https://github.com/RocketChat/Rocket.Chat/pull/18370)) -- Not possible to translate the label of custom fields in user's Info ([#15595](https://github.com/RocketChat/Rocket.Chat/pull/15595) by [@antkaz](https://github.com/antkaz)) +- Update Apps Engine ([#18389](https://github.com/RocketChat/Rocket.Chat/pull/18389)) -- Outgoing webhook: Excessive spacing between trigger words ([#17830](https://github.com/RocketChat/Rocket.Chat/pull/17830) by [@Karting06](https://github.com/Karting06)) +- Regression: Return original message on push API ([#18386](https://github.com/RocketChat/Rocket.Chat/pull/18386)) -- Profile save button not activates properly when changing the username field ([#16541](https://github.com/RocketChat/Rocket.Chat/pull/16541) by [@ritvikjain99](https://github.com/ritvikjain99)) +- Regression: useUserContext ([#18385](https://github.com/RocketChat/Rocket.Chat/pull/18385)) -- ReadOnly Rooms permission checks ([#17709](https://github.com/RocketChat/Rocket.Chat/pull/17709)) +- Regression: Fix useUserSubscription usage ([#18378](https://github.com/RocketChat/Rocket.Chat/pull/18378)) -- Reorder hljs ([#17854](https://github.com/RocketChat/Rocket.Chat/pull/17854)) +
-- Set `x-content-type-options: nosniff` header ([#16232](https://github.com/RocketChat/Rocket.Chat/pull/16232) by [@aviral243](https://github.com/aviral243)) +### 👩‍💻👨‍💻 Contributors 😍 -- Some Login Buttons disappear after refreshing OAuth Services ([#17808](https://github.com/RocketChat/Rocket.Chat/pull/17808)) +- [@20051231](https://github.com/20051231) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) +- [@antkaz](https://github.com/antkaz) +- [@cking-vonix](https://github.com/cking-vonix) +- [@darigovresearch](https://github.com/darigovresearch) +- [@lpilz](https://github.com/lpilz) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) +- [@omarchehab98](https://github.com/omarchehab98) +- [@tobiasge](https://github.com/tobiasge) -- Spotify embed link opens in same tab ([#13637](https://github.com/RocketChat/Rocket.Chat/pull/13637) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +### 👩‍💻👨‍💻 Core Team 🤓 -- StreamCast stream to server only streamers ([#17942](https://github.com/RocketChat/Rocket.Chat/pull/17942)) +- [@MartinSchoeler](https://github.com/MartinSchoeler) +- [@d-gubert](https://github.com/d-gubert) +- [@djorkaeffalexandre](https://github.com/djorkaeffalexandre) +- [@gabriellsh](https://github.com/gabriellsh) +- [@geekgonecrazy](https://github.com/geekgonecrazy) +- [@ggazzo](https://github.com/ggazzo) +- [@graywolf336](https://github.com/graywolf336) +- [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) -- UI is not rendering when trying to edit an user ([#17972](https://github.com/RocketChat/Rocket.Chat/pull/17972)) +# 3.4.2 +`2020-07-10 · 6 🐛 · 1 🔍 · 4 👩‍💻👨‍💻` -- Undesirable message updates after user saving profile ([#17930](https://github.com/RocketChat/Rocket.Chat/pull/17930)) +### Engine versions +- Node: `12.16.1` +- NPM: `6.14.0` +- MongoDB: `3.4, 3.6, 4.0` +- Apps-Engine: `1.15.0` -- Update AmazonS3 file upload with error handling and sync operation ([#10372](https://github.com/RocketChat/Rocket.Chat/pull/10372) by [@madhavmalhotra3089](https://github.com/madhavmalhotra3089)) +### 🐛 Bug fixes -- User can resend email verification if email is invalid or is empty ([#16095](https://github.com/RocketChat/Rocket.Chat/pull/16095)) -- User is prompted to reset their password when logging with OAuth ([#18001](https://github.com/RocketChat/Rocket.Chat/pull/18001)) +- CAS login not merging users with local accounts ([#18238](https://github.com/RocketChat/Rocket.Chat/pull/18238)) -- Video conferences being started by users without permission ([#17948](https://github.com/RocketChat/Rocket.Chat/pull/17948)) +- SAML login crashing when receiving an array of roles ([#18224](https://github.com/RocketChat/Rocket.Chat/pull/18224)) -- When the message is too long declining to send as an attachment does not restore the content into the composer ([#16332](https://github.com/RocketChat/Rocket.Chat/pull/16332)) +- Application not loading due to reverse proxy decoding API calls unnecessarily ([#18222](https://github.com/RocketChat/Rocket.Chat/pull/18222)) + +- Old Data Migrations breaking upgrades ([#18185](https://github.com/RocketChat/Rocket.Chat/pull/18185)) + +- Cannot open admin when server uses ROOT_URL with subpath (#18105) ([#18147](https://github.com/RocketChat/Rocket.Chat/pull/18147) by [@omarchehab98](https://github.com/omarchehab98)) + +- App details returns to apps table, instead of previous page. ([#18080](https://github.com/RocketChat/Rocket.Chat/pull/18080))
🔍 Minor changes -- Add Apps to control GitHub issues ([#17807](https://github.com/RocketChat/Rocket.Chat/pull/17807)) +- Release 3.4.2 ([#18241](https://github.com/RocketChat/Rocket.Chat/pull/18241) by [@omarchehab98](https://github.com/omarchehab98)) -- Add Apps-Engine to Engine Versions on History ([#17810](https://github.com/RocketChat/Rocket.Chat/pull/17810)) +
-- Always initialize CIRCLE_BRANCH env var on CI ([#17874](https://github.com/RocketChat/Rocket.Chat/pull/17874)) +### 👩‍💻👨‍💻 Contributors 😍 -- Bump websocket-extensions from 0.1.3 to 0.1.4 ([#17837](https://github.com/RocketChat/Rocket.Chat/pull/17837) by [@dependabot[bot]](https://github.com/dependabot[bot])) +- [@omarchehab98](https://github.com/omarchehab98) -- Change some components' location ([#17893](https://github.com/RocketChat/Rocket.Chat/pull/17893)) +### 👩‍💻👨‍💻 Core Team 🤓 -- Chatpal: limit results to current room ([#17718](https://github.com/RocketChat/Rocket.Chat/pull/17718) by [@mrsimpson](https://github.com/mrsimpson)) +- [@gabriellsh](https://github.com/gabriellsh) +- [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) +- [@rodrigok](https://github.com/rodrigok) - Adds an option to Chatpal Search to limit results to the current room searched from +# 3.4.1 +`2020-07-02 · 7 🐛 · 1 🔍 · 8 👩‍💻👨‍💻` -- Do not build Docker image for fork PRs ([#17370](https://github.com/RocketChat/Rocket.Chat/pull/17370)) +### Engine versions +- Node: `12.16.1` +- NPM: `6.14.0` +- MongoDB: `3.4, 3.6, 4.0` +- Apps-Engine: `1.15.0` -- Federation performance and bug fixes ([#17504](https://github.com/RocketChat/Rocket.Chat/pull/17504) by [@hyfen](https://github.com/hyfen)) +### 🐛 Bug fixes -- Fix invalid develop payload to release service ([#17799](https://github.com/RocketChat/Rocket.Chat/pull/17799)) -- Fix typo "coorosponding" ([#17840](https://github.com/RocketChat/Rocket.Chat/pull/17840) by [@toshokan](https://github.com/toshokan)) +- Email notifications were still being sent for online users ([#18088](https://github.com/RocketChat/Rocket.Chat/pull/18088) by [@densik](https://github.com/densik)) - Fix typo on English LDAP page +- The livechat agent activity monitor wasn't being initialised because due to an internal error ([#18090](https://github.com/RocketChat/Rocket.Chat/pull/18090) by [@paulobernardoaf](https://github.com/paulobernardoaf)) -- Fix typo on Contributing.md ([#17769](https://github.com/RocketChat/Rocket.Chat/pull/17769) by [@onurtemiz](https://github.com/onurtemiz)) +- Not possible to read encrypted messages after disable E2E on channel level ([#18101](https://github.com/RocketChat/Rocket.Chat/pull/18101)) - Typo fixes on contributing page. +- Omnichannel close room callback returning promise ([#18102](https://github.com/RocketChat/Rocket.Chat/pull/18102)) -- Fixes some italian wording ([#14008](https://github.com/RocketChat/Rocket.Chat/pull/14008) by [@dadokkio](https://github.com/dadokkio)) +- Avatar ETag missing from User ([#18109](https://github.com/RocketChat/Rocket.Chat/pull/18109)) -- LDAP typo ([#17835](https://github.com/RocketChat/Rocket.Chat/pull/17835) by [@thomas-mc-work](https://github.com/thomas-mc-work)) +- "Add reaction" icon missing when the viewport size is smaller than 500px ([#18110](https://github.com/RocketChat/Rocket.Chat/pull/18110) by [@dudizilla](https://github.com/dudizilla)) -- LingoHub based on develop ([#17796](https://github.com/RocketChat/Rocket.Chat/pull/17796)) +- Jitsi opening twice ([#18111](https://github.com/RocketChat/Rocket.Chat/pull/18111)) -- Merge master into develop & Set version to 3.4.0-develop ([#17764](https://github.com/RocketChat/Rocket.Chat/pull/17764) by [@lpilz](https://github.com/lpilz)) +
+🔍 Minor changes -- Readme: Update Raspberry Pi 2 to Pi 4 ([#17031](https://github.com/RocketChat/Rocket.Chat/pull/17031) by [@EwoutH](https://github.com/EwoutH)) -- Refactor components and views to Storybook compatibility ([#17800](https://github.com/RocketChat/Rocket.Chat/pull/17800)) +- Release 3.4.1 ([#18134](https://github.com/RocketChat/Rocket.Chat/pull/18134) by [@densik](https://github.com/densik) & [@dudizilla](https://github.com/dudizilla) & [@paulobernardoaf](https://github.com/paulobernardoaf)) -- Regresion: Issue with reply button on broadcast channels ([#18057](https://github.com/RocketChat/Rocket.Chat/pull/18057)) +
-- Regression - Incoming WebHook messages not showing up on the channel ([#18005](https://github.com/RocketChat/Rocket.Chat/pull/18005)) +### 👩‍💻👨‍💻 Contributors 😍 -- Regression - Unable to edit status on the Edit User panel of the admin ([#18032](https://github.com/RocketChat/Rocket.Chat/pull/18032)) +- [@densik](https://github.com/densik) +- [@dudizilla](https://github.com/dudizilla) +- [@paulobernardoaf](https://github.com/paulobernardoaf) -- Regression: Admin User Edit panel is broken ([#17992](https://github.com/RocketChat/Rocket.Chat/pull/17992)) +### 👩‍💻👨‍💻 Core Team 🤓 -- Regression: App info broken ([#17979](https://github.com/RocketChat/Rocket.Chat/pull/17979)) +- [@gabriellsh](https://github.com/gabriellsh) +- [@ggazzo](https://github.com/ggazzo) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) -- Regression: Cannot save avatar change on admin ([#17999](https://github.com/RocketChat/Rocket.Chat/pull/17999)) +# 3.4.0 +`2020-06-30 · 18 🎉 · 19 🚀 · 42 🐛 · 52 🔍 · 52 👩‍💻👨‍💻` -- Regression: Deprecate check permission on integrations ([#18024](https://github.com/RocketChat/Rocket.Chat/pull/18024)) +### Engine versions +- Node: `12.16.1` +- NPM: `6.14.0` +- MongoDB: `3.4, 3.6, 4.0` +- Apps-Engine: `1.15.0` -- Regression: Favorite and Featured fields not triggering changes ([#18010](https://github.com/RocketChat/Rocket.Chat/pull/18010)) +### 🎉 New features -- Regression: Fix AWS S3 file retrieval ([#17982](https://github.com/RocketChat/Rocket.Chat/pull/17982)) -- Regression: Fix exit-room on livechat ([#18067](https://github.com/RocketChat/Rocket.Chat/pull/18067)) +- **ENTERPRISE:** Omnichannel multiple business hours ([#17947](https://github.com/RocketChat/Rocket.Chat/pull/17947) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Fix mentions on thread preview ([#18071](https://github.com/RocketChat/Rocket.Chat/pull/18071)) +- **API:** Endpoint `groups.setEncrypted` ([#13477](https://github.com/RocketChat/Rocket.Chat/pull/13477)) -- Regression: Fix setting reply-to email header ([#18008](https://github.com/RocketChat/Rocket.Chat/pull/18008)) +- **API:** Add `interation.update` endpoint ([#13618](https://github.com/RocketChat/Rocket.Chat/pull/13618) by [@tonobo](https://github.com/tonobo)) -- Regression: Fix threads badge color indicators ([#18048](https://github.com/RocketChat/Rocket.Chat/pull/18048)) +- **ENTERPRISE:** Download engagement data ([#17920](https://github.com/RocketChat/Rocket.Chat/pull/17920)) -- Regression: Fix update last message on delete ([#18077](https://github.com/RocketChat/Rocket.Chat/pull/18077)) +- **API:** New endpoints to manage User Custom Status `custom-user-status.create`, custom-user-status.delete` and `custom-user-status.update` ([#16550](https://github.com/RocketChat/Rocket.Chat/pull/16550)) -- Regression: Fix wrong message grouping inside threads ([#18039](https://github.com/RocketChat/Rocket.Chat/pull/18039)) +- **API:** Endpoint `settings.addCustomOAuth` to create Custom OAuth services ([#14912](https://github.com/RocketChat/Rocket.Chat/pull/14912) by [@g-rauhoeft](https://github.com/g-rauhoeft)) -- Regression: Grouping Thread messages ([#18042](https://github.com/RocketChat/Rocket.Chat/pull/18042)) +- Allows agents to send chat transcript to omnichannel end-users ([#17774](https://github.com/RocketChat/Rocket.Chat/pull/17774)) -- Regression: Image Upload not working ([#17993](https://github.com/RocketChat/Rocket.Chat/pull/17993)) +- Add ability to block failed login attempts by user and IP ([#17783](https://github.com/RocketChat/Rocket.Chat/pull/17783) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Improve Omnichannel Business Hours ([#18050](https://github.com/RocketChat/Rocket.Chat/pull/18050)) +- Rewrite Apps ([#17906](https://github.com/RocketChat/Rocket.Chat/pull/17906)) -- Regression: Improve the logic to get request IPs ([#18033](https://github.com/RocketChat/Rocket.Chat/pull/18033)) +- Ability to configure Jitsi room options via new setting `URL Suffix` ([#17950](https://github.com/RocketChat/Rocket.Chat/pull/17950) by [@fthiery](https://github.com/fthiery)) -- Regression: Infinite loop in CodeSettingInput ([#17949](https://github.com/RocketChat/Rocket.Chat/pull/17949)) +- Make ldap avatar source field customizable ([#12958](https://github.com/RocketChat/Rocket.Chat/pull/12958) by [@alexbartsch](https://github.com/alexbartsch)) -- Regression: Infinite render loop on Setup Wizard ([#18074](https://github.com/RocketChat/Rocket.Chat/pull/18074)) +- Reply notification email to sender's email when the Direct Reply feature is disabled ([#15767](https://github.com/RocketChat/Rocket.Chat/pull/15767) by [@localguru](https://github.com/localguru)) -- Regression: Only add reply-to if sender has emails ([#17998](https://github.com/RocketChat/Rocket.Chat/pull/17998)) +- Setting to determine if the LDAP user active state should be synced ([#17645](https://github.com/RocketChat/Rocket.Chat/pull/17645)) -- Regression: Repair CodeMirror component reactivity ([#18037](https://github.com/RocketChat/Rocket.Chat/pull/18037)) +- Blocked Media Types setting ([#17617](https://github.com/RocketChat/Rocket.Chat/pull/17617)) -- Regression: Reset section button ([#18007](https://github.com/RocketChat/Rocket.Chat/pull/18007)) +- Assign oldest active user as owner when deleting last room owner ([#16088](https://github.com/RocketChat/Rocket.Chat/pull/16088)) -- Regression: Room flickering if open a thread ([#18004](https://github.com/RocketChat/Rocket.Chat/pull/18004)) +- Accept variable `#{userdn}` on LDAP group filter ([#16273](https://github.com/RocketChat/Rocket.Chat/pull/16273) by [@ChrissW-R1](https://github.com/ChrissW-R1)) + +- Skip Export Operations that haven't been updated in over a day ([#16135](https://github.com/RocketChat/Rocket.Chat/pull/16135)) + +- Highlight matching words in message search results ([#16166](https://github.com/RocketChat/Rocket.Chat/pull/16166)) + +### 🚀 Improvements + + +- **Performance:** Add new database indexes to improve data query performance ([#17839](https://github.com/RocketChat/Rocket.Chat/pull/17839)) + +- **Federation:** Add support for _tcp and protocol DNS entries ([#17818](https://github.com/RocketChat/Rocket.Chat/pull/17818)) + +- Threads ([#17416](https://github.com/RocketChat/Rocket.Chat/pull/17416)) + +- Refactor Omnichannel Office Hours feature ([#17824](https://github.com/RocketChat/Rocket.Chat/pull/17824) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- SAML implementation ([#17742](https://github.com/RocketChat/Rocket.Chat/pull/17742)) + +- Slack import: Parse channel and user mentions ([#17637](https://github.com/RocketChat/Rocket.Chat/pull/17637)) + +- Refactor Omnichannel Past Chats List ([#17346](https://github.com/RocketChat/Rocket.Chat/pull/17346) by [@nitinkumartiwari](https://github.com/nitinkumartiwari)) + +- User avatar cache invalidation ([#17925](https://github.com/RocketChat/Rocket.Chat/pull/17925)) + +- Allow webhook message to respond in thread ([#17863](https://github.com/RocketChat/Rocket.Chat/pull/17863) by [@Karting06](https://github.com/Karting06)) + +- Performance editing Admin settings ([#17916](https://github.com/RocketChat/Rocket.Chat/pull/17916)) + +- React hooks lint rules ([#17941](https://github.com/RocketChat/Rocket.Chat/pull/17941)) + +- Use REST for DDP calls by default ([#17934](https://github.com/RocketChat/Rocket.Chat/pull/17934)) + +- Add rate limiter to UiKit endpoints ([#17859](https://github.com/RocketChat/Rocket.Chat/pull/17859)) + +- Change default upload settings to only block SVG files ([#17933](https://github.com/RocketChat/Rocket.Chat/pull/17933)) + +- Don't send emails to online users and remove delay when away/idle ([#17907](https://github.com/RocketChat/Rocket.Chat/pull/17907)) + +- Split NOTIFICATIONS_SCHEDULE_DELAY into three separate variables ([#17669](https://github.com/RocketChat/Rocket.Chat/pull/17669) by [@jazztickets](https://github.com/jazztickets)) + + Email notification delay can now be customized with the following environment variables: + NOTIFICATIONS_SCHEDULE_DELAY_ONLINE + NOTIFICATIONS_SCHEDULE_DELAY_AWAY + NOTIFICATIONS_SCHEDULE_DELAY_OFFLINE + Setting the value to -1 disable notifications for that type. + +- Rewrite Federation Dashboard ([#17900](https://github.com/RocketChat/Rocket.Chat/pull/17900)) + +- Rewrite admin sidebar in React ([#17801](https://github.com/RocketChat/Rocket.Chat/pull/17801)) + +- Make the implementation of custom code easier by having placeholders for a custom folder ([#15106](https://github.com/RocketChat/Rocket.Chat/pull/15106) by [@justinr1234](https://github.com/justinr1234)) + +### 🐛 Bug fixes + + +- User is prompted to reset their password when logging with OAuth ([#18001](https://github.com/RocketChat/Rocket.Chat/pull/18001)) + +- Missing i18n key for setting: Verify Email for External Accounts ([#18002](https://github.com/RocketChat/Rocket.Chat/pull/18002)) + +- New Omnichannel Past Chats list padding ([#17994](https://github.com/RocketChat/Rocket.Chat/pull/17994)) + +- Add missing i18n entry for LDAP connection test success message ([#17691](https://github.com/RocketChat/Rocket.Chat/pull/17691) by [@AbhinavTalari](https://github.com/AbhinavTalari)) + +- No Way to Display Password Policy on Password Reset Screen ([#16400](https://github.com/RocketChat/Rocket.Chat/pull/16400)) + +- UI is not rendering when trying to edit an user ([#17972](https://github.com/RocketChat/Rocket.Chat/pull/17972)) + +- Update AmazonS3 file upload with error handling and sync operation ([#10372](https://github.com/RocketChat/Rocket.Chat/pull/10372) by [@madhavmalhotra3089](https://github.com/madhavmalhotra3089)) + +- Channel/Room inconsistency for leave and hide options ([#10165](https://github.com/RocketChat/Rocket.Chat/pull/10165) by [@c0dzilla](https://github.com/c0dzilla)) + +- No rotate option, to prevent image quality loss ([#15196](https://github.com/RocketChat/Rocket.Chat/pull/15196) by [@stleitner](https://github.com/stleitner)) + +- Autocomplete component is not working property when searching channels in the Livechat Departments form ([#17970](https://github.com/RocketChat/Rocket.Chat/pull/17970)) + +- Discussion not updating rooms list and not checking right permissions ([#17959](https://github.com/RocketChat/Rocket.Chat/pull/17959)) + +- Missing User when forwarding Omnichannel conversations via Apps-Engine ([#17918](https://github.com/RocketChat/Rocket.Chat/pull/17918)) + +- Cannot react while "Allow reaction" is set to true ([#17964](https://github.com/RocketChat/Rocket.Chat/pull/17964)) + +- User can resend email verification if email is invalid or is empty ([#16095](https://github.com/RocketChat/Rocket.Chat/pull/16095)) + +- Encode custom oauth2 URL params ([#13373](https://github.com/RocketChat/Rocket.Chat/pull/13373) by [@InstinctBas](https://github.com/InstinctBas)) + +- Discussion sort option even with discussions disabled ([#17963](https://github.com/RocketChat/Rocket.Chat/pull/17963)) + +- Add Authorization Bearer to allowed Headers ([#8566](https://github.com/RocketChat/Rocket.Chat/pull/8566) by [@Siedlerchr](https://github.com/Siedlerchr)) + +- Video conferences being started by users without permission ([#17948](https://github.com/RocketChat/Rocket.Chat/pull/17948)) + +- double slashes in avatar url ([#17739](https://github.com/RocketChat/Rocket.Chat/pull/17739)) + +- ReadOnly Rooms permission checks ([#17709](https://github.com/RocketChat/Rocket.Chat/pull/17709)) + +- Added explicit server oembed provider for Twitter ([#17954](https://github.com/RocketChat/Rocket.Chat/pull/17954) by [@Cleod9](https://github.com/Cleod9)) + +- Discussion List paddings ([#17955](https://github.com/RocketChat/Rocket.Chat/pull/17955)) + +- Hide system message add/remove owner ([#17938](https://github.com/RocketChat/Rocket.Chat/pull/17938)) + +- StreamCast stream to server only streamers ([#17942](https://github.com/RocketChat/Rocket.Chat/pull/17942)) + +- Profile save button not activates properly when changing the username field ([#16541](https://github.com/RocketChat/Rocket.Chat/pull/16541) by [@ritvikjain99](https://github.com/ritvikjain99)) + +- Outgoing webhook: Excessive spacing between trigger words ([#17830](https://github.com/RocketChat/Rocket.Chat/pull/17830) by [@Karting06](https://github.com/Karting06)) + +- Links being escaped twice leading to visible encoded characters ([#16481](https://github.com/RocketChat/Rocket.Chat/pull/16481)) + +- Message action popup doesn't adjust itself on screen resize ([#16508](https://github.com/RocketChat/Rocket.Chat/pull/16508) by [@ritvikjain99](https://github.com/ritvikjain99)) + +- Not possible to translate the label of custom fields in user's Info ([#15595](https://github.com/RocketChat/Rocket.Chat/pull/15595) by [@antkaz](https://github.com/antkaz)) + +- Close the user info context panel does not navigate back to the user's list ([#14085](https://github.com/RocketChat/Rocket.Chat/pull/14085) by [@mohamedar97](https://github.com/mohamedar97)) + +- Missing pinned icon indicator for messages pinned ([#16448](https://github.com/RocketChat/Rocket.Chat/pull/16448)) + +- Undesirable message updates after user saving profile ([#17930](https://github.com/RocketChat/Rocket.Chat/pull/17930)) + +- Duplicated password placeholder ([#17898](https://github.com/RocketChat/Rocket.Chat/pull/17898) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) + +- Some Login Buttons disappear after refreshing OAuth Services ([#17808](https://github.com/RocketChat/Rocket.Chat/pull/17808)) + +- Reorder hljs ([#17854](https://github.com/RocketChat/Rocket.Chat/pull/17854)) + +- Importers progress sending too much update events to clients ([#17857](https://github.com/RocketChat/Rocket.Chat/pull/17857)) + +- When the message is too long declining to send as an attachment does not restore the content into the composer ([#16332](https://github.com/RocketChat/Rocket.Chat/pull/16332)) + +- Link preview containing HTML encoded chars ([#16512](https://github.com/RocketChat/Rocket.Chat/pull/16512)) + +- Spotify embed link opens in same tab ([#13637](https://github.com/RocketChat/Rocket.Chat/pull/13637) by [@bhardwajaditya](https://github.com/bhardwajaditya)) + +- Markdown links not accepting URLs with parentheses ([#13605](https://github.com/RocketChat/Rocket.Chat/pull/13605) by [@knrt10](https://github.com/knrt10)) + +- Set `x-content-type-options: nosniff` header ([#16232](https://github.com/RocketChat/Rocket.Chat/pull/16232) by [@aviral243](https://github.com/aviral243)) + +- Disabling `Json Web Tokens protection to file uploads` disables the File Upload protection entirely ([#16262](https://github.com/RocketChat/Rocket.Chat/pull/16262) by [@antkaz](https://github.com/antkaz)) + +
+🔍 Minor changes -- Regression: Wrong padding and colors on some tabs ([#18068](https://github.com/RocketChat/Rocket.Chat/pull/18068)) - Release 3.3.3 ([#17875](https://github.com/RocketChat/Rocket.Chat/pull/17875)) -- Remove unused accounts-js integration ([#17921](https://github.com/RocketChat/Rocket.Chat/pull/17921)) +- Regression - Incoming WebHook messages not showing up on the channel ([#18005](https://github.com/RocketChat/Rocket.Chat/pull/18005)) - Remove useLazyRef hook usage ([#18003](https://github.com/RocketChat/Rocket.Chat/pull/18003)) -- Revert "Regression: Fix wrong message grouping inside threads" ([#18043](https://github.com/RocketChat/Rocket.Chat/pull/18043)) +- Regression: Cannot save avatar change on admin ([#17999](https://github.com/RocketChat/Rocket.Chat/pull/17999)) -- Submit a payload to the release service when a release happens ([#17775](https://github.com/RocketChat/Rocket.Chat/pull/17775)) +- Regression: Admin User Edit panel is broken ([#17992](https://github.com/RocketChat/Rocket.Chat/pull/17992)) -- Update Dockerfile to not depend on custom base image ([#17802](https://github.com/RocketChat/Rocket.Chat/pull/17802)) +- Regression: Image Upload not working ([#17993](https://github.com/RocketChat/Rocket.Chat/pull/17993)) + +- Regression: Only add reply-to if sender has emails ([#17998](https://github.com/RocketChat/Rocket.Chat/pull/17998)) + +- Regression: Fix AWS S3 file retrieval ([#17982](https://github.com/RocketChat/Rocket.Chat/pull/17982)) + +- Regression: App info broken ([#17979](https://github.com/RocketChat/Rocket.Chat/pull/17979)) + +- Federation performance and bug fixes ([#17504](https://github.com/RocketChat/Rocket.Chat/pull/17504) by [@hyfen](https://github.com/hyfen)) - Update stale bot to v3 and run every 6 hours ([#17958](https://github.com/RocketChat/Rocket.Chat/pull/17958)) -- Upgrade Livechat Widget version to 1.6.0 ([#18070](https://github.com/RocketChat/Rocket.Chat/pull/18070)) +- Fix typo on Contributing.md ([#17769](https://github.com/RocketChat/Rocket.Chat/pull/17769) by [@onurtemiz](https://github.com/onurtemiz)) + + Typo fixes on contributing page. + +- LDAP typo ([#17835](https://github.com/RocketChat/Rocket.Chat/pull/17835) by [@thomas-mc-work](https://github.com/thomas-mc-work)) + +- Bump websocket-extensions from 0.1.3 to 0.1.4 ([#17837](https://github.com/RocketChat/Rocket.Chat/pull/17837) by [@dependabot[bot]](https://github.com/dependabot[bot])) + +- Add Apps to control GitHub issues ([#17807](https://github.com/RocketChat/Rocket.Chat/pull/17807)) + +- Fix typo "coorosponding" ([#17840](https://github.com/RocketChat/Rocket.Chat/pull/17840) by [@toshokan](https://github.com/toshokan)) + + Fix typo on English LDAP page + +- Regression: Infinite loop in CodeSettingInput ([#17949](https://github.com/RocketChat/Rocket.Chat/pull/17949)) + +- Chatpal: limit results to current room ([#17718](https://github.com/RocketChat/Rocket.Chat/pull/17718) by [@mrsimpson](https://github.com/mrsimpson)) + + Adds an option to Chatpal Search to limit results to the current room searched from + +- Do not build Docker image for fork PRs ([#17370](https://github.com/RocketChat/Rocket.Chat/pull/17370)) + +- LingoHub based on develop ([#17796](https://github.com/RocketChat/Rocket.Chat/pull/17796)) + +- Update Dockerfile to not depend on custom base image ([#17802](https://github.com/RocketChat/Rocket.Chat/pull/17802)) + +- Remove unused accounts-js integration ([#17921](https://github.com/RocketChat/Rocket.Chat/pull/17921)) - Wrap Info Page components with React.memo ([#17899](https://github.com/RocketChat/Rocket.Chat/pull/17899)) +- Change some components' location ([#17893](https://github.com/RocketChat/Rocket.Chat/pull/17893)) + +- Always initialize CIRCLE_BRANCH env var on CI ([#17874](https://github.com/RocketChat/Rocket.Chat/pull/17874)) + +- Refactor components and views to Storybook compatibility ([#17800](https://github.com/RocketChat/Rocket.Chat/pull/17800)) + +- Add Apps-Engine to Engine Versions on History ([#17810](https://github.com/RocketChat/Rocket.Chat/pull/17810)) + +- Fix invalid develop payload to release service ([#17799](https://github.com/RocketChat/Rocket.Chat/pull/17799)) + +- Merge master into develop & Set version to 3.4.0-develop ([#17764](https://github.com/RocketChat/Rocket.Chat/pull/17764) by [@lpilz](https://github.com/lpilz) & [@mtmr0x](https://github.com/mtmr0x)) + +- Readme: Update Raspberry Pi 2 to Pi 4 ([#17031](https://github.com/RocketChat/Rocket.Chat/pull/17031) by [@EwoutH](https://github.com/EwoutH)) + +- Fixes some italian wording ([#14008](https://github.com/RocketChat/Rocket.Chat/pull/14008) by [@dadokkio](https://github.com/dadokkio)) + +- Submit a payload to the release service when a release happens ([#17775](https://github.com/RocketChat/Rocket.Chat/pull/17775)) + +- Regression: Deprecate check permission on integrations ([#18024](https://github.com/RocketChat/Rocket.Chat/pull/18024)) + +- Regression: Favorite and Featured fields not triggering changes ([#18010](https://github.com/RocketChat/Rocket.Chat/pull/18010)) + +- Regression: Fix setting reply-to email header ([#18008](https://github.com/RocketChat/Rocket.Chat/pull/18008)) + +- Regression: Fix wrong message grouping inside threads ([#18039](https://github.com/RocketChat/Rocket.Chat/pull/18039)) + +- Regression: Room flickering if open a thread ([#18004](https://github.com/RocketChat/Rocket.Chat/pull/18004)) + +- Regression: Reset section button ([#18007](https://github.com/RocketChat/Rocket.Chat/pull/18007)) + +- Regression: Repair CodeMirror component reactivity ([#18037](https://github.com/RocketChat/Rocket.Chat/pull/18037)) + +- Regression - Unable to edit status on the Edit User panel of the admin ([#18032](https://github.com/RocketChat/Rocket.Chat/pull/18032)) + +- Regression: Fix threads badge color indicators ([#18048](https://github.com/RocketChat/Rocket.Chat/pull/18048)) + +- Regression: Improve the logic to get request IPs ([#18033](https://github.com/RocketChat/Rocket.Chat/pull/18033)) + +- Regression: Grouping Thread messages ([#18042](https://github.com/RocketChat/Rocket.Chat/pull/18042)) + +- Revert "Regression: Fix wrong message grouping inside threads" ([#18043](https://github.com/RocketChat/Rocket.Chat/pull/18043)) + +- Regression: Wrong padding and colors on some tabs ([#18068](https://github.com/RocketChat/Rocket.Chat/pull/18068)) + +- Regression: Fix mentions on thread preview ([#18071](https://github.com/RocketChat/Rocket.Chat/pull/18071)) + +- Upgrade Livechat Widget version to 1.6.0 ([#18070](https://github.com/RocketChat/Rocket.Chat/pull/18070)) + +- Regression: Fix exit-room on livechat ([#18067](https://github.com/RocketChat/Rocket.Chat/pull/18067)) + +- Regresion: Issue with reply button on broadcast channels ([#18057](https://github.com/RocketChat/Rocket.Chat/pull/18057)) + +- Regression: Infinite render loop on Setup Wizard ([#18074](https://github.com/RocketChat/Rocket.Chat/pull/18074)) + +- Regression: Improve Omnichannel Business Hours ([#18050](https://github.com/RocketChat/Rocket.Chat/pull/18050) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Regression: Fix update last message on delete ([#18077](https://github.com/RocketChat/Rocket.Chat/pull/18077)) +
### 👩‍💻👨‍💻 Contributors 😍 @@ -378,6 +655,7 @@ - [@EwoutH](https://github.com/EwoutH) - [@InstinctBas](https://github.com/InstinctBas) - [@Karting06](https://github.com/Karting06) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Siedlerchr](https://github.com/Siedlerchr) - [@alexbartsch](https://github.com/alexbartsch) - [@antkaz](https://github.com/antkaz) @@ -395,8 +673,10 @@ - [@localguru](https://github.com/localguru) - [@lpilz](https://github.com/lpilz) - [@madhavmalhotra3089](https://github.com/madhavmalhotra3089) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@mohamedar97](https://github.com/mohamedar97) - [@mrsimpson](https://github.com/mrsimpson) +- [@mtmr0x](https://github.com/mtmr0x) - [@nitinkumartiwari](https://github.com/nitinkumartiwari) - [@onurtemiz](https://github.com/onurtemiz) - [@ritvikjain99](https://github.com/ritvikjain99) @@ -407,7 +687,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@Sing-Li](https://github.com/Sing-Li) - [@alansikora](https://github.com/alansikora) @@ -419,8 +698,6 @@ - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) - [@lolimay](https://github.com/lolimay) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) -- [@mtmr0x](https://github.com/mtmr0x) - [@murtaza98](https://github.com/murtaza98) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) @@ -441,10 +718,10 @@ 🔍 Minor changes -- Always initialize CIRCLE_BRANCH env var on CI ([#17874](https://github.com/RocketChat/Rocket.Chat/pull/17874)) - - Release 3.3.3 ([#17875](https://github.com/RocketChat/Rocket.Chat/pull/17875)) +- Always initialize CIRCLE_BRANCH env var on CI ([#17874](https://github.com/RocketChat/Rocket.Chat/pull/17874)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -464,10 +741,10 @@ 🔍 Minor changes -- Fix invalid develop payload to release service ([#17799](https://github.com/RocketChat/Rocket.Chat/pull/17799)) - - Release 3.3.2 ([#17870](https://github.com/RocketChat/Rocket.Chat/pull/17870)) +- Fix invalid develop payload to release service ([#17799](https://github.com/RocketChat/Rocket.Chat/pull/17799)) + - Submit a payload to the release service when a release happens ([#17775](https://github.com/RocketChat/Rocket.Chat/pull/17775)) @@ -489,13 +766,7 @@ ### 🐛 Bug fixes -- Administration User page blank opening users without email ([#17836](https://github.com/RocketChat/Rocket.Chat/pull/17836)) - -- Apps room events losing data ([#17827](https://github.com/RocketChat/Rocket.Chat/pull/17827)) - -- Email link "go to message" being incorrectly escaped ([#17803](https://github.com/RocketChat/Rocket.Chat/pull/17803)) - -- Error when re-installing an App ([#17789](https://github.com/RocketChat/Rocket.Chat/pull/17789)) +- SAML LogoutRequest sending wrong NameID ([#17860](https://github.com/RocketChat/Rocket.Chat/pull/17860)) - Logic for room type was inverted on Admin panel (#17851) ([#17853](https://github.com/RocketChat/Rocket.Chat/pull/17853) by [@cking-vonix](https://github.com/cking-vonix)) @@ -503,7 +774,13 @@ - Omnichannel message link is broken in email notifications ([#17843](https://github.com/RocketChat/Rocket.Chat/pull/17843)) -- SAML LogoutRequest sending wrong NameID ([#17860](https://github.com/RocketChat/Rocket.Chat/pull/17860)) +- Administration User page blank opening users without email ([#17836](https://github.com/RocketChat/Rocket.Chat/pull/17836) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) + +- Apps room events losing data ([#17827](https://github.com/RocketChat/Rocket.Chat/pull/17827)) + +- Email link "go to message" being incorrectly escaped ([#17803](https://github.com/RocketChat/Rocket.Chat/pull/17803)) + +- Error when re-installing an App ([#17789](https://github.com/RocketChat/Rocket.Chat/pull/17789)) - Slack importer settings object ([#17776](https://github.com/RocketChat/Rocket.Chat/pull/17776) by [@lpilz](https://github.com/lpilz)) @@ -511,11 +788,11 @@ 🔍 Minor changes -- [REGRESSION] Omnichannel visitor forward was applying wrong restrictions ([#17826](https://github.com/RocketChat/Rocket.Chat/pull/17826)) +- Release 3.3.1 ([#17865](https://github.com/RocketChat/Rocket.Chat/pull/17865) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@cking-vonix](https://github.com/cking-vonix) & [@lpilz](https://github.com/lpilz) & [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Fix the update check not working ([#17809](https://github.com/RocketChat/Rocket.Chat/pull/17809)) +- [REGRESSION] Omnichannel visitor forward was applying wrong restrictions ([#17826](https://github.com/RocketChat/Rocket.Chat/pull/17826) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 3.3.1 ([#17865](https://github.com/RocketChat/Rocket.Chat/pull/17865) by [@cking-vonix](https://github.com/cking-vonix) & [@lpilz](https://github.com/lpilz)) +- Fix the update check not working ([#17809](https://github.com/RocketChat/Rocket.Chat/pull/17809)) - Update Apps-Engine version ([#17804](https://github.com/RocketChat/Rocket.Chat/pull/17804)) @@ -525,16 +802,16 @@ ### 👩‍💻👨‍💻 Contributors 😍 +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@cking-vonix](https://github.com/cking-vonix) - [@lpilz](https://github.com/lpilz) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@graywolf336](https://github.com/graywolf336) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -550,11 +827,9 @@ ### 🎉 New features -- **APPS-ENGINE:** Essentials mechanism ([#17656](https://github.com/RocketChat/Rocket.Chat/pull/17656)) - -- **Apps-Engine:** New Livechat event handlers ([#17033](https://github.com/RocketChat/Rocket.Chat/pull/17033)) +- **ENTERPRISE:** Support Omnichannel conversations auditing ([#17692](https://github.com/RocketChat/Rocket.Chat/pull/17692)) -- **Apps-Engine:** New Room events ([#17487](https://github.com/RocketChat/Rocket.Chat/pull/17487)) +- **ENTERPRISE:** Support for custom Livechat registration form fields ([#17581](https://github.com/RocketChat/Rocket.Chat/pull/17581)) - **ENTERPRISE:** Omnichannel Last-Chatted Agent Preferred option ([#17666](https://github.com/RocketChat/Rocket.Chat/pull/17666)) @@ -565,105 +840,103 @@ After this process, if an agent has been found, the system will check the agent's availability to assist the new chat. If it's not available, then the routing system will get the next available agent in the queue. -- **ENTERPRISE:** Support for custom Livechat registration form fields ([#17581](https://github.com/RocketChat/Rocket.Chat/pull/17581)) - -- **ENTERPRISE:** Support Omnichannel conversations auditing ([#17692](https://github.com/RocketChat/Rocket.Chat/pull/17692)) - -- Add Livechat website URL to the offline message e-mail ([#17429](https://github.com/RocketChat/Rocket.Chat/pull/17429)) +- **Apps-Engine:** New Room events ([#17487](https://github.com/RocketChat/Rocket.Chat/pull/17487)) -- Add permissions to deal with Omnichannel custom fields ([#17567](https://github.com/RocketChat/Rocket.Chat/pull/17567)) +- **Apps-Engine:** New Livechat event handlers ([#17033](https://github.com/RocketChat/Rocket.Chat/pull/17033)) -- Add Permissions to deal with Omnichannel visitor past chats history ([#17580](https://github.com/RocketChat/Rocket.Chat/pull/17580)) +- **APPS-ENGINE:** Essentials mechanism ([#17656](https://github.com/RocketChat/Rocket.Chat/pull/17656)) -- Add the ability to send Livechat offline messages to a channel ([#17442](https://github.com/RocketChat/Rocket.Chat/pull/17442)) +- API endpoint to fetch Omnichannel's room transfer history ([#17694](https://github.com/RocketChat/Rocket.Chat/pull/17694)) -- Added "Add custom emoji" link to emoji picker ([#16250](https://github.com/RocketChat/Rocket.Chat/pull/16250)) +- Option to remove users from RocketChat if not found in Crowd ([#17619](https://github.com/RocketChat/Rocket.Chat/pull/17619) by [@ocanema](https://github.com/ocanema)) - Added custom fields to Add/Edit user ([#17681](https://github.com/RocketChat/Rocket.Chat/pull/17681)) - Admin refactor Second phase ([#17551](https://github.com/RocketChat/Rocket.Chat/pull/17551)) -- Allow filtering Omnichannel analytics dashboards by department ([#17463](https://github.com/RocketChat/Rocket.Chat/pull/17463)) - -- API endpoint to fetch Omnichannel's room transfer history ([#17694](https://github.com/RocketChat/Rocket.Chat/pull/17694)) +- Added "Add custom emoji" link to emoji picker ([#16250](https://github.com/RocketChat/Rocket.Chat/pull/16250)) -- Option to remove users from RocketChat if not found in Crowd ([#17619](https://github.com/RocketChat/Rocket.Chat/pull/17619) by [@ocanema](https://github.com/ocanema)) +- Add Permissions to deal with Omnichannel visitor past chats history ([#17580](https://github.com/RocketChat/Rocket.Chat/pull/17580) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Rewrite admin pages ([#17388](https://github.com/RocketChat/Rocket.Chat/pull/17388)) +- Add permissions to deal with Omnichannel custom fields ([#17567](https://github.com/RocketChat/Rocket.Chat/pull/17567) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Screen Lock settings - mobile client ([#17523](https://github.com/RocketChat/Rocket.Chat/pull/17523)) +- Unread bars on sidebar (#16853) ([#16862](https://github.com/RocketChat/Rocket.Chat/pull/16862) by [@juzser](https://github.com/juzser)) - Show user's status description by the usernames in messages list ([#14892](https://github.com/RocketChat/Rocket.Chat/pull/14892) by [@wreiske](https://github.com/wreiske)) ![image](https://user-images.githubusercontent.com/6295044/60321979-5d191580-994c-11e9-9cd6-15f4565ff0ae.png) -- Unread bars on sidebar (#16853) ([#16862](https://github.com/RocketChat/Rocket.Chat/pull/16862) by [@juzser](https://github.com/juzser)) +- Screen Lock settings - mobile client ([#17523](https://github.com/RocketChat/Rocket.Chat/pull/17523)) -### 🚀 Improvements +- Rewrite admin pages ([#17388](https://github.com/RocketChat/Rocket.Chat/pull/17388) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) +- Allow filtering Omnichannel analytics dashboards by department ([#17463](https://github.com/RocketChat/Rocket.Chat/pull/17463) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- **Apps-Engine:** App user as the default notifier ([#17050](https://github.com/RocketChat/Rocket.Chat/pull/17050)) +- Add the ability to send Livechat offline messages to a channel ([#17442](https://github.com/RocketChat/Rocket.Chat/pull/17442)) -- Add env var to configure Chatpal URL and remove it from beta ([#16665](https://github.com/RocketChat/Rocket.Chat/pull/16665) by [@tkurz](https://github.com/tkurz)) +- Add Livechat website URL to the offline message e-mail ([#17429](https://github.com/RocketChat/Rocket.Chat/pull/17429) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add new webhooks to the Omnichannel integration feature ([#17503](https://github.com/RocketChat/Rocket.Chat/pull/17503)) +### 🚀 Improvements -- Added divider between tables and paginations ([#17680](https://github.com/RocketChat/Rocket.Chat/pull/17680)) + +- **Apps-Engine:** App user as the default notifier ([#17050](https://github.com/RocketChat/Rocket.Chat/pull/17050)) - Always shows the exact match first on user's and room's autocomplete for mentions and on sidebar search ([#16394](https://github.com/RocketChat/Rocket.Chat/pull/16394)) - Display status information in the Omnichannel Agents list ([#17701](https://github.com/RocketChat/Rocket.Chat/pull/17701)) +- Add env var to configure Chatpal URL and remove it from beta ([#16665](https://github.com/RocketChat/Rocket.Chat/pull/16665) by [@tkurz](https://github.com/tkurz)) + +- Added divider between tables and paginations ([#17680](https://github.com/RocketChat/Rocket.Chat/pull/17680)) + - Starred Messages ([#17685](https://github.com/RocketChat/Rocket.Chat/pull/17685)) - Unused styles ([#17554](https://github.com/RocketChat/Rocket.Chat/pull/17554)) +- Add new webhooks to the Omnichannel integration feature ([#17503](https://github.com/RocketChat/Rocket.Chat/pull/17503)) + ### 🐛 Bug fixes -- Agent's custom fields being leaked through the Livechat configuration endpoint ([#17640](https://github.com/RocketChat/Rocket.Chat/pull/17640)) +- Slack importer Link handling ([#17595](https://github.com/RocketChat/Rocket.Chat/pull/17595) by [@lpilz](https://github.com/lpilz)) -- Allow owners to react inside broadcast channels ([#17687](https://github.com/RocketChat/Rocket.Chat/pull/17687)) +- Missing dropdown to select custom status color on user's profile ([#16537](https://github.com/RocketChat/Rocket.Chat/pull/16537) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Avatar url provider ignoring subfolders ([#17675](https://github.com/RocketChat/Rocket.Chat/pull/17675)) +- Password reset/change accepting current password as new password ([#16331](https://github.com/RocketChat/Rocket.Chat/pull/16331)) - Can't click on room's actions menu of sidebar list when in search mode ([#16548](https://github.com/RocketChat/Rocket.Chat/pull/16548) by [@ritvikjain99](https://github.com/ritvikjain99)) -- Change email verification label ([#17450](https://github.com/RocketChat/Rocket.Chat/pull/17450)) +- Remove a non working setting "Notification Duration" ([#15737](https://github.com/RocketChat/Rocket.Chat/pull/15737)) -- Default filters on Omnichannel Current Chats screen not showing on first load ([#17522](https://github.com/RocketChat/Rocket.Chat/pull/17522)) +- Elements of "Personal Access Tokens" section out of alignment and unusable on very small screens ([#17129](https://github.com/RocketChat/Rocket.Chat/pull/17129) by [@Nikhil713](https://github.com/Nikhil713)) -- Directory search user placeholder ([#17652](https://github.com/RocketChat/Rocket.Chat/pull/17652) by [@zdumitru](https://github.com/zdumitru)) +- Allow owners to react inside broadcast channels ([#17687](https://github.com/RocketChat/Rocket.Chat/pull/17687) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Do not allow passwords on private channels ([#15642](https://github.com/RocketChat/Rocket.Chat/pull/15642)) +- Default filters on Omnichannel Current Chats screen not showing on first load ([#17522](https://github.com/RocketChat/Rocket.Chat/pull/17522)) -- Elements of "Personal Access Tokens" section out of alignment and unusable on very small screens ([#17129](https://github.com/RocketChat/Rocket.Chat/pull/17129) by [@Nikhil713](https://github.com/Nikhil713)) +- UI KIT Modal Width ([#17697](https://github.com/RocketChat/Rocket.Chat/pull/17697)) -- Email configs not updating after setting changes ([#17578](https://github.com/RocketChat/Rocket.Chat/pull/17578)) +- Agent's custom fields being leaked through the Livechat configuration endpoint ([#17640](https://github.com/RocketChat/Rocket.Chat/pull/17640)) -- Emoji picker search broken ([#17570](https://github.com/RocketChat/Rocket.Chat/pull/17570)) +- Avatar url provider ignoring subfolders ([#17675](https://github.com/RocketChat/Rocket.Chat/pull/17675)) -- Error during data export for DMs ([#17577](https://github.com/RocketChat/Rocket.Chat/pull/17577)) +- Queued Omnichannel webhook being triggered unnecessarily ([#17661](https://github.com/RocketChat/Rocket.Chat/pull/17661)) -- Federation attachment URL for audio and video files ([#16430](https://github.com/RocketChat/Rocket.Chat/pull/16430) by [@qwertiko](https://github.com/qwertiko)) +- Not redirecting to `First Channel After Login` on register ([#17664](https://github.com/RocketChat/Rocket.Chat/pull/17664)) -- Hyper.sh went out of business in early 2019 ([#17622](https://github.com/RocketChat/Rocket.Chat/pull/17622) by [@fbartels](https://github.com/fbartels)) +- Directory search user placeholder ([#17652](https://github.com/RocketChat/Rocket.Chat/pull/17652) by [@zdumitru](https://github.com/zdumitru)) -- Increasing highlight time in 3 seconds ([#17540](https://github.com/RocketChat/Rocket.Chat/pull/17540)) +- Marketplace tiered pricing plan wording ([#17644](https://github.com/RocketChat/Rocket.Chat/pull/17644)) -- Invalid CSS syntax ([#17541](https://github.com/RocketChat/Rocket.Chat/pull/17541)) +- Secret Registration not properly validating Invite Token ([#17618](https://github.com/RocketChat/Rocket.Chat/pull/17618)) -- LDAP login on Enteprise Version ([#17508](https://github.com/RocketChat/Rocket.Chat/pull/17508)) +- Hyper.sh went out of business in early 2019 ([#17622](https://github.com/RocketChat/Rocket.Chat/pull/17622) by [@fbartels](https://github.com/fbartels)) -- Login Forbidden on servers that had LDAP enabled in the past ([#17579](https://github.com/RocketChat/Rocket.Chat/pull/17579)) +- Do not allow passwords on private channels ([#15642](https://github.com/RocketChat/Rocket.Chat/pull/15642)) - Mail Messages > Cannot mail own user ([#17625](https://github.com/RocketChat/Rocket.Chat/pull/17625)) -- Marketplace tiered pricing plan wording ([#17644](https://github.com/RocketChat/Rocket.Chat/pull/17644)) - -- Missing dropdown to select custom status color on user's profile ([#16537](https://github.com/RocketChat/Rocket.Chat/pull/16537) by [@ritwizsinha](https://github.com/ritwizsinha)) - -- Not redirecting to `First Channel After Login` on register ([#17664](https://github.com/RocketChat/Rocket.Chat/pull/17664)) +- remove multiple options from dontAskMeAgain ([#17514](https://github.com/RocketChat/Rocket.Chat/pull/17514) by [@TaimurAzhar](https://github.com/TaimurAzhar)) - Notification sounds ([#17616](https://github.com/RocketChat/Rocket.Chat/pull/17616)) @@ -672,142 +945,147 @@ * Some translations were missing * Edit and delete of custom sounds were not working correctly -- Omnichannel departments are not saved when the offline channel name is not defined ([#17553](https://github.com/RocketChat/Rocket.Chat/pull/17553)) - -- Omnichannel room priorities system messages were create on every saved room info ([#17479](https://github.com/RocketChat/Rocket.Chat/pull/17479)) +- Resolve 'app already exists' error on app update ([#17544](https://github.com/RocketChat/Rocket.Chat/pull/17544)) -- Password reset/change accepting current password as new password ([#16331](https://github.com/RocketChat/Rocket.Chat/pull/16331)) +- Relative image path in oembededUrlWidget ([#15902](https://github.com/RocketChat/Rocket.Chat/pull/15902) by [@machester4](https://github.com/machester4)) - Push settings enabled when push gateway is selected ([#17582](https://github.com/RocketChat/Rocket.Chat/pull/17582)) -- Queued Omnichannel webhook being triggered unnecessarily ([#17661](https://github.com/RocketChat/Rocket.Chat/pull/17661)) - -- Reactions may present empty names of who reacted when using Real Names ([#17536](https://github.com/RocketChat/Rocket.Chat/pull/17536)) +- LDAP login on Enteprise Version ([#17508](https://github.com/RocketChat/Rocket.Chat/pull/17508)) - When changing usernames the reactions became outdated since it's not possible to update the usernames stored there, so when the server users Real Name setting enabled the system process all messages before return to the clients and get the names of the usernames to show since the usernames are outdated the names will not be found. Now the usernames will be displayed when the name can't be found as a temporary fix until we change the architecture of the data to fix the issue. +- Login Forbidden on servers that had LDAP enabled in the past ([#17579](https://github.com/RocketChat/Rocket.Chat/pull/17579)) -- Relative image path in oembededUrlWidget ([#15902](https://github.com/RocketChat/Rocket.Chat/pull/15902) by [@machester4](https://github.com/machester4)) +- Email configs not updating after setting changes ([#17578](https://github.com/RocketChat/Rocket.Chat/pull/17578)) -- Remove a non working setting "Notification Duration" ([#15737](https://github.com/RocketChat/Rocket.Chat/pull/15737)) +- Error during data export for DMs ([#17577](https://github.com/RocketChat/Rocket.Chat/pull/17577) by [@mtmr0x](https://github.com/mtmr0x)) -- Remove deprecated Omnichannel Knowledge Base feature ([#17387](https://github.com/RocketChat/Rocket.Chat/pull/17387)) +- Emoji picker search broken ([#17570](https://github.com/RocketChat/Rocket.Chat/pull/17570)) -- remove multiple options from dontAskMeAgain ([#17514](https://github.com/RocketChat/Rocket.Chat/pull/17514) by [@TaimurAzhar](https://github.com/TaimurAzhar)) +- Omnichannel departments are not saved when the offline channel name is not defined ([#17553](https://github.com/RocketChat/Rocket.Chat/pull/17553)) -- Replace obsolete X-FRAME-OPTIONS header on Livechat route ([#17419](https://github.com/RocketChat/Rocket.Chat/pull/17419)) +- Invalid CSS syntax ([#17541](https://github.com/RocketChat/Rocket.Chat/pull/17541)) - Replace postcss Meteor package ([#15929](https://github.com/RocketChat/Rocket.Chat/pull/15929)) -- Resolve 'app already exists' error on app update ([#17544](https://github.com/RocketChat/Rocket.Chat/pull/17544)) +- Increasing highlight time in 3 seconds ([#17540](https://github.com/RocketChat/Rocket.Chat/pull/17540) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- SAML IDP initiated logout error ([#17482](https://github.com/RocketChat/Rocket.Chat/pull/17482)) - -- Secret Registration not properly validating Invite Token ([#17618](https://github.com/RocketChat/Rocket.Chat/pull/17618)) +- Remove deprecated Omnichannel Knowledge Base feature ([#17387](https://github.com/RocketChat/Rocket.Chat/pull/17387)) -- Slack importer Link handling ([#17595](https://github.com/RocketChat/Rocket.Chat/pull/17595) by [@lpilz](https://github.com/lpilz)) +- Reactions may present empty names of who reacted when using Real Names ([#17536](https://github.com/RocketChat/Rocket.Chat/pull/17536)) -- UI KIT Modal Width ([#17697](https://github.com/RocketChat/Rocket.Chat/pull/17697)) + When changing usernames the reactions became outdated since it's not possible to update the usernames stored there, so when the server users Real Name setting enabled the system process all messages before return to the clients and get the names of the usernames to show since the usernames are outdated the names will not be found. Now the usernames will be displayed when the name can't be found as a temporary fix until we change the architecture of the data to fix the issue. - Uncessary updates on Settings, Roles and Permissions on startup ([#17160](https://github.com/RocketChat/Rocket.Chat/pull/17160)) +- Federation attachment URL for audio and video files ([#16430](https://github.com/RocketChat/Rocket.Chat/pull/16430) by [@qwertiko](https://github.com/qwertiko)) + +- Replace obsolete X-FRAME-OPTIONS header on Livechat route ([#17419](https://github.com/RocketChat/Rocket.Chat/pull/17419) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Change email verification label ([#17450](https://github.com/RocketChat/Rocket.Chat/pull/17450)) + +- Omnichannel room priorities system messages were create on every saved room info ([#17479](https://github.com/RocketChat/Rocket.Chat/pull/17479) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- SAML IDP initiated logout error ([#17482](https://github.com/RocketChat/Rocket.Chat/pull/17482)) +
🔍 Minor changes -- Add engine versions for houston with templates ([#17403](https://github.com/RocketChat/Rocket.Chat/pull/17403)) +- Release 3.2.2 ([#17600](https://github.com/RocketChat/Rocket.Chat/pull/17600) by [@mtmr0x](https://github.com/mtmr0x)) -- Add snapcraft files to be bumped with Houston ([#17611](https://github.com/RocketChat/Rocket.Chat/pull/17611)) +- Upgrade Livechat Widget version to 1.5.0 ([#17710](https://github.com/RocketChat/Rocket.Chat/pull/17710)) -- Add some missing metadata information ([#17524](https://github.com/RocketChat/Rocket.Chat/pull/17524)) +- Update Fuselage version ([#17708](https://github.com/RocketChat/Rocket.Chat/pull/17708)) -- Bump jquery from 3.3.1 to 3.5.0 ([#17486](https://github.com/RocketChat/Rocket.Chat/pull/17486) by [@dependabot[bot]](https://github.com/dependabot[bot])) +- Regression: Status presence color ([#17707](https://github.com/RocketChat/Rocket.Chat/pull/17707) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Deprecate compatibility cordova setting ([#17586](https://github.com/RocketChat/Rocket.Chat/pull/17586)) +- Improve: Remove index files from action-links, accounts and assets ([#17607](https://github.com/RocketChat/Rocket.Chat/pull/17607) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- DPlatform is deprecated and the replacement does not support rocket.chat ([#17040](https://github.com/RocketChat/Rocket.Chat/pull/17040) by [@ryjones](https://github.com/ryjones)) +- Update Apps-Engine version ([#17706](https://github.com/RocketChat/Rocket.Chat/pull/17706)) + +- Regression: Click to join button not working ([#17705](https://github.com/RocketChat/Rocket.Chat/pull/17705)) - Fix typo "You aren't part of any channel yet" ([#17498](https://github.com/RocketChat/Rocket.Chat/pull/17498) by [@huzaifahj](https://github.com/huzaifahj)) -- Improve: New PR Template ([#16968](https://github.com/RocketChat/Rocket.Chat/pull/16968) by [@regalstreak](https://github.com/regalstreak)) +- Regression: Integrations edit/history crashing ([#17702](https://github.com/RocketChat/Rocket.Chat/pull/17702)) + +- Regression: User edit form missing fields ([#17699](https://github.com/RocketChat/Rocket.Chat/pull/17699)) -- Improve: Remove index files from action-links, accounts and assets ([#17607](https://github.com/RocketChat/Rocket.Chat/pull/17607)) +- Regression: Fix error when performing Omnichannel queue checking ([#17700](https://github.com/RocketChat/Rocket.Chat/pull/17700)) -- Improve: Remove uncessary RegExp query by email ([#17654](https://github.com/RocketChat/Rocket.Chat/pull/17654)) +- Update Contributing Guide ([#17653](https://github.com/RocketChat/Rocket.Chat/pull/17653)) - LingoHub based on develop ([#17693](https://github.com/RocketChat/Rocket.Chat/pull/17693)) -- LingoHub based on develop ([#17520](https://github.com/RocketChat/Rocket.Chat/pull/17520)) - -- Livechat iframe allow microphone and camera ([#9956](https://github.com/RocketChat/Rocket.Chat/pull/9956) by [@kolorafa](https://github.com/kolorafa)) +- Regression: Fix incorrect imports of the Apps-Engine ([#17695](https://github.com/RocketChat/Rocket.Chat/pull/17695)) -- Merge master into develop & Set version to 3.3.0-develop ([#17468](https://github.com/RocketChat/Rocket.Chat/pull/17468)) +- Improve: Remove uncessary RegExp query by email ([#17654](https://github.com/RocketChat/Rocket.Chat/pull/17654)) -- Meteor update to version 1.10.2 ([#17533](https://github.com/RocketChat/Rocket.Chat/pull/17533)) +- Regression: Set retryWrites=false as default Mongo options ([#17683](https://github.com/RocketChat/Rocket.Chat/pull/17683)) -- RegExp improvements suggested by LGTM ([#17500](https://github.com/RocketChat/Rocket.Chat/pull/17500)) +- Regression: status-color-online ([#17684](https://github.com/RocketChat/Rocket.Chat/pull/17684)) -- Regression: Fix error when performing Omnichannel queue checking ([#17700](https://github.com/RocketChat/Rocket.Chat/pull/17700)) +- Add snapcraft files to be bumped with Houston ([#17611](https://github.com/RocketChat/Rocket.Chat/pull/17611)) -- Regression: Add missing return to afterSaveMessage callbacks ([#17715](https://github.com/RocketChat/Rocket.Chat/pull/17715)) +- Regression: Outgoing List ([#17667](https://github.com/RocketChat/Rocket.Chat/pull/17667)) -- Regression: Adjusting spaces between OAuth login buttons ([#17745](https://github.com/RocketChat/Rocket.Chat/pull/17745) by [@dudizilla](https://github.com/dudizilla)) +- Regression: Pressing enter on search reloads the page - admin pages ([#17663](https://github.com/RocketChat/Rocket.Chat/pull/17663)) -- Regression: Click to join button not working ([#17705](https://github.com/RocketChat/Rocket.Chat/pull/17705)) +- Improve: New PR Template ([#16968](https://github.com/RocketChat/Rocket.Chat/pull/16968) by [@regalstreak](https://github.com/regalstreak)) -- Regression: Do not show custom status inside sequential messages ([#17613](https://github.com/RocketChat/Rocket.Chat/pull/17613)) +- Add engine versions for houston with templates ([#17403](https://github.com/RocketChat/Rocket.Chat/pull/17403)) -- Regression: Fix Avatar Url Provider when CDN_PREFIX_ALL is false ([#17542](https://github.com/RocketChat/Rocket.Chat/pull/17542)) +- Use Users.findOneByAppId instead of querying directly ([#16480](https://github.com/RocketChat/Rocket.Chat/pull/16480)) -- Regression: Fix error preventing creation of group DMs ([#17726](https://github.com/RocketChat/Rocket.Chat/pull/17726)) +- Remove unnecessary setting redefinition ([#17587](https://github.com/RocketChat/Rocket.Chat/pull/17587)) -- Regression: Fix incorrect imports of the Apps-Engine ([#17695](https://github.com/RocketChat/Rocket.Chat/pull/17695)) +- Deprecate compatibility cordova setting ([#17586](https://github.com/RocketChat/Rocket.Chat/pull/17586)) -- Regression: Fix Unread bar design ([#17750](https://github.com/RocketChat/Rocket.Chat/pull/17750) by [@dudizilla](https://github.com/dudizilla)) +- Livechat iframe allow microphone and camera ([#9956](https://github.com/RocketChat/Rocket.Chat/pull/9956) by [@kolorafa](https://github.com/kolorafa)) -- Regression: Force unread-rooms bar to appears over the room list ([#17728](https://github.com/RocketChat/Rocket.Chat/pull/17728)) +- Regression: Do not show custom status inside sequential messages ([#17613](https://github.com/RocketChat/Rocket.Chat/pull/17613)) -- Regression: Integrations edit/history crashing ([#17702](https://github.com/RocketChat/Rocket.Chat/pull/17702)) +- Regression: Override via env for string settings not working ([#17576](https://github.com/RocketChat/Rocket.Chat/pull/17576)) -- Regression: Outgoing List ([#17667](https://github.com/RocketChat/Rocket.Chat/pull/17667)) +- Add some missing metadata information ([#17524](https://github.com/RocketChat/Rocket.Chat/pull/17524)) -- Regression: Override via env for string settings not working ([#17576](https://github.com/RocketChat/Rocket.Chat/pull/17576)) +- Bump jquery from 3.3.1 to 3.5.0 ([#17486](https://github.com/RocketChat/Rocket.Chat/pull/17486) by [@dependabot[bot]](https://github.com/dependabot[bot])) -- Regression: Pressing enter on search reloads the page - admin pages ([#17663](https://github.com/RocketChat/Rocket.Chat/pull/17663)) +- DPlatform is deprecated and the replacement does not support rocket.chat ([#17040](https://github.com/RocketChat/Rocket.Chat/pull/17040) by [@ryjones](https://github.com/ryjones)) - Regression: RegExp callbacks of settings were not being called ([#17552](https://github.com/RocketChat/Rocket.Chat/pull/17552)) -- Regression: Removed status border on mentions list ([#17741](https://github.com/RocketChat/Rocket.Chat/pull/17741)) +- Meteor update to version 1.10.2 ([#17533](https://github.com/RocketChat/Rocket.Chat/pull/17533)) -- Regression: Scroll on admin user info ([#17711](https://github.com/RocketChat/Rocket.Chat/pull/17711)) +- Regression: Fix Avatar Url Provider when CDN_PREFIX_ALL is false ([#17542](https://github.com/RocketChat/Rocket.Chat/pull/17542)) -- Regression: Set retryWrites=false as default Mongo options ([#17683](https://github.com/RocketChat/Rocket.Chat/pull/17683)) +- LingoHub based on develop ([#17520](https://github.com/RocketChat/Rocket.Chat/pull/17520)) -- Regression: Status presence color ([#17707](https://github.com/RocketChat/Rocket.Chat/pull/17707)) +- RegExp improvements suggested by LGTM ([#17500](https://github.com/RocketChat/Rocket.Chat/pull/17500)) -- Regression: status-color-online ([#17684](https://github.com/RocketChat/Rocket.Chat/pull/17684)) +- Merge master into develop & Set version to 3.3.0-develop ([#17468](https://github.com/RocketChat/Rocket.Chat/pull/17468)) - Regression: Threads list was fetching all threads ([#17716](https://github.com/RocketChat/Rocket.Chat/pull/17716)) -- Regression: User edit form missing fields ([#17699](https://github.com/RocketChat/Rocket.Chat/pull/17699)) - -- Release 3.2.2 ([#17600](https://github.com/RocketChat/Rocket.Chat/pull/17600)) +- Regression: Add missing return to afterSaveMessage callbacks ([#17715](https://github.com/RocketChat/Rocket.Chat/pull/17715)) -- Remove unnecessary setting redefinition ([#17587](https://github.com/RocketChat/Rocket.Chat/pull/17587)) +- Regression: Fix error preventing creation of group DMs ([#17726](https://github.com/RocketChat/Rocket.Chat/pull/17726)) -- Update Apps-Engine version ([#17706](https://github.com/RocketChat/Rocket.Chat/pull/17706)) +- Regression: Scroll on admin user info ([#17711](https://github.com/RocketChat/Rocket.Chat/pull/17711)) -- Update Contributing Guide ([#17653](https://github.com/RocketChat/Rocket.Chat/pull/17653)) +- Regression: Removed status border on mentions list ([#17741](https://github.com/RocketChat/Rocket.Chat/pull/17741) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Update Fuselage version ([#17708](https://github.com/RocketChat/Rocket.Chat/pull/17708)) +- Regression: Force unread-rooms bar to appears over the room list ([#17728](https://github.com/RocketChat/Rocket.Chat/pull/17728) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Upgrade Livechat Widget version to 1.5.0 ([#17710](https://github.com/RocketChat/Rocket.Chat/pull/17710)) +- Regression: Fix Unread bar design ([#17750](https://github.com/RocketChat/Rocket.Chat/pull/17750) by [@dudizilla](https://github.com/dudizilla)) -- Use Users.findOneByAppId instead of querying directly ([#16480](https://github.com/RocketChat/Rocket.Chat/pull/16480)) +- Regression: Adjusting spaces between OAuth login buttons ([#17745](https://github.com/RocketChat/Rocket.Chat/pull/17745) by [@dudizilla](https://github.com/dudizilla))
### 👩‍💻👨‍💻 Contributors 😍 +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Nikhil713](https://github.com/Nikhil713) - [@TaimurAzhar](https://github.com/TaimurAzhar) - [@dependabot[bot]](https://github.com/dependabot[bot]) @@ -818,6 +1096,8 @@ - [@kolorafa](https://github.com/kolorafa) - [@lpilz](https://github.com/lpilz) - [@machester4](https://github.com/machester4) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) +- [@mtmr0x](https://github.com/mtmr0x) - [@ocanema](https://github.com/ocanema) - [@qwertiko](https://github.com/qwertiko) - [@regalstreak](https://github.com/regalstreak) @@ -830,7 +1110,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@ashwaniYDV](https://github.com/ashwaniYDV) - [@d-gubert](https://github.com/d-gubert) @@ -840,8 +1119,6 @@ - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@lolimay](https://github.com/lolimay) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) -- [@mtmr0x](https://github.com/mtmr0x) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -860,17 +1137,17 @@ ### 🐛 Bug fixes -- Email configs not updating after setting changes ([#17578](https://github.com/RocketChat/Rocket.Chat/pull/17578)) - -- Emoji picker search broken ([#17570](https://github.com/RocketChat/Rocket.Chat/pull/17570)) - -- Error during data export for DMs ([#17577](https://github.com/RocketChat/Rocket.Chat/pull/17577)) +- Push settings enabled when push gateway is selected ([#17582](https://github.com/RocketChat/Rocket.Chat/pull/17582)) - LDAP login on Enteprise Version ([#17508](https://github.com/RocketChat/Rocket.Chat/pull/17508)) - Login Forbidden on servers that had LDAP enabled in the past ([#17579](https://github.com/RocketChat/Rocket.Chat/pull/17579)) -- Push settings enabled when push gateway is selected ([#17582](https://github.com/RocketChat/Rocket.Chat/pull/17582)) +- Email configs not updating after setting changes ([#17578](https://github.com/RocketChat/Rocket.Chat/pull/17578)) + +- Error during data export for DMs ([#17577](https://github.com/RocketChat/Rocket.Chat/pull/17577) by [@mtmr0x](https://github.com/mtmr0x)) + +- Emoji picker search broken ([#17570](https://github.com/RocketChat/Rocket.Chat/pull/17570)) - Reactions may present empty names of who reacted when using Real Names ([#17536](https://github.com/RocketChat/Rocket.Chat/pull/17536)) @@ -880,15 +1157,18 @@ 🔍 Minor changes -- Release 3.2.2 ([#17600](https://github.com/RocketChat/Rocket.Chat/pull/17600)) +- Release 3.2.2 ([#17600](https://github.com/RocketChat/Rocket.Chat/pull/17600) by [@mtmr0x](https://github.com/mtmr0x)) +### 👩‍💻👨‍💻 Contributors 😍 + +- [@mtmr0x](https://github.com/mtmr0x) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) -- [@mtmr0x](https://github.com/mtmr0x) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -930,27 +1210,17 @@ ### 🎉 New features -- **ENTERPRISE:** Allows to set a group of departments accepted for forwarding chats ([#17335](https://github.com/RocketChat/Rocket.Chat/pull/17335)) - -- **ENTERPRISE:** Auto close abandoned Omnichannel rooms ([#17055](https://github.com/RocketChat/Rocket.Chat/pull/17055)) - -- **ENTERPRISE:** Omnichannel queue priorities ([#17141](https://github.com/RocketChat/Rocket.Chat/pull/17141)) - - **ENTERPRISE:** Restrict the permissions configuration for guest users ([#17333](https://github.com/RocketChat/Rocket.Chat/pull/17333)) The **Guest** role is blocked for edition on the EE version. This will allow the EE customers to receive licenses with extra seats for Guests for free. The CE version continues to have the Guest role configurable. -- Add ability to set tags in the Omnichannel room closing dialog ([#17254](https://github.com/RocketChat/Rocket.Chat/pull/17254)) - -- Add Color variable to left sidebar ([#16806](https://github.com/RocketChat/Rocket.Chat/pull/16806)) - -- Add MMS support to Voxtelesys ([#17217](https://github.com/RocketChat/Rocket.Chat/pull/17217) by [@john08burke](https://github.com/john08burke)) +- **ENTERPRISE:** Omnichannel queue priorities ([#17141](https://github.com/RocketChat/Rocket.Chat/pull/17141) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Adds ability for Rocket.Chat Apps to create discussions ([#16683](https://github.com/RocketChat/Rocket.Chat/pull/16683)) +- **ENTERPRISE:** Allows to set a group of departments accepted for forwarding chats ([#17335](https://github.com/RocketChat/Rocket.Chat/pull/17335) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Allow to send Agent custom fields through the Omnichannel CRM integration ([#16286](https://github.com/RocketChat/Rocket.Chat/pull/16286)) +- **ENTERPRISE:** Auto close abandoned Omnichannel rooms ([#17055](https://github.com/RocketChat/Rocket.Chat/pull/17055) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Allow to set a comment when forwarding Omnichannel chats ([#17353](https://github.com/RocketChat/Rocket.Chat/pull/17353)) +- Federation event for when users left rooms ([#17091](https://github.com/RocketChat/Rocket.Chat/pull/17091)) - Better Push and Email Notification logic ([#17357](https://github.com/RocketChat/Rocket.Chat/pull/17357)) @@ -964,157 +1234,167 @@ - All the scheduled notifications for that user are rescheduled to now - The current notification goes back to the queue to be processed ordered by creation date -- Buttons to check/uncheck all users and channels on import ([#17207](https://github.com/RocketChat/Rocket.Chat/pull/17207)) +- Error page when browser is not supported ([#17372](https://github.com/RocketChat/Rocket.Chat/pull/17372)) -- Default favorite channels ([#16025](https://github.com/RocketChat/Rocket.Chat/pull/16025)) +- Add ability to set tags in the Omnichannel room closing dialog ([#17254](https://github.com/RocketChat/Rocket.Chat/pull/17254)) -- Enable the IDP to choose the best authnContext ([#17222](https://github.com/RocketChat/Rocket.Chat/pull/17222) by [@felipecrp](https://github.com/felipecrp)) +- Allow to send Agent custom fields through the Omnichannel CRM integration ([#16286](https://github.com/RocketChat/Rocket.Chat/pull/16286)) -- Error page when browser is not supported ([#17372](https://github.com/RocketChat/Rocket.Chat/pull/17372)) +- Make the header for rooms clickable ([#16762](https://github.com/RocketChat/Rocket.Chat/pull/16762) by [@aKn1ghtOut](https://github.com/aKn1ghtOut)) + +- Allow to set a comment when forwarding Omnichannel chats ([#17353](https://github.com/RocketChat/Rocket.Chat/pull/17353)) + +- Adds ability for Rocket.Chat Apps to create discussions ([#16683](https://github.com/RocketChat/Rocket.Chat/pull/16683)) - Feature/custom oauth mail field and interpolation for mapped fields ([#15690](https://github.com/RocketChat/Rocket.Chat/pull/15690) by [@benkroeger](https://github.com/benkroeger)) -- Federation event for when users left rooms ([#17091](https://github.com/RocketChat/Rocket.Chat/pull/17091)) +- Add MMS support to Voxtelesys ([#17217](https://github.com/RocketChat/Rocket.Chat/pull/17217) by [@john08burke](https://github.com/john08burke)) -- Make the header for rooms clickable ([#16762](https://github.com/RocketChat/Rocket.Chat/pull/16762) by [@aKn1ghtOut](https://github.com/aKn1ghtOut)) +- Default favorite channels ([#16025](https://github.com/RocketChat/Rocket.Chat/pull/16025)) + +- Enable the IDP to choose the best authnContext ([#17222](https://github.com/RocketChat/Rocket.Chat/pull/17222) by [@felipecrp](https://github.com/felipecrp)) - Support importing Slack threads ([#17130](https://github.com/RocketChat/Rocket.Chat/pull/17130) by [@lpilz](https://github.com/lpilz)) +- Add Color variable to left sidebar ([#16806](https://github.com/RocketChat/Rocket.Chat/pull/16806)) + +- Buttons to check/uncheck all users and channels on import ([#17207](https://github.com/RocketChat/Rocket.Chat/pull/17207)) + ### 🚀 Improvements -- Add `file-title` and `file-desc` as new filter tag options on message search ([#16858](https://github.com/RocketChat/Rocket.Chat/pull/16858) by [@subham103](https://github.com/subham103)) +- Change the SAML metadata order to conform to XSD specification ([#15488](https://github.com/RocketChat/Rocket.Chat/pull/15488) by [@fcrespo82](https://github.com/fcrespo82)) -- Add possibility to sort the Omnichannel current chats list by column ([#17347](https://github.com/RocketChat/Rocket.Chat/pull/17347)) +- Filter markdown in notifications ([#9995](https://github.com/RocketChat/Rocket.Chat/pull/9995) by [@c0dzilla](https://github.com/c0dzilla)) -- Administration -> Mailer Rewrite. ([#17191](https://github.com/RocketChat/Rocket.Chat/pull/17191)) +- User gets UI feedback when message is pinned or unpinned ([#16056](https://github.com/RocketChat/Rocket.Chat/pull/16056)) -- Administration Pages root rewritten ([#17209](https://github.com/RocketChat/Rocket.Chat/pull/17209)) +- Add `file-title` and `file-desc` as new filter tag options on message search ([#16858](https://github.com/RocketChat/Rocket.Chat/pull/16858) by [@subham103](https://github.com/subham103)) -- Change the SAML metadata order to conform to XSD specification ([#15488](https://github.com/RocketChat/Rocket.Chat/pull/15488) by [@fcrespo82](https://github.com/fcrespo82)) +- Add possibility to sort the Omnichannel current chats list by column ([#17347](https://github.com/RocketChat/Rocket.Chat/pull/17347) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Filter markdown in notifications ([#9995](https://github.com/RocketChat/Rocket.Chat/pull/9995) by [@c0dzilla](https://github.com/c0dzilla)) +- Redesign Administration > Import ([#17289](https://github.com/RocketChat/Rocket.Chat/pull/17289)) -- Increase decoupling between React components and Blaze templates ([#16642](https://github.com/RocketChat/Rocket.Chat/pull/16642)) +- Administration -> Mailer Rewrite. ([#17191](https://github.com/RocketChat/Rocket.Chat/pull/17191)) - Move CSS imports to `/app` modules ([#17261](https://github.com/RocketChat/Rocket.Chat/pull/17261)) -- Redesign Administration > Import ([#17289](https://github.com/RocketChat/Rocket.Chat/pull/17289)) +- Administration Pages root rewritten ([#17209](https://github.com/RocketChat/Rocket.Chat/pull/17209)) -- User gets UI feedback when message is pinned or unpinned ([#16056](https://github.com/RocketChat/Rocket.Chat/pull/16056)) +- Increase decoupling between React components and Blaze templates ([#16642](https://github.com/RocketChat/Rocket.Chat/pull/16642)) ### 🐛 Bug fixes -- "Invalid Invite" message when registration is disabled ([#17226](https://github.com/RocketChat/Rocket.Chat/pull/17226)) +- CSV Importer fails when there are no users to import ([#16790](https://github.com/RocketChat/Rocket.Chat/pull/16790)) -- 2FA not showing codes for Spanish translation ([#17378](https://github.com/RocketChat/Rocket.Chat/pull/17378) by [@RavenSystem](https://github.com/RavenSystem)) +- Import slack's multiple direct messages as direct rooms instead of private groups ([#17206](https://github.com/RocketChat/Rocket.Chat/pull/17206)) -- 404 error when clicking an username ([#17275](https://github.com/RocketChat/Rocket.Chat/pull/17275)) +- SAML Idp Initiated Logout Error ([#17324](https://github.com/RocketChat/Rocket.Chat/pull/17324)) -- Admin panel custom sounds, multiple sound playback fix and added single play/pause button ([#16215](https://github.com/RocketChat/Rocket.Chat/pull/16215)) +- Show active admin and user account menu item ([#17047](https://github.com/RocketChat/Rocket.Chat/pull/17047) by [@hullen](https://github.com/hullen)) + +- Prevent user from getting stuck on login, if there is some bad fname ([#17331](https://github.com/RocketChat/Rocket.Chat/pull/17331)) + +- Remove properties from users.info response ([#17238](https://github.com/RocketChat/Rocket.Chat/pull/17238) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Spotify embed and collapsed ([#17356](https://github.com/RocketChat/Rocket.Chat/pull/17356) by [@ffauvel](https://github.com/ffauvel)) - Allow Screensharing in BBB Iframe ([#17290](https://github.com/RocketChat/Rocket.Chat/pull/17290) by [@wolbernd](https://github.com/wolbernd)) -- Avatar on sidebar when showing real names ([#17286](https://github.com/RocketChat/Rocket.Chat/pull/17286)) +- "Invalid Invite" message when registration is disabled ([#17226](https://github.com/RocketChat/Rocket.Chat/pull/17226)) -- Can not save Unread Tray Icon Alert user preference ([#16313](https://github.com/RocketChat/Rocket.Chat/pull/16313) by [@taiju271](https://github.com/taiju271)) +- Red color error outline is not removed after password update on profile details ([#16536](https://github.com/RocketChat/Rocket.Chat/pull/16536)) - Change wording to start DM from info panel ([#8799](https://github.com/RocketChat/Rocket.Chat/pull/8799)) -- CSV Importer fails when there are no users to import ([#16790](https://github.com/RocketChat/Rocket.Chat/pull/16790)) +- SAML assertion signature enforcement ([#17278](https://github.com/RocketChat/Rocket.Chat/pull/17278)) -- Directory default tab ([#17283](https://github.com/RocketChat/Rocket.Chat/pull/17283)) +- LDAP users lose session on refresh ([#17302](https://github.com/RocketChat/Rocket.Chat/pull/17302)) -- Discussions created from inside DMs were not working and some errors accessing recently created rooms ([#17282](https://github.com/RocketChat/Rocket.Chat/pull/17282)) +- Popover component doesn't have scroll ([#17198](https://github.com/RocketChat/Rocket.Chat/pull/17198) by [@Nikhil713](https://github.com/Nikhil713)) -- Email not verified message ([#16236](https://github.com/RocketChat/Rocket.Chat/pull/16236)) +- Omnichannel SMS / WhatsApp integration errors due to missing location data ([#17288](https://github.com/RocketChat/Rocket.Chat/pull/17288)) -- Fixed email sort button in directory -> users ([#16606](https://github.com/RocketChat/Rocket.Chat/pull/16606)) +- User search on directory not working correctly ([#17299](https://github.com/RocketChat/Rocket.Chat/pull/17299)) -- Global event click-message-link not fired ([#16771](https://github.com/RocketChat/Rocket.Chat/pull/16771)) +- Can not save Unread Tray Icon Alert user preference ([#16313](https://github.com/RocketChat/Rocket.Chat/pull/16313) by [@taiju271](https://github.com/taiju271)) -- Import slack's multiple direct messages as direct rooms instead of private groups ([#17206](https://github.com/RocketChat/Rocket.Chat/pull/17206)) +- Variable rendering problem on Import recent history page ([#15997](https://github.com/RocketChat/Rocket.Chat/pull/15997) by [@ritwizsinha](https://github.com/ritwizsinha)) -- In Create a New Channel, input should be focused on channel name instead of invite users ([#16405](https://github.com/RocketChat/Rocket.Chat/pull/16405)) +- Admin panel custom sounds, multiple sound playback fix and added single play/pause button ([#16215](https://github.com/RocketChat/Rocket.Chat/pull/16215)) -- LDAP users lose session on refresh ([#17302](https://github.com/RocketChat/Rocket.Chat/pull/17302)) +- Discussions created from inside DMs were not working and some errors accessing recently created rooms ([#17282](https://github.com/RocketChat/Rocket.Chat/pull/17282)) -- No maxlength(120) defined for custom user status ([#16534](https://github.com/RocketChat/Rocket.Chat/pull/16534)) +- Translation for nl ([#16742](https://github.com/RocketChat/Rocket.Chat/pull/16742) by [@CC007](https://github.com/CC007)) -- Omnichannel SMS / WhatsApp integration errors due to missing location data ([#17288](https://github.com/RocketChat/Rocket.Chat/pull/17288)) +- No maxlength(120) defined for custom user status ([#16534](https://github.com/RocketChat/Rocket.Chat/pull/16534)) -- Popover component doesn't have scroll ([#17198](https://github.com/RocketChat/Rocket.Chat/pull/17198) by [@Nikhil713](https://github.com/Nikhil713)) +- Fixed email sort button in directory -> users ([#16606](https://github.com/RocketChat/Rocket.Chat/pull/16606)) -- Prevent user from getting stuck on login, if there is some bad fname ([#17331](https://github.com/RocketChat/Rocket.Chat/pull/17331)) +- In Create a New Channel, input should be focused on channel name instead of invite users ([#16405](https://github.com/RocketChat/Rocket.Chat/pull/16405)) -- Red color error outline is not removed after password update on profile details ([#16536](https://github.com/RocketChat/Rocket.Chat/pull/16536)) +- Email not verified message ([#16236](https://github.com/RocketChat/Rocket.Chat/pull/16236)) -- Remove properties from users.info response ([#17238](https://github.com/RocketChat/Rocket.Chat/pull/17238)) +- Directory default tab ([#17283](https://github.com/RocketChat/Rocket.Chat/pull/17283)) -- SAML assertion signature enforcement ([#17278](https://github.com/RocketChat/Rocket.Chat/pull/17278)) +- Update ru.i18n.json ([#16869](https://github.com/RocketChat/Rocket.Chat/pull/16869) by [@1rV1N-git](https://github.com/1rV1N-git)) -- SAML Idp Initiated Logout Error ([#17324](https://github.com/RocketChat/Rocket.Chat/pull/17324)) +- Avatar on sidebar when showing real names ([#17286](https://github.com/RocketChat/Rocket.Chat/pull/17286)) -- Search valid for emoji with dual name ([#16887](https://github.com/RocketChat/Rocket.Chat/pull/16887) by [@subham103](https://github.com/subham103)) +- 404 error when clicking an username ([#17275](https://github.com/RocketChat/Rocket.Chat/pull/17275)) -- Show active admin and user account menu item ([#17047](https://github.com/RocketChat/Rocket.Chat/pull/17047) by [@hullen](https://github.com/hullen)) +- Global event click-message-link not fired ([#16771](https://github.com/RocketChat/Rocket.Chat/pull/16771)) -- Spotify embed and collapsed ([#17356](https://github.com/RocketChat/Rocket.Chat/pull/17356) by [@ffauvel](https://github.com/ffauvel)) +- Search valid for emoji with dual name ([#16887](https://github.com/RocketChat/Rocket.Chat/pull/16887) by [@subham103](https://github.com/subham103)) - Threads: Hide Usernames hides Full names. ([#16959](https://github.com/RocketChat/Rocket.Chat/pull/16959)) -- Translation for nl ([#16742](https://github.com/RocketChat/Rocket.Chat/pull/16742) by [@CC007](https://github.com/CC007)) - - Unsafe React portals mount/unmount ([#17265](https://github.com/RocketChat/Rocket.Chat/pull/17265)) -- Update ru.i18n.json ([#16869](https://github.com/RocketChat/Rocket.Chat/pull/16869) by [@1rV1N-git](https://github.com/1rV1N-git)) - -- User search on directory not working correctly ([#17299](https://github.com/RocketChat/Rocket.Chat/pull/17299)) - -- Variable rendering problem on Import recent history page ([#15997](https://github.com/RocketChat/Rocket.Chat/pull/15997) by [@ritwizsinha](https://github.com/ritwizsinha)) +- 2FA not showing codes for Spanish translation ([#17378](https://github.com/RocketChat/Rocket.Chat/pull/17378) by [@RavenSystem](https://github.com/RavenSystem))
🔍 Minor changes -- [CHORE] Move polyfills to client/ ([#17266](https://github.com/RocketChat/Rocket.Chat/pull/17266)) - -- Apply $and helper to message template ([#17280](https://github.com/RocketChat/Rocket.Chat/pull/17280)) - -- Bump https-proxy-agent from 2.2.1 to 2.2.4 ([#17323](https://github.com/RocketChat/Rocket.Chat/pull/17323) by [@dependabot[bot]](https://github.com/dependabot[bot])) - -- Complement Guest role restrictions for Enterprise ([#17393](https://github.com/RocketChat/Rocket.Chat/pull/17393)) +- Release 3.1.2 ([#17454](https://github.com/RocketChat/Rocket.Chat/pull/17454) by [@fastrde](https://github.com/fastrde)) -- Fix moving-to-a-single-codebase link in README ([#17297](https://github.com/RocketChat/Rocket.Chat/pull/17297) by [@Krinkle](https://github.com/Krinkle)) +- Remove set as alias setting ([#16343](https://github.com/RocketChat/Rocket.Chat/pull/16343)) - Improve: Better Push Notification code ([#17338](https://github.com/RocketChat/Rocket.Chat/pull/17338)) - LingoHub based on develop ([#17365](https://github.com/RocketChat/Rocket.Chat/pull/17365)) -- LingoHub based on develop ([#17274](https://github.com/RocketChat/Rocket.Chat/pull/17274)) +- Regression: Import data pagination ([#17355](https://github.com/RocketChat/Rocket.Chat/pull/17355)) + +- Bump https-proxy-agent from 2.2.1 to 2.2.4 ([#17323](https://github.com/RocketChat/Rocket.Chat/pull/17323) by [@dependabot[bot]](https://github.com/dependabot[bot])) - Mailer Scrollbar ([#17322](https://github.com/RocketChat/Rocket.Chat/pull/17322)) -- Merge master into develop & Set version to 3.2.0-develop ([#17241](https://github.com/RocketChat/Rocket.Chat/pull/17241) by [@1rV1N-git](https://github.com/1rV1N-git)) +- Regression: Storybook ([#17321](https://github.com/RocketChat/Rocket.Chat/pull/17321)) - New hooks for RouterContext ([#17305](https://github.com/RocketChat/Rocket.Chat/pull/17305)) -- Regression: Import data pagination ([#17355](https://github.com/RocketChat/Rocket.Chat/pull/17355)) +- Update Apps-Engine to stable version ([#17287](https://github.com/RocketChat/Rocket.Chat/pull/17287)) -- Regression: Storybook ([#17321](https://github.com/RocketChat/Rocket.Chat/pull/17321)) +- Static props for Administration route components ([#17285](https://github.com/RocketChat/Rocket.Chat/pull/17285)) -- Release 3.1.2 ([#17454](https://github.com/RocketChat/Rocket.Chat/pull/17454) by [@fastrde](https://github.com/fastrde)) +- Apply $and helper to message template ([#17280](https://github.com/RocketChat/Rocket.Chat/pull/17280)) -- Remove `@typescript-eslint/explicit-function-return-type` rule ([#17428](https://github.com/RocketChat/Rocket.Chat/pull/17428)) +- Upgrade file storage packages ([#17107](https://github.com/RocketChat/Rocket.Chat/pull/17107)) -- Remove set as alias setting ([#16343](https://github.com/RocketChat/Rocket.Chat/pull/16343)) +- LingoHub based on develop ([#17274](https://github.com/RocketChat/Rocket.Chat/pull/17274)) -- Static props for Administration route components ([#17285](https://github.com/RocketChat/Rocket.Chat/pull/17285)) +- [CHORE] Move polyfills to client/ ([#17266](https://github.com/RocketChat/Rocket.Chat/pull/17266)) -- Update Apps-Engine to stable version ([#17287](https://github.com/RocketChat/Rocket.Chat/pull/17287)) +- Merge master into develop & Set version to 3.2.0-develop ([#17241](https://github.com/RocketChat/Rocket.Chat/pull/17241) by [@1rV1N-git](https://github.com/1rV1N-git)) -- Upgrade file storage packages ([#17107](https://github.com/RocketChat/Rocket.Chat/pull/17107)) +- Complement Guest role restrictions for Enterprise ([#17393](https://github.com/RocketChat/Rocket.Chat/pull/17393)) + +- Remove `@typescript-eslint/explicit-function-return-type` rule ([#17428](https://github.com/RocketChat/Rocket.Chat/pull/17428)) + +- Fix moving-to-a-single-codebase link in README ([#17297](https://github.com/RocketChat/Rocket.Chat/pull/17297) by [@Krinkle](https://github.com/Krinkle))
@@ -1123,6 +1403,7 @@ - [@1rV1N-git](https://github.com/1rV1N-git) - [@CC007](https://github.com/CC007) - [@Krinkle](https://github.com/Krinkle) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Nikhil713](https://github.com/Nikhil713) - [@RavenSystem](https://github.com/RavenSystem) - [@aKn1ghtOut](https://github.com/aKn1ghtOut) @@ -1143,7 +1424,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@alansikora](https://github.com/alansikora) - [@ashwaniYDV](https://github.com/ashwaniYDV) @@ -1186,32 +1466,32 @@ ### 🐛 Bug fixes -- Allowing blocking a user on channels ([#17406](https://github.com/RocketChat/Rocket.Chat/pull/17406)) - -- Bot Agents not being able to get Omnichannel Inquiries ([#17404](https://github.com/RocketChat/Rocket.Chat/pull/17404)) +- LDAP error when trying to add room with spaces in the name ([#17453](https://github.com/RocketChat/Rocket.Chat/pull/17453)) - Empty Incoming webhook script field ([#17422](https://github.com/RocketChat/Rocket.Chat/pull/17422)) -- LDAP error when trying to add room with spaces in the name ([#17453](https://github.com/RocketChat/Rocket.Chat/pull/17453)) - - LDAP Sync error ([#17417](https://github.com/RocketChat/Rocket.Chat/pull/17417) by [@fastrde](https://github.com/fastrde)) -- New user added by admin doesn't receive random password email ([#17249](https://github.com/RocketChat/Rocket.Chat/pull/17249)) +- Bot Agents not being able to get Omnichannel Inquiries ([#17404](https://github.com/RocketChat/Rocket.Chat/pull/17404)) -- Omnichannel room info panel opening whenever a message is sent ([#17348](https://github.com/RocketChat/Rocket.Chat/pull/17348)) +- Allowing blocking a user on channels ([#17406](https://github.com/RocketChat/Rocket.Chat/pull/17406)) - Web Client memory leak caused by the Emoji rendering ([#17320](https://github.com/RocketChat/Rocket.Chat/pull/17320)) +- Omnichannel room info panel opening whenever a message is sent ([#17348](https://github.com/RocketChat/Rocket.Chat/pull/17348)) + +- New user added by admin doesn't receive random password email ([#17249](https://github.com/RocketChat/Rocket.Chat/pull/17249)) +
🔍 Minor changes +- Release 3.1.2 ([#17454](https://github.com/RocketChat/Rocket.Chat/pull/17454) by [@fastrde](https://github.com/fastrde)) + - Regression: Add missing cacheKey to mem ([#17430](https://github.com/RocketChat/Rocket.Chat/pull/17430)) - Regression: Fix mem usage with more than one argument ([#17391](https://github.com/RocketChat/Rocket.Chat/pull/17391)) -- Release 3.1.2 ([#17454](https://github.com/RocketChat/Rocket.Chat/pull/17454) by [@fastrde](https://github.com/fastrde)) -
### 👩‍💻👨‍💻 Contributors 😍 @@ -1236,6 +1516,10 @@ ### 🐛 Bug fixes +- SAML assertion signature enforcement ([#17278](https://github.com/RocketChat/Rocket.Chat/pull/17278)) + +- User search on directory not working correctly ([#17299](https://github.com/RocketChat/Rocket.Chat/pull/17299)) + - 404 error when clicking an username ([#17275](https://github.com/RocketChat/Rocket.Chat/pull/17275)) - Avatar on sidebar when showing real names ([#17286](https://github.com/RocketChat/Rocket.Chat/pull/17286)) @@ -1244,13 +1528,9 @@ - Discussions created from inside DMs were not working and some errors accessing recently created rooms ([#17282](https://github.com/RocketChat/Rocket.Chat/pull/17282)) -- LDAP users lose session on refresh ([#17302](https://github.com/RocketChat/Rocket.Chat/pull/17302)) - - Omnichannel SMS / WhatsApp integration errors due to missing location data ([#17288](https://github.com/RocketChat/Rocket.Chat/pull/17288)) -- SAML assertion signature enforcement ([#17278](https://github.com/RocketChat/Rocket.Chat/pull/17278)) - -- User search on directory not working correctly ([#17299](https://github.com/RocketChat/Rocket.Chat/pull/17299)) +- LDAP users lose session on refresh ([#17302](https://github.com/RocketChat/Rocket.Chat/pull/17302))
🔍 Minor changes @@ -1280,426 +1560,426 @@ ### 🎉 New features -- **ENTERPRISE:** Engagement Dashboard ([#16960](https://github.com/RocketChat/Rocket.Chat/pull/16960)) +- **ENTERPRISE:** Engagement Dashboard ([#16960](https://github.com/RocketChat/Rocket.Chat/pull/16960) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add default chat closing tags in Omnichannel departments ([#16859](https://github.com/RocketChat/Rocket.Chat/pull/16859)) - -- Add omnichannel external frame feature ([#17038](https://github.com/RocketChat/Rocket.Chat/pull/17038)) +- Sort channel directory listing by latest message ([#16604](https://github.com/RocketChat/Rocket.Chat/pull/16604) by [@subham103](https://github.com/subham103)) -- Add update method for user bridge ([#17077](https://github.com/RocketChat/Rocket.Chat/pull/17077)) +- Direct message between multiple users ([#16761](https://github.com/RocketChat/Rocket.Chat/pull/16761)) -- Allow to set default department and location sharing on SMS / WhatsApp integration ([#16557](https://github.com/RocketChat/Rocket.Chat/pull/16557)) +- Synchronize saml roles to local user (#16152) ([#16158](https://github.com/RocketChat/Rocket.Chat/pull/16158) by [@col-panic](https://github.com/col-panic)) -- API `users.deactivateIdle` for mass-disabling of idle users ([#16849](https://github.com/RocketChat/Rocket.Chat/pull/16849)) +- Route to get updated roles after a date ([#16610](https://github.com/RocketChat/Rocket.Chat/pull/16610) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- API `users.logoutOtherClient` to logout from other locations ([#16193](https://github.com/RocketChat/Rocket.Chat/pull/16193) by [@jschirrmacher](https://github.com/jschirrmacher)) +- Enterprise Edition ([#16944](https://github.com/RocketChat/Rocket.Chat/pull/16944)) -- Direct message between multiple users ([#16761](https://github.com/RocketChat/Rocket.Chat/pull/16761)) +- Settings to enable E2E encryption for Private and Direct Rooms by default ([#16928](https://github.com/RocketChat/Rocket.Chat/pull/16928)) -- Directory page refactored, new user's bio field ([#17043](https://github.com/RocketChat/Rocket.Chat/pull/17043)) +- Experimental Game Center (externalComponents implementation) ([#15123](https://github.com/RocketChat/Rocket.Chat/pull/15123)) -- Enterprise Edition ([#16944](https://github.com/RocketChat/Rocket.Chat/pull/16944)) +- Add default chat closing tags in Omnichannel departments ([#16859](https://github.com/RocketChat/Rocket.Chat/pull/16859)) -- Experimental Game Center (externalComponents implementation) ([#15123](https://github.com/RocketChat/Rocket.Chat/pull/15123)) +- Allow to set default department and location sharing on SMS / WhatsApp integration ([#16557](https://github.com/RocketChat/Rocket.Chat/pull/16557)) -- Home button on sidebar ([#17052](https://github.com/RocketChat/Rocket.Chat/pull/17052)) +- Two Factor authentication via email ([#15949](https://github.com/RocketChat/Rocket.Chat/pull/15949)) -- Merge Sort List and View Mode menus and improve its UI/UX ([#17103](https://github.com/RocketChat/Rocket.Chat/pull/17103)) +- Translation via MS translate ([#16363](https://github.com/RocketChat/Rocket.Chat/pull/16363) by [@mrsimpson](https://github.com/mrsimpson)) - ![image](https://user-images.githubusercontent.com/5263975/78036622-e8db2a80-7340-11ea-91d0-65728eabdcb6.png) + Adds Microsoft's translation service (https://translator.microsoft.com/) as a provider for translation of messages. + In addition to implementing the interface (similar to google and DeepL), a small change has been done in order to display the translation provider on the UI. -- Open the Visitor Info panel automatically when the agent enters an Omnichannel room ([#16496](https://github.com/RocketChat/Rocket.Chat/pull/16496)) +- API `users.deactivateIdle` for mass-disabling of idle users ([#16849](https://github.com/RocketChat/Rocket.Chat/pull/16849)) -- Route to get updated roles after a date ([#16610](https://github.com/RocketChat/Rocket.Chat/pull/16610)) +- API `users.logoutOtherClient` to logout from other locations ([#16193](https://github.com/RocketChat/Rocket.Chat/pull/16193) by [@jschirrmacher](https://github.com/jschirrmacher)) - SAML config to allow clock drift ([#16751](https://github.com/RocketChat/Rocket.Chat/pull/16751) by [@localguru](https://github.com/localguru)) +- Update Meteor to 1.9.2 and Node to 12.16.1 ([#16718](https://github.com/RocketChat/Rocket.Chat/pull/16718)) + - Save default filters in the Omnichannel Current Chats list ([#16653](https://github.com/RocketChat/Rocket.Chat/pull/16653)) -- Settings to enable E2E encryption for Private and Direct Rooms by default ([#16928](https://github.com/RocketChat/Rocket.Chat/pull/16928)) +- Open the Visitor Info panel automatically when the agent enters an Omnichannel room ([#16496](https://github.com/RocketChat/Rocket.Chat/pull/16496)) -- Sort channel directory listing by latest message ([#16604](https://github.com/RocketChat/Rocket.Chat/pull/16604) by [@subham103](https://github.com/subham103)) +- Add update method for user bridge ([#17077](https://github.com/RocketChat/Rocket.Chat/pull/17077)) -- Synchronize saml roles to local user (#16152) ([#16158](https://github.com/RocketChat/Rocket.Chat/pull/16158) by [@col-panic](https://github.com/col-panic)) +- Home button on sidebar ([#17052](https://github.com/RocketChat/Rocket.Chat/pull/17052)) -- Translation via MS translate ([#16363](https://github.com/RocketChat/Rocket.Chat/pull/16363) by [@mrsimpson](https://github.com/mrsimpson)) +- Directory page refactored, new user's bio field ([#17043](https://github.com/RocketChat/Rocket.Chat/pull/17043)) - Adds Microsoft's translation service (https://translator.microsoft.com/) as a provider for translation of messages. - In addition to implementing the interface (similar to google and DeepL), a small change has been done in order to display the translation provider on the UI. +- Merge Sort List and View Mode menus and improve its UI/UX ([#17103](https://github.com/RocketChat/Rocket.Chat/pull/17103)) -- Two Factor authentication via email ([#15949](https://github.com/RocketChat/Rocket.Chat/pull/15949)) + ![image](https://user-images.githubusercontent.com/5263975/78036622-e8db2a80-7340-11ea-91d0-65728eabdcb6.png) -- Update Meteor to 1.9.2 and Node to 12.16.1 ([#16718](https://github.com/RocketChat/Rocket.Chat/pull/16718)) +- Add omnichannel external frame feature ([#17038](https://github.com/RocketChat/Rocket.Chat/pull/17038)) ### 🚀 Improvements -- Ability to change offline message button link on emails notifications ([#16784](https://github.com/RocketChat/Rocket.Chat/pull/16784)) - -- Accept open formarts of text, spreadsheet, presentation for upload by default ([#16502](https://github.com/RocketChat/Rocket.Chat/pull/16502)) - -- Add option to require authentication on user's shield endpoint ([#16845](https://github.com/RocketChat/Rocket.Chat/pull/16845)) - -- Added autofocus to Directory ([#16217](https://github.com/RocketChat/Rocket.Chat/pull/16217)) - -- Added timer in video message recorder ([#16221](https://github.com/RocketChat/Rocket.Chat/pull/16221)) +- Ability to change offline message button link on emails notifications ([#16784](https://github.com/RocketChat/Rocket.Chat/pull/16784) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Allow login of non LDAP users when LDAP is enabled ([#16949](https://github.com/RocketChat/Rocket.Chat/pull/16949)) -- Apps Engine: Reduce some stream calls and remove a find user from the app's status changes ([#17115](https://github.com/RocketChat/Rocket.Chat/pull/17115)) +- Omnichannel aggregations performance improvements ([#16755](https://github.com/RocketChat/Rocket.Chat/pull/16755) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Change sidebar sort mode to activity by default ([#17189](https://github.com/RocketChat/Rocket.Chat/pull/17189)) +- Replace the Department select component by an Autocomplete input in Omnichannel UI ([#16669](https://github.com/RocketChat/Rocket.Chat/pull/16669)) + +- User gets feedback when a message has been starred or unstarred ([#13860](https://github.com/RocketChat/Rocket.Chat/pull/13860) by [@fliptrail](https://github.com/fliptrail)) - Contextual bar autofocus ([#16915](https://github.com/RocketChat/Rocket.Chat/pull/16915)) +- Add option to require authentication on user's shield endpoint ([#16845](https://github.com/RocketChat/Rocket.Chat/pull/16845) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + - Displays `Nothing found` on admin sidebar when search returns nothing ([#16255](https://github.com/RocketChat/Rocket.Chat/pull/16255)) - Fallback content-type as application/octet-stream for FileSystem uploads ([#16776](https://github.com/RocketChat/Rocket.Chat/pull/16776) by [@georgmu](https://github.com/georgmu)) -- First data load from existing data on engagement dashboard ([#17035](https://github.com/RocketChat/Rocket.Chat/pull/17035)) +- Rename client-side term "Livechat" to "Omnichannel" ([#16752](https://github.com/RocketChat/Rocket.Chat/pull/16752)) + +- Accept open formarts of text, spreadsheet, presentation for upload by default ([#16502](https://github.com/RocketChat/Rocket.Chat/pull/16502)) -- Increase the push throughput to prevent queuing ([#17194](https://github.com/RocketChat/Rocket.Chat/pull/17194)) +- Send files over REST API ([#16617](https://github.com/RocketChat/Rocket.Chat/pull/16617)) -- Omnichannel aggregations performance improvements ([#16755](https://github.com/RocketChat/Rocket.Chat/pull/16755)) +- Added autofocus to Directory ([#16217](https://github.com/RocketChat/Rocket.Chat/pull/16217)) -- Removed the 'reply in thread' from thread replies ([#16630](https://github.com/RocketChat/Rocket.Chat/pull/16630) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Added timer in video message recorder ([#16221](https://github.com/RocketChat/Rocket.Chat/pull/16221)) -- Rename client-side term "Livechat" to "Omnichannel" ([#16752](https://github.com/RocketChat/Rocket.Chat/pull/16752)) +- Use `rocket.cat` as default bot If `InternalHubot_Username` is undefined ([#16371](https://github.com/RocketChat/Rocket.Chat/pull/16371)) + +- Removed the 'reply in thread' from thread replies ([#16630](https://github.com/RocketChat/Rocket.Chat/pull/16630) by [@ritwizsinha](https://github.com/ritwizsinha)) - Repeat “Reply In Thread” and “Add Reaction” inside the message actions menu ([#17073](https://github.com/RocketChat/Rocket.Chat/pull/17073)) -- Replace the Department select component by an Autocomplete input in Omnichannel UI ([#16669](https://github.com/RocketChat/Rocket.Chat/pull/16669)) +- Tab Bar actions reorder ([#17072](https://github.com/RocketChat/Rocket.Chat/pull/17072)) -- Send files over REST API ([#16617](https://github.com/RocketChat/Rocket.Chat/pull/16617)) +- Apps Engine: Reduce some stream calls and remove a find user from the app's status changes ([#17115](https://github.com/RocketChat/Rocket.Chat/pull/17115)) -- Tab Bar actions reorder ([#17072](https://github.com/RocketChat/Rocket.Chat/pull/17072)) +- First data load from existing data on engagement dashboard ([#17035](https://github.com/RocketChat/Rocket.Chat/pull/17035) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Use `rocket.cat` as default bot If `InternalHubot_Username` is undefined ([#16371](https://github.com/RocketChat/Rocket.Chat/pull/16371)) +- Increase the push throughput to prevent queuing ([#17194](https://github.com/RocketChat/Rocket.Chat/pull/17194)) -- User gets feedback when a message has been starred or unstarred ([#13860](https://github.com/RocketChat/Rocket.Chat/pull/13860) by [@fliptrail](https://github.com/fliptrail)) +- Change sidebar sort mode to activity by default ([#17189](https://github.com/RocketChat/Rocket.Chat/pull/17189)) ### 🐛 Bug fixes -- "Jump to message" is rendered twice when message is starred. ([#16170](https://github.com/RocketChat/Rocket.Chat/pull/16170)) +- Wrong message count statistics in Admin info page ([#16680](https://github.com/RocketChat/Rocket.Chat/pull/16680) by [@subham103](https://github.com/subham103)) -- `users.setStatus` API was ignoring the user from params when trying to set status of other users ([#16128](https://github.com/RocketChat/Rocket.Chat/pull/16128) by [@rm-yakovenko](https://github.com/rm-yakovenko)) +- Race conditions on/before login ([#16989](https://github.com/RocketChat/Rocket.Chat/pull/16989)) -- Additional scroll when contextual bar is open ([#16667](https://github.com/RocketChat/Rocket.Chat/pull/16667)) +- CAS ignores username attribute map ([#16942](https://github.com/RocketChat/Rocket.Chat/pull/16942) by [@pmayer](https://github.com/pmayer)) -- Admin height if the blue banner is opened ([#16629](https://github.com/RocketChat/Rocket.Chat/pull/16629)) +- Ancestral departments were not updated when an Omnichannel room is forwarded to another department ([#16958](https://github.com/RocketChat/Rocket.Chat/pull/16958)) -- Admins can't sort users by email in directory view ([#15796](https://github.com/RocketChat/Rocket.Chat/pull/15796) by [@sneakson](https://github.com/sneakson)) +- Explicitly set text of confirmation button ([#16138](https://github.com/RocketChat/Rocket.Chat/pull/16138) by [@jschirrmacher](https://github.com/jschirrmacher)) -- Ancestral departments were not updated when an Omnichannel room is forwarded to another department ([#16958](https://github.com/RocketChat/Rocket.Chat/pull/16958)) +- Display user status along with icon ([#16875](https://github.com/RocketChat/Rocket.Chat/pull/16875) by [@Nikhil713](https://github.com/Nikhil713)) -- Block user option inside admin view ([#16626](https://github.com/RocketChat/Rocket.Chat/pull/16626)) +- `users.setStatus` API was ignoring the user from params when trying to set status of other users ([#16128](https://github.com/RocketChat/Rocket.Chat/pull/16128) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@rm-yakovenko](https://github.com/rm-yakovenko)) -- Cannot edit Profile when Full Name is empty and not required ([#16744](https://github.com/RocketChat/Rocket.Chat/pull/16744)) +- Text formatted to remain within button even on screen resize ([#14136](https://github.com/RocketChat/Rocket.Chat/pull/14136) by [@Rodriq](https://github.com/Rodriq)) -- Cannot pin on direct messages ([#16759](https://github.com/RocketChat/Rocket.Chat/pull/16759) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Messages doesn't send to Slack via SlackBridge after renaming channel ([#16565](https://github.com/RocketChat/Rocket.Chat/pull/16565) by [@antkaz](https://github.com/antkaz)) -- Cannot unfollow message from thread's panel ([#16560](https://github.com/RocketChat/Rocket.Chat/pull/16560) by [@subham103](https://github.com/subham103)) +- Remove Reply in DM from Omnichannel rooms ([#16957](https://github.com/RocketChat/Rocket.Chat/pull/16957)) -- CAS ignores username attribute map ([#16942](https://github.com/RocketChat/Rocket.Chat/pull/16942) by [@pmayer](https://github.com/pmayer)) +- Login with LinkedIn not mapping name and picture correctly ([#16955](https://github.com/RocketChat/Rocket.Chat/pull/16955)) -- Check agent status when starting a new conversation with an agent assigned ([#16618](https://github.com/RocketChat/Rocket.Chat/pull/16618)) +- Omnichannel Inquiry names not being updated when the guest name changes ([#16782](https://github.com/RocketChat/Rocket.Chat/pull/16782)) -- Clear unread red line when the ESC key is pressed ([#16668](https://github.com/RocketChat/Rocket.Chat/pull/16668)) +- Keeps the agent in the room after accepting a new Omnichannel request ([#16787](https://github.com/RocketChat/Rocket.Chat/pull/16787)) -- Color setting editing issues ([#16706](https://github.com/RocketChat/Rocket.Chat/pull/16706)) +- Real-time data rendering on Omnichannel room info panel ([#16783](https://github.com/RocketChat/Rocket.Chat/pull/16783)) -- Custom OAuth Bug ([#16811](https://github.com/RocketChat/Rocket.Chat/pull/16811)) +- Show error message if password and confirm password not equal ([#16247](https://github.com/RocketChat/Rocket.Chat/pull/16247)) -- Data converters overriding fields added by apps ([#16639](https://github.com/RocketChat/Rocket.Chat/pull/16639)) +- When trying to quote messages inside threads the quote would be sent to room instead to the thread ([#16925](https://github.com/RocketChat/Rocket.Chat/pull/16925)) -- Deleting messages while searching causes the whole room chat to disappear ([#16568](https://github.com/RocketChat/Rocket.Chat/pull/16568) by [@karimelghazouly](https://github.com/karimelghazouly)) +- Admins can't sort users by email in directory view ([#15796](https://github.com/RocketChat/Rocket.Chat/pull/15796) by [@sneakson](https://github.com/sneakson)) -- Discussions were not inheriting the public status of parent's channel ([#17070](https://github.com/RocketChat/Rocket.Chat/pull/17070)) +- Pinned messages wouldn't collapse ([#16188](https://github.com/RocketChat/Rocket.Chat/pull/16188)) -- Display user status along with icon ([#16875](https://github.com/RocketChat/Rocket.Chat/pull/16875) by [@Nikhil713](https://github.com/Nikhil713)) +- Wrong thread messages display in contextual bar ([#16835](https://github.com/RocketChat/Rocket.Chat/pull/16835) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Emit livechat events to instace only ([#17086](https://github.com/RocketChat/Rocket.Chat/pull/17086)) +- Public channel cannot be accessed via URL when 'Allow Anonymous Read' is active ([#16914](https://github.com/RocketChat/Rocket.Chat/pull/16914)) -- Error when websocket received status update event ([#17089](https://github.com/RocketChat/Rocket.Chat/pull/17089)) +- Custom OAuth Bug ([#16811](https://github.com/RocketChat/Rocket.Chat/pull/16811)) -- Explicitly set text of confirmation button ([#16138](https://github.com/RocketChat/Rocket.Chat/pull/16138) by [@jschirrmacher](https://github.com/jschirrmacher)) +- Integrations page pagination ([#16838](https://github.com/RocketChat/Rocket.Chat/pull/16838)) - Facebook integration missing visitor data after registerGuest ([#16810](https://github.com/RocketChat/Rocket.Chat/pull/16810) by [@antkaz](https://github.com/antkaz)) -- Federation delete room event not being dispatched ([#16861](https://github.com/RocketChat/Rocket.Chat/pull/16861) by [@1rV1N-git](https://github.com/1rV1N-git)) +- Invite links counting users already joined ([#16591](https://github.com/RocketChat/Rocket.Chat/pull/16591) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Federation Event ROOM_ADD_USER not being dispatched ([#16878](https://github.com/RocketChat/Rocket.Chat/pull/16878) by [@1rV1N-git](https://github.com/1rV1N-git)) +- Cannot unfollow message from thread's panel ([#16560](https://github.com/RocketChat/Rocket.Chat/pull/16560) by [@subham103](https://github.com/subham103)) -- File uploads out of threads are not visible in regular message view ([#16416](https://github.com/RocketChat/Rocket.Chat/pull/16416)) +- Remove spaces from i18n placeholders to show Personal access token ([#16724](https://github.com/RocketChat/Rocket.Chat/pull/16724) by [@harakiwi1](https://github.com/harakiwi1)) -- Flextab information is not working when clicking on visitor or agent username in Omnichannel messages ([#16797](https://github.com/RocketChat/Rocket.Chat/pull/16797)) +- Slash command preview: Wrong item being selected, Horizontal scroll ([#16750](https://github.com/RocketChat/Rocket.Chat/pull/16750)) -- ie11 support ([#16682](https://github.com/RocketChat/Rocket.Chat/pull/16682)) +- Cannot pin on direct messages ([#16759](https://github.com/RocketChat/Rocket.Chat/pull/16759) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Integrations page pagination ([#16838](https://github.com/RocketChat/Rocket.Chat/pull/16838)) +- SlackBridge: Get all channels from Slack via REST API ([#16767](https://github.com/RocketChat/Rocket.Chat/pull/16767) by [@antkaz](https://github.com/antkaz)) -- Invite links counting users already joined ([#16591](https://github.com/RocketChat/Rocket.Chat/pull/16591) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Flextab information is not working when clicking on visitor or agent username in Omnichannel messages ([#16797](https://github.com/RocketChat/Rocket.Chat/pull/16797)) -- Keeps the agent in the room after accepting a new Omnichannel request ([#16787](https://github.com/RocketChat/Rocket.Chat/pull/16787)) +- Slackbridge-import command doesn't work ([#16645](https://github.com/RocketChat/Rocket.Chat/pull/16645) by [@antkaz](https://github.com/antkaz)) - Language country has been ignored on translation load ([#16757](https://github.com/RocketChat/Rocket.Chat/pull/16757)) Languages including country variations like `pt-BR` were ignoring the country party because the user's preference has been saved in lowercase `pt-br` causing the language to not match the available languages. Now we enforce the uppercase of the country part when loading the language. -- LDAP sync admin action was not syncing existent users ([#16671](https://github.com/RocketChat/Rocket.Chat/pull/16671)) - -- livechat/rooms endpoint not working with big amount of livechats ([#16623](https://github.com/RocketChat/Rocket.Chat/pull/16623)) - -- Login with LinkedIn not mapping name and picture correctly ([#16955](https://github.com/RocketChat/Rocket.Chat/pull/16955)) +- Cannot edit Profile when Full Name is empty and not required ([#16744](https://github.com/RocketChat/Rocket.Chat/pull/16744)) - Manual Register use correct state for determining registered ([#16726](https://github.com/RocketChat/Rocket.Chat/pull/16726)) -- Member's list only filtering users already on screen ([#17110](https://github.com/RocketChat/Rocket.Chat/pull/17110)) +- Rocket.Chat takes too long to set the username when it fails to send enrollment email ([#16723](https://github.com/RocketChat/Rocket.Chat/pull/16723)) -- Messages doesn't send to Slack via SlackBridge after renaming channel ([#16565](https://github.com/RocketChat/Rocket.Chat/pull/16565) by [@antkaz](https://github.com/antkaz)) +- TypeError when trying to load avatar of an invalid room. ([#16699](https://github.com/RocketChat/Rocket.Chat/pull/16699)) -- Omnichannel endpoint `inquiries.getOne` returning only queued inquiries ([#17132](https://github.com/RocketChat/Rocket.Chat/pull/17132)) +- Color setting editing issues ([#16706](https://github.com/RocketChat/Rocket.Chat/pull/16706)) -- Omnichannel Inquiry names not being updated when the guest name changes ([#16782](https://github.com/RocketChat/Rocket.Chat/pull/16782)) +- ie11 support ([#16682](https://github.com/RocketChat/Rocket.Chat/pull/16682)) -- Omnichannel Inquiry queues when removing chats ([#16603](https://github.com/RocketChat/Rocket.Chat/pull/16603)) +- Deleting messages while searching causes the whole room chat to disappear ([#16568](https://github.com/RocketChat/Rocket.Chat/pull/16568) by [@karimelghazouly](https://github.com/karimelghazouly)) -- Option BYPASS_OPLOG_VALIDATION not working ([#17143](https://github.com/RocketChat/Rocket.Chat/pull/17143)) +- Prune message saying `files deleted` and `messages deleted` even when singular message or file in prune ([#16322](https://github.com/RocketChat/Rocket.Chat/pull/16322) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Pinned messages wouldn't collapse ([#16188](https://github.com/RocketChat/Rocket.Chat/pull/16188)) +- "Jump to message" is rendered twice when message is starred. ([#16170](https://github.com/RocketChat/Rocket.Chat/pull/16170)) - Pressing Cancel while 'deleting by edit' message blocks sending messages ([#16315](https://github.com/RocketChat/Rocket.Chat/pull/16315) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Prune message saying `files deleted` and `messages deleted` even when singular message or file in prune ([#16322](https://github.com/RocketChat/Rocket.Chat/pull/16322) by [@ritwizsinha](https://github.com/ritwizsinha)) +- File uploads out of threads are not visible in regular message view ([#16416](https://github.com/RocketChat/Rocket.Chat/pull/16416)) -- Public channel cannot be accessed via URL when 'Allow Anonymous Read' is active ([#16914](https://github.com/RocketChat/Rocket.Chat/pull/16914)) +- There is no option to pin a thread message by admin ([#16457](https://github.com/RocketChat/Rocket.Chat/pull/16457)) -- Race conditions on/before login ([#16989](https://github.com/RocketChat/Rocket.Chat/pull/16989)) +- LDAP sync admin action was not syncing existent users ([#16671](https://github.com/RocketChat/Rocket.Chat/pull/16671)) -- Random errors on SAML logout ([#17227](https://github.com/RocketChat/Rocket.Chat/pull/17227)) +- Check agent status when starting a new conversation with an agent assigned ([#16618](https://github.com/RocketChat/Rocket.Chat/pull/16618)) -- Real-time data rendering on Omnichannel room info panel ([#16783](https://github.com/RocketChat/Rocket.Chat/pull/16783)) +- Additional scroll when contextual bar is open ([#16667](https://github.com/RocketChat/Rocket.Chat/pull/16667)) -- Regression: Jitsi on external window infinite loop ([#16625](https://github.com/RocketChat/Rocket.Chat/pull/16625)) +- Clear unread red line when the ESC key is pressed ([#16668](https://github.com/RocketChat/Rocket.Chat/pull/16668)) -- Regression: New 'app' role with no permissions when updating to 3.0.0 ([#16637](https://github.com/RocketChat/Rocket.Chat/pull/16637)) +- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove Reply in DM from Omnichannel rooms ([#16957](https://github.com/RocketChat/Rocket.Chat/pull/16957)) +- Admin height if the blue banner is opened ([#16629](https://github.com/RocketChat/Rocket.Chat/pull/16629)) -- Remove spaces from i18n placeholders to show Personal access token ([#16724](https://github.com/RocketChat/Rocket.Chat/pull/16724) by [@harakiwi1](https://github.com/harakiwi1)) +- Data converters overriding fields added by apps ([#16639](https://github.com/RocketChat/Rocket.Chat/pull/16639)) -- Rocket.Chat takes too long to set the username when it fails to send enrollment email ([#16723](https://github.com/RocketChat/Rocket.Chat/pull/16723)) +- Block user option inside admin view ([#16626](https://github.com/RocketChat/Rocket.Chat/pull/16626)) -- Room event emitter passing an invalid parameter when finding removed subscriptions ([#17224](https://github.com/RocketChat/Rocket.Chat/pull/17224)) +- Regression: New 'app' role with no permissions when updating to 3.0.0 ([#16637](https://github.com/RocketChat/Rocket.Chat/pull/16637)) -- SAML login errors not showing on UI ([#17219](https://github.com/RocketChat/Rocket.Chat/pull/17219)) +- Omnichannel Inquiry queues when removing chats ([#16603](https://github.com/RocketChat/Rocket.Chat/pull/16603)) -- Show error message if password and confirm password not equal ([#16247](https://github.com/RocketChat/Rocket.Chat/pull/16247)) +- livechat/rooms endpoint not working with big amount of livechats ([#16623](https://github.com/RocketChat/Rocket.Chat/pull/16623) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Slackbridge-import command doesn't work ([#16645](https://github.com/RocketChat/Rocket.Chat/pull/16645) by [@antkaz](https://github.com/antkaz)) +- Regression: Jitsi on external window infinite loop ([#16625](https://github.com/RocketChat/Rocket.Chat/pull/16625)) -- SlackBridge: Get all channels from Slack via REST API ([#16767](https://github.com/RocketChat/Rocket.Chat/pull/16767) by [@antkaz](https://github.com/antkaz)) +- UiKit not updating new actionIds received as responses from actions ([#16624](https://github.com/RocketChat/Rocket.Chat/pull/16624)) -- Slash command preview: Wrong item being selected, Horizontal scroll ([#16750](https://github.com/RocketChat/Rocket.Chat/pull/16750)) +- Verification email body ([#17062](https://github.com/RocketChat/Rocket.Chat/pull/17062) by [@GOVINDDIXIT](https://github.com/GOVINDDIXIT)) -- Text formatted to remain within button even on screen resize ([#14136](https://github.com/RocketChat/Rocket.Chat/pull/14136) by [@Rodriq](https://github.com/Rodriq)) +- Emit livechat events to instace only ([#17086](https://github.com/RocketChat/Rocket.Chat/pull/17086)) -- There is no option to pin a thread message by admin ([#16457](https://github.com/RocketChat/Rocket.Chat/pull/16457)) +- Error when websocket received status update event ([#17089](https://github.com/RocketChat/Rocket.Chat/pull/17089)) -- TypeError when trying to load avatar of an invalid room. ([#16699](https://github.com/RocketChat/Rocket.Chat/pull/16699)) +- Federation delete room event not being dispatched ([#16861](https://github.com/RocketChat/Rocket.Chat/pull/16861) by [@1rV1N-git](https://github.com/1rV1N-git)) -- UiKit not updating new actionIds received as responses from actions ([#16624](https://github.com/RocketChat/Rocket.Chat/pull/16624)) +- Federation Event ROOM_ADD_USER not being dispatched ([#16878](https://github.com/RocketChat/Rocket.Chat/pull/16878) by [@1rV1N-git](https://github.com/1rV1N-git)) + +- Discussions were not inheriting the public status of parent's channel ([#17070](https://github.com/RocketChat/Rocket.Chat/pull/17070)) -- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495)) +- Member's list only filtering users already on screen ([#17110](https://github.com/RocketChat/Rocket.Chat/pull/17110)) -- Verification email body ([#17062](https://github.com/RocketChat/Rocket.Chat/pull/17062) by [@GOVINDDIXIT](https://github.com/GOVINDDIXIT)) +- Option BYPASS_OPLOG_VALIDATION not working ([#17143](https://github.com/RocketChat/Rocket.Chat/pull/17143)) + +- Omnichannel endpoint `inquiries.getOne` returning only queued inquiries ([#17132](https://github.com/RocketChat/Rocket.Chat/pull/17132)) - WebRTC echo while talking ([#17145](https://github.com/RocketChat/Rocket.Chat/pull/17145) by [@1rV1N-git](https://github.com/1rV1N-git) & [@ndroo](https://github.com/ndroo)) -- When trying to quote messages inside threads the quote would be sent to room instead to the thread ([#16925](https://github.com/RocketChat/Rocket.Chat/pull/16925)) +- Random errors on SAML logout ([#17227](https://github.com/RocketChat/Rocket.Chat/pull/17227)) -- Wrong message count statistics in Admin info page ([#16680](https://github.com/RocketChat/Rocket.Chat/pull/16680) by [@subham103](https://github.com/subham103)) +- Room event emitter passing an invalid parameter when finding removed subscriptions ([#17224](https://github.com/RocketChat/Rocket.Chat/pull/17224)) - Wrong SAML Response Signature Validation ([#16922](https://github.com/RocketChat/Rocket.Chat/pull/16922)) -- Wrong thread messages display in contextual bar ([#16835](https://github.com/RocketChat/Rocket.Chat/pull/16835) by [@ritwizsinha](https://github.com/ritwizsinha)) +- SAML login errors not showing on UI ([#17219](https://github.com/RocketChat/Rocket.Chat/pull/17219))
🔍 Minor changes -- [Apps] Lazy load categories and marketplaceVersion in admin - apps page ([#16258](https://github.com/RocketChat/Rocket.Chat/pull/16258)) +- Release 3.0.12 ([#17158](https://github.com/RocketChat/Rocket.Chat/pull/17158)) -- [CHORE] Changed remaining SelectInput's to Select ([#16719](https://github.com/RocketChat/Rocket.Chat/pull/16719)) +- Fix: 2FA DDP method not getting code on API call that doesn’t requires 2FA ([#16998](https://github.com/RocketChat/Rocket.Chat/pull/16998)) -- [CHORE] Look for Storybook stories on `app/` too ([#16595](https://github.com/RocketChat/Rocket.Chat/pull/16595)) +- Regression: Remove deprecated Omnichannel setting used to fetch the queue data through subscription ([#17017](https://github.com/RocketChat/Rocket.Chat/pull/17017)) -- [CHORE] Update snap install instructions ([#16720](https://github.com/RocketChat/Rocket.Chat/pull/16720)) +- Regression: Replace the Omnichannel queue model observe with Stream ([#16999](https://github.com/RocketChat/Rocket.Chat/pull/16999)) -- [CHORE] Use REST API for sending audio messages ([#17237](https://github.com/RocketChat/Rocket.Chat/pull/17237)) +- Fix StreamCast info ([#16995](https://github.com/RocketChat/Rocket.Chat/pull/16995)) -- Add an index to the name field for omnichannel department ([#16953](https://github.com/RocketChat/Rocket.Chat/pull/16953)) +- Fix: StreamCast was not working correctly ([#16983](https://github.com/RocketChat/Rocket.Chat/pull/16983)) -- Add Enterprise Edition license ([#16801](https://github.com/RocketChat/Rocket.Chat/pull/16801)) +- Change license version requested ([#16956](https://github.com/RocketChat/Rocket.Chat/pull/16956)) + +- Fix: Padding required in the Facebook Messenger option in Livechat ([#16202](https://github.com/RocketChat/Rocket.Chat/pull/16202) by [@ritwizsinha](https://github.com/ritwizsinha)) + +- Add some missing ES translations ([#16120](https://github.com/RocketChat/Rocket.Chat/pull/16120) by [@ivanape](https://github.com/ivanape)) + +- Fix: Adding margin to click to load text ([#16210](https://github.com/RocketChat/Rocket.Chat/pull/16210) by [@ritwizsinha](https://github.com/ritwizsinha)) + +- Redirected to home when a room has been deleted instead of getting broken link(blank page) of deleted room ([#16227](https://github.com/RocketChat/Rocket.Chat/pull/16227)) + +- Fixed translate variable in UnarchiveRoom Modal ([#16310](https://github.com/RocketChat/Rocket.Chat/pull/16310)) + +- Update cypress to version 4.0.2 ([#16685](https://github.com/RocketChat/Rocket.Chat/pull/16685)) + +- Update presence package ([#16786](https://github.com/RocketChat/Rocket.Chat/pull/16786)) + +- Add an index to the name field for omnichannel department ([#16953](https://github.com/RocketChat/Rocket.Chat/pull/16953)) - Add lint to `.less` files ([#16893](https://github.com/RocketChat/Rocket.Chat/pull/16893)) -- Add methods to include room types on dashboard ([#16576](https://github.com/RocketChat/Rocket.Chat/pull/16576)) +- Upgrade Livechat Widget version to 1.4.0 ([#16950](https://github.com/RocketChat/Rocket.Chat/pull/16950)) + +- Bump acorn from 6.0.7 to 6.4.1 ([#16876](https://github.com/RocketChat/Rocket.Chat/pull/16876) by [@dependabot[bot]](https://github.com/dependabot[bot])) + +- Fix: Make the AppLivechatBridge.createMessage works properly as a promise ([#16941](https://github.com/RocketChat/Rocket.Chat/pull/16941)) - Add new Omnichannel department forwarding callback ([#16779](https://github.com/RocketChat/Rocket.Chat/pull/16779)) -- Add some missing ES translations ([#16120](https://github.com/RocketChat/Rocket.Chat/pull/16120) by [@ivanape](https://github.com/ivanape)) +- Added border to page header ([#16792](https://github.com/RocketChat/Rocket.Chat/pull/16792)) -- Add statistics and metrics about push queue ([#17208](https://github.com/RocketChat/Rocket.Chat/pull/17208)) +- Fixed Line break incorrectly being called apostrophe in code ([#16918](https://github.com/RocketChat/Rocket.Chat/pull/16918) by [@aKn1ghtOut](https://github.com/aKn1ghtOut)) -- Add User’s index for field `appId` ([#17075](https://github.com/RocketChat/Rocket.Chat/pull/17075)) +- Improve room types usage ([#16753](https://github.com/RocketChat/Rocket.Chat/pull/16753)) -- Add wrapper to make Meteor methods calls over REST ([#17092](https://github.com/RocketChat/Rocket.Chat/pull/17092)) +- Fix: Removed some hardcoded texts ([#16304](https://github.com/RocketChat/Rocket.Chat/pull/16304)) + +- Add Enterprise Edition license ([#16801](https://github.com/RocketChat/Rocket.Chat/pull/16801)) -- Added border to page header ([#16792](https://github.com/RocketChat/Rocket.Chat/pull/16792)) +- Improve: Apps-engine E2E tests ([#16781](https://github.com/RocketChat/Rocket.Chat/pull/16781) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Bump acorn from 6.0.7 to 6.4.1 ([#16876](https://github.com/RocketChat/Rocket.Chat/pull/16876) by [@dependabot[bot]](https://github.com/dependabot[bot])) +- LingoHub based on develop ([#16837](https://github.com/RocketChat/Rocket.Chat/pull/16837)) -- Change license version requested ([#16956](https://github.com/RocketChat/Rocket.Chat/pull/16956)) +- Regression: Fix omnichannel icon missing on sidebar ([#16775](https://github.com/RocketChat/Rocket.Chat/pull/16775)) -- Changed Opt_In message, removed translations ([#16631](https://github.com/RocketChat/Rocket.Chat/pull/16631)) +- Removing Trailing Space ([#16470](https://github.com/RocketChat/Rocket.Chat/pull/16470) by [@aryamanpuri](https://github.com/aryamanpuri)) -- Collect metrics about meteor facts ([#17216](https://github.com/RocketChat/Rocket.Chat/pull/17216)) +- [Apps] Lazy load categories and marketplaceVersion in admin - apps page ([#16258](https://github.com/RocketChat/Rocket.Chat/pull/16258)) - Fix Docker preview image ([#16736](https://github.com/RocketChat/Rocket.Chat/pull/16736)) -- Fix self DMs created during release candidate ([#17239](https://github.com/RocketChat/Rocket.Chat/pull/17239)) - -- Fix StreamCast info ([#16995](https://github.com/RocketChat/Rocket.Chat/pull/16995)) +- [CHORE] Changed remaining SelectInput's to Select ([#16719](https://github.com/RocketChat/Rocket.Chat/pull/16719)) -- Fix: 2FA DDP method not getting code on API call that doesn’t requires 2FA ([#16998](https://github.com/RocketChat/Rocket.Chat/pull/16998)) +- [CHORE] Update snap install instructions ([#16720](https://github.com/RocketChat/Rocket.Chat/pull/16720)) -- fix: add option to mount media on snap ([#13591](https://github.com/RocketChat/Rocket.Chat/pull/13591) by [@knrt10](https://github.com/knrt10)) +- Fix: Console error on login ([#16704](https://github.com/RocketChat/Rocket.Chat/pull/16704)) -- Fix: Adding margin to click to load text ([#16210](https://github.com/RocketChat/Rocket.Chat/pull/16210) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Add methods to include room types on dashboard ([#16576](https://github.com/RocketChat/Rocket.Chat/pull/16576) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Console error on login ([#16704](https://github.com/RocketChat/Rocket.Chat/pull/16704)) +- Regression: Show upload errors ([#16681](https://github.com/RocketChat/Rocket.Chat/pull/16681)) - Fix: Correctly aligned input element of custom user status component ([#16151](https://github.com/RocketChat/Rocket.Chat/pull/16151)) -- Fix: Error message on startup of multiple instances related to the metrics’ server ([#17152](https://github.com/RocketChat/Rocket.Chat/pull/17152)) - -- Fix: Huge amount of hasLicense calls to the server ([#17169](https://github.com/RocketChat/Rocket.Chat/pull/17169)) +- [CHORE] Look for Storybook stories on `app/` too ([#16595](https://github.com/RocketChat/Rocket.Chat/pull/16595)) -- Fix: Last message of Group DMs not showing the sender ([#17059](https://github.com/RocketChat/Rocket.Chat/pull/17059)) +- Changed Opt_In message, removed translations ([#16631](https://github.com/RocketChat/Rocket.Chat/pull/16631)) -- Fix: Make the AppLivechatBridge.createMessage works properly as a promise ([#16941](https://github.com/RocketChat/Rocket.Chat/pull/16941)) +- LingoHub based on develop ([#16640](https://github.com/RocketChat/Rocket.Chat/pull/16640)) -- Fix: Missing checks for Troubleshoot > Disable Notifications ([#17155](https://github.com/RocketChat/Rocket.Chat/pull/17155)) +- fix: add option to mount media on snap ([#13591](https://github.com/RocketChat/Rocket.Chat/pull/13591) by [@knrt10](https://github.com/knrt10)) -- Fix: Notifications of Group DM were not showing the room name ([#17058](https://github.com/RocketChat/Rocket.Chat/pull/17058)) +- Merge master into develop & Set version to 3.1.0-develop ([#16609](https://github.com/RocketChat/Rocket.Chat/pull/16609)) -- Fix: Padding required in the Facebook Messenger option in Livechat ([#16202](https://github.com/RocketChat/Rocket.Chat/pull/16202) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Regression: Small fixes for Game Center ([#17018](https://github.com/RocketChat/Rocket.Chat/pull/17018)) -- Fix: Removed some hardcoded texts ([#16304](https://github.com/RocketChat/Rocket.Chat/pull/16304)) +- Regression: Fix issue with opening rooms ([#17028](https://github.com/RocketChat/Rocket.Chat/pull/17028)) -- Fix: StreamCast was not working correctly ([#16983](https://github.com/RocketChat/Rocket.Chat/pull/16983)) +- Regression: Overwrite model functions on EE only when license applied ([#17061](https://github.com/RocketChat/Rocket.Chat/pull/17061)) -- Fixed Line break incorrectly being called apostrophe in code ([#16918](https://github.com/RocketChat/Rocket.Chat/pull/16918) by [@aKn1ghtOut](https://github.com/aKn1ghtOut)) +- Regression: `users.setStatus` throwing an error if message is empty ([#17036](https://github.com/RocketChat/Rocket.Chat/pull/17036) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fixed translate variable in UnarchiveRoom Modal ([#16310](https://github.com/RocketChat/Rocket.Chat/pull/16310)) +- Regression: Omnichannel notification on new conversations displaying incorrect information ([#16346](https://github.com/RocketChat/Rocket.Chat/pull/16346)) -- Improve room types usage ([#16753](https://github.com/RocketChat/Rocket.Chat/pull/16753)) +- Fix: Notifications of Group DM were not showing the room name ([#17058](https://github.com/RocketChat/Rocket.Chat/pull/17058)) -- Improve: Apps-engine E2E tests ([#16781](https://github.com/RocketChat/Rocket.Chat/pull/16781)) +- Fix: Last message of Group DMs not showing the sender ([#17059](https://github.com/RocketChat/Rocket.Chat/pull/17059)) -- LingoHub based on develop ([#16837](https://github.com/RocketChat/Rocket.Chat/pull/16837)) +- Regression: Invite links working for group DMs ([#17056](https://github.com/RocketChat/Rocket.Chat/pull/17056)) -- LingoHub based on develop ([#16640](https://github.com/RocketChat/Rocket.Chat/pull/16640)) +- Regression: Do not refresh statistics when opening the info panel ([#17060](https://github.com/RocketChat/Rocket.Chat/pull/17060)) -- Merge master into develop & Set version to 3.1.0-develop ([#16609](https://github.com/RocketChat/Rocket.Chat/pull/16609)) +- Regression: Fix removing user not removing his 1-on-1 DMs ([#17057](https://github.com/RocketChat/Rocket.Chat/pull/17057)) -- Metrics: New metrics, performance and size improvements ([#17183](https://github.com/RocketChat/Rocket.Chat/pull/17183)) +- Regression: omnichannel manual queued sidebarlist ([#17048](https://github.com/RocketChat/Rocket.Chat/pull/17048)) -- New metric to track oplog queue ([#17142](https://github.com/RocketChat/Rocket.Chat/pull/17142)) +- Add User’s index for field `appId` ([#17075](https://github.com/RocketChat/Rocket.Chat/pull/17075)) -- New Troubleshoot section for disabling features ([#17114](https://github.com/RocketChat/Rocket.Chat/pull/17114)) +- Regression: OmniChannel agent activity monitor was counting time wrongly ([#16979](https://github.com/RocketChat/Rocket.Chat/pull/16979) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Redirected to home when a room has been deleted instead of getting broken link(blank page) of deleted room ([#16227](https://github.com/RocketChat/Rocket.Chat/pull/16227)) +- Regression: Broken Search if users without DM subscriptions are listed ([#17074](https://github.com/RocketChat/Rocket.Chat/pull/17074)) - Reduce notifyUser propagation ([#17088](https://github.com/RocketChat/Rocket.Chat/pull/17088)) -- Regression: `users.setStatus` throwing an error if message is empty ([#17036](https://github.com/RocketChat/Rocket.Chat/pull/17036)) +- Regression: Check Omnichannel routing system before emitting queue changes ([#17087](https://github.com/RocketChat/Rocket.Chat/pull/17087)) -- Regression: Admin create user button ([#17186](https://github.com/RocketChat/Rocket.Chat/pull/17186)) +- Regression: Files were been deleted when deleting users as last members of private rooms ([#17111](https://github.com/RocketChat/Rocket.Chat/pull/17111)) - Regression: Block users was not possible for 1:1 DMs ([#17105](https://github.com/RocketChat/Rocket.Chat/pull/17105)) -- Regression: Broken Search if users without DM subscriptions are listed ([#17074](https://github.com/RocketChat/Rocket.Chat/pull/17074)) - -- Regression: Can't login with 2FA over REST API when 2FA via Email is enabled ([#17128](https://github.com/RocketChat/Rocket.Chat/pull/17128)) - -- Regression: Check Omnichannel routing system before emitting queue changes ([#17087](https://github.com/RocketChat/Rocket.Chat/pull/17087)) - - Regression: Collapsible elements didn't respect attachment parameter. ([#16994](https://github.com/RocketChat/Rocket.Chat/pull/16994)) - Regression: Direct message creation by REST ([#17109](https://github.com/RocketChat/Rocket.Chat/pull/17109)) -- Regression: Do not refresh statistics when opening the info panel ([#17060](https://github.com/RocketChat/Rocket.Chat/pull/17060)) - -- Regression: Files were been deleted when deleting users as last members of private rooms ([#17111](https://github.com/RocketChat/Rocket.Chat/pull/17111)) - -- Regression: Fix auditing for Multiple Direct Messages ([#17192](https://github.com/RocketChat/Rocket.Chat/pull/17192)) - -- Regression: Fix calling readmessage after mark as unread ([#17193](https://github.com/RocketChat/Rocket.Chat/pull/17193)) - -- Regression: fix design review of Directory ([#17133](https://github.com/RocketChat/Rocket.Chat/pull/17133)) +- Regression: Can't login with 2FA over REST API when 2FA via Email is enabled ([#17128](https://github.com/RocketChat/Rocket.Chat/pull/17128)) - Regression: Fix engagement dashboard urls, fixing Flowrouter imports ([#17127](https://github.com/RocketChat/Rocket.Chat/pull/17127)) -- Regression: fix fuselage import, remove directory css ([#17116](https://github.com/RocketChat/Rocket.Chat/pull/17116)) - -- Regression: Fix issue with opening rooms ([#17028](https://github.com/RocketChat/Rocket.Chat/pull/17028)) - -- Regression: Fix omnichannel icon missing on sidebar ([#16775](https://github.com/RocketChat/Rocket.Chat/pull/16775)) +- Regression: IE11 Support ([#17125](https://github.com/RocketChat/Rocket.Chat/pull/17125)) -- Regression: Fix removing user not removing his 1-on-1 DMs ([#17057](https://github.com/RocketChat/Rocket.Chat/pull/17057)) +- New Troubleshoot section for disabling features ([#17114](https://github.com/RocketChat/Rocket.Chat/pull/17114)) -- Regression: fix scroll after room loads ([#17188](https://github.com/RocketChat/Rocket.Chat/pull/17188)) +- Regression: Wrong size of Directory search/sort icons and Sort Channels menu not showing on production build ([#17118](https://github.com/RocketChat/Rocket.Chat/pull/17118)) -- Regression: Fix users raw model ([#17204](https://github.com/RocketChat/Rocket.Chat/pull/17204)) +- Regression: fix fuselage import, remove directory css ([#17116](https://github.com/RocketChat/Rocket.Chat/pull/17116)) -- Regression: IE11 Support ([#17125](https://github.com/RocketChat/Rocket.Chat/pull/17125)) +- Regression: Remove old and closed Omnichannel inquiries ([#17113](https://github.com/RocketChat/Rocket.Chat/pull/17113)) -- Regression: Invite links working for group DMs ([#17056](https://github.com/RocketChat/Rocket.Chat/pull/17056)) +- Single codebase announcement ([#17081](https://github.com/RocketChat/Rocket.Chat/pull/17081)) -- Regression: OmniChannel agent activity monitor was counting time wrongly ([#16979](https://github.com/RocketChat/Rocket.Chat/pull/16979)) +- New metric to track oplog queue ([#17142](https://github.com/RocketChat/Rocket.Chat/pull/17142)) -- Regression: omnichannel manual queued sidebarlist ([#17048](https://github.com/RocketChat/Rocket.Chat/pull/17048)) +- Regression: fix design review of Directory ([#17133](https://github.com/RocketChat/Rocket.Chat/pull/17133)) -- Regression: Omnichannel notification on new conversations displaying incorrect information ([#16346](https://github.com/RocketChat/Rocket.Chat/pull/16346)) +- Regression: Fix calling readmessage after mark as unread ([#17193](https://github.com/RocketChat/Rocket.Chat/pull/17193)) -- Regression: Overwrite model functions on EE only when license applied ([#17061](https://github.com/RocketChat/Rocket.Chat/pull/17061)) +- Add wrapper to make Meteor methods calls over REST ([#17092](https://github.com/RocketChat/Rocket.Chat/pull/17092)) -- Regression: Remove deprecated Omnichannel setting used to fetch the queue data through subscription ([#17017](https://github.com/RocketChat/Rocket.Chat/pull/17017)) +- Regression: Fix auditing for Multiple Direct Messages ([#17192](https://github.com/RocketChat/Rocket.Chat/pull/17192)) -- Regression: Remove old and closed Omnichannel inquiries ([#17113](https://github.com/RocketChat/Rocket.Chat/pull/17113)) +- Regression: Admin create user button ([#17186](https://github.com/RocketChat/Rocket.Chat/pull/17186)) -- Regression: Replace the Omnichannel queue model observe with Stream ([#16999](https://github.com/RocketChat/Rocket.Chat/pull/16999)) +- Regression: fix scroll after room loads ([#17188](https://github.com/RocketChat/Rocket.Chat/pull/17188)) -- Regression: Show upload errors ([#16681](https://github.com/RocketChat/Rocket.Chat/pull/16681)) +- Metrics: New metrics, performance and size improvements ([#17183](https://github.com/RocketChat/Rocket.Chat/pull/17183)) -- Regression: Small fixes for Game Center ([#17018](https://github.com/RocketChat/Rocket.Chat/pull/17018)) +- Fix: Huge amount of hasLicense calls to the server ([#17169](https://github.com/RocketChat/Rocket.Chat/pull/17169)) -- Regression: Wrong size of Directory search/sort icons and Sort Channels menu not showing on production build ([#17118](https://github.com/RocketChat/Rocket.Chat/pull/17118)) +- Fix: Missing checks for Troubleshoot > Disable Notifications ([#17155](https://github.com/RocketChat/Rocket.Chat/pull/17155)) -- Release 3.0.12 ([#17158](https://github.com/RocketChat/Rocket.Chat/pull/17158)) +- Fix: Error message on startup of multiple instances related to the metrics’ server ([#17152](https://github.com/RocketChat/Rocket.Chat/pull/17152)) -- Removing Trailing Space ([#16470](https://github.com/RocketChat/Rocket.Chat/pull/16470) by [@aryamanpuri](https://github.com/aryamanpuri)) +- Regression: Fix users raw model ([#17204](https://github.com/RocketChat/Rocket.Chat/pull/17204)) -- Single codebase announcement ([#17081](https://github.com/RocketChat/Rocket.Chat/pull/17081)) +- Add statistics and metrics about push queue ([#17208](https://github.com/RocketChat/Rocket.Chat/pull/17208)) -- Update cypress to version 4.0.2 ([#16685](https://github.com/RocketChat/Rocket.Chat/pull/16685)) +- Collect metrics about meteor facts ([#17216](https://github.com/RocketChat/Rocket.Chat/pull/17216)) -- Update presence package ([#16786](https://github.com/RocketChat/Rocket.Chat/pull/16786)) +- Fix self DMs created during release candidate ([#17239](https://github.com/RocketChat/Rocket.Chat/pull/17239)) -- Upgrade Livechat Widget version to 1.4.0 ([#16950](https://github.com/RocketChat/Rocket.Chat/pull/16950)) +- [CHORE] Use REST API for sending audio messages ([#17237](https://github.com/RocketChat/Rocket.Chat/pull/17237))
@@ -1707,6 +1987,7 @@ - [@1rV1N-git](https://github.com/1rV1N-git) - [@GOVINDDIXIT](https://github.com/GOVINDDIXIT) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Nikhil713](https://github.com/Nikhil713) - [@Rodriq](https://github.com/Rodriq) - [@aKn1ghtOut](https://github.com/aKn1ghtOut) @@ -1732,7 +2013,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@PrajvalRaval](https://github.com/PrajvalRaval) - [@Sing-Li](https://github.com/Sing-Li) - [@ashwaniYDV](https://github.com/ashwaniYDV) @@ -1779,11 +2059,11 @@ 🔍 Minor changes -- Fix: Error message on startup of multiple instances related to the metrics’ server ([#17152](https://github.com/RocketChat/Rocket.Chat/pull/17152)) +- Release 3.0.12 ([#17158](https://github.com/RocketChat/Rocket.Chat/pull/17158)) - Fix: Missing checks for Troubleshoot > Disable Notifications ([#17155](https://github.com/RocketChat/Rocket.Chat/pull/17155)) -- Release 3.0.12 ([#17158](https://github.com/RocketChat/Rocket.Chat/pull/17158)) +- Fix: Error message on startup of multiple instances related to the metrics’ server ([#17152](https://github.com/RocketChat/Rocket.Chat/pull/17152))
@@ -1811,10 +2091,10 @@ 🔍 Minor changes -- New metric to track oplog queue ([#17142](https://github.com/RocketChat/Rocket.Chat/pull/17142)) - - Release 3.0.11 ([#17148](https://github.com/RocketChat/Rocket.Chat/pull/17148)) +- New metric to track oplog queue ([#17142](https://github.com/RocketChat/Rocket.Chat/pull/17142)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -1839,21 +2119,21 @@ ### 🐛 Bug fixes -- Federation delete room event not being dispatched ([#16861](https://github.com/RocketChat/Rocket.Chat/pull/16861) by [@1rV1N-git](https://github.com/1rV1N-git)) - - Federation Event ROOM_ADD_USER not being dispatched ([#16878](https://github.com/RocketChat/Rocket.Chat/pull/16878) by [@1rV1N-git](https://github.com/1rV1N-git)) +- Federation delete room event not being dispatched ([#16861](https://github.com/RocketChat/Rocket.Chat/pull/16861) by [@1rV1N-git](https://github.com/1rV1N-git)) +
🔍 Minor changes -- Add User’s index for field `appId` ([#17075](https://github.com/RocketChat/Rocket.Chat/pull/17075)) +- Release 3.0.10 ([#17126](https://github.com/RocketChat/Rocket.Chat/pull/17126) by [@1rV1N-git](https://github.com/1rV1N-git)) - New Troubleshoot section for disabling features ([#17114](https://github.com/RocketChat/Rocket.Chat/pull/17114)) - Regression: Do not refresh statistics when opening the info panel ([#17060](https://github.com/RocketChat/Rocket.Chat/pull/17060)) -- Release 3.0.10 ([#17126](https://github.com/RocketChat/Rocket.Chat/pull/17126) by [@1rV1N-git](https://github.com/1rV1N-git)) +- Add User’s index for field `appId` ([#17075](https://github.com/RocketChat/Rocket.Chat/pull/17075))
@@ -1911,10 +2191,10 @@ 🔍 Minor changes -- Reduce notifyUser propagation ([#17088](https://github.com/RocketChat/Rocket.Chat/pull/17088)) - - Regression: Remove model observe that was used to control the status of the Omnichannel agents ([#17078](https://github.com/RocketChat/Rocket.Chat/pull/17078)) +- Reduce notifyUser propagation ([#17088](https://github.com/RocketChat/Rocket.Chat/pull/17088)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -2023,16 +2303,16 @@ ### 🐛 Bug fixes -- Check agent status when starting a new conversation with an agent assigned ([#16618](https://github.com/RocketChat/Rocket.Chat/pull/16618)) - - Language country has been ignored on translation load ([#16757](https://github.com/RocketChat/Rocket.Chat/pull/16757)) -- LDAP sync admin action was not syncing existent users ([#16671](https://github.com/RocketChat/Rocket.Chat/pull/16671)) - - Manual Register use correct state for determining registered ([#16726](https://github.com/RocketChat/Rocket.Chat/pull/16726)) - Rocket.Chat takes too long to set the username when it fails to send enrollment email ([#16723](https://github.com/RocketChat/Rocket.Chat/pull/16723)) +- LDAP sync admin action was not syncing existent users ([#16671](https://github.com/RocketChat/Rocket.Chat/pull/16671)) + +- Check agent status when starting a new conversation with an agent assigned ([#16618](https://github.com/RocketChat/Rocket.Chat/pull/16618)) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@d-gubert](https://github.com/d-gubert) @@ -2052,17 +2332,20 @@ ### 🐛 Bug fixes -- Clear unread red line when the ESC key is pressed ([#16668](https://github.com/RocketChat/Rocket.Chat/pull/16668)) - - ie11 support ([#16682](https://github.com/RocketChat/Rocket.Chat/pull/16682)) - Omnichannel Inquiry queues when removing chats ([#16603](https://github.com/RocketChat/Rocket.Chat/pull/16603)) -- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495)) +- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -### 👩‍💻👨‍💻 Core Team 🤓 +- Clear unread red line when the ESC key is pressed ([#16668](https://github.com/RocketChat/Rocket.Chat/pull/16668)) + +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@gabriellsh](https://github.com/gabriellsh) - [@ggazzo](https://github.com/ggazzo) - [@renatobecker](https://github.com/renatobecker) @@ -2079,23 +2362,26 @@ ### 🐛 Bug fixes -- Admin height if the blue banner is opened ([#16629](https://github.com/RocketChat/Rocket.Chat/pull/16629)) +- UiKit not updating new actionIds received as responses from actions ([#16624](https://github.com/RocketChat/Rocket.Chat/pull/16624)) + +- Regression: Jitsi on external window infinite loop ([#16625](https://github.com/RocketChat/Rocket.Chat/pull/16625)) + +- livechat/rooms endpoint not working with big amount of livechats ([#16623](https://github.com/RocketChat/Rocket.Chat/pull/16623) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Regression: New 'app' role with no permissions when updating to 3.0.0 ([#16637](https://github.com/RocketChat/Rocket.Chat/pull/16637)) - Block user option inside admin view ([#16626](https://github.com/RocketChat/Rocket.Chat/pull/16626)) - Data converters overriding fields added by apps ([#16639](https://github.com/RocketChat/Rocket.Chat/pull/16639)) -- livechat/rooms endpoint not working with big amount of livechats ([#16623](https://github.com/RocketChat/Rocket.Chat/pull/16623)) - -- Regression: Jitsi on external window infinite loop ([#16625](https://github.com/RocketChat/Rocket.Chat/pull/16625)) +- Admin height if the blue banner is opened ([#16629](https://github.com/RocketChat/Rocket.Chat/pull/16629)) -- Regression: New 'app' role with no permissions when updating to 3.0.0 ([#16637](https://github.com/RocketChat/Rocket.Chat/pull/16637)) +### 👩‍💻👨‍💻 Contributors 😍 -- UiKit not updating new actionIds received as responses from actions ([#16624](https://github.com/RocketChat/Rocket.Chat/pull/16624)) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@ggazzo](https://github.com/ggazzo) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2111,262 +2397,264 @@ ### ⚠️ BREAKING CHANGES -- Change apps/icon endpoint to return app's icon and use it to show on Ui Kit modal ([#16522](https://github.com/RocketChat/Rocket.Chat/pull/16522)) +- Filter System messages per room ([#16369](https://github.com/RocketChat/Rocket.Chat/pull/16369) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Filter System messages per room ([#16369](https://github.com/RocketChat/Rocket.Chat/pull/16369)) +- Remove deprecated publications ([#16351](https://github.com/RocketChat/Rocket.Chat/pull/16351) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Hide system messages ([#16243](https://github.com/RocketChat/Rocket.Chat/pull/16243)) +- Hide system messages ([#16243](https://github.com/RocketChat/Rocket.Chat/pull/16243) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Remove deprecated publications ([#16351](https://github.com/RocketChat/Rocket.Chat/pull/16351)) +- Upgrade to Meteor 1.9 and NodeJS 12 ([#16252](https://github.com/RocketChat/Rocket.Chat/pull/16252)) - Removed room counter from sidebar ([#16036](https://github.com/RocketChat/Rocket.Chat/pull/16036)) -- TLS v1.0 and TLS v1.1 were disabled by due to NodeJS update to v12. You can still enable them by using flags like `--tls-min-v1.0` and `--tls-min-v1.1` +- Change apps/icon endpoint to return app's icon and use it to show on Ui Kit modal ([#16522](https://github.com/RocketChat/Rocket.Chat/pull/16522)) -- Upgrade to Meteor 1.9 and NodeJS 12 ([#16252](https://github.com/RocketChat/Rocket.Chat/pull/16252)) +- TLS v1.0 and TLS v1.1 were disabled by due to NodeJS update to v12. You can still enable them by using flags like `--tls-min-v1.0` and `--tls-min-v1.1` ### 🎉 New features -- Add GUI for customFields in Omnichannel conversations ([#15840](https://github.com/RocketChat/Rocket.Chat/pull/15840) by [@antkaz](https://github.com/antkaz)) +- Button to download admin server info ([#16059](https://github.com/RocketChat/Rocket.Chat/pull/16059) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- UiKit - Interactive UI elements for Rocket.Chat Apps ([#16048](https://github.com/RocketChat/Rocket.Chat/pull/16048)) + +- Sort the Omnichannel Chat list according to the user preferences ([#16437](https://github.com/RocketChat/Rocket.Chat/pull/16437)) -- Button to download admin server info ([#16059](https://github.com/RocketChat/Rocket.Chat/pull/16059)) +- Setting to only send plain text emails ([#16065](https://github.com/RocketChat/Rocket.Chat/pull/16065)) - Check the Omnichannel service status per Department ([#16425](https://github.com/RocketChat/Rocket.Chat/pull/16425)) - Create a user for the Apps during installation ([#15896](https://github.com/RocketChat/Rocket.Chat/pull/15896) by [@Cool-fire](https://github.com/Cool-fire)) -- Enforce plain text emails converting from HTML when no text version supplied ([#16063](https://github.com/RocketChat/Rocket.Chat/pull/16063)) +- Add GUI for customFields in Omnichannel conversations ([#15840](https://github.com/RocketChat/Rocket.Chat/pull/15840) by [@antkaz](https://github.com/antkaz)) -- Setting to only send plain text emails ([#16065](https://github.com/RocketChat/Rocket.Chat/pull/16065)) +- update on mongo, node and caddy on snap ([#16167](https://github.com/RocketChat/Rocket.Chat/pull/16167)) -- Setting Top navbar in embedded mode ([#16064](https://github.com/RocketChat/Rocket.Chat/pull/16064)) +- Enforce plain text emails converting from HTML when no text version supplied ([#16063](https://github.com/RocketChat/Rocket.Chat/pull/16063)) -- Sort the Omnichannel Chat list according to the user preferences ([#16437](https://github.com/RocketChat/Rocket.Chat/pull/16437)) +- Setting Top navbar in embedded mode ([#16064](https://github.com/RocketChat/Rocket.Chat/pull/16064)) -- UiKit - Interactive UI elements for Rocket.Chat Apps ([#16048](https://github.com/RocketChat/Rocket.Chat/pull/16048)) +### 🚀 Improvements -- update on mongo, node and caddy on snap ([#16167](https://github.com/RocketChat/Rocket.Chat/pull/16167)) -### 🚀 Improvements +- Request user presence on demand ([#16348](https://github.com/RocketChat/Rocket.Chat/pull/16348)) +- Major overhaul on data importers ([#16279](https://github.com/RocketChat/Rocket.Chat/pull/16279)) - Changes App user's status when the app was enabled/disabled ([#16392](https://github.com/RocketChat/Rocket.Chat/pull/16392)) -- Improve function to check if setting has changed ([#16181](https://github.com/RocketChat/Rocket.Chat/pull/16181)) - - Log as info level when Method Rate Limiters are reached ([#16446](https://github.com/RocketChat/Rocket.Chat/pull/16446)) -- Major overhaul on data importers ([#16279](https://github.com/RocketChat/Rocket.Chat/pull/16279)) +- Show more information related to the Omnichannel room closing data ([#16414](https://github.com/RocketChat/Rocket.Chat/pull/16414)) + +- Update katex version ([#16393](https://github.com/RocketChat/Rocket.Chat/pull/16393)) - Prevent "App user" from being deleted by the admin ([#16373](https://github.com/RocketChat/Rocket.Chat/pull/16373)) -- Remove NRR ([#16071](https://github.com/RocketChat/Rocket.Chat/pull/16071)) +- Improve function to check if setting has changed ([#16181](https://github.com/RocketChat/Rocket.Chat/pull/16181)) -- Request user presence on demand ([#16348](https://github.com/RocketChat/Rocket.Chat/pull/16348)) +- Status Text form validation ([#16121](https://github.com/RocketChat/Rocket.Chat/pull/16121)) - Set the color of the cancel button on modals to #bdbebf for enhanced visibiity ([#15913](https://github.com/RocketChat/Rocket.Chat/pull/15913) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Show more information related to the Omnichannel room closing data ([#16414](https://github.com/RocketChat/Rocket.Chat/pull/16414)) - -- Status Text form validation ([#16121](https://github.com/RocketChat/Rocket.Chat/pull/16121)) - -- Update katex version ([#16393](https://github.com/RocketChat/Rocket.Chat/pull/16393)) +- Remove NRR ([#16071](https://github.com/RocketChat/Rocket.Chat/pull/16071)) ### 🐛 Bug fixes -- "User not found" for direct messages ([#16047](https://github.com/RocketChat/Rocket.Chat/pull/16047)) +- Result of get avatar from url can be null ([#16123](https://github.com/RocketChat/Rocket.Chat/pull/16123) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - `stdout` streamer infinite loop ([#16452](https://github.com/RocketChat/Rocket.Chat/pull/16452)) -- Adding 'lang' tag ([#16375](https://github.com/RocketChat/Rocket.Chat/pull/16375)) +- Option to make a channel default ([#16433](https://github.com/RocketChat/Rocket.Chat/pull/16433) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- api-bypass-rate-limiter permission was not working ([#16080](https://github.com/RocketChat/Rocket.Chat/pull/16080)) +- Rooms not being marked as read sometimes ([#16397](https://github.com/RocketChat/Rocket.Chat/pull/16397)) -- App removal was moving logs to the trash collection ([#16362](https://github.com/RocketChat/Rocket.Chat/pull/16362)) +- Container heights ([#16388](https://github.com/RocketChat/Rocket.Chat/pull/16388)) -- auto translate cache ([#15768](https://github.com/RocketChat/Rocket.Chat/pull/15768) by [@vickyokrm](https://github.com/vickyokrm)) +- Mail Msg Cancel button not closing the flexbar ([#16263](https://github.com/RocketChat/Rocket.Chat/pull/16263)) -- Break message-attachment text to the next line ([#16039](https://github.com/RocketChat/Rocket.Chat/pull/16039) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Highlight freezing the UI ([#16378](https://github.com/RocketChat/Rocket.Chat/pull/16378)) -- Bug on starting Jitsi video calls , multiple messages ([#16601](https://github.com/RocketChat/Rocket.Chat/pull/16601)) +- Adding 'lang' tag ([#16375](https://github.com/RocketChat/Rocket.Chat/pull/16375) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Container heights ([#16388](https://github.com/RocketChat/Rocket.Chat/pull/16388)) +- App removal was moving logs to the trash collection ([#16362](https://github.com/RocketChat/Rocket.Chat/pull/16362)) -- Do not stop on DM imports if one of users was not found ([#16547](https://github.com/RocketChat/Rocket.Chat/pull/16547)) +- Role tags missing - Description field explanation ([#16356](https://github.com/RocketChat/Rocket.Chat/pull/16356) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Drag and drop disabled when file upload is disabled ([#16049](https://github.com/RocketChat/Rocket.Chat/pull/16049)) +- Invite links usage by channel owners/moderators ([#16176](https://github.com/RocketChat/Rocket.Chat/pull/16176)) -- Embedded style when using 'go' command ([#16051](https://github.com/RocketChat/Rocket.Chat/pull/16051)) +- Unknown error when sending message if 'Set a User Name to Alias in Message' setting is enabled ([#16347](https://github.com/RocketChat/Rocket.Chat/pull/16347)) -- Error when successfully joining room by invite link ([#16571](https://github.com/RocketChat/Rocket.Chat/pull/16571)) +- Slack CSV User Importer ([#16253](https://github.com/RocketChat/Rocket.Chat/pull/16253)) -- FileUpload.getBuffer was not working through the Apps-Engine ([#16234](https://github.com/RocketChat/Rocket.Chat/pull/16234)) +- The "click to load" text is hard-coded and not translated. ([#16142](https://github.com/RocketChat/Rocket.Chat/pull/16142)) -- Highlight freezing the UI ([#16378](https://github.com/RocketChat/Rocket.Chat/pull/16378)) +- Integrations list without pagination and outgoing integration creation ([#16233](https://github.com/RocketChat/Rocket.Chat/pull/16233) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Integrations admin page ([#16183](https://github.com/RocketChat/Rocket.Chat/pull/16183)) +- Setup Wizard inputs and Admin Settings ([#16147](https://github.com/RocketChat/Rocket.Chat/pull/16147)) -- Integrations list without pagination and outgoing integration creation ([#16233](https://github.com/RocketChat/Rocket.Chat/pull/16233)) +- FileUpload.getBuffer was not working through the Apps-Engine ([#16234](https://github.com/RocketChat/Rocket.Chat/pull/16234)) -- Introduce AppLivechatBridge.isOnlineAsync method ([#16467](https://github.com/RocketChat/Rocket.Chat/pull/16467)) +- Integrations admin page ([#16183](https://github.com/RocketChat/Rocket.Chat/pull/16183)) -- Invite links proxy URLs not working when using CDN ([#16581](https://github.com/RocketChat/Rocket.Chat/pull/16581)) +- Readme Help wanted section ([#16197](https://github.com/RocketChat/Rocket.Chat/pull/16197)) -- Invite links usage by channel owners/moderators ([#16176](https://github.com/RocketChat/Rocket.Chat/pull/16176)) +- User stuck after reset password ([#16184](https://github.com/RocketChat/Rocket.Chat/pull/16184)) -- Livechat Widget version 1.3.1 ([#16580](https://github.com/RocketChat/Rocket.Chat/pull/16580)) +- auto translate cache ([#15768](https://github.com/RocketChat/Rocket.Chat/pull/15768) by [@vickyokrm](https://github.com/vickyokrm)) + +- Save password without confirmation ([#16060](https://github.com/RocketChat/Rocket.Chat/pull/16060)) -- Login change language button ([#16085](https://github.com/RocketChat/Rocket.Chat/pull/16085)) +- Break message-attachment text to the next line ([#16039](https://github.com/RocketChat/Rocket.Chat/pull/16039) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Mail Msg Cancel button not closing the flexbar ([#16263](https://github.com/RocketChat/Rocket.Chat/pull/16263)) +- SafePorts: Ports 80, 8080 & 443 linked to respective protocols (#16108) ([#16108](https://github.com/RocketChat/Rocket.Chat/pull/16108)) -- Missing edited icon in newly created messages ([#16484](https://github.com/RocketChat/Rocket.Chat/pull/16484)) +- Drag and drop disabled when file upload is disabled ([#16049](https://github.com/RocketChat/Rocket.Chat/pull/16049) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Option to make a channel default ([#16433](https://github.com/RocketChat/Rocket.Chat/pull/16433)) +- Video message sent to wrong room ([#16113](https://github.com/RocketChat/Rocket.Chat/pull/16113)) -- Read Message after receive a message and the room is opened ([#16473](https://github.com/RocketChat/Rocket.Chat/pull/16473)) +- "User not found" for direct messages ([#16047](https://github.com/RocketChat/Rocket.Chat/pull/16047)) -- Readme Help wanted section ([#16197](https://github.com/RocketChat/Rocket.Chat/pull/16197)) +- Embedded style when using 'go' command ([#16051](https://github.com/RocketChat/Rocket.Chat/pull/16051)) -- Result of get avatar from url can be null ([#16123](https://github.com/RocketChat/Rocket.Chat/pull/16123)) +- Thread message icon overlapping text ([#16083](https://github.com/RocketChat/Rocket.Chat/pull/16083)) -- Role tags missing - Description field explanation ([#16356](https://github.com/RocketChat/Rocket.Chat/pull/16356)) +- Login change language button ([#16085](https://github.com/RocketChat/Rocket.Chat/pull/16085) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Rooms not being marked as read sometimes ([#16397](https://github.com/RocketChat/Rocket.Chat/pull/16397)) +- api-bypass-rate-limiter permission was not working ([#16080](https://github.com/RocketChat/Rocket.Chat/pull/16080) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- SafePorts: Ports 80, 8080 & 443 linked to respective protocols (#16108) ([#16108](https://github.com/RocketChat/Rocket.Chat/pull/16108)) +- Missing edited icon in newly created messages ([#16484](https://github.com/RocketChat/Rocket.Chat/pull/16484)) -- Save password without confirmation ([#16060](https://github.com/RocketChat/Rocket.Chat/pull/16060)) +- Read Message after receive a message and the room is opened ([#16473](https://github.com/RocketChat/Rocket.Chat/pull/16473)) - Send message with pending messages ([#16474](https://github.com/RocketChat/Rocket.Chat/pull/16474)) -- Setup Wizard inputs and Admin Settings ([#16147](https://github.com/RocketChat/Rocket.Chat/pull/16147)) - -- Slack CSV User Importer ([#16253](https://github.com/RocketChat/Rocket.Chat/pull/16253)) +- Do not stop on DM imports if one of users was not found ([#16547](https://github.com/RocketChat/Rocket.Chat/pull/16547)) -- The "click to load" text is hard-coded and not translated. ([#16142](https://github.com/RocketChat/Rocket.Chat/pull/16142)) +- Introduce AppLivechatBridge.isOnlineAsync method ([#16467](https://github.com/RocketChat/Rocket.Chat/pull/16467)) -- Thread message icon overlapping text ([#16083](https://github.com/RocketChat/Rocket.Chat/pull/16083)) +- When copying invite links, multiple toastr messages ([#16578](https://github.com/RocketChat/Rocket.Chat/pull/16578)) -- Unknown error when sending message if 'Set a User Name to Alias in Message' setting is enabled ([#16347](https://github.com/RocketChat/Rocket.Chat/pull/16347)) +- Livechat Widget version 1.3.1 ([#16580](https://github.com/RocketChat/Rocket.Chat/pull/16580)) -- User stuck after reset password ([#16184](https://github.com/RocketChat/Rocket.Chat/pull/16184)) +- Error when successfully joining room by invite link ([#16571](https://github.com/RocketChat/Rocket.Chat/pull/16571)) -- Video message sent to wrong room ([#16113](https://github.com/RocketChat/Rocket.Chat/pull/16113)) +- Invite links proxy URLs not working when using CDN ([#16581](https://github.com/RocketChat/Rocket.Chat/pull/16581)) -- When copying invite links, multiple toastr messages ([#16578](https://github.com/RocketChat/Rocket.Chat/pull/16578)) +- Bug on starting Jitsi video calls , multiple messages ([#16601](https://github.com/RocketChat/Rocket.Chat/pull/16601))
🔍 Minor changes -- Add breaking notice regarding TLS ([#16575](https://github.com/RocketChat/Rocket.Chat/pull/16575)) - -- Add Cloud Info to translation dictionary ([#16122](https://github.com/RocketChat/Rocket.Chat/pull/16122) by [@aviral243](https://github.com/aviral243)) +- Revert importer streamed uploads ([#16465](https://github.com/RocketChat/Rocket.Chat/pull/16465)) -- Add missing translations ([#16150](https://github.com/RocketChat/Rocket.Chat/pull/16150) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Regression: Fix app user status change for non-existing user ([#16458](https://github.com/RocketChat/Rocket.Chat/pull/16458)) -- Add Ui Kit container ([#16503](https://github.com/RocketChat/Rocket.Chat/pull/16503)) +- Regression: Fix sending a message not scrolling to bottom ([#16451](https://github.com/RocketChat/Rocket.Chat/pull/16451)) -- Catch zip errors on import file load ([#16494](https://github.com/RocketChat/Rocket.Chat/pull/16494)) +- LingoHub based on develop ([#16450](https://github.com/RocketChat/Rocket.Chat/pull/16450)) -- Disable PR Docker image build ([#16141](https://github.com/RocketChat/Rocket.Chat/pull/16141)) +- Regression: Fix sequential messages grouping ([#16386](https://github.com/RocketChat/Rocket.Chat/pull/16386)) -- Exclude federated and app users from active user count ([#16489](https://github.com/RocketChat/Rocket.Chat/pull/16489)) +- Use GitHub Actions to store builds ([#16443](https://github.com/RocketChat/Rocket.Chat/pull/16443)) -- Fix assets download on CI ([#16352](https://github.com/RocketChat/Rocket.Chat/pull/16352)) +- Regression: recent opened rooms being marked as read ([#16442](https://github.com/RocketChat/Rocket.Chat/pull/16442)) -- Fix github actions accessing the github registry ([#16521](https://github.com/RocketChat/Rocket.Chat/pull/16521) by [@mrsimpson](https://github.com/mrsimpson)) +- Regression: Fix status bar margins ([#16438](https://github.com/RocketChat/Rocket.Chat/pull/16438)) - Fix index creation for apps_logs collection ([#16401](https://github.com/RocketChat/Rocket.Chat/pull/16401)) +- Revert message properties validation ([#16395](https://github.com/RocketChat/Rocket.Chat/pull/16395) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Update apps engine to 1.12.0-beta.2496 ([#16398](https://github.com/RocketChat/Rocket.Chat/pull/16398)) + +- Regression: App deletion wasn’t returning the correct information ([#16360](https://github.com/RocketChat/Rocket.Chat/pull/16360)) + +- Lint: Resolve complexity warnings ([#16114](https://github.com/RocketChat/Rocket.Chat/pull/16114)) + - Fix Preview Docker image build ([#16379](https://github.com/RocketChat/Rocket.Chat/pull/16379)) -- Fix tests ([#16469](https://github.com/RocketChat/Rocket.Chat/pull/16469)) +- Regression: Rate limiter was not working due to Meteor internal changes ([#16361](https://github.com/RocketChat/Rocket.Chat/pull/16361)) -- Fix: License missing from manual register handler ([#16505](https://github.com/RocketChat/Rocket.Chat/pull/16505)) +- Fix assets download on CI ([#16352](https://github.com/RocketChat/Rocket.Chat/pull/16352)) -- LingoHub based on develop ([#16450](https://github.com/RocketChat/Rocket.Chat/pull/16450)) +- Send build artifacts to S3 ([#16237](https://github.com/RocketChat/Rocket.Chat/pull/16237)) -- Lint: Resolve complexity warnings ([#16114](https://github.com/RocketChat/Rocket.Chat/pull/16114)) +- Add missing translations ([#16150](https://github.com/RocketChat/Rocket.Chat/pull/16150) by [@ritwizsinha](https://github.com/ritwizsinha)) -- Merge master into develop & Set version to 2.5.0-develop ([#16107](https://github.com/RocketChat/Rocket.Chat/pull/16107)) +- Disable PR Docker image build ([#16141](https://github.com/RocketChat/Rocket.Chat/pull/16141)) -- Regression: allow private channels to hide system messages ([#16483](https://github.com/RocketChat/Rocket.Chat/pull/16483)) +- Add Cloud Info to translation dictionary ([#16122](https://github.com/RocketChat/Rocket.Chat/pull/16122) by [@aviral243](https://github.com/aviral243)) -- Regression: App deletion wasn’t returning the correct information ([#16360](https://github.com/RocketChat/Rocket.Chat/pull/16360)) +- Merge master into develop & Set version to 2.5.0-develop ([#16107](https://github.com/RocketChat/Rocket.Chat/pull/16107)) -- Regression: Fix app user status change for non-existing user ([#16458](https://github.com/RocketChat/Rocket.Chat/pull/16458)) +- Release 2.4.7 ([#16444](https://github.com/RocketChat/Rocket.Chat/pull/16444) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: fix read unread messages ([#16562](https://github.com/RocketChat/Rocket.Chat/pull/16562)) +- Fix tests ([#16469](https://github.com/RocketChat/Rocket.Chat/pull/16469)) -- Regression: Fix sending a message not scrolling to bottom ([#16451](https://github.com/RocketChat/Rocket.Chat/pull/16451)) +- Regression: prevent submit modal ([#16488](https://github.com/RocketChat/Rocket.Chat/pull/16488)) -- Regression: Fix sequential messages grouping ([#16386](https://github.com/RocketChat/Rocket.Chat/pull/16386)) +- Update presence package to 2.6.1 ([#16486](https://github.com/RocketChat/Rocket.Chat/pull/16486)) -- Regression: Fix status bar margins ([#16438](https://github.com/RocketChat/Rocket.Chat/pull/16438)) +- Regression: allow private channels to hide system messages ([#16483](https://github.com/RocketChat/Rocket.Chat/pull/16483)) - Regression: Fix uikit modal closing on click ([#16475](https://github.com/RocketChat/Rocket.Chat/pull/16475)) - Regression: Fix undefined presence after reconnect ([#16477](https://github.com/RocketChat/Rocket.Chat/pull/16477)) -- Regression: Modal onSubmit ([#16556](https://github.com/RocketChat/Rocket.Chat/pull/16556)) - -- Regression: prevent submit modal ([#16488](https://github.com/RocketChat/Rocket.Chat/pull/16488)) +- Remove users.info being called without need ([#16504](https://github.com/RocketChat/Rocket.Chat/pull/16504)) -- Regression: Rate limiter was not working due to Meteor internal changes ([#16361](https://github.com/RocketChat/Rocket.Chat/pull/16361)) +- Add Ui Kit container ([#16503](https://github.com/RocketChat/Rocket.Chat/pull/16503)) -- Regression: recent opened rooms being marked as read ([#16442](https://github.com/RocketChat/Rocket.Chat/pull/16442)) +- Catch zip errors on import file load ([#16494](https://github.com/RocketChat/Rocket.Chat/pull/16494)) -- Regression: Send app info along with interaction payload to the UI ([#16511](https://github.com/RocketChat/Rocket.Chat/pull/16511)) +- Fix: License missing from manual register handler ([#16505](https://github.com/RocketChat/Rocket.Chat/pull/16505)) -- Regression: send file modal not working via keyboard ([#16607](https://github.com/RocketChat/Rocket.Chat/pull/16607)) +- Exclude federated and app users from active user count ([#16489](https://github.com/RocketChat/Rocket.Chat/pull/16489)) -- Regression: Ui Kit messaging issues (#16513) ([#16513](https://github.com/RocketChat/Rocket.Chat/pull/16513)) +- Regression: Update Uikit ([#16515](https://github.com/RocketChat/Rocket.Chat/pull/16515)) - Regression: UIKit - Send container info on block actions triggered on a message ([#16514](https://github.com/RocketChat/Rocket.Chat/pull/16514)) -- Regression: UIkit input states ([#16552](https://github.com/RocketChat/Rocket.Chat/pull/16552)) +- Use base64 for import files upload to prevent file corruption ([#16516](https://github.com/RocketChat/Rocket.Chat/pull/16516)) -- Regression: UIKit missing select states: error/disabled ([#16540](https://github.com/RocketChat/Rocket.Chat/pull/16540)) +- Regression: Send app info along with interaction payload to the UI ([#16511](https://github.com/RocketChat/Rocket.Chat/pull/16511)) -- Regression: UIKit update modal actions ([#16570](https://github.com/RocketChat/Rocket.Chat/pull/16570)) +- Regression: Ui Kit messaging issues (#16513) ([#16513](https://github.com/RocketChat/Rocket.Chat/pull/16513)) - Regression: update package-lock ([#16528](https://github.com/RocketChat/Rocket.Chat/pull/16528)) -- Regression: Update Uikit ([#16515](https://github.com/RocketChat/Rocket.Chat/pull/16515)) +- Regression: UIkit input states ([#16552](https://github.com/RocketChat/Rocket.Chat/pull/16552)) -- Release 2.4.7 ([#16444](https://github.com/RocketChat/Rocket.Chat/pull/16444)) +- Regression: UIKit missing select states: error/disabled ([#16540](https://github.com/RocketChat/Rocket.Chat/pull/16540)) - Release 2.4.9 ([#16544](https://github.com/RocketChat/Rocket.Chat/pull/16544)) -- Remove users.info being called without need ([#16504](https://github.com/RocketChat/Rocket.Chat/pull/16504)) - -- Revert importer streamed uploads ([#16465](https://github.com/RocketChat/Rocket.Chat/pull/16465)) - -- Revert message properties validation ([#16395](https://github.com/RocketChat/Rocket.Chat/pull/16395)) - -- Send build artifacts to S3 ([#16237](https://github.com/RocketChat/Rocket.Chat/pull/16237)) +- Regression: fix read unread messages ([#16562](https://github.com/RocketChat/Rocket.Chat/pull/16562)) -- Update apps engine to 1.12.0-beta.2496 ([#16398](https://github.com/RocketChat/Rocket.Chat/pull/16398)) +- Regression: UIKit update modal actions ([#16570](https://github.com/RocketChat/Rocket.Chat/pull/16570)) - Update Apps-Engine version ([#16584](https://github.com/RocketChat/Rocket.Chat/pull/16584)) -- Update presence package to 2.6.1 ([#16486](https://github.com/RocketChat/Rocket.Chat/pull/16486)) +- Add breaking notice regarding TLS ([#16575](https://github.com/RocketChat/Rocket.Chat/pull/16575)) -- Use base64 for import files upload to prevent file corruption ([#16516](https://github.com/RocketChat/Rocket.Chat/pull/16516)) +- Regression: Modal onSubmit ([#16556](https://github.com/RocketChat/Rocket.Chat/pull/16556)) -- Use GitHub Actions to store builds ([#16443](https://github.com/RocketChat/Rocket.Chat/pull/16443)) +- Regression: send file modal not working via keyboard ([#16607](https://github.com/RocketChat/Rocket.Chat/pull/16607)) + +- Fix github actions accessing the github registry ([#16521](https://github.com/RocketChat/Rocket.Chat/pull/16521) by [@mrsimpson](https://github.com/mrsimpson))
### 👩‍💻👨‍💻 Contributors 😍 - [@Cool-fire](https://github.com/Cool-fire) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@antkaz](https://github.com/antkaz) - [@aviral243](https://github.com/aviral243) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@mrsimpson](https://github.com/mrsimpson) - [@ritwizsinha](https://github.com/ritwizsinha) - [@vickyokrm](https://github.com/vickyokrm) @@ -2374,7 +2662,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@ashwaniYDV](https://github.com/ashwaniYDV) - [@d-gubert](https://github.com/d-gubert) @@ -2382,7 +2669,6 @@ - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@lolimay](https://github.com/lolimay) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -2417,11 +2703,14 @@ ### 🐛 Bug fixes -- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495)) +- users.info endpoint not handling the error if the user does not exist ([#16495](https://github.com/RocketChat/Rocket.Chat/pull/16495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@sampaiodiego](https://github.com/sampaiodiego) # 2.4.9 @@ -2482,19 +2771,22 @@ ### 🐛 Bug fixes -- Option to make a channel default ([#16433](https://github.com/RocketChat/Rocket.Chat/pull/16433)) +- Option to make a channel default ([#16433](https://github.com/RocketChat/Rocket.Chat/pull/16433) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
🔍 Minor changes -- Release 2.4.7 ([#16444](https://github.com/RocketChat/Rocket.Chat/pull/16444)) +- Release 2.4.7 ([#16444](https://github.com/RocketChat/Rocket.Chat/pull/16444) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@ggazzo](https://github.com/ggazzo) # 2.4.6 @@ -2509,17 +2801,20 @@ 🔍 Minor changes -- Fix index creation for apps_logs collection ([#16401](https://github.com/RocketChat/Rocket.Chat/pull/16401)) +- Release 2.4.6 ([#16402](https://github.com/RocketChat/Rocket.Chat/pull/16402) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 2.4.6 ([#16402](https://github.com/RocketChat/Rocket.Chat/pull/16402)) +- Revert message properties validation ([#16395](https://github.com/RocketChat/Rocket.Chat/pull/16395) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Revert message properties validation ([#16395](https://github.com/RocketChat/Rocket.Chat/pull/16395)) +- Fix index creation for apps_logs collection ([#16401](https://github.com/RocketChat/Rocket.Chat/pull/16401)) -### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2560,10 +2855,10 @@ 🔍 Minor changes -- Regression: Rate limiter was not working due to Meteor internal changes ([#16361](https://github.com/RocketChat/Rocket.Chat/pull/16361)) - - Release 2.4.4 ([#16377](https://github.com/RocketChat/Rocket.Chat/pull/16377)) +- Regression: Rate limiter was not working due to Meteor internal changes ([#16361](https://github.com/RocketChat/Rocket.Chat/pull/16361)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -2582,10 +2877,10 @@ ### 🐛 Bug fixes -- Invite links usage by channel owners/moderators ([#16176](https://github.com/RocketChat/Rocket.Chat/pull/16176)) - - Unknown error when sending message if 'Set a User Name to Alias in Message' setting is enabled ([#16347](https://github.com/RocketChat/Rocket.Chat/pull/16347)) +- Invite links usage by channel owners/moderators ([#16176](https://github.com/RocketChat/Rocket.Chat/pull/16176)) +
🔍 Minor changes @@ -2610,25 +2905,28 @@ ### 🐛 Bug fixes -- Integrations list without pagination and outgoing integration creation ([#16233](https://github.com/RocketChat/Rocket.Chat/pull/16233)) - - Setup Wizard inputs and Admin Settings ([#16147](https://github.com/RocketChat/Rocket.Chat/pull/16147)) - Slack CSV User Importer ([#16253](https://github.com/RocketChat/Rocket.Chat/pull/16253)) +- Integrations list without pagination and outgoing integration creation ([#16233](https://github.com/RocketChat/Rocket.Chat/pull/16233) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + - User stuck after reset password ([#16184](https://github.com/RocketChat/Rocket.Chat/pull/16184))
🔍 Minor changes -- Release 2.4.2 ([#16274](https://github.com/RocketChat/Rocket.Chat/pull/16274)) +- Release 2.4.2 ([#16274](https://github.com/RocketChat/Rocket.Chat/pull/16274) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@ggazzo](https://github.com/ggazzo) - [@sampaiodiego](https://github.com/sampaiodiego) - [@tassoevan](https://github.com/tassoevan) @@ -2644,24 +2942,27 @@ ### 🐛 Bug fixes -- Add missing password field back to administration area ([#16171](https://github.com/RocketChat/Rocket.Chat/pull/16171)) - - Enable apps change properties of the sender on the message as before ([#16189](https://github.com/RocketChat/Rocket.Chat/pull/16189)) -- JS errors on Administration page ([#16139](https://github.com/RocketChat/Rocket.Chat/pull/16139)) +- Add missing password field back to administration area ([#16171](https://github.com/RocketChat/Rocket.Chat/pull/16171)) + +- JS errors on Administration page ([#16139](https://github.com/RocketChat/Rocket.Chat/pull/16139) by [@mariaeduardacunha](https://github.com/mariaeduardacunha))
🔍 Minor changes -- Release 2.4.1 ([#16195](https://github.com/RocketChat/Rocket.Chat/pull/16195)) +- Release 2.4.1 ([#16195](https://github.com/RocketChat/Rocket.Chat/pull/16195) by [@mariaeduardacunha](https://github.com/mariaeduardacunha))
+### 👩‍💻👨‍💻 Contributors 😍 + +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@d-gubert](https://github.com/d-gubert) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2676,184 +2977,186 @@ ### 🎉 New features -- Apps-Engine event for when a livechat room is closed ([#15837](https://github.com/RocketChat/Rocket.Chat/pull/15837)) - -- Do not print emails in console on production mode ([#15928](https://github.com/RocketChat/Rocket.Chat/pull/15928)) - - Invite links: share a link to invite users ([#15933](https://github.com/RocketChat/Rocket.Chat/pull/15933)) - Logout other clients when changing password ([#15927](https://github.com/RocketChat/Rocket.Chat/pull/15927)) +- Do not print emails in console on production mode ([#15928](https://github.com/RocketChat/Rocket.Chat/pull/15928)) + +- Apps-Engine event for when a livechat room is closed ([#15837](https://github.com/RocketChat/Rocket.Chat/pull/15837)) + ### 🚀 Improvements -- Add deprecate warning in some unused publications ([#15935](https://github.com/RocketChat/Rocket.Chat/pull/15935)) +- Replace livechat:inquiry publication by REST and Streamer ([#15977](https://github.com/RocketChat/Rocket.Chat/pull/15977) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat realtime dashboard ([#15792](https://github.com/RocketChat/Rocket.Chat/pull/15792)) +- Sorting on livechat analytics queries were wrong ([#16021](https://github.com/RocketChat/Rocket.Chat/pull/16021) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move 'Reply in Thread' button from menu to message actions ([#15685](https://github.com/RocketChat/Rocket.Chat/pull/15685) by [@antkaz](https://github.com/antkaz)) +- Replace fullUserData publication by REST ([#15650](https://github.com/RocketChat/Rocket.Chat/pull/15650) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Replace integrations and integrationHistory publications by REST ([#15885](https://github.com/RocketChat/Rocket.Chat/pull/15885) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Notify logged agents when their departments change ([#16033](https://github.com/RocketChat/Rocket.Chat/pull/16033)) -- Replace adminRooms publication by REST ([#15948](https://github.com/RocketChat/Rocket.Chat/pull/15948)) +- Replace fullEmojiData publication by REST ([#15901](https://github.com/RocketChat/Rocket.Chat/pull/15901) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace customSounds publication by REST ([#15907](https://github.com/RocketChat/Rocket.Chat/pull/15907)) +- Replace adminRooms publication by REST ([#15948](https://github.com/RocketChat/Rocket.Chat/pull/15948) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace discussionsOfARoom publication by REST ([#15908](https://github.com/RocketChat/Rocket.Chat/pull/15908)) +- Replace webdavAccounts publication by REST ([#15926](https://github.com/RocketChat/Rocket.Chat/pull/15926) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace forgotten livechat:departmentAgents subscriptions ([#15970](https://github.com/RocketChat/Rocket.Chat/pull/15970)) +- Replace oauth publications by REST ([#15878](https://github.com/RocketChat/Rocket.Chat/pull/15878) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace fullEmojiData publication by REST ([#15901](https://github.com/RocketChat/Rocket.Chat/pull/15901)) +- Replace userAutocomplete publication by REST ([#15956](https://github.com/RocketChat/Rocket.Chat/pull/15956) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace fullUserData publication by REST ([#15650](https://github.com/RocketChat/Rocket.Chat/pull/15650)) +- Replace discussionsOfARoom publication by REST ([#15908](https://github.com/RocketChat/Rocket.Chat/pull/15908) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace fullUserStatusData publication by REST ([#15942](https://github.com/RocketChat/Rocket.Chat/pull/15942)) +- Move 'Reply in Thread' button from menu to message actions ([#15685](https://github.com/RocketChat/Rocket.Chat/pull/15685) by [@antkaz](https://github.com/antkaz)) -- Replace integrations and integrationHistory publications by REST ([#15885](https://github.com/RocketChat/Rocket.Chat/pull/15885)) +- Replace customSounds publication by REST ([#15907](https://github.com/RocketChat/Rocket.Chat/pull/15907) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:customFields to REST ([#15496](https://github.com/RocketChat/Rocket.Chat/pull/15496)) +- Replace stdout publication by REST ([#16004](https://github.com/RocketChat/Rocket.Chat/pull/16004) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:inquiry publication by REST and Streamer ([#15977](https://github.com/RocketChat/Rocket.Chat/pull/15977)) +- Replace fullUserStatusData publication by REST ([#15942](https://github.com/RocketChat/Rocket.Chat/pull/15942) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:managers publication by REST ([#15944](https://github.com/RocketChat/Rocket.Chat/pull/15944)) +- Replace userData subscriptions by REST ([#15916](https://github.com/RocketChat/Rocket.Chat/pull/15916) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:officeHour publication to REST ([#15503](https://github.com/RocketChat/Rocket.Chat/pull/15503)) +- Replace roles publication by REST ([#15910](https://github.com/RocketChat/Rocket.Chat/pull/15910) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:queue subscription ([#15612](https://github.com/RocketChat/Rocket.Chat/pull/15612)) +- Livechat realtime dashboard ([#15792](https://github.com/RocketChat/Rocket.Chat/pull/15792) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:rooms publication by REST ([#15968](https://github.com/RocketChat/Rocket.Chat/pull/15968)) +- Replace livechat:rooms publication by REST ([#15968](https://github.com/RocketChat/Rocket.Chat/pull/15968) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:visitorHistory publication by REST ([#15943](https://github.com/RocketChat/Rocket.Chat/pull/15943)) +- Replace livechat:officeHour publication to REST ([#15503](https://github.com/RocketChat/Rocket.Chat/pull/15503) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace oauth publications by REST ([#15878](https://github.com/RocketChat/Rocket.Chat/pull/15878)) +- Replace forgotten livechat:departmentAgents subscriptions ([#15970](https://github.com/RocketChat/Rocket.Chat/pull/15970) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace roles publication by REST ([#15910](https://github.com/RocketChat/Rocket.Chat/pull/15910)) +- Replace livechat:managers publication by REST ([#15944](https://github.com/RocketChat/Rocket.Chat/pull/15944) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace stdout publication by REST ([#16004](https://github.com/RocketChat/Rocket.Chat/pull/16004)) +- Replace livechat:visitorHistory publication by REST ([#15943](https://github.com/RocketChat/Rocket.Chat/pull/15943) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace userAutocomplete publication by REST ([#15956](https://github.com/RocketChat/Rocket.Chat/pull/15956)) +- Replace livechat:queue subscription ([#15612](https://github.com/RocketChat/Rocket.Chat/pull/15612) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace userData subscriptions by REST ([#15916](https://github.com/RocketChat/Rocket.Chat/pull/15916)) +- Add deprecate warning in some unused publications ([#15935](https://github.com/RocketChat/Rocket.Chat/pull/15935) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace webdavAccounts publication by REST ([#15926](https://github.com/RocketChat/Rocket.Chat/pull/15926)) +- Replace livechat:customFields to REST ([#15496](https://github.com/RocketChat/Rocket.Chat/pull/15496) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Sorting on livechat analytics queries were wrong ([#16021](https://github.com/RocketChat/Rocket.Chat/pull/16021)) +- Validate user identity on send message process ([#15887](https://github.com/RocketChat/Rocket.Chat/pull/15887) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Update ui for Roles field ([#15888](https://github.com/RocketChat/Rocket.Chat/pull/15888) by [@antkaz](https://github.com/antkaz)) -- Validate user identity on send message process ([#15887](https://github.com/RocketChat/Rocket.Chat/pull/15887)) - ### 🐛 Bug fixes -- Add time format for latest message on the sidebar ([#15930](https://github.com/RocketChat/Rocket.Chat/pull/15930) by [@ritwizsinha](https://github.com/ritwizsinha)) - -- Added Join button to Read Only rooms. ([#16016](https://github.com/RocketChat/Rocket.Chat/pull/16016)) +- Importer: Variable name appearing instead of it's value ([#16010](https://github.com/RocketChat/Rocket.Chat/pull/16010)) -- Admin menu not showing after renamed integration permissions ([#15937](https://github.com/RocketChat/Rocket.Chat/pull/15937) by [@n-se](https://github.com/n-se)) +- Add time format for latest message on the sidebar ([#15930](https://github.com/RocketChat/Rocket.Chat/pull/15930) by [@ritwizsinha](https://github.com/ritwizsinha)) - Admin Setting descriptions and Storybook ([#15994](https://github.com/RocketChat/Rocket.Chat/pull/15994)) -- Administration UI issues ([#15934](https://github.com/RocketChat/Rocket.Chat/pull/15934)) +- width of upload-progress-text ([#16023](https://github.com/RocketChat/Rocket.Chat/pull/16023) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Auto load image user preference ([#15895](https://github.com/RocketChat/Rocket.Chat/pull/15895)) +- Message list scrolling to bottom on reactions ([#16018](https://github.com/RocketChat/Rocket.Chat/pull/16018) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Changed renderMessage priority, fixed Katex on/off setting ([#16012](https://github.com/RocketChat/Rocket.Chat/pull/16012)) +- SAML logout error ([#15978](https://github.com/RocketChat/Rocket.Chat/pull/15978)) -- Default value of the Livechat WebhookUrl setting ([#15898](https://github.com/RocketChat/Rocket.Chat/pull/15898)) +- Added Join button to Read Only rooms. ([#16016](https://github.com/RocketChat/Rocket.Chat/pull/16016)) -- Don't throw an error when a message is prevented from apps engine ([#15850](https://github.com/RocketChat/Rocket.Chat/pull/15850) by [@wreiske](https://github.com/wreiske)) +- z-index of new message button ([#16013](https://github.com/RocketChat/Rocket.Chat/pull/16013) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Dropzone being stuck when dragging to thread ([#16006](https://github.com/RocketChat/Rocket.Chat/pull/16006)) +- new message popup ([#16017](https://github.com/RocketChat/Rocket.Chat/pull/16017) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) + +- Changed renderMessage priority, fixed Katex on/off setting ([#16012](https://github.com/RocketChat/Rocket.Chat/pull/16012)) - Empty security section when 2fa is disabled ([#16009](https://github.com/RocketChat/Rocket.Chat/pull/16009)) -- Error of bind environment on user data export ([#15985](https://github.com/RocketChat/Rocket.Chat/pull/15985)) +- Dropzone being stuck when dragging to thread ([#16006](https://github.com/RocketChat/Rocket.Chat/pull/16006)) -- Fix sort livechat rooms ([#16001](https://github.com/RocketChat/Rocket.Chat/pull/16001)) +- Fix sort livechat rooms ([#16001](https://github.com/RocketChat/Rocket.Chat/pull/16001) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Guest's name field missing when forwarding livechat rooms ([#15991](https://github.com/RocketChat/Rocket.Chat/pull/15991)) -- Importer: Variable name appearing instead of it's value ([#16010](https://github.com/RocketChat/Rocket.Chat/pull/16010)) +- Error of bind environment on user data export ([#15985](https://github.com/RocketChat/Rocket.Chat/pull/15985)) - Incorrect translation key on Livechat Appearance template ([#15975](https://github.com/RocketChat/Rocket.Chat/pull/15975) by [@ritwizsinha](https://github.com/ritwizsinha)) +- Livechat Widget version 1.3.0 ([#15966](https://github.com/RocketChat/Rocket.Chat/pull/15966)) + - Invalid Redirect URI on Custom OAuth ([#15957](https://github.com/RocketChat/Rocket.Chat/pull/15957)) - Livechat build without NodeJS installed ([#15903](https://github.com/RocketChat/Rocket.Chat/pull/15903) by [@localguru](https://github.com/localguru)) -- Livechat permissions being overwrite on server restart ([#15915](https://github.com/RocketChat/Rocket.Chat/pull/15915)) +- Admin menu not showing after renamed integration permissions ([#15937](https://github.com/RocketChat/Rocket.Chat/pull/15937) by [@n-se](https://github.com/n-se)) -- Livechat triggers not firing ([#15897](https://github.com/RocketChat/Rocket.Chat/pull/15897)) +- Administration UI issues ([#15934](https://github.com/RocketChat/Rocket.Chat/pull/15934)) -- Livechat Widget version 1.3.0 ([#15966](https://github.com/RocketChat/Rocket.Chat/pull/15966)) +- Server crash on sync with no response ([#15919](https://github.com/RocketChat/Rocket.Chat/pull/15919)) -- Message list scrolling to bottom on reactions ([#16018](https://github.com/RocketChat/Rocket.Chat/pull/16018)) +- Livechat permissions being overwrite on server restart ([#15915](https://github.com/RocketChat/Rocket.Chat/pull/15915)) -- new message popup ([#16017](https://github.com/RocketChat/Rocket.Chat/pull/16017)) +- Livechat triggers not firing ([#15897](https://github.com/RocketChat/Rocket.Chat/pull/15897)) -- Registration form was hidden when login form was disabled ([#16062](https://github.com/RocketChat/Rocket.Chat/pull/16062)) +- Auto load image user preference ([#15895](https://github.com/RocketChat/Rocket.Chat/pull/15895)) -- SAML logout error ([#15978](https://github.com/RocketChat/Rocket.Chat/pull/15978)) +- Don't throw an error when a message is prevented from apps engine ([#15850](https://github.com/RocketChat/Rocket.Chat/pull/15850) by [@wreiske](https://github.com/wreiske)) -- Server crash on sync with no response ([#15919](https://github.com/RocketChat/Rocket.Chat/pull/15919)) +- Default value of the Livechat WebhookUrl setting ([#15898](https://github.com/RocketChat/Rocket.Chat/pull/15898)) - Thread Replies in Search ([#15841](https://github.com/RocketChat/Rocket.Chat/pull/15841)) -- width of upload-progress-text ([#16023](https://github.com/RocketChat/Rocket.Chat/pull/16023)) - -- z-index of new message button ([#16013](https://github.com/RocketChat/Rocket.Chat/pull/16013)) +- Registration form was hidden when login form was disabled ([#16062](https://github.com/RocketChat/Rocket.Chat/pull/16062))
🔍 Minor changes -- [CHORE] Replace findOne with findOneById methods (Omnichannel) ([#15894](https://github.com/RocketChat/Rocket.Chat/pull/15894)) +- Update NodeJS to 8.17.0 ([#16043](https://github.com/RocketChat/Rocket.Chat/pull/16043)) -- Change migration number 169 <-> 170 ([#15940](https://github.com/RocketChat/Rocket.Chat/pull/15940)) +- Fix typo in Italian translation ([#15998](https://github.com/RocketChat/Rocket.Chat/pull/15998) by [@iannuzzelli](https://github.com/iannuzzelli)) -- Check package-lock consistency with package.json on CI ([#15961](https://github.com/RocketChat/Rocket.Chat/pull/15961)) +- Update Meteor to 1.8.3 ([#16037](https://github.com/RocketChat/Rocket.Chat/pull/16037)) -- Enable typescript lint ([#15979](https://github.com/RocketChat/Rocket.Chat/pull/15979)) +- Some performance improvements ([#15886](https://github.com/RocketChat/Rocket.Chat/pull/15886)) -- Fix 'How it all started' link on README ([#15962](https://github.com/RocketChat/Rocket.Chat/pull/15962) by [@zdumitru](https://github.com/zdumitru)) +- Fixed Grammatical Mistakes. ([#15570](https://github.com/RocketChat/Rocket.Chat/pull/15570) by [@breaking-let](https://github.com/breaking-let)) -- Fix typo in Italian translation ([#15998](https://github.com/RocketChat/Rocket.Chat/pull/15998) by [@iannuzzelli](https://github.com/iannuzzelli)) +- Upgrade limax to 2.0.0 ([#16020](https://github.com/RocketChat/Rocket.Chat/pull/16020)) -- Fixed Grammatical Mistakes. ([#15570](https://github.com/RocketChat/Rocket.Chat/pull/15570) by [@breaking-let](https://github.com/breaking-let)) +- Remove unnecessary cron starts ([#15989](https://github.com/RocketChat/Rocket.Chat/pull/15989)) -- GitHub CI ([#15918](https://github.com/RocketChat/Rocket.Chat/pull/15918)) +- Enable typescript lint ([#15979](https://github.com/RocketChat/Rocket.Chat/pull/15979)) - LingoHub based on develop ([#15988](https://github.com/RocketChat/Rocket.Chat/pull/15988)) -- LingoHub based on develop ([#15939](https://github.com/RocketChat/Rocket.Chat/pull/15939)) +- Fix 'How it all started' link on README ([#15962](https://github.com/RocketChat/Rocket.Chat/pull/15962) by [@zdumitru](https://github.com/zdumitru)) -- Merge master into develop & Set version to 3.0.0-develop ([#15872](https://github.com/RocketChat/Rocket.Chat/pull/15872)) +- Check package-lock consistency with package.json on CI ([#15961](https://github.com/RocketChat/Rocket.Chat/pull/15961)) - Meteor update to 1.8.2 ([#15873](https://github.com/RocketChat/Rocket.Chat/pull/15873)) -- Regression: Missing button to copy Invite links ([#16084](https://github.com/RocketChat/Rocket.Chat/pull/16084)) +- GitHub CI ([#15918](https://github.com/RocketChat/Rocket.Chat/pull/15918)) -- Regression: Update components ([#16053](https://github.com/RocketChat/Rocket.Chat/pull/16053)) +- Change migration number 169 <-> 170 ([#15940](https://github.com/RocketChat/Rocket.Chat/pull/15940)) -- Remove unnecessary cron starts ([#15989](https://github.com/RocketChat/Rocket.Chat/pull/15989)) +- LingoHub based on develop ([#15939](https://github.com/RocketChat/Rocket.Chat/pull/15939)) -- Some performance improvements ([#15886](https://github.com/RocketChat/Rocket.Chat/pull/15886)) +- [CHORE] Replace findOne with findOneById methods (Omnichannel) ([#15894](https://github.com/RocketChat/Rocket.Chat/pull/15894)) -- Update Meteor to 1.8.3 ([#16037](https://github.com/RocketChat/Rocket.Chat/pull/16037)) +- Merge master into develop & Set version to 3.0.0-develop ([#15872](https://github.com/RocketChat/Rocket.Chat/pull/15872)) -- Update NodeJS to 8.17.0 ([#16043](https://github.com/RocketChat/Rocket.Chat/pull/16043)) +- Regression: Update components ([#16053](https://github.com/RocketChat/Rocket.Chat/pull/16053)) -- Upgrade limax to 2.0.0 ([#16020](https://github.com/RocketChat/Rocket.Chat/pull/16020)) +- Regression: Missing button to copy Invite links ([#16084](https://github.com/RocketChat/Rocket.Chat/pull/16084))
### 👩‍💻👨‍💻 Contributors 😍 +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@antkaz](https://github.com/antkaz) - [@breaking-let](https://github.com/breaking-let) - [@iannuzzelli](https://github.com/iannuzzelli) - [@localguru](https://github.com/localguru) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@n-se](https://github.com/n-se) - [@ritwizsinha](https://github.com/ritwizsinha) - [@wreiske](https://github.com/wreiske) @@ -2861,7 +3164,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@ashwaniYDV](https://github.com/ashwaniYDV) - [@d-gubert](https://github.com/d-gubert) @@ -2869,7 +3171,6 @@ - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@lolimay](https://github.com/lolimay) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -2924,18 +3225,18 @@ ### 🐛 Bug fixes -- Admin menu not showing after renamed integration permissions ([#15937](https://github.com/RocketChat/Rocket.Chat/pull/15937) by [@n-se](https://github.com/n-se)) - -- Administration UI issues ([#15934](https://github.com/RocketChat/Rocket.Chat/pull/15934)) +- Default value of the Livechat WebhookUrl setting ([#15898](https://github.com/RocketChat/Rocket.Chat/pull/15898)) -- Auto load image user preference ([#15895](https://github.com/RocketChat/Rocket.Chat/pull/15895)) +- Admin menu not showing after renamed integration permissions ([#15937](https://github.com/RocketChat/Rocket.Chat/pull/15937) by [@n-se](https://github.com/n-se)) -- Default value of the Livechat WebhookUrl setting ([#15898](https://github.com/RocketChat/Rocket.Chat/pull/15898)) +- Administration UI issues ([#15934](https://github.com/RocketChat/Rocket.Chat/pull/15934)) - Livechat permissions being overwrite on server restart ([#15915](https://github.com/RocketChat/Rocket.Chat/pull/15915)) - Livechat triggers not firing ([#15897](https://github.com/RocketChat/Rocket.Chat/pull/15897)) +- Auto load image user preference ([#15895](https://github.com/RocketChat/Rocket.Chat/pull/15895)) + ### 👩‍💻👨‍💻 Contributors 😍 - [@n-se](https://github.com/n-se) @@ -2957,167 +3258,169 @@ ### 🎉 New features -- Add a new stream to emit and listen room data events ([#15770](https://github.com/RocketChat/Rocket.Chat/pull/15770)) +- Add forms to view and edit Livechat agents info ([#15703](https://github.com/RocketChat/Rocket.Chat/pull/15703)) -- Add ability to users reset their own E2E key ([#15777](https://github.com/RocketChat/Rocket.Chat/pull/15777)) +- Workspace Manual Registration ([#15442](https://github.com/RocketChat/Rocket.Chat/pull/15442)) -- add delete-own-message permission ([#15512](https://github.com/RocketChat/Rocket.Chat/pull/15512)) +- Option on livechat departments to ensure a chat has tags before closing ([#15752](https://github.com/RocketChat/Rocket.Chat/pull/15752)) -- Add forms to view and edit Livechat agents info ([#15703](https://github.com/RocketChat/Rocket.Chat/pull/15703)) +- Setting to dismiss desktop notification only after interaction ([#14807](https://github.com/RocketChat/Rocket.Chat/pull/14807) by [@mpdbl](https://github.com/mpdbl)) -- Allow Regexes on SAML user field mapping ([#15743](https://github.com/RocketChat/Rocket.Chat/pull/15743)) +- Option for admins to set a random password to a user ([#15818](https://github.com/RocketChat/Rocket.Chat/pull/15818)) -- Livechat analytics ([#15230](https://github.com/RocketChat/Rocket.Chat/pull/15230)) +- SAML login without popup windows ([#15836](https://github.com/RocketChat/Rocket.Chat/pull/15836)) -- Livechat analytics functions ([#15666](https://github.com/RocketChat/Rocket.Chat/pull/15666)) +- Add ability to users reset their own E2E key ([#15777](https://github.com/RocketChat/Rocket.Chat/pull/15777)) - Notify users when their email address change ([#15828](https://github.com/RocketChat/Rocket.Chat/pull/15828)) -- Option for admins to set a random password to a user ([#15818](https://github.com/RocketChat/Rocket.Chat/pull/15818)) +- Add a new stream to emit and listen room data events ([#15770](https://github.com/RocketChat/Rocket.Chat/pull/15770)) -- Option on livechat departments to ensure a chat has tags before closing ([#15752](https://github.com/RocketChat/Rocket.Chat/pull/15752)) +- Livechat analytics ([#15230](https://github.com/RocketChat/Rocket.Chat/pull/15230) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- SAML login without popup windows ([#15836](https://github.com/RocketChat/Rocket.Chat/pull/15836)) +- Allow Regexes on SAML user field mapping ([#15743](https://github.com/RocketChat/Rocket.Chat/pull/15743)) -- Setting to dismiss desktop notification only after interaction ([#14807](https://github.com/RocketChat/Rocket.Chat/pull/14807) by [@mpdbl](https://github.com/mpdbl)) +- Livechat analytics functions ([#15666](https://github.com/RocketChat/Rocket.Chat/pull/15666) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Workspace Manual Registration ([#15442](https://github.com/RocketChat/Rocket.Chat/pull/15442)) +- add delete-own-message permission ([#15512](https://github.com/RocketChat/Rocket.Chat/pull/15512)) ### 🚀 Improvements -- Add more fields to iframe integration event `unread-changed-by-subscription` ([#15786](https://github.com/RocketChat/Rocket.Chat/pull/15786)) +- Make push notification batchsize and interval configurable ([#15804](https://github.com/RocketChat/Rocket.Chat/pull/15804) by [@Exordian](https://github.com/Exordian)) -- Administration UI - React and Fuselage components ([#15452](https://github.com/RocketChat/Rocket.Chat/pull/15452)) +- Add more fields to iframe integration event `unread-changed-by-subscription` ([#15786](https://github.com/RocketChat/Rocket.Chat/pull/15786) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Allow dragging of images and text from browsers ([#15691](https://github.com/RocketChat/Rocket.Chat/pull/15691)) -- dynamic import livechat views ([#15775](https://github.com/RocketChat/Rocket.Chat/pull/15775)) +- Unfollow own threads ([#15740](https://github.com/RocketChat/Rocket.Chat/pull/15740)) -- Lazyload Chart.js ([#15764](https://github.com/RocketChat/Rocket.Chat/pull/15764)) +- Administration UI - React and Fuselage components ([#15452](https://github.com/RocketChat/Rocket.Chat/pull/15452)) -- Lazyload qrcode lib ([#15741](https://github.com/RocketChat/Rocket.Chat/pull/15741)) +- Replace livechat:pagesvisited publication by REST ([#15629](https://github.com/RocketChat/Rocket.Chat/pull/15629) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Make push notification batchsize and interval configurable ([#15804](https://github.com/RocketChat/Rocket.Chat/pull/15804) by [@Exordian](https://github.com/Exordian)) +- Replace livechat:externalMessages publication by REST ([#15643](https://github.com/RocketChat/Rocket.Chat/pull/15643) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove "EmojiCustom" unused subscription ([#15658](https://github.com/RocketChat/Rocket.Chat/pull/15658)) +- dynamic import livechat views ([#15775](https://github.com/RocketChat/Rocket.Chat/pull/15775)) -- remove computations inside messageAttachment ([#15716](https://github.com/RocketChat/Rocket.Chat/pull/15716)) +- Replace livechat:visitorInfo publication by REST ([#15639](https://github.com/RocketChat/Rocket.Chat/pull/15639) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:departmentAgents subscription to REST ([#15529](https://github.com/RocketChat/Rocket.Chat/pull/15529)) +- Lazyload Chart.js ([#15764](https://github.com/RocketChat/Rocket.Chat/pull/15764)) -- Replace livechat:externalMessages publication by REST ([#15643](https://github.com/RocketChat/Rocket.Chat/pull/15643)) +- Lazyload qrcode lib ([#15741](https://github.com/RocketChat/Rocket.Chat/pull/15741)) -- Replace livechat:pagesvisited publication by REST ([#15629](https://github.com/RocketChat/Rocket.Chat/pull/15629)) +- Replace personalAccessTokens publication by REST ([#15644](https://github.com/RocketChat/Rocket.Chat/pull/15644) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:visitorInfo publication by REST ([#15639](https://github.com/RocketChat/Rocket.Chat/pull/15639)) +- Replace livechat:departmentAgents subscription to REST ([#15529](https://github.com/RocketChat/Rocket.Chat/pull/15529) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace personalAccessTokens publication by REST ([#15644](https://github.com/RocketChat/Rocket.Chat/pull/15644)) +- remove computations inside messageAttachment ([#15716](https://github.com/RocketChat/Rocket.Chat/pull/15716)) -- Replace snippetedMessage publication by REST ([#15679](https://github.com/RocketChat/Rocket.Chat/pull/15679)) +- Replace snippetedMessage publication by REST ([#15679](https://github.com/RocketChat/Rocket.Chat/pull/15679) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace snipptedMessages publication by REST ([#15678](https://github.com/RocketChat/Rocket.Chat/pull/15678)) +- Replace snipptedMessages publication by REST ([#15678](https://github.com/RocketChat/Rocket.Chat/pull/15678) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Unfollow own threads ([#15740](https://github.com/RocketChat/Rocket.Chat/pull/15740)) +- Remove "EmojiCustom" unused subscription ([#15658](https://github.com/RocketChat/Rocket.Chat/pull/15658) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) ### 🐛 Bug fixes -- Add button to reset.css ([#15773](https://github.com/RocketChat/Rocket.Chat/pull/15773)) - -- Add livechat agents into departments ([#15732](https://github.com/RocketChat/Rocket.Chat/pull/15732)) +- Missing Privacy Policy Agree on register ([#15832](https://github.com/RocketChat/Rocket.Chat/pull/15832)) -- Apply server side filters on Livechat lists ([#15717](https://github.com/RocketChat/Rocket.Chat/pull/15717)) +- Push: fix notification priority for google (FCM) ([#15803](https://github.com/RocketChat/Rocket.Chat/pull/15803) by [@Exordian](https://github.com/Exordian)) -- Block Show_Setup_Wizard Option ([#15623](https://github.com/RocketChat/Rocket.Chat/pull/15623)) +- Not valid relative URLs on message attachments ([#15651](https://github.com/RocketChat/Rocket.Chat/pull/15651) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Changed cmsPage Style ([#15632](https://github.com/RocketChat/Rocket.Chat/pull/15632)) +- REST endpoint `chat.syncMessages` returning an error with deleted messages ([#15824](https://github.com/RocketChat/Rocket.Chat/pull/15824) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Channel notification audio preferences ([#15771](https://github.com/RocketChat/Rocket.Chat/pull/15771)) -- Duplicate label 'Hide Avatars' in accounts ([#15694](https://github.com/RocketChat/Rocket.Chat/pull/15694) by [@rajvaibhavdubey](https://github.com/rajvaibhavdubey)) +- Pasting images on reply as thread ([#15811](https://github.com/RocketChat/Rocket.Chat/pull/15811)) -- Edit in thread ([#15640](https://github.com/RocketChat/Rocket.Chat/pull/15640)) +- Prevent agent last message undefined ([#15809](https://github.com/RocketChat/Rocket.Chat/pull/15809) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Error when exporting user data ([#15654](https://github.com/RocketChat/Rocket.Chat/pull/15654)) +- Livechat transfer history messages ([#15780](https://github.com/RocketChat/Rocket.Chat/pull/15780)) -- Forward Livechat UI and the related permissions ([#15718](https://github.com/RocketChat/Rocket.Chat/pull/15718)) +- Add button to reset.css ([#15773](https://github.com/RocketChat/Rocket.Chat/pull/15773)) -- Ignore file uploads from message box if text/plain content is being pasted ([#15631](https://github.com/RocketChat/Rocket.Chat/pull/15631)) +- Mentions before blockquote ([#15774](https://github.com/RocketChat/Rocket.Chat/pull/15774)) -- line-height to show entire letters ([#15581](https://github.com/RocketChat/Rocket.Chat/pull/15581) by [@nstseek](https://github.com/nstseek)) +- Sidebar font color was not respecting theming ([#15745](https://github.com/RocketChat/Rocket.Chat/pull/15745) by [@mariaeduardacunha](https://github.com/mariaeduardacunha)) -- Livechat transfer history messages ([#15780](https://github.com/RocketChat/Rocket.Chat/pull/15780)) +- Add livechat agents into departments ([#15732](https://github.com/RocketChat/Rocket.Chat/pull/15732)) -- Livechat webhook broken when sending an image ([#15699](https://github.com/RocketChat/Rocket.Chat/pull/15699) by [@tatosjb](https://github.com/tatosjb)) +- Changed cmsPage Style ([#15632](https://github.com/RocketChat/Rocket.Chat/pull/15632)) -- Mentions before blockquote ([#15774](https://github.com/RocketChat/Rocket.Chat/pull/15774)) +- Forward Livechat UI and the related permissions ([#15718](https://github.com/RocketChat/Rocket.Chat/pull/15718)) -- Missing Privacy Policy Agree on register ([#15832](https://github.com/RocketChat/Rocket.Chat/pull/15832)) +- line-height to show entire letters ([#15581](https://github.com/RocketChat/Rocket.Chat/pull/15581) by [@nstseek](https://github.com/nstseek)) -- Not valid relative URLs on message attachments ([#15651](https://github.com/RocketChat/Rocket.Chat/pull/15651)) +- Apply server side filters on Livechat lists ([#15717](https://github.com/RocketChat/Rocket.Chat/pull/15717)) -- Null value at Notifications Preferences tab ([#15638](https://github.com/RocketChat/Rocket.Chat/pull/15638)) +- Error when exporting user data ([#15654](https://github.com/RocketChat/Rocket.Chat/pull/15654)) -- Pasting images on reply as thread ([#15811](https://github.com/RocketChat/Rocket.Chat/pull/15811)) +- Livechat webhook broken when sending an image ([#15699](https://github.com/RocketChat/Rocket.Chat/pull/15699) by [@tatosjb](https://github.com/tatosjb)) -- Prevent agent last message undefined ([#15809](https://github.com/RocketChat/Rocket.Chat/pull/15809)) +- Sending messages to livechat rooms without a subscription ([#15707](https://github.com/RocketChat/Rocket.Chat/pull/15707)) -- Push: fix notification priority for google (FCM) ([#15803](https://github.com/RocketChat/Rocket.Chat/pull/15803) by [@Exordian](https://github.com/Exordian)) +- Duplicate label 'Hide Avatars' in accounts ([#15694](https://github.com/RocketChat/Rocket.Chat/pull/15694) by [@rajvaibhavdubey](https://github.com/rajvaibhavdubey)) -- REST endpoint `chat.syncMessages` returning an error with deleted messages ([#15824](https://github.com/RocketChat/Rocket.Chat/pull/15824)) +- Block Show_Setup_Wizard Option ([#15623](https://github.com/RocketChat/Rocket.Chat/pull/15623)) -- Sending messages to livechat rooms without a subscription ([#15707](https://github.com/RocketChat/Rocket.Chat/pull/15707)) +- Use Media Devices API to guess if a microphone is not available ([#15636](https://github.com/RocketChat/Rocket.Chat/pull/15636)) -- Sidebar font color was not respecting theming ([#15745](https://github.com/RocketChat/Rocket.Chat/pull/15745)) +- Ignore file uploads from message box if text/plain content is being pasted ([#15631](https://github.com/RocketChat/Rocket.Chat/pull/15631)) - typo on PT-BR translation ([#15645](https://github.com/RocketChat/Rocket.Chat/pull/15645)) -- Use Media Devices API to guess if a microphone is not available ([#15636](https://github.com/RocketChat/Rocket.Chat/pull/15636)) +- Null value at Notifications Preferences tab ([#15638](https://github.com/RocketChat/Rocket.Chat/pull/15638)) + +- Edit in thread ([#15640](https://github.com/RocketChat/Rocket.Chat/pull/15640))
🔍 Minor changes -- [CHORE] Add lingohub to readme ([#15849](https://github.com/RocketChat/Rocket.Chat/pull/15849)) - -- [REGRESSION] Add livechat room type to the room's file list ([#15795](https://github.com/RocketChat/Rocket.Chat/pull/15795)) +- LingoHub based on develop ([#15822](https://github.com/RocketChat/Rocket.Chat/pull/15822)) -- Fix Livechat duplicated templates error ([#15869](https://github.com/RocketChat/Rocket.Chat/pull/15869)) +- [REGRESSION] Add livechat room type to the room's file list ([#15795](https://github.com/RocketChat/Rocket.Chat/pull/15795) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Fix notification migration ([#15783](https://github.com/RocketChat/Rocket.Chat/pull/15783)) -- Improve LDAP Login Fallback setting description in portuguese ([#15655](https://github.com/RocketChat/Rocket.Chat/pull/15655)) +- Regression: fix admin instances info page ([#15772](https://github.com/RocketChat/Rocket.Chat/pull/15772)) -- Improvements to random password field on user edit/creation ([#15870](https://github.com/RocketChat/Rocket.Chat/pull/15870)) +- LingoHub based on develop ([#15763](https://github.com/RocketChat/Rocket.Chat/pull/15763)) -- LingoHub based on develop ([#15822](https://github.com/RocketChat/Rocket.Chat/pull/15822)) +- Regression: messageAttachments inside messageAttachments not receiving settings ([#15733](https://github.com/RocketChat/Rocket.Chat/pull/15733)) -- LingoHub based on develop ([#15763](https://github.com/RocketChat/Rocket.Chat/pull/15763)) +- Improve LDAP Login Fallback setting description in portuguese ([#15655](https://github.com/RocketChat/Rocket.Chat/pull/15655)) + +- Update moment-timezone ([#15729](https://github.com/RocketChat/Rocket.Chat/pull/15729)) - LingoHub based on develop ([#15728](https://github.com/RocketChat/Rocket.Chat/pull/15728)) +- Regression: Fix hide avatars in side bar preference ([#15709](https://github.com/RocketChat/Rocket.Chat/pull/15709)) + +- Remove yarn.lock ([#15689](https://github.com/RocketChat/Rocket.Chat/pull/15689)) + - LingoHub based on develop ([#15688](https://github.com/RocketChat/Rocket.Chat/pull/15688)) - Merge master into develop & Set version to 2.3.0-develop ([#15683](https://github.com/RocketChat/Rocket.Chat/pull/15683)) -- Regression: fix admin instances info page ([#15772](https://github.com/RocketChat/Rocket.Chat/pull/15772)) - -- Regression: Fix hide avatars in side bar preference ([#15709](https://github.com/RocketChat/Rocket.Chat/pull/15709)) +- Fix Livechat duplicated templates error ([#15869](https://github.com/RocketChat/Rocket.Chat/pull/15869)) -- Regression: messageAttachments inside messageAttachments not receiving settings ([#15733](https://github.com/RocketChat/Rocket.Chat/pull/15733)) +- Improvements to random password field on user edit/creation ([#15870](https://github.com/RocketChat/Rocket.Chat/pull/15870)) - Remove unused permission to reset users' E2E key ([#15860](https://github.com/RocketChat/Rocket.Chat/pull/15860)) -- Remove yarn.lock ([#15689](https://github.com/RocketChat/Rocket.Chat/pull/15689)) - -- Update moment-timezone ([#15729](https://github.com/RocketChat/Rocket.Chat/pull/15729)) +- [CHORE] Add lingohub to readme ([#15849](https://github.com/RocketChat/Rocket.Chat/pull/15849))
### 👩‍💻👨‍💻 Contributors 😍 - [@Exordian](https://github.com/Exordian) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) +- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@mpdbl](https://github.com/mpdbl) - [@nstseek](https://github.com/nstseek) - [@rajvaibhavdubey](https://github.com/rajvaibhavdubey) @@ -3125,13 +3428,11 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@d-gubert](https://github.com/d-gubert) - [@gabriellsh](https://github.com/gabriellsh) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) -- [@mariaeduardacunha](https://github.com/mariaeduardacunha) - [@pierre-lehnen-rc](https://github.com/pierre-lehnen-rc) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -3171,62 +3472,62 @@ - Accept GIFs and SVGs for Avatars converting them to PNG and keep transparency of PNGs ([#11385](https://github.com/RocketChat/Rocket.Chat/pull/11385)) -- Add new Livechat appearance setting to set the conversation finished message ([#15577](https://github.com/RocketChat/Rocket.Chat/pull/15577)) - -- Add option to enable X-Frame-options header to avoid loading inside any Iframe ([#14698](https://github.com/RocketChat/Rocket.Chat/pull/14698)) +- Thread support to apps slashcommands and slashcommand previews ([#15574](https://github.com/RocketChat/Rocket.Chat/pull/15574)) -- Add users.requestDataDownload API endpoint ([#14428](https://github.com/RocketChat/Rocket.Chat/pull/14428) by [@Hudell](https://github.com/Hudell) & [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Remove all closed Livechat chats ([#13991](https://github.com/RocketChat/Rocket.Chat/pull/13991) by [@knrt10](https://github.com/knrt10)) -- Added file type filter to RoomFiles ([#15289](https://github.com/RocketChat/Rocket.Chat/pull/15289) by [@juanpetterson](https://github.com/juanpetterson)) +- Separate integration roles ([#13902](https://github.com/RocketChat/Rocket.Chat/pull/13902) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Assign new Livechat conversations to bot agents first ([#15317](https://github.com/RocketChat/Rocket.Chat/pull/15317)) +- Add users.requestDataDownload API endpoint ([#14428](https://github.com/RocketChat/Rocket.Chat/pull/14428) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@ubarsaiyan](https://github.com/ubarsaiyan)) - Check if agent can receive new livechat conversations when its status is away/idle ([#15451](https://github.com/RocketChat/Rocket.Chat/pull/15451)) -- close emoji box using Keyboard Escape key ([#13956](https://github.com/RocketChat/Rocket.Chat/pull/13956) by [@mohamedar97](https://github.com/mohamedar97)) +- Import SAML language and auto join SAML channels ([#14203](https://github.com/RocketChat/Rocket.Chat/pull/14203) by [@Hudell](https://github.com/Hudell) & [@unixtam](https://github.com/unixtam)) -- Import DMs from CSV files ([#15534](https://github.com/RocketChat/Rocket.Chat/pull/15534)) +- Add option to enable X-Frame-options header to avoid loading inside any Iframe ([#14698](https://github.com/RocketChat/Rocket.Chat/pull/14698) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Import SAML language and auto join SAML channels ([#14203](https://github.com/RocketChat/Rocket.Chat/pull/14203) by [@Hudell](https://github.com/Hudell) & [@unixtam](https://github.com/unixtam)) +- Assign new Livechat conversations to bot agents first ([#15317](https://github.com/RocketChat/Rocket.Chat/pull/15317)) -- Remove all closed Livechat chats ([#13991](https://github.com/RocketChat/Rocket.Chat/pull/13991) by [@knrt10](https://github.com/knrt10)) +- Added file type filter to RoomFiles ([#15289](https://github.com/RocketChat/Rocket.Chat/pull/15289) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@juanpetterson](https://github.com/juanpetterson)) -- Separate integration roles ([#13902](https://github.com/RocketChat/Rocket.Chat/pull/13902)) +- Add new Livechat appearance setting to set the conversation finished message ([#15577](https://github.com/RocketChat/Rocket.Chat/pull/15577)) -- Thread support to apps slashcommands and slashcommand previews ([#15574](https://github.com/RocketChat/Rocket.Chat/pull/15574)) +- close emoji box using Keyboard Escape key ([#13956](https://github.com/RocketChat/Rocket.Chat/pull/13956) by [@mohamedar97](https://github.com/mohamedar97)) - Update livechat widget version to 1.2.5 ([#15600](https://github.com/RocketChat/Rocket.Chat/pull/15600)) +- Import DMs from CSV files ([#15534](https://github.com/RocketChat/Rocket.Chat/pull/15534)) + ### 🚀 Improvements -- Cache hasPermissions ([#15589](https://github.com/RocketChat/Rocket.Chat/pull/15589)) +- Replace livechat:integration publication by REST ([#15607](https://github.com/RocketChat/Rocket.Chat/pull/15607) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Detach React components from Meteor API ([#15482](https://github.com/RocketChat/Rocket.Chat/pull/15482)) +- Replace livechat:appearance pub to REST ([#15510](https://github.com/RocketChat/Rocket.Chat/pull/15510) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Cache hasPermissions ([#15589](https://github.com/RocketChat/Rocket.Chat/pull/15589)) - Disable edit visitor's phone number in SMS conversations ([#15593](https://github.com/RocketChat/Rocket.Chat/pull/15593)) - Lazyload Katex Package ([#15398](https://github.com/RocketChat/Rocket.Chat/pull/15398)) -- Replace `livechat:departments` publication by REST Calls ([#15478](https://github.com/RocketChat/Rocket.Chat/pull/15478)) - -- Replace `livechat:triggers` publication by REST calls ([#15507](https://github.com/RocketChat/Rocket.Chat/pull/15507)) +- Replace `livechat:triggers` publication by REST calls ([#15507](https://github.com/RocketChat/Rocket.Chat/pull/15507) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:agents pub by REST calls ([#15490](https://github.com/RocketChat/Rocket.Chat/pull/15490)) +- Replace roomFilesWithSearchText subscription ([#15550](https://github.com/RocketChat/Rocket.Chat/pull/15550) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:appearance pub to REST ([#15510](https://github.com/RocketChat/Rocket.Chat/pull/15510)) +- Replace starred messages subscription ([#15548](https://github.com/RocketChat/Rocket.Chat/pull/15548) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace livechat:integration publication by REST ([#15607](https://github.com/RocketChat/Rocket.Chat/pull/15607)) +- Replace some livechat:rooms subscriptions ([#15532](https://github.com/RocketChat/Rocket.Chat/pull/15532) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace mentionedMessages publication to REST ([#15540](https://github.com/RocketChat/Rocket.Chat/pull/15540)) +- Replace pinned messages subscription ([#15544](https://github.com/RocketChat/Rocket.Chat/pull/15544) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace pinned messages subscription ([#15544](https://github.com/RocketChat/Rocket.Chat/pull/15544)) +- Replace mentionedMessages publication to REST ([#15540](https://github.com/RocketChat/Rocket.Chat/pull/15540) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace roomFilesWithSearchText subscription ([#15550](https://github.com/RocketChat/Rocket.Chat/pull/15550)) +- Detach React components from Meteor API ([#15482](https://github.com/RocketChat/Rocket.Chat/pull/15482)) -- Replace some livechat:rooms subscriptions ([#15532](https://github.com/RocketChat/Rocket.Chat/pull/15532)) +- Replace livechat:agents pub by REST calls ([#15490](https://github.com/RocketChat/Rocket.Chat/pull/15490) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Replace starred messages subscription ([#15548](https://github.com/RocketChat/Rocket.Chat/pull/15548)) +- Replace `livechat:departments` publication by REST Calls ([#15478](https://github.com/RocketChat/Rocket.Chat/pull/15478) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Secure cookies when using HTTPS connection ([#15500](https://github.com/RocketChat/Rocket.Chat/pull/15500)) @@ -3235,119 +3536,120 @@ ### 🐛 Bug fixes -- Add a header for the createAt column in the Directory ([#15556](https://github.com/RocketChat/Rocket.Chat/pull/15556) by [@antkaz](https://github.com/antkaz)) +- Issues saving audio notifications ([#15428](https://github.com/RocketChat/Rocket.Chat/pull/15428) by [@scrivna](https://github.com/scrivna)) -- Add permissions for slashCommands ([#15525](https://github.com/RocketChat/Rocket.Chat/pull/15525) by [@antkaz](https://github.com/antkaz)) +- Fix a typo on Alpha API `e2e.setUserPublicAndPivateKeys` renaming to `e2e.setUserPublicAndPrivateKeys` ([#13334](https://github.com/RocketChat/Rocket.Chat/pull/13334)) -- Adding "Promise.await" in "livechat/message" endpoint ([#15541](https://github.com/RocketChat/Rocket.Chat/pull/15541) by [@rodrigokamada](https://github.com/rodrigokamada)) +- Showing announcement back ([#15615](https://github.com/RocketChat/Rocket.Chat/pull/15615)) - adjustments for tooltips to show room name instead of id ([#14084](https://github.com/RocketChat/Rocket.Chat/pull/14084) by [@mohamedar97](https://github.com/mohamedar97)) -- Compact view ([#15416](https://github.com/RocketChat/Rocket.Chat/pull/15416)) +- Read Recepts was not working ([#15603](https://github.com/RocketChat/Rocket.Chat/pull/15603)) + +- Dynamic import of JS files were not working correctly ([#15598](https://github.com/RocketChat/Rocket.Chat/pull/15598)) - Deny editing visitor's phone number in SMS conversations ([#15602](https://github.com/RocketChat/Rocket.Chat/pull/15602)) -- Dynamic import of JS files were not working correctly ([#15598](https://github.com/RocketChat/Rocket.Chat/pull/15598)) +- Incorrect display of the button "Invite users" ([#15594](https://github.com/RocketChat/Rocket.Chat/pull/15594)) -- Emoji are rendered in URL ([#15516](https://github.com/RocketChat/Rocket.Chat/pull/15516) by [@oguhpereira](https://github.com/oguhpereira)) +- Compact view ([#15416](https://github.com/RocketChat/Rocket.Chat/pull/15416)) -- Exposing some fields on server logs at debug level ([#15514](https://github.com/RocketChat/Rocket.Chat/pull/15514)) +- leak on stdout listeners ([#15586](https://github.com/RocketChat/Rocket.Chat/pull/15586)) -- Fix a typo on Alpha API `e2e.setUserPublicAndPivateKeys` renaming to `e2e.setUserPublicAndPrivateKeys` ([#13334](https://github.com/RocketChat/Rocket.Chat/pull/13334)) +- Self-XSS in validation functionality ([#15564](https://github.com/RocketChat/Rocket.Chat/pull/15564)) -- Incorrect display of the button "Invite users" ([#15594](https://github.com/RocketChat/Rocket.Chat/pull/15594)) +- Registration/login page now mobile friendly (#15422) ([#15520](https://github.com/RocketChat/Rocket.Chat/pull/15520) by [@nstseek](https://github.com/nstseek)) -- Issues saving audio notifications ([#15428](https://github.com/RocketChat/Rocket.Chat/pull/15428) by [@scrivna](https://github.com/scrivna)) +- Update apps engine rooms converter to use transformMappedData ([#15546](https://github.com/RocketChat/Rocket.Chat/pull/15546)) + +- Missing ending slash on publicFilePath of fileUpload ([#15506](https://github.com/RocketChat/Rocket.Chat/pull/15506)) - Japanese translation for run import ([#15515](https://github.com/RocketChat/Rocket.Chat/pull/15515) by [@yusukeh0710](https://github.com/yusukeh0710)) -- leak on stdout listeners ([#15586](https://github.com/RocketChat/Rocket.Chat/pull/15586)) +- Add a header for the createAt column in the Directory ([#15556](https://github.com/RocketChat/Rocket.Chat/pull/15556) by [@antkaz](https://github.com/antkaz)) - Method saveUser is not using password policy ([#15445](https://github.com/RocketChat/Rocket.Chat/pull/15445)) -- Missing ending slash on publicFilePath of fileUpload ([#15506](https://github.com/RocketChat/Rocket.Chat/pull/15506)) - -- Promise await for sendMessage in livechat/messages endpoint ([#15460](https://github.com/RocketChat/Rocket.Chat/pull/15460) by [@hmagarotto](https://github.com/hmagarotto)) +- Add permissions for slashCommands ([#15525](https://github.com/RocketChat/Rocket.Chat/pull/15525) by [@antkaz](https://github.com/antkaz)) -- Read Recepts was not working ([#15603](https://github.com/RocketChat/Rocket.Chat/pull/15603)) +- Typo in autotranslate method ([#15344](https://github.com/RocketChat/Rocket.Chat/pull/15344) by [@Montel](https://github.com/Montel)) -- Registration/login page now mobile friendly (#15422) ([#15520](https://github.com/RocketChat/Rocket.Chat/pull/15520) by [@nstseek](https://github.com/nstseek)) +- Adding "Promise.await" in "livechat/message" endpoint ([#15541](https://github.com/RocketChat/Rocket.Chat/pull/15541) by [@rodrigokamada](https://github.com/rodrigokamada)) - Reset password was allowing empty values leading to an impossibility to login ([#15444](https://github.com/RocketChat/Rocket.Chat/pull/15444)) -- Self-XSS in validation functionality ([#15564](https://github.com/RocketChat/Rocket.Chat/pull/15564)) - -- Showing announcement back ([#15615](https://github.com/RocketChat/Rocket.Chat/pull/15615)) +- Emoji are rendered in URL ([#15516](https://github.com/RocketChat/Rocket.Chat/pull/15516) by [@oguhpereira](https://github.com/oguhpereira)) -- Typo in autotranslate method ([#15344](https://github.com/RocketChat/Rocket.Chat/pull/15344) by [@Montel](https://github.com/Montel)) +- Promise await for sendMessage in livechat/messages endpoint ([#15460](https://github.com/RocketChat/Rocket.Chat/pull/15460) by [@hmagarotto](https://github.com/hmagarotto)) -- Update apps engine rooms converter to use transformMappedData ([#15546](https://github.com/RocketChat/Rocket.Chat/pull/15546)) +- Exposing some fields on server logs at debug level ([#15514](https://github.com/RocketChat/Rocket.Chat/pull/15514))
🔍 Minor changes -- [CHORE] remove 'bulk-create-c' permission ([#15517](https://github.com/RocketChat/Rocket.Chat/pull/15517) by [@antkaz](https://github.com/antkaz)) - -- [CHORE] Split logger classes to avoid cyclic dependencies ([#15559](https://github.com/RocketChat/Rocket.Chat/pull/15559)) +- Merge master into develop & Set version to 2.2.0-develop ([#15622](https://github.com/RocketChat/Rocket.Chat/pull/15622)) -- [CHORE] Update latest Livechat widget version to 1.2.2 ([#15592](https://github.com/RocketChat/Rocket.Chat/pull/15592)) +- [FEATURE] Rest API upload file returns message object ([#13821](https://github.com/RocketChat/Rocket.Chat/pull/13821) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@knrt10](https://github.com/knrt10)) -- [CHORE] Update latest Livechat widget version to 1.2.4 ([#15596](https://github.com/RocketChat/Rocket.Chat/pull/15596)) +- New: Add dev dependency david badge to README ([#9058](https://github.com/RocketChat/Rocket.Chat/pull/9058) by [@robbyoconnor](https://github.com/robbyoconnor)) -- [FEATURE] Rest API upload file returns message object ([#13821](https://github.com/RocketChat/Rocket.Chat/pull/13821) by [@knrt10](https://github.com/knrt10)) +- Regression: add stdout publication back ([#15614](https://github.com/RocketChat/Rocket.Chat/pull/15614)) -- [REGRESSION] Fix remove department from list ([#15591](https://github.com/RocketChat/Rocket.Chat/pull/15591)) +- Livechat Issues ([#15473](https://github.com/RocketChat/Rocket.Chat/pull/15473)) -- Chore: Add Client Setup Information to Issue Template ([#15625](https://github.com/RocketChat/Rocket.Chat/pull/15625)) +- Regression: Fix broken message formatting box ([#15599](https://github.com/RocketChat/Rocket.Chat/pull/15599)) -- docs: remove rocket chat launcher link ([#15477](https://github.com/RocketChat/Rocket.Chat/pull/15477) by [@RafaelGSS](https://github.com/RafaelGSS)) +- [CHORE] Update latest Livechat widget version to 1.2.4 ([#15596](https://github.com/RocketChat/Rocket.Chat/pull/15596)) -- LingoHub based on develop ([#15487](https://github.com/RocketChat/Rocket.Chat/pull/15487)) +- Remove unneeded nginx file ([#15483](https://github.com/RocketChat/Rocket.Chat/pull/15483)) -- Livechat Issues ([#15473](https://github.com/RocketChat/Rocket.Chat/pull/15473)) +- [REGRESSION] Fix remove department from list ([#15591](https://github.com/RocketChat/Rocket.Chat/pull/15591) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Merge master into develop ([#15680](https://github.com/RocketChat/Rocket.Chat/pull/15680) by [@knrt10](https://github.com/knrt10)) +- [CHORE] Update latest Livechat widget version to 1.2.2 ([#15592](https://github.com/RocketChat/Rocket.Chat/pull/15592)) -- Merge master into develop & Set version to 2.2.0-develop ([#15622](https://github.com/RocketChat/Rocket.Chat/pull/15622)) +- Revert fix package-lock.json ([#15563](https://github.com/RocketChat/Rocket.Chat/pull/15563)) -- Merge master into develop & Set version to 2.2.0-develop ([#15469](https://github.com/RocketChat/Rocket.Chat/pull/15469)) +- Regression: Fix package-lock.json ([#15561](https://github.com/RocketChat/Rocket.Chat/pull/15561)) -- Move publication deprecation warnings ([#15676](https://github.com/RocketChat/Rocket.Chat/pull/15676)) +- [CHORE] Split logger classes to avoid cyclic dependencies ([#15559](https://github.com/RocketChat/Rocket.Chat/pull/15559) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- New: Add dev dependency david badge to README ([#9058](https://github.com/RocketChat/Rocket.Chat/pull/9058) by [@robbyoconnor](https://github.com/robbyoconnor)) +- docs: remove rocket chat launcher link ([#15477](https://github.com/RocketChat/Rocket.Chat/pull/15477) by [@RafaelGSS](https://github.com/RafaelGSS)) -- Regression: add stdout publication back ([#15614](https://github.com/RocketChat/Rocket.Chat/pull/15614)) +- [CHORE] remove 'bulk-create-c' permission ([#15517](https://github.com/RocketChat/Rocket.Chat/pull/15517) by [@antkaz](https://github.com/antkaz)) -- Regression: AppRoomsConverter on Livechat rooms ([#15646](https://github.com/RocketChat/Rocket.Chat/pull/15646)) +- Reply HTTP requests with `X-XSS-Protection: 1` header ([#15498](https://github.com/RocketChat/Rocket.Chat/pull/15498)) -- Regression: Fix broken message formatting box ([#15599](https://github.com/RocketChat/Rocket.Chat/pull/15599)) +- Updating license term ([#15476](https://github.com/RocketChat/Rocket.Chat/pull/15476)) -- Regression: Fix package-lock.json ([#15561](https://github.com/RocketChat/Rocket.Chat/pull/15561)) +- LingoHub based on develop ([#15487](https://github.com/RocketChat/Rocket.Chat/pull/15487)) -- Regression: fix unknown role breaking hasPermission ([#15641](https://github.com/RocketChat/Rocket.Chat/pull/15641)) +- Merge master into develop & Set version to 2.2.0-develop ([#15469](https://github.com/RocketChat/Rocket.Chat/pull/15469)) - Regression: hasPermission ignoring subscription roles ([#15652](https://github.com/RocketChat/Rocket.Chat/pull/15652)) -- Regression: Move import to avoid circular dependencies ([#15628](https://github.com/RocketChat/Rocket.Chat/pull/15628)) +- Regression: AppRoomsConverter on Livechat rooms ([#15646](https://github.com/RocketChat/Rocket.Chat/pull/15646)) -- Regression: Remove reference to obsolete template helper ([#15675](https://github.com/RocketChat/Rocket.Chat/pull/15675)) +- Regression: fix unknown role breaking hasPermission ([#15641](https://github.com/RocketChat/Rocket.Chat/pull/15641)) -- Release 2.1.2 ([#15667](https://github.com/RocketChat/Rocket.Chat/pull/15667) by [@knrt10](https://github.com/knrt10)) +- Regression: Move import to avoid circular dependencies ([#15628](https://github.com/RocketChat/Rocket.Chat/pull/15628) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove unneeded nginx file ([#15483](https://github.com/RocketChat/Rocket.Chat/pull/15483)) +- Chore: Add Client Setup Information to Issue Template ([#15625](https://github.com/RocketChat/Rocket.Chat/pull/15625)) -- Reply HTTP requests with `X-XSS-Protection: 1` header ([#15498](https://github.com/RocketChat/Rocket.Chat/pull/15498)) +- Move publication deprecation warnings ([#15676](https://github.com/RocketChat/Rocket.Chat/pull/15676) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Revert fix package-lock.json ([#15563](https://github.com/RocketChat/Rocket.Chat/pull/15563)) +- Regression: Remove reference to obsolete template helper ([#15675](https://github.com/RocketChat/Rocket.Chat/pull/15675)) -- Updating license term ([#15476](https://github.com/RocketChat/Rocket.Chat/pull/15476)) +- Merge master into develop ([#15680](https://github.com/RocketChat/Rocket.Chat/pull/15680) by [@knrt10](https://github.com/knrt10)) + +- Release 2.1.2 ([#15667](https://github.com/RocketChat/Rocket.Chat/pull/15667) by [@knrt10](https://github.com/knrt10))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Montel](https://github.com/Montel) - [@RafaelGSS](https://github.com/RafaelGSS) - [@antkaz](https://github.com/antkaz) @@ -3366,7 +3668,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@d-gubert](https://github.com/d-gubert) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -3409,11 +3710,11 @@ ### 🐛 Bug fixes -- Channel Announcements not working ([#14635](https://github.com/RocketChat/Rocket.Chat/pull/14635) by [@knrt10](https://github.com/knrt10)) +- Read Receipts were not working properly with subscriptions without ls ([#15656](https://github.com/RocketChat/Rocket.Chat/pull/15656)) - Exception when sending email of messages attachments undefined ([#15657](https://github.com/RocketChat/Rocket.Chat/pull/15657)) -- Read Receipts were not working properly with subscriptions without ls ([#15656](https://github.com/RocketChat/Rocket.Chat/pull/15656)) +- Channel Announcements not working ([#14635](https://github.com/RocketChat/Rocket.Chat/pull/14635) by [@knrt10](https://github.com/knrt10))
🔍 Minor changes @@ -3444,10 +3745,10 @@ ### 🐛 Bug fixes -- Dynamic import of JS files were not working correctly ([#15598](https://github.com/RocketChat/Rocket.Chat/pull/15598)) - - Read Recepts was not working ([#15603](https://github.com/RocketChat/Rocket.Chat/pull/15603)) +- Dynamic import of JS files were not working correctly ([#15598](https://github.com/RocketChat/Rocket.Chat/pull/15598)) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@ggazzo](https://github.com/ggazzo) @@ -3469,159 +3770,160 @@ ### 🎉 New features -- Add ability to disable email notifications globally ([#9667](https://github.com/RocketChat/Rocket.Chat/pull/9667) by [@ferdifly](https://github.com/ferdifly)) +- Apps engine Livechat ([#14626](https://github.com/RocketChat/Rocket.Chat/pull/14626)) + +- Livechat setting to show/hide Agent Information on the widget ([#15216](https://github.com/RocketChat/Rocket.Chat/pull/15216)) -- Add JWT to uploaded files urls ([#15297](https://github.com/RocketChat/Rocket.Chat/pull/15297)) +- SAML User Data Mapping ([#15404](https://github.com/RocketChat/Rocket.Chat/pull/15404)) -- Allow file sharing through Twilio(WhatsApp) integration ([#15415](https://github.com/RocketChat/Rocket.Chat/pull/15415)) +- Add ability to disable email notifications globally ([#9667](https://github.com/RocketChat/Rocket.Chat/pull/9667) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@ferdifly](https://github.com/ferdifly)) -- Apps engine Livechat ([#14626](https://github.com/RocketChat/Rocket.Chat/pull/14626)) +- Validate NotBefore and NotOnOrAfter SAML assertions ([#15226](https://github.com/RocketChat/Rocket.Chat/pull/15226)) + +- Setting to configure SAML context comparison ([#15229](https://github.com/RocketChat/Rocket.Chat/pull/15229)) - Expand SAML Users Role Settings ([#15277](https://github.com/RocketChat/Rocket.Chat/pull/15277) by [@Hudell](https://github.com/Hudell)) - Guess a user's name from SAML credentials ([#15240](https://github.com/RocketChat/Rocket.Chat/pull/15240) by [@mrsimpson](https://github.com/mrsimpson)) -- Livechat setting to show/hide Agent Information on the widget ([#15216](https://github.com/RocketChat/Rocket.Chat/pull/15216)) +- Setting to remove message contents from email notifications ([#15406](https://github.com/RocketChat/Rocket.Chat/pull/15406)) -- Only Load CodeMirror code when it is needed ([#15351](https://github.com/RocketChat/Rocket.Chat/pull/15351)) +- Add JWT to uploaded files urls ([#15297](https://github.com/RocketChat/Rocket.Chat/pull/15297) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Provide site-url to outgoing integrations ([#15238](https://github.com/RocketChat/Rocket.Chat/pull/15238) by [@mrsimpson](https://github.com/mrsimpson)) -- SAML User Data Mapping ([#15404](https://github.com/RocketChat/Rocket.Chat/pull/15404)) - -- Setting to configure SAML context comparison ([#15229](https://github.com/RocketChat/Rocket.Chat/pull/15229)) - -- Setting to remove message contents from email notifications ([#15406](https://github.com/RocketChat/Rocket.Chat/pull/15406)) +- Only Load CodeMirror code when it is needed ([#15351](https://github.com/RocketChat/Rocket.Chat/pull/15351)) -- Validate NotBefore and NotOnOrAfter SAML assertions ([#15226](https://github.com/RocketChat/Rocket.Chat/pull/15226)) +- Allow file sharing through Twilio(WhatsApp) integration ([#15415](https://github.com/RocketChat/Rocket.Chat/pull/15415)) ### 🚀 Improvements -- A11y: Buttons, Images, Popups ([#15405](https://github.com/RocketChat/Rocket.Chat/pull/15405)) +- Change default user's preference for notifications to 'All messages' ([#15420](https://github.com/RocketChat/Rocket.Chat/pull/15420)) -- Add CustomSounds.play() helper ([#15256](https://github.com/RocketChat/Rocket.Chat/pull/15256)) +- Remove global Blaze helpers ([#15414](https://github.com/RocketChat/Rocket.Chat/pull/15414)) -- Add missing indices used by read receipts ([#15316](https://github.com/RocketChat/Rocket.Chat/pull/15316)) +- User data export ([#15294](https://github.com/RocketChat/Rocket.Chat/pull/15294) by [@Hudell](https://github.com/Hudell)) -- Add possibility of renaming a discussion ([#15122](https://github.com/RocketChat/Rocket.Chat/pull/15122)) +- A11y: Buttons, Images, Popups ([#15405](https://github.com/RocketChat/Rocket.Chat/pull/15405)) - Administration UI ([#15401](https://github.com/RocketChat/Rocket.Chat/pull/15401)) -- AvatarBlockUnauthenticatedAccess do not call user.find if you dont have to ([#15355](https://github.com/RocketChat/Rocket.Chat/pull/15355)) +- Make the agents field optional when updating Livechat departments ([#15400](https://github.com/RocketChat/Rocket.Chat/pull/15400)) -- Change default user's preference for notifications to 'All messages' ([#15420](https://github.com/RocketChat/Rocket.Chat/pull/15420)) +- Replace LESS autoprefixer plugin ([#15260](https://github.com/RocketChat/Rocket.Chat/pull/15260)) -- improve autolinker flow ([#15340](https://github.com/RocketChat/Rocket.Chat/pull/15340)) +- Add missing indices used by read receipts ([#15316](https://github.com/RocketChat/Rocket.Chat/pull/15316)) -- Make the agents field optional when updating Livechat departments ([#15400](https://github.com/RocketChat/Rocket.Chat/pull/15400)) +- Add possibility of renaming a discussion ([#15122](https://github.com/RocketChat/Rocket.Chat/pull/15122) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove global Blaze helpers ([#15414](https://github.com/RocketChat/Rocket.Chat/pull/15414)) +- AvatarBlockUnauthenticatedAccess do not call user.find if you dont have to ([#15355](https://github.com/RocketChat/Rocket.Chat/pull/15355)) -- Replace LESS autoprefixer plugin ([#15260](https://github.com/RocketChat/Rocket.Chat/pull/15260)) +- improve autolinker flow ([#15340](https://github.com/RocketChat/Rocket.Chat/pull/15340)) -- User data export ([#15294](https://github.com/RocketChat/Rocket.Chat/pull/15294) by [@Hudell](https://github.com/Hudell)) +- Add CustomSounds.play() helper ([#15256](https://github.com/RocketChat/Rocket.Chat/pull/15256)) ### 🐛 Bug fixes -- Add ENV VAR to enable users create token feature ([#15334](https://github.com/RocketChat/Rocket.Chat/pull/15334)) - -- CAS users can take control of Rocket.Chat accounts ([#15346](https://github.com/RocketChat/Rocket.Chat/pull/15346)) +- Delivering real-time messages to users that left a room ([#15389](https://github.com/RocketChat/Rocket.Chat/pull/15389) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Delivering real-time messages to users that left a room ([#15389](https://github.com/RocketChat/Rocket.Chat/pull/15389)) +- Federation messages notifications ([#15418](https://github.com/RocketChat/Rocket.Chat/pull/15418)) -- Don't allow email violating whitelist addresses ([#15339](https://github.com/RocketChat/Rocket.Chat/pull/15339)) +- Property "permission" in slash commands of custom apps (#14739) ([#14741](https://github.com/RocketChat/Rocket.Chat/pull/14741) by [@ifantom](https://github.com/ifantom)) -- Double send bug on message box ([#15409](https://github.com/RocketChat/Rocket.Chat/pull/15409)) +- Notify admin was generating errors when Rocket.Cat user was edited or deleted ([#15387](https://github.com/RocketChat/Rocket.Chat/pull/15387)) -- Duplicate Channels in Search-bar ([#15056](https://github.com/RocketChat/Rocket.Chat/pull/15056)) +- Fix file uploads JWT ([#15412](https://github.com/RocketChat/Rocket.Chat/pull/15412) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Empty custom emojis on emoji picker ([#15392](https://github.com/RocketChat/Rocket.Chat/pull/15392)) +- Double send bug on message box ([#15409](https://github.com/RocketChat/Rocket.Chat/pull/15409)) -- Federation messages notifications ([#15418](https://github.com/RocketChat/Rocket.Chat/pull/15418)) +- Prune messages by cron if room not updated ([#15252](https://github.com/RocketChat/Rocket.Chat/pull/15252)) -- Fix file uploads JWT ([#15412](https://github.com/RocketChat/Rocket.Chat/pull/15412)) +- Subscription record not having the `ls` field ([#14544](https://github.com/RocketChat/Rocket.Chat/pull/14544) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Grammatical error in Not Found page ([#15382](https://github.com/RocketChat/Rocket.Chat/pull/15382)) +- CAS users can take control of Rocket.Chat accounts ([#15346](https://github.com/RocketChat/Rocket.Chat/pull/15346)) -- LDAP usernames get additional '.' if they contain numbers ([#14644](https://github.com/RocketChat/Rocket.Chat/pull/14644) by [@Hudell](https://github.com/Hudell)) +- Add ENV VAR to enable users create token feature ([#15334](https://github.com/RocketChat/Rocket.Chat/pull/15334) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Limit exposed fields on some users. endpoints ([#15327](https://github.com/RocketChat/Rocket.Chat/pull/15327)) +- REST API to return only public custom fields ([#15292](https://github.com/RocketChat/Rocket.Chat/pull/15292) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Message box not centered ([#15367](https://github.com/RocketChat/Rocket.Chat/pull/15367)) +- REST endpoint `users.setPreferences` to not override all user's preferences ([#15288](https://github.com/RocketChat/Rocket.Chat/pull/15288) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Notify admin was generating errors when Rocket.Cat user was edited or deleted ([#15387](https://github.com/RocketChat/Rocket.Chat/pull/15387)) +- LDAP usernames get additional '.' if they contain numbers ([#14644](https://github.com/RocketChat/Rocket.Chat/pull/14644) by [@Hudell](https://github.com/Hudell)) -- Property "permission" in slash commands of custom apps (#14739) ([#14741](https://github.com/RocketChat/Rocket.Chat/pull/14741) by [@ifantom](https://github.com/ifantom)) +- Don't allow email violating whitelist addresses ([#15339](https://github.com/RocketChat/Rocket.Chat/pull/15339) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prune messages by cron if room not updated ([#15252](https://github.com/RocketChat/Rocket.Chat/pull/15252)) +- Limit exposed fields on some users. endpoints ([#15327](https://github.com/RocketChat/Rocket.Chat/pull/15327) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Reduce Message cache time to 500ms ([#15295](https://github.com/RocketChat/Rocket.Chat/pull/15295) by [@vickyokrm](https://github.com/vickyokrm)) +- Empty custom emojis on emoji picker ([#15392](https://github.com/RocketChat/Rocket.Chat/pull/15392)) -- REST API to return only public custom fields ([#15292](https://github.com/RocketChat/Rocket.Chat/pull/15292)) +- User Profile Time Format ([#15385](https://github.com/RocketChat/Rocket.Chat/pull/15385)) -- REST endpoint `users.setPreferences` to not override all user's preferences ([#15288](https://github.com/RocketChat/Rocket.Chat/pull/15288)) +- Grammatical error in Not Found page ([#15382](https://github.com/RocketChat/Rocket.Chat/pull/15382)) - Set the DEFAULT_ECDH_CURVE to auto (#15245) ([#15365](https://github.com/RocketChat/Rocket.Chat/pull/15365) by [@dlundgren](https://github.com/dlundgren)) -- Subscription record not having the `ls` field ([#14544](https://github.com/RocketChat/Rocket.Chat/pull/14544)) +- Message box not centered ([#15367](https://github.com/RocketChat/Rocket.Chat/pull/15367)) -- User Profile Time Format ([#15385](https://github.com/RocketChat/Rocket.Chat/pull/15385)) +- Duplicate Channels in Search-bar ([#15056](https://github.com/RocketChat/Rocket.Chat/pull/15056)) + +- Reduce Message cache time to 500ms ([#15295](https://github.com/RocketChat/Rocket.Chat/pull/15295) by [@vickyokrm](https://github.com/vickyokrm))
🔍 Minor changes -- [CHORE] Move pathFor helper to templateHelpers directory ([#15255](https://github.com/RocketChat/Rocket.Chat/pull/15255)) +- Regression: Prevent parsing empty custom field setting ([#15413](https://github.com/RocketChat/Rocket.Chat/pull/15413) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- [CHORE] Remove obsolete modal template ([#15257](https://github.com/RocketChat/Rocket.Chat/pull/15257)) +- Use version 2 of the DeepL API ([#15364](https://github.com/RocketChat/Rocket.Chat/pull/15364) by [@vickyokrm](https://github.com/vickyokrm)) + +- Remove GraphQL dependencies left ([#15356](https://github.com/RocketChat/Rocket.Chat/pull/15356) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - [Fix] Missing space between last username & 'and' word in react notification ([#15384](https://github.com/RocketChat/Rocket.Chat/pull/15384) by [@zdumitru](https://github.com/zdumitru)) - Add a missing 'Discussion' translation key ([#14029](https://github.com/RocketChat/Rocket.Chat/pull/14029) by [@ura14h](https://github.com/ura14h)) -- Fix typo in LDAP User Search setting description ([#15228](https://github.com/RocketChat/Rocket.Chat/pull/15228)) - - Improve Polish translation ([#14060](https://github.com/RocketChat/Rocket.Chat/pull/14060) by [@stepek](https://github.com/stepek)) -- Improve text of the search bar description ([#15353](https://github.com/RocketChat/Rocket.Chat/pull/15353)) +- Regression: Messagebox height changing when typing ([#15380](https://github.com/RocketChat/Rocket.Chat/pull/15380)) - LingoHub based on develop ([#15377](https://github.com/RocketChat/Rocket.Chat/pull/15377)) -- Merge master into develop & Set version to 2.1.0-develop ([#15357](https://github.com/RocketChat/Rocket.Chat/pull/15357)) +- Regression: Fix DDP metrics ([#15368](https://github.com/RocketChat/Rocket.Chat/pull/15368)) -- Regression: API CORS not working after Cordova being disabled by default ([#15443](https://github.com/RocketChat/Rocket.Chat/pull/15443)) +- [CHORE] Move pathFor helper to templateHelpers directory ([#15255](https://github.com/RocketChat/Rocket.Chat/pull/15255)) -- Regression: Favorite room button ([#15426](https://github.com/RocketChat/Rocket.Chat/pull/15426)) +- Fix typo in LDAP User Search setting description ([#15228](https://github.com/RocketChat/Rocket.Chat/pull/15228)) -- Regression: Fix Commit Section when there is no commit info ([#15436](https://github.com/RocketChat/Rocket.Chat/pull/15436)) +- Remove log ADMIN_PASS environment variable ([#15307](https://github.com/RocketChat/Rocket.Chat/pull/15307)) -- Regression: Fix DDP metrics ([#15368](https://github.com/RocketChat/Rocket.Chat/pull/15368)) +- Improve text of the search bar description ([#15353](https://github.com/RocketChat/Rocket.Chat/pull/15353)) -- Regression: Fix invalid version string error on marketplace screen ([#15437](https://github.com/RocketChat/Rocket.Chat/pull/15437)) +- [CHORE] Remove obsolete modal template ([#15257](https://github.com/RocketChat/Rocket.Chat/pull/15257)) -- Regression: Messagebox height changing when typing ([#15380](https://github.com/RocketChat/Rocket.Chat/pull/15380)) +- Update Meteor to 1.8.1 ([#15358](https://github.com/RocketChat/Rocket.Chat/pull/15358)) -- Regression: Prevent parsing empty custom field setting ([#15413](https://github.com/RocketChat/Rocket.Chat/pull/15413)) +- Merge master into develop & Set version to 2.1.0-develop ([#15357](https://github.com/RocketChat/Rocket.Chat/pull/15357) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: setup wizard dynamic import using relative url ([#15432](https://github.com/RocketChat/Rocket.Chat/pull/15432)) +- Regression: Fix invalid version string error on marketplace screen ([#15437](https://github.com/RocketChat/Rocket.Chat/pull/15437)) -- Remove GraphQL dependencies left ([#15356](https://github.com/RocketChat/Rocket.Chat/pull/15356)) +- Regression: Fix Commit Section when there is no commit info ([#15436](https://github.com/RocketChat/Rocket.Chat/pull/15436)) -- Remove log ADMIN_PASS environment variable ([#15307](https://github.com/RocketChat/Rocket.Chat/pull/15307)) +- Regression: setup wizard dynamic import using relative url ([#15432](https://github.com/RocketChat/Rocket.Chat/pull/15432)) -- Update Apps-Engine version to final version ([#15458](https://github.com/RocketChat/Rocket.Chat/pull/15458)) +- Regression: Favorite room button ([#15426](https://github.com/RocketChat/Rocket.Chat/pull/15426)) -- Update Meteor to 1.8.1 ([#15358](https://github.com/RocketChat/Rocket.Chat/pull/15358)) +- Regression: API CORS not working after Cordova being disabled by default ([#15443](https://github.com/RocketChat/Rocket.Chat/pull/15443)) -- Use version 2 of the DeepL API ([#15364](https://github.com/RocketChat/Rocket.Chat/pull/15364) by [@vickyokrm](https://github.com/vickyokrm)) +- Update Apps-Engine version to final version ([#15458](https://github.com/RocketChat/Rocket.Chat/pull/15458))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@dlundgren](https://github.com/dlundgren) - [@ferdifly](https://github.com/ferdifly) - [@ifantom](https://github.com/ifantom) @@ -3633,7 +3935,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@alansikora](https://github.com/alansikora) - [@d-gubert](https://github.com/d-gubert) @@ -3678,186 +3979,186 @@ - Federation refactor with addition of chained events ([#15206](https://github.com/RocketChat/Rocket.Chat/pull/15206)) -- Remove GraphQL and grant packages ([#15192](https://github.com/RocketChat/Rocket.Chat/pull/15192)) +- Remove support of MongoDB 3.2 and deprecate MongoDB 3.4 ([#15199](https://github.com/RocketChat/Rocket.Chat/pull/15199)) -- Remove old livechat client ([#15133](https://github.com/RocketChat/Rocket.Chat/pull/15133)) +- Remove GraphQL and grant packages ([#15192](https://github.com/RocketChat/Rocket.Chat/pull/15192)) - Remove publication `roomSubscriptionsByRole` ([#15193](https://github.com/RocketChat/Rocket.Chat/pull/15193)) - Remove publication `usersInRole` ([#15194](https://github.com/RocketChat/Rocket.Chat/pull/15194)) -- Remove support of MongoDB 3.2 and deprecate MongoDB 3.4 ([#15199](https://github.com/RocketChat/Rocket.Chat/pull/15199)) +- Remove old livechat client ([#15133](https://github.com/RocketChat/Rocket.Chat/pull/15133)) - Replace tap:i18n to add support to 3-digit locales ([#15109](https://github.com/RocketChat/Rocket.Chat/pull/15109)) ### 🎉 New features -- Add autotranslate Rest endpoints ([#14885](https://github.com/RocketChat/Rocket.Chat/pull/14885)) +- Custom message popups ([#15117](https://github.com/RocketChat/Rocket.Chat/pull/15117) by [@Hudell](https://github.com/Hudell)) -- Add Mobex to the list of SMS service providers ([#14655](https://github.com/RocketChat/Rocket.Chat/pull/14655) by [@zolbayars](https://github.com/zolbayars)) +- Options for SAML auth for individual organizations needs ([#14275](https://github.com/RocketChat/Rocket.Chat/pull/14275) by [@Deltachaos](https://github.com/Deltachaos) & [@Hudell](https://github.com/Hudell)) - Assume that Rocket.Chat runs behind one proxy by default (HTTP_FORWARDED_COUNT=1) ([#15214](https://github.com/RocketChat/Rocket.Chat/pull/15214)) -- Custom message popups ([#15117](https://github.com/RocketChat/Rocket.Chat/pull/15117) by [@Hudell](https://github.com/Hudell)) +- LDAP User Groups, Roles, and Channel Synchronization ([#14278](https://github.com/RocketChat/Rocket.Chat/pull/14278) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) -- Endpoint to fetch livechat rooms with several filters ([#15155](https://github.com/RocketChat/Rocket.Chat/pull/15155)) +- Setup Wizard and Page not found, using React components ([#15204](https://github.com/RocketChat/Rocket.Chat/pull/15204)) -- Granular permissions for settings ([#8942](https://github.com/RocketChat/Rocket.Chat/pull/8942) by [@mrsimpson](https://github.com/mrsimpson)) +- Add Mobex to the list of SMS service providers ([#14655](https://github.com/RocketChat/Rocket.Chat/pull/14655) by [@zolbayars](https://github.com/zolbayars)) -- Integrate DEEPL translation service to RC core ([#12174](https://github.com/RocketChat/Rocket.Chat/pull/12174) by [@mrsimpson](https://github.com/mrsimpson) & [@vickyokrm](https://github.com/vickyokrm)) +- Support multiple push gateways ([#14902](https://github.com/RocketChat/Rocket.Chat/pull/14902) by [@cardoso](https://github.com/cardoso)) -- Jitsi meet room access via a token ([#12259](https://github.com/RocketChat/Rocket.Chat/pull/12259) by [@rrzharikov](https://github.com/rrzharikov)) +- Rest API Endpoint to get pinned messages from a room ([#13864](https://github.com/RocketChat/Rocket.Chat/pull/13864) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@thayannevls](https://github.com/thayannevls)) -- LDAP User Groups, Roles, and Channel Synchronization ([#14278](https://github.com/RocketChat/Rocket.Chat/pull/14278) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) +- Granular permissions for settings ([#8942](https://github.com/RocketChat/Rocket.Chat/pull/8942) by [@mrsimpson](https://github.com/mrsimpson)) -- Option to hide the button of Custom OAuth on login screen ([#15053](https://github.com/RocketChat/Rocket.Chat/pull/15053)) +- Add autotranslate Rest endpoints ([#14885](https://github.com/RocketChat/Rocket.Chat/pull/14885) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Options for SAML auth for individual organizations needs ([#14275](https://github.com/RocketChat/Rocket.Chat/pull/14275) by [@Deltachaos](https://github.com/Deltachaos) & [@Hudell](https://github.com/Hudell)) +- Option to hide the button of Custom OAuth on login screen ([#15053](https://github.com/RocketChat/Rocket.Chat/pull/15053)) -- Rest API Endpoint to get pinned messages from a room ([#13864](https://github.com/RocketChat/Rocket.Chat/pull/13864) by [@thayannevls](https://github.com/thayannevls)) +- Endpoint to fetch livechat rooms with several filters ([#15155](https://github.com/RocketChat/Rocket.Chat/pull/15155) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Setup Wizard and Page not found, using React components ([#15204](https://github.com/RocketChat/Rocket.Chat/pull/15204)) +- Integrate DEEPL translation service to RC core ([#12174](https://github.com/RocketChat/Rocket.Chat/pull/12174) by [@mrsimpson](https://github.com/mrsimpson) & [@vickyokrm](https://github.com/vickyokrm)) -- Support multiple push gateways ([#14902](https://github.com/RocketChat/Rocket.Chat/pull/14902) by [@cardoso](https://github.com/cardoso)) +- Jitsi meet room access via a token ([#12259](https://github.com/RocketChat/Rocket.Chat/pull/12259) by [@rrzharikov](https://github.com/rrzharikov)) ### 🚀 Improvements -- Add asset extension validation ([#15088](https://github.com/RocketChat/Rocket.Chat/pull/15088)) +- Livechat User Management Improvements ([#14736](https://github.com/RocketChat/Rocket.Chat/pull/14736) by [@Hudell](https://github.com/Hudell)) + +- Refactoring the queuing and routing processes of new livechats ([#15003](https://github.com/RocketChat/Rocket.Chat/pull/15003)) -- Add limit of 50 user's resume tokens ([#15102](https://github.com/RocketChat/Rocket.Chat/pull/15102)) +- Add limit of 50 user's resume tokens ([#15102](https://github.com/RocketChat/Rocket.Chat/pull/15102) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add possibility to use commands inside threads through Rest API ([#15167](https://github.com/RocketChat/Rocket.Chat/pull/15167)) +- Add asset extension validation ([#15088](https://github.com/RocketChat/Rocket.Chat/pull/15088) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat User Management Improvements ([#14736](https://github.com/RocketChat/Rocket.Chat/pull/14736) by [@Hudell](https://github.com/Hudell)) +- Add possibility to use commands inside threads through Rest API ([#15167](https://github.com/RocketChat/Rocket.Chat/pull/15167) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Message tooltips as everyone else ([#15135](https://github.com/RocketChat/Rocket.Chat/pull/15135)) -- Refactoring the queuing and routing processes of new livechats ([#15003](https://github.com/RocketChat/Rocket.Chat/pull/15003)) - ### 🐛 Bug fixes -- "Discussion" label in Sidebar not hidden, when Discussions are disabled (#14660) ([#14682](https://github.com/RocketChat/Rocket.Chat/pull/14682) by [@ifantom](https://github.com/ifantom)) - -- Attachment download button behavior ([#15172](https://github.com/RocketChat/Rocket.Chat/pull/15172)) +- Webdav crash ([#14918](https://github.com/RocketChat/Rocket.Chat/pull/14918) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- cachedcollection calling multiple times SYNC ([#15104](https://github.com/RocketChat/Rocket.Chat/pull/15104)) +- Mark room as read logic ([#15174](https://github.com/RocketChat/Rocket.Chat/pull/15174)) - Forget user session on window close ([#15205](https://github.com/RocketChat/Rocket.Chat/pull/15205)) -- IE11 - callback createTreeWalker doesnt accept acceptNode ([#15157](https://github.com/RocketChat/Rocket.Chat/pull/15157)) - -- IE11 baseURI ([#15319](https://github.com/RocketChat/Rocket.Chat/pull/15319)) +- Search message wrongly grouping messages ([#15094](https://github.com/RocketChat/Rocket.Chat/pull/15094)) -- IE11 modal, menu action and edit user page ([#15201](https://github.com/RocketChat/Rocket.Chat/pull/15201)) +- Rate limit incoming integrations (webhooks) ([#15038](https://github.com/RocketChat/Rocket.Chat/pull/15038) by [@mrsimpson](https://github.com/mrsimpson)) -- Mark room as read logic ([#15174](https://github.com/RocketChat/Rocket.Chat/pull/15174)) +- User's auto complete showing everyone on the server ([#15212](https://github.com/RocketChat/Rocket.Chat/pull/15212)) -- Messages search scroll ([#15175](https://github.com/RocketChat/Rocket.Chat/pull/15175)) +- "Discussion" label in Sidebar not hidden, when Discussions are disabled (#14660) ([#14682](https://github.com/RocketChat/Rocket.Chat/pull/14682) by [@ifantom](https://github.com/ifantom)) -- Prevent to create discussion with empty name ([#14507](https://github.com/RocketChat/Rocket.Chat/pull/14507)) +- Typo in 'access-permissions_description' ja translation ([#15162](https://github.com/RocketChat/Rocket.Chat/pull/15162) by [@NatsumiKubo](https://github.com/NatsumiKubo)) -- Rate limit incoming integrations (webhooks) ([#15038](https://github.com/RocketChat/Rocket.Chat/pull/15038) by [@mrsimpson](https://github.com/mrsimpson)) +- IE11 modal, menu action and edit user page ([#15201](https://github.com/RocketChat/Rocket.Chat/pull/15201)) -- Redirect on app manual install ([#15306](https://github.com/RocketChat/Rocket.Chat/pull/15306)) +- TabBar not loading template titles ([#15177](https://github.com/RocketChat/Rocket.Chat/pull/15177) by [@Hudell](https://github.com/Hudell)) -- Remove new hidden file and fix for .env files for Snap ([#15120](https://github.com/RocketChat/Rocket.Chat/pull/15120)) +- Attachment download button behavior ([#15172](https://github.com/RocketChat/Rocket.Chat/pull/15172)) -- Search message wrongly grouping messages ([#15094](https://github.com/RocketChat/Rocket.Chat/pull/15094)) +- Messages search scroll ([#15175](https://github.com/RocketChat/Rocket.Chat/pull/15175)) -- TabBar not loading template titles ([#15177](https://github.com/RocketChat/Rocket.Chat/pull/15177) by [@Hudell](https://github.com/Hudell)) +- IE11 - callback createTreeWalker doesnt accept acceptNode ([#15157](https://github.com/RocketChat/Rocket.Chat/pull/15157)) - Threads contextual bar button visible even with threads disabled ([#14956](https://github.com/RocketChat/Rocket.Chat/pull/14956) by [@cesarmal](https://github.com/cesarmal)) -- Typo in 'access-permissions_description' ja translation ([#15162](https://github.com/RocketChat/Rocket.Chat/pull/15162) by [@NatsumiKubo](https://github.com/NatsumiKubo)) +- Prevent to create discussion with empty name ([#14507](https://github.com/RocketChat/Rocket.Chat/pull/14507) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- User's auto complete showing everyone on the server ([#15212](https://github.com/RocketChat/Rocket.Chat/pull/15212)) +- Remove new hidden file and fix for .env files for Snap ([#15120](https://github.com/RocketChat/Rocket.Chat/pull/15120)) + +- cachedcollection calling multiple times SYNC ([#15104](https://github.com/RocketChat/Rocket.Chat/pull/15104)) -- Webdav crash ([#14918](https://github.com/RocketChat/Rocket.Chat/pull/14918)) +- Redirect on app manual install ([#15306](https://github.com/RocketChat/Rocket.Chat/pull/15306)) + +- IE11 baseURI ([#15319](https://github.com/RocketChat/Rocket.Chat/pull/15319))
🔍 Minor changes -- Add new step to build Docker image from PRs for production again ([#15124](https://github.com/RocketChat/Rocket.Chat/pull/15124)) +- Release 1.3.2 ([#15176](https://github.com/RocketChat/Rocket.Chat/pull/15176)) -- Add oplog events metrics ([#15249](https://github.com/RocketChat/Rocket.Chat/pull/15249)) +- LingoHub based on develop ([#15218](https://github.com/RocketChat/Rocket.Chat/pull/15218)) -- Add wreiske to authorized users in catbot ([#15147](https://github.com/RocketChat/Rocket.Chat/pull/15147)) +- Regression: fix typo permisson to permission ([#15217](https://github.com/RocketChat/Rocket.Chat/pull/15217)) -- Allow file upload paths on attachments URLs ([#15121](https://github.com/RocketChat/Rocket.Chat/pull/15121)) +- NEW: Apps enable after app installed ([#15202](https://github.com/RocketChat/Rocket.Chat/pull/15202)) - Change notifications file imports to server ([#15184](https://github.com/RocketChat/Rocket.Chat/pull/15184)) -- Federation improvements ([#15234](https://github.com/RocketChat/Rocket.Chat/pull/15234)) - -- Federation migration and additional improvements ([#15336](https://github.com/RocketChat/Rocket.Chat/pull/15336)) +- Update Livechat to 1.1.6 ([#15186](https://github.com/RocketChat/Rocket.Chat/pull/15186)) -- Fix apps list error ([#15258](https://github.com/RocketChat/Rocket.Chat/pull/15258)) +- Regression: remove livechat cache from circle ci ([#15183](https://github.com/RocketChat/Rocket.Chat/pull/15183)) -- Fix automated test for manual user activation ([#14978](https://github.com/RocketChat/Rocket.Chat/pull/14978) by [@mrsimpson](https://github.com/mrsimpson)) +- Update presence package ([#15178](https://github.com/RocketChat/Rocket.Chat/pull/15178)) -- Fix get IP for rate limiter ([#15262](https://github.com/RocketChat/Rocket.Chat/pull/15262)) +- Update latest Livechat widget version to 1.1.4 ([#15173](https://github.com/RocketChat/Rocket.Chat/pull/15173)) -- Fix v148 migration ([#15285](https://github.com/RocketChat/Rocket.Chat/pull/15285)) +- Update latest Livechat widget version(1.1.3) ([#15154](https://github.com/RocketChat/Rocket.Chat/pull/15154)) -- Improve url validation inside message object ([#15074](https://github.com/RocketChat/Rocket.Chat/pull/15074)) +- LingoHub based on develop ([#15166](https://github.com/RocketChat/Rocket.Chat/pull/15166)) -- LingoHub based on develop ([#15218](https://github.com/RocketChat/Rocket.Chat/pull/15218)) +- Switch outdated roadmap to point to milestones ([#15156](https://github.com/RocketChat/Rocket.Chat/pull/15156)) -- LingoHub based on develop ([#15166](https://github.com/RocketChat/Rocket.Chat/pull/15166)) +- Remove GPG file ([#15146](https://github.com/RocketChat/Rocket.Chat/pull/15146)) -- LingoHub based on develop ([#15115](https://github.com/RocketChat/Rocket.Chat/pull/15115)) +- Add wreiske to authorized users in catbot ([#15147](https://github.com/RocketChat/Rocket.Chat/pull/15147)) -- Merge master into develop & Set version to 1.4.0-develop ([#15097](https://github.com/RocketChat/Rocket.Chat/pull/15097)) +- Update to version 2.0.0-develop ([#15142](https://github.com/RocketChat/Rocket.Chat/pull/15142)) -- NEW: Apps enable after app installed ([#15202](https://github.com/RocketChat/Rocket.Chat/pull/15202)) +- removed unwanted code ([#15078](https://github.com/RocketChat/Rocket.Chat/pull/15078) by [@httpsOmkar](https://github.com/httpsOmkar)) -- Regression: addPermissionToRole argument as string ([#15267](https://github.com/RocketChat/Rocket.Chat/pull/15267)) +- Update pt-BR.i18n.json ([#15083](https://github.com/RocketChat/Rocket.Chat/pull/15083) by [@lucassmacedo](https://github.com/lucassmacedo)) - Regression: cachedCollection wrong callback parameters ([#15136](https://github.com/RocketChat/Rocket.Chat/pull/15136)) -- Regression: Double error toast on Setup Wizard ([#15268](https://github.com/RocketChat/Rocket.Chat/pull/15268)) +- Allow file upload paths on attachments URLs ([#15121](https://github.com/RocketChat/Rocket.Chat/pull/15121) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Errors on the console preventing some settings to be saved ([#15310](https://github.com/RocketChat/Rocket.Chat/pull/15310)) +- Fix automated test for manual user activation ([#14978](https://github.com/RocketChat/Rocket.Chat/pull/14978) by [@mrsimpson](https://github.com/mrsimpson)) -- Regression: Fix assets extension detection ([#15231](https://github.com/RocketChat/Rocket.Chat/pull/15231)) +- Add new step to build Docker image from PRs for production again ([#15124](https://github.com/RocketChat/Rocket.Chat/pull/15124)) -- Regression: fix typo permisson to permission ([#15217](https://github.com/RocketChat/Rocket.Chat/pull/15217)) +- LingoHub based on develop ([#15115](https://github.com/RocketChat/Rocket.Chat/pull/15115)) -- Regression: Fix wrong import and minor code improvements ([#15352](https://github.com/RocketChat/Rocket.Chat/pull/15352)) +- Improve url validation inside message object ([#15074](https://github.com/RocketChat/Rocket.Chat/pull/15074) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: last message doesn't update after reconnect ([#15329](https://github.com/RocketChat/Rocket.Chat/pull/15329)) +- Merge master into develop & Set version to 1.4.0-develop ([#15097](https://github.com/RocketChat/Rocket.Chat/pull/15097)) -- Regression: New Livechat methods and processes ([#15242](https://github.com/RocketChat/Rocket.Chat/pull/15242)) +- Federation improvements ([#15234](https://github.com/RocketChat/Rocket.Chat/pull/15234)) -- Regression: Remove duplicated permission changes emitter ([#15321](https://github.com/RocketChat/Rocket.Chat/pull/15321)) +- Regression: Fix assets extension detection ([#15231](https://github.com/RocketChat/Rocket.Chat/pull/15231)) -- Regression: remove livechat cache from circle ci ([#15183](https://github.com/RocketChat/Rocket.Chat/pull/15183)) +- Regression: Double error toast on Setup Wizard ([#15268](https://github.com/RocketChat/Rocket.Chat/pull/15268)) + +- Regression: addPermissionToRole argument as string ([#15267](https://github.com/RocketChat/Rocket.Chat/pull/15267)) - Regression: Remove old scripts of Setup Wizard ([#15263](https://github.com/RocketChat/Rocket.Chat/pull/15263)) -- Release 1.3.2 ([#15176](https://github.com/RocketChat/Rocket.Chat/pull/15176)) +- Fix get IP for rate limiter ([#15262](https://github.com/RocketChat/Rocket.Chat/pull/15262)) -- Remove GPG file ([#15146](https://github.com/RocketChat/Rocket.Chat/pull/15146)) +- Add oplog events metrics ([#15249](https://github.com/RocketChat/Rocket.Chat/pull/15249)) -- removed unwanted code ([#15078](https://github.com/RocketChat/Rocket.Chat/pull/15078) by [@httpsOmkar](https://github.com/httpsOmkar)) +- Regression: last message doesn't update after reconnect ([#15329](https://github.com/RocketChat/Rocket.Chat/pull/15329)) -- Switch outdated roadmap to point to milestones ([#15156](https://github.com/RocketChat/Rocket.Chat/pull/15156)) +- Regression: New Livechat methods and processes ([#15242](https://github.com/RocketChat/Rocket.Chat/pull/15242)) -- Update latest Livechat widget version to 1.1.4 ([#15173](https://github.com/RocketChat/Rocket.Chat/pull/15173)) +- Regression: Remove duplicated permission changes emitter ([#15321](https://github.com/RocketChat/Rocket.Chat/pull/15321)) -- Update latest Livechat widget version(1.1.3) ([#15154](https://github.com/RocketChat/Rocket.Chat/pull/15154)) +- Regression: Errors on the console preventing some settings to be saved ([#15310](https://github.com/RocketChat/Rocket.Chat/pull/15310)) -- Update Livechat to 1.1.6 ([#15186](https://github.com/RocketChat/Rocket.Chat/pull/15186)) +- Fix v148 migration ([#15285](https://github.com/RocketChat/Rocket.Chat/pull/15285)) -- Update presence package ([#15178](https://github.com/RocketChat/Rocket.Chat/pull/15178)) +- Fix apps list error ([#15258](https://github.com/RocketChat/Rocket.Chat/pull/15258)) -- Update pt-BR.i18n.json ([#15083](https://github.com/RocketChat/Rocket.Chat/pull/15083) by [@lucassmacedo](https://github.com/lucassmacedo)) +- Federation migration and additional improvements ([#15336](https://github.com/RocketChat/Rocket.Chat/pull/15336)) -- Update to version 2.0.0-develop ([#15142](https://github.com/RocketChat/Rocket.Chat/pull/15142)) +- Regression: Fix wrong import and minor code improvements ([#15352](https://github.com/RocketChat/Rocket.Chat/pull/15352))
@@ -3865,6 +4166,7 @@ - [@Deltachaos](https://github.com/Deltachaos) - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@NatsumiKubo](https://github.com/NatsumiKubo) - [@cardoso](https://github.com/cardoso) - [@cesarmal](https://github.com/cesarmal) @@ -3881,7 +4183,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@alansikora](https://github.com/alansikora) - [@d-gubert](https://github.com/d-gubert) @@ -3926,10 +4227,10 @@ - Attachment download button behavior ([#15172](https://github.com/RocketChat/Rocket.Chat/pull/15172)) -- IE11 - callback createTreeWalker doesnt accept acceptNode ([#15157](https://github.com/RocketChat/Rocket.Chat/pull/15157)) - - Messages search scroll ([#15175](https://github.com/RocketChat/Rocket.Chat/pull/15175)) +- IE11 - callback createTreeWalker doesnt accept acceptNode ([#15157](https://github.com/RocketChat/Rocket.Chat/pull/15157)) +
🔍 Minor changes @@ -3968,15 +4269,18 @@ 🔍 Minor changes -- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141)) +- Release 1.3.1 ([#15148](https://github.com/RocketChat/Rocket.Chat/pull/15148) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 1.3.1 ([#15148](https://github.com/RocketChat/Rocket.Chat/pull/15148)) +- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@ggazzo](https://github.com/ggazzo) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -3991,173 +4295,173 @@ ### 🎉 New features -- Accept multiple redirect URIs on OAuth Apps ([#14935](https://github.com/RocketChat/Rocket.Chat/pull/14935) by [@Hudell](https://github.com/Hudell)) +- Show helpful error when oplog is missing ([#14954](https://github.com/RocketChat/Rocket.Chat/pull/14954) by [@justinr1234](https://github.com/justinr1234)) + +- Subscription enabled marketplace ([#14948](https://github.com/RocketChat/Rocket.Chat/pull/14948)) - Deprecate MongoDB version 3.2 ([#15025](https://github.com/RocketChat/Rocket.Chat/pull/15025)) - Options to filter discussion and livechat on Admin > Rooms ([#15019](https://github.com/RocketChat/Rocket.Chat/pull/15019)) -- Setting to configure custom authn context on SAML requests ([#14675](https://github.com/RocketChat/Rocket.Chat/pull/14675) by [@Hudell](https://github.com/Hudell)) - -- Setting to prevent Livechat agents online when Office Hours are closed ([#14921](https://github.com/RocketChat/Rocket.Chat/pull/14921)) - - Settings to further customize GitLab OAuth ([#15014](https://github.com/RocketChat/Rocket.Chat/pull/15014) by [@Hudell](https://github.com/Hudell)) -- Show helpful error when oplog is missing ([#14954](https://github.com/RocketChat/Rocket.Chat/pull/14954) by [@justinr1234](https://github.com/justinr1234)) +- Accept multiple redirect URIs on OAuth Apps ([#14935](https://github.com/RocketChat/Rocket.Chat/pull/14935) by [@Hudell](https://github.com/Hudell)) -- Subscription enabled marketplace ([#14948](https://github.com/RocketChat/Rocket.Chat/pull/14948)) +- Setting to configure custom authn context on SAML requests ([#14675](https://github.com/RocketChat/Rocket.Chat/pull/14675) by [@Hudell](https://github.com/Hudell)) - Webdav File Picker ([#14879](https://github.com/RocketChat/Rocket.Chat/pull/14879) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Setting to prevent Livechat agents online when Office Hours are closed ([#14921](https://github.com/RocketChat/Rocket.Chat/pull/14921)) + ### 🚀 Improvements -- Add descriptions on user data download buttons and popup info ([#14852](https://github.com/RocketChat/Rocket.Chat/pull/14852)) +- Connectivity Services License Sync ([#15022](https://github.com/RocketChat/Rocket.Chat/pull/15022)) - Add flag to identify remote federation users ([#15004](https://github.com/RocketChat/Rocket.Chat/pull/15004)) -- Connectivity Services License Sync ([#15022](https://github.com/RocketChat/Rocket.Chat/pull/15022)) - - Extract federation config to its own file ([#14992](https://github.com/RocketChat/Rocket.Chat/pull/14992)) +- Update tabs markup ([#14964](https://github.com/RocketChat/Rocket.Chat/pull/14964)) + - Remove too specific helpers isFirefox() and isChrome() ([#14963](https://github.com/RocketChat/Rocket.Chat/pull/14963)) -- Update tabs markup ([#14964](https://github.com/RocketChat/Rocket.Chat/pull/14964)) +- Add descriptions on user data download buttons and popup info ([#14852](https://github.com/RocketChat/Rocket.Chat/pull/14852) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) ### 🐛 Bug fixes -- 50 custom emoji limit ([#14951](https://github.com/RocketChat/Rocket.Chat/pull/14951)) +- Russian grammatical errors ([#14622](https://github.com/RocketChat/Rocket.Chat/pull/14622) by [@BehindLoader](https://github.com/BehindLoader)) + +- Message attachments not allowing float numbers ([#14412](https://github.com/RocketChat/Rocket.Chat/pull/14412) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Typo in german translation ([#14833](https://github.com/RocketChat/Rocket.Chat/pull/14833) by [@Le-onardo](https://github.com/Le-onardo)) + +- users.setStatus REST endpoint not allowing reset status message ([#14916](https://github.com/RocketChat/Rocket.Chat/pull/14916) by [@cardoso](https://github.com/cardoso)) + +- SVG uploads crashing process ([#15006](https://github.com/RocketChat/Rocket.Chat/pull/15006) by [@snoopotic](https://github.com/snoopotic)) + +- Edit message with arrow up key if not last message ([#15021](https://github.com/RocketChat/Rocket.Chat/pull/15021)) + +- Livechat dashboard average and reaction time labels ([#14845](https://github.com/RocketChat/Rocket.Chat/pull/14845) by [@anandpathak](https://github.com/anandpathak)) + +- Edit permissions screen ([#14950](https://github.com/RocketChat/Rocket.Chat/pull/14950) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Allow storing the navigation history of unregistered Livechat visitors ([#14970](https://github.com/RocketChat/Rocket.Chat/pull/14970)) +- Invite users auto complete cropping results ([#15020](https://github.com/RocketChat/Rocket.Chat/pull/15020)) - Always displaying jumbomojis when using "marked" markdown ([#14861](https://github.com/RocketChat/Rocket.Chat/pull/14861) by [@brakhane](https://github.com/brakhane)) -- Chrome doesn't load additional search results when bottom is reached ([#14965](https://github.com/RocketChat/Rocket.Chat/pull/14965)) +- CustomOauth Identity Step errors displayed in HTML format ([#15000](https://github.com/RocketChat/Rocket.Chat/pull/15000) by [@Hudell](https://github.com/Hudell)) - Custom User Status throttled by rate limiter ([#15001](https://github.com/RocketChat/Rocket.Chat/pull/15001) by [@Hudell](https://github.com/Hudell)) -- CustomOauth Identity Step errors displayed in HTML format ([#15000](https://github.com/RocketChat/Rocket.Chat/pull/15000) by [@Hudell](https://github.com/Hudell)) - -- Edit message with arrow up key if not last message ([#15021](https://github.com/RocketChat/Rocket.Chat/pull/15021)) +- Not being able to mention users with "all" and "here" usernames - do not allow users register that usernames ([#14468](https://github.com/RocketChat/Rocket.Chat/pull/14468) by [@hamidrezabstn](https://github.com/hamidrezabstn)) -- Edit permissions screen ([#14950](https://github.com/RocketChat/Rocket.Chat/pull/14950)) +- Users staying online after logout ([#14966](https://github.com/RocketChat/Rocket.Chat/pull/14966) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- eternal loading file list ([#14952](https://github.com/RocketChat/Rocket.Chat/pull/14952)) +- Chrome doesn't load additional search results when bottom is reached ([#14965](https://github.com/RocketChat/Rocket.Chat/pull/14965)) -- Invite users auto complete cropping results ([#15020](https://github.com/RocketChat/Rocket.Chat/pull/15020)) +- Wrong label order on room settings ([#14960](https://github.com/RocketChat/Rocket.Chat/pull/14960) by [@Hudell](https://github.com/Hudell)) -- Jump to message missing in Starred Messages ([#14949](https://github.com/RocketChat/Rocket.Chat/pull/14949)) +- Allow storing the navigation history of unregistered Livechat visitors ([#14970](https://github.com/RocketChat/Rocket.Chat/pull/14970)) -- LDAP login with customField sync ([#14808](https://github.com/RocketChat/Rocket.Chat/pull/14808) by [@magicbelette](https://github.com/magicbelette)) +- 50 custom emoji limit ([#14951](https://github.com/RocketChat/Rocket.Chat/pull/14951)) -- Livechat dashboard average and reaction time labels ([#14845](https://github.com/RocketChat/Rocket.Chat/pull/14845) by [@anandpathak](https://github.com/anandpathak)) +- eternal loading file list ([#14952](https://github.com/RocketChat/Rocket.Chat/pull/14952)) - load more messages ([#14967](https://github.com/RocketChat/Rocket.Chat/pull/14967)) - Loading indicator positioning ([#14968](https://github.com/RocketChat/Rocket.Chat/pull/14968)) -- Message attachments not allowing float numbers ([#14412](https://github.com/RocketChat/Rocket.Chat/pull/14412)) +- Jump to message missing in Starred Messages ([#14949](https://github.com/RocketChat/Rocket.Chat/pull/14949)) -- Method `getUsersOfRoom` not returning offline users if limit is not defined ([#14753](https://github.com/RocketChat/Rocket.Chat/pull/14753)) +- Method `getUsersOfRoom` not returning offline users if limit is not defined ([#14753](https://github.com/RocketChat/Rocket.Chat/pull/14753) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Not being able to mention users with "all" and "here" usernames - do not allow users register that usernames ([#14468](https://github.com/RocketChat/Rocket.Chat/pull/14468) by [@hamidrezabstn](https://github.com/hamidrezabstn)) +- OTR key icon missing on messages ([#14953](https://github.com/RocketChat/Rocket.Chat/pull/14953)) -- Not sanitized message types ([#15054](https://github.com/RocketChat/Rocket.Chat/pull/15054)) +- Prevent error on trying insert message with duplicated id ([#14945](https://github.com/RocketChat/Rocket.Chat/pull/14945) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Opening Livechat messages on mobile apps ([#14785](https://github.com/RocketChat/Rocket.Chat/pull/14785) by [@zolbayars](https://github.com/zolbayars)) +- LDAP login with customField sync ([#14808](https://github.com/RocketChat/Rocket.Chat/pull/14808) by [@magicbelette](https://github.com/magicbelette)) -- OTR key icon missing on messages ([#14953](https://github.com/RocketChat/Rocket.Chat/pull/14953)) +- Wrong custom status displayed on room leader panel ([#14958](https://github.com/RocketChat/Rocket.Chat/pull/14958) by [@Hudell](https://github.com/Hudell)) -- Prevent error on trying insert message with duplicated id ([#14945](https://github.com/RocketChat/Rocket.Chat/pull/14945)) +- Video recorder message echo ([#14671](https://github.com/RocketChat/Rocket.Chat/pull/14671) by [@vova-zush](https://github.com/vova-zush)) -- Russian grammatical errors ([#14622](https://github.com/RocketChat/Rocket.Chat/pull/14622) by [@BehindLoader](https://github.com/BehindLoader)) +- Opening Livechat messages on mobile apps ([#14785](https://github.com/RocketChat/Rocket.Chat/pull/14785) by [@zolbayars](https://github.com/zolbayars)) - SAML login by giving displayName priority over userName for fullName ([#14880](https://github.com/RocketChat/Rocket.Chat/pull/14880) by [@pkolmann](https://github.com/pkolmann)) - setupWizard calling multiple getSetupWizardParameters ([#15060](https://github.com/RocketChat/Rocket.Chat/pull/15060)) -- SVG uploads crashing process ([#15006](https://github.com/RocketChat/Rocket.Chat/pull/15006) by [@snoopotic](https://github.com/snoopotic)) - -- Typo in german translation ([#14833](https://github.com/RocketChat/Rocket.Chat/pull/14833) by [@Le-onardo](https://github.com/Le-onardo)) - -- Users staying online after logout ([#14966](https://github.com/RocketChat/Rocket.Chat/pull/14966)) - -- users.setStatus REST endpoint not allowing reset status message ([#14916](https://github.com/RocketChat/Rocket.Chat/pull/14916) by [@cardoso](https://github.com/cardoso)) - -- Video recorder message echo ([#14671](https://github.com/RocketChat/Rocket.Chat/pull/14671) by [@vova-zush](https://github.com/vova-zush)) - -- Wrong custom status displayed on room leader panel ([#14958](https://github.com/RocketChat/Rocket.Chat/pull/14958) by [@Hudell](https://github.com/Hudell)) - -- Wrong label order on room settings ([#14960](https://github.com/RocketChat/Rocket.Chat/pull/14960) by [@Hudell](https://github.com/Hudell)) +- Not sanitized message types ([#15054](https://github.com/RocketChat/Rocket.Chat/pull/15054))
🔍 Minor changes -- [IMPROVEMENT] patch to improve emoji render ([#14722](https://github.com/RocketChat/Rocket.Chat/pull/14722)) +- Release 1.2.1 ([#14898](https://github.com/RocketChat/Rocket.Chat/pull/14898)) + +- Wrong text when reporting a message ([#14515](https://github.com/RocketChat/Rocket.Chat/pull/14515) by [@zdumitru](https://github.com/zdumitru)) - Add missing French translation ([#15013](https://github.com/RocketChat/Rocket.Chat/pull/15013) by [@commiaI](https://github.com/commiaI)) -- Always convert the sha256 password to lowercase on checking ([#14941](https://github.com/RocketChat/Rocket.Chat/pull/14941)) +- Fix statistics error for apps on first load ([#15026](https://github.com/RocketChat/Rocket.Chat/pull/15026)) -- Bump jquery from 3.3.1 to 3.4.0 in /packages/rocketchat-livechat/.app ([#14922](https://github.com/RocketChat/Rocket.Chat/pull/14922) by [@dependabot[bot]](https://github.com/dependabot[bot])) +- Always convert the sha256 password to lowercase on checking ([#14941](https://github.com/RocketChat/Rocket.Chat/pull/14941) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Bump juice version to 5.2.0 ([#14974](https://github.com/RocketChat/Rocket.Chat/pull/14974)) +- New: Apps and integrations statistics ([#14878](https://github.com/RocketChat/Rocket.Chat/pull/14878) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- improve: relocate some of wizard info to register ([#14884](https://github.com/RocketChat/Rocket.Chat/pull/14884)) + +- Improve Docker compose readability ([#14457](https://github.com/RocketChat/Rocket.Chat/pull/14457) by [@NateScarlet](https://github.com/NateScarlet)) - Bump marked from 0.5.2 to 0.6.1 ([#14969](https://github.com/RocketChat/Rocket.Chat/pull/14969) by [@dependabot[bot]](https://github.com/dependabot[bot])) -- Bump node-rsa version to 1.0.5 ([#14976](https://github.com/RocketChat/Rocket.Chat/pull/14976)) +- Remove unused Meteor dependency (yasinuslu:blaze-meta) ([#14971](https://github.com/RocketChat/Rocket.Chat/pull/14971)) - Bump photoswipe version to 4.1.3 ([#14977](https://github.com/RocketChat/Rocket.Chat/pull/14977)) -- Callbacks perf ([#14915](https://github.com/RocketChat/Rocket.Chat/pull/14915)) +- Bump node-rsa version to 1.0.5 ([#14976](https://github.com/RocketChat/Rocket.Chat/pull/14976)) -- Extract canSendMessage function ([#14909](https://github.com/RocketChat/Rocket.Chat/pull/14909)) +- Bump juice version to 5.2.0 ([#14974](https://github.com/RocketChat/Rocket.Chat/pull/14974)) -- Fix statistics error for apps on first load ([#15026](https://github.com/RocketChat/Rocket.Chat/pull/15026)) +- Remove unused dependency (lokijs) ([#14973](https://github.com/RocketChat/Rocket.Chat/pull/14973)) -- Improve Docker compose readability ([#14457](https://github.com/RocketChat/Rocket.Chat/pull/14457) by [@NateScarlet](https://github.com/NateScarlet)) +- Regression: patch to improve emoji render ([#14980](https://github.com/RocketChat/Rocket.Chat/pull/14980)) -- Improve: Get public key for marketplace ([#14851](https://github.com/RocketChat/Rocket.Chat/pull/14851)) +- [IMPROVEMENT] patch to improve emoji render ([#14722](https://github.com/RocketChat/Rocket.Chat/pull/14722)) -- improve: relocate some of wizard info to register ([#14884](https://github.com/RocketChat/Rocket.Chat/pull/14884)) +- Bump jquery from 3.3.1 to 3.4.0 in /packages/rocketchat-livechat/.app ([#14922](https://github.com/RocketChat/Rocket.Chat/pull/14922) by [@dependabot[bot]](https://github.com/dependabot[bot])) -- Merge master into develop & Set version to 1.3.0-develop ([#14889](https://github.com/RocketChat/Rocket.Chat/pull/14889) by [@Hudell](https://github.com/Hudell)) +- Callbacks perf ([#14915](https://github.com/RocketChat/Rocket.Chat/pull/14915)) -- New: Apps and integrations statistics ([#14878](https://github.com/RocketChat/Rocket.Chat/pull/14878)) +- Split oplog emitters in files ([#14917](https://github.com/RocketChat/Rocket.Chat/pull/14917)) -- Regression: Apps and Marketplace UI issues ([#15045](https://github.com/RocketChat/Rocket.Chat/pull/15045)) +- Extract canSendMessage function ([#14909](https://github.com/RocketChat/Rocket.Chat/pull/14909)) -- Regression: displaying errors for apps not installed from Marketplace ([#15075](https://github.com/RocketChat/Rocket.Chat/pull/15075)) +- Improve: Get public key for marketplace ([#14851](https://github.com/RocketChat/Rocket.Chat/pull/14851)) + +- Merge master into develop & Set version to 1.3.0-develop ([#14889](https://github.com/RocketChat/Rocket.Chat/pull/14889) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Regression: fix code style, setup wizard error and profile page header ([#15041](https://github.com/RocketChat/Rocket.Chat/pull/15041)) - Regression: Framework version being attached to a request that doesn't require it ([#15039](https://github.com/RocketChat/Rocket.Chat/pull/15039)) -- Regression: getSetupWizardParameters ([#15067](https://github.com/RocketChat/Rocket.Chat/pull/15067)) - -- Regression: Improve apps bridges for HA setup ([#15080](https://github.com/RocketChat/Rocket.Chat/pull/15080)) - -- Regression: Marketplace app pricing plan description ([#15076](https://github.com/RocketChat/Rocket.Chat/pull/15076)) - -- Regression: patch to improve emoji render ([#14980](https://github.com/RocketChat/Rocket.Chat/pull/14980)) +- Update Livechat widget ([#15046](https://github.com/RocketChat/Rocket.Chat/pull/15046)) -- Regression: uninstall subscribed app modal ([#15077](https://github.com/RocketChat/Rocket.Chat/pull/15077)) +- Regression: getSetupWizardParameters ([#15067](https://github.com/RocketChat/Rocket.Chat/pull/15067)) - Regression: Webdav File Picker search and fixed overflows ([#15027](https://github.com/RocketChat/Rocket.Chat/pull/15027) by [@ubarsaiyan](https://github.com/ubarsaiyan)) -- Release 1.2.1 ([#14898](https://github.com/RocketChat/Rocket.Chat/pull/14898)) - -- Remove unused dependency (lokijs) ([#14973](https://github.com/RocketChat/Rocket.Chat/pull/14973)) +- Regression: Improve apps bridges for HA setup ([#15080](https://github.com/RocketChat/Rocket.Chat/pull/15080)) -- Remove unused Meteor dependency (yasinuslu:blaze-meta) ([#14971](https://github.com/RocketChat/Rocket.Chat/pull/14971)) +- Regression: displaying errors for apps not installed from Marketplace ([#15075](https://github.com/RocketChat/Rocket.Chat/pull/15075)) -- Split oplog emitters in files ([#14917](https://github.com/RocketChat/Rocket.Chat/pull/14917)) +- Regression: Marketplace app pricing plan description ([#15076](https://github.com/RocketChat/Rocket.Chat/pull/15076)) -- Update Livechat widget ([#15046](https://github.com/RocketChat/Rocket.Chat/pull/15046)) +- Regression: uninstall subscribed app modal ([#15077](https://github.com/RocketChat/Rocket.Chat/pull/15077)) -- Wrong text when reporting a message ([#14515](https://github.com/RocketChat/Rocket.Chat/pull/14515) by [@zdumitru](https://github.com/zdumitru)) +- Regression: Apps and Marketplace UI issues ([#15045](https://github.com/RocketChat/Rocket.Chat/pull/15045))
@@ -4166,6 +4470,7 @@ - [@BehindLoader](https://github.com/BehindLoader) - [@Hudell](https://github.com/Hudell) - [@Le-onardo](https://github.com/Le-onardo) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@NateScarlet](https://github.com/NateScarlet) - [@anandpathak](https://github.com/anandpathak) - [@brakhane](https://github.com/brakhane) @@ -4184,7 +4489,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@alansikora](https://github.com/alansikora) - [@d-gubert](https://github.com/d-gubert) - [@engelgabriel](https://github.com/engelgabriel) @@ -4208,11 +4512,11 @@ 🔍 Minor changes -- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141)) +- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) @@ -4270,83 +4574,83 @@ ### 🎉 New features -- Add Livechat inquiries endpoints ([#14779](https://github.com/RocketChat/Rocket.Chat/pull/14779)) +- Custom User Status ([#13933](https://github.com/RocketChat/Rocket.Chat/pull/13933) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) -- Add loading animation to webdav file picker ([#14759](https://github.com/RocketChat/Rocket.Chat/pull/14759) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- changed mongo version for snap from 3.2.7 to 3.4.20 ([#14838](https://github.com/RocketChat/Rocket.Chat/pull/14838)) -- Add tmid property to outgoing integration ([#14699](https://github.com/RocketChat/Rocket.Chat/pull/14699)) +- Add loading animation to webdav file picker ([#14759](https://github.com/RocketChat/Rocket.Chat/pull/14759) by [@ubarsaiyan](https://github.com/ubarsaiyan)) -- changed mongo version for snap from 3.2.7 to 3.4.20 ([#14838](https://github.com/RocketChat/Rocket.Chat/pull/14838)) +- Add tmid property to outgoing integration ([#14699](https://github.com/RocketChat/Rocket.Chat/pull/14699) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Configuration to limit amount of livechat inquiries displayed ([#14690](https://github.com/RocketChat/Rocket.Chat/pull/14690)) +- Endpoint to anonymously read channel's messages ([#14714](https://github.com/RocketChat/Rocket.Chat/pull/14714) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Custom User Status ([#13933](https://github.com/RocketChat/Rocket.Chat/pull/13933) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) +- Add Livechat inquiries endpoints ([#14779](https://github.com/RocketChat/Rocket.Chat/pull/14779) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Endpoint to anonymously read channel's messages ([#14714](https://github.com/RocketChat/Rocket.Chat/pull/14714)) +- Configuration to limit amount of livechat inquiries displayed ([#14690](https://github.com/RocketChat/Rocket.Chat/pull/14690)) - Show App bundles and its apps ([#14886](https://github.com/RocketChat/Rocket.Chat/pull/14886)) ### 🚀 Improvements -- Add an optional rocketchat-protocol DNS entry for Federation ([#14589](https://github.com/RocketChat/Rocket.Chat/pull/14589)) - -- Adds link to download generated user data file ([#14175](https://github.com/RocketChat/Rocket.Chat/pull/14175) by [@Hudell](https://github.com/Hudell)) +- Adds link to download generated user data file ([#14175](https://github.com/RocketChat/Rocket.Chat/pull/14175) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Layout of livechat manager pages to new style ([#13900](https://github.com/RocketChat/Rocket.Chat/pull/13900)) +- Add an optional rocketchat-protocol DNS entry for Federation ([#14589](https://github.com/RocketChat/Rocket.Chat/pull/14589)) + - Use configurable colors on sidebar items ([#14624](https://github.com/RocketChat/Rocket.Chat/pull/14624)) ### 🐛 Bug fixes -- Assume microphone is available ([#14710](https://github.com/RocketChat/Rocket.Chat/pull/14710)) +- Error when using Download My Data or Export My Data ([#14645](https://github.com/RocketChat/Rocket.Chat/pull/14645) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Custom status fixes ([#14853](https://github.com/RocketChat/Rocket.Chat/pull/14853) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) +- Removes E2E action button, icon and banner when E2E is disabled. ([#14810](https://github.com/RocketChat/Rocket.Chat/pull/14810)) -- Direct reply delete config and description ([#14493](https://github.com/RocketChat/Rocket.Chat/pull/14493) by [@ruKurz](https://github.com/ruKurz)) +- Gap of messages when loading history when using threads ([#14837](https://github.com/RocketChat/Rocket.Chat/pull/14837)) -- Error when using Download My Data or Export My Data ([#14645](https://github.com/RocketChat/Rocket.Chat/pull/14645) by [@Hudell](https://github.com/Hudell)) +- Assume microphone is available ([#14710](https://github.com/RocketChat/Rocket.Chat/pull/14710)) -- Gap of messages when loading history when using threads ([#14837](https://github.com/RocketChat/Rocket.Chat/pull/14837)) +- Move the set Avatar call on user creation to make sure the user has username ([#14665](https://github.com/RocketChat/Rocket.Chat/pull/14665) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Import Chart.js error ([#14471](https://github.com/RocketChat/Rocket.Chat/pull/14471) by [@Hudell](https://github.com/Hudell) & [@sonbn0](https://github.com/sonbn0)) +- users typing forever ([#14724](https://github.com/RocketChat/Rocket.Chat/pull/14724)) -- Increasing time to rate limit in shield.svg endpoint and add a setting to disable API rate limiter ([#14709](https://github.com/RocketChat/Rocket.Chat/pull/14709)) +- Increasing time to rate limit in shield.svg endpoint and add a setting to disable API rate limiter ([#14709](https://github.com/RocketChat/Rocket.Chat/pull/14709) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LinkedIn OAuth login ([#14887](https://github.com/RocketChat/Rocket.Chat/pull/14887) by [@Hudell](https://github.com/Hudell)) +- Wrong filter field when filtering current Livechats ([#14569](https://github.com/RocketChat/Rocket.Chat/pull/14569)) -- Move the set Avatar call on user creation to make sure the user has username ([#14665](https://github.com/RocketChat/Rocket.Chat/pull/14665)) +- Import Chart.js error ([#14471](https://github.com/RocketChat/Rocket.Chat/pull/14471) by [@Hudell](https://github.com/Hudell) & [@sonbn0](https://github.com/sonbn0)) -- Name is undefined in some emails ([#14533](https://github.com/RocketChat/Rocket.Chat/pull/14533)) +- Name is undefined in some emails ([#14533](https://github.com/RocketChat/Rocket.Chat/pull/14533) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removes E2E action button, icon and banner when E2E is disabled. ([#14810](https://github.com/RocketChat/Rocket.Chat/pull/14810)) +- Direct reply delete config and description ([#14493](https://github.com/RocketChat/Rocket.Chat/pull/14493) by [@ruKurz](https://github.com/ruKurz)) -- users typing forever ([#14724](https://github.com/RocketChat/Rocket.Chat/pull/14724)) +- Custom status fixes ([#14853](https://github.com/RocketChat/Rocket.Chat/pull/14853) by [@Hudell](https://github.com/Hudell) & [@wreiske](https://github.com/wreiske)) -- Wrong filter field when filtering current Livechats ([#14569](https://github.com/RocketChat/Rocket.Chat/pull/14569)) +- LinkedIn OAuth login ([#14887](https://github.com/RocketChat/Rocket.Chat/pull/14887) by [@Hudell](https://github.com/Hudell))
🔍 Minor changes -- Add custom fileupload whitelist property ([#14754](https://github.com/RocketChat/Rocket.Chat/pull/14754)) +- Regression: thread loading parent msg if is not loaded ([#14839](https://github.com/RocketChat/Rocket.Chat/pull/14839)) -- Allow debugging of cached collections by name ([#14859](https://github.com/RocketChat/Rocket.Chat/pull/14859)) +- Fix not fully extracted pieces ([#14805](https://github.com/RocketChat/Rocket.Chat/pull/14805)) + +- Regression: Fix file upload ([#14804](https://github.com/RocketChat/Rocket.Chat/pull/14804)) - Extract permissions functions ([#14777](https://github.com/RocketChat/Rocket.Chat/pull/14777)) -- Fix not fully extracted pieces ([#14805](https://github.com/RocketChat/Rocket.Chat/pull/14805)) +- Add custom fileupload whitelist property ([#14754](https://github.com/RocketChat/Rocket.Chat/pull/14754)) - Merge master into develop & Set version to 1.2.0-develop ([#14656](https://github.com/RocketChat/Rocket.Chat/pull/14656) by [@AnBo83](https://github.com/AnBo83) & [@knrt10](https://github.com/knrt10) & [@mohamedar97](https://github.com/mohamedar97) & [@thaiphv](https://github.com/thaiphv)) -- Regression: Allow debugging of cached collections by name ([#14862](https://github.com/RocketChat/Rocket.Chat/pull/14862)) - - Regression: Fix desktop notifications not being sent ([#14860](https://github.com/RocketChat/Rocket.Chat/pull/14860)) -- Regression: Fix file upload ([#14804](https://github.com/RocketChat/Rocket.Chat/pull/14804)) +- Regression: Allow debugging of cached collections by name ([#14862](https://github.com/RocketChat/Rocket.Chat/pull/14862)) -- Regression: thread loading parent msg if is not loaded ([#14839](https://github.com/RocketChat/Rocket.Chat/pull/14839)) +- Allow debugging of cached collections by name ([#14859](https://github.com/RocketChat/Rocket.Chat/pull/14859))
@@ -4354,6 +4658,7 @@ - [@AnBo83](https://github.com/AnBo83) - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@knrt10](https://github.com/knrt10) - [@mohamedar97](https://github.com/mohamedar97) - [@ruKurz](https://github.com/ruKurz) @@ -4365,7 +4670,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@PrajvalRaval](https://github.com/PrajvalRaval) - [@alansikora](https://github.com/alansikora) - [@engelgabriel](https://github.com/engelgabriel) @@ -4389,11 +4693,11 @@ 🔍 Minor changes -- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141)) +- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) @@ -4431,10 +4735,10 @@ 🔍 Minor changes -- Regression: thread loading parent msg if is not loaded ([#14839](https://github.com/RocketChat/Rocket.Chat/pull/14839)) - - Release 1.1.3 ([#14850](https://github.com/RocketChat/Rocket.Chat/pull/14850)) +- Regression: thread loading parent msg if is not loaded ([#14839](https://github.com/RocketChat/Rocket.Chat/pull/14839)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -4453,27 +4757,27 @@ ### 🐛 Bug fixes -- Anonymous chat read ([#14717](https://github.com/RocketChat/Rocket.Chat/pull/14717)) +- User status information on User Info panel ([#14763](https://github.com/RocketChat/Rocket.Chat/pull/14763) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - User Real Name being erased when not modified ([#14711](https://github.com/RocketChat/Rocket.Chat/pull/14711) by [@Hudell](https://github.com/Hudell)) -- User status information on User Info panel ([#14763](https://github.com/RocketChat/Rocket.Chat/pull/14763)) +- Anonymous chat read ([#14717](https://github.com/RocketChat/Rocket.Chat/pull/14717) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
🔍 Minor changes -- Release 1.1.2 ([#14823](https://github.com/RocketChat/Rocket.Chat/pull/14823) by [@Hudell](https://github.com/Hudell)) +- Release 1.1.2 ([#14823](https://github.com/RocketChat/Rocket.Chat/pull/14823) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@ggazzo](https://github.com/ggazzo) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -4488,10 +4792,10 @@ ### 🐛 Bug fixes -- Load messages after disconnect and message box scroll missing ([#14668](https://github.com/RocketChat/Rocket.Chat/pull/14668)) - - SAML login error. ([#14686](https://github.com/RocketChat/Rocket.Chat/pull/14686) by [@Hudell](https://github.com/Hudell)) +- Load messages after disconnect and message box scroll missing ([#14668](https://github.com/RocketChat/Rocket.Chat/pull/14668)) +
🔍 Minor changes @@ -4520,233 +4824,233 @@ ### 🎉 New features -- Add pause and reset button when adding custom sound ([#13615](https://github.com/RocketChat/Rocket.Chat/pull/13615) by [@knrt10](https://github.com/knrt10)) +- Setting option to mark as containing a secret/password ([#10273](https://github.com/RocketChat/Rocket.Chat/pull/10273) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Custom user name field from Custom OAuth ([#14381](https://github.com/RocketChat/Rocket.Chat/pull/14381) by [@mjovanovic0](https://github.com/mjovanovic0)) +- Add pause and reset button when adding custom sound ([#13615](https://github.com/RocketChat/Rocket.Chat/pull/13615) by [@knrt10](https://github.com/knrt10)) + - Missing "view-outside-room_description" translation key ([#13680](https://github.com/RocketChat/Rocket.Chat/pull/13680) by [@bhardwajaditya](https://github.com/bhardwajaditya)) - Returns custom emojis through the Livechat REST API ([#14370](https://github.com/RocketChat/Rocket.Chat/pull/14370)) -- Setting option to mark as containing a secret/password ([#10273](https://github.com/RocketChat/Rocket.Chat/pull/10273)) - ### 🚀 Improvements -- Added flag `skipActiveUsersToBeReady` to not wait the load of `active users` to present the Web interface ([#14431](https://github.com/RocketChat/Rocket.Chat/pull/14431)) - -- Allow change Discussion's properties ([#14389](https://github.com/RocketChat/Rocket.Chat/pull/14389)) +- Message rendering time ([#14252](https://github.com/RocketChat/Rocket.Chat/pull/14252)) - Change user presence events to Meteor Streams ([#14488](https://github.com/RocketChat/Rocket.Chat/pull/14488)) +- Upgrade EmojiOne to JoyPixels 4.5.0 ([#13807](https://github.com/RocketChat/Rocket.Chat/pull/13807) by [@wreiske](https://github.com/wreiske)) + - Don't show unread count badge in burger menu if it is from the opened room ([#12971](https://github.com/RocketChat/Rocket.Chat/pull/12971)) -- Don't use regex to find users ([#14397](https://github.com/RocketChat/Rocket.Chat/pull/14397)) +- Livechat CRM secret token optional ([#14022](https://github.com/RocketChat/Rocket.Chat/pull/14022)) - jump to selected message on open thread ([#14460](https://github.com/RocketChat/Rocket.Chat/pull/14460)) -- Livechat CRM secret token optional ([#14022](https://github.com/RocketChat/Rocket.Chat/pull/14022)) +- Don't use regex to find users ([#14397](https://github.com/RocketChat/Rocket.Chat/pull/14397)) -- Message rendering time ([#14252](https://github.com/RocketChat/Rocket.Chat/pull/14252)) +- Added flag `skipActiveUsersToBeReady` to not wait the load of `active users` to present the Web interface ([#14431](https://github.com/RocketChat/Rocket.Chat/pull/14431)) - SAML login process refactoring ([#12891](https://github.com/RocketChat/Rocket.Chat/pull/12891) by [@kukkjanos](https://github.com/kukkjanos)) -- Upgrade EmojiOne to JoyPixels 4.5.0 ([#13807](https://github.com/RocketChat/Rocket.Chat/pull/13807) by [@wreiske](https://github.com/wreiske)) +- Allow change Discussion's properties ([#14389](https://github.com/RocketChat/Rocket.Chat/pull/14389)) ### 🐛 Bug fixes -- "Blank page" on safari 10.x ([#14651](https://github.com/RocketChat/Rocket.Chat/pull/14651)) +- Downloading files when running in sub directory ([#14485](https://github.com/RocketChat/Rocket.Chat/pull/14485) by [@miolane](https://github.com/miolane)) -- `Alphabetical` translation in DE ([#14490](https://github.com/RocketChat/Rocket.Chat/pull/14490) by [@AnBo83](https://github.com/AnBo83)) +- Broken layout when sidebar is open on IE/Edge ([#14567](https://github.com/RocketChat/Rocket.Chat/pull/14567)) -- Allow data URLs in isURL/getURL helpers ([#14464](https://github.com/RocketChat/Rocket.Chat/pull/14464)) +- Channel names on Directory got cut on small screens ([#14542](https://github.com/RocketChat/Rocket.Chat/pull/14542)) -- Avatar images on old Livechat client ([#14590](https://github.com/RocketChat/Rocket.Chat/pull/14590) by [@arminfelder](https://github.com/arminfelder)) +- Duplicated link to jump to message ([#14505](https://github.com/RocketChat/Rocket.Chat/pull/14505) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Bell was too small on threads ([#14394](https://github.com/RocketChat/Rocket.Chat/pull/14394)) +- Edit Message when down arrow is pressed. ([#14369](https://github.com/RocketChat/Rocket.Chat/pull/14369) by [@Kailash0311](https://github.com/Kailash0311)) -- Broken layout when sidebar is open on IE/Edge ([#14567](https://github.com/RocketChat/Rocket.Chat/pull/14567)) +- Unread property of the room's lastMessage object was being wrong some times ([#13919](https://github.com/RocketChat/Rocket.Chat/pull/13919) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Channel Leader Bar is in the way of Thread Header ([#14443](https://github.com/RocketChat/Rocket.Chat/pull/14443)) +- Multiple Slack Importer Bugs ([#12084](https://github.com/RocketChat/Rocket.Chat/pull/12084) by [@Hudell](https://github.com/Hudell)) -- Channel names on Directory got cut on small screens ([#14542](https://github.com/RocketChat/Rocket.Chat/pull/14542)) +- No feedback when adding users that already exists in a room ([#14534](https://github.com/RocketChat/Rocket.Chat/pull/14534) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@gsunit](https://github.com/gsunit)) -- Channel settings form to textarea for Topic and Description ([#13328](https://github.com/RocketChat/Rocket.Chat/pull/13328) by [@supra08](https://github.com/supra08)) +- Custom scripts descriptions were not clear enough ([#14516](https://github.com/RocketChat/Rocket.Chat/pull/14516) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Custom scripts descriptions were not clear enough ([#14516](https://github.com/RocketChat/Rocket.Chat/pull/14516)) +- Role `user` has being added after email verification even for non anonymous users ([#14263](https://github.com/RocketChat/Rocket.Chat/pull/14263) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Discussion name being invalid ([#14442](https://github.com/RocketChat/Rocket.Chat/pull/14442)) +- Several problems with read-only rooms and muted users ([#11311](https://github.com/RocketChat/Rocket.Chat/pull/11311) by [@Hudell](https://github.com/Hudell)) -- Downloading files when running in sub directory ([#14485](https://github.com/RocketChat/Rocket.Chat/pull/14485) by [@miolane](https://github.com/miolane)) +- Channel settings form to textarea for Topic and Description ([#13328](https://github.com/RocketChat/Rocket.Chat/pull/13328) by [@supra08](https://github.com/supra08)) -- Duplicated link to jump to message ([#14505](https://github.com/RocketChat/Rocket.Chat/pull/14505)) +- Elements in User Info require some padding ([#13640](https://github.com/RocketChat/Rocket.Chat/pull/13640) by [@mushroomgenie](https://github.com/mushroomgenie)) -- E2E messages not decrypting in message threads ([#14580](https://github.com/RocketChat/Rocket.Chat/pull/14580)) +- Showing the id instead of the name of custom notification sound ([#13660](https://github.com/RocketChat/Rocket.Chat/pull/13660) by [@knrt10](https://github.com/knrt10)) -- Edit Message when down arrow is pressed. ([#14369](https://github.com/RocketChat/Rocket.Chat/pull/14369) by [@Kailash0311](https://github.com/Kailash0311)) +- Remove Livechat guest data was removing more rooms than expected ([#14509](https://github.com/RocketChat/Rocket.Chat/pull/14509)) -- Elements in User Info require some padding ([#13640](https://github.com/RocketChat/Rocket.Chat/pull/13640) by [@mushroomgenie](https://github.com/mushroomgenie)) +- Save custom emoji with special characters causes some errors ([#14456](https://github.com/RocketChat/Rocket.Chat/pull/14456) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Error 400 on send a reply to an old thread ([#14402](https://github.com/RocketChat/Rocket.Chat/pull/14402)) +- Verify if the user is requesting your own information in users.info ([#14242](https://github.com/RocketChat/Rocket.Chat/pull/14242) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Error when accessing an invalid file upload url ([#14282](https://github.com/RocketChat/Rocket.Chat/pull/14282) by [@wreiske](https://github.com/wreiske)) +- RocketChat client sending out video call requests unnecessarily ([#14496](https://github.com/RocketChat/Rocket.Chat/pull/14496)) -- Error when accessing avatar with no token ([#14293](https://github.com/RocketChat/Rocket.Chat/pull/14293)) +- `Alphabetical` translation in DE ([#14490](https://github.com/RocketChat/Rocket.Chat/pull/14490) by [@AnBo83](https://github.com/AnBo83)) -- Escape unrecognized slash command message ([#14432](https://github.com/RocketChat/Rocket.Chat/pull/14432)) +- Fix redirect to First channel after login ([#14434](https://github.com/RocketChat/Rocket.Chat/pull/14434) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Exception on crowd sync due to a wrong logging method ([#14405](https://github.com/RocketChat/Rocket.Chat/pull/14405)) +- Ignored messages ([#14465](https://github.com/RocketChat/Rocket.Chat/pull/14465)) -- Fallback to mongo version that doesn't require clusterMonitor role ([#14403](https://github.com/RocketChat/Rocket.Chat/pull/14403)) +- Allow data URLs in isURL/getURL helpers ([#14464](https://github.com/RocketChat/Rocket.Chat/pull/14464)) -- Fix redirect to First channel after login ([#14434](https://github.com/RocketChat/Rocket.Chat/pull/14434)) +- You must join to view messages in this channel ([#14461](https://github.com/RocketChat/Rocket.Chat/pull/14461)) -- IE11 support ([#14422](https://github.com/RocketChat/Rocket.Chat/pull/14422)) +- Channel Leader Bar is in the way of Thread Header ([#14443](https://github.com/RocketChat/Rocket.Chat/pull/14443)) -- Ignored messages ([#14465](https://github.com/RocketChat/Rocket.Chat/pull/14465)) +- Discussion name being invalid ([#14442](https://github.com/RocketChat/Rocket.Chat/pull/14442)) -- Inject code at the end of tag ([#14623](https://github.com/RocketChat/Rocket.Chat/pull/14623)) +- Room name was undefined in some info dialogs ([#14415](https://github.com/RocketChat/Rocket.Chat/pull/14415) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Mailer breaking if user doesn't have an email address ([#14614](https://github.com/RocketChat/Rocket.Chat/pull/14614)) +- Exception on crowd sync due to a wrong logging method ([#14405](https://github.com/RocketChat/Rocket.Chat/pull/14405)) -- Main thread title on replies ([#14372](https://github.com/RocketChat/Rocket.Chat/pull/14372)) +- IE11 support ([#14422](https://github.com/RocketChat/Rocket.Chat/pull/14422)) -- Mentions message missing 'jump to message' action ([#14430](https://github.com/RocketChat/Rocket.Chat/pull/14430)) +- Escape unrecognized slash command message ([#14432](https://github.com/RocketChat/Rocket.Chat/pull/14432)) -- Messages on thread panel were receiving wrong context/subscription ([#14404](https://github.com/RocketChat/Rocket.Chat/pull/14404)) +- Mentions message missing 'jump to message' action ([#14430](https://github.com/RocketChat/Rocket.Chat/pull/14430)) -- Messages on threads disappearing ([#14393](https://github.com/RocketChat/Rocket.Chat/pull/14393)) +- preview pdf its not working ([#14419](https://github.com/RocketChat/Rocket.Chat/pull/14419)) -- more message actions to threads context(follow, unfollow, copy, delete) ([#14387](https://github.com/RocketChat/Rocket.Chat/pull/14387)) +- Messages on thread panel were receiving wrong context/subscription ([#14404](https://github.com/RocketChat/Rocket.Chat/pull/14404)) -- Multiple Slack Importer Bugs ([#12084](https://github.com/RocketChat/Rocket.Chat/pull/12084) by [@Hudell](https://github.com/Hudell)) +- Error 400 on send a reply to an old thread ([#14402](https://github.com/RocketChat/Rocket.Chat/pull/14402)) -- New day separator overlapping above system message ([#14362](https://github.com/RocketChat/Rocket.Chat/pull/14362)) +- Users actions in administration were returning error ([#14400](https://github.com/RocketChat/Rocket.Chat/pull/14400)) -- No feedback when adding users that already exists in a room ([#14534](https://github.com/RocketChat/Rocket.Chat/pull/14534) by [@gsunit](https://github.com/gsunit)) +- Fallback to mongo version that doesn't require clusterMonitor role ([#14403](https://github.com/RocketChat/Rocket.Chat/pull/14403)) -- Optional exit on Unhandled Promise Rejection ([#14291](https://github.com/RocketChat/Rocket.Chat/pull/14291)) +- SAML credentialToken removal was preventing mobile from being able to authenticate ([#14345](https://github.com/RocketChat/Rocket.Chat/pull/14345)) -- Popup cloud console in new window ([#14296](https://github.com/RocketChat/Rocket.Chat/pull/14296)) +- Stream not connecting connect when using subdir and multi-instance ([#14376](https://github.com/RocketChat/Rocket.Chat/pull/14376)) -- Pressing Enter in User Search field at channel causes reload ([#14388](https://github.com/RocketChat/Rocket.Chat/pull/14388)) +- Pressing Enter in User Search field at channel causes reload ([#14388](https://github.com/RocketChat/Rocket.Chat/pull/14388) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- preview pdf its not working ([#14419](https://github.com/RocketChat/Rocket.Chat/pull/14419)) +- Wrong token name was generating error on Gitlab OAuth login ([#14379](https://github.com/RocketChat/Rocket.Chat/pull/14379) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove Livechat guest data was removing more rooms than expected ([#14509](https://github.com/RocketChat/Rocket.Chat/pull/14509)) +- more message actions to threads context(follow, unfollow, copy, delete) ([#14387](https://github.com/RocketChat/Rocket.Chat/pull/14387)) -- RocketChat client sending out video call requests unnecessarily ([#14496](https://github.com/RocketChat/Rocket.Chat/pull/14496)) +- Unnecessary meteor.defer on openRoom ([#14396](https://github.com/RocketChat/Rocket.Chat/pull/14396)) -- Role `user` has being added after email verification even for non anonymous users ([#14263](https://github.com/RocketChat/Rocket.Chat/pull/14263)) +- Messages on threads disappearing ([#14393](https://github.com/RocketChat/Rocket.Chat/pull/14393)) -- Role name spacing on Permissions page ([#14625](https://github.com/RocketChat/Rocket.Chat/pull/14625)) +- Bell was too small on threads ([#14394](https://github.com/RocketChat/Rocket.Chat/pull/14394)) -- Room name was undefined in some info dialogs ([#14415](https://github.com/RocketChat/Rocket.Chat/pull/14415)) +- Main thread title on replies ([#14372](https://github.com/RocketChat/Rocket.Chat/pull/14372)) -- SAML credentialToken removal was preventing mobile from being able to authenticate ([#14345](https://github.com/RocketChat/Rocket.Chat/pull/14345)) +- New day separator overlapping above system message ([#14362](https://github.com/RocketChat/Rocket.Chat/pull/14362)) -- Save custom emoji with special characters causes some errors ([#14456](https://github.com/RocketChat/Rocket.Chat/pull/14456)) +- Popup cloud console in new window ([#14296](https://github.com/RocketChat/Rocket.Chat/pull/14296)) -- Send replyTo for livechat offline messages ([#14568](https://github.com/RocketChat/Rocket.Chat/pull/14568)) +- Switch oplog required doc link to more accurate link ([#14288](https://github.com/RocketChat/Rocket.Chat/pull/14288)) -- Several problems with read-only rooms and muted users ([#11311](https://github.com/RocketChat/Rocket.Chat/pull/11311) by [@Hudell](https://github.com/Hudell)) +- Optional exit on Unhandled Promise Rejection ([#14291](https://github.com/RocketChat/Rocket.Chat/pull/14291)) -- Showing the id instead of the name of custom notification sound ([#13660](https://github.com/RocketChat/Rocket.Chat/pull/13660) by [@knrt10](https://github.com/knrt10)) +- Error when accessing avatar with no token ([#14293](https://github.com/RocketChat/Rocket.Chat/pull/14293)) - Startup error in registration check ([#14286](https://github.com/RocketChat/Rocket.Chat/pull/14286)) -- Stream not connecting connect when using subdir and multi-instance ([#14376](https://github.com/RocketChat/Rocket.Chat/pull/14376)) +- Wrong header at Apps admin section ([#14290](https://github.com/RocketChat/Rocket.Chat/pull/14290)) -- Switch oplog required doc link to more accurate link ([#14288](https://github.com/RocketChat/Rocket.Chat/pull/14288)) +- Error when accessing an invalid file upload url ([#14282](https://github.com/RocketChat/Rocket.Chat/pull/14282) by [@wreiske](https://github.com/wreiske)) -- Unnecessary meteor.defer on openRoom ([#14396](https://github.com/RocketChat/Rocket.Chat/pull/14396)) +- E2E messages not decrypting in message threads ([#14580](https://github.com/RocketChat/Rocket.Chat/pull/14580)) -- Unread property of the room's lastMessage object was being wrong some times ([#13919](https://github.com/RocketChat/Rocket.Chat/pull/13919)) +- Send replyTo for livechat offline messages ([#14568](https://github.com/RocketChat/Rocket.Chat/pull/14568)) -- Users actions in administration were returning error ([#14400](https://github.com/RocketChat/Rocket.Chat/pull/14400)) +- Mailer breaking if user doesn't have an email address ([#14614](https://github.com/RocketChat/Rocket.Chat/pull/14614) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Verify if the user is requesting your own information in users.info ([#14242](https://github.com/RocketChat/Rocket.Chat/pull/14242)) +- Role name spacing on Permissions page ([#14625](https://github.com/RocketChat/Rocket.Chat/pull/14625)) -- Wrong header at Apps admin section ([#14290](https://github.com/RocketChat/Rocket.Chat/pull/14290)) +- Avatar images on old Livechat client ([#14590](https://github.com/RocketChat/Rocket.Chat/pull/14590) by [@arminfelder](https://github.com/arminfelder)) -- Wrong token name was generating error on Gitlab OAuth login ([#14379](https://github.com/RocketChat/Rocket.Chat/pull/14379)) +- Inject code at the end of tag ([#14623](https://github.com/RocketChat/Rocket.Chat/pull/14623)) -- You must join to view messages in this channel ([#14461](https://github.com/RocketChat/Rocket.Chat/pull/14461)) +- "Blank page" on safari 10.x ([#14651](https://github.com/RocketChat/Rocket.Chat/pull/14651))
🔍 Minor changes -- [Fix] broken logo url in app.json ([#14572](https://github.com/RocketChat/Rocket.Chat/pull/14572) by [@jaredmoody](https://github.com/jaredmoody)) - -- [IMPROVEMENT] Add tooltip to to notify user the purpose of back button in discussion ([#13872](https://github.com/RocketChat/Rocket.Chat/pull/13872)) +- Removed unnecessary DDP unblocks ([#13641](https://github.com/RocketChat/Rocket.Chat/pull/13641)) -- [IMPROVEMENT] Don't group messages with different alias ([#14257](https://github.com/RocketChat/Rocket.Chat/pull/14257) by [@jungeonkim](https://github.com/jungeonkim)) +- Fix emoji replacing some chars ([#14570](https://github.com/RocketChat/Rocket.Chat/pull/14570)) -- [REGRESSION] Fix Slack bridge channel owner on channel creation ([#14565](https://github.com/RocketChat/Rocket.Chat/pull/14565)) +- LingoHub based on develop ([#14561](https://github.com/RocketChat/Rocket.Chat/pull/14561)) -- Add digitalocean button to readme ([#14583](https://github.com/RocketChat/Rocket.Chat/pull/14583)) +- Refactor WebRTC class ([#13736](https://github.com/RocketChat/Rocket.Chat/pull/13736)) -- Add missing german translations ([#14386](https://github.com/RocketChat/Rocket.Chat/pull/14386) by [@mrsimpson](https://github.com/mrsimpson)) +- Update Meteor Streamer package ([#14551](https://github.com/RocketChat/Rocket.Chat/pull/14551)) -- Allow removing description, topic and annoucement of rooms(set as empty string) ([#13682](https://github.com/RocketChat/Rocket.Chat/pull/13682)) +- Regression: unit tests were being skipped ([#14543](https://github.com/RocketChat/Rocket.Chat/pull/14543)) -- Ci improvements ([#14600](https://github.com/RocketChat/Rocket.Chat/pull/14600)) +- MsgTyping refactor ([#14495](https://github.com/RocketChat/Rocket.Chat/pull/14495)) -- eslint errors currently on develop ([#14518](https://github.com/RocketChat/Rocket.Chat/pull/14518) by [@Hudell](https://github.com/Hudell)) +- Google Plus account is no longer accessible ([#14503](https://github.com/RocketChat/Rocket.Chat/pull/14503) by [@zdumitru](https://github.com/zdumitru)) -- Federation i18n message changes ([#14595](https://github.com/RocketChat/Rocket.Chat/pull/14595)) +- [IMPROVEMENT] Add tooltip to to notify user the purpose of back button in discussion ([#13872](https://github.com/RocketChat/Rocket.Chat/pull/13872)) -- fix discussions: remove restriction for editing room info, server side ([#14039](https://github.com/RocketChat/Rocket.Chat/pull/14039) by [@mrsimpson](https://github.com/mrsimpson)) +- eslint errors currently on develop ([#14518](https://github.com/RocketChat/Rocket.Chat/pull/14518) by [@Hudell](https://github.com/Hudell)) -- Fix emoji replacing some chars ([#14570](https://github.com/RocketChat/Rocket.Chat/pull/14570)) +- Allow removing description, topic and annoucement of rooms(set as empty string) ([#13682](https://github.com/RocketChat/Rocket.Chat/pull/13682) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix i18n files keys sort ([#14433](https://github.com/RocketChat/Rocket.Chat/pull/14433)) +- [IMPROVEMENT] Don't group messages with different alias ([#14257](https://github.com/RocketChat/Rocket.Chat/pull/14257) by [@jungeonkim](https://github.com/jungeonkim)) -- Fix thumbs up emoji shortname ([#14581](https://github.com/RocketChat/Rocket.Chat/pull/14581)) +- LingoHub based on develop ([#14478](https://github.com/RocketChat/Rocket.Chat/pull/14478)) -- Fix: Add emoji shortnames to emoji's list ([#14576](https://github.com/RocketChat/Rocket.Chat/pull/14576)) +- Remove specific eslint rules ([#14459](https://github.com/RocketChat/Rocket.Chat/pull/14459)) -- Fix: emoji render performance for alias ([#14593](https://github.com/RocketChat/Rocket.Chat/pull/14593)) +- New eslint rules ([#14332](https://github.com/RocketChat/Rocket.Chat/pull/14332)) -- Fix: Message body was not being updated when user disabled nrr message ([#14390](https://github.com/RocketChat/Rocket.Chat/pull/14390)) +- Fix i18n files keys sort ([#14433](https://github.com/RocketChat/Rocket.Chat/pull/14433)) - Fixes on DAU and MAU aggregations ([#14418](https://github.com/RocketChat/Rocket.Chat/pull/14418)) -- Google Plus account is no longer accessible ([#14503](https://github.com/RocketChat/Rocket.Chat/pull/14503) by [@zdumitru](https://github.com/zdumitru)) - -- Improve German translations ([#14351](https://github.com/RocketChat/Rocket.Chat/pull/14351) by [@mrsimpson](https://github.com/mrsimpson)) - -- Improvement: Permissions table ([#14646](https://github.com/RocketChat/Rocket.Chat/pull/14646)) +- Add missing german translations ([#14386](https://github.com/RocketChat/Rocket.Chat/pull/14386) by [@mrsimpson](https://github.com/mrsimpson)) -- LingoHub based on develop ([#14561](https://github.com/RocketChat/Rocket.Chat/pull/14561)) +- LingoHub based on develop ([#14426](https://github.com/RocketChat/Rocket.Chat/pull/14426)) -- LingoHub based on develop ([#14478](https://github.com/RocketChat/Rocket.Chat/pull/14478)) +- fix discussions: remove restriction for editing room info, server side ([#14039](https://github.com/RocketChat/Rocket.Chat/pull/14039) by [@mrsimpson](https://github.com/mrsimpson)) -- LingoHub based on develop ([#14426](https://github.com/RocketChat/Rocket.Chat/pull/14426)) +- Fix: Message body was not being updated when user disabled nrr message ([#14390](https://github.com/RocketChat/Rocket.Chat/pull/14390)) -- LingoHub based on develop ([#14643](https://github.com/RocketChat/Rocket.Chat/pull/14643)) +- Improve German translations ([#14351](https://github.com/RocketChat/Rocket.Chat/pull/14351) by [@mrsimpson](https://github.com/mrsimpson)) - Merge master into develop & Set version to 1.1.0-develop ([#14317](https://github.com/RocketChat/Rocket.Chat/pull/14317) by [@wreiske](https://github.com/wreiske)) - Merge master into develop & Set version to 1.1.0-develop ([#14294](https://github.com/RocketChat/Rocket.Chat/pull/14294)) -- MsgTyping refactor ([#14495](https://github.com/RocketChat/Rocket.Chat/pull/14495)) +- Fix: Add emoji shortnames to emoji's list ([#14576](https://github.com/RocketChat/Rocket.Chat/pull/14576)) -- New eslint rules ([#14332](https://github.com/RocketChat/Rocket.Chat/pull/14332)) +- Ci improvements ([#14600](https://github.com/RocketChat/Rocket.Chat/pull/14600)) -- Refactor WebRTC class ([#13736](https://github.com/RocketChat/Rocket.Chat/pull/13736)) +- Fix: emoji render performance for alias ([#14593](https://github.com/RocketChat/Rocket.Chat/pull/14593)) -- Regression: Handle missing emojis ([#14641](https://github.com/RocketChat/Rocket.Chat/pull/14641)) +- Federation i18n message changes ([#14595](https://github.com/RocketChat/Rocket.Chat/pull/14595)) -- Regression: unit tests were being skipped ([#14543](https://github.com/RocketChat/Rocket.Chat/pull/14543)) +- [REGRESSION] Fix Slack bridge channel owner on channel creation ([#14565](https://github.com/RocketChat/Rocket.Chat/pull/14565) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove specific eslint rules ([#14459](https://github.com/RocketChat/Rocket.Chat/pull/14459)) +- Fix thumbs up emoji shortname ([#14581](https://github.com/RocketChat/Rocket.Chat/pull/14581)) -- Removed unnecessary DDP unblocks ([#13641](https://github.com/RocketChat/Rocket.Chat/pull/13641)) +- [Fix] broken logo url in app.json ([#14572](https://github.com/RocketChat/Rocket.Chat/pull/14572) by [@jaredmoody](https://github.com/jaredmoody)) -- Update Meteor Streamer package ([#14551](https://github.com/RocketChat/Rocket.Chat/pull/14551)) +- Add digitalocean button to readme ([#14583](https://github.com/RocketChat/Rocket.Chat/pull/14583)) + +- Improvement: Permissions table ([#14646](https://github.com/RocketChat/Rocket.Chat/pull/14646)) + +- Regression: Handle missing emojis ([#14641](https://github.com/RocketChat/Rocket.Chat/pull/14641)) + +- LingoHub based on develop ([#14643](https://github.com/RocketChat/Rocket.Chat/pull/14643))
@@ -4755,6 +5059,7 @@ - [@AnBo83](https://github.com/AnBo83) - [@Hudell](https://github.com/Hudell) - [@Kailash0311](https://github.com/Kailash0311) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@arminfelder](https://github.com/arminfelder) - [@bhardwajaditya](https://github.com/bhardwajaditya) - [@gsunit](https://github.com/gsunit) @@ -4772,7 +5077,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@alansikora](https://github.com/alansikora) - [@ashwaniYDV](https://github.com/ashwaniYDV) - [@d-gubert](https://github.com/d-gubert) @@ -4796,11 +5100,11 @@ 🔍 Minor changes -- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141)) +- Fix custom auth ([#15141](https://github.com/RocketChat/Rocket.Chat/pull/15141) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@MarcosSpessatto](https://github.com/MarcosSpessatto) @@ -4833,17 +5137,17 @@ 🔍 Minor changes -- Release 1.0.3 ([#14446](https://github.com/RocketChat/Rocket.Chat/pull/14446) by [@mrsimpson](https://github.com/mrsimpson)) +- Release 1.0.3 ([#14446](https://github.com/RocketChat/Rocket.Chat/pull/14446) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@mrsimpson](https://github.com/mrsimpson)) ### 👩‍💻👨‍💻 Contributors 😍 +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@mrsimpson](https://github.com/mrsimpson) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -4862,44 +5166,44 @@ ### 🚀 Improvements -- Better error message when not able to get MongoDB Version ([#14320](https://github.com/RocketChat/Rocket.Chat/pull/14320)) - - i18n of threads and discussion buttons ([#14334](https://github.com/RocketChat/Rocket.Chat/pull/14334)) +- Better error message when not able to get MongoDB Version ([#14320](https://github.com/RocketChat/Rocket.Chat/pull/14320)) + ### 🐛 Bug fixes +- Unread line and new day separator were not aligned ([#14338](https://github.com/RocketChat/Rocket.Chat/pull/14338)) + - Audio notification for messages on DM ([#14336](https://github.com/RocketChat/Rocket.Chat/pull/14336)) - Duplicate thread message after editing ([#14330](https://github.com/RocketChat/Rocket.Chat/pull/14330)) -- Missing i18n for some new Permissions ([#14011](https://github.com/RocketChat/Rocket.Chat/pull/14011)) - - New day separator rendered over thread reply ([#14328](https://github.com/RocketChat/Rocket.Chat/pull/14328)) -- Remove reference to inexistent field when deleting message in thread ([#14311](https://github.com/RocketChat/Rocket.Chat/pull/14311)) +- Missing i18n for some new Permissions ([#14011](https://github.com/RocketChat/Rocket.Chat/pull/14011)) -- show roles on message ([#14313](https://github.com/RocketChat/Rocket.Chat/pull/14313)) +- View Logs admin page was broken and not rendering color logs ([#14316](https://github.com/RocketChat/Rocket.Chat/pull/14316)) -- Unread line and new day separator were not aligned ([#14338](https://github.com/RocketChat/Rocket.Chat/pull/14338)) +- show roles on message ([#14313](https://github.com/RocketChat/Rocket.Chat/pull/14313)) -- View Logs admin page was broken and not rendering color logs ([#14316](https://github.com/RocketChat/Rocket.Chat/pull/14316)) +- Remove reference to inexistent field when deleting message in thread ([#14311](https://github.com/RocketChat/Rocket.Chat/pull/14311))
🔍 Minor changes -- [Fix] group name appears instead of the room id ([#14075](https://github.com/RocketChat/Rocket.Chat/pull/14075) by [@mohamedar97](https://github.com/mohamedar97)) - -- [Regression] Anonymous user fix ([#14301](https://github.com/RocketChat/Rocket.Chat/pull/14301) by [@knrt10](https://github.com/knrt10)) +- Release 1.0.2 ([#14339](https://github.com/RocketChat/Rocket.Chat/pull/14339) by [@AnBo83](https://github.com/AnBo83) & [@knrt10](https://github.com/knrt10) & [@mohamedar97](https://github.com/mohamedar97) & [@thaiphv](https://github.com/thaiphv)) - Add cross-browser select arrow positioning ([#14318](https://github.com/RocketChat/Rocket.Chat/pull/14318)) -- Coerces the MongoDB version string ([#14299](https://github.com/RocketChat/Rocket.Chat/pull/14299) by [@thaiphv](https://github.com/thaiphv)) - - i18n: Update German strings ([#14182](https://github.com/RocketChat/Rocket.Chat/pull/14182) by [@AnBo83](https://github.com/AnBo83)) -- Release 1.0.2 ([#14339](https://github.com/RocketChat/Rocket.Chat/pull/14339) by [@AnBo83](https://github.com/AnBo83) & [@knrt10](https://github.com/knrt10) & [@mohamedar97](https://github.com/mohamedar97) & [@thaiphv](https://github.com/thaiphv)) +- [Regression] Anonymous user fix ([#14301](https://github.com/RocketChat/Rocket.Chat/pull/14301) by [@knrt10](https://github.com/knrt10)) + +- Coerces the MongoDB version string ([#14299](https://github.com/RocketChat/Rocket.Chat/pull/14299) by [@thaiphv](https://github.com/thaiphv)) + +- [Fix] group name appears instead of the room id ([#14075](https://github.com/RocketChat/Rocket.Chat/pull/14075) by [@mohamedar97](https://github.com/mohamedar97))
@@ -4930,20 +5234,20 @@ ### 🐛 Bug fixes -- Error when accessing an invalid file upload url ([#14282](https://github.com/RocketChat/Rocket.Chat/pull/14282) by [@wreiske](https://github.com/wreiske)) +- Popup cloud console in new window ([#14296](https://github.com/RocketChat/Rocket.Chat/pull/14296)) -- Error when accessing avatar with no token ([#14293](https://github.com/RocketChat/Rocket.Chat/pull/14293)) +- Switch oplog required doc link to more accurate link ([#14288](https://github.com/RocketChat/Rocket.Chat/pull/14288)) - Optional exit on Unhandled Promise Rejection ([#14291](https://github.com/RocketChat/Rocket.Chat/pull/14291)) -- Popup cloud console in new window ([#14296](https://github.com/RocketChat/Rocket.Chat/pull/14296)) +- Error when accessing avatar with no token ([#14293](https://github.com/RocketChat/Rocket.Chat/pull/14293)) - Startup error in registration check ([#14286](https://github.com/RocketChat/Rocket.Chat/pull/14286)) -- Switch oplog required doc link to more accurate link ([#14288](https://github.com/RocketChat/Rocket.Chat/pull/14288)) - - Wrong header at Apps admin section ([#14290](https://github.com/RocketChat/Rocket.Chat/pull/14290)) +- Error when accessing an invalid file upload url ([#14282](https://github.com/RocketChat/Rocket.Chat/pull/14282) by [@wreiske](https://github.com/wreiske)) + ### 👩‍💻👨‍💻 Contributors 😍 - [@wreiske](https://github.com/wreiske) @@ -4965,722 +5269,722 @@ ### ⚠️ BREAKING CHANGES -- Prevent start if incompatible mongo version ([#13927](https://github.com/RocketChat/Rocket.Chat/pull/13927)) - - Remove deprecated file upload engine Slingshot ([#13724](https://github.com/RocketChat/Rocket.Chat/pull/13724)) -- Remove internal hubot package ([#13522](https://github.com/RocketChat/Rocket.Chat/pull/13522)) +- Remove internal hubot package ([#13522](https://github.com/RocketChat/Rocket.Chat/pull/13522) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Prevent start if incompatible mongo version ([#13927](https://github.com/RocketChat/Rocket.Chat/pull/13927)) - Require OPLOG/REPLICASET to run Rocket.Chat ([#14227](https://github.com/RocketChat/Rocket.Chat/pull/14227)) ### 🎉 New features -- - Add setting to request a comment when closing Livechat room ([#13983](https://github.com/RocketChat/Rocket.Chat/pull/13983) by [@knrt10](https://github.com/knrt10)) +- Marketplace integration with Rocket.Chat Cloud ([#13809](https://github.com/RocketChat/Rocket.Chat/pull/13809)) -- Add an option to delete file in files list ([#13815](https://github.com/RocketChat/Rocket.Chat/pull/13815)) +- Add message action to copy message to input as reply ([#12626](https://github.com/RocketChat/Rocket.Chat/pull/12626) by [@mrsimpson](https://github.com/mrsimpson)) + +- Allow sending long messages as attachments ([#13819](https://github.com/RocketChat/Rocket.Chat/pull/13819)) - Add e-mail field on Livechat Departments ([#13775](https://github.com/RocketChat/Rocket.Chat/pull/13775)) -- Add GET method to fetch Livechat message through REST API ([#14147](https://github.com/RocketChat/Rocket.Chat/pull/14147)) +- Provide new Livechat client as community feature ([#13723](https://github.com/RocketChat/Rocket.Chat/pull/13723)) -- Add message action to copy message to input as reply ([#12626](https://github.com/RocketChat/Rocket.Chat/pull/12626) by [@mrsimpson](https://github.com/mrsimpson)) +- Discussions ([#13541](https://github.com/RocketChat/Rocket.Chat/pull/13541) by [@mrsimpson](https://github.com/mrsimpson) & [@vickyokrm](https://github.com/vickyokrm)) + +- Bosnian lang (BS) ([#13635](https://github.com/RocketChat/Rocket.Chat/pull/13635) by [@fliptrail](https://github.com/fliptrail)) -- Add missing remove add leader channel ([#13315](https://github.com/RocketChat/Rocket.Chat/pull/13315) by [@Montel](https://github.com/Montel)) +- Federation ([#12370](https://github.com/RocketChat/Rocket.Chat/pull/12370)) + +- Show department field on Livechat visitor panel ([#13530](https://github.com/RocketChat/Rocket.Chat/pull/13530)) - Add offset parameter to channels.history, groups.history, dm.history ([#13310](https://github.com/RocketChat/Rocket.Chat/pull/13310) by [@xbolshe](https://github.com/xbolshe)) -- Add parseUrls field to the apps message converter ([#13248](https://github.com/RocketChat/Rocket.Chat/pull/13248)) +- Permission to assign roles ([#13597](https://github.com/RocketChat/Rocket.Chat/pull/13597) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add support to updatedSince parameter in emoji-custom.list and deprecated old endpoint ([#13510](https://github.com/RocketChat/Rocket.Chat/pull/13510)) +- reply with a file ([#12095](https://github.com/RocketChat/Rocket.Chat/pull/12095) by [@rssilva](https://github.com/rssilva)) -- Add Voxtelesys to list of SMS providers ([#13697](https://github.com/RocketChat/Rocket.Chat/pull/13697) by [@jhnburke8](https://github.com/jhnburke8) & [@john08burke](https://github.com/john08burke)) +- legal notice page ([#12472](https://github.com/RocketChat/Rocket.Chat/pull/12472) by [@localguru](https://github.com/localguru)) -- allow drop files on thread ([#14214](https://github.com/RocketChat/Rocket.Chat/pull/14214)) +- Add missing remove add leader channel ([#13315](https://github.com/RocketChat/Rocket.Chat/pull/13315) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@Montel](https://github.com/Montel)) -- Allow sending long messages as attachments ([#13819](https://github.com/RocketChat/Rocket.Chat/pull/13819)) +- users.setActiveStatus endpoint in rest api ([#13443](https://github.com/RocketChat/Rocket.Chat/pull/13443) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@thayannevls](https://github.com/thayannevls)) -- Bosnian lang (BS) ([#13635](https://github.com/RocketChat/Rocket.Chat/pull/13635) by [@fliptrail](https://github.com/fliptrail)) +- User avatars from external source ([#7929](https://github.com/RocketChat/Rocket.Chat/pull/7929) by [@mjovanovic0](https://github.com/mjovanovic0)) -- Chatpal: Enable custom search parameters ([#13829](https://github.com/RocketChat/Rocket.Chat/pull/13829) by [@Peym4n](https://github.com/Peym4n)) +- Limit all DDP/Websocket requests (configurable via admin panel) ([#13311](https://github.com/RocketChat/Rocket.Chat/pull/13311)) -- Collect data for Monthly/Daily Active Users for a future dashboard ([#11525](https://github.com/RocketChat/Rocket.Chat/pull/11525)) +- REST endpoint to forward livechat rooms ([#13308](https://github.com/RocketChat/Rocket.Chat/pull/13308)) -- Discussions ([#13541](https://github.com/RocketChat/Rocket.Chat/pull/13541) by [@mrsimpson](https://github.com/mrsimpson) & [@vickyokrm](https://github.com/vickyokrm)) +- Collect data for Monthly/Daily Active Users for a future dashboard ([#11525](https://github.com/RocketChat/Rocket.Chat/pull/11525)) -- Federation ([#12370](https://github.com/RocketChat/Rocket.Chat/pull/12370)) +- Add parseUrls field to the apps message converter ([#13248](https://github.com/RocketChat/Rocket.Chat/pull/13248)) -- legal notice page ([#12472](https://github.com/RocketChat/Rocket.Chat/pull/12472) by [@localguru](https://github.com/localguru)) +- Add an option to delete file in files list ([#13815](https://github.com/RocketChat/Rocket.Chat/pull/13815)) -- Limit all DDP/Websocket requests (configurable via admin panel) ([#13311](https://github.com/RocketChat/Rocket.Chat/pull/13311)) +- Threads V 1.0 ([#13996](https://github.com/RocketChat/Rocket.Chat/pull/13996)) -- Marketplace integration with Rocket.Chat Cloud ([#13809](https://github.com/RocketChat/Rocket.Chat/pull/13809)) +- Add support to updatedSince parameter in emoji-custom.list and deprecated old endpoint ([#13510](https://github.com/RocketChat/Rocket.Chat/pull/13510) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Multiple slackbridges ([#11346](https://github.com/RocketChat/Rocket.Chat/pull/11346) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Chatpal: Enable custom search parameters ([#13829](https://github.com/RocketChat/Rocket.Chat/pull/13829) by [@Peym4n](https://github.com/Peym4n)) -- option to not use nrr (experimental) ([#14224](https://github.com/RocketChat/Rocket.Chat/pull/14224)) +- - Add setting to request a comment when closing Livechat room ([#13983](https://github.com/RocketChat/Rocket.Chat/pull/13983) by [@knrt10](https://github.com/knrt10)) -- Permission to assign roles ([#13597](https://github.com/RocketChat/Rocket.Chat/pull/13597)) +- Rest threads ([#14045](https://github.com/RocketChat/Rocket.Chat/pull/14045) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Provide new Livechat client as community feature ([#13723](https://github.com/RocketChat/Rocket.Chat/pull/13723)) +- Add GET method to fetch Livechat message through REST API ([#14147](https://github.com/RocketChat/Rocket.Chat/pull/14147)) -- reply with a file ([#12095](https://github.com/RocketChat/Rocket.Chat/pull/12095) by [@rssilva](https://github.com/rssilva)) +- Add Voxtelesys to list of SMS providers ([#13697](https://github.com/RocketChat/Rocket.Chat/pull/13697) by [@jhnburke8](https://github.com/jhnburke8) & [@john08burke](https://github.com/john08burke)) -- REST endpoint to forward livechat rooms ([#13308](https://github.com/RocketChat/Rocket.Chat/pull/13308)) +- Rest endpoints of discussions ([#13987](https://github.com/RocketChat/Rocket.Chat/pull/13987) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Rest endpoints of discussions ([#13987](https://github.com/RocketChat/Rocket.Chat/pull/13987)) +- Multiple slackbridges ([#11346](https://github.com/RocketChat/Rocket.Chat/pull/11346) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) -- Rest threads ([#14045](https://github.com/RocketChat/Rocket.Chat/pull/14045)) +- option to not use nrr (experimental) ([#14224](https://github.com/RocketChat/Rocket.Chat/pull/14224)) - Set up livechat connections created from new client ([#14236](https://github.com/RocketChat/Rocket.Chat/pull/14236)) -- Show department field on Livechat visitor panel ([#13530](https://github.com/RocketChat/Rocket.Chat/pull/13530)) - -- Threads V 1.0 ([#13996](https://github.com/RocketChat/Rocket.Chat/pull/13996)) +- allow drop files on thread ([#14214](https://github.com/RocketChat/Rocket.Chat/pull/14214)) -- Update message actions ([#14268](https://github.com/RocketChat/Rocket.Chat/pull/14268)) +- Update message actions ([#14268](https://github.com/RocketChat/Rocket.Chat/pull/14268) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- User avatars from external source ([#7929](https://github.com/RocketChat/Rocket.Chat/pull/7929) by [@mjovanovic0](https://github.com/mjovanovic0)) +### 🚀 Improvements -- users.setActiveStatus endpoint in rest api ([#13443](https://github.com/RocketChat/Rocket.Chat/pull/13443) by [@thayannevls](https://github.com/thayannevls)) -### 🚀 Improvements +- UI of page not found ([#13757](https://github.com/RocketChat/Rocket.Chat/pull/13757) by [@fliptrail](https://github.com/fliptrail)) +- Show rooms with mentions on unread category even with hide counter ([#13948](https://github.com/RocketChat/Rocket.Chat/pull/13948)) -- Add decoding for commonName (cn) and displayName attributes for SAML ([#12347](https://github.com/RocketChat/Rocket.Chat/pull/12347) by [@pkolmann](https://github.com/pkolmann)) +- Join channels by sending a message or join button (#13752) ([#13752](https://github.com/RocketChat/Rocket.Chat/pull/13752) by [@bhardwajaditya](https://github.com/bhardwajaditya)) -- Add department field on find guest method ([#13491](https://github.com/RocketChat/Rocket.Chat/pull/13491)) +- Filter agents with autocomplete input instead of select element ([#13730](https://github.com/RocketChat/Rocket.Chat/pull/13730)) -- Add index for room's ts ([#13726](https://github.com/RocketChat/Rocket.Chat/pull/13726)) +- Ignore agent status when queuing incoming livechats via Guest Pool ([#13818](https://github.com/RocketChat/Rocket.Chat/pull/13818)) -- Add permission to change other user profile avatar ([#13884](https://github.com/RocketChat/Rocket.Chat/pull/13884) by [@knrt10](https://github.com/knrt10)) +- Replaces color #13679A to #1d74f5 ([#13796](https://github.com/RocketChat/Rocket.Chat/pull/13796) by [@fliptrail](https://github.com/fliptrail)) -- Admin ui ([#13393](https://github.com/RocketChat/Rocket.Chat/pull/13393)) +- Remove unnecessary "File Upload". ([#13743](https://github.com/RocketChat/Rocket.Chat/pull/13743) by [@knrt10](https://github.com/knrt10)) -- Allow custom rocketchat username for crowd users and enable login via email/crowd_username ([#12981](https://github.com/RocketChat/Rocket.Chat/pull/12981) by [@steerben](https://github.com/steerben)) +- Add index for room's ts ([#13726](https://github.com/RocketChat/Rocket.Chat/pull/13726)) -- Attachment download caching ([#14137](https://github.com/RocketChat/Rocket.Chat/pull/14137) by [@wreiske](https://github.com/wreiske)) +- Add decoding for commonName (cn) and displayName attributes for SAML ([#12347](https://github.com/RocketChat/Rocket.Chat/pull/12347) by [@pkolmann](https://github.com/pkolmann)) - Deprecate fixCordova helper ([#13598](https://github.com/RocketChat/Rocket.Chat/pull/13598)) +- Remove dangling side-nav styles ([#13584](https://github.com/RocketChat/Rocket.Chat/pull/13584)) + - Disable X-Powered-By header in all known express middlewares ([#13388](https://github.com/RocketChat/Rocket.Chat/pull/13388)) -- End to end tests ([#13401](https://github.com/RocketChat/Rocket.Chat/pull/13401)) +- Allow custom rocketchat username for crowd users and enable login via email/crowd_username ([#12981](https://github.com/RocketChat/Rocket.Chat/pull/12981) by [@steerben](https://github.com/steerben)) -- Filter agents with autocomplete input instead of select element ([#13730](https://github.com/RocketChat/Rocket.Chat/pull/13730)) +- Add department field on find guest method ([#13491](https://github.com/RocketChat/Rocket.Chat/pull/13491) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Get avatar from oauth ([#14131](https://github.com/RocketChat/Rocket.Chat/pull/14131)) +- KaTeX and Autolinker message rendering ([#11698](https://github.com/RocketChat/Rocket.Chat/pull/11698)) -- Ignore agent status when queuing incoming livechats via Guest Pool ([#13818](https://github.com/RocketChat/Rocket.Chat/pull/13818)) +- Update to MongoDB 4.0 in docker-compose file ([#13396](https://github.com/RocketChat/Rocket.Chat/pull/13396) by [@ngulden](https://github.com/ngulden)) -- Include more information to help with bug reports and debugging ([#14047](https://github.com/RocketChat/Rocket.Chat/pull/14047)) +- Admin ui ([#13393](https://github.com/RocketChat/Rocket.Chat/pull/13393)) -- Join channels by sending a message or join button (#13752) ([#13752](https://github.com/RocketChat/Rocket.Chat/pull/13752) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +- End to end tests ([#13401](https://github.com/RocketChat/Rocket.Chat/pull/13401)) -- KaTeX and Autolinker message rendering ([#11698](https://github.com/RocketChat/Rocket.Chat/pull/11698)) +- Update deleteUser errors to be more semantic ([#12380](https://github.com/RocketChat/Rocket.Chat/pull/12380) by [@timkinnane](https://github.com/timkinnane)) + +- Send `uniqueID` to all clients so Jitsi rooms can be created correctly ([#13342](https://github.com/RocketChat/Rocket.Chat/pull/13342)) - Line height on static content pages ([#11673](https://github.com/RocketChat/Rocket.Chat/pull/11673) by [@timkinnane](https://github.com/timkinnane)) - new icons ([#13289](https://github.com/RocketChat/Rocket.Chat/pull/13289)) -- New sidebar item badges, mention links, and ticks ([#14030](https://github.com/RocketChat/Rocket.Chat/pull/14030)) - -- OAuth Role Sync ([#13761](https://github.com/RocketChat/Rocket.Chat/pull/13761) by [@hypery2k](https://github.com/hypery2k)) - -- Remove dangling side-nav styles ([#13584](https://github.com/RocketChat/Rocket.Chat/pull/13584)) - -- Remove setting to show a livechat is waiting ([#13992](https://github.com/RocketChat/Rocket.Chat/pull/13992)) +- Add permission to change other user profile avatar ([#13884](https://github.com/RocketChat/Rocket.Chat/pull/13884) by [@knrt10](https://github.com/knrt10)) -- Remove unnecessary "File Upload". ([#13743](https://github.com/RocketChat/Rocket.Chat/pull/13743) by [@knrt10](https://github.com/knrt10)) +- UI of Permissions page ([#13732](https://github.com/RocketChat/Rocket.Chat/pull/13732) by [@fliptrail](https://github.com/fliptrail)) -- Replace livechat inquiry dialog with preview room ([#13986](https://github.com/RocketChat/Rocket.Chat/pull/13986)) +- Use SessionId for credential token in SAML request ([#13791](https://github.com/RocketChat/Rocket.Chat/pull/13791) by [@MohammedEssehemy](https://github.com/MohammedEssehemy)) -- Replaces color #13679A to #1d74f5 ([#13796](https://github.com/RocketChat/Rocket.Chat/pull/13796) by [@fliptrail](https://github.com/fliptrail)) +- Include more information to help with bug reports and debugging ([#14047](https://github.com/RocketChat/Rocket.Chat/pull/14047)) -- Send `uniqueID` to all clients so Jitsi rooms can be created correctly ([#13342](https://github.com/RocketChat/Rocket.Chat/pull/13342)) +- New sidebar item badges, mention links, and ticks ([#14030](https://github.com/RocketChat/Rocket.Chat/pull/14030)) -- Show rooms with mentions on unread category even with hide counter ([#13948](https://github.com/RocketChat/Rocket.Chat/pull/13948)) +- Remove setting to show a livechat is waiting ([#13992](https://github.com/RocketChat/Rocket.Chat/pull/13992)) -- UI of page not found ([#13757](https://github.com/RocketChat/Rocket.Chat/pull/13757) by [@fliptrail](https://github.com/fliptrail)) +- Attachment download caching ([#14137](https://github.com/RocketChat/Rocket.Chat/pull/14137) by [@wreiske](https://github.com/wreiske)) -- UI of Permissions page ([#13732](https://github.com/RocketChat/Rocket.Chat/pull/13732) by [@fliptrail](https://github.com/fliptrail)) +- Get avatar from oauth ([#14131](https://github.com/RocketChat/Rocket.Chat/pull/14131)) -- Update deleteUser errors to be more semantic ([#12380](https://github.com/RocketChat/Rocket.Chat/pull/12380) by [@timkinnane](https://github.com/timkinnane)) +- OAuth Role Sync ([#13761](https://github.com/RocketChat/Rocket.Chat/pull/13761) by [@hypery2k](https://github.com/hypery2k)) - Update the Apps Engine version to v1.4.1 ([#14072](https://github.com/RocketChat/Rocket.Chat/pull/14072)) -- Update to MongoDB 4.0 in docker-compose file ([#13396](https://github.com/RocketChat/Rocket.Chat/pull/13396) by [@ngulden](https://github.com/ngulden)) - -- Use SessionId for credential token in SAML request ([#13791](https://github.com/RocketChat/Rocket.Chat/pull/13791) by [@MohammedEssehemy](https://github.com/MohammedEssehemy)) +- Replace livechat inquiry dialog with preview room ([#13986](https://github.com/RocketChat/Rocket.Chat/pull/13986)) ### 🐛 Bug fixes -- .bin extension added to attached file names ([#13468](https://github.com/RocketChat/Rocket.Chat/pull/13468) by [@Hudell](https://github.com/Hudell)) +- Opening a Livechat room from another agent ([#13951](https://github.com/RocketChat/Rocket.Chat/pull/13951)) -- Ability to activate an app installed by zip even offline ([#13563](https://github.com/RocketChat/Rocket.Chat/pull/13563)) +- Directory and Apps logs page ([#13938](https://github.com/RocketChat/Rocket.Chat/pull/13938)) -- Add custom MIME types for *.ico extension ([#13969](https://github.com/RocketChat/Rocket.Chat/pull/13969)) +- Minor issues detected after testing the new Livechat client ([#13521](https://github.com/RocketChat/Rocket.Chat/pull/13521)) -- Add retries to docker-compose.yml, to wait for MongoDB to be ready ([#13199](https://github.com/RocketChat/Rocket.Chat/pull/13199) by [@tiangolo](https://github.com/tiangolo)) +- Display first message when taking Livechat inquiry ([#13896](https://github.com/RocketChat/Rocket.Chat/pull/13896)) -- Adds Proper Language display name for many languages ([#13714](https://github.com/RocketChat/Rocket.Chat/pull/13714) by [@fliptrail](https://github.com/fliptrail)) +- Loading theme CSS on first server startup ([#13953](https://github.com/RocketChat/Rocket.Chat/pull/13953)) -- Align burger menu in header with content matching room header ([#14265](https://github.com/RocketChat/Rocket.Chat/pull/14265)) +- OTR dialog issue ([#13755](https://github.com/RocketChat/Rocket.Chat/pull/13755) by [@knrt10](https://github.com/knrt10)) -- allow user to logout before set username ([#13439](https://github.com/RocketChat/Rocket.Chat/pull/13439)) +- Limit App’s HTTP calls to 500ms ([#13949](https://github.com/RocketChat/Rocket.Chat/pull/13949)) + +- Read Receipt for Livechat Messages fixed ([#13832](https://github.com/RocketChat/Rocket.Chat/pull/13832) by [@knrt10](https://github.com/knrt10)) -- Apps converters delete fields on message attachments ([#14028](https://github.com/RocketChat/Rocket.Chat/pull/14028)) +- Avatar image being shrinked on autocomplete ([#13914](https://github.com/RocketChat/Rocket.Chat/pull/13914)) -- Attachments without dates were showing December 31, 1970 ([#13428](https://github.com/RocketChat/Rocket.Chat/pull/13428) by [@wreiske](https://github.com/wreiske)) +- VIDEO/JITSI multiple calls before video call ([#13855](https://github.com/RocketChat/Rocket.Chat/pull/13855)) -- Audio message recording ([#13727](https://github.com/RocketChat/Rocket.Chat/pull/13727)) +- Some Safari bugs ([#13895](https://github.com/RocketChat/Rocket.Chat/pull/13895)) -- Audio message recording issues ([#13486](https://github.com/RocketChat/Rocket.Chat/pull/13486)) +- wrong width/height for tile_70 (mstile 70x70 (png)) ([#13851](https://github.com/RocketChat/Rocket.Chat/pull/13851) by [@ulf-f](https://github.com/ulf-f)) -- Auto hide Livechat room from sidebar on close ([#13824](https://github.com/RocketChat/Rocket.Chat/pull/13824) by [@knrt10](https://github.com/knrt10)) +- wrong importing of e2e ([#13863](https://github.com/RocketChat/Rocket.Chat/pull/13863)) -- Auto-translate toggle not updating rendered messages ([#14262](https://github.com/RocketChat/Rocket.Chat/pull/14262)) +- Forwarded Livechat visitor name is not getting updated on the sidebar ([#13783](https://github.com/RocketChat/Rocket.Chat/pull/13783) by [@zolbayars](https://github.com/zolbayars)) -- Autogrow not working properly for many message boxes ([#14163](https://github.com/RocketChat/Rocket.Chat/pull/14163)) +- Remove spaces in some i18n files ([#13801](https://github.com/RocketChat/Rocket.Chat/pull/13801) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Avatar fonts for PNG and JPG ([#13681](https://github.com/RocketChat/Rocket.Chat/pull/13681)) +- Translation interpolations for many languages ([#13751](https://github.com/RocketChat/Rocket.Chat/pull/13751) by [@fliptrail](https://github.com/fliptrail)) -- Avatar image being shrinked on autocomplete ([#13914](https://github.com/RocketChat/Rocket.Chat/pull/13914)) +- Fixed grammatical error. ([#13559](https://github.com/RocketChat/Rocket.Chat/pull/13559) by [@gsunit](https://github.com/gsunit)) -- Block User Icon ([#13630](https://github.com/RocketChat/Rocket.Chat/pull/13630) by [@knrt10](https://github.com/knrt10)) +- In home screen Rocket.Chat+ is dispalyed as Rocket.Chat ([#13784](https://github.com/RocketChat/Rocket.Chat/pull/13784)) -- Bugfix markdown Marked link new tab ([#13245](https://github.com/RocketChat/Rocket.Chat/pull/13245) by [@DeviaVir](https://github.com/DeviaVir)) +- No new room created when conversation is closed ([#13753](https://github.com/RocketChat/Rocket.Chat/pull/13753) by [@knrt10](https://github.com/knrt10)) -- Change localStorage keys to work when server is running in a subdir ([#13968](https://github.com/RocketChat/Rocket.Chat/pull/13968)) +- Loading user list from room messages ([#13769](https://github.com/RocketChat/Rocket.Chat/pull/13769)) -- Change userId of rate limiter, change to logged user ([#13442](https://github.com/RocketChat/Rocket.Chat/pull/13442)) +- User is unable to enter multiple emojis by clicking on the emoji icon ([#13744](https://github.com/RocketChat/Rocket.Chat/pull/13744) by [@Kailash0311](https://github.com/Kailash0311)) -- Changing Room name updates the webhook ([#13672](https://github.com/RocketChat/Rocket.Chat/pull/13672) by [@knrt10](https://github.com/knrt10)) +- Audio message recording ([#13727](https://github.com/RocketChat/Rocket.Chat/pull/13727)) -- Check settings for name requirement before validating ([#14021](https://github.com/RocketChat/Rocket.Chat/pull/14021)) +- Remove Room info for Direct Messages (#9383) ([#12429](https://github.com/RocketChat/Rocket.Chat/pull/12429) by [@vinade](https://github.com/vinade)) -- Closing sidebar when room menu is clicked. ([#13842](https://github.com/RocketChat/Rocket.Chat/pull/13842) by [@Kailash0311](https://github.com/Kailash0311)) +- WebRTC wasn't working duo to design and browser's APIs changes ([#13675](https://github.com/RocketChat/Rocket.Chat/pull/13675)) -- Corrects UI background of forced F2A Authentication ([#13670](https://github.com/RocketChat/Rocket.Chat/pull/13670) by [@fliptrail](https://github.com/fliptrail)) +- Adds Proper Language display name for many languages ([#13714](https://github.com/RocketChat/Rocket.Chat/pull/13714) by [@fliptrail](https://github.com/fliptrail)) -- Custom Oauth login not working with accessToken ([#14113](https://github.com/RocketChat/Rocket.Chat/pull/14113) by [@knrt10](https://github.com/knrt10)) +- Update bad-words to 3.0.2 ([#13705](https://github.com/RocketChat/Rocket.Chat/pull/13705) by [@trivoallan](https://github.com/trivoallan)) -- Custom Oauth store refresh and id tokens with expiresIn ([#14121](https://github.com/RocketChat/Rocket.Chat/pull/14121) by [@ralfbecker](https://github.com/ralfbecker)) +- Changing Room name updates the webhook ([#13672](https://github.com/RocketChat/Rocket.Chat/pull/13672) by [@knrt10](https://github.com/knrt10)) -- Directory and Apps logs page ([#13938](https://github.com/RocketChat/Rocket.Chat/pull/13938)) +- Fix snap refresh hook ([#13702](https://github.com/RocketChat/Rocket.Chat/pull/13702)) -- Display first message when taking Livechat inquiry ([#13896](https://github.com/RocketChat/Rocket.Chat/pull/13896)) +- Audio message recording issues ([#13486](https://github.com/RocketChat/Rocket.Chat/pull/13486)) -- Do not allow change avatars of another users without permission ([#13629](https://github.com/RocketChat/Rocket.Chat/pull/13629)) +- Legal pages' style ([#13677](https://github.com/RocketChat/Rocket.Chat/pull/13677)) -- Emoji detection at line breaks ([#13447](https://github.com/RocketChat/Rocket.Chat/pull/13447) by [@savish28](https://github.com/savish28)) +- Stop livestream ([#13676](https://github.com/RocketChat/Rocket.Chat/pull/13676)) -- Empty result when getting badge count notification ([#14244](https://github.com/RocketChat/Rocket.Chat/pull/14244)) +- Avatar fonts for PNG and JPG ([#13681](https://github.com/RocketChat/Rocket.Chat/pull/13681)) -- Error when recording data into the connection object ([#13553](https://github.com/RocketChat/Rocket.Chat/pull/13553)) +- Block User Icon ([#13630](https://github.com/RocketChat/Rocket.Chat/pull/13630) by [@knrt10](https://github.com/knrt10)) -- Fix bug when user try recreate channel or group with same name and remove room from cache when user leaves room ([#12341](https://github.com/RocketChat/Rocket.Chat/pull/12341)) +- Corrects UI background of forced F2A Authentication ([#13670](https://github.com/RocketChat/Rocket.Chat/pull/13670) by [@fliptrail](https://github.com/fliptrail)) -- Fix issue cannot filter channels by name ([#12952](https://github.com/RocketChat/Rocket.Chat/pull/12952) by [@huydang284](https://github.com/huydang284)) +- Race condition on the loading of Apps on the admin page ([#13587](https://github.com/RocketChat/Rocket.Chat/pull/13587)) -- Fix rendering of links in the announcement modal ([#13250](https://github.com/RocketChat/Rocket.Chat/pull/13250) by [@supra08](https://github.com/supra08)) +- Do not allow change avatars of another users without permission ([#13629](https://github.com/RocketChat/Rocket.Chat/pull/13629) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix snap refresh hook ([#13702](https://github.com/RocketChat/Rocket.Chat/pull/13702)) +- link of k8s deploy ([#13612](https://github.com/RocketChat/Rocket.Chat/pull/13612) by [@Mr-Linus](https://github.com/Mr-Linus)) -- Fix wrong this scope in Notifications ([#13515](https://github.com/RocketChat/Rocket.Chat/pull/13515)) +- Bugfix markdown Marked link new tab ([#13245](https://github.com/RocketChat/Rocket.Chat/pull/13245) by [@DeviaVir](https://github.com/DeviaVir)) -- Fixed grammatical error. ([#13559](https://github.com/RocketChat/Rocket.Chat/pull/13559) by [@gsunit](https://github.com/gsunit)) +- Partially messaging formatting for bold letters ([#13599](https://github.com/RocketChat/Rocket.Chat/pull/13599) by [@knrt10](https://github.com/knrt10)) -- Fixed rocketchat-oembed meta fragment pulling ([#13056](https://github.com/RocketChat/Rocket.Chat/pull/13056) by [@wreiske](https://github.com/wreiske)) +- Change userId of rate limiter, change to logged user ([#13442](https://github.com/RocketChat/Rocket.Chat/pull/13442) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fixed text for "bulk-register-user" ([#11558](https://github.com/RocketChat/Rocket.Chat/pull/11558) by [@the4ndy](https://github.com/the4ndy)) +- Add retries to docker-compose.yml, to wait for MongoDB to be ready ([#13199](https://github.com/RocketChat/Rocket.Chat/pull/13199) by [@tiangolo](https://github.com/tiangolo)) -- Fixing rooms find by type and name ([#11451](https://github.com/RocketChat/Rocket.Chat/pull/11451) by [@hmagarotto](https://github.com/hmagarotto)) +- Non-latin room names and other slugifications ([#13467](https://github.com/RocketChat/Rocket.Chat/pull/13467)) -- Focus on input when emoji picker box is open was not working ([#13981](https://github.com/RocketChat/Rocket.Chat/pull/13981)) +- Fixed rocketchat-oembed meta fragment pulling ([#13056](https://github.com/RocketChat/Rocket.Chat/pull/13056) by [@wreiske](https://github.com/wreiske)) -- Forwarded Livechat visitor name is not getting updated on the sidebar ([#13783](https://github.com/RocketChat/Rocket.Chat/pull/13783) by [@zolbayars](https://github.com/zolbayars)) +- Attachments without dates were showing December 31, 1970 ([#13428](https://github.com/RocketChat/Rocket.Chat/pull/13428) by [@wreiske](https://github.com/wreiske)) -- Get next Livechat agent endpoint ([#13485](https://github.com/RocketChat/Rocket.Chat/pull/13485)) +- Restart required to apply changes in API Rate Limiter settings ([#13451](https://github.com/RocketChat/Rocket.Chat/pull/13451) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Groups endpoints permission validations ([#13994](https://github.com/RocketChat/Rocket.Chat/pull/13994)) +- Ability to activate an app installed by zip even offline ([#13563](https://github.com/RocketChat/Rocket.Chat/pull/13563) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Handle showing/hiding input in messageBox ([#13564](https://github.com/RocketChat/Rocket.Chat/pull/13564)) +- .bin extension added to attached file names ([#13468](https://github.com/RocketChat/Rocket.Chat/pull/13468) by [@Hudell](https://github.com/Hudell)) -- HipChat Enterprise importer fails when importing a large amount of messages (millions) ([#13221](https://github.com/RocketChat/Rocket.Chat/pull/13221) by [@Hudell](https://github.com/Hudell)) +- Right arrows in default HTML content ([#13502](https://github.com/RocketChat/Rocket.Chat/pull/13502)) -- Hipchat Enterprise Importer not generating subscriptions ([#13293](https://github.com/RocketChat/Rocket.Chat/pull/13293) by [@Hudell](https://github.com/Hudell)) +- Typo in a referrer header in inject.js file ([#13469](https://github.com/RocketChat/Rocket.Chat/pull/13469) by [@algomaster99](https://github.com/algomaster99)) -- Image attachment re-renders on message update ([#14207](https://github.com/RocketChat/Rocket.Chat/pull/14207) by [@Kailash0311](https://github.com/Kailash0311)) +- Fix issue cannot filter channels by name ([#12952](https://github.com/RocketChat/Rocket.Chat/pull/12952) by [@huydang284](https://github.com/huydang284)) -- Improve cloud section ([#13820](https://github.com/RocketChat/Rocket.Chat/pull/13820)) +- mention-links not being always resolved ([#11745](https://github.com/RocketChat/Rocket.Chat/pull/11745) by [@mrsimpson](https://github.com/mrsimpson)) -- In home screen Rocket.Chat+ is dispalyed as Rocket.Chat ([#13784](https://github.com/RocketChat/Rocket.Chat/pull/13784)) +- allow user to logout before set username ([#13439](https://github.com/RocketChat/Rocket.Chat/pull/13439)) -- Legal pages' style ([#13677](https://github.com/RocketChat/Rocket.Chat/pull/13677)) +- Error when recording data into the connection object ([#13553](https://github.com/RocketChat/Rocket.Chat/pull/13553) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Limit App’s HTTP calls to 500ms ([#13949](https://github.com/RocketChat/Rocket.Chat/pull/13949)) +- Handle showing/hiding input in messageBox ([#13564](https://github.com/RocketChat/Rocket.Chat/pull/13564)) -- linear-gradient background on safari ([#13363](https://github.com/RocketChat/Rocket.Chat/pull/13363)) +- Fix wrong this scope in Notifications ([#13515](https://github.com/RocketChat/Rocket.Chat/pull/13515) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- link of k8s deploy ([#13612](https://github.com/RocketChat/Rocket.Chat/pull/13612) by [@Mr-Linus](https://github.com/Mr-Linus)) +- Get next Livechat agent endpoint ([#13485](https://github.com/RocketChat/Rocket.Chat/pull/13485)) -- Links and upload paths when running in a subdir ([#13982](https://github.com/RocketChat/Rocket.Chat/pull/13982)) +- Sidenav mouse hover was slow ([#13482](https://github.com/RocketChat/Rocket.Chat/pull/13482)) -- Livechat office hours ([#14031](https://github.com/RocketChat/Rocket.Chat/pull/14031)) +- Emoji detection at line breaks ([#13447](https://github.com/RocketChat/Rocket.Chat/pull/13447) by [@savish28](https://github.com/savish28)) -- Livechat user registration in another department ([#10695](https://github.com/RocketChat/Rocket.Chat/pull/10695)) +- Small improvements on message box ([#13444](https://github.com/RocketChat/Rocket.Chat/pull/13444)) -- Loading theme CSS on first server startup ([#13953](https://github.com/RocketChat/Rocket.Chat/pull/13953)) +- Fixing rooms find by type and name ([#11451](https://github.com/RocketChat/Rocket.Chat/pull/11451) by [@hmagarotto](https://github.com/hmagarotto)) -- Loading user list from room messages ([#13769](https://github.com/RocketChat/Rocket.Chat/pull/13769)) +- linear-gradient background on safari ([#13363](https://github.com/RocketChat/Rocket.Chat/pull/13363)) -- mention-links not being always resolved ([#11745](https://github.com/RocketChat/Rocket.Chat/pull/11745) by [@mrsimpson](https://github.com/mrsimpson)) +- Fixed text for "bulk-register-user" ([#11558](https://github.com/RocketChat/Rocket.Chat/pull/11558) by [@the4ndy](https://github.com/the4ndy)) -- Message updating by Apps ([#13294](https://github.com/RocketChat/Rocket.Chat/pull/13294)) +- Pass token for cloud register ([#13350](https://github.com/RocketChat/Rocket.Chat/pull/13350)) -- Minor issues detected after testing the new Livechat client ([#13521](https://github.com/RocketChat/Rocket.Chat/pull/13521)) +- Setup wizard calling 'saveSetting' for each field/setting ([#13349](https://github.com/RocketChat/Rocket.Chat/pull/13349)) -- Missing connection headers on Livechat REST API ([#14130](https://github.com/RocketChat/Rocket.Chat/pull/14130)) +- Rate Limiter was limiting communication between instances ([#13326](https://github.com/RocketChat/Rocket.Chat/pull/13326)) - Mobile view and re-enable E2E tests ([#13322](https://github.com/RocketChat/Rocket.Chat/pull/13322)) -- No new room created when conversation is closed ([#13753](https://github.com/RocketChat/Rocket.Chat/pull/13753) by [@knrt10](https://github.com/knrt10)) +- Hipchat Enterprise Importer not generating subscriptions ([#13293](https://github.com/RocketChat/Rocket.Chat/pull/13293) by [@Hudell](https://github.com/Hudell)) -- Non-latin room names and other slugifications ([#13467](https://github.com/RocketChat/Rocket.Chat/pull/13467)) +- Message updating by Apps ([#13294](https://github.com/RocketChat/Rocket.Chat/pull/13294)) -- Normalize TAPi18n language string on Livechat widget ([#14012](https://github.com/RocketChat/Rocket.Chat/pull/14012)) +- REST endpoint for creating custom emojis ([#13306](https://github.com/RocketChat/Rocket.Chat/pull/13306)) -- Obey audio notification preferences ([#14188](https://github.com/RocketChat/Rocket.Chat/pull/14188)) +- Preview of image uploads were not working when apps framework is enable ([#13303](https://github.com/RocketChat/Rocket.Chat/pull/13303)) -- Opening a Livechat room from another agent ([#13951](https://github.com/RocketChat/Rocket.Chat/pull/13951)) +- HipChat Enterprise importer fails when importing a large amount of messages (millions) ([#13221](https://github.com/RocketChat/Rocket.Chat/pull/13221) by [@Hudell](https://github.com/Hudell)) -- OTR dialog issue ([#13755](https://github.com/RocketChat/Rocket.Chat/pull/13755) by [@knrt10](https://github.com/knrt10)) +- Fix bug when user try recreate channel or group with same name and remove room from cache when user leaves room ([#12341](https://github.com/RocketChat/Rocket.Chat/pull/12341) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Partially messaging formatting for bold letters ([#13599](https://github.com/RocketChat/Rocket.Chat/pull/13599) by [@knrt10](https://github.com/knrt10)) +- Closing sidebar when room menu is clicked. ([#13842](https://github.com/RocketChat/Rocket.Chat/pull/13842) by [@Kailash0311](https://github.com/Kailash0311)) -- Pass token for cloud register ([#13350](https://github.com/RocketChat/Rocket.Chat/pull/13350)) +- Check settings for name requirement before validating ([#14021](https://github.com/RocketChat/Rocket.Chat/pull/14021)) -- Preview of image uploads were not working when apps framework is enable ([#13303](https://github.com/RocketChat/Rocket.Chat/pull/13303)) +- Links and upload paths when running in a subdir ([#13982](https://github.com/RocketChat/Rocket.Chat/pull/13982) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Race condition on the loading of Apps on the admin page ([#13587](https://github.com/RocketChat/Rocket.Chat/pull/13587)) +- users.getPreferences when the user doesn't have any preferences ([#13532](https://github.com/RocketChat/Rocket.Chat/pull/13532) by [@thayannevls](https://github.com/thayannevls)) -- Rate Limiter was limiting communication between instances ([#13326](https://github.com/RocketChat/Rocket.Chat/pull/13326)) +- Real names were not displayed in the reactions (API/UI) ([#13495](https://github.com/RocketChat/Rocket.Chat/pull/13495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Read Receipt for Livechat Messages fixed ([#13832](https://github.com/RocketChat/Rocket.Chat/pull/13832) by [@knrt10](https://github.com/knrt10)) +- Theme CSS loading in subdir env ([#14015](https://github.com/RocketChat/Rocket.Chat/pull/14015)) -- Real names were not displayed in the reactions (API/UI) ([#13495](https://github.com/RocketChat/Rocket.Chat/pull/13495)) +- Fix rendering of links in the announcement modal ([#13250](https://github.com/RocketChat/Rocket.Chat/pull/13250) by [@supra08](https://github.com/supra08)) -- Receiving agent for new livechats from REST API ([#14103](https://github.com/RocketChat/Rocket.Chat/pull/14103)) +- Add custom MIME types for *.ico extension ([#13969](https://github.com/RocketChat/Rocket.Chat/pull/13969)) -- Remove Room info for Direct Messages (#9383) ([#12429](https://github.com/RocketChat/Rocket.Chat/pull/12429) by [@vinade](https://github.com/vinade)) +- Groups endpoints permission validations ([#13994](https://github.com/RocketChat/Rocket.Chat/pull/13994) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove spaces in some i18n files ([#13801](https://github.com/RocketChat/Rocket.Chat/pull/13801)) +- Focus on input when emoji picker box is open was not working ([#13981](https://github.com/RocketChat/Rocket.Chat/pull/13981)) -- renderField template to correct short property usage ([#14148](https://github.com/RocketChat/Rocket.Chat/pull/14148)) +- Auto hide Livechat room from sidebar on close ([#13824](https://github.com/RocketChat/Rocket.Chat/pull/13824) by [@knrt10](https://github.com/knrt10)) -- REST endpoint for creating custom emojis ([#13306](https://github.com/RocketChat/Rocket.Chat/pull/13306)) +- Improve cloud section ([#13820](https://github.com/RocketChat/Rocket.Chat/pull/13820)) -- Restart required to apply changes in API Rate Limiter settings ([#13451](https://github.com/RocketChat/Rocket.Chat/pull/13451)) +- Wrong permalink when running in subdir ([#13746](https://github.com/RocketChat/Rocket.Chat/pull/13746) by [@ura14h](https://github.com/ura14h)) -- Right arrows in default HTML content ([#13502](https://github.com/RocketChat/Rocket.Chat/pull/13502)) +- Change localStorage keys to work when server is running in a subdir ([#13968](https://github.com/RocketChat/Rocket.Chat/pull/13968) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - SAML certificate settings don't follow a pattern ([#14179](https://github.com/RocketChat/Rocket.Chat/pull/14179) by [@Hudell](https://github.com/Hudell)) -- Setup wizard calling 'saveSetting' for each field/setting ([#13349](https://github.com/RocketChat/Rocket.Chat/pull/13349)) - -- Sidenav does not open on some admin pages ([#14010](https://github.com/RocketChat/Rocket.Chat/pull/14010)) +- Custom Oauth store refresh and id tokens with expiresIn ([#14121](https://github.com/RocketChat/Rocket.Chat/pull/14121) by [@ralfbecker](https://github.com/ralfbecker)) -- Sidenav mouse hover was slow ([#13482](https://github.com/RocketChat/Rocket.Chat/pull/13482)) +- Apps converters delete fields on message attachments ([#14028](https://github.com/RocketChat/Rocket.Chat/pull/14028)) -- Slackbridge private channels ([#14273](https://github.com/RocketChat/Rocket.Chat/pull/14273) by [@Hudell](https://github.com/Hudell) & [@nylen](https://github.com/nylen)) +- Custom Oauth login not working with accessToken ([#14113](https://github.com/RocketChat/Rocket.Chat/pull/14113) by [@knrt10](https://github.com/knrt10)) -- Small improvements on message box ([#13444](https://github.com/RocketChat/Rocket.Chat/pull/13444)) +- renderField template to correct short property usage ([#14148](https://github.com/RocketChat/Rocket.Chat/pull/14148)) -- Some Safari bugs ([#13895](https://github.com/RocketChat/Rocket.Chat/pull/13895)) +- Updating a message from apps if keep history is on ([#14129](https://github.com/RocketChat/Rocket.Chat/pull/14129)) -- Stop livestream ([#13676](https://github.com/RocketChat/Rocket.Chat/pull/13676)) +- Missing connection headers on Livechat REST API ([#14130](https://github.com/RocketChat/Rocket.Chat/pull/14130)) -- Support for handling SAML LogoutRequest SLO ([#14074](https://github.com/RocketChat/Rocket.Chat/pull/14074)) +- Receiving agent for new livechats from REST API ([#14103](https://github.com/RocketChat/Rocket.Chat/pull/14103)) -- Theme CSS loading in subdir env ([#14015](https://github.com/RocketChat/Rocket.Chat/pull/14015)) +- Livechat user registration in another department ([#10695](https://github.com/RocketChat/Rocket.Chat/pull/10695)) -- Translation interpolations for many languages ([#13751](https://github.com/RocketChat/Rocket.Chat/pull/13751) by [@fliptrail](https://github.com/fliptrail)) +- Support for handling SAML LogoutRequest SLO ([#14074](https://github.com/RocketChat/Rocket.Chat/pull/14074)) -- Typo in a referrer header in inject.js file ([#13469](https://github.com/RocketChat/Rocket.Chat/pull/13469) by [@algomaster99](https://github.com/algomaster99)) +- Livechat office hours ([#14031](https://github.com/RocketChat/Rocket.Chat/pull/14031) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update bad-words to 3.0.2 ([#13705](https://github.com/RocketChat/Rocket.Chat/pull/13705) by [@trivoallan](https://github.com/trivoallan)) +- Auto-translate toggle not updating rendered messages ([#14262](https://github.com/RocketChat/Rocket.Chat/pull/14262)) -- Updating a message from apps if keep history is on ([#14129](https://github.com/RocketChat/Rocket.Chat/pull/14129)) +- Align burger menu in header with content matching room header ([#14265](https://github.com/RocketChat/Rocket.Chat/pull/14265)) -- User is unable to enter multiple emojis by clicking on the emoji icon ([#13744](https://github.com/RocketChat/Rocket.Chat/pull/13744) by [@Kailash0311](https://github.com/Kailash0311)) +- Normalize TAPi18n language string on Livechat widget ([#14012](https://github.com/RocketChat/Rocket.Chat/pull/14012)) -- users.getPreferences when the user doesn't have any preferences ([#13532](https://github.com/RocketChat/Rocket.Chat/pull/13532) by [@thayannevls](https://github.com/thayannevls)) +- Autogrow not working properly for many message boxes ([#14163](https://github.com/RocketChat/Rocket.Chat/pull/14163)) -- VIDEO/JITSI multiple calls before video call ([#13855](https://github.com/RocketChat/Rocket.Chat/pull/13855)) +- Image attachment re-renders on message update ([#14207](https://github.com/RocketChat/Rocket.Chat/pull/14207) by [@Kailash0311](https://github.com/Kailash0311)) -- View All members button now not in direct room ([#14081](https://github.com/RocketChat/Rocket.Chat/pull/14081) by [@knrt10](https://github.com/knrt10)) +- Sidenav does not open on some admin pages ([#14010](https://github.com/RocketChat/Rocket.Chat/pull/14010) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- WebRTC wasn't working duo to design and browser's APIs changes ([#13675](https://github.com/RocketChat/Rocket.Chat/pull/13675)) +- Empty result when getting badge count notification ([#14244](https://github.com/RocketChat/Rocket.Chat/pull/14244)) -- wrong importing of e2e ([#13863](https://github.com/RocketChat/Rocket.Chat/pull/13863)) +- Obey audio notification preferences ([#14188](https://github.com/RocketChat/Rocket.Chat/pull/14188)) -- Wrong permalink when running in subdir ([#13746](https://github.com/RocketChat/Rocket.Chat/pull/13746) by [@ura14h](https://github.com/ura14h)) +- Slackbridge private channels ([#14273](https://github.com/RocketChat/Rocket.Chat/pull/14273) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@nylen](https://github.com/nylen)) -- wrong width/height for tile_70 (mstile 70x70 (png)) ([#13851](https://github.com/RocketChat/Rocket.Chat/pull/13851) by [@ulf-f](https://github.com/ulf-f)) +- View All members button now not in direct room ([#14081](https://github.com/RocketChat/Rocket.Chat/pull/14081) by [@knrt10](https://github.com/knrt10))
🔍 Minor changes -- Convert rocketchat-apps to main module structure ([#13409](https://github.com/RocketChat/Rocket.Chat/pull/13409)) - -- Convert rocketchat-lib to main module structure ([#13415](https://github.com/RocketChat/Rocket.Chat/pull/13415)) - -- Fix some imports from wrong packages, remove exports and files unused in rc-ui ([#13422](https://github.com/RocketChat/Rocket.Chat/pull/13422)) +- Update eslint config ([#13966](https://github.com/RocketChat/Rocket.Chat/pull/13966)) -- Import missed functions to remove dependency of RC namespace ([#13414](https://github.com/RocketChat/Rocket.Chat/pull/13414)) +- Remove some bad references to messageBox ([#13954](https://github.com/RocketChat/Rocket.Chat/pull/13954)) -- Remove dependency of RC namespace in livechat/client ([#13370](https://github.com/RocketChat/Rocket.Chat/pull/13370)) +- LingoHub based on develop ([#13964](https://github.com/RocketChat/Rocket.Chat/pull/13964)) -- Remove dependency of RC namespace in rc-integrations and importer-hipchat-enterprise ([#13386](https://github.com/RocketChat/Rocket.Chat/pull/13386)) +- Update preview Dockerfile to use Stretch dependencies ([#13947](https://github.com/RocketChat/Rocket.Chat/pull/13947)) -- Remove dependency of RC namespace in rc-livechat/server/publications ([#13383](https://github.com/RocketChat/Rocket.Chat/pull/13383)) +- Small improvements to federation callbacks/hooks ([#13946](https://github.com/RocketChat/Rocket.Chat/pull/13946)) -- Remove dependency of RC namespace in rc-message-pin and message-snippet ([#13343](https://github.com/RocketChat/Rocket.Chat/pull/13343)) +- Improve: Support search and adding federated users through regular endpoints ([#13936](https://github.com/RocketChat/Rocket.Chat/pull/13936)) -- Remove dependency of RC namespace in rc-oembed and rc-otr ([#13345](https://github.com/RocketChat/Rocket.Chat/pull/13345)) +- Remove bitcoin link in Readme.md since the link is broken ([#13935](https://github.com/RocketChat/Rocket.Chat/pull/13935)) -- Remove dependency of RC namespace in rc-reactions, retention-policy and search ([#13347](https://github.com/RocketChat/Rocket.Chat/pull/13347)) +- Fix missing dependencies on stretch CI image ([#13910](https://github.com/RocketChat/Rocket.Chat/pull/13910)) -- Remove dependency of RC namespace in rc-slash-archiveroom, create, help, hide, invite, inviteall and join ([#13356](https://github.com/RocketChat/Rocket.Chat/pull/13356)) +- Remove some index.js files routing for server/client files ([#13772](https://github.com/RocketChat/Rocket.Chat/pull/13772)) -- Remove dependency of RC namespace in rc-smarsh-connector, sms and spotify ([#13358](https://github.com/RocketChat/Rocket.Chat/pull/13358)) +- Use CircleCI Debian Stretch images ([#13906](https://github.com/RocketChat/Rocket.Chat/pull/13906)) -- Remove dependency of RC namespace in rc-statistics and tokenpass ([#13359](https://github.com/RocketChat/Rocket.Chat/pull/13359)) +- LingoHub based on develop ([#13891](https://github.com/RocketChat/Rocket.Chat/pull/13891)) -- Remove dependency of RC namespace in rc-ui-master, ui-message- user-data-download and version-check ([#13365](https://github.com/RocketChat/Rocket.Chat/pull/13365)) +- User remove role dialog fixed ([#13874](https://github.com/RocketChat/Rocket.Chat/pull/13874) by [@bhardwajaditya](https://github.com/bhardwajaditya)) -- Remove dependency of RC namespace in rc-ui, ui-account and ui-admin ([#13361](https://github.com/RocketChat/Rocket.Chat/pull/13361)) +- Rename Threads to Discussion ([#13782](https://github.com/RocketChat/Rocket.Chat/pull/13782)) -- Remove dependency of RC namespace in rc-videobridge and webdav ([#13366](https://github.com/RocketChat/Rocket.Chat/pull/13366)) +- [BUG] Icon Fixed for Knowledge base on Livechat ([#13806](https://github.com/RocketChat/Rocket.Chat/pull/13806) by [@knrt10](https://github.com/knrt10)) -- Remove dependency of RC namespace in root client folder, imports/message-read-receipt and imports/personal-access-tokens ([#13389](https://github.com/RocketChat/Rocket.Chat/pull/13389)) +- Add support to search for all users in directory ([#13803](https://github.com/RocketChat/Rocket.Chat/pull/13803)) -- Remove dependency of RC namespace in root server folder - step 1 ([#13390](https://github.com/RocketChat/Rocket.Chat/pull/13390)) +- LingoHub based on develop ([#13839](https://github.com/RocketChat/Rocket.Chat/pull/13839)) -- Remove dependency of RC namespace in root server folder - step 4 ([#13400](https://github.com/RocketChat/Rocket.Chat/pull/13400)) +- Remove unused style ([#13834](https://github.com/RocketChat/Rocket.Chat/pull/13834)) -- Remove functions from globals ([#13421](https://github.com/RocketChat/Rocket.Chat/pull/13421)) +- Remove unused files ([#13833](https://github.com/RocketChat/Rocket.Chat/pull/13833)) -- Remove LIvechat global variable from RC namespace ([#13378](https://github.com/RocketChat/Rocket.Chat/pull/13378)) +- Lingohub sync and additional fixes ([#13825](https://github.com/RocketChat/Rocket.Chat/pull/13825)) -- Remove unused files and code in rc-lib - step 1 ([#13416](https://github.com/RocketChat/Rocket.Chat/pull/13416)) +- Fix: addRoomAccessValidator method created for Threads ([#13789](https://github.com/RocketChat/Rocket.Chat/pull/13789)) -- Remove unused files and code in rc-lib - step 3 ([#13420](https://github.com/RocketChat/Rocket.Chat/pull/13420)) +- Adds French translation of Personal Access Token ([#13779](https://github.com/RocketChat/Rocket.Chat/pull/13779)) -- Remove unused files in rc-lib - step 2 ([#13419](https://github.com/RocketChat/Rocket.Chat/pull/13419)) +- Remove Sandstorm support ([#13773](https://github.com/RocketChat/Rocket.Chat/pull/13773)) -- [BUG] Icon Fixed for Knowledge base on Livechat ([#13806](https://github.com/RocketChat/Rocket.Chat/pull/13806) by [@knrt10](https://github.com/knrt10)) +- Removing (almost) every dynamic imports ([#13767](https://github.com/RocketChat/Rocket.Chat/pull/13767) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- [New] Reply privately to group messages ([#14150](https://github.com/RocketChat/Rocket.Chat/pull/14150) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +- Regression: Threads styles improvement ([#13741](https://github.com/RocketChat/Rocket.Chat/pull/13741)) -- [Regression] Fix integrations message example ([#14111](https://github.com/RocketChat/Rocket.Chat/pull/14111)) +- Convert imports to relative paths ([#13740](https://github.com/RocketChat/Rocket.Chat/pull/13740)) -- [REGRESSION] Fix variable name references in message template ([#14184](https://github.com/RocketChat/Rocket.Chat/pull/14184)) +- Regression: removed backup files ([#13729](https://github.com/RocketChat/Rocket.Chat/pull/13729)) -- [REGRESSION] Messages sent by livechat's guests are losing sender info ([#14174](https://github.com/RocketChat/Rocket.Chat/pull/14174)) +- Remove unused files ([#13725](https://github.com/RocketChat/Rocket.Chat/pull/13725)) -- [Regression] Personal Access Token list fixed ([#14216](https://github.com/RocketChat/Rocket.Chat/pull/14216) by [@knrt10](https://github.com/knrt10)) +- Add Houston config ([#13707](https://github.com/RocketChat/Rocket.Chat/pull/13707)) -- Add better positioning for tooltips on edges ([#13472](https://github.com/RocketChat/Rocket.Chat/pull/13472)) +- Change the way to resolve DNS for Federation ([#13695](https://github.com/RocketChat/Rocket.Chat/pull/13695)) -- Add Houston config ([#13707](https://github.com/RocketChat/Rocket.Chat/pull/13707)) +- Update husky config ([#13687](https://github.com/RocketChat/Rocket.Chat/pull/13687)) -- Add pagination to getUsersOfRoom ([#12834](https://github.com/RocketChat/Rocket.Chat/pull/12834) by [@Hudell](https://github.com/Hudell)) +- Regression: Prune Threads ([#13683](https://github.com/RocketChat/Rocket.Chat/pull/13683)) -- Add support to search for all users in directory ([#13803](https://github.com/RocketChat/Rocket.Chat/pull/13803)) +- Regression: Fix icon for DMs ([#13679](https://github.com/RocketChat/Rocket.Chat/pull/13679)) -- Added federation ping, loopback and dashboard ([#14007](https://github.com/RocketChat/Rocket.Chat/pull/14007)) +- Regression: Add missing translations used in Apps pages ([#13674](https://github.com/RocketChat/Rocket.Chat/pull/13674)) -- Adds French translation of Personal Access Token ([#13779](https://github.com/RocketChat/Rocket.Chat/pull/13779)) +- Regression: User Discussions join message ([#13656](https://github.com/RocketChat/Rocket.Chat/pull/13656) by [@bhardwajaditya](https://github.com/bhardwajaditya)) -- Allow set env var METEOR_OPLOG_TOO_FAR_BEHIND ([#14017](https://github.com/RocketChat/Rocket.Chat/pull/14017)) +- Regression: Sidebar create new channel hover text ([#13658](https://github.com/RocketChat/Rocket.Chat/pull/13658) by [@bhardwajaditya](https://github.com/bhardwajaditya)) -- Broken styles in Administration's contextual bar ([#14222](https://github.com/RocketChat/Rocket.Chat/pull/14222)) +- Regression: Fix embedded layout ([#13574](https://github.com/RocketChat/Rocket.Chat/pull/13574)) -- Change dynamic dependency of FileUpload in Messages models ([#13776](https://github.com/RocketChat/Rocket.Chat/pull/13776)) +- Improve: Send cloud token to Federation Hub ([#13651](https://github.com/RocketChat/Rocket.Chat/pull/13651)) -- Change the way to resolve DNS for Federation ([#13695](https://github.com/RocketChat/Rocket.Chat/pull/13695)) +- Regression: Discussions - Invite users and DM ([#13646](https://github.com/RocketChat/Rocket.Chat/pull/13646)) -- Convert imports to relative paths ([#13740](https://github.com/RocketChat/Rocket.Chat/pull/13740)) +- LingoHub based on develop ([#13623](https://github.com/RocketChat/Rocket.Chat/pull/13623)) -- Convert rc-nrr and slashcommands open to main module structure ([#13520](https://github.com/RocketChat/Rocket.Chat/pull/13520)) +- Force some words to translate in other languages ([#13367](https://github.com/RocketChat/Rocket.Chat/pull/13367) by [@soltanabadiyan](https://github.com/soltanabadiyan)) -- created function to allow change default values, fix loading search users ([#14177](https://github.com/RocketChat/Rocket.Chat/pull/14177)) +- Fix wrong imports ([#13601](https://github.com/RocketChat/Rocket.Chat/pull/13601)) -- Depack: Use mainModule for root files ([#13508](https://github.com/RocketChat/Rocket.Chat/pull/13508)) +- Fix: Some german translations ([#13299](https://github.com/RocketChat/Rocket.Chat/pull/13299) by [@soenkef](https://github.com/soenkef)) -- Depackaging ([#13483](https://github.com/RocketChat/Rocket.Chat/pull/13483)) +- Add better positioning for tooltips on edges ([#13472](https://github.com/RocketChat/Rocket.Chat/pull/13472)) -- Deprecate /api/v1/info in favor of /api/info ([#13798](https://github.com/RocketChat/Rocket.Chat/pull/13798)) +- Fix: Mongo.setConnectionOptions was not being set correctly ([#13586](https://github.com/RocketChat/Rocket.Chat/pull/13586)) -- ESLint: Add more import rules ([#14226](https://github.com/RocketChat/Rocket.Chat/pull/14226)) +- Regression: Missing settings import at `packages/rocketchat-livechat/server/methods/saveAppearance.js` ([#13573](https://github.com/RocketChat/Rocket.Chat/pull/13573) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Exit process on unhandled rejection ([#14220](https://github.com/RocketChat/Rocket.Chat/pull/14220)) +- Depack: Use mainModule for root files ([#13508](https://github.com/RocketChat/Rocket.Chat/pull/13508)) -- Faster CI build for PR ([#14171](https://github.com/RocketChat/Rocket.Chat/pull/14171)) +- Regression: fix app pages styles ([#13567](https://github.com/RocketChat/Rocket.Chat/pull/13567)) -- Fix debug logging not being enabled by the setting ([#13979](https://github.com/RocketChat/Rocket.Chat/pull/13979)) +- Move mongo config away from cors package ([#13531](https://github.com/RocketChat/Rocket.Chat/pull/13531)) -- Fix discussions issues after room deletion and translation actions not being shown ([#14018](https://github.com/RocketChat/Rocket.Chat/pull/14018)) +- Regression: Add debounce on admin users search to avoid blocking by DDP Rate Limiter ([#13529](https://github.com/RocketChat/Rocket.Chat/pull/13529) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix messages losing thread titles on editing or reaction and improve message actions ([#14051](https://github.com/RocketChat/Rocket.Chat/pull/14051)) +- Remove Package references ([#13523](https://github.com/RocketChat/Rocket.Chat/pull/13523) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix missing dependencies on stretch CI image ([#13910](https://github.com/RocketChat/Rocket.Chat/pull/13910)) +- Remove Npm.depends and Npm.require except those that are inside package.js ([#13518](https://github.com/RocketChat/Rocket.Chat/pull/13518) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix modal scroll ([#14052](https://github.com/RocketChat/Rocket.Chat/pull/14052)) +- Update Meteor 1.8.0.2 ([#13519](https://github.com/RocketChat/Rocket.Chat/pull/13519)) -- Fix race condition of lastMessage set ([#14041](https://github.com/RocketChat/Rocket.Chat/pull/14041)) +- Convert rc-nrr and slashcommands open to main module structure ([#13520](https://github.com/RocketChat/Rocket.Chat/pull/13520) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix room re-rendering ([#14044](https://github.com/RocketChat/Rocket.Chat/pull/14044)) +- Regression: Fix wrong imports in rc-models ([#13516](https://github.com/RocketChat/Rocket.Chat/pull/13516) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix sending message from action buttons in messages ([#14101](https://github.com/RocketChat/Rocket.Chat/pull/14101)) +- Regression: Fix autolinker that was not parsing urls correctly ([#13497](https://github.com/RocketChat/Rocket.Chat/pull/13497) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix sending notifications to mentions on threads and discussion email sender ([#14043](https://github.com/RocketChat/Rocket.Chat/pull/14043)) +- Regression: Not updating subscriptions and not showing desktop notifcations ([#13509](https://github.com/RocketChat/Rocket.Chat/pull/13509)) -- Fix shield indentation ([#14048](https://github.com/RocketChat/Rocket.Chat/pull/14048)) +- Fix some imports from wrong packages, remove exports and files unused in rc-ui ([#13422](https://github.com/RocketChat/Rocket.Chat/pull/13422) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix threads rendering performance ([#14059](https://github.com/RocketChat/Rocket.Chat/pull/14059)) +- Remove functions from globals ([#13421](https://github.com/RocketChat/Rocket.Chat/pull/13421) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix threads tests ([#14180](https://github.com/RocketChat/Rocket.Chat/pull/14180)) +- Remove unused files and code in rc-lib - step 3 ([#13420](https://github.com/RocketChat/Rocket.Chat/pull/13420) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix top bar unread message counter ([#14102](https://github.com/RocketChat/Rocket.Chat/pull/14102)) +- Remove unused files in rc-lib - step 2 ([#13419](https://github.com/RocketChat/Rocket.Chat/pull/13419) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix update apps capability of updating messages ([#14118](https://github.com/RocketChat/Rocket.Chat/pull/14118)) +- Remove unused files and code in rc-lib - step 1 ([#13416](https://github.com/RocketChat/Rocket.Chat/pull/13416) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix wrong imports ([#13601](https://github.com/RocketChat/Rocket.Chat/pull/13601)) +- Convert rocketchat-lib to main module structure ([#13415](https://github.com/RocketChat/Rocket.Chat/pull/13415) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: addRoomAccessValidator method created for Threads ([#13789](https://github.com/RocketChat/Rocket.Chat/pull/13789)) +- Regression: Message box geolocation was throwing error ([#13496](https://github.com/RocketChat/Rocket.Chat/pull/13496) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Error when version check endpoint was returning invalid data ([#14089](https://github.com/RocketChat/Rocket.Chat/pull/14089)) +- Import missed functions to remove dependency of RC namespace ([#13414](https://github.com/RocketChat/Rocket.Chat/pull/13414) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Missing export in cloud package ([#13282](https://github.com/RocketChat/Rocket.Chat/pull/13282)) +- Convert rocketchat-apps to main module structure ([#13409](https://github.com/RocketChat/Rocket.Chat/pull/13409) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Mongo.setConnectionOptions was not being set correctly ([#13586](https://github.com/RocketChat/Rocket.Chat/pull/13586)) +- Remove dependency of RC namespace in root server folder - step 6 ([#13405](https://github.com/RocketChat/Rocket.Chat/pull/13405) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Remove message class `sequential` if `new-day` is present ([#14116](https://github.com/RocketChat/Rocket.Chat/pull/14116)) +- Remove dependency of RC namespace in root server folder - step 5 ([#13402](https://github.com/RocketChat/Rocket.Chat/pull/13402) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Skip thread notifications on message edit ([#14100](https://github.com/RocketChat/Rocket.Chat/pull/14100)) +- Remove dependency of RC namespace in root server folder - step 4 ([#13400](https://github.com/RocketChat/Rocket.Chat/pull/13400) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Some german translations ([#13299](https://github.com/RocketChat/Rocket.Chat/pull/13299) by [@soenkef](https://github.com/soenkef)) +- Remove dependency of RC namespace in root server folder - step 3 ([#13398](https://github.com/RocketChat/Rocket.Chat/pull/13398) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Tests were not exiting RC instances ([#14054](https://github.com/RocketChat/Rocket.Chat/pull/14054)) +- Remove dependency of RC namespace in root server folder - step 2 ([#13397](https://github.com/RocketChat/Rocket.Chat/pull/13397) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Force some words to translate in other languages ([#13367](https://github.com/RocketChat/Rocket.Chat/pull/13367) by [@soltanabadiyan](https://github.com/soltanabadiyan)) +- Remove dependency of RC namespace in root server folder - step 1 ([#13390](https://github.com/RocketChat/Rocket.Chat/pull/13390) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Force unstyling of blockquote under .message-body--unstyled ([#14274](https://github.com/RocketChat/Rocket.Chat/pull/14274)) +- Remove dependency of RC namespace in root client folder, imports/message-read-receipt and imports/personal-access-tokens ([#13389](https://github.com/RocketChat/Rocket.Chat/pull/13389) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve message validation ([#14266](https://github.com/RocketChat/Rocket.Chat/pull/14266)) +- Remove dependency of RC namespace in rc-integrations and importer-hipchat-enterprise ([#13386](https://github.com/RocketChat/Rocket.Chat/pull/13386) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Decrease padding for app buy modal ([#13984](https://github.com/RocketChat/Rocket.Chat/pull/13984)) +- Move rc-livechat server models to rc-models ([#13384](https://github.com/RocketChat/Rocket.Chat/pull/13384) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Marketplace auth inside Rocket.Chat instead of inside the iframe. ([#14258](https://github.com/RocketChat/Rocket.Chat/pull/14258)) +- Remove dependency of RC namespace in rc-livechat/server/publications ([#13383](https://github.com/RocketChat/Rocket.Chat/pull/13383) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Send cloud token to Federation Hub ([#13651](https://github.com/RocketChat/Rocket.Chat/pull/13651)) +- Remove dependency of RC namespace in rc-livechat/server/methods ([#13382](https://github.com/RocketChat/Rocket.Chat/pull/13382) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Support search and adding federated users through regular endpoints ([#13936](https://github.com/RocketChat/Rocket.Chat/pull/13936)) +- Remove dependency of RC namespace in rc-livechat/imports, lib, server/api, server/hooks and server/lib ([#13379](https://github.com/RocketChat/Rocket.Chat/pull/13379) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Increment user counter on DMs ([#14185](https://github.com/RocketChat/Rocket.Chat/pull/14185)) +- Remove LIvechat global variable from RC namespace ([#13378](https://github.com/RocketChat/Rocket.Chat/pull/13378) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13964](https://github.com/RocketChat/Rocket.Chat/pull/13964)) +- Remove dependency of RC namespace in rc-livechat/server/models ([#13377](https://github.com/RocketChat/Rocket.Chat/pull/13377) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13891](https://github.com/RocketChat/Rocket.Chat/pull/13891)) +- Remove dependency of RC namespace in livechat/client ([#13370](https://github.com/RocketChat/Rocket.Chat/pull/13370) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13839](https://github.com/RocketChat/Rocket.Chat/pull/13839)) +- Remove dependency of RC namespace in rc-wordpress, chatpal-search and irc ([#13492](https://github.com/RocketChat/Rocket.Chat/pull/13492) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13623](https://github.com/RocketChat/Rocket.Chat/pull/13623)) +- Remove dependency of RC namespace in rc-videobridge and webdav ([#13366](https://github.com/RocketChat/Rocket.Chat/pull/13366) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#14046](https://github.com/RocketChat/Rocket.Chat/pull/14046)) +- Remove dependency of RC namespace in rc-ui-master, ui-message- user-data-download and version-check ([#13365](https://github.com/RocketChat/Rocket.Chat/pull/13365) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#14178](https://github.com/RocketChat/Rocket.Chat/pull/14178)) +- Remove dependency of RC namespace in rc-ui-clean-history, ui-admin and ui-login ([#13362](https://github.com/RocketChat/Rocket.Chat/pull/13362) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Lingohub sync and additional fixes ([#13825](https://github.com/RocketChat/Rocket.Chat/pull/13825)) +- Remove dependency of RC namespace in rc-ui, ui-account and ui-admin ([#13361](https://github.com/RocketChat/Rocket.Chat/pull/13361) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Merge master into develop & Set version to 1.0.0-develop ([#13435](https://github.com/RocketChat/Rocket.Chat/pull/13435) by [@Hudell](https://github.com/Hudell) & [@TkTech](https://github.com/TkTech) & [@theundefined](https://github.com/theundefined)) +- Remove dependency of RC namespace in rc-statistics and tokenpass ([#13359](https://github.com/RocketChat/Rocket.Chat/pull/13359) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move LDAP Escape to login handler ([#14234](https://github.com/RocketChat/Rocket.Chat/pull/14234)) +- Remove dependency of RC namespace in rc-smarsh-connector, sms and spotify ([#13358](https://github.com/RocketChat/Rocket.Chat/pull/13358) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move mongo config away from cors package ([#13531](https://github.com/RocketChat/Rocket.Chat/pull/13531)) +- Remove dependency of RC namespace in rc-slash-kick, leave, me, msg, mute, open, topic and unarchiveroom ([#13357](https://github.com/RocketChat/Rocket.Chat/pull/13357) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move rc-livechat server models to rc-models ([#13384](https://github.com/RocketChat/Rocket.Chat/pull/13384)) +- Remove dependency of RC namespace in rc-slash-archiveroom, create, help, hide, invite, inviteall and join ([#13356](https://github.com/RocketChat/Rocket.Chat/pull/13356) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- New threads layout ([#14269](https://github.com/RocketChat/Rocket.Chat/pull/14269)) +- Remove dependency of RC namespace in rc-setup-wizard, slackbridge and asciiarts ([#13348](https://github.com/RocketChat/Rocket.Chat/pull/13348) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- OpenShift custom OAuth support ([#13925](https://github.com/RocketChat/Rocket.Chat/pull/13925) by [@bsharrow](https://github.com/bsharrow)) +- Remove dependency of RC namespace in rc-reactions, retention-policy and search ([#13347](https://github.com/RocketChat/Rocket.Chat/pull/13347) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prevent click on reply thread to trigger flex tab closing ([#14215](https://github.com/RocketChat/Rocket.Chat/pull/14215)) +- Remove dependency of RC namespace in rc-oembed and rc-otr ([#13345](https://github.com/RocketChat/Rocket.Chat/pull/13345) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prevent error for ldap login with invalid characters ([#14160](https://github.com/RocketChat/Rocket.Chat/pull/14160)) +- Remove dependency of RC namespace in rc-oauth2-server and message-star ([#13344](https://github.com/RocketChat/Rocket.Chat/pull/13344) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prevent error on normalize thread message for preview ([#14170](https://github.com/RocketChat/Rocket.Chat/pull/14170)) +- Remove dependency of RC namespace in rc-message-pin and message-snippet ([#13343](https://github.com/RocketChat/Rocket.Chat/pull/13343) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prioritize user-mentions badge ([#14057](https://github.com/RocketChat/Rocket.Chat/pull/14057)) +- Depackaging ([#13483](https://github.com/RocketChat/Rocket.Chat/pull/13483) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Proper thread quote, clear message box on send, and other nice things to have ([#14049](https://github.com/RocketChat/Rocket.Chat/pull/14049)) +- Merge master into develop & Set version to 1.0.0-develop ([#13435](https://github.com/RocketChat/Rocket.Chat/pull/13435) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@TkTech](https://github.com/TkTech) & [@theundefined](https://github.com/theundefined)) -- Regression: Active room was not being marked ([#14276](https://github.com/RocketChat/Rocket.Chat/pull/14276)) +- Regression: Table admin pages ([#13411](https://github.com/RocketChat/Rocket.Chat/pull/13411)) -- Regression: Add debounce on admin users search to avoid blocking by DDP Rate Limiter ([#13529](https://github.com/RocketChat/Rocket.Chat/pull/13529)) +- Regression: Template error ([#13410](https://github.com/RocketChat/Rocket.Chat/pull/13410)) -- Regression: Add missing translations used in Apps pages ([#13674](https://github.com/RocketChat/Rocket.Chat/pull/13674)) +- Removed old templates ([#13406](https://github.com/RocketChat/Rocket.Chat/pull/13406)) -- Regression: Admin embedded layout ([#14229](https://github.com/RocketChat/Rocket.Chat/pull/14229)) +- Fix: Missing export in cloud package ([#13282](https://github.com/RocketChat/Rocket.Chat/pull/13282)) -- Regression: Broken UI for messages ([#14223](https://github.com/RocketChat/Rocket.Chat/pull/14223)) +- Add pagination to getUsersOfRoom ([#12834](https://github.com/RocketChat/Rocket.Chat/pull/12834) by [@Hudell](https://github.com/Hudell)) -- Regression: Cursor position set to beginning when editing a message ([#14245](https://github.com/RocketChat/Rocket.Chat/pull/14245)) +- OpenShift custom OAuth support ([#13925](https://github.com/RocketChat/Rocket.Chat/pull/13925) by [@bsharrow](https://github.com/bsharrow)) -- Regression: Discussions - Invite users and DM ([#13646](https://github.com/RocketChat/Rocket.Chat/pull/13646)) +- Settings: disable reset button ([#14026](https://github.com/RocketChat/Rocket.Chat/pull/14026)) -- Regression: Discussions were not showing on Tab Bar ([#14050](https://github.com/RocketChat/Rocket.Chat/pull/14050) by [@knrt10](https://github.com/knrt10)) +- Settings: hiding reset button for readonly fields ([#14025](https://github.com/RocketChat/Rocket.Chat/pull/14025)) -- Regression: Exception on notification when adding someone in room via mention ([#14251](https://github.com/RocketChat/Rocket.Chat/pull/14251)) +- Fix debug logging not being enabled by the setting ([#13979](https://github.com/RocketChat/Rocket.Chat/pull/13979)) -- Regression: fix app pages styles ([#13567](https://github.com/RocketChat/Rocket.Chat/pull/13567)) +- Deprecate /api/v1/info in favor of /api/info ([#13798](https://github.com/RocketChat/Rocket.Chat/pull/13798) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Fix autolinker that was not parsing urls correctly ([#13497](https://github.com/RocketChat/Rocket.Chat/pull/13497)) +- Change dynamic dependency of FileUpload in Messages models ([#13776](https://github.com/RocketChat/Rocket.Chat/pull/13776) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: fix drop file ([#14225](https://github.com/RocketChat/Rocket.Chat/pull/14225)) +- Allow set env var METEOR_OPLOG_TOO_FAR_BEHIND ([#14017](https://github.com/RocketChat/Rocket.Chat/pull/14017)) -- Regression: Fix embedded layout ([#13574](https://github.com/RocketChat/Rocket.Chat/pull/13574)) +- Improve: Decrease padding for app buy modal ([#13984](https://github.com/RocketChat/Rocket.Chat/pull/13984)) -- Regression: fix grouping for reactive message ([#14246](https://github.com/RocketChat/Rocket.Chat/pull/14246)) +- Prioritize user-mentions badge ([#14057](https://github.com/RocketChat/Rocket.Chat/pull/14057)) -- Regression: Fix icon for DMs ([#13679](https://github.com/RocketChat/Rocket.Chat/pull/13679)) +- Proper thread quote, clear message box on send, and other nice things to have ([#14049](https://github.com/RocketChat/Rocket.Chat/pull/14049)) -- Regression: Fix wrong imports in rc-models ([#13516](https://github.com/RocketChat/Rocket.Chat/pull/13516)) +- Fix: Tests were not exiting RC instances ([#14054](https://github.com/RocketChat/Rocket.Chat/pull/14054)) -- Regression: grouping messages on threads ([#14238](https://github.com/RocketChat/Rocket.Chat/pull/14238)) +- Fix shield indentation ([#14048](https://github.com/RocketChat/Rocket.Chat/pull/14048)) -- Regression: Message box does not go back to initial state after sending a message ([#14161](https://github.com/RocketChat/Rocket.Chat/pull/14161)) +- Fix modal scroll ([#14052](https://github.com/RocketChat/Rocket.Chat/pull/14052)) -- Regression: Message box geolocation was throwing error ([#13496](https://github.com/RocketChat/Rocket.Chat/pull/13496)) +- Fix race condition of lastMessage set ([#14041](https://github.com/RocketChat/Rocket.Chat/pull/14041)) -- Regression: Missing settings import at `packages/rocketchat-livechat/server/methods/saveAppearance.js` ([#13573](https://github.com/RocketChat/Rocket.Chat/pull/13573)) +- Fix room re-rendering ([#14044](https://github.com/RocketChat/Rocket.Chat/pull/14044)) -- Regression: Not updating subscriptions and not showing desktop notifcations ([#13509](https://github.com/RocketChat/Rocket.Chat/pull/13509)) +- Fix sending notifications to mentions on threads and discussion email sender ([#14043](https://github.com/RocketChat/Rocket.Chat/pull/14043)) -- Regression: Prevent startup errors for mentions parsing ([#14219](https://github.com/RocketChat/Rocket.Chat/pull/14219)) +- Fix discussions issues after room deletion and translation actions not being shown ([#14018](https://github.com/RocketChat/Rocket.Chat/pull/14018)) -- Regression: Prune Threads ([#13683](https://github.com/RocketChat/Rocket.Chat/pull/13683)) +- Show discussion avatar ([#14053](https://github.com/RocketChat/Rocket.Chat/pull/14053)) -- Regression: Remove border from unstyled message body ([#14235](https://github.com/RocketChat/Rocket.Chat/pull/14235)) +- Fix threads tests ([#14180](https://github.com/RocketChat/Rocket.Chat/pull/14180)) -- Regression: removed backup files ([#13729](https://github.com/RocketChat/Rocket.Chat/pull/13729)) +- Prevent error for ldap login with invalid characters ([#14160](https://github.com/RocketChat/Rocket.Chat/pull/14160)) -- Regression: Role creation and deletion error fixed ([#14097](https://github.com/RocketChat/Rocket.Chat/pull/14097) by [@knrt10](https://github.com/knrt10)) +- [REGRESSION] Messages sent by livechat's guests are losing sender info ([#14174](https://github.com/RocketChat/Rocket.Chat/pull/14174)) -- Regression: Sidebar create new channel hover text ([#13658](https://github.com/RocketChat/Rocket.Chat/pull/13658) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +- Faster CI build for PR ([#14171](https://github.com/RocketChat/Rocket.Chat/pull/14171)) -- Regression: System messages styling ([#14189](https://github.com/RocketChat/Rocket.Chat/pull/14189)) +- Regression: Message box does not go back to initial state after sending a message ([#14161](https://github.com/RocketChat/Rocket.Chat/pull/14161)) -- Regression: Table admin pages ([#13411](https://github.com/RocketChat/Rocket.Chat/pull/13411)) +- Prevent error on normalize thread message for preview ([#14170](https://github.com/RocketChat/Rocket.Chat/pull/14170)) -- Regression: Template error ([#13410](https://github.com/RocketChat/Rocket.Chat/pull/13410)) +- Update badges and mention links colors ([#14071](https://github.com/RocketChat/Rocket.Chat/pull/14071)) -- Regression: Threads styles improvement ([#13741](https://github.com/RocketChat/Rocket.Chat/pull/13741)) +- Smaller thread replies and system messages ([#14099](https://github.com/RocketChat/Rocket.Chat/pull/14099)) - Regression: User autocomplete was not listing users from correct room ([#14125](https://github.com/RocketChat/Rocket.Chat/pull/14125)) -- Regression: User Discussions join message ([#13656](https://github.com/RocketChat/Rocket.Chat/pull/13656) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +- Regression: Role creation and deletion error fixed ([#14097](https://github.com/RocketChat/Rocket.Chat/pull/14097) by [@knrt10](https://github.com/knrt10)) -- Regression: wrong expression at messageBox.actions.remove() ([#14192](https://github.com/RocketChat/Rocket.Chat/pull/14192)) +- [Regression] Fix integrations message example ([#14111](https://github.com/RocketChat/Rocket.Chat/pull/14111) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove bitcoin link in Readme.md since the link is broken ([#13935](https://github.com/RocketChat/Rocket.Chat/pull/13935)) +- Fix update apps capability of updating messages ([#14118](https://github.com/RocketChat/Rocket.Chat/pull/14118)) -- Remove dependency of RC namespace in rc-livechat/imports, lib, server/api, server/hooks and server/lib ([#13379](https://github.com/RocketChat/Rocket.Chat/pull/13379)) +- Fix: Skip thread notifications on message edit ([#14100](https://github.com/RocketChat/Rocket.Chat/pull/14100)) -- Remove dependency of RC namespace in rc-livechat/server/methods ([#13382](https://github.com/RocketChat/Rocket.Chat/pull/13382)) +- Fix: Remove message class `sequential` if `new-day` is present ([#14116](https://github.com/RocketChat/Rocket.Chat/pull/14116)) -- Remove dependency of RC namespace in rc-livechat/server/models ([#13377](https://github.com/RocketChat/Rocket.Chat/pull/13377)) +- Fix top bar unread message counter ([#14102](https://github.com/RocketChat/Rocket.Chat/pull/14102)) -- Remove dependency of RC namespace in rc-oauth2-server and message-star ([#13344](https://github.com/RocketChat/Rocket.Chat/pull/13344)) +- LingoHub based on develop ([#14046](https://github.com/RocketChat/Rocket.Chat/pull/14046)) -- Remove dependency of RC namespace in rc-setup-wizard, slackbridge and asciiarts ([#13348](https://github.com/RocketChat/Rocket.Chat/pull/13348)) +- Fix sending message from action buttons in messages ([#14101](https://github.com/RocketChat/Rocket.Chat/pull/14101)) -- Remove dependency of RC namespace in rc-slash-kick, leave, me, msg, mute, open, topic and unarchiveroom ([#13357](https://github.com/RocketChat/Rocket.Chat/pull/13357)) +- Fix: Error when version check endpoint was returning invalid data ([#14089](https://github.com/RocketChat/Rocket.Chat/pull/14089)) -- Remove dependency of RC namespace in rc-ui-clean-history, ui-admin and ui-login ([#13362](https://github.com/RocketChat/Rocket.Chat/pull/13362)) +- Wait port release to finish tests ([#14066](https://github.com/RocketChat/Rocket.Chat/pull/14066)) -- Remove dependency of RC namespace in rc-wordpress, chatpal-search and irc ([#13492](https://github.com/RocketChat/Rocket.Chat/pull/13492)) +- Fix threads rendering performance ([#14059](https://github.com/RocketChat/Rocket.Chat/pull/14059)) -- Remove dependency of RC namespace in root server folder - step 2 ([#13397](https://github.com/RocketChat/Rocket.Chat/pull/13397)) +- Unstuck observers every minute ([#14076](https://github.com/RocketChat/Rocket.Chat/pull/14076)) -- Remove dependency of RC namespace in root server folder - step 3 ([#13398](https://github.com/RocketChat/Rocket.Chat/pull/13398)) +- Fix messages losing thread titles on editing or reaction and improve message actions ([#14051](https://github.com/RocketChat/Rocket.Chat/pull/14051)) -- Remove dependency of RC namespace in root server folder - step 5 ([#13402](https://github.com/RocketChat/Rocket.Chat/pull/13402)) +- Improve message validation ([#14266](https://github.com/RocketChat/Rocket.Chat/pull/14266)) -- Remove dependency of RC namespace in root server folder - step 6 ([#13405](https://github.com/RocketChat/Rocket.Chat/pull/13405)) +- Added federation ping, loopback and dashboard ([#14007](https://github.com/RocketChat/Rocket.Chat/pull/14007)) -- Remove Npm.depends and Npm.require except those that are inside package.js ([#13518](https://github.com/RocketChat/Rocket.Chat/pull/13518)) +- Regression: Exception on notification when adding someone in room via mention ([#14251](https://github.com/RocketChat/Rocket.Chat/pull/14251)) -- Remove Package references ([#13523](https://github.com/RocketChat/Rocket.Chat/pull/13523)) +- Regression: fix grouping for reactive message ([#14246](https://github.com/RocketChat/Rocket.Chat/pull/14246)) -- Remove Sandstorm support ([#13773](https://github.com/RocketChat/Rocket.Chat/pull/13773)) +- Regression: Cursor position set to beginning when editing a message ([#14245](https://github.com/RocketChat/Rocket.Chat/pull/14245)) -- Remove some bad references to messageBox ([#13954](https://github.com/RocketChat/Rocket.Chat/pull/13954)) +- Regression: grouping messages on threads ([#14238](https://github.com/RocketChat/Rocket.Chat/pull/14238)) -- Remove some index.js files routing for server/client files ([#13772](https://github.com/RocketChat/Rocket.Chat/pull/13772)) +- Regression: Remove border from unstyled message body ([#14235](https://github.com/RocketChat/Rocket.Chat/pull/14235)) -- Remove unused files ([#13833](https://github.com/RocketChat/Rocket.Chat/pull/13833)) +- Move LDAP Escape to login handler ([#14234](https://github.com/RocketChat/Rocket.Chat/pull/14234)) -- Remove unused files ([#13725](https://github.com/RocketChat/Rocket.Chat/pull/13725)) +- [Regression] Personal Access Token list fixed ([#14216](https://github.com/RocketChat/Rocket.Chat/pull/14216) by [@knrt10](https://github.com/knrt10)) -- Remove unused style ([#13834](https://github.com/RocketChat/Rocket.Chat/pull/13834)) +- ESLint: Add more import rules ([#14226](https://github.com/RocketChat/Rocket.Chat/pull/14226)) -- Removed old templates ([#13406](https://github.com/RocketChat/Rocket.Chat/pull/13406)) +- Regression: fix drop file ([#14225](https://github.com/RocketChat/Rocket.Chat/pull/14225)) -- Removing (almost) every dynamic imports ([#13767](https://github.com/RocketChat/Rocket.Chat/pull/13767)) +- Broken styles in Administration's contextual bar ([#14222](https://github.com/RocketChat/Rocket.Chat/pull/14222)) -- Rename Cloud to Connectivity Services & split Apps in Apps and Marketplace ([#14211](https://github.com/RocketChat/Rocket.Chat/pull/14211)) +- Regression: Broken UI for messages ([#14223](https://github.com/RocketChat/Rocket.Chat/pull/14223)) -- Rename Threads to Discussion ([#13782](https://github.com/RocketChat/Rocket.Chat/pull/13782)) +- Exit process on unhandled rejection ([#14220](https://github.com/RocketChat/Rocket.Chat/pull/14220)) -- Settings: disable reset button ([#14026](https://github.com/RocketChat/Rocket.Chat/pull/14026)) +- Unify mime-type package configuration ([#14217](https://github.com/RocketChat/Rocket.Chat/pull/14217)) -- Settings: hiding reset button for readonly fields ([#14025](https://github.com/RocketChat/Rocket.Chat/pull/14025)) +- Regression: Prevent startup errors for mentions parsing ([#14219](https://github.com/RocketChat/Rocket.Chat/pull/14219)) -- Show discussion avatar ([#14053](https://github.com/RocketChat/Rocket.Chat/pull/14053)) +- Regression: System messages styling ([#14189](https://github.com/RocketChat/Rocket.Chat/pull/14189)) -- Small improvements to federation callbacks/hooks ([#13946](https://github.com/RocketChat/Rocket.Chat/pull/13946)) +- Prevent click on reply thread to trigger flex tab closing ([#14215](https://github.com/RocketChat/Rocket.Chat/pull/14215)) -- Smaller thread replies and system messages ([#14099](https://github.com/RocketChat/Rocket.Chat/pull/14099)) +- created function to allow change default values, fix loading search users ([#14177](https://github.com/RocketChat/Rocket.Chat/pull/14177)) -- Unify mime-type package configuration ([#14217](https://github.com/RocketChat/Rocket.Chat/pull/14217)) +- Use main message as thread tab title ([#14213](https://github.com/RocketChat/Rocket.Chat/pull/14213)) -- Unstuck observers every minute ([#14076](https://github.com/RocketChat/Rocket.Chat/pull/14076)) +- Use own logic to get thread infos via REST ([#14210](https://github.com/RocketChat/Rocket.Chat/pull/14210) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update badges and mention links colors ([#14071](https://github.com/RocketChat/Rocket.Chat/pull/14071)) +- Regression: wrong expression at messageBox.actions.remove() ([#14192](https://github.com/RocketChat/Rocket.Chat/pull/14192)) -- Update eslint config ([#13966](https://github.com/RocketChat/Rocket.Chat/pull/13966)) +- Increment user counter on DMs ([#14185](https://github.com/RocketChat/Rocket.Chat/pull/14185)) -- Update husky config ([#13687](https://github.com/RocketChat/Rocket.Chat/pull/13687)) +- [REGRESSION] Fix variable name references in message template ([#14184](https://github.com/RocketChat/Rocket.Chat/pull/14184)) -- Update Meteor 1.8.0.2 ([#13519](https://github.com/RocketChat/Rocket.Chat/pull/13519)) +- Regression: Active room was not being marked ([#14276](https://github.com/RocketChat/Rocket.Chat/pull/14276)) -- Update preview Dockerfile to use Stretch dependencies ([#13947](https://github.com/RocketChat/Rocket.Chat/pull/13947)) +- Rename Cloud to Connectivity Services & split Apps in Apps and Marketplace ([#14211](https://github.com/RocketChat/Rocket.Chat/pull/14211)) -- Use CircleCI Debian Stretch images ([#13906](https://github.com/RocketChat/Rocket.Chat/pull/13906)) +- LingoHub based on develop ([#14178](https://github.com/RocketChat/Rocket.Chat/pull/14178)) -- Use main message as thread tab title ([#14213](https://github.com/RocketChat/Rocket.Chat/pull/14213)) +- Regression: Discussions were not showing on Tab Bar ([#14050](https://github.com/RocketChat/Rocket.Chat/pull/14050) by [@knrt10](https://github.com/knrt10)) -- Use own logic to get thread infos via REST ([#14210](https://github.com/RocketChat/Rocket.Chat/pull/14210)) +- Force unstyling of blockquote under .message-body--unstyled ([#14274](https://github.com/RocketChat/Rocket.Chat/pull/14274)) -- User remove role dialog fixed ([#13874](https://github.com/RocketChat/Rocket.Chat/pull/13874) by [@bhardwajaditya](https://github.com/bhardwajaditya)) +- Regression: Admin embedded layout ([#14229](https://github.com/RocketChat/Rocket.Chat/pull/14229)) -- Wait port release to finish tests ([#14066](https://github.com/RocketChat/Rocket.Chat/pull/14066)) +- New threads layout ([#14269](https://github.com/RocketChat/Rocket.Chat/pull/14269)) + +- Improve: Marketplace auth inside Rocket.Chat instead of inside the iframe. ([#14258](https://github.com/RocketChat/Rocket.Chat/pull/14258)) + +- [New] Reply privately to group messages ([#14150](https://github.com/RocketChat/Rocket.Chat/pull/14150) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@bhardwajaditya](https://github.com/bhardwajaditya))
@@ -5689,6 +5993,7 @@ - [@DeviaVir](https://github.com/DeviaVir) - [@Hudell](https://github.com/Hudell) - [@Kailash0311](https://github.com/Kailash0311) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MohammedEssehemy](https://github.com/MohammedEssehemy) - [@Montel](https://github.com/Montel) - [@Mr-Linus](https://github.com/Mr-Linus) @@ -5736,7 +6041,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@alansikora](https://github.com/alansikora) - [@ashwaniYDV](https://github.com/ashwaniYDV) - [@d-gubert](https://github.com/d-gubert) @@ -5761,47 +6065,47 @@ ### 🚀 Improvements -- Add API option "permissionsRequired" ([#13430](https://github.com/RocketChat/Rocket.Chat/pull/13430)) +- Open rooms quicker ([#13417](https://github.com/RocketChat/Rocket.Chat/pull/13417)) - Allow configure Prometheus port per process via Environment Variable ([#13436](https://github.com/RocketChat/Rocket.Chat/pull/13436)) -- Open rooms quicker ([#13417](https://github.com/RocketChat/Rocket.Chat/pull/13417)) +- Add API option "permissionsRequired" ([#13430](https://github.com/RocketChat/Rocket.Chat/pull/13430)) ### 🐛 Bug fixes -- "Test Desktop Notifications" not triggering a notification ([#13457](https://github.com/RocketChat/Rocket.Chat/pull/13457)) - - Invalid condition on getting next livechat agent over REST API endpoint ([#13360](https://github.com/RocketChat/Rocket.Chat/pull/13360)) -- Invalid push gateway configuration, requires the uniqueId ([#13423](https://github.com/RocketChat/Rocket.Chat/pull/13423)) +- "Test Desktop Notifications" not triggering a notification ([#13457](https://github.com/RocketChat/Rocket.Chat/pull/13457)) -- Misaligned upload progress bar "cancel" button ([#13407](https://github.com/RocketChat/Rocket.Chat/pull/13407)) +- Translated and incorrect i18n variables ([#13463](https://github.com/RocketChat/Rocket.Chat/pull/13463) by [@leonboot](https://github.com/leonboot)) + +- Properly escape custom emoji names for pattern matching ([#13408](https://github.com/RocketChat/Rocket.Chat/pull/13408)) - Not translated emails ([#13452](https://github.com/RocketChat/Rocket.Chat/pull/13452)) -- Notify private settings changes even on public settings changed ([#13369](https://github.com/RocketChat/Rocket.Chat/pull/13369)) +- XML-decryption module not found ([#13437](https://github.com/RocketChat/Rocket.Chat/pull/13437) by [@Hudell](https://github.com/Hudell)) -- Properly escape custom emoji names for pattern matching ([#13408](https://github.com/RocketChat/Rocket.Chat/pull/13408)) +- Update Russian localization ([#13244](https://github.com/RocketChat/Rocket.Chat/pull/13244) by [@BehindLoader](https://github.com/BehindLoader)) - Several Problems on HipChat Importer ([#13336](https://github.com/RocketChat/Rocket.Chat/pull/13336) by [@Hudell](https://github.com/Hudell)) -- Translated and incorrect i18n variables ([#13463](https://github.com/RocketChat/Rocket.Chat/pull/13463) by [@leonboot](https://github.com/leonboot)) +- Invalid push gateway configuration, requires the uniqueId ([#13423](https://github.com/RocketChat/Rocket.Chat/pull/13423)) -- Update Russian localization ([#13244](https://github.com/RocketChat/Rocket.Chat/pull/13244) by [@BehindLoader](https://github.com/BehindLoader)) +- Notify private settings changes even on public settings changed ([#13369](https://github.com/RocketChat/Rocket.Chat/pull/13369)) -- XML-decryption module not found ([#13437](https://github.com/RocketChat/Rocket.Chat/pull/13437) by [@Hudell](https://github.com/Hudell)) +- Misaligned upload progress bar "cancel" button ([#13407](https://github.com/RocketChat/Rocket.Chat/pull/13407))
🔍 Minor changes -- Regression: Remove console.log on email translations ([#13456](https://github.com/RocketChat/Rocket.Chat/pull/13456)) - - Release 0.74.3 ([#13474](https://github.com/RocketChat/Rocket.Chat/pull/13474) by [@BehindLoader](https://github.com/BehindLoader) & [@Hudell](https://github.com/Hudell) & [@leonboot](https://github.com/leonboot)) - Room loading improvements ([#13471](https://github.com/RocketChat/Rocket.Chat/pull/13471)) +- Regression: Remove console.log on email translations ([#13456](https://github.com/RocketChat/Rocket.Chat/pull/13456)) +
### 👩‍💻👨‍💻 Contributors 😍 @@ -5835,12 +6139,12 @@ ### 🐛 Bug fixes -- Pass token for cloud register ([#13350](https://github.com/RocketChat/Rocket.Chat/pull/13350)) - - Rate Limiter was limiting communication between instances ([#13326](https://github.com/RocketChat/Rocket.Chat/pull/13326)) - Setup wizard calling 'saveSetting' for each field/setting ([#13349](https://github.com/RocketChat/Rocket.Chat/pull/13349)) +- Pass token for cloud register ([#13350](https://github.com/RocketChat/Rocket.Chat/pull/13350)) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -5859,30 +6163,30 @@ ### 🎉 New features -- Add parseUrls field to the apps message converter ([#13248](https://github.com/RocketChat/Rocket.Chat/pull/13248)) - -- Collect data for Monthly/Daily Active Users for a future dashboard ([#11525](https://github.com/RocketChat/Rocket.Chat/pull/11525)) - - Limit all DDP/Websocket requests (configurable via admin panel) ([#13311](https://github.com/RocketChat/Rocket.Chat/pull/13311)) - REST endpoint to forward livechat rooms ([#13308](https://github.com/RocketChat/Rocket.Chat/pull/13308)) -### 🐛 Bug fixes +- Collect data for Monthly/Daily Active Users for a future dashboard ([#11525](https://github.com/RocketChat/Rocket.Chat/pull/11525)) + +- Add parseUrls field to the apps message converter ([#13248](https://github.com/RocketChat/Rocket.Chat/pull/13248)) +### 🐛 Bug fixes -- Fix bug when user try recreate channel or group with same name and remove room from cache when user leaves room ([#12341](https://github.com/RocketChat/Rocket.Chat/pull/12341)) -- HipChat Enterprise importer fails when importing a large amount of messages (millions) ([#13221](https://github.com/RocketChat/Rocket.Chat/pull/13221) by [@Hudell](https://github.com/Hudell)) +- Mobile view and re-enable E2E tests ([#13322](https://github.com/RocketChat/Rocket.Chat/pull/13322)) - Hipchat Enterprise Importer not generating subscriptions ([#13293](https://github.com/RocketChat/Rocket.Chat/pull/13293) by [@Hudell](https://github.com/Hudell)) - Message updating by Apps ([#13294](https://github.com/RocketChat/Rocket.Chat/pull/13294)) -- Mobile view and re-enable E2E tests ([#13322](https://github.com/RocketChat/Rocket.Chat/pull/13322)) +- REST endpoint for creating custom emojis ([#13306](https://github.com/RocketChat/Rocket.Chat/pull/13306)) - Preview of image uploads were not working when apps framework is enable ([#13303](https://github.com/RocketChat/Rocket.Chat/pull/13303)) -- REST endpoint for creating custom emojis ([#13306](https://github.com/RocketChat/Rocket.Chat/pull/13306)) +- HipChat Enterprise importer fails when importing a large amount of messages (millions) ([#13221](https://github.com/RocketChat/Rocket.Chat/pull/13221) by [@Hudell](https://github.com/Hudell)) + +- Fix bug when user try recreate channel or group with same name and remove room from cache when user leaves room ([#12341](https://github.com/RocketChat/Rocket.Chat/pull/12341) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
🔍 Minor changes @@ -5895,10 +6199,10 @@ ### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@renatobecker](https://github.com/renatobecker) @@ -5917,161 +6221,161 @@ ### 🎉 New features -- Add Allow Methods directive to CORS ([#13073](https://github.com/RocketChat/Rocket.Chat/pull/13073)) +- SAML: Adds possibility to decrypt encrypted assertions ([#12153](https://github.com/RocketChat/Rocket.Chat/pull/12153) by [@gerbsen](https://github.com/gerbsen)) -- Add create, update and delete endpoint for custom emojis ([#13160](https://github.com/RocketChat/Rocket.Chat/pull/13160)) +- Add rate limiter to REST endpoints ([#11251](https://github.com/RocketChat/Rocket.Chat/pull/11251) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add new Livechat REST endpoint to update the visitor's status ([#13108](https://github.com/RocketChat/Rocket.Chat/pull/13108)) +- Added an option to disable email when activate and deactivate users ([#13183](https://github.com/RocketChat/Rocket.Chat/pull/13183) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add rate limiter to REST endpoints ([#11251](https://github.com/RocketChat/Rocket.Chat/pull/11251)) +- Add create, update and delete endpoint for custom emojis ([#13160](https://github.com/RocketChat/Rocket.Chat/pull/13160) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Added an option to disable email when activate and deactivate users ([#13183](https://github.com/RocketChat/Rocket.Chat/pull/13183)) +- Added endpoint to update timeout of the jitsi video conference ([#13167](https://github.com/RocketChat/Rocket.Chat/pull/13167) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Added endpoint to update timeout of the jitsi video conference ([#13167](https://github.com/RocketChat/Rocket.Chat/pull/13167)) +- Display total number of files and total upload size in admin ([#13184](https://github.com/RocketChat/Rocket.Chat/pull/13184)) -- Added stream to notify when agent status change ([#13076](https://github.com/RocketChat/Rocket.Chat/pull/13076)) +- Livechat GDPR compliance ([#12982](https://github.com/RocketChat/Rocket.Chat/pull/12982)) -- Cloud Integration ([#13013](https://github.com/RocketChat/Rocket.Chat/pull/13013)) +- Added stream to notify when agent status change ([#13076](https://github.com/RocketChat/Rocket.Chat/pull/13076) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Display total number of files and total upload size in admin ([#13184](https://github.com/RocketChat/Rocket.Chat/pull/13184)) +- Add new Livechat REST endpoint to update the visitor's status ([#13108](https://github.com/RocketChat/Rocket.Chat/pull/13108)) -- Livechat GDPR compliance ([#12982](https://github.com/RocketChat/Rocket.Chat/pull/12982)) +- Add Allow Methods directive to CORS ([#13073](https://github.com/RocketChat/Rocket.Chat/pull/13073) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- SAML: Adds possibility to decrypt encrypted assertions ([#12153](https://github.com/RocketChat/Rocket.Chat/pull/12153) by [@gerbsen](https://github.com/gerbsen)) +- Cloud Integration ([#13013](https://github.com/RocketChat/Rocket.Chat/pull/13013)) ### 🚀 Improvements -- Add "Apps Engine Version" to Administration > Info ([#13169](https://github.com/RocketChat/Rocket.Chat/pull/13169)) - -- Adds history log for all Importers and improves HipChat import performance ([#13083](https://github.com/RocketChat/Rocket.Chat/pull/13083) by [@Hudell](https://github.com/Hudell)) +- Dutch translations ([#12294](https://github.com/RocketChat/Rocket.Chat/pull/12294) by [@Jeroeny](https://github.com/Jeroeny)) -- Adds the "showConnecting" property to Livechat Config payload ([#13158](https://github.com/RocketChat/Rocket.Chat/pull/13158)) +- Persian translations ([#13114](https://github.com/RocketChat/Rocket.Chat/pull/13114) by [@behnejad](https://github.com/behnejad)) - Change the way the app detail screen shows support link when it's an email ([#13129](https://github.com/RocketChat/Rocket.Chat/pull/13129)) -- Dutch translations ([#12294](https://github.com/RocketChat/Rocket.Chat/pull/12294) by [@Jeroeny](https://github.com/Jeroeny)) +- Process alerts from update checking ([#13194](https://github.com/RocketChat/Rocket.Chat/pull/13194)) -- Inject metrics on callbacks ([#13266](https://github.com/RocketChat/Rocket.Chat/pull/13266)) +- Add "Apps Engine Version" to Administration > Info ([#13169](https://github.com/RocketChat/Rocket.Chat/pull/13169)) - New Livechat statistics added to statistics collector ([#13168](https://github.com/RocketChat/Rocket.Chat/pull/13168)) -- Persian translations ([#13114](https://github.com/RocketChat/Rocket.Chat/pull/13114) by [@behnejad](https://github.com/behnejad)) +- Return room type field on Livechat findRoom method ([#13078](https://github.com/RocketChat/Rocket.Chat/pull/13078)) -- Process alerts from update checking ([#13194](https://github.com/RocketChat/Rocket.Chat/pull/13194)) +- Return visitorEmails field on Livechat findGuest method ([#13097](https://github.com/RocketChat/Rocket.Chat/pull/13097) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Return room type field on Livechat findRoom method ([#13078](https://github.com/RocketChat/Rocket.Chat/pull/13078)) +- Adds the "showConnecting" property to Livechat Config payload ([#13158](https://github.com/RocketChat/Rocket.Chat/pull/13158)) + +- Adds history log for all Importers and improves HipChat import performance ([#13083](https://github.com/RocketChat/Rocket.Chat/pull/13083) by [@Hudell](https://github.com/Hudell)) -- Return visitorEmails field on Livechat findGuest method ([#13097](https://github.com/RocketChat/Rocket.Chat/pull/13097)) +- Inject metrics on callbacks ([#13266](https://github.com/RocketChat/Rocket.Chat/pull/13266)) ### 🐛 Bug fixes -- #11692 - Suppress error when drop collection in migration to suit to … ([#13091](https://github.com/RocketChat/Rocket.Chat/pull/13091) by [@Xuhao](https://github.com/Xuhao)) +- Update Message: Does not show edited when message was not edited. ([#13053](https://github.com/RocketChat/Rocket.Chat/pull/13053) by [@Kailash0311](https://github.com/Kailash0311)) -- Avatars with transparency were being converted to black ([#13181](https://github.com/RocketChat/Rocket.Chat/pull/13181)) +- Notifications for mentions not working on large rooms and don't emit desktop notifications for offline users ([#13067](https://github.com/RocketChat/Rocket.Chat/pull/13067)) -- Change input type of e2e to password ([#13077](https://github.com/RocketChat/Rocket.Chat/pull/13077) by [@supra08](https://github.com/supra08)) +- Emoticons not displayed in room topic ([#12858](https://github.com/RocketChat/Rocket.Chat/pull/12858) by [@alexbartsch](https://github.com/alexbartsch)) -- Change webdav creation, due to changes in the npm lib after last update ([#13170](https://github.com/RocketChat/Rocket.Chat/pull/13170)) +- REST API endpoint `users.getPersonalAccessTokens` error when user has no access tokens ([#13150](https://github.com/RocketChat/Rocket.Chat/pull/13150) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Emoticons not displayed in room topic ([#12858](https://github.com/RocketChat/Rocket.Chat/pull/12858) by [@alexbartsch](https://github.com/alexbartsch)) +- Remove unused code for Cordova ([#13188](https://github.com/RocketChat/Rocket.Chat/pull/13188)) -- Invite command was not accpeting @ in username ([#12927](https://github.com/RocketChat/Rocket.Chat/pull/12927) by [@piotrkochan](https://github.com/piotrkochan)) +- Avatars with transparency were being converted to black ([#13181](https://github.com/RocketChat/Rocket.Chat/pull/13181)) -- LDAP login of new users overwriting `fname` from all subscriptions ([#13203](https://github.com/RocketChat/Rocket.Chat/pull/13203)) +- REST api client base url on subdir ([#13180](https://github.com/RocketChat/Rocket.Chat/pull/13180)) -- Notifications for mentions not working on large rooms and don't emit desktop notifications for offline users ([#13067](https://github.com/RocketChat/Rocket.Chat/pull/13067)) +- Change webdav creation, due to changes in the npm lib after last update ([#13170](https://github.com/RocketChat/Rocket.Chat/pull/13170) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove ES6 code from Livechat widget script ([#13105](https://github.com/RocketChat/Rocket.Chat/pull/13105)) +- Invite command was not accpeting @ in username ([#12927](https://github.com/RocketChat/Rocket.Chat/pull/12927) by [@piotrkochan](https://github.com/piotrkochan)) -- Remove unused code for Cordova ([#13188](https://github.com/RocketChat/Rocket.Chat/pull/13188)) +- Remove ES6 code from Livechat widget script ([#13105](https://github.com/RocketChat/Rocket.Chat/pull/13105)) -- REST api client base url on subdir ([#13180](https://github.com/RocketChat/Rocket.Chat/pull/13180)) +- User status on header and user info are not translated ([#13096](https://github.com/RocketChat/Rocket.Chat/pull/13096)) -- REST API endpoint `users.getPersonalAccessTokens` error when user has no access tokens ([#13150](https://github.com/RocketChat/Rocket.Chat/pull/13150)) +- #11692 - Suppress error when drop collection in migration to suit to … ([#13091](https://github.com/RocketChat/Rocket.Chat/pull/13091) by [@Xuhao](https://github.com/Xuhao)) -- Snap upgrade add post-refresh hook ([#13153](https://github.com/RocketChat/Rocket.Chat/pull/13153)) +- Change input type of e2e to password ([#13077](https://github.com/RocketChat/Rocket.Chat/pull/13077) by [@supra08](https://github.com/supra08)) -- Update Message: Does not show edited when message was not edited. ([#13053](https://github.com/RocketChat/Rocket.Chat/pull/13053) by [@Kailash0311](https://github.com/Kailash0311)) +- LDAP login of new users overwriting `fname` from all subscriptions ([#13203](https://github.com/RocketChat/Rocket.Chat/pull/13203)) -- User status on header and user info are not translated ([#13096](https://github.com/RocketChat/Rocket.Chat/pull/13096)) +- Snap upgrade add post-refresh hook ([#13153](https://github.com/RocketChat/Rocket.Chat/pull/13153))
🔍 Minor changes -- Remove dependency of RocketChat namespace and push-notifications ([#13137](https://github.com/RocketChat/Rocket.Chat/pull/13137)) +- Release 0.74.0 ([#13270](https://github.com/RocketChat/Rocket.Chat/pull/13270) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@Xuhao](https://github.com/Xuhao) & [@supra08](https://github.com/supra08)) -- Change apps engine persistence bridge method to updateByAssociations ([#13239](https://github.com/RocketChat/Rocket.Chat/pull/13239)) +- LingoHub based on develop ([#13201](https://github.com/RocketChat/Rocket.Chat/pull/13201)) -- Convert rocketchat-file-upload to main module structure ([#13094](https://github.com/RocketChat/Rocket.Chat/pull/13094)) +- Language: Edit typo "Обновлить" ([#13177](https://github.com/RocketChat/Rocket.Chat/pull/13177) by [@zpavlig](https://github.com/zpavlig)) -- Convert rocketchat-ui-master to main module structure ([#13107](https://github.com/RocketChat/Rocket.Chat/pull/13107)) +- Regression: Fix export AudioRecorder ([#13192](https://github.com/RocketChat/Rocket.Chat/pull/13192) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-sidenav to main module structure ([#13098](https://github.com/RocketChat/Rocket.Chat/pull/13098)) +- Remove dependency of RocketChat namespace and push-notifications ([#13137](https://github.com/RocketChat/Rocket.Chat/pull/13137) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-webrtc to main module structure ([#13117](https://github.com/RocketChat/Rocket.Chat/pull/13117)) +- Remove dependency of RocketChat namespace and custom-sounds ([#13136](https://github.com/RocketChat/Rocket.Chat/pull/13136) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat:ui to main module structure ([#13132](https://github.com/RocketChat/Rocket.Chat/pull/13132)) +- Remove dependency of RocketChat namespace and logger ([#13135](https://github.com/RocketChat/Rocket.Chat/pull/13135) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Globals/main module custom oauth ([#13037](https://github.com/RocketChat/Rocket.Chat/pull/13037)) +- Remove dependency between RocketChat namespace and migrations ([#13133](https://github.com/RocketChat/Rocket.Chat/pull/13133) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Globals/move rocketchat notifications ([#13035](https://github.com/RocketChat/Rocket.Chat/pull/13035)) +- Convert rocketchat:ui to main module structure ([#13132](https://github.com/RocketChat/Rocket.Chat/pull/13132) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Language: Edit typo "Обновлить" ([#13177](https://github.com/RocketChat/Rocket.Chat/pull/13177) by [@zpavlig](https://github.com/zpavlig)) +- Remove dependency of RocketChat namespace inside rocketchat:ui ([#13131](https://github.com/RocketChat/Rocket.Chat/pull/13131) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13201](https://github.com/RocketChat/Rocket.Chat/pull/13201)) +- Move some ui function to ui-utils ([#13123](https://github.com/RocketChat/Rocket.Chat/pull/13123) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Merge master into develop & Set version to 0.74.0-develop ([#13050](https://github.com/RocketChat/Rocket.Chat/pull/13050) by [@Hudell](https://github.com/Hudell) & [@ohmonster](https://github.com/ohmonster) & [@piotrkochan](https://github.com/piotrkochan)) +- Regression: fix upload permissions ([#13157](https://github.com/RocketChat/Rocket.Chat/pull/13157)) -- Move rocketchat models ([#13027](https://github.com/RocketChat/Rocket.Chat/pull/13027)) +- Move some function to utils ([#13122](https://github.com/RocketChat/Rocket.Chat/pull/13122) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move rocketchat promises ([#13039](https://github.com/RocketChat/Rocket.Chat/pull/13039)) +- Remove directly dependency between rocketchat:lib and emoji ([#13118](https://github.com/RocketChat/Rocket.Chat/pull/13118) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move rocketchat settings to specific package ([#13026](https://github.com/RocketChat/Rocket.Chat/pull/13026)) +- Convert rocketchat-webrtc to main module structure ([#13117](https://github.com/RocketChat/Rocket.Chat/pull/13117) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move some function to utils ([#13122](https://github.com/RocketChat/Rocket.Chat/pull/13122)) +- Remove directly dependency between lib and e2e ([#13115](https://github.com/RocketChat/Rocket.Chat/pull/13115) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move some ui function to ui-utils ([#13123](https://github.com/RocketChat/Rocket.Chat/pull/13123)) +- Convert rocketchat-ui-master to main module structure ([#13107](https://github.com/RocketChat/Rocket.Chat/pull/13107) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move UI Collections to rocketchat:models ([#13064](https://github.com/RocketChat/Rocket.Chat/pull/13064)) +- Regression: fix rooms model's collection name ([#13146](https://github.com/RocketChat/Rocket.Chat/pull/13146)) -- Move/create rocketchat callbacks ([#13034](https://github.com/RocketChat/Rocket.Chat/pull/13034)) +- Convert rocketchat-ui-sidenav to main module structure ([#13098](https://github.com/RocketChat/Rocket.Chat/pull/13098) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move/create rocketchat metrics ([#13032](https://github.com/RocketChat/Rocket.Chat/pull/13032)) +- Convert rocketchat-file-upload to main module structure ([#13094](https://github.com/RocketChat/Rocket.Chat/pull/13094) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Fix audio message upload ([#13224](https://github.com/RocketChat/Rocket.Chat/pull/13224)) +- Remove dependency between lib and authz ([#13066](https://github.com/RocketChat/Rocket.Chat/pull/13066) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Fix emoji search ([#13207](https://github.com/RocketChat/Rocket.Chat/pull/13207)) +- Globals/main module custom oauth ([#13037](https://github.com/RocketChat/Rocket.Chat/pull/13037) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Fix export AudioRecorder ([#13192](https://github.com/RocketChat/Rocket.Chat/pull/13192)) +- Move UI Collections to rocketchat:models ([#13064](https://github.com/RocketChat/Rocket.Chat/pull/13064) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: fix rooms model's collection name ([#13146](https://github.com/RocketChat/Rocket.Chat/pull/13146)) +- Rocketchat mailer ([#13036](https://github.com/RocketChat/Rocket.Chat/pull/13036) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: fix upload permissions ([#13157](https://github.com/RocketChat/Rocket.Chat/pull/13157)) +- Move rocketchat promises ([#13039](https://github.com/RocketChat/Rocket.Chat/pull/13039) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 0.74.0 ([#13270](https://github.com/RocketChat/Rocket.Chat/pull/13270) by [@Xuhao](https://github.com/Xuhao) & [@supra08](https://github.com/supra08)) +- Globals/move rocketchat notifications ([#13035](https://github.com/RocketChat/Rocket.Chat/pull/13035) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove dependency between lib and authz ([#13066](https://github.com/RocketChat/Rocket.Chat/pull/13066)) +- Test only MongoDB with oplog versions 3.2 and 4.0 for PRs ([#13119](https://github.com/RocketChat/Rocket.Chat/pull/13119)) -- Remove dependency between RocketChat namespace and migrations ([#13133](https://github.com/RocketChat/Rocket.Chat/pull/13133)) +- Move/create rocketchat callbacks ([#13034](https://github.com/RocketChat/Rocket.Chat/pull/13034) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove dependency of RocketChat namespace and custom-sounds ([#13136](https://github.com/RocketChat/Rocket.Chat/pull/13136)) +- Move/create rocketchat metrics ([#13032](https://github.com/RocketChat/Rocket.Chat/pull/13032) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove dependency of RocketChat namespace and logger ([#13135](https://github.com/RocketChat/Rocket.Chat/pull/13135)) +- Move rocketchat models ([#13027](https://github.com/RocketChat/Rocket.Chat/pull/13027) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove dependency of RocketChat namespace inside rocketchat:ui ([#13131](https://github.com/RocketChat/Rocket.Chat/pull/13131)) +- Move rocketchat settings to specific package ([#13026](https://github.com/RocketChat/Rocket.Chat/pull/13026) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove directly dependency between lib and e2e ([#13115](https://github.com/RocketChat/Rocket.Chat/pull/13115)) +- Remove incorrect pt-BR translation ([#13074](https://github.com/RocketChat/Rocket.Chat/pull/13074)) -- Remove directly dependency between rocketchat:lib and emoji ([#13118](https://github.com/RocketChat/Rocket.Chat/pull/13118)) +- Merge master into develop & Set version to 0.74.0-develop ([#13050](https://github.com/RocketChat/Rocket.Chat/pull/13050) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@ohmonster](https://github.com/ohmonster) & [@piotrkochan](https://github.com/piotrkochan)) -- Remove incorrect pt-BR translation ([#13074](https://github.com/RocketChat/Rocket.Chat/pull/13074)) +- Regression: Fix audio message upload ([#13224](https://github.com/RocketChat/Rocket.Chat/pull/13224)) -- Rocketchat mailer ([#13036](https://github.com/RocketChat/Rocket.Chat/pull/13036)) +- Regression: Fix emoji search ([#13207](https://github.com/RocketChat/Rocket.Chat/pull/13207)) -- Test only MongoDB with oplog versions 3.2 and 4.0 for PRs ([#13119](https://github.com/RocketChat/Rocket.Chat/pull/13119)) +- Change apps engine persistence bridge method to updateByAssociations ([#13239](https://github.com/RocketChat/Rocket.Chat/pull/13239))
@@ -6080,6 +6384,7 @@ - [@Hudell](https://github.com/Hudell) - [@Jeroeny](https://github.com/Jeroeny) - [@Kailash0311](https://github.com/Kailash0311) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Xuhao](https://github.com/Xuhao) - [@alexbartsch](https://github.com/alexbartsch) - [@behnejad](https://github.com/behnejad) @@ -6092,7 +6397,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -6147,12 +6451,12 @@ 🔍 Minor changes +- Release 0.73.1 ([#13052](https://github.com/RocketChat/Rocket.Chat/pull/13052)) + - Execute tests with versions 3.2, 3.4, 3.6 and 4.0 of MongoDB ([#13049](https://github.com/RocketChat/Rocket.Chat/pull/13049)) - Regression: Get room's members list not working on MongoDB 3.2 ([#13051](https://github.com/RocketChat/Rocket.Chat/pull/13051)) -- Release 0.73.1 ([#13052](https://github.com/RocketChat/Rocket.Chat/pull/13052)) -
### 👩‍💻👨‍💻 Core Team 🤓 @@ -6175,547 +6479,547 @@ ### 🎉 New features -- /api/v1/spotlight: return joinCodeRequired field for rooms ([#12651](https://github.com/RocketChat/Rocket.Chat/pull/12651) by [@cardoso](https://github.com/cardoso)) +- Create new permission.listAll endpoint to be able to use updatedSince parameter ([#12748](https://github.com/RocketChat/Rocket.Chat/pull/12748) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add permission to enable personal access token to specific roles ([#12309](https://github.com/RocketChat/Rocket.Chat/pull/12309)) +- Mandatory 2fa for role ([#9748](https://github.com/RocketChat/Rocket.Chat/pull/9748) by [@Hudell](https://github.com/Hudell) & [@karlprieb](https://github.com/karlprieb)) -- Add query parameter support to emoji-custom endpoint ([#12754](https://github.com/RocketChat/Rocket.Chat/pull/12754)) +- Add query parameter support to emoji-custom endpoint ([#12754](https://github.com/RocketChat/Rocket.Chat/pull/12754) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Added a link to contributing.md ([#12856](https://github.com/RocketChat/Rocket.Chat/pull/12856) by [@sanketsingh24](https://github.com/sanketsingh24)) -- Added chat.getDeletedMessages since specific date ([#13010](https://github.com/RocketChat/Rocket.Chat/pull/13010)) - -- Config hooks for snap ([#12351](https://github.com/RocketChat/Rocket.Chat/pull/12351)) - -- Create new permission.listAll endpoint to be able to use updatedSince parameter ([#12748](https://github.com/RocketChat/Rocket.Chat/pull/12748)) +- Added chat.getDeletedMessages since specific date ([#13010](https://github.com/RocketChat/Rocket.Chat/pull/13010) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Download button for each file in fileslist ([#12874](https://github.com/RocketChat/Rocket.Chat/pull/12874) by [@alexbartsch](https://github.com/alexbartsch)) -- Include message type & id in push notification payload ([#12771](https://github.com/RocketChat/Rocket.Chat/pull/12771) by [@cardoso](https://github.com/cardoso)) +- Syncloud deploy option ([#12867](https://github.com/RocketChat/Rocket.Chat/pull/12867) by [@cyberb](https://github.com/cyberb)) -- Livechat registration form message ([#12597](https://github.com/RocketChat/Rocket.Chat/pull/12597)) +- Config hooks for snap ([#12351](https://github.com/RocketChat/Rocket.Chat/pull/12351)) -- Make Livechat's widget draggable ([#12378](https://github.com/RocketChat/Rocket.Chat/pull/12378)) +- Livechat registration form message ([#12597](https://github.com/RocketChat/Rocket.Chat/pull/12597)) -- Mandatory 2fa for role ([#9748](https://github.com/RocketChat/Rocket.Chat/pull/9748) by [@Hudell](https://github.com/Hudell) & [@karlprieb](https://github.com/karlprieb)) +- Include message type & id in push notification payload ([#12771](https://github.com/RocketChat/Rocket.Chat/pull/12771) by [@cardoso](https://github.com/cardoso)) -- New API Endpoints for the new version of JS SDK ([#12623](https://github.com/RocketChat/Rocket.Chat/pull/12623)) +- Add permission to enable personal access token to specific roles ([#12309](https://github.com/RocketChat/Rocket.Chat/pull/12309) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Option to reset e2e key ([#12483](https://github.com/RocketChat/Rocket.Chat/pull/12483) by [@Hudell](https://github.com/Hudell)) +- /api/v1/spotlight: return joinCodeRequired field for rooms ([#12651](https://github.com/RocketChat/Rocket.Chat/pull/12651) by [@cardoso](https://github.com/cardoso)) + +- New API Endpoints for the new version of JS SDK ([#12623](https://github.com/RocketChat/Rocket.Chat/pull/12623) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + - Setting to configure robots.txt content ([#12547](https://github.com/RocketChat/Rocket.Chat/pull/12547) by [@Hudell](https://github.com/Hudell)) -- Syncloud deploy option ([#12867](https://github.com/RocketChat/Rocket.Chat/pull/12867) by [@cyberb](https://github.com/cyberb)) +- Make Livechat's widget draggable ([#12378](https://github.com/RocketChat/Rocket.Chat/pull/12378)) ### 🚀 Improvements +- Hipchat Enterprise Importer ([#12985](https://github.com/RocketChat/Rocket.Chat/pull/12985) by [@Hudell](https://github.com/Hudell)) + +- Add missing translation keys. ([#12722](https://github.com/RocketChat/Rocket.Chat/pull/12722) by [@ura14h](https://github.com/ura14h)) + - Accept Slash Commands via Action Buttons when `msg_in_chat_window: true` ([#13009](https://github.com/RocketChat/Rocket.Chat/pull/13009)) -- Add CTRL modifier for keyboard shortcut ([#12525](https://github.com/RocketChat/Rocket.Chat/pull/12525) by [@nicolasbock](https://github.com/nicolasbock)) +- Allow transfer Livechats to online agents only ([#13008](https://github.com/RocketChat/Rocket.Chat/pull/13008)) -- Add missing translation keys. ([#12722](https://github.com/RocketChat/Rocket.Chat/pull/12722) by [@ura14h](https://github.com/ura14h)) +- Adding debugging instructions in README ([#12989](https://github.com/RocketChat/Rocket.Chat/pull/12989) by [@hypery2k](https://github.com/hypery2k)) -- Add more methods to deal with rooms via Rocket.Chat.Apps ([#12680](https://github.com/RocketChat/Rocket.Chat/pull/12680)) +- Do not emit settings if there are no changes ([#12904](https://github.com/RocketChat/Rocket.Chat/pull/12904)) -- Add new acceptable header for Livechat REST requests ([#12561](https://github.com/RocketChat/Rocket.Chat/pull/12561)) +- Returning an open room object in the Livechat config endpoint ([#12865](https://github.com/RocketChat/Rocket.Chat/pull/12865)) -- Add rooms property in user object, if the user has the permission, with rooms roles ([#12105](https://github.com/RocketChat/Rocket.Chat/pull/12105)) +- Use MongoBD aggregation to get users from a room ([#12566](https://github.com/RocketChat/Rocket.Chat/pull/12566)) -- Adding debugging instructions in README ([#12989](https://github.com/RocketChat/Rocket.Chat/pull/12989) by [@hypery2k](https://github.com/hypery2k)) +- Username suggestion logic ([#12779](https://github.com/RocketChat/Rocket.Chat/pull/12779)) - Allow apps to update persistence by association ([#12714](https://github.com/RocketChat/Rocket.Chat/pull/12714)) -- Allow transfer Livechats to online agents only ([#13008](https://github.com/RocketChat/Rocket.Chat/pull/13008)) - -- Atlassian Crowd settings and option to sync user data ([#12616](https://github.com/RocketChat/Rocket.Chat/pull/12616)) +- Add more methods to deal with rooms via Rocket.Chat.Apps ([#12680](https://github.com/RocketChat/Rocket.Chat/pull/12680)) - Better query for finding subscriptions that need a new E2E Key ([#12692](https://github.com/RocketChat/Rocket.Chat/pull/12692) by [@Hudell](https://github.com/Hudell)) -- border-radius to use --border-radius ([#12675](https://github.com/RocketChat/Rocket.Chat/pull/12675)) - -- CircleCI to use MongoDB 4.0 for testing ([#12618](https://github.com/RocketChat/Rocket.Chat/pull/12618)) +- Improve unreads and unreadsFrom response, prevent it to be equal null ([#12563](https://github.com/RocketChat/Rocket.Chat/pull/12563) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Do not emit settings if there are no changes ([#12904](https://github.com/RocketChat/Rocket.Chat/pull/12904)) +- Add rooms property in user object, if the user has the permission, with rooms roles ([#12105](https://github.com/RocketChat/Rocket.Chat/pull/12105) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Emoji search on messageBox behaving like emojiPicker's search (#9607) ([#12452](https://github.com/RocketChat/Rocket.Chat/pull/12452) by [@vinade](https://github.com/vinade)) +- border-radius to use --border-radius ([#12675](https://github.com/RocketChat/Rocket.Chat/pull/12675)) -- German translations ([#12471](https://github.com/RocketChat/Rocket.Chat/pull/12471) by [@mrsimpson](https://github.com/mrsimpson)) +- Update the 'keyboard shortcuts' documentation ([#12564](https://github.com/RocketChat/Rocket.Chat/pull/12564) by [@nicolasbock](https://github.com/nicolasbock)) -- Hipchat Enterprise Importer ([#12985](https://github.com/RocketChat/Rocket.Chat/pull/12985) by [@Hudell](https://github.com/Hudell)) +- Add new acceptable header for Livechat REST requests ([#12561](https://github.com/RocketChat/Rocket.Chat/pull/12561)) -- Ignore non-existent Livechat custom fields on Livechat API ([#12522](https://github.com/RocketChat/Rocket.Chat/pull/12522)) +- Atlassian Crowd settings and option to sync user data ([#12616](https://github.com/RocketChat/Rocket.Chat/pull/12616)) -- Improve unreads and unreadsFrom response, prevent it to be equal null ([#12563](https://github.com/RocketChat/Rocket.Chat/pull/12563)) +- CircleCI to use MongoDB 4.0 for testing ([#12618](https://github.com/RocketChat/Rocket.Chat/pull/12618)) - Japanese translations ([#12382](https://github.com/RocketChat/Rocket.Chat/pull/12382) by [@ura14h](https://github.com/ura14h)) -- Limit the number of typing users shown (#8722) ([#12400](https://github.com/RocketChat/Rocket.Chat/pull/12400) by [@vinade](https://github.com/vinade)) +- Add CTRL modifier for keyboard shortcut ([#12525](https://github.com/RocketChat/Rocket.Chat/pull/12525) by [@nicolasbock](https://github.com/nicolasbock)) -- Returning an open room object in the Livechat config endpoint ([#12865](https://github.com/RocketChat/Rocket.Chat/pull/12865)) +- Ignore non-existent Livechat custom fields on Livechat API ([#12522](https://github.com/RocketChat/Rocket.Chat/pull/12522)) -- Update the 'keyboard shortcuts' documentation ([#12564](https://github.com/RocketChat/Rocket.Chat/pull/12564) by [@nicolasbock](https://github.com/nicolasbock)) +- Emoji search on messageBox behaving like emojiPicker's search (#9607) ([#12452](https://github.com/RocketChat/Rocket.Chat/pull/12452) by [@vinade](https://github.com/vinade)) -- Use MongoBD aggregation to get users from a room ([#12566](https://github.com/RocketChat/Rocket.Chat/pull/12566)) +- German translations ([#12471](https://github.com/RocketChat/Rocket.Chat/pull/12471) by [@mrsimpson](https://github.com/mrsimpson)) -- Username suggestion logic ([#12779](https://github.com/RocketChat/Rocket.Chat/pull/12779)) +- Limit the number of typing users shown (#8722) ([#12400](https://github.com/RocketChat/Rocket.Chat/pull/12400) by [@vinade](https://github.com/vinade)) ### 🐛 Bug fixes -- `Disabled` word translation to Chinese ([#12260](https://github.com/RocketChat/Rocket.Chat/pull/12260) by [@AndreamApp](https://github.com/AndreamApp)) +- Avoiding links with highlighted words ([#12123](https://github.com/RocketChat/Rocket.Chat/pull/12123) by [@rssilva](https://github.com/rssilva)) -- `Disabled` word translation to Spanish ([#12406](https://github.com/RocketChat/Rocket.Chat/pull/12406) by [@Ismaw34](https://github.com/Ismaw34)) +- Pin and unpin message were not checking permissions ([#12739](https://github.com/RocketChat/Rocket.Chat/pull/12739) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Admin styles ([#12614](https://github.com/RocketChat/Rocket.Chat/pull/12614)) +- Fix users.setPreferences endpoint, set language correctly ([#12734](https://github.com/RocketChat/Rocket.Chat/pull/12734) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Admin styles ([#12602](https://github.com/RocketChat/Rocket.Chat/pull/12602)) +- Fix set avatar http call, to avoid SSL errors ([#12790](https://github.com/RocketChat/Rocket.Chat/pull/12790) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Autotranslate icon on message action menu ([#12585](https://github.com/RocketChat/Rocket.Chat/pull/12585)) +- Webdav integration account settings were being shown even when Webdav was disabled ([#12569](https://github.com/RocketChat/Rocket.Chat/pull/12569) by [@karakayasemi](https://github.com/karakayasemi)) -- Avoiding links with highlighted words ([#12123](https://github.com/RocketChat/Rocket.Chat/pull/12123) by [@rssilva](https://github.com/rssilva)) +- Provide better Dutch translations 🇳🇱 ([#12792](https://github.com/RocketChat/Rocket.Chat/pull/12792) by [@mathysie](https://github.com/mathysie)) -- cannot reset password ([#12903](https://github.com/RocketChat/Rocket.Chat/pull/12903) by [@Hudell](https://github.com/Hudell)) +- E2E`s password reaveal text is always `>%S` when language is zh ([#12795](https://github.com/RocketChat/Rocket.Chat/pull/12795) by [@lvyue](https://github.com/lvyue)) -- CAS Login not working with renamed users ([#12860](https://github.com/RocketChat/Rocket.Chat/pull/12860) by [@Hudell](https://github.com/Hudell)) +- Nested Markdown blocks not parsed properly ([#12998](https://github.com/RocketChat/Rocket.Chat/pull/12998) by [@Hudell](https://github.com/Hudell)) -- Change field checks in RocketChat.saveStreamingOptions ([#12973](https://github.com/RocketChat/Rocket.Chat/pull/12973)) +- Change JSON to EJSON.parse query to support type Date ([#12706](https://github.com/RocketChat/Rocket.Chat/pull/12706) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Change JSON to EJSON.parse query to support type Date ([#12706](https://github.com/RocketChat/Rocket.Chat/pull/12706)) +- Inherit font family in message user card ([#13004](https://github.com/RocketChat/Rocket.Chat/pull/13004)) -- Change registration message when user need to confirm email ([#9336](https://github.com/RocketChat/Rocket.Chat/pull/9336) by [@karlprieb](https://github.com/karlprieb)) +- Some deprecation issues for media recording ([#12948](https://github.com/RocketChat/Rocket.Chat/pull/12948)) -- Check for object falsehood before referencing properties in saveRoomSettings ([#12972](https://github.com/RocketChat/Rocket.Chat/pull/12972)) +- Stop click event propagation on mention link or user card ([#12983](https://github.com/RocketChat/Rocket.Chat/pull/12983)) -- Condition to not render PDF preview ([#12632](https://github.com/RocketChat/Rocket.Chat/pull/12632)) +- Change field checks in RocketChat.saveStreamingOptions ([#12973](https://github.com/RocketChat/Rocket.Chat/pull/12973)) -- Correct roomName value in Mail Messages (#12363) ([#12453](https://github.com/RocketChat/Rocket.Chat/pull/12453) by [@vinade](https://github.com/vinade)) +- Remove sharp's deprecation warnings on image upload ([#12980](https://github.com/RocketChat/Rocket.Chat/pull/12980)) -- Crowd sync was being stopped when a user was not found ([#12930](https://github.com/RocketChat/Rocket.Chat/pull/12930) by [@piotrkochan](https://github.com/piotrkochan)) +- Use web.browser.legacy bundle for Livechat script ([#12975](https://github.com/RocketChat/Rocket.Chat/pull/12975)) -- Data Import not working ([#12866](https://github.com/RocketChat/Rocket.Chat/pull/12866) by [@Hudell](https://github.com/Hudell)) +- Revert Jitsi external API to an asset ([#12954](https://github.com/RocketChat/Rocket.Chat/pull/12954)) -- DE translation for idle-time-limit ([#12637](https://github.com/RocketChat/Rocket.Chat/pull/12637) by [@pfuender](https://github.com/pfuender)) +- Exception in getSingleMessage ([#12970](https://github.com/RocketChat/Rocket.Chat/pull/12970) by [@tsukiRep](https://github.com/tsukiRep)) -- Download files without extension wasn't possible ([#13033](https://github.com/RocketChat/Rocket.Chat/pull/13033)) +- multiple rooms-changed ([#12940](https://github.com/RocketChat/Rocket.Chat/pull/12940)) -- E2E`s password reaveal text is always `>%S` when language is zh ([#12795](https://github.com/RocketChat/Rocket.Chat/pull/12795) by [@lvyue](https://github.com/lvyue)) +- Readable validation on the apps engine environment bridge ([#12994](https://github.com/RocketChat/Rocket.Chat/pull/12994)) -- Email sending with GDPR user data ([#12487](https://github.com/RocketChat/Rocket.Chat/pull/12487)) +- Check for object falsehood before referencing properties in saveRoomSettings ([#12972](https://github.com/RocketChat/Rocket.Chat/pull/12972)) -- Emoji picker is not in viewport on small screens ([#12457](https://github.com/RocketChat/Rocket.Chat/pull/12457) by [@ramrami](https://github.com/ramrami)) +- Spotlight being called while in background ([#12957](https://github.com/RocketChat/Rocket.Chat/pull/12957)) -- Exception in getSingleMessage ([#12970](https://github.com/RocketChat/Rocket.Chat/pull/12970) by [@tsukiRep](https://github.com/tsukiRep)) +- Padding for message box in embedded layout ([#12556](https://github.com/RocketChat/Rocket.Chat/pull/12556)) + +- Crowd sync was being stopped when a user was not found ([#12930](https://github.com/RocketChat/Rocket.Chat/pull/12930) by [@piotrkochan](https://github.com/piotrkochan)) -- Fix favico error ([#12643](https://github.com/RocketChat/Rocket.Chat/pull/12643)) +- Some icons were missing ([#12913](https://github.com/RocketChat/Rocket.Chat/pull/12913)) -- Fix set avatar http call, to avoid SSL errors ([#12790](https://github.com/RocketChat/Rocket.Chat/pull/12790)) +- User data download fails when a room has been deleted. ([#12829](https://github.com/RocketChat/Rocket.Chat/pull/12829) by [@Hudell](https://github.com/Hudell)) -- Fix users.setPreferences endpoint, set language correctly ([#12734](https://github.com/RocketChat/Rocket.Chat/pull/12734)) +- CAS Login not working with renamed users ([#12860](https://github.com/RocketChat/Rocket.Chat/pull/12860) by [@Hudell](https://github.com/Hudell)) -- Fix wrong parameter in chat.delete endpoint and add some test cases ([#12408](https://github.com/RocketChat/Rocket.Chat/pull/12408)) +- Stream of my_message wasn't sending the room information ([#12914](https://github.com/RocketChat/Rocket.Chat/pull/12914)) -- Fixed Anonymous Registration ([#12633](https://github.com/RocketChat/Rocket.Chat/pull/12633) by [@wreiske](https://github.com/wreiske)) +- cannot reset password ([#12903](https://github.com/RocketChat/Rocket.Chat/pull/12903) by [@Hudell](https://github.com/Hudell)) -- German translation for for API_EmbedIgnoredHosts label ([#12518](https://github.com/RocketChat/Rocket.Chat/pull/12518) by [@mbrodala](https://github.com/mbrodala)) +- Version check update notification ([#12905](https://github.com/RocketChat/Rocket.Chat/pull/12905)) -- Google Cloud Storage storage provider ([#12843](https://github.com/RocketChat/Rocket.Chat/pull/12843)) +- line-height for unread bar buttons (jump to first and mark as read) ([#12900](https://github.com/RocketChat/Rocket.Chat/pull/12900)) -- Handle all events for enter key in message box ([#12507](https://github.com/RocketChat/Rocket.Chat/pull/12507)) +- PDF view loading indicator ([#12882](https://github.com/RocketChat/Rocket.Chat/pull/12882)) -- high cpu usage ~ svg icon ([#12677](https://github.com/RocketChat/Rocket.Chat/pull/12677) by [@ph1p](https://github.com/ph1p)) +- Reset password email ([#12898](https://github.com/RocketChat/Rocket.Chat/pull/12898)) -- Import missed file in rocketchat-authorization ([#12570](https://github.com/RocketChat/Rocket.Chat/pull/12570)) +- Data Import not working ([#12866](https://github.com/RocketChat/Rocket.Chat/pull/12866) by [@Hudell](https://github.com/Hudell)) - Incorrect parameter name in Livechat stream ([#12851](https://github.com/RocketChat/Rocket.Chat/pull/12851)) -- Inherit font family in message user card ([#13004](https://github.com/RocketChat/Rocket.Chat/pull/13004)) +- Autotranslate icon on message action menu ([#12585](https://github.com/RocketChat/Rocket.Chat/pull/12585)) -- line-height for unread bar buttons (jump to first and mark as read) ([#12900](https://github.com/RocketChat/Rocket.Chat/pull/12900)) +- Google Cloud Storage storage provider ([#12843](https://github.com/RocketChat/Rocket.Chat/pull/12843)) -- Manage own integrations permissions check ([#12397](https://github.com/RocketChat/Rocket.Chat/pull/12397)) +- Update caret position on insert a new line in message box ([#12713](https://github.com/RocketChat/Rocket.Chat/pull/12713)) -- multiple rooms-changed ([#12940](https://github.com/RocketChat/Rocket.Chat/pull/12940)) +- DE translation for idle-time-limit ([#12637](https://github.com/RocketChat/Rocket.Chat/pull/12637) by [@pfuender](https://github.com/pfuender)) -- Nested Markdown blocks not parsed properly ([#12998](https://github.com/RocketChat/Rocket.Chat/pull/12998) by [@Hudell](https://github.com/Hudell)) +- Fixed Anonymous Registration ([#12633](https://github.com/RocketChat/Rocket.Chat/pull/12633) by [@wreiske](https://github.com/wreiske)) -- Padding for message box in embedded layout ([#12556](https://github.com/RocketChat/Rocket.Chat/pull/12556)) +- high cpu usage ~ svg icon ([#12677](https://github.com/RocketChat/Rocket.Chat/pull/12677) by [@ph1p](https://github.com/ph1p)) -- PDF view loading indicator ([#12882](https://github.com/RocketChat/Rocket.Chat/pull/12882)) +- Fix favico error ([#12643](https://github.com/RocketChat/Rocket.Chat/pull/12643) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Pin and unpin message were not checking permissions ([#12739](https://github.com/RocketChat/Rocket.Chat/pull/12739)) +- Condition to not render PDF preview ([#12632](https://github.com/RocketChat/Rocket.Chat/pull/12632)) -- Prevent subscriptions and calls to rooms events that the user is not participating ([#12558](https://github.com/RocketChat/Rocket.Chat/pull/12558)) +- Admin styles ([#12614](https://github.com/RocketChat/Rocket.Chat/pull/12614)) -- Provide better Dutch translations 🇳🇱 ([#12792](https://github.com/RocketChat/Rocket.Chat/pull/12792) by [@mathysie](https://github.com/mathysie)) +- Admin styles ([#12602](https://github.com/RocketChat/Rocket.Chat/pull/12602)) -- Readable validation on the apps engine environment bridge ([#12994](https://github.com/RocketChat/Rocket.Chat/pull/12994)) +- Change registration message when user need to confirm email ([#9336](https://github.com/RocketChat/Rocket.Chat/pull/9336) by [@karlprieb](https://github.com/karlprieb)) -- Remove sharp's deprecation warnings on image upload ([#12980](https://github.com/RocketChat/Rocket.Chat/pull/12980)) +- Import missed file in rocketchat-authorization ([#12570](https://github.com/RocketChat/Rocket.Chat/pull/12570) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Reset password email ([#12898](https://github.com/RocketChat/Rocket.Chat/pull/12898)) +- Prevent subscriptions and calls to rooms events that the user is not participating ([#12558](https://github.com/RocketChat/Rocket.Chat/pull/12558) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Revert Jitsi external API to an asset ([#12954](https://github.com/RocketChat/Rocket.Chat/pull/12954)) +- Wrong test case for `users.setAvatar` endpoint ([#12539](https://github.com/RocketChat/Rocket.Chat/pull/12539) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Some deprecation issues for media recording ([#12948](https://github.com/RocketChat/Rocket.Chat/pull/12948)) +- Spotlight method being called multiple times ([#12536](https://github.com/RocketChat/Rocket.Chat/pull/12536)) -- Some icons were missing ([#12913](https://github.com/RocketChat/Rocket.Chat/pull/12913)) +- German translation for for API_EmbedIgnoredHosts label ([#12518](https://github.com/RocketChat/Rocket.Chat/pull/12518) by [@mbrodala](https://github.com/mbrodala)) -- Spotlight being called while in background ([#12957](https://github.com/RocketChat/Rocket.Chat/pull/12957)) +- Handle all events for enter key in message box ([#12507](https://github.com/RocketChat/Rocket.Chat/pull/12507)) -- Spotlight method being called multiple times ([#12536](https://github.com/RocketChat/Rocket.Chat/pull/12536)) +- Fix wrong parameter in chat.delete endpoint and add some test cases ([#12408](https://github.com/RocketChat/Rocket.Chat/pull/12408) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Stop click event propagation on mention link or user card ([#12983](https://github.com/RocketChat/Rocket.Chat/pull/12983)) +- Email sending with GDPR user data ([#12487](https://github.com/RocketChat/Rocket.Chat/pull/12487)) -- Stream of my_message wasn't sending the room information ([#12914](https://github.com/RocketChat/Rocket.Chat/pull/12914)) +- Manage own integrations permissions check ([#12397](https://github.com/RocketChat/Rocket.Chat/pull/12397)) - stream room-changed ([#12411](https://github.com/RocketChat/Rocket.Chat/pull/12411)) -- Update caret position on insert a new line in message box ([#12713](https://github.com/RocketChat/Rocket.Chat/pull/12713)) - -- Use web.browser.legacy bundle for Livechat script ([#12975](https://github.com/RocketChat/Rocket.Chat/pull/12975)) +- Emoji picker is not in viewport on small screens ([#12457](https://github.com/RocketChat/Rocket.Chat/pull/12457) by [@ramrami](https://github.com/ramrami)) -- User data download fails when a room has been deleted. ([#12829](https://github.com/RocketChat/Rocket.Chat/pull/12829) by [@Hudell](https://github.com/Hudell)) +- `Disabled` word translation to Spanish ([#12406](https://github.com/RocketChat/Rocket.Chat/pull/12406) by [@Ismaw34](https://github.com/Ismaw34)) -- Version check update notification ([#12905](https://github.com/RocketChat/Rocket.Chat/pull/12905)) +- `Disabled` word translation to Chinese ([#12260](https://github.com/RocketChat/Rocket.Chat/pull/12260) by [@AndreamApp](https://github.com/AndreamApp)) -- Webdav integration account settings were being shown even when Webdav was disabled ([#12569](https://github.com/RocketChat/Rocket.Chat/pull/12569) by [@karakayasemi](https://github.com/karakayasemi)) +- Correct roomName value in Mail Messages (#12363) ([#12453](https://github.com/RocketChat/Rocket.Chat/pull/12453) by [@vinade](https://github.com/vinade)) -- Wrong test case for `users.setAvatar` endpoint ([#12539](https://github.com/RocketChat/Rocket.Chat/pull/12539)) +- Download files without extension wasn't possible ([#13033](https://github.com/RocketChat/Rocket.Chat/pull/13033))
🔍 Minor changes -- Convert rocketchat-channel-settings to main module structure ([#12594](https://github.com/RocketChat/Rocket.Chat/pull/12594)) +- Release 0.72.3 ([#12932](https://github.com/RocketChat/Rocket.Chat/pull/12932) by [@Hudell](https://github.com/Hudell) & [@piotrkochan](https://github.com/piotrkochan)) -- Convert rocketchat-emoji-custom to main module structure ([#12604](https://github.com/RocketChat/Rocket.Chat/pull/12604)) +- Release 0.72.2 ([#12901](https://github.com/RocketChat/Rocket.Chat/pull/12901)) -- Convert rocketchat-importer-slack to main module structure ([#12666](https://github.com/RocketChat/Rocket.Chat/pull/12666)) +- LingoHub based on develop ([#13014](https://github.com/RocketChat/Rocket.Chat/pull/13014)) -- Convert rocketchat-livestream to main module structure ([#12679](https://github.com/RocketChat/Rocket.Chat/pull/12679)) +- Move isFirefox and isChrome functions to rocketchat-utils ([#13011](https://github.com/RocketChat/Rocket.Chat/pull/13011) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-mentions-flextab to main module structure ([#12757](https://github.com/RocketChat/Rocket.Chat/pull/12757)) +- Move tapi18n t and isRtl functions from ui to utils ([#13005](https://github.com/RocketChat/Rocket.Chat/pull/13005) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-reactions to main module structure ([#12888](https://github.com/RocketChat/Rocket.Chat/pull/12888)) +- Remove /* globals */ wave 4 ([#12999](https://github.com/RocketChat/Rocket.Chat/pull/12999) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-account to main module structure ([#12842](https://github.com/RocketChat/Rocket.Chat/pull/12842)) +- Remove /* globals */ wave 3 ([#12997](https://github.com/RocketChat/Rocket.Chat/pull/12997) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-flextab to main module structure ([#12859](https://github.com/RocketChat/Rocket.Chat/pull/12859)) +- Convert rocketchat-logger to main module structure and remove Logger from eslintrc ([#12995](https://github.com/RocketChat/Rocket.Chat/pull/12995) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- [DOCS] Remove Cordova links, include F-Droid download button and few other adjustments ([#12583](https://github.com/RocketChat/Rocket.Chat/pull/12583) by [@rafaelks](https://github.com/rafaelks)) +- Remove /* globals */ wave 2 ([#12988](https://github.com/RocketChat/Rocket.Chat/pull/12988) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add check to make sure releases was updated ([#12791](https://github.com/RocketChat/Rocket.Chat/pull/12791)) +- Remove /* globals */ from files wave-1 ([#12984](https://github.com/RocketChat/Rocket.Chat/pull/12984) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Added "npm install" to quick start for developers ([#12374](https://github.com/RocketChat/Rocket.Chat/pull/12374) by [@wreiske](https://github.com/wreiske)) +- Move globals of test to a specific eslintrc file ([#12959](https://github.com/RocketChat/Rocket.Chat/pull/12959)) -- Added imports for global variables in rocketchat-google-natural-language package ([#12647](https://github.com/RocketChat/Rocket.Chat/pull/12647)) +- Remove global ServiceConfiguration ([#12960](https://github.com/RocketChat/Rocket.Chat/pull/12960)) -- Bump Apps Engine to 1.3.0 ([#12705](https://github.com/RocketChat/Rocket.Chat/pull/12705)) +- Remove global toastr ([#12961](https://github.com/RocketChat/Rocket.Chat/pull/12961)) -- Change `chat.getDeletedMessages` to get messages after informed date and return only message's _id ([#13021](https://github.com/RocketChat/Rocket.Chat/pull/13021)) +- Convert rocketchat-livechat to main module structure ([#12942](https://github.com/RocketChat/Rocket.Chat/pull/12942) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - changed maxRoomsOpen ([#12949](https://github.com/RocketChat/Rocket.Chat/pull/12949)) -- Convert chatpal search package to modular structure ([#12485](https://github.com/RocketChat/Rocket.Chat/pull/12485)) +- Revert imports of css, reAdd them to the addFiles function ([#12934](https://github.com/RocketChat/Rocket.Chat/pull/12934) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert emoji-emojione to main module structure ([#12605](https://github.com/RocketChat/Rocket.Chat/pull/12605)) +- Convert rocketchat-theme to main module structure ([#12896](https://github.com/RocketChat/Rocket.Chat/pull/12896) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-accounts-saml to main module structure ([#12486](https://github.com/RocketChat/Rocket.Chat/pull/12486)) +- Convert rocketchat-katex to main module structure ([#12895](https://github.com/RocketChat/Rocket.Chat/pull/12895) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-autocomplete package to main module structure ([#12491](https://github.com/RocketChat/Rocket.Chat/pull/12491)) +- Convert rocketchat-webdav to main module structure ([#12886](https://github.com/RocketChat/Rocket.Chat/pull/12886) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-timesync to main module structure ([#12495](https://github.com/RocketChat/Rocket.Chat/pull/12495)) +- Convert rocketchat-ui-message to main module structure ([#12871](https://github.com/RocketChat/Rocket.Chat/pull/12871) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-2fa to main module structure ([#12501](https://github.com/RocketChat/Rocket.Chat/pull/12501)) +- Convert rocketchat-videobridge to main module structure ([#12881](https://github.com/RocketChat/Rocket.Chat/pull/12881) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-action-links to main module structure ([#12503](https://github.com/RocketChat/Rocket.Chat/pull/12503)) +- Convert rocketchat-reactions to main module structure ([#12888](https://github.com/RocketChat/Rocket.Chat/pull/12888) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-analytics to main module structure ([#12506](https://github.com/RocketChat/Rocket.Chat/pull/12506)) +- Convert rocketchat-wordpress to main module structure ([#12887](https://github.com/RocketChat/Rocket.Chat/pull/12887) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-api to main module structure ([#12510](https://github.com/RocketChat/Rocket.Chat/pull/12510)) +- Fix: snap push from ci ([#12883](https://github.com/RocketChat/Rocket.Chat/pull/12883)) -- Convert rocketchat-assets to main module structure ([#12521](https://github.com/RocketChat/Rocket.Chat/pull/12521)) +- Convert rocketchat-version-check to main module structure ([#12879](https://github.com/RocketChat/Rocket.Chat/pull/12879) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-authorization to main module structure ([#12523](https://github.com/RocketChat/Rocket.Chat/pull/12523)) +- Convert rocketchat-user-data-dowload to main module structure ([#12877](https://github.com/RocketChat/Rocket.Chat/pull/12877) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-autolinker to main module structure ([#12529](https://github.com/RocketChat/Rocket.Chat/pull/12529)) +- Convert rocketchat-ui-vrecord to main module structure ([#12875](https://github.com/RocketChat/Rocket.Chat/pull/12875) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-autotranslate to main module structure ([#12530](https://github.com/RocketChat/Rocket.Chat/pull/12530)) +- Convert rocketchat-ui-login to main module structure ([#12861](https://github.com/RocketChat/Rocket.Chat/pull/12861) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-bot-helpers to main module structure ([#12531](https://github.com/RocketChat/Rocket.Chat/pull/12531)) +- Convert rocketchat-ui-flextab to main module structure ([#12859](https://github.com/RocketChat/Rocket.Chat/pull/12859) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-cas to main module structure ([#12532](https://github.com/RocketChat/Rocket.Chat/pull/12532)) +- German translation typo fix for Reacted_with ([#12761](https://github.com/RocketChat/Rocket.Chat/pull/12761) by [@localguru](https://github.com/localguru)) -- Convert rocketchat-channel-settings-mail-messages to main module structure ([#12537](https://github.com/RocketChat/Rocket.Chat/pull/12537)) +- Convert rocketchat-ui-account to main module structure ([#12842](https://github.com/RocketChat/Rocket.Chat/pull/12842) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-colors to main module structure ([#12538](https://github.com/RocketChat/Rocket.Chat/pull/12538)) +- Convert rocketchat-ui-clean-history to main module structure ([#12846](https://github.com/RocketChat/Rocket.Chat/pull/12846) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-cors to main module structure ([#12595](https://github.com/RocketChat/Rocket.Chat/pull/12595)) +- Convert rocketchat-ui-admin to main module structure ([#12844](https://github.com/RocketChat/Rocket.Chat/pull/12844) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-crowd to main module structure ([#12596](https://github.com/RocketChat/Rocket.Chat/pull/12596)) +- Convert rocketchat-tokenpass to main module structure ([#12838](https://github.com/RocketChat/Rocket.Chat/pull/12838) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-custom-sounds to main module structure ([#12599](https://github.com/RocketChat/Rocket.Chat/pull/12599)) +- Remove rocketchat-tutum package ([#12840](https://github.com/RocketChat/Rocket.Chat/pull/12840) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-dolphin to main module structure ([#12600](https://github.com/RocketChat/Rocket.Chat/pull/12600)) +- Convert rocketchat-tooltip to main module structure ([#12839](https://github.com/RocketChat/Rocket.Chat/pull/12839) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-drupal to main module structure ([#12601](https://github.com/RocketChat/Rocket.Chat/pull/12601)) +- Convert rocketchat-token-login to main module structure ([#12837](https://github.com/RocketChat/Rocket.Chat/pull/12837) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-emoji to main module structure ([#12603](https://github.com/RocketChat/Rocket.Chat/pull/12603)) +- Convert rocketchat-statistics to main module structure ([#12833](https://github.com/RocketChat/Rocket.Chat/pull/12833) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-error-handler to main module structure ([#12606](https://github.com/RocketChat/Rocket.Chat/pull/12606)) +- Convert rocketchat-spotify to main module structure ([#12832](https://github.com/RocketChat/Rocket.Chat/pull/12832) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-favico to main module structure ([#12607](https://github.com/RocketChat/Rocket.Chat/pull/12607)) +- Convert rocketchat-sms to main module structure ([#12831](https://github.com/RocketChat/Rocket.Chat/pull/12831) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-file to main module structure ([#12644](https://github.com/RocketChat/Rocket.Chat/pull/12644)) +- Convert rocketchat-search to main module structure ([#12801](https://github.com/RocketChat/Rocket.Chat/pull/12801) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-github-enterprise to main module structure ([#12642](https://github.com/RocketChat/Rocket.Chat/pull/12642)) +- Convert rocketchat-message-pin to main module structure ([#12767](https://github.com/RocketChat/Rocket.Chat/pull/12767) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-gitlab to main module structure ([#12646](https://github.com/RocketChat/Rocket.Chat/pull/12646)) +- Convert rocketchat-message-star to main module structure ([#12770](https://github.com/RocketChat/Rocket.Chat/pull/12770) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-google-vision to main module structure ([#12649](https://github.com/RocketChat/Rocket.Chat/pull/12649)) +- Convert rocketchat-slashcommands-msg to main module structure ([#12823](https://github.com/RocketChat/Rocket.Chat/pull/12823) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-grant to main module structure ([#12657](https://github.com/RocketChat/Rocket.Chat/pull/12657)) +- Convert rocketchat-smarsh-connector to main module structure ([#12830](https://github.com/RocketChat/Rocket.Chat/pull/12830) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-graphql to main module structure ([#12658](https://github.com/RocketChat/Rocket.Chat/pull/12658)) +- Convert rocketchat-slider to main module structure ([#12828](https://github.com/RocketChat/Rocket.Chat/pull/12828) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-highlight-words to main module structure ([#12659](https://github.com/RocketChat/Rocket.Chat/pull/12659)) +- Convert rocketchat-slashcommands-unarchiveroom to main module structure ([#12827](https://github.com/RocketChat/Rocket.Chat/pull/12827) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-iframe-login to main module structure ([#12661](https://github.com/RocketChat/Rocket.Chat/pull/12661)) +- Dependencies update ([#12624](https://github.com/RocketChat/Rocket.Chat/pull/12624)) -- Convert rocketchat-importer to main module structure ([#12662](https://github.com/RocketChat/Rocket.Chat/pull/12662)) +- Convert rocketchat-slashcommands-topic to main module structure ([#12826](https://github.com/RocketChat/Rocket.Chat/pull/12826) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-csv to main module structure ([#12663](https://github.com/RocketChat/Rocket.Chat/pull/12663)) +- Convert rocketchat-slashcommands-open to main module structure ([#12825](https://github.com/RocketChat/Rocket.Chat/pull/12825) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-hipchat to main module structure ([#12664](https://github.com/RocketChat/Rocket.Chat/pull/12664)) +- Convert rocketchat-slashcommands-mute to main module structure ([#12824](https://github.com/RocketChat/Rocket.Chat/pull/12824) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-hipchat-enterprise to main module structure ([#12665](https://github.com/RocketChat/Rocket.Chat/pull/12665)) +- Convert rocketchat-slashcommands-me to main module structure ([#12822](https://github.com/RocketChat/Rocket.Chat/pull/12822) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-slack-users to main module structure ([#12669](https://github.com/RocketChat/Rocket.Chat/pull/12669)) +- Convert rocketchat-slashcommands-leave to main module structure ([#12821](https://github.com/RocketChat/Rocket.Chat/pull/12821) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-integrations to main module structure ([#12670](https://github.com/RocketChat/Rocket.Chat/pull/12670)) +- Convert rocketchat-slashcommands-kick to main module structure ([#12817](https://github.com/RocketChat/Rocket.Chat/pull/12817) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-internal-hubot to main module structure ([#12671](https://github.com/RocketChat/Rocket.Chat/pull/12671)) +- Convert rocketchat-slashcommands-join to main module structure ([#12816](https://github.com/RocketChat/Rocket.Chat/pull/12816) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-irc to main module structure ([#12672](https://github.com/RocketChat/Rocket.Chat/pull/12672)) +- Convert rocketchat-slashcommands-inviteall to main module structure ([#12815](https://github.com/RocketChat/Rocket.Chat/pull/12815) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-issuelinks to main module structure ([#12674](https://github.com/RocketChat/Rocket.Chat/pull/12674)) +- Convert rocketchat-slashcommands-invite to main module structure ([#12814](https://github.com/RocketChat/Rocket.Chat/pull/12814) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-katex to main module structure ([#12895](https://github.com/RocketChat/Rocket.Chat/pull/12895)) +- Convert rocketchat-slashcommands-hide to main module structure ([#12813](https://github.com/RocketChat/Rocket.Chat/pull/12813) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ldap to main module structure ([#12678](https://github.com/RocketChat/Rocket.Chat/pull/12678)) +- Convert rocketchat-slashcommands-help to main module structure ([#12812](https://github.com/RocketChat/Rocket.Chat/pull/12812) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-livechat to main module structure ([#12942](https://github.com/RocketChat/Rocket.Chat/pull/12942)) +- Convert rocketchat-slashcommands-create to main module structure ([#12811](https://github.com/RocketChat/Rocket.Chat/pull/12811) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-logger to main module structure and remove Logger from eslintrc ([#12995](https://github.com/RocketChat/Rocket.Chat/pull/12995)) +- Convert rocketchat-slashcomands-archiveroom to main module structure ([#12810](https://github.com/RocketChat/Rocket.Chat/pull/12810) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-mail-messages to main module structure ([#12682](https://github.com/RocketChat/Rocket.Chat/pull/12682)) +- Convert rocketchat-slashcommands-asciiarts to main module structure ([#12808](https://github.com/RocketChat/Rocket.Chat/pull/12808) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-mapview to main module structure ([#12701](https://github.com/RocketChat/Rocket.Chat/pull/12701)) +- Convert rocketchat-slackbridge to main module structure ([#12807](https://github.com/RocketChat/Rocket.Chat/pull/12807) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-markdown to main module structure ([#12755](https://github.com/RocketChat/Rocket.Chat/pull/12755)) +- Convert rocketchat-setup-wizard to main module structure ([#12806](https://github.com/RocketChat/Rocket.Chat/pull/12806) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-mentions to main module structure ([#12756](https://github.com/RocketChat/Rocket.Chat/pull/12756)) +- Convert rocketchat-sandstorm to main module structure ([#12799](https://github.com/RocketChat/Rocket.Chat/pull/12799) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-message-action to main module structure ([#12759](https://github.com/RocketChat/Rocket.Chat/pull/12759)) +- Convert rocketchat-oauth2-server-config to main module structure ([#12773](https://github.com/RocketChat/Rocket.Chat/pull/12773) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-message-attachments to main module structure ([#12760](https://github.com/RocketChat/Rocket.Chat/pull/12760)) +- Convert rocketchat-message-snippet to main module structure ([#12768](https://github.com/RocketChat/Rocket.Chat/pull/12768) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-message-mark-as-unread to main module structure ([#12766](https://github.com/RocketChat/Rocket.Chat/pull/12766)) +- Fix CI deploy job ([#12803](https://github.com/RocketChat/Rocket.Chat/pull/12803)) -- Convert rocketchat-message-pin to main module structure ([#12767](https://github.com/RocketChat/Rocket.Chat/pull/12767)) +- Convert rocketchat-retention-policy to main module structure ([#12797](https://github.com/RocketChat/Rocket.Chat/pull/12797) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-message-snippet to main module structure ([#12768](https://github.com/RocketChat/Rocket.Chat/pull/12768)) +- Convert rocketchat-push-notifications to main module structure ([#12778](https://github.com/RocketChat/Rocket.Chat/pull/12778) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-message-star to main module structure ([#12770](https://github.com/RocketChat/Rocket.Chat/pull/12770)) +- Convert rocketchat-otr to main module structure ([#12777](https://github.com/RocketChat/Rocket.Chat/pull/12777) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-migrations to main-module structure ([#12772](https://github.com/RocketChat/Rocket.Chat/pull/12772)) +- Convert rocketchat-oembed to main module structure ([#12775](https://github.com/RocketChat/Rocket.Chat/pull/12775) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-oauth2-server-config to main module structure ([#12773](https://github.com/RocketChat/Rocket.Chat/pull/12773)) +- Convert rocketchat-migrations to main-module structure ([#12772](https://github.com/RocketChat/Rocket.Chat/pull/12772) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-oembed to main module structure ([#12775](https://github.com/RocketChat/Rocket.Chat/pull/12775)) +- Convert rocketchat-message-mark-as-unread to main module structure ([#12766](https://github.com/RocketChat/Rocket.Chat/pull/12766) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-otr to main module structure ([#12777](https://github.com/RocketChat/Rocket.Chat/pull/12777)) +- Remove conventional changelog cli, we are using our own cli now (Houston) ([#12798](https://github.com/RocketChat/Rocket.Chat/pull/12798)) -- Convert rocketchat-push-notifications to main module structure ([#12778](https://github.com/RocketChat/Rocket.Chat/pull/12778)) +- Convert rocketchat-message-attachments to main module structure ([#12760](https://github.com/RocketChat/Rocket.Chat/pull/12760) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-retention-policy to main module structure ([#12797](https://github.com/RocketChat/Rocket.Chat/pull/12797)) +- Convert rocketchat-message-action to main module structure ([#12759](https://github.com/RocketChat/Rocket.Chat/pull/12759) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-sandstorm to main module structure ([#12799](https://github.com/RocketChat/Rocket.Chat/pull/12799)) +- Convert rocketchat-mentions-flextab to main module structure ([#12757](https://github.com/RocketChat/Rocket.Chat/pull/12757) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-search to main module structure ([#12801](https://github.com/RocketChat/Rocket.Chat/pull/12801)) +- Convert rocketchat-mentions to main module structure ([#12756](https://github.com/RocketChat/Rocket.Chat/pull/12756) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-setup-wizard to main module structure ([#12806](https://github.com/RocketChat/Rocket.Chat/pull/12806)) +- Convert rocketchat-markdown to main module structure ([#12755](https://github.com/RocketChat/Rocket.Chat/pull/12755) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slackbridge to main module structure ([#12807](https://github.com/RocketChat/Rocket.Chat/pull/12807)) +- Convert rocketchat-mapview to main module structure ([#12701](https://github.com/RocketChat/Rocket.Chat/pull/12701) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slashcomands-archiveroom to main module structure ([#12810](https://github.com/RocketChat/Rocket.Chat/pull/12810)) +- Add check to make sure releases was updated ([#12791](https://github.com/RocketChat/Rocket.Chat/pull/12791)) -- Convert rocketchat-slashcommands-asciiarts to main module structure ([#12808](https://github.com/RocketChat/Rocket.Chat/pull/12808)) +- Merge master into develop & Set version to 0.73.0-develop ([#12776](https://github.com/RocketChat/Rocket.Chat/pull/12776)) -- Convert rocketchat-slashcommands-create to main module structure ([#12811](https://github.com/RocketChat/Rocket.Chat/pull/12811)) +- Update Apps Engine to 1.3.1 ([#12741](https://github.com/RocketChat/Rocket.Chat/pull/12741)) -- Convert rocketchat-slashcommands-help to main module structure ([#12812](https://github.com/RocketChat/Rocket.Chat/pull/12812)) +- Regression: Expand Administration sections by toggling section title ([#12736](https://github.com/RocketChat/Rocket.Chat/pull/12736)) -- Convert rocketchat-slashcommands-hide to main module structure ([#12813](https://github.com/RocketChat/Rocket.Chat/pull/12813)) +- Regression: Fix Safari detection in PDF previewing ([#12737](https://github.com/RocketChat/Rocket.Chat/pull/12737)) -- Convert rocketchat-slashcommands-invite to main module structure ([#12814](https://github.com/RocketChat/Rocket.Chat/pull/12814)) +- Regression: Account pages layout ([#12735](https://github.com/RocketChat/Rocket.Chat/pull/12735)) -- Convert rocketchat-slashcommands-inviteall to main module structure ([#12815](https://github.com/RocketChat/Rocket.Chat/pull/12815)) +- Regression: Inherit font-family for message box ([#12729](https://github.com/RocketChat/Rocket.Chat/pull/12729)) -- Convert rocketchat-slashcommands-join to main module structure ([#12816](https://github.com/RocketChat/Rocket.Chat/pull/12816)) +- Fix some Ukrainian translations ([#12712](https://github.com/RocketChat/Rocket.Chat/pull/12712) by [@zdumitru](https://github.com/zdumitru)) -- Convert rocketchat-slashcommands-kick to main module structure ([#12817](https://github.com/RocketChat/Rocket.Chat/pull/12817)) +- Improve: Add missing translation keys. ([#12708](https://github.com/RocketChat/Rocket.Chat/pull/12708) by [@ura14h](https://github.com/ura14h)) -- Convert rocketchat-slashcommands-leave to main module structure ([#12821](https://github.com/RocketChat/Rocket.Chat/pull/12821)) +- Bump Apps Engine to 1.3.0 ([#12705](https://github.com/RocketChat/Rocket.Chat/pull/12705)) -- Convert rocketchat-slashcommands-me to main module structure ([#12822](https://github.com/RocketChat/Rocket.Chat/pull/12822)) +- Fix: Exception when registering a user with gravatar ([#12699](https://github.com/RocketChat/Rocket.Chat/pull/12699) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slashcommands-msg to main module structure ([#12823](https://github.com/RocketChat/Rocket.Chat/pull/12823)) +- Fix: Fix tests by increasing window size ([#12707](https://github.com/RocketChat/Rocket.Chat/pull/12707) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slashcommands-mute to main module structure ([#12824](https://github.com/RocketChat/Rocket.Chat/pull/12824)) +- LingoHub based on develop ([#12684](https://github.com/RocketChat/Rocket.Chat/pull/12684)) -- Convert rocketchat-slashcommands-open to main module structure ([#12825](https://github.com/RocketChat/Rocket.Chat/pull/12825)) +- Convert rocketchat-mail-messages to main module structure ([#12682](https://github.com/RocketChat/Rocket.Chat/pull/12682) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slashcommands-topic to main module structure ([#12826](https://github.com/RocketChat/Rocket.Chat/pull/12826)) +- Convert rocketchat-livestream to main module structure ([#12679](https://github.com/RocketChat/Rocket.Chat/pull/12679) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-slashcommands-unarchiveroom to main module structure ([#12827](https://github.com/RocketChat/Rocket.Chat/pull/12827)) +- Added "npm install" to quick start for developers ([#12374](https://github.com/RocketChat/Rocket.Chat/pull/12374) by [@wreiske](https://github.com/wreiske)) -- Convert rocketchat-slider to main module structure ([#12828](https://github.com/RocketChat/Rocket.Chat/pull/12828)) +- Convert rocketchat-ldap to main module structure ([#12678](https://github.com/RocketChat/Rocket.Chat/pull/12678) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-smarsh-connector to main module structure ([#12830](https://github.com/RocketChat/Rocket.Chat/pull/12830)) +- Convert rocketchat-issuelinks to main module structure ([#12674](https://github.com/RocketChat/Rocket.Chat/pull/12674) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-sms to main module structure ([#12831](https://github.com/RocketChat/Rocket.Chat/pull/12831)) +- Convert rocketchat-integrations to main module structure ([#12670](https://github.com/RocketChat/Rocket.Chat/pull/12670) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-spotify to main module structure ([#12832](https://github.com/RocketChat/Rocket.Chat/pull/12832)) +- Convert rocketchat-irc to main module structure ([#12672](https://github.com/RocketChat/Rocket.Chat/pull/12672) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-statistics to main module structure ([#12833](https://github.com/RocketChat/Rocket.Chat/pull/12833)) +- Convert rocketchat-internal-hubot to main module structure ([#12671](https://github.com/RocketChat/Rocket.Chat/pull/12671) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-theme to main module structure ([#12896](https://github.com/RocketChat/Rocket.Chat/pull/12896)) +- Convert rocketchat-importer-hipchat-enterprise to main module structure ([#12665](https://github.com/RocketChat/Rocket.Chat/pull/12665) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-token-login to main module structure ([#12837](https://github.com/RocketChat/Rocket.Chat/pull/12837)) +- Convert rocketchat-importer-slack-users to main module structure ([#12669](https://github.com/RocketChat/Rocket.Chat/pull/12669) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-tokenpass to main module structure ([#12838](https://github.com/RocketChat/Rocket.Chat/pull/12838)) +- Convert rocketchat-importer-slack to main module structure ([#12666](https://github.com/RocketChat/Rocket.Chat/pull/12666) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-tooltip to main module structure ([#12839](https://github.com/RocketChat/Rocket.Chat/pull/12839)) +- Convert rocketchat-iframe-login to main module structure ([#12661](https://github.com/RocketChat/Rocket.Chat/pull/12661) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-admin to main module structure ([#12844](https://github.com/RocketChat/Rocket.Chat/pull/12844)) +- Convert rocketchat-importer to main module structure ([#12662](https://github.com/RocketChat/Rocket.Chat/pull/12662) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-clean-history to main module structure ([#12846](https://github.com/RocketChat/Rocket.Chat/pull/12846)) +- Convert rocketchat-importer-csv to main module structure ([#12663](https://github.com/RocketChat/Rocket.Chat/pull/12663) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-login to main module structure ([#12861](https://github.com/RocketChat/Rocket.Chat/pull/12861)) +- Convert rocketchat-importer-hipchat to main module structure ([#12664](https://github.com/RocketChat/Rocket.Chat/pull/12664) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-message to main module structure ([#12871](https://github.com/RocketChat/Rocket.Chat/pull/12871)) +- Convert rocketchat-highlight-words to main module structure ([#12659](https://github.com/RocketChat/Rocket.Chat/pull/12659) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-ui-vrecord to main module structure ([#12875](https://github.com/RocketChat/Rocket.Chat/pull/12875)) +- Convert rocketchat-grant to main module structure ([#12657](https://github.com/RocketChat/Rocket.Chat/pull/12657) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-user-data-dowload to main module structure ([#12877](https://github.com/RocketChat/Rocket.Chat/pull/12877)) +- Convert rocketchat-graphql to main module structure ([#12658](https://github.com/RocketChat/Rocket.Chat/pull/12658) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-version-check to main module structure ([#12879](https://github.com/RocketChat/Rocket.Chat/pull/12879)) +- Convert rocketchat-google-vision to main module structure ([#12649](https://github.com/RocketChat/Rocket.Chat/pull/12649) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-videobridge to main module structure ([#12881](https://github.com/RocketChat/Rocket.Chat/pull/12881)) +- Removed RocketChatFile from globals ([#12650](https://github.com/RocketChat/Rocket.Chat/pull/12650) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-webdav to main module structure ([#12886](https://github.com/RocketChat/Rocket.Chat/pull/12886)) +- Added imports for global variables in rocketchat-google-natural-language package ([#12647](https://github.com/RocketChat/Rocket.Chat/pull/12647) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-wordpress to main module structure ([#12887](https://github.com/RocketChat/Rocket.Chat/pull/12887)) +- Convert rocketchat-gitlab to main module structure ([#12646](https://github.com/RocketChat/Rocket.Chat/pull/12646) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Dependencies update ([#12624](https://github.com/RocketChat/Rocket.Chat/pull/12624)) +- Convert rocketchat-file to main module structure ([#12644](https://github.com/RocketChat/Rocket.Chat/pull/12644) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix CI deploy job ([#12803](https://github.com/RocketChat/Rocket.Chat/pull/12803)) +- Convert rocketchat-github-enterprise to main module structure ([#12642](https://github.com/RocketChat/Rocket.Chat/pull/12642) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix crowd error with import of SyncedCron ([#12641](https://github.com/RocketChat/Rocket.Chat/pull/12641)) +- Fix: Add email dependency in package.js ([#12645](https://github.com/RocketChat/Rocket.Chat/pull/12645) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix CSS import order ([#12524](https://github.com/RocketChat/Rocket.Chat/pull/12524)) +- Convert rocketchat-custom-sounds to main module structure ([#12599](https://github.com/RocketChat/Rocket.Chat/pull/12599) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix ES translation ([#12509](https://github.com/RocketChat/Rocket.Chat/pull/12509)) +- Fix crowd error with import of SyncedCron ([#12641](https://github.com/RocketChat/Rocket.Chat/pull/12641)) -- Fix punctuation, spelling, and grammar ([#12451](https://github.com/RocketChat/Rocket.Chat/pull/12451) by [@imronras](https://github.com/imronras)) +- Convert emoji-emojione to main module structure ([#12605](https://github.com/RocketChat/Rocket.Chat/pull/12605) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix some Ukrainian translations ([#12712](https://github.com/RocketChat/Rocket.Chat/pull/12712) by [@zdumitru](https://github.com/zdumitru)) +- Convert rocketchat-favico to main module structure ([#12607](https://github.com/RocketChat/Rocket.Chat/pull/12607) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix users.setAvatar endpoint tests and logic ([#12625](https://github.com/RocketChat/Rocket.Chat/pull/12625)) +- Convert rocketchat-emoji-custom to main module structure ([#12604](https://github.com/RocketChat/Rocket.Chat/pull/12604) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Add email dependency in package.js ([#12645](https://github.com/RocketChat/Rocket.Chat/pull/12645)) +- Convert rocketchat-error-handler to main module structure ([#12606](https://github.com/RocketChat/Rocket.Chat/pull/12606) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Developers not being able to debug root files in VSCode ([#12440](https://github.com/RocketChat/Rocket.Chat/pull/12440) by [@mrsimpson](https://github.com/mrsimpson)) +- Convert rocketchat-drupal to main module structure ([#12601](https://github.com/RocketChat/Rocket.Chat/pull/12601) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Exception when registering a user with gravatar ([#12699](https://github.com/RocketChat/Rocket.Chat/pull/12699)) +- Convert rocketchat-crowd to main module structure ([#12596](https://github.com/RocketChat/Rocket.Chat/pull/12596) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Fix tests by increasing window size ([#12707](https://github.com/RocketChat/Rocket.Chat/pull/12707)) +- Convert rocketchat-emoji to main module structure ([#12603](https://github.com/RocketChat/Rocket.Chat/pull/12603) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: snap push from ci ([#12883](https://github.com/RocketChat/Rocket.Chat/pull/12883)) +- Fix users.setAvatar endpoint tests and logic ([#12625](https://github.com/RocketChat/Rocket.Chat/pull/12625) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- German translation typo fix for Reacted_with ([#12761](https://github.com/RocketChat/Rocket.Chat/pull/12761) by [@localguru](https://github.com/localguru)) +- [DOCS] Remove Cordova links, include F-Droid download button and few other adjustments ([#12583](https://github.com/RocketChat/Rocket.Chat/pull/12583) by [@rafaelks](https://github.com/rafaelks)) -- Improve Importer code quality ([#13020](https://github.com/RocketChat/Rocket.Chat/pull/13020) by [@Hudell](https://github.com/Hudell)) +- Convert rocketchat-dolphin to main module structure ([#12600](https://github.com/RocketChat/Rocket.Chat/pull/12600) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Add missing translation keys. ([#12708](https://github.com/RocketChat/Rocket.Chat/pull/12708) by [@ura14h](https://github.com/ura14h)) +- Convert rocketchat-channel-settings to main module structure ([#12594](https://github.com/RocketChat/Rocket.Chat/pull/12594) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#13014](https://github.com/RocketChat/Rocket.Chat/pull/13014)) +- Convert rocketchat-cors to main module structure ([#12595](https://github.com/RocketChat/Rocket.Chat/pull/12595) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#12684](https://github.com/RocketChat/Rocket.Chat/pull/12684)) +- Convert rocketchat-autotranslate to main module structure ([#12530](https://github.com/RocketChat/Rocket.Chat/pull/12530) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- LingoHub based on develop ([#12470](https://github.com/RocketChat/Rocket.Chat/pull/12470)) +- Convert rocketchat-channel-settings-mail-messages to main module structure ([#12537](https://github.com/RocketChat/Rocket.Chat/pull/12537) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Merge master into develop & Set version to 0.72.0-develop ([#12460](https://github.com/RocketChat/Rocket.Chat/pull/12460) by [@Hudell](https://github.com/Hudell)) +- Convert rocketchat-colors to main module structure ([#12538](https://github.com/RocketChat/Rocket.Chat/pull/12538) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Merge master into develop & Set version to 0.73.0-develop ([#12776](https://github.com/RocketChat/Rocket.Chat/pull/12776)) +- Convert rocketchat-cas to main module structure ([#12532](https://github.com/RocketChat/Rocket.Chat/pull/12532) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move globals of test to a specific eslintrc file ([#12959](https://github.com/RocketChat/Rocket.Chat/pull/12959)) +- Convert rocketchat-bot-helpers to main module structure ([#12531](https://github.com/RocketChat/Rocket.Chat/pull/12531) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move isFirefox and isChrome functions to rocketchat-utils ([#13011](https://github.com/RocketChat/Rocket.Chat/pull/13011)) +- Convert rocketchat-autolinker to main module structure ([#12529](https://github.com/RocketChat/Rocket.Chat/pull/12529) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Move tapi18n t and isRtl functions from ui to utils ([#13005](https://github.com/RocketChat/Rocket.Chat/pull/13005)) +- Convert rocketchat-authorization to main module structure ([#12523](https://github.com/RocketChat/Rocket.Chat/pull/12523) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: Account pages layout ([#12735](https://github.com/RocketChat/Rocket.Chat/pull/12735)) +- Fix CSS import order ([#12524](https://github.com/RocketChat/Rocket.Chat/pull/12524)) -- Regression: Expand Administration sections by toggling section title ([#12736](https://github.com/RocketChat/Rocket.Chat/pull/12736)) +- Remove template for feature requests as issues ([#12426](https://github.com/RocketChat/Rocket.Chat/pull/12426)) -- Regression: Fix Safari detection in PDF previewing ([#12737](https://github.com/RocketChat/Rocket.Chat/pull/12737)) +- Fix punctuation, spelling, and grammar ([#12451](https://github.com/RocketChat/Rocket.Chat/pull/12451) by [@imronras](https://github.com/imronras)) -- Regression: Inherit font-family for message box ([#12729](https://github.com/RocketChat/Rocket.Chat/pull/12729)) +- Convert rocketchat-assets to main module structure ([#12521](https://github.com/RocketChat/Rocket.Chat/pull/12521) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: List of custom emojis wasn't working ([#13031](https://github.com/RocketChat/Rocket.Chat/pull/13031)) +- Convert rocketchat-api to main module structure ([#12510](https://github.com/RocketChat/Rocket.Chat/pull/12510) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 0.72.2 ([#12901](https://github.com/RocketChat/Rocket.Chat/pull/12901)) +- Convert rocketchat-analytics to main module structure ([#12506](https://github.com/RocketChat/Rocket.Chat/pull/12506) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 0.72.3 ([#12932](https://github.com/RocketChat/Rocket.Chat/pull/12932) by [@Hudell](https://github.com/Hudell) & [@piotrkochan](https://github.com/piotrkochan)) +- Convert rocketchat-action-links to main module structure ([#12503](https://github.com/RocketChat/Rocket.Chat/pull/12503) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of EJSON, Accounts, Email, HTTP, Random, ReactiveDict, ReactiveVar, SHA256 and WebApp global variables ([#12377](https://github.com/RocketChat/Rocket.Chat/pull/12377)) +- Convert rocketchat-2fa to main module structure ([#12501](https://github.com/RocketChat/Rocket.Chat/pull/12501) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of Match, check, moment, Tracker and Mongo global variables ([#12410](https://github.com/RocketChat/Rocket.Chat/pull/12410)) +- Convert meteor-timesync to main module structure ([#12495](https://github.com/RocketChat/Rocket.Chat/pull/12495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of Meteor global variable ([#12371](https://github.com/RocketChat/Rocket.Chat/pull/12371)) +- Convert meteor-autocomplete package to main module structure ([#12491](https://github.com/RocketChat/Rocket.Chat/pull/12491) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of TAPi18n and TAPi18next global variables ([#12467](https://github.com/RocketChat/Rocket.Chat/pull/12467)) +- Convert meteor-accounts-saml to main module structure ([#12486](https://github.com/RocketChat/Rocket.Chat/pull/12486) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of Template, Blaze, BlazeLayout, FlowRouter, DDPRateLimiter, Session, UAParser, Promise, Reload and CryptoJS global variables ([#12433](https://github.com/RocketChat/Rocket.Chat/pull/12433)) +- Convert chatpal search package to modular structure ([#12485](https://github.com/RocketChat/Rocket.Chat/pull/12485) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove /* globals */ from files wave-1 ([#12984](https://github.com/RocketChat/Rocket.Chat/pull/12984)) +- Removal of TAPi18n and TAPi18next global variables ([#12467](https://github.com/RocketChat/Rocket.Chat/pull/12467) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove /* globals */ wave 2 ([#12988](https://github.com/RocketChat/Rocket.Chat/pull/12988)) +- Removal of Template, Blaze, BlazeLayout, FlowRouter, DDPRateLimiter, Session, UAParser, Promise, Reload and CryptoJS global variables ([#12433](https://github.com/RocketChat/Rocket.Chat/pull/12433) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove /* globals */ wave 3 ([#12997](https://github.com/RocketChat/Rocket.Chat/pull/12997)) +- Removal of Match, check, moment, Tracker and Mongo global variables ([#12410](https://github.com/RocketChat/Rocket.Chat/pull/12410) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Remove /* globals */ wave 4 ([#12999](https://github.com/RocketChat/Rocket.Chat/pull/12999)) +- Removal of EJSON, Accounts, Email, HTTP, Random, ReactiveDict, ReactiveVar, SHA256 and WebApp global variables ([#12377](https://github.com/RocketChat/Rocket.Chat/pull/12377)) -- Remove conventional changelog cli, we are using our own cli now (Houston) ([#12798](https://github.com/RocketChat/Rocket.Chat/pull/12798)) +- Removal of Meteor global variable ([#12371](https://github.com/RocketChat/Rocket.Chat/pull/12371)) -- Remove global ServiceConfiguration ([#12960](https://github.com/RocketChat/Rocket.Chat/pull/12960)) +- Fix ES translation ([#12509](https://github.com/RocketChat/Rocket.Chat/pull/12509)) -- Remove global toastr ([#12961](https://github.com/RocketChat/Rocket.Chat/pull/12961)) +- LingoHub based on develop ([#12470](https://github.com/RocketChat/Rocket.Chat/pull/12470)) -- Remove rocketchat-tutum package ([#12840](https://github.com/RocketChat/Rocket.Chat/pull/12840)) +- Update npm dependencies ([#12465](https://github.com/RocketChat/Rocket.Chat/pull/12465)) -- Remove template for feature requests as issues ([#12426](https://github.com/RocketChat/Rocket.Chat/pull/12426)) +- Fix: Developers not being able to debug root files in VSCode ([#12440](https://github.com/RocketChat/Rocket.Chat/pull/12440) by [@mrsimpson](https://github.com/mrsimpson)) -- Removed RocketChatFile from globals ([#12650](https://github.com/RocketChat/Rocket.Chat/pull/12650)) +- Merge master into develop & Set version to 0.72.0-develop ([#12460](https://github.com/RocketChat/Rocket.Chat/pull/12460) by [@Hudell](https://github.com/Hudell)) -- Revert imports of css, reAdd them to the addFiles function ([#12934](https://github.com/RocketChat/Rocket.Chat/pull/12934)) +- Change `chat.getDeletedMessages` to get messages after informed date and return only message's _id ([#13021](https://github.com/RocketChat/Rocket.Chat/pull/13021) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update Apps Engine to 1.3.1 ([#12741](https://github.com/RocketChat/Rocket.Chat/pull/12741)) +- Improve Importer code quality ([#13020](https://github.com/RocketChat/Rocket.Chat/pull/13020) by [@Hudell](https://github.com/Hudell)) -- Update npm dependencies ([#12465](https://github.com/RocketChat/Rocket.Chat/pull/12465)) +- Regression: List of custom emojis wasn't working ([#13031](https://github.com/RocketChat/Rocket.Chat/pull/13031) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
@@ -6724,6 +7028,7 @@ - [@AndreamApp](https://github.com/AndreamApp) - [@Hudell](https://github.com/Hudell) - [@Ismaw34](https://github.com/Ismaw34) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@alexbartsch](https://github.com/alexbartsch) - [@cardoso](https://github.com/cardoso) - [@cyberb](https://github.com/cyberb) @@ -6753,7 +7058,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 - [@LuluGO](https://github.com/LuluGO) -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -6794,10 +7098,10 @@ - line-height for unread bar buttons (jump to first and mark as read) ([#12900](https://github.com/RocketChat/Rocket.Chat/pull/12900)) -- PDF view loading indicator ([#12882](https://github.com/RocketChat/Rocket.Chat/pull/12882)) - - Reset password email ([#12898](https://github.com/RocketChat/Rocket.Chat/pull/12898)) +- PDF view loading indicator ([#12882](https://github.com/RocketChat/Rocket.Chat/pull/12882)) +
🔍 Minor changes @@ -6817,35 +7121,35 @@ ### 🐛 Bug fixes -- API users.info returns caller rooms and not requested user ones ([#12727](https://github.com/RocketChat/Rocket.Chat/pull/12727) by [@piotrkochan](https://github.com/piotrkochan)) - - Change spread operator to Array.from for Edge browser ([#12818](https://github.com/RocketChat/Rocket.Chat/pull/12818) by [@ohmonster](https://github.com/ohmonster)) -- Emoji as avatar ([#12805](https://github.com/RocketChat/Rocket.Chat/pull/12805)) +- API users.info returns caller rooms and not requested user ones ([#12727](https://github.com/RocketChat/Rocket.Chat/pull/12727) by [@piotrkochan](https://github.com/piotrkochan)) - Missing HipChat Enterprise Importer ([#12847](https://github.com/RocketChat/Rocket.Chat/pull/12847) by [@Hudell](https://github.com/Hudell)) +- Emoji as avatar ([#12805](https://github.com/RocketChat/Rocket.Chat/pull/12805)) +
🔍 Minor changes -- Bump Apps-Engine version ([#12848](https://github.com/RocketChat/Rocket.Chat/pull/12848)) +- Release 0.72.1 ([#12850](https://github.com/RocketChat/Rocket.Chat/pull/12850) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@ohmonster](https://github.com/ohmonster) & [@piotrkochan](https://github.com/piotrkochan)) -- Change file order in rocketchat-cors ([#12804](https://github.com/RocketChat/Rocket.Chat/pull/12804)) +- Bump Apps-Engine version ([#12848](https://github.com/RocketChat/Rocket.Chat/pull/12848)) -- Release 0.72.1 ([#12850](https://github.com/RocketChat/Rocket.Chat/pull/12850) by [@Hudell](https://github.com/Hudell) & [@ohmonster](https://github.com/ohmonster) & [@piotrkochan](https://github.com/piotrkochan)) +- Change file order in rocketchat-cors ([#12804](https://github.com/RocketChat/Rocket.Chat/pull/12804) by [@MarcosSpessatto](https://github.com/MarcosSpessatto))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@ohmonster](https://github.com/ohmonster) - [@piotrkochan](https://github.com/piotrkochan) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@d-gubert](https://github.com/d-gubert) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -6864,261 +7168,261 @@ ### 🎉 New features -- /api/v1/spotlight: return joinCodeRequired field for rooms ([#12651](https://github.com/RocketChat/Rocket.Chat/pull/12651) by [@cardoso](https://github.com/cardoso)) - -- Add permission to enable personal access token to specific roles ([#12309](https://github.com/RocketChat/Rocket.Chat/pull/12309)) +- Add permission to enable personal access token to specific roles ([#12309](https://github.com/RocketChat/Rocket.Chat/pull/12309) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Make Livechat's widget draggable ([#12378](https://github.com/RocketChat/Rocket.Chat/pull/12378)) +- Option to reset e2e key ([#12483](https://github.com/RocketChat/Rocket.Chat/pull/12483) by [@Hudell](https://github.com/Hudell)) -- New API Endpoints for the new version of JS SDK ([#12623](https://github.com/RocketChat/Rocket.Chat/pull/12623)) +- /api/v1/spotlight: return joinCodeRequired field for rooms ([#12651](https://github.com/RocketChat/Rocket.Chat/pull/12651) by [@cardoso](https://github.com/cardoso)) -- Option to reset e2e key ([#12483](https://github.com/RocketChat/Rocket.Chat/pull/12483) by [@Hudell](https://github.com/Hudell)) +- New API Endpoints for the new version of JS SDK ([#12623](https://github.com/RocketChat/Rocket.Chat/pull/12623) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Setting to configure robots.txt content ([#12547](https://github.com/RocketChat/Rocket.Chat/pull/12547) by [@Hudell](https://github.com/Hudell)) +- Make Livechat's widget draggable ([#12378](https://github.com/RocketChat/Rocket.Chat/pull/12378)) + ### 🚀 Improvements -- Add CTRL modifier for keyboard shortcut ([#12525](https://github.com/RocketChat/Rocket.Chat/pull/12525) by [@nicolasbock](https://github.com/nicolasbock)) +- Improve unreads and unreadsFrom response, prevent it to be equal null ([#12563](https://github.com/RocketChat/Rocket.Chat/pull/12563) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add more methods to deal with rooms via Rocket.Chat.Apps ([#12680](https://github.com/RocketChat/Rocket.Chat/pull/12680)) +- Add rooms property in user object, if the user has the permission, with rooms roles ([#12105](https://github.com/RocketChat/Rocket.Chat/pull/12105) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add new acceptable header for Livechat REST requests ([#12561](https://github.com/RocketChat/Rocket.Chat/pull/12561)) +- border-radius to use --border-radius ([#12675](https://github.com/RocketChat/Rocket.Chat/pull/12675)) -- Add rooms property in user object, if the user has the permission, with rooms roles ([#12105](https://github.com/RocketChat/Rocket.Chat/pull/12105)) +- Update the 'keyboard shortcuts' documentation ([#12564](https://github.com/RocketChat/Rocket.Chat/pull/12564) by [@nicolasbock](https://github.com/nicolasbock)) -- Allow apps to update persistence by association ([#12714](https://github.com/RocketChat/Rocket.Chat/pull/12714)) +- Add new acceptable header for Livechat REST requests ([#12561](https://github.com/RocketChat/Rocket.Chat/pull/12561)) - Atlassian Crowd settings and option to sync user data ([#12616](https://github.com/RocketChat/Rocket.Chat/pull/12616)) -- Better query for finding subscriptions that need a new E2E Key ([#12692](https://github.com/RocketChat/Rocket.Chat/pull/12692) by [@Hudell](https://github.com/Hudell)) - -- border-radius to use --border-radius ([#12675](https://github.com/RocketChat/Rocket.Chat/pull/12675)) - - CircleCI to use MongoDB 4.0 for testing ([#12618](https://github.com/RocketChat/Rocket.Chat/pull/12618)) -- Emoji search on messageBox behaving like emojiPicker's search (#9607) ([#12452](https://github.com/RocketChat/Rocket.Chat/pull/12452) by [@vinade](https://github.com/vinade)) +- Japanese translations ([#12382](https://github.com/RocketChat/Rocket.Chat/pull/12382) by [@ura14h](https://github.com/ura14h)) -- German translations ([#12471](https://github.com/RocketChat/Rocket.Chat/pull/12471) by [@mrsimpson](https://github.com/mrsimpson)) +- Add CTRL modifier for keyboard shortcut ([#12525](https://github.com/RocketChat/Rocket.Chat/pull/12525) by [@nicolasbock](https://github.com/nicolasbock)) - Ignore non-existent Livechat custom fields on Livechat API ([#12522](https://github.com/RocketChat/Rocket.Chat/pull/12522)) -- Improve unreads and unreadsFrom response, prevent it to be equal null ([#12563](https://github.com/RocketChat/Rocket.Chat/pull/12563)) +- Emoji search on messageBox behaving like emojiPicker's search (#9607) ([#12452](https://github.com/RocketChat/Rocket.Chat/pull/12452) by [@vinade](https://github.com/vinade)) -- Japanese translations ([#12382](https://github.com/RocketChat/Rocket.Chat/pull/12382) by [@ura14h](https://github.com/ura14h)) +- German translations ([#12471](https://github.com/RocketChat/Rocket.Chat/pull/12471) by [@mrsimpson](https://github.com/mrsimpson)) - Limit the number of typing users shown (#8722) ([#12400](https://github.com/RocketChat/Rocket.Chat/pull/12400) by [@vinade](https://github.com/vinade)) -- Update the 'keyboard shortcuts' documentation ([#12564](https://github.com/RocketChat/Rocket.Chat/pull/12564) by [@nicolasbock](https://github.com/nicolasbock)) +- Allow apps to update persistence by association ([#12714](https://github.com/RocketChat/Rocket.Chat/pull/12714)) -### 🐛 Bug fixes +- Add more methods to deal with rooms via Rocket.Chat.Apps ([#12680](https://github.com/RocketChat/Rocket.Chat/pull/12680)) +- Better query for finding subscriptions that need a new E2E Key ([#12692](https://github.com/RocketChat/Rocket.Chat/pull/12692) by [@Hudell](https://github.com/Hudell)) -- `Disabled` word translation to Chinese ([#12260](https://github.com/RocketChat/Rocket.Chat/pull/12260) by [@AndreamApp](https://github.com/AndreamApp)) +### 🐛 Bug fixes -- `Disabled` word translation to Spanish ([#12406](https://github.com/RocketChat/Rocket.Chat/pull/12406) by [@Ismaw34](https://github.com/Ismaw34)) -- Admin styles ([#12614](https://github.com/RocketChat/Rocket.Chat/pull/12614)) +- Fixed Anonymous Registration ([#12633](https://github.com/RocketChat/Rocket.Chat/pull/12633) by [@wreiske](https://github.com/wreiske)) -- Admin styles ([#12602](https://github.com/RocketChat/Rocket.Chat/pull/12602)) +- high cpu usage ~ svg icon ([#12677](https://github.com/RocketChat/Rocket.Chat/pull/12677) by [@ph1p](https://github.com/ph1p)) -- Change registration message when user need to confirm email ([#9336](https://github.com/RocketChat/Rocket.Chat/pull/9336) by [@karlprieb](https://github.com/karlprieb)) +- Fix favico error ([#12643](https://github.com/RocketChat/Rocket.Chat/pull/12643) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Condition to not render PDF preview ([#12632](https://github.com/RocketChat/Rocket.Chat/pull/12632)) -- Correct roomName value in Mail Messages (#12363) ([#12453](https://github.com/RocketChat/Rocket.Chat/pull/12453) by [@vinade](https://github.com/vinade)) +- Admin styles ([#12614](https://github.com/RocketChat/Rocket.Chat/pull/12614)) -- DE translation for idle-time-limit ([#12637](https://github.com/RocketChat/Rocket.Chat/pull/12637) by [@pfuender](https://github.com/pfuender)) +- Admin styles ([#12602](https://github.com/RocketChat/Rocket.Chat/pull/12602)) -- Emoji picker is not in viewport on small screens ([#12457](https://github.com/RocketChat/Rocket.Chat/pull/12457) by [@ramrami](https://github.com/ramrami)) +- Change registration message when user need to confirm email ([#9336](https://github.com/RocketChat/Rocket.Chat/pull/9336) by [@karlprieb](https://github.com/karlprieb)) -- Fix favico error ([#12643](https://github.com/RocketChat/Rocket.Chat/pull/12643)) +- Import missed file in rocketchat-authorization ([#12570](https://github.com/RocketChat/Rocket.Chat/pull/12570) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix wrong parameter in chat.delete endpoint and add some test cases ([#12408](https://github.com/RocketChat/Rocket.Chat/pull/12408)) +- Prevent subscriptions and calls to rooms events that the user is not participating ([#12558](https://github.com/RocketChat/Rocket.Chat/pull/12558) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fixed Anonymous Registration ([#12633](https://github.com/RocketChat/Rocket.Chat/pull/12633) by [@wreiske](https://github.com/wreiske)) +- Wrong test case for `users.setAvatar` endpoint ([#12539](https://github.com/RocketChat/Rocket.Chat/pull/12539) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + +- Spotlight method being called multiple times ([#12536](https://github.com/RocketChat/Rocket.Chat/pull/12536)) - German translation for for API_EmbedIgnoredHosts label ([#12518](https://github.com/RocketChat/Rocket.Chat/pull/12518) by [@mbrodala](https://github.com/mbrodala)) - Handle all events for enter key in message box ([#12507](https://github.com/RocketChat/Rocket.Chat/pull/12507)) -- high cpu usage ~ svg icon ([#12677](https://github.com/RocketChat/Rocket.Chat/pull/12677) by [@ph1p](https://github.com/ph1p)) - -- Import missed file in rocketchat-authorization ([#12570](https://github.com/RocketChat/Rocket.Chat/pull/12570)) +- Fix wrong parameter in chat.delete endpoint and add some test cases ([#12408](https://github.com/RocketChat/Rocket.Chat/pull/12408) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Manage own integrations permissions check ([#12397](https://github.com/RocketChat/Rocket.Chat/pull/12397)) -- Prevent subscriptions and calls to rooms events that the user is not participating ([#12558](https://github.com/RocketChat/Rocket.Chat/pull/12558)) +- stream room-changed ([#12411](https://github.com/RocketChat/Rocket.Chat/pull/12411)) -- Spotlight method being called multiple times ([#12536](https://github.com/RocketChat/Rocket.Chat/pull/12536)) +- Emoji picker is not in viewport on small screens ([#12457](https://github.com/RocketChat/Rocket.Chat/pull/12457) by [@ramrami](https://github.com/ramrami)) -- stream room-changed ([#12411](https://github.com/RocketChat/Rocket.Chat/pull/12411)) +- `Disabled` word translation to Spanish ([#12406](https://github.com/RocketChat/Rocket.Chat/pull/12406) by [@Ismaw34](https://github.com/Ismaw34)) + +- `Disabled` word translation to Chinese ([#12260](https://github.com/RocketChat/Rocket.Chat/pull/12260) by [@AndreamApp](https://github.com/AndreamApp)) + +- Correct roomName value in Mail Messages (#12363) ([#12453](https://github.com/RocketChat/Rocket.Chat/pull/12453) by [@vinade](https://github.com/vinade)) - Update caret position on insert a new line in message box ([#12713](https://github.com/RocketChat/Rocket.Chat/pull/12713)) -- Wrong test case for `users.setAvatar` endpoint ([#12539](https://github.com/RocketChat/Rocket.Chat/pull/12539)) +- DE translation for idle-time-limit ([#12637](https://github.com/RocketChat/Rocket.Chat/pull/12637) by [@pfuender](https://github.com/pfuender))
🔍 Minor changes -- Convert rocketchat-channel-settings to main module structure ([#12594](https://github.com/RocketChat/Rocket.Chat/pull/12594)) +- LingoHub based on develop ([#12684](https://github.com/RocketChat/Rocket.Chat/pull/12684)) -- Convert rocketchat-emoji-custom to main module structure ([#12604](https://github.com/RocketChat/Rocket.Chat/pull/12604)) +- Convert rocketchat-mail-messages to main module structure ([#12682](https://github.com/RocketChat/Rocket.Chat/pull/12682) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-slack to main module structure ([#12666](https://github.com/RocketChat/Rocket.Chat/pull/12666)) +- Convert rocketchat-livestream to main module structure ([#12679](https://github.com/RocketChat/Rocket.Chat/pull/12679) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-livestream to main module structure ([#12679](https://github.com/RocketChat/Rocket.Chat/pull/12679)) +- Added "npm install" to quick start for developers ([#12374](https://github.com/RocketChat/Rocket.Chat/pull/12374) by [@wreiske](https://github.com/wreiske)) -- [DOCS] Remove Cordova links, include F-Droid download button and few other adjustments ([#12583](https://github.com/RocketChat/Rocket.Chat/pull/12583) by [@rafaelks](https://github.com/rafaelks)) +- Convert rocketchat-ldap to main module structure ([#12678](https://github.com/RocketChat/Rocket.Chat/pull/12678) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Added "npm install" to quick start for developers ([#12374](https://github.com/RocketChat/Rocket.Chat/pull/12374) by [@wreiske](https://github.com/wreiske)) +- Convert rocketchat-issuelinks to main module structure ([#12674](https://github.com/RocketChat/Rocket.Chat/pull/12674) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Added imports for global variables in rocketchat-google-natural-language package ([#12647](https://github.com/RocketChat/Rocket.Chat/pull/12647)) +- Convert rocketchat-integrations to main module structure ([#12670](https://github.com/RocketChat/Rocket.Chat/pull/12670) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Bump Apps Engine to 1.3.0 ([#12705](https://github.com/RocketChat/Rocket.Chat/pull/12705)) +- Convert rocketchat-irc to main module structure ([#12672](https://github.com/RocketChat/Rocket.Chat/pull/12672) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert chatpal search package to modular structure ([#12485](https://github.com/RocketChat/Rocket.Chat/pull/12485)) +- Convert rocketchat-internal-hubot to main module structure ([#12671](https://github.com/RocketChat/Rocket.Chat/pull/12671) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert emoji-emojione to main module structure ([#12605](https://github.com/RocketChat/Rocket.Chat/pull/12605)) +- Convert rocketchat-importer-hipchat-enterprise to main module structure ([#12665](https://github.com/RocketChat/Rocket.Chat/pull/12665) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-accounts-saml to main module structure ([#12486](https://github.com/RocketChat/Rocket.Chat/pull/12486)) +- Convert rocketchat-importer-slack-users to main module structure ([#12669](https://github.com/RocketChat/Rocket.Chat/pull/12669) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-autocomplete package to main module structure ([#12491](https://github.com/RocketChat/Rocket.Chat/pull/12491)) +- Convert rocketchat-importer-slack to main module structure ([#12666](https://github.com/RocketChat/Rocket.Chat/pull/12666) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert meteor-timesync to main module structure ([#12495](https://github.com/RocketChat/Rocket.Chat/pull/12495)) +- Convert rocketchat-iframe-login to main module structure ([#12661](https://github.com/RocketChat/Rocket.Chat/pull/12661) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-2fa to main module structure ([#12501](https://github.com/RocketChat/Rocket.Chat/pull/12501)) +- Convert rocketchat-importer to main module structure ([#12662](https://github.com/RocketChat/Rocket.Chat/pull/12662) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-action-links to main module structure ([#12503](https://github.com/RocketChat/Rocket.Chat/pull/12503)) +- Convert rocketchat-importer-csv to main module structure ([#12663](https://github.com/RocketChat/Rocket.Chat/pull/12663) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-analytics to main module structure ([#12506](https://github.com/RocketChat/Rocket.Chat/pull/12506)) +- Convert rocketchat-importer-hipchat to main module structure ([#12664](https://github.com/RocketChat/Rocket.Chat/pull/12664) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-api to main module structure ([#12510](https://github.com/RocketChat/Rocket.Chat/pull/12510)) +- Convert rocketchat-highlight-words to main module structure ([#12659](https://github.com/RocketChat/Rocket.Chat/pull/12659) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-assets to main module structure ([#12521](https://github.com/RocketChat/Rocket.Chat/pull/12521)) +- Convert rocketchat-grant to main module structure ([#12657](https://github.com/RocketChat/Rocket.Chat/pull/12657) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-authorization to main module structure ([#12523](https://github.com/RocketChat/Rocket.Chat/pull/12523)) +- Convert rocketchat-graphql to main module structure ([#12658](https://github.com/RocketChat/Rocket.Chat/pull/12658) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-autolinker to main module structure ([#12529](https://github.com/RocketChat/Rocket.Chat/pull/12529)) +- Convert rocketchat-google-vision to main module structure ([#12649](https://github.com/RocketChat/Rocket.Chat/pull/12649) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-autotranslate to main module structure ([#12530](https://github.com/RocketChat/Rocket.Chat/pull/12530)) +- Removed RocketChatFile from globals ([#12650](https://github.com/RocketChat/Rocket.Chat/pull/12650) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-bot-helpers to main module structure ([#12531](https://github.com/RocketChat/Rocket.Chat/pull/12531)) +- Added imports for global variables in rocketchat-google-natural-language package ([#12647](https://github.com/RocketChat/Rocket.Chat/pull/12647) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-cas to main module structure ([#12532](https://github.com/RocketChat/Rocket.Chat/pull/12532)) +- Convert rocketchat-gitlab to main module structure ([#12646](https://github.com/RocketChat/Rocket.Chat/pull/12646) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-channel-settings-mail-messages to main module structure ([#12537](https://github.com/RocketChat/Rocket.Chat/pull/12537)) +- Convert rocketchat-file to main module structure ([#12644](https://github.com/RocketChat/Rocket.Chat/pull/12644) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-colors to main module structure ([#12538](https://github.com/RocketChat/Rocket.Chat/pull/12538)) +- Convert rocketchat-github-enterprise to main module structure ([#12642](https://github.com/RocketChat/Rocket.Chat/pull/12642) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-cors to main module structure ([#12595](https://github.com/RocketChat/Rocket.Chat/pull/12595)) +- Fix: Add email dependency in package.js ([#12645](https://github.com/RocketChat/Rocket.Chat/pull/12645) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-crowd to main module structure ([#12596](https://github.com/RocketChat/Rocket.Chat/pull/12596)) +- Convert rocketchat-custom-sounds to main module structure ([#12599](https://github.com/RocketChat/Rocket.Chat/pull/12599) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-custom-sounds to main module structure ([#12599](https://github.com/RocketChat/Rocket.Chat/pull/12599)) +- Fix crowd error with import of SyncedCron ([#12641](https://github.com/RocketChat/Rocket.Chat/pull/12641)) -- Convert rocketchat-dolphin to main module structure ([#12600](https://github.com/RocketChat/Rocket.Chat/pull/12600)) +- Convert emoji-emojione to main module structure ([#12605](https://github.com/RocketChat/Rocket.Chat/pull/12605) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-drupal to main module structure ([#12601](https://github.com/RocketChat/Rocket.Chat/pull/12601)) +- Convert rocketchat-favico to main module structure ([#12607](https://github.com/RocketChat/Rocket.Chat/pull/12607) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-emoji to main module structure ([#12603](https://github.com/RocketChat/Rocket.Chat/pull/12603)) +- Convert rocketchat-emoji-custom to main module structure ([#12604](https://github.com/RocketChat/Rocket.Chat/pull/12604) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-error-handler to main module structure ([#12606](https://github.com/RocketChat/Rocket.Chat/pull/12606)) +- Convert rocketchat-error-handler to main module structure ([#12606](https://github.com/RocketChat/Rocket.Chat/pull/12606) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-favico to main module structure ([#12607](https://github.com/RocketChat/Rocket.Chat/pull/12607)) +- Convert rocketchat-drupal to main module structure ([#12601](https://github.com/RocketChat/Rocket.Chat/pull/12601) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-file to main module structure ([#12644](https://github.com/RocketChat/Rocket.Chat/pull/12644)) +- Convert rocketchat-crowd to main module structure ([#12596](https://github.com/RocketChat/Rocket.Chat/pull/12596) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-github-enterprise to main module structure ([#12642](https://github.com/RocketChat/Rocket.Chat/pull/12642)) +- Convert rocketchat-emoji to main module structure ([#12603](https://github.com/RocketChat/Rocket.Chat/pull/12603) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-gitlab to main module structure ([#12646](https://github.com/RocketChat/Rocket.Chat/pull/12646)) +- Fix users.setAvatar endpoint tests and logic ([#12625](https://github.com/RocketChat/Rocket.Chat/pull/12625) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-google-vision to main module structure ([#12649](https://github.com/RocketChat/Rocket.Chat/pull/12649)) +- [DOCS] Remove Cordova links, include F-Droid download button and few other adjustments ([#12583](https://github.com/RocketChat/Rocket.Chat/pull/12583) by [@rafaelks](https://github.com/rafaelks)) -- Convert rocketchat-grant to main module structure ([#12657](https://github.com/RocketChat/Rocket.Chat/pull/12657)) +- Convert rocketchat-dolphin to main module structure ([#12600](https://github.com/RocketChat/Rocket.Chat/pull/12600) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-graphql to main module structure ([#12658](https://github.com/RocketChat/Rocket.Chat/pull/12658)) +- Convert rocketchat-channel-settings to main module structure ([#12594](https://github.com/RocketChat/Rocket.Chat/pull/12594) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-highlight-words to main module structure ([#12659](https://github.com/RocketChat/Rocket.Chat/pull/12659)) +- Convert rocketchat-cors to main module structure ([#12595](https://github.com/RocketChat/Rocket.Chat/pull/12595) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-iframe-login to main module structure ([#12661](https://github.com/RocketChat/Rocket.Chat/pull/12661)) +- Convert rocketchat-autotranslate to main module structure ([#12530](https://github.com/RocketChat/Rocket.Chat/pull/12530) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer to main module structure ([#12662](https://github.com/RocketChat/Rocket.Chat/pull/12662)) +- Convert rocketchat-channel-settings-mail-messages to main module structure ([#12537](https://github.com/RocketChat/Rocket.Chat/pull/12537) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-csv to main module structure ([#12663](https://github.com/RocketChat/Rocket.Chat/pull/12663)) +- Convert rocketchat-colors to main module structure ([#12538](https://github.com/RocketChat/Rocket.Chat/pull/12538) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-hipchat to main module structure ([#12664](https://github.com/RocketChat/Rocket.Chat/pull/12664)) +- Convert rocketchat-cas to main module structure ([#12532](https://github.com/RocketChat/Rocket.Chat/pull/12532) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-hipchat-enterprise to main module structure ([#12665](https://github.com/RocketChat/Rocket.Chat/pull/12665)) +- Convert rocketchat-bot-helpers to main module structure ([#12531](https://github.com/RocketChat/Rocket.Chat/pull/12531) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-importer-slack-users to main module structure ([#12669](https://github.com/RocketChat/Rocket.Chat/pull/12669)) +- Convert rocketchat-autolinker to main module structure ([#12529](https://github.com/RocketChat/Rocket.Chat/pull/12529) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-integrations to main module structure ([#12670](https://github.com/RocketChat/Rocket.Chat/pull/12670)) +- Convert rocketchat-authorization to main module structure ([#12523](https://github.com/RocketChat/Rocket.Chat/pull/12523) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-internal-hubot to main module structure ([#12671](https://github.com/RocketChat/Rocket.Chat/pull/12671)) +- Fix CSS import order ([#12524](https://github.com/RocketChat/Rocket.Chat/pull/12524)) -- Convert rocketchat-irc to main module structure ([#12672](https://github.com/RocketChat/Rocket.Chat/pull/12672)) +- Remove template for feature requests as issues ([#12426](https://github.com/RocketChat/Rocket.Chat/pull/12426)) -- Convert rocketchat-issuelinks to main module structure ([#12674](https://github.com/RocketChat/Rocket.Chat/pull/12674)) +- Fix punctuation, spelling, and grammar ([#12451](https://github.com/RocketChat/Rocket.Chat/pull/12451) by [@imronras](https://github.com/imronras)) -- Convert rocketchat-ldap to main module structure ([#12678](https://github.com/RocketChat/Rocket.Chat/pull/12678)) +- Convert rocketchat-assets to main module structure ([#12521](https://github.com/RocketChat/Rocket.Chat/pull/12521) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Convert rocketchat-mail-messages to main module structure ([#12682](https://github.com/RocketChat/Rocket.Chat/pull/12682)) +- Convert rocketchat-api to main module structure ([#12510](https://github.com/RocketChat/Rocket.Chat/pull/12510) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix crowd error with import of SyncedCron ([#12641](https://github.com/RocketChat/Rocket.Chat/pull/12641)) +- Convert rocketchat-analytics to main module structure ([#12506](https://github.com/RocketChat/Rocket.Chat/pull/12506) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix CSS import order ([#12524](https://github.com/RocketChat/Rocket.Chat/pull/12524)) +- Convert rocketchat-action-links to main module structure ([#12503](https://github.com/RocketChat/Rocket.Chat/pull/12503) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix ES translation ([#12509](https://github.com/RocketChat/Rocket.Chat/pull/12509)) +- Convert rocketchat-2fa to main module structure ([#12501](https://github.com/RocketChat/Rocket.Chat/pull/12501) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix punctuation, spelling, and grammar ([#12451](https://github.com/RocketChat/Rocket.Chat/pull/12451) by [@imronras](https://github.com/imronras)) +- Convert meteor-timesync to main module structure ([#12495](https://github.com/RocketChat/Rocket.Chat/pull/12495) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix some Ukrainian translations ([#12712](https://github.com/RocketChat/Rocket.Chat/pull/12712) by [@zdumitru](https://github.com/zdumitru)) +- Convert meteor-autocomplete package to main module structure ([#12491](https://github.com/RocketChat/Rocket.Chat/pull/12491) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix users.setAvatar endpoint tests and logic ([#12625](https://github.com/RocketChat/Rocket.Chat/pull/12625)) +- Convert meteor-accounts-saml to main module structure ([#12486](https://github.com/RocketChat/Rocket.Chat/pull/12486) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Add email dependency in package.js ([#12645](https://github.com/RocketChat/Rocket.Chat/pull/12645)) +- Convert chatpal search package to modular structure ([#12485](https://github.com/RocketChat/Rocket.Chat/pull/12485) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Developers not being able to debug root files in VSCode ([#12440](https://github.com/RocketChat/Rocket.Chat/pull/12440) by [@mrsimpson](https://github.com/mrsimpson)) +- Removal of TAPi18n and TAPi18next global variables ([#12467](https://github.com/RocketChat/Rocket.Chat/pull/12467) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Exception when registering a user with gravatar ([#12699](https://github.com/RocketChat/Rocket.Chat/pull/12699)) +- Removal of Template, Blaze, BlazeLayout, FlowRouter, DDPRateLimiter, Session, UAParser, Promise, Reload and CryptoJS global variables ([#12433](https://github.com/RocketChat/Rocket.Chat/pull/12433) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Fix tests by increasing window size ([#12707](https://github.com/RocketChat/Rocket.Chat/pull/12707)) +- Removal of Match, check, moment, Tracker and Mongo global variables ([#12410](https://github.com/RocketChat/Rocket.Chat/pull/12410) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Improve: Add missing translation keys. ([#12708](https://github.com/RocketChat/Rocket.Chat/pull/12708) by [@ura14h](https://github.com/ura14h)) +- Removal of EJSON, Accounts, Email, HTTP, Random, ReactiveDict, ReactiveVar, SHA256 and WebApp global variables ([#12377](https://github.com/RocketChat/Rocket.Chat/pull/12377)) -- LingoHub based on develop ([#12684](https://github.com/RocketChat/Rocket.Chat/pull/12684)) +- Removal of Meteor global variable ([#12371](https://github.com/RocketChat/Rocket.Chat/pull/12371)) -- LingoHub based on develop ([#12470](https://github.com/RocketChat/Rocket.Chat/pull/12470)) +- Fix ES translation ([#12509](https://github.com/RocketChat/Rocket.Chat/pull/12509)) -- Merge master into develop & Set version to 0.72.0-develop ([#12460](https://github.com/RocketChat/Rocket.Chat/pull/12460) by [@Hudell](https://github.com/Hudell)) +- LingoHub based on develop ([#12470](https://github.com/RocketChat/Rocket.Chat/pull/12470)) -- Regression: Account pages layout ([#12735](https://github.com/RocketChat/Rocket.Chat/pull/12735)) +- Update npm dependencies ([#12465](https://github.com/RocketChat/Rocket.Chat/pull/12465)) -- Regression: Expand Administration sections by toggling section title ([#12736](https://github.com/RocketChat/Rocket.Chat/pull/12736)) +- Fix: Developers not being able to debug root files in VSCode ([#12440](https://github.com/RocketChat/Rocket.Chat/pull/12440) by [@mrsimpson](https://github.com/mrsimpson)) -- Regression: Fix Safari detection in PDF previewing ([#12737](https://github.com/RocketChat/Rocket.Chat/pull/12737)) +- Merge master into develop & Set version to 0.72.0-develop ([#12460](https://github.com/RocketChat/Rocket.Chat/pull/12460) by [@Hudell](https://github.com/Hudell)) -- Regression: Inherit font-family for message box ([#12729](https://github.com/RocketChat/Rocket.Chat/pull/12729)) +- Fix some Ukrainian translations ([#12712](https://github.com/RocketChat/Rocket.Chat/pull/12712) by [@zdumitru](https://github.com/zdumitru)) -- Removal of EJSON, Accounts, Email, HTTP, Random, ReactiveDict, ReactiveVar, SHA256 and WebApp global variables ([#12377](https://github.com/RocketChat/Rocket.Chat/pull/12377)) +- Improve: Add missing translation keys. ([#12708](https://github.com/RocketChat/Rocket.Chat/pull/12708) by [@ura14h](https://github.com/ura14h)) -- Removal of Match, check, moment, Tracker and Mongo global variables ([#12410](https://github.com/RocketChat/Rocket.Chat/pull/12410)) +- Bump Apps Engine to 1.3.0 ([#12705](https://github.com/RocketChat/Rocket.Chat/pull/12705)) -- Removal of Meteor global variable ([#12371](https://github.com/RocketChat/Rocket.Chat/pull/12371)) +- Fix: Exception when registering a user with gravatar ([#12699](https://github.com/RocketChat/Rocket.Chat/pull/12699) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of TAPi18n and TAPi18next global variables ([#12467](https://github.com/RocketChat/Rocket.Chat/pull/12467)) +- Fix: Fix tests by increasing window size ([#12707](https://github.com/RocketChat/Rocket.Chat/pull/12707) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Removal of Template, Blaze, BlazeLayout, FlowRouter, DDPRateLimiter, Session, UAParser, Promise, Reload and CryptoJS global variables ([#12433](https://github.com/RocketChat/Rocket.Chat/pull/12433)) +- Update Apps Engine to 1.3.1 ([#12741](https://github.com/RocketChat/Rocket.Chat/pull/12741)) -- Remove template for feature requests as issues ([#12426](https://github.com/RocketChat/Rocket.Chat/pull/12426)) +- Regression: Expand Administration sections by toggling section title ([#12736](https://github.com/RocketChat/Rocket.Chat/pull/12736)) -- Removed RocketChatFile from globals ([#12650](https://github.com/RocketChat/Rocket.Chat/pull/12650)) +- Regression: Fix Safari detection in PDF previewing ([#12737](https://github.com/RocketChat/Rocket.Chat/pull/12737)) -- Update Apps Engine to 1.3.1 ([#12741](https://github.com/RocketChat/Rocket.Chat/pull/12741)) +- Regression: Account pages layout ([#12735](https://github.com/RocketChat/Rocket.Chat/pull/12735)) -- Update npm dependencies ([#12465](https://github.com/RocketChat/Rocket.Chat/pull/12465)) +- Regression: Inherit font-family for message box ([#12729](https://github.com/RocketChat/Rocket.Chat/pull/12729))
@@ -7127,6 +7431,7 @@ - [@AndreamApp](https://github.com/AndreamApp) - [@Hudell](https://github.com/Hudell) - [@Ismaw34](https://github.com/Ismaw34) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@cardoso](https://github.com/cardoso) - [@imronras](https://github.com/imronras) - [@karlprieb](https://github.com/karlprieb) @@ -7144,7 +7449,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@ggazzo](https://github.com/ggazzo) - [@marceloschmidt](https://github.com/marceloschmidt) @@ -7203,113 +7507,114 @@ ### ⚠️ BREAKING CHANGES -- Add expiration to API login tokens and fix duplicate login tokens created by LDAP ([#12186](https://github.com/RocketChat/Rocket.Chat/pull/12186)) +- Update `lastMessage` rooms property and convert the "starred" property, to the same format ([#12266](https://github.com/RocketChat/Rocket.Chat/pull/12266) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update `lastMessage` rooms property and convert the "starred" property, to the same format ([#12266](https://github.com/RocketChat/Rocket.Chat/pull/12266)) +- Add expiration to API login tokens and fix duplicate login tokens created by LDAP ([#12186](https://github.com/RocketChat/Rocket.Chat/pull/12186) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) ### 🎉 New features -- Ability to disable user presence monitor ([#12353](https://github.com/RocketChat/Rocket.Chat/pull/12353)) +- Add delete channel mutation to GraphQL API ([#11860](https://github.com/RocketChat/Rocket.Chat/pull/11860) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add "help wanted" section to Readme ([#12432](https://github.com/RocketChat/Rocket.Chat/pull/12432) by [@isabellarussell](https://github.com/isabellarussell)) +- sidenav size on large screens ([#12372](https://github.com/RocketChat/Rocket.Chat/pull/12372)) -- Add delete channel mutation to GraphQL API ([#11860](https://github.com/RocketChat/Rocket.Chat/pull/11860)) +- Ability to disable user presence monitor ([#12353](https://github.com/RocketChat/Rocket.Chat/pull/12353)) - PDF message attachment preview (client side rendering) ([#10519](https://github.com/RocketChat/Rocket.Chat/pull/10519) by [@kb0304](https://github.com/kb0304)) -- sidenav size on large screens ([#12372](https://github.com/RocketChat/Rocket.Chat/pull/12372)) +- Add "help wanted" section to Readme ([#12432](https://github.com/RocketChat/Rocket.Chat/pull/12432) by [@isabellarussell](https://github.com/isabellarussell)) ### 🚀 Improvements -- Add missing livechat i18n keys ([#12330](https://github.com/RocketChat/Rocket.Chat/pull/12330) by [@MarcosEllys](https://github.com/MarcosEllys)) +- Livechat room closure endpoints ([#12360](https://github.com/RocketChat/Rocket.Chat/pull/12360)) -- Allow the imports to accept any file type ([#12425](https://github.com/RocketChat/Rocket.Chat/pull/12425)) +- Set Livechat department before register guest ([#12161](https://github.com/RocketChat/Rocket.Chat/pull/12161)) -- Avoid unnecessary calls to Meteor.user() on client ([#11212](https://github.com/RocketChat/Rocket.Chat/pull/11212)) +- Add missing livechat i18n keys ([#12330](https://github.com/RocketChat/Rocket.Chat/pull/12330) by [@MarcosEllys](https://github.com/MarcosEllys)) -- Livechat room closure endpoints ([#12360](https://github.com/RocketChat/Rocket.Chat/pull/12360)) +- Avoid unnecessary calls to Meteor.user() on client ([#11212](https://github.com/RocketChat/Rocket.Chat/pull/11212)) -- Set Livechat department before register guest ([#12161](https://github.com/RocketChat/Rocket.Chat/pull/12161)) +- Allow the imports to accept any file type ([#12425](https://github.com/RocketChat/Rocket.Chat/pull/12425)) ### 🐛 Bug fixes - Add image dimensions to attachment even when no reorientation is required ([#11521](https://github.com/RocketChat/Rocket.Chat/pull/11521)) -- Apps not being able to state how the action buttons are aligned ([#12391](https://github.com/RocketChat/Rocket.Chat/pull/12391)) - -- Attachment actions not being collapsable ([#12436](https://github.com/RocketChat/Rocket.Chat/pull/12436)) - -- Attachment timestamp from and to Apps system not working ([#12445](https://github.com/RocketChat/Rocket.Chat/pull/12445)) +- iframe login token not checked ([#12158](https://github.com/RocketChat/Rocket.Chat/pull/12158) by [@nimetu](https://github.com/nimetu)) -- avatar?_dc=undefined ([#12365](https://github.com/RocketChat/Rocket.Chat/pull/12365)) +- REST `users.setAvatar` endpoint wasn't allowing update the avatar of other users even with correct permissions ([#11431](https://github.com/RocketChat/Rocket.Chat/pull/11431) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Blockstack errors in IE 11 ([#12338](https://github.com/RocketChat/Rocket.Chat/pull/12338)) +- Slack importer: image previews not showing ([#11875](https://github.com/RocketChat/Rocket.Chat/pull/11875) by [@Hudell](https://github.com/Hudell) & [@madguy02](https://github.com/madguy02)) -- Cast env var setting to int based on option type ([#12194](https://github.com/RocketChat/Rocket.Chat/pull/12194) by [@crazy-max](https://github.com/crazy-max)) +- Edit room name with uppercase letters ([#12235](https://github.com/RocketChat/Rocket.Chat/pull/12235) by [@nikeee](https://github.com/nikeee)) - Custom OAuth Configuration can't be removed ([#12256](https://github.com/RocketChat/Rocket.Chat/pull/12256) by [@Hudell](https://github.com/Hudell)) -- Date range check on livechat analytics ([#12345](https://github.com/RocketChat/Rocket.Chat/pull/12345) by [@teresy](https://github.com/teresy)) +- Remove e2e from users endpoint responses ([#12344](https://github.com/RocketChat/Rocket.Chat/pull/12344) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- E2E alert shows up when encryption is disabled ([#12272](https://github.com/RocketChat/Rocket.Chat/pull/12272) by [@Hudell](https://github.com/Hudell)) +- email api TAPi18n is undefined ([#12373](https://github.com/RocketChat/Rocket.Chat/pull/12373)) -- E2E: Decrypting UTF-8 encoded messages ([#12398](https://github.com/RocketChat/Rocket.Chat/pull/12398) by [@pmmaga](https://github.com/pmmaga)) +- Blockstack errors in IE 11 ([#12338](https://github.com/RocketChat/Rocket.Chat/pull/12338)) -- Edit room name with uppercase letters ([#12235](https://github.com/RocketChat/Rocket.Chat/pull/12235) by [@nikeee](https://github.com/nikeee)) +- avatar?_dc=undefined ([#12365](https://github.com/RocketChat/Rocket.Chat/pull/12365)) -- email api TAPi18n is undefined ([#12373](https://github.com/RocketChat/Rocket.Chat/pull/12373)) +- users.register endpoint to not create an user if username already being used ([#12297](https://github.com/RocketChat/Rocket.Chat/pull/12297) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- iframe login token not checked ([#12158](https://github.com/RocketChat/Rocket.Chat/pull/12158) by [@nimetu](https://github.com/nimetu)) +- Date range check on livechat analytics ([#12345](https://github.com/RocketChat/Rocket.Chat/pull/12345) by [@teresy](https://github.com/teresy)) -- Ignore errors when creating image preview for uploads ([#12424](https://github.com/RocketChat/Rocket.Chat/pull/12424)) +- Cast env var setting to int based on option type ([#12194](https://github.com/RocketChat/Rocket.Chat/pull/12194) by [@crazy-max](https://github.com/crazy-max)) -- Invalid destructuring on Livechat API endpoint ([#12354](https://github.com/RocketChat/Rocket.Chat/pull/12354)) +- Links in home layout ([#12355](https://github.com/RocketChat/Rocket.Chat/pull/12355) by [@upiksaleh](https://github.com/upiksaleh)) - Last message not updating after message delete if show deleted status is on ([#12350](https://github.com/RocketChat/Rocket.Chat/pull/12350)) -- Links in home layout ([#12355](https://github.com/RocketChat/Rocket.Chat/pull/12355) by [@upiksaleh](https://github.com/upiksaleh)) +- Invalid destructuring on Livechat API endpoint ([#12354](https://github.com/RocketChat/Rocket.Chat/pull/12354)) - Modal confirm on enter ([#12283](https://github.com/RocketChat/Rocket.Chat/pull/12283)) -- Remove e2e from users endpoint responses ([#12344](https://github.com/RocketChat/Rocket.Chat/pull/12344)) +- E2E alert shows up when encryption is disabled ([#12272](https://github.com/RocketChat/Rocket.Chat/pull/12272) by [@Hudell](https://github.com/Hudell)) -- REST `users.setAvatar` endpoint wasn't allowing update the avatar of other users even with correct permissions ([#11431](https://github.com/RocketChat/Rocket.Chat/pull/11431)) +- E2E: Decrypting UTF-8 encoded messages ([#12398](https://github.com/RocketChat/Rocket.Chat/pull/12398) by [@pmmaga](https://github.com/pmmaga)) -- Slack importer: image previews not showing ([#11875](https://github.com/RocketChat/Rocket.Chat/pull/11875) by [@Hudell](https://github.com/Hudell) & [@madguy02](https://github.com/madguy02)) +- Ignore errors when creating image preview for uploads ([#12424](https://github.com/RocketChat/Rocket.Chat/pull/12424)) + +- Attachment actions not being collapsable ([#12436](https://github.com/RocketChat/Rocket.Chat/pull/12436)) + +- Attachment timestamp from and to Apps system not working ([#12445](https://github.com/RocketChat/Rocket.Chat/pull/12445)) -- users.register endpoint to not create an user if username already being used ([#12297](https://github.com/RocketChat/Rocket.Chat/pull/12297)) +- Apps not being able to state how the action buttons are aligned ([#12391](https://github.com/RocketChat/Rocket.Chat/pull/12391))
🔍 Minor changes -- Apps: Room’s usernames was not working ([#12409](https://github.com/RocketChat/Rocket.Chat/pull/12409)) +- Fix: wrong saveUser permission validations ([#12384](https://github.com/RocketChat/Rocket.Chat/pull/12384)) -- Fix: Add wizard opt-in fields ([#12298](https://github.com/RocketChat/Rocket.Chat/pull/12298)) +- Regression: do not render pdf preview on safari <= 12 ([#12375](https://github.com/RocketChat/Rocket.Chat/pull/12375)) + +- Improve: Drop database between running tests on CI ([#12358](https://github.com/RocketChat/Rocket.Chat/pull/12358)) - Fix: update check on err.details ([#12346](https://github.com/RocketChat/Rocket.Chat/pull/12346) by [@teresy](https://github.com/teresy)) -- Fix: wrong saveUser permission validations ([#12384](https://github.com/RocketChat/Rocket.Chat/pull/12384)) +- Fix: Add wizard opt-in fields ([#12298](https://github.com/RocketChat/Rocket.Chat/pull/12298)) -- Improve: Drop database between running tests on CI ([#12358](https://github.com/RocketChat/Rocket.Chat/pull/12358)) +- Update Apps Framework to version 1.2.1 ([#12442](https://github.com/RocketChat/Rocket.Chat/pull/12442)) -- Regression: Change `starred` message property from object to array ([#12405](https://github.com/RocketChat/Rocket.Chat/pull/12405)) +- Regression: Change `starred` message property from object to array ([#12405](https://github.com/RocketChat/Rocket.Chat/pull/12405) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Regression: do not render pdf preview on safari <= 12 ([#12375](https://github.com/RocketChat/Rocket.Chat/pull/12375)) +- Apps: Room’s usernames was not working ([#12409](https://github.com/RocketChat/Rocket.Chat/pull/12409)) - Regression: Fix email headers not being used ([#12392](https://github.com/RocketChat/Rocket.Chat/pull/12392)) -- Update Apps Framework to version 1.2.1 ([#12442](https://github.com/RocketChat/Rocket.Chat/pull/12442)) -
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) - [@MarcosEllys](https://github.com/MarcosEllys) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@crazy-max](https://github.com/crazy-max) - [@isabellarussell](https://github.com/isabellarussell) - [@kb0304](https://github.com/kb0304) @@ -7322,7 +7627,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Sing-Li](https://github.com/Sing-Li) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -7364,10 +7668,10 @@ 🔍 Minor changes -- Fix: Add wizard opt-in fields ([#12298](https://github.com/RocketChat/Rocket.Chat/pull/12298)) - - Release 0.70.4 ([#12299](https://github.com/RocketChat/Rocket.Chat/pull/12299)) +- Fix: Add wizard opt-in fields ([#12298](https://github.com/RocketChat/Rocket.Chat/pull/12298)) +
### 👩‍💻👨‍💻 Core Team 🤓 @@ -7390,10 +7694,10 @@ 🔍 Minor changes -- Release 0.70.2 ([#12276](https://github.com/RocketChat/Rocket.Chat/pull/12276) by [@Hudell](https://github.com/Hudell)) - - Release 0.70.3 ([#12281](https://github.com/RocketChat/Rocket.Chat/pull/12281)) +- Release 0.70.2 ([#12276](https://github.com/RocketChat/Rocket.Chat/pull/12276) by [@Hudell](https://github.com/Hudell)) + ### 👩‍💻👨‍💻 Contributors 😍 @@ -7418,15 +7722,15 @@ - E2E password request not closing after entering password ([#12232](https://github.com/RocketChat/Rocket.Chat/pull/12232) by [@Hudell](https://github.com/Hudell)) -- Emails' logo and links ([#12241](https://github.com/RocketChat/Rocket.Chat/pull/12241)) - -- Livechat CRM integration running when disabled ([#12242](https://github.com/RocketChat/Rocket.Chat/pull/12242)) +- Message editing was duplicating reply quotes ([#12263](https://github.com/RocketChat/Rocket.Chat/pull/12263)) - Livechat integration with RDStation ([#12257](https://github.com/RocketChat/Rocket.Chat/pull/12257)) - Livechat triggers being registered twice after setting department via API ([#12255](https://github.com/RocketChat/Rocket.Chat/pull/12255) by [@edzluhan](https://github.com/edzluhan)) -- Message editing was duplicating reply quotes ([#12263](https://github.com/RocketChat/Rocket.Chat/pull/12263)) +- Livechat CRM integration running when disabled ([#12242](https://github.com/RocketChat/Rocket.Chat/pull/12242)) + +- Emails' logo and links ([#12241](https://github.com/RocketChat/Rocket.Chat/pull/12241)) - Set default action for Setup Wizard form submit ([#12240](https://github.com/RocketChat/Rocket.Chat/pull/12240)) @@ -7434,15 +7738,15 @@ 🔍 Minor changes -- Add reetp to the issues' bot whitelist ([#12227](https://github.com/RocketChat/Rocket.Chat/pull/12227)) - -- Fix: Remove semver satisfies from Apps details that is already done my marketplace ([#12268](https://github.com/RocketChat/Rocket.Chat/pull/12268)) +- Release 0.70.1 ([#12270](https://github.com/RocketChat/Rocket.Chat/pull/12270) by [@Hudell](https://github.com/Hudell) & [@edzluhan](https://github.com/edzluhan)) - Merge master into develop & Set version to 0.71.0-develop ([#12264](https://github.com/RocketChat/Rocket.Chat/pull/12264) by [@cardoso](https://github.com/cardoso) & [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@timkinnane](https://github.com/timkinnane)) - Regression: fix modal submit ([#12233](https://github.com/RocketChat/Rocket.Chat/pull/12233)) -- Release 0.70.1 ([#12270](https://github.com/RocketChat/Rocket.Chat/pull/12270) by [@Hudell](https://github.com/Hudell) & [@edzluhan](https://github.com/edzluhan)) +- Add reetp to the issues' bot whitelist ([#12227](https://github.com/RocketChat/Rocket.Chat/pull/12227)) + +- Fix: Remove semver satisfies from Apps details that is already done my marketplace ([#12268](https://github.com/RocketChat/Rocket.Chat/pull/12268)) @@ -7480,63 +7784,55 @@ ### 🎉 New features -- Add Livechat Analytics permission ([#12184](https://github.com/RocketChat/Rocket.Chat/pull/12184)) - - Allow multiple subcommands in MIGRATION_VERSION env variable ([#11184](https://github.com/RocketChat/Rocket.Chat/pull/11184) by [@arch119](https://github.com/arch119)) -- Apps are enabled by default now ([#12189](https://github.com/RocketChat/Rocket.Chat/pull/12189)) +- Support for end to end encryption ([#10094](https://github.com/RocketChat/Rocket.Chat/pull/10094) by [@mrinaldhar](https://github.com/mrinaldhar)) -- Apps: Add handlers for message updates ([#11993](https://github.com/RocketChat/Rocket.Chat/pull/11993) by [@cardoso](https://github.com/cardoso)) +- Livechat Analytics and Reports ([#11238](https://github.com/RocketChat/Rocket.Chat/pull/11238) by [@pkgodara](https://github.com/pkgodara)) -- Apps: API provider ([#11938](https://github.com/RocketChat/Rocket.Chat/pull/11938)) +- Apps: Add handlers for message updates ([#11993](https://github.com/RocketChat/Rocket.Chat/pull/11993) by [@cardoso](https://github.com/cardoso)) -- Blockstack as decentralized auth provider ([#12047](https://github.com/RocketChat/Rocket.Chat/pull/12047) by [@timkinnane](https://github.com/timkinnane)) +- Livechat notifications on new incoming inquiries for guest-pool ([#10588](https://github.com/RocketChat/Rocket.Chat/pull/10588) by [@mrsimpson](https://github.com/mrsimpson)) - Customizable default directory view ([#11965](https://github.com/RocketChat/Rocket.Chat/pull/11965) by [@ohmonster](https://github.com/ohmonster)) -- Informal German translations ([#9984](https://github.com/RocketChat/Rocket.Chat/pull/9984) by [@mrsimpson](https://github.com/mrsimpson)) +- Blockstack as decentralized auth provider ([#12047](https://github.com/RocketChat/Rocket.Chat/pull/12047) by [@timkinnane](https://github.com/timkinnane)) -- Livechat Analytics and Reports ([#11238](https://github.com/RocketChat/Rocket.Chat/pull/11238) by [@pkgodara](https://github.com/pkgodara)) +- Livechat REST endpoints ([#11900](https://github.com/RocketChat/Rocket.Chat/pull/11900)) -- Livechat notifications on new incoming inquiries for guest-pool ([#10588](https://github.com/RocketChat/Rocket.Chat/pull/10588) by [@mrsimpson](https://github.com/mrsimpson)) +- REST endpoints to get moderators from groups and channels ([#11909](https://github.com/RocketChat/Rocket.Chat/pull/11909) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat REST endpoints ([#11900](https://github.com/RocketChat/Rocket.Chat/pull/11900)) +- User preference for 24- or 12-hour clock ([#11169](https://github.com/RocketChat/Rocket.Chat/pull/11169) by [@vynmera](https://github.com/vynmera)) -- Livechat trigger option to run only once ([#12068](https://github.com/RocketChat/Rocket.Chat/pull/12068) by [@edzluhan](https://github.com/edzluhan)) +- REST endpoint to set groups' announcement ([#11905](https://github.com/RocketChat/Rocket.Chat/pull/11905) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- REST endpoint to set groups' announcement ([#11905](https://github.com/RocketChat/Rocket.Chat/pull/11905)) +- Livechat trigger option to run only once ([#12068](https://github.com/RocketChat/Rocket.Chat/pull/12068) by [@edzluhan](https://github.com/edzluhan)) - REST endpoints to create roles and assign roles to users ([#11855](https://github.com/RocketChat/Rocket.Chat/pull/11855) by [@aferreira44](https://github.com/aferreira44)) -- REST endpoints to get moderators from groups and channels ([#11909](https://github.com/RocketChat/Rocket.Chat/pull/11909)) +- Informal German translations ([#9984](https://github.com/RocketChat/Rocket.Chat/pull/9984) by [@mrsimpson](https://github.com/mrsimpson)) -- Support for end to end encryption ([#10094](https://github.com/RocketChat/Rocket.Chat/pull/10094) by [@mrinaldhar](https://github.com/mrinaldhar)) +- Apps: API provider ([#11938](https://github.com/RocketChat/Rocket.Chat/pull/11938)) -- User preference for 24- or 12-hour clock ([#11169](https://github.com/RocketChat/Rocket.Chat/pull/11169) by [@vynmera](https://github.com/vynmera)) +- Apps are enabled by default now ([#12189](https://github.com/RocketChat/Rocket.Chat/pull/12189)) + +- Add Livechat Analytics permission ([#12184](https://github.com/RocketChat/Rocket.Chat/pull/12184)) - WebDAV Integration (User file provider) ([#11679](https://github.com/RocketChat/Rocket.Chat/pull/11679) by [@karakayasemi](https://github.com/karakayasemi)) ### 🚀 Improvements -- BigBlueButton joinViaHtml5 and video icon on sidebar ([#12107](https://github.com/RocketChat/Rocket.Chat/pull/12107)) - - Cache livechat get agent trigger call ([#12083](https://github.com/RocketChat/Rocket.Chat/pull/12083)) -- Use eslint-config package ([#12044](https://github.com/RocketChat/Rocket.Chat/pull/12044)) - -### 🐛 Bug fixes - - -- Adding scroll bar to read receipts modal ([#11919](https://github.com/RocketChat/Rocket.Chat/pull/11919) by [@rssilva](https://github.com/rssilva)) +- BigBlueButton joinViaHtml5 and video icon on sidebar ([#12107](https://github.com/RocketChat/Rocket.Chat/pull/12107)) -- Allow user with "bulk-register-user" permission to send invitations ([#12112](https://github.com/RocketChat/Rocket.Chat/pull/12112) by [@mrsimpson](https://github.com/mrsimpson)) +- Use eslint-config package ([#12044](https://github.com/RocketChat/Rocket.Chat/pull/12044)) -- app engine verbose log typo ([#12126](https://github.com/RocketChat/Rocket.Chat/pull/12126) by [@williamriancho](https://github.com/williamriancho)) +### 🐛 Bug fixes -- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) -- Apps being able to see hidden settings ([#12159](https://github.com/RocketChat/Rocket.Chat/pull/12159)) +- Livechat agent joining on pick from guest pool ([#12097](https://github.com/RocketChat/Rocket.Chat/pull/12097) by [@mrsimpson](https://github.com/mrsimpson)) - Apps: Add missing reactions and actions properties to app message object ([#11780](https://github.com/RocketChat/Rocket.Chat/pull/11780)) @@ -7544,101 +7840,109 @@ - Changing Mentions.userMentionRegex pattern to include
tag ([#12043](https://github.com/RocketChat/Rocket.Chat/pull/12043) by [@rssilva](https://github.com/rssilva)) -- Close popover on shortcuts and writing ([#11562](https://github.com/RocketChat/Rocket.Chat/pull/11562)) - -- Direct messages leaking into logs ([#11863](https://github.com/RocketChat/Rocket.Chat/pull/11863) by [@Hudell](https://github.com/Hudell)) - - Double output of message actions ([#11902](https://github.com/RocketChat/Rocket.Chat/pull/11902) by [@timkinnane](https://github.com/timkinnane)) -- Duplicate email and auto-join on mentions ([#12168](https://github.com/RocketChat/Rocket.Chat/pull/12168)) +- Login error message not obvious if user not activated ([#11785](https://github.com/RocketChat/Rocket.Chat/pull/11785) by [@crazy-max](https://github.com/crazy-max)) -- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Adding scroll bar to read receipts modal ([#11919](https://github.com/RocketChat/Rocket.Chat/pull/11919) by [@rssilva](https://github.com/rssilva)) -- Files list missing from popover menu when owner of room ([#11565](https://github.com/RocketChat/Rocket.Chat/pull/11565)) +- Fixing translation on 'yesterday' word when calling timeAgo function ([#11946](https://github.com/RocketChat/Rocket.Chat/pull/11946) by [@rssilva](https://github.com/rssilva)) - Fixing spacement between tags and words on some labels ([#12018](https://github.com/RocketChat/Rocket.Chat/pull/12018) by [@rssilva](https://github.com/rssilva)) -- Fixing translation on 'yesterday' word when calling timeAgo function ([#11946](https://github.com/RocketChat/Rocket.Chat/pull/11946) by [@rssilva](https://github.com/rssilva)) +- video message recording, issue #11651 ([#12031](https://github.com/RocketChat/Rocket.Chat/pull/12031) by [@flaviogrossi](https://github.com/flaviogrossi)) -- Hipchat import was failing when importing messages from a non existent user ([#11892](https://github.com/RocketChat/Rocket.Chat/pull/11892)) +- Prevent form submission in Files List search ([#11999](https://github.com/RocketChat/Rocket.Chat/pull/11999)) -- Hipchat importer was not importing users without emails and uploaded files ([#11910](https://github.com/RocketChat/Rocket.Chat/pull/11910)) +- Re-add the eye-off icon ([#12079](https://github.com/RocketChat/Rocket.Chat/pull/12079) by [@MIKI785](https://github.com/MIKI785)) -- Horizontal scroll on user info tab ([#12102](https://github.com/RocketChat/Rocket.Chat/pull/12102) by [@rssilva](https://github.com/rssilva)) +- Internal error when cross-origin with CORS is disabled ([#11953](https://github.com/RocketChat/Rocket.Chat/pull/11953) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Internal error when cross-origin with CORS is disabled ([#11953](https://github.com/RocketChat/Rocket.Chat/pull/11953)) +- Message reaction in GraphQL API ([#11967](https://github.com/RocketChat/Rocket.Chat/pull/11967) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- IRC Federation no longer working ([#11906](https://github.com/RocketChat/Rocket.Chat/pull/11906) by [@Hudell](https://github.com/Hudell)) +- Direct messages leaking into logs ([#11863](https://github.com/RocketChat/Rocket.Chat/pull/11863) by [@Hudell](https://github.com/Hudell)) -- Livechat agent joining on pick from guest pool ([#12097](https://github.com/RocketChat/Rocket.Chat/pull/12097) by [@mrsimpson](https://github.com/mrsimpson)) +- Wrong build path in install.sh ([#11879](https://github.com/RocketChat/Rocket.Chat/pull/11879)) -- Login error message not obvious if user not activated ([#11785](https://github.com/RocketChat/Rocket.Chat/pull/11785) by [@crazy-max](https://github.com/crazy-max)) +- Permission check on joinRoom for private room ([#11857](https://github.com/RocketChat/Rocket.Chat/pull/11857) by [@timkinnane](https://github.com/timkinnane)) -- Markdown ampersand escape on links ([#12140](https://github.com/RocketChat/Rocket.Chat/pull/12140) by [@rssilva](https://github.com/rssilva)) +- Close popover on shortcuts and writing ([#11562](https://github.com/RocketChat/Rocket.Chat/pull/11562)) -- Message reaction in GraphQL API ([#11967](https://github.com/RocketChat/Rocket.Chat/pull/11967)) +- Typo in a configuration key for SlackBridge excluded bot names ([#11872](https://github.com/RocketChat/Rocket.Chat/pull/11872) by [@TobiasKappe](https://github.com/TobiasKappe)) -- Not able to set per-channel retention policies if no global policy is set for this channel type ([#11927](https://github.com/RocketChat/Rocket.Chat/pull/11927) by [@vynmera](https://github.com/vynmera)) +- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) -- Permission check on joinRoom for private room ([#11857](https://github.com/RocketChat/Rocket.Chat/pull/11857) by [@timkinnane](https://github.com/timkinnane)) +- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) + +- Hipchat importer was not importing users without emails and uploaded files ([#11910](https://github.com/RocketChat/Rocket.Chat/pull/11910)) + +- Hipchat import was failing when importing messages from a non existent user ([#11892](https://github.com/RocketChat/Rocket.Chat/pull/11892)) + +- Real Name on Direct Messages ([#12154](https://github.com/RocketChat/Rocket.Chat/pull/12154)) - Position of popover component on mobile ([#12038](https://github.com/RocketChat/Rocket.Chat/pull/12038)) -- Prevent form submission in Files List search ([#11999](https://github.com/RocketChat/Rocket.Chat/pull/11999)) +- Duplicate email and auto-join on mentions ([#12168](https://github.com/RocketChat/Rocket.Chat/pull/12168)) -- Re-add the eye-off icon ([#12079](https://github.com/RocketChat/Rocket.Chat/pull/12079) by [@MIKI785](https://github.com/MIKI785)) +- Horizontal scroll on user info tab ([#12102](https://github.com/RocketChat/Rocket.Chat/pull/12102) by [@rssilva](https://github.com/rssilva)) -- Real Name on Direct Messages ([#12154](https://github.com/RocketChat/Rocket.Chat/pull/12154)) +- Markdown ampersand escape on links ([#12140](https://github.com/RocketChat/Rocket.Chat/pull/12140) by [@rssilva](https://github.com/rssilva)) - Saving user preferences ([#12170](https://github.com/RocketChat/Rocket.Chat/pull/12170)) -- Typo in a configuration key for SlackBridge excluded bot names ([#11872](https://github.com/RocketChat/Rocket.Chat/pull/11872) by [@TobiasKappe](https://github.com/TobiasKappe)) +- Apps being able to see hidden settings ([#12159](https://github.com/RocketChat/Rocket.Chat/pull/12159)) -- video message recording, issue #11651 ([#12031](https://github.com/RocketChat/Rocket.Chat/pull/12031) by [@flaviogrossi](https://github.com/flaviogrossi)) +- Allow user with "bulk-register-user" permission to send invitations ([#12112](https://github.com/RocketChat/Rocket.Chat/pull/12112) by [@mrsimpson](https://github.com/mrsimpson)) -- Wrong build path in install.sh ([#11879](https://github.com/RocketChat/Rocket.Chat/pull/11879)) +- IRC Federation no longer working ([#11906](https://github.com/RocketChat/Rocket.Chat/pull/11906) by [@Hudell](https://github.com/Hudell)) + +- Files list missing from popover menu when owner of room ([#11565](https://github.com/RocketChat/Rocket.Chat/pull/11565)) + +- Not able to set per-channel retention policies if no global policy is set for this channel type ([#11927](https://github.com/RocketChat/Rocket.Chat/pull/11927) by [@vynmera](https://github.com/vynmera)) + +- app engine verbose log typo ([#12126](https://github.com/RocketChat/Rocket.Chat/pull/12126) by [@williamriancho](https://github.com/williamriancho))
🔍 Minor changes +- LingoHub based on develop ([#11936](https://github.com/RocketChat/Rocket.Chat/pull/11936)) + - Better organize package.json ([#12115](https://github.com/RocketChat/Rocket.Chat/pull/12115)) +- Fix using wrong variable ([#12114](https://github.com/RocketChat/Rocket.Chat/pull/12114)) + - Fix the style lint ([#11991](https://github.com/RocketChat/Rocket.Chat/pull/11991)) -- Fix using wrong variable ([#12114](https://github.com/RocketChat/Rocket.Chat/pull/12114)) +- Merge master into develop & Set version to 0.70.0-develop ([#11921](https://github.com/RocketChat/Rocket.Chat/pull/11921) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@c0dzilla](https://github.com/c0dzilla) & [@rndmh3ro](https://github.com/rndmh3ro) & [@ubarsaiyan](https://github.com/ubarsaiyan) & [@vynmera](https://github.com/vynmera)) -- Fix: Add e2e doc to the alert ([#12187](https://github.com/RocketChat/Rocket.Chat/pull/12187)) +- Regression: fix message box autogrow ([#12138](https://github.com/RocketChat/Rocket.Chat/pull/12138)) + +- Regression: Modal height ([#12122](https://github.com/RocketChat/Rocket.Chat/pull/12122)) - Fix: Change wording on e2e to make a little more clear ([#12124](https://github.com/RocketChat/Rocket.Chat/pull/12124)) -- Fix: e2e password visible on always-on alert message. ([#12139](https://github.com/RocketChat/Rocket.Chat/pull/12139) by [@Hudell](https://github.com/Hudell)) +- Improve: Moved the e2e password request to an alert instead of a popup ([#12172](https://github.com/RocketChat/Rocket.Chat/pull/12172) by [@Hudell](https://github.com/Hudell)) -- Fix: Message changing order when been edited with apps enabled ([#12188](https://github.com/RocketChat/Rocket.Chat/pull/12188)) +- New: Option to change E2E key ([#12169](https://github.com/RocketChat/Rocket.Chat/pull/12169) by [@Hudell](https://github.com/Hudell)) - Improve: Decrypt last message ([#12173](https://github.com/RocketChat/Rocket.Chat/pull/12173)) -- Improve: Do not start E2E Encryption when accessing admin as embedded ([#12192](https://github.com/RocketChat/Rocket.Chat/pull/12192)) - -- Improve: E2E setting description and alert ([#12191](https://github.com/RocketChat/Rocket.Chat/pull/12191)) +- Fix: e2e password visible on always-on alert message. ([#12139](https://github.com/RocketChat/Rocket.Chat/pull/12139) by [@Hudell](https://github.com/Hudell)) - Improve: Expose apps enable setting at `General > Apps` ([#12196](https://github.com/RocketChat/Rocket.Chat/pull/12196)) -- Improve: Moved the e2e password request to an alert instead of a popup ([#12172](https://github.com/RocketChat/Rocket.Chat/pull/12172) by [@Hudell](https://github.com/Hudell)) - -- Improve: Rename E2E methods ([#12175](https://github.com/RocketChat/Rocket.Chat/pull/12175) by [@Hudell](https://github.com/Hudell)) - -- Improve: Switch e2e doc to target _blank ([#12195](https://github.com/RocketChat/Rocket.Chat/pull/12195)) +- Fix: Message changing order when been edited with apps enabled ([#12188](https://github.com/RocketChat/Rocket.Chat/pull/12188)) -- LingoHub based on develop ([#11936](https://github.com/RocketChat/Rocket.Chat/pull/11936)) +- Improve: E2E setting description and alert ([#12191](https://github.com/RocketChat/Rocket.Chat/pull/12191)) -- Merge master into develop & Set version to 0.70.0-develop ([#11921](https://github.com/RocketChat/Rocket.Chat/pull/11921) by [@Hudell](https://github.com/Hudell) & [@c0dzilla](https://github.com/c0dzilla) & [@rndmh3ro](https://github.com/rndmh3ro) & [@ubarsaiyan](https://github.com/ubarsaiyan) & [@vynmera](https://github.com/vynmera)) +- Improve: Do not start E2E Encryption when accessing admin as embedded ([#12192](https://github.com/RocketChat/Rocket.Chat/pull/12192)) -- New: Option to change E2E key ([#12169](https://github.com/RocketChat/Rocket.Chat/pull/12169) by [@Hudell](https://github.com/Hudell)) +- Fix: Add e2e doc to the alert ([#12187](https://github.com/RocketChat/Rocket.Chat/pull/12187)) -- Regression: fix message box autogrow ([#12138](https://github.com/RocketChat/Rocket.Chat/pull/12138)) +- Improve: Switch e2e doc to target _blank ([#12195](https://github.com/RocketChat/Rocket.Chat/pull/12195)) -- Regression: Modal height ([#12122](https://github.com/RocketChat/Rocket.Chat/pull/12122)) +- Improve: Rename E2E methods ([#12175](https://github.com/RocketChat/Rocket.Chat/pull/12175) by [@Hudell](https://github.com/Hudell))
@@ -7646,6 +7950,7 @@ - [@Hudell](https://github.com/Hudell) - [@MIKI785](https://github.com/MIKI785) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@TobiasKappe](https://github.com/TobiasKappe) - [@aferreira44](https://github.com/aferreira44) - [@arch119](https://github.com/arch119) @@ -7669,7 +7974,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -7695,14 +7999,14 @@ ### 🐛 Bug fixes -- Apps: setting with 'code' type only saving last line ([#11992](https://github.com/RocketChat/Rocket.Chat/pull/11992) by [@cardoso](https://github.com/cardoso)) - -- Hidden admin sidenav on embedded layout ([#12025](https://github.com/RocketChat/Rocket.Chat/pull/12025)) - - Reset password link error if already logged in ([#12022](https://github.com/RocketChat/Rocket.Chat/pull/12022)) +- Apps: setting with 'code' type only saving last line ([#11992](https://github.com/RocketChat/Rocket.Chat/pull/11992) by [@cardoso](https://github.com/cardoso)) + - Update user information not possible by admin if disabled to users ([#11955](https://github.com/RocketChat/Rocket.Chat/pull/11955) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Hidden admin sidenav on embedded layout ([#12025](https://github.com/RocketChat/Rocket.Chat/pull/12025)) + ### 👩‍💻👨‍💻 Contributors 😍 - [@cardoso](https://github.com/cardoso) @@ -7725,14 +8029,14 @@ ### 🐛 Bug fixes -- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) - -- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) - - Hipchat import was failing when importing messages from a non existent user ([#11892](https://github.com/RocketChat/Rocket.Chat/pull/11892)) - Hipchat importer was not importing users without emails and uploaded files ([#11910](https://github.com/RocketChat/Rocket.Chat/pull/11910)) +- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) + +- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) + ### 👩‍💻👨‍💻 Contributors 😍 - [@ubarsaiyan](https://github.com/ubarsaiyan) @@ -7753,163 +8057,163 @@ - Beta support for Big Blue Button video conferencing system ([#11837](https://github.com/RocketChat/Rocket.Chat/pull/11837)) -- Internal marketplace for apps ([#11864](https://github.com/RocketChat/Rocket.Chat/pull/11864) by [@gdelavald](https://github.com/gdelavald) & [@rssilva](https://github.com/rssilva)) +- Slackbridge: send attachment notifications ([#10269](https://github.com/RocketChat/Rocket.Chat/pull/10269) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) -- Make font of unread items bolder for better contrast ([#8602](https://github.com/RocketChat/Rocket.Chat/pull/8602) by [@ausminternet](https://github.com/ausminternet)) +- Personal access tokens for users to create API tokens ([#11638](https://github.com/RocketChat/Rocket.Chat/pull/11638) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Personal access tokens for users to create API tokens ([#11638](https://github.com/RocketChat/Rocket.Chat/pull/11638)) +- REST endpoint to manage server assets ([#11697](https://github.com/RocketChat/Rocket.Chat/pull/11697) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- REST endpoint to manage server assets ([#11697](https://github.com/RocketChat/Rocket.Chat/pull/11697)) +- Setting to enable/disable slack bridge reactions ([#10217](https://github.com/RocketChat/Rocket.Chat/pull/10217) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) - Rich message text and image buttons ([#11473](https://github.com/RocketChat/Rocket.Chat/pull/11473) by [@ubarsaiyan](https://github.com/ubarsaiyan)) - Setting to block unauthenticated access to avatars ([#9749](https://github.com/RocketChat/Rocket.Chat/pull/9749) by [@Hudell](https://github.com/Hudell)) -- Setting to enable/disable slack bridge reactions ([#10217](https://github.com/RocketChat/Rocket.Chat/pull/10217) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) - - Setting to set a JS/CSS CDN ([#11779](https://github.com/RocketChat/Rocket.Chat/pull/11779)) -- Slackbridge: send attachment notifications ([#10269](https://github.com/RocketChat/Rocket.Chat/pull/10269) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Make font of unread items bolder for better contrast ([#8602](https://github.com/RocketChat/Rocket.Chat/pull/8602) by [@ausminternet](https://github.com/ausminternet)) -### 🚀 Improvements +- Internal marketplace for apps ([#11864](https://github.com/RocketChat/Rocket.Chat/pull/11864) by [@gdelavald](https://github.com/gdelavald) & [@rssilva](https://github.com/rssilva)) +### 🚀 Improvements -- Add nyan rocket on Rocket.Chat preview Docker image ([#11684](https://github.com/RocketChat/Rocket.Chat/pull/11684)) -- Add template tag #{userdn} to filter LDAP group member format ([#11662](https://github.com/RocketChat/Rocket.Chat/pull/11662) by [@crazy-max](https://github.com/crazy-max)) +- Start storing Livechat department within rooms ([#11733](https://github.com/RocketChat/Rocket.Chat/pull/11733)) - Escape parameters before send them to email template ([#11644](https://github.com/RocketChat/Rocket.Chat/pull/11644)) -- Messagebox fix performance ([#11686](https://github.com/RocketChat/Rocket.Chat/pull/11686)) - -- Reducing `saveUser` code complexity ([#11645](https://github.com/RocketChat/Rocket.Chat/pull/11645) by [@Hudell](https://github.com/Hudell)) +- Warn about push settings that need server restart ([#11784](https://github.com/RocketChat/Rocket.Chat/pull/11784)) - Role tag UI ([#11674](https://github.com/RocketChat/Rocket.Chat/pull/11674) by [@timkinnane](https://github.com/timkinnane)) -- Start storing Livechat department within rooms ([#11733](https://github.com/RocketChat/Rocket.Chat/pull/11733)) +- Messagebox fix performance ([#11686](https://github.com/RocketChat/Rocket.Chat/pull/11686)) -- Warn about push settings that need server restart ([#11784](https://github.com/RocketChat/Rocket.Chat/pull/11784)) +- Add template tag #{userdn} to filter LDAP group member format ([#11662](https://github.com/RocketChat/Rocket.Chat/pull/11662) by [@crazy-max](https://github.com/crazy-max)) -### 🐛 Bug fixes +- Add nyan rocket on Rocket.Chat preview Docker image ([#11684](https://github.com/RocketChat/Rocket.Chat/pull/11684)) +- Reducing `saveUser` code complexity ([#11645](https://github.com/RocketChat/Rocket.Chat/pull/11645) by [@Hudell](https://github.com/Hudell)) -- "User is typing" not working in new Livechat session ([#11670](https://github.com/RocketChat/Rocket.Chat/pull/11670)) +### 🐛 Bug fixes -- App's i18nAlert is only being displayed as "i18nAlert" ([#11802](https://github.com/RocketChat/Rocket.Chat/pull/11802)) -- Apply Cordova fix in lazy-loaded images sources ([#11807](https://github.com/RocketChat/Rocket.Chat/pull/11807)) +- Delete removed user's subscriptions ([#10700](https://github.com/RocketChat/Rocket.Chat/pull/10700) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Broken logo on setup wizard ([#11708](https://github.com/RocketChat/Rocket.Chat/pull/11708)) +- LiveChat switch department not working ([#11011](https://github.com/RocketChat/Rocket.Chat/pull/11011)) -- Cannot set property 'input' of undefined ([#11775](https://github.com/RocketChat/Rocket.Chat/pull/11775)) +- Some assets were pointing to nonexistent path ([#11796](https://github.com/RocketChat/Rocket.Chat/pull/11796)) -- Closed connections being storing on db ([#11709](https://github.com/RocketChat/Rocket.Chat/pull/11709)) +- Revoked `view-d-room` permission logics ([#11522](https://github.com/RocketChat/Rocket.Chat/pull/11522) by [@Hudell](https://github.com/Hudell)) -- Code tag duplicating characters ([#11467](https://github.com/RocketChat/Rocket.Chat/pull/11467) by [@vynmera](https://github.com/vynmera)) +- REST `im.members` endpoint not working without sort parameter ([#11821](https://github.com/RocketChat/Rocket.Chat/pull/11821) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Custom sound uploader not working in Firefox and IE ([#11139](https://github.com/RocketChat/Rocket.Chat/pull/11139) by [@vynmera](https://github.com/vynmera)) +- Livechat rooms starting with two unread message counter ([#11834](https://github.com/RocketChat/Rocket.Chat/pull/11834)) -- Default server language not being applied ([#11719](https://github.com/RocketChat/Rocket.Chat/pull/11719)) +- Results pagination on /directory REST endpoint ([#11551](https://github.com/RocketChat/Rocket.Chat/pull/11551) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Delete removed user's subscriptions ([#10700](https://github.com/RocketChat/Rocket.Chat/pull/10700) by [@Hudell](https://github.com/Hudell)) +- re-adding margin to menu icon on header ([#11778](https://github.com/RocketChat/Rocket.Chat/pull/11778) by [@rssilva](https://github.com/rssilva)) -- directory search table not clickable lines ([#11809](https://github.com/RocketChat/Rocket.Chat/pull/11809)) +- minor fixes in hungarian i18n ([#11797](https://github.com/RocketChat/Rocket.Chat/pull/11797) by [@Atisom](https://github.com/Atisom)) -- Escape meta data before inject in head tag ([#11730](https://github.com/RocketChat/Rocket.Chat/pull/11730)) +- permissions name no break ([#11836](https://github.com/RocketChat/Rocket.Chat/pull/11836)) -- Fix links in `onTableItemClick` of the directroy page ([#11543](https://github.com/RocketChat/Rocket.Chat/pull/11543) by [@ura14h](https://github.com/ura14h)) +- Searching by `undefined` via REST when using `query` param ([#11657](https://github.com/RocketChat/Rocket.Chat/pull/11657) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Fix permalink of message when running system with subdir ([#11781](https://github.com/RocketChat/Rocket.Chat/pull/11781) by [@ura14h](https://github.com/ura14h)) -- Fixing timeAgo function on directory ([#11728](https://github.com/RocketChat/Rocket.Chat/pull/11728) by [@rssilva](https://github.com/rssilva)) - -- Incorrect migration version in v130.js ([#11544](https://github.com/RocketChat/Rocket.Chat/pull/11544) by [@c0dzilla](https://github.com/c0dzilla)) +- Fix links in `onTableItemClick` of the directroy page ([#11543](https://github.com/RocketChat/Rocket.Chat/pull/11543) by [@ura14h](https://github.com/ura14h)) - Livechat open room method ([#11830](https://github.com/RocketChat/Rocket.Chat/pull/11830)) -- Livechat rooms starting with two unread message counter ([#11834](https://github.com/RocketChat/Rocket.Chat/pull/11834)) +- App's i18nAlert is only being displayed as "i18nAlert" ([#11802](https://github.com/RocketChat/Rocket.Chat/pull/11802)) -- LiveChat switch department not working ([#11011](https://github.com/RocketChat/Rocket.Chat/pull/11011)) +- Removed hardcoded values. ([#11627](https://github.com/RocketChat/Rocket.Chat/pull/11627) by [@Hudell](https://github.com/Hudell)) -- Login logo now centered on small screens ([#11626](https://github.com/RocketChat/Rocket.Chat/pull/11626) by [@wreiske](https://github.com/wreiske)) +- SAML is flooding logfile ([#11643](https://github.com/RocketChat/Rocket.Chat/pull/11643) by [@Hudell](https://github.com/Hudell)) -- Message attachments was not respecting sort and lost spacing ([#11740](https://github.com/RocketChat/Rocket.Chat/pull/11740)) +- directory search table not clickable lines ([#11809](https://github.com/RocketChat/Rocket.Chat/pull/11809)) -- minor fixes in hungarian i18n ([#11797](https://github.com/RocketChat/Rocket.Chat/pull/11797) by [@Atisom](https://github.com/Atisom)) +- REST endpoints to update user not respecting some settings ([#11474](https://github.com/RocketChat/Rocket.Chat/pull/11474) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- minor fixes in i18n ([#11761](https://github.com/RocketChat/Rocket.Chat/pull/11761) by [@Atisom](https://github.com/Atisom)) +- Apply Cordova fix in lazy-loaded images sources ([#11807](https://github.com/RocketChat/Rocket.Chat/pull/11807)) -- Missing chat history for users without permission `preview-c-room` ([#11639](https://github.com/RocketChat/Rocket.Chat/pull/11639) by [@Hudell](https://github.com/Hudell)) +- Cannot set property 'input' of undefined ([#11775](https://github.com/RocketChat/Rocket.Chat/pull/11775)) - Missing twitter:image and og:image tags ([#11687](https://github.com/RocketChat/Rocket.Chat/pull/11687)) -- permissions name no break ([#11836](https://github.com/RocketChat/Rocket.Chat/pull/11836)) +- Return room ID for groups where user joined ([#11703](https://github.com/RocketChat/Rocket.Chat/pull/11703) by [@timkinnane](https://github.com/timkinnane)) -- Prune translation on room info panel ([#11635](https://github.com/RocketChat/Rocket.Chat/pull/11635)) +- "User is typing" not working in new Livechat session ([#11670](https://github.com/RocketChat/Rocket.Chat/pull/11670)) -- Prune translations in German ([#11631](https://github.com/RocketChat/Rocket.Chat/pull/11631) by [@rndmh3ro](https://github.com/rndmh3ro)) +- wrong create date of channels and users on directory view ([#11682](https://github.com/RocketChat/Rocket.Chat/pull/11682) by [@gsperezb](https://github.com/gsperezb)) -- Push notifications stuck after db failure ([#11667](https://github.com/RocketChat/Rocket.Chat/pull/11667)) +- Escape meta data before inject in head tag ([#11730](https://github.com/RocketChat/Rocket.Chat/pull/11730)) -- re-adding margin to menu icon on header ([#11778](https://github.com/RocketChat/Rocket.Chat/pull/11778) by [@rssilva](https://github.com/rssilva)) +- minor fixes in i18n ([#11761](https://github.com/RocketChat/Rocket.Chat/pull/11761) by [@Atisom](https://github.com/Atisom)) -- Regression in prune by user, and update lastMessage ([#11646](https://github.com/RocketChat/Rocket.Chat/pull/11646) by [@vynmera](https://github.com/vynmera)) +- Code tag duplicating characters ([#11467](https://github.com/RocketChat/Rocket.Chat/pull/11467) by [@vynmera](https://github.com/vynmera)) -- Removed hardcoded values. ([#11627](https://github.com/RocketChat/Rocket.Chat/pull/11627) by [@Hudell](https://github.com/Hudell)) +- Custom sound uploader not working in Firefox and IE ([#11139](https://github.com/RocketChat/Rocket.Chat/pull/11139) by [@vynmera](https://github.com/vynmera)) + +- Fixing timeAgo function on directory ([#11728](https://github.com/RocketChat/Rocket.Chat/pull/11728) by [@rssilva](https://github.com/rssilva)) - Render Attachment Pretext When Markdown Specified ([#11578](https://github.com/RocketChat/Rocket.Chat/pull/11578) by [@glstewart17](https://github.com/glstewart17)) -- REST `im.members` endpoint not working without sort parameter ([#11821](https://github.com/RocketChat/Rocket.Chat/pull/11821)) +- Message attachments was not respecting sort and lost spacing ([#11740](https://github.com/RocketChat/Rocket.Chat/pull/11740)) -- REST endpoints to update user not respecting some settings ([#11474](https://github.com/RocketChat/Rocket.Chat/pull/11474)) +- Default server language not being applied ([#11719](https://github.com/RocketChat/Rocket.Chat/pull/11719)) -- Results pagination on /directory REST endpoint ([#11551](https://github.com/RocketChat/Rocket.Chat/pull/11551)) +- Closed connections being storing on db ([#11709](https://github.com/RocketChat/Rocket.Chat/pull/11709)) -- Return room ID for groups where user joined ([#11703](https://github.com/RocketChat/Rocket.Chat/pull/11703) by [@timkinnane](https://github.com/timkinnane)) +- Broken logo on setup wizard ([#11708](https://github.com/RocketChat/Rocket.Chat/pull/11708)) -- Revoked `view-d-room` permission logics ([#11522](https://github.com/RocketChat/Rocket.Chat/pull/11522) by [@Hudell](https://github.com/Hudell)) +- Regression in prune by user, and update lastMessage ([#11646](https://github.com/RocketChat/Rocket.Chat/pull/11646) by [@vynmera](https://github.com/vynmera)) -- SAML is flooding logfile ([#11643](https://github.com/RocketChat/Rocket.Chat/pull/11643) by [@Hudell](https://github.com/Hudell)) +- Login logo now centered on small screens ([#11626](https://github.com/RocketChat/Rocket.Chat/pull/11626) by [@wreiske](https://github.com/wreiske)) + +- Push notifications stuck after db failure ([#11667](https://github.com/RocketChat/Rocket.Chat/pull/11667)) - SAML login not working when user has multiple emails ([#11642](https://github.com/RocketChat/Rocket.Chat/pull/11642) by [@Hudell](https://github.com/Hudell)) -- Searching by `undefined` via REST when using `query` param ([#11657](https://github.com/RocketChat/Rocket.Chat/pull/11657)) +- Prune translation on room info panel ([#11635](https://github.com/RocketChat/Rocket.Chat/pull/11635)) -- Some assets were pointing to nonexistent path ([#11796](https://github.com/RocketChat/Rocket.Chat/pull/11796)) +- Prune translations in German ([#11631](https://github.com/RocketChat/Rocket.Chat/pull/11631) by [@rndmh3ro](https://github.com/rndmh3ro)) -- Translations were not unique per app allowing conflicts among apps ([#11878](https://github.com/RocketChat/Rocket.Chat/pull/11878)) +- User info APIs not returning customFields correctly ([#11625](https://github.com/RocketChat/Rocket.Chat/pull/11625) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- User info APIs not returning customFields correctly ([#11625](https://github.com/RocketChat/Rocket.Chat/pull/11625)) +- Missing chat history for users without permission `preview-c-room` ([#11639](https://github.com/RocketChat/Rocket.Chat/pull/11639) by [@Hudell](https://github.com/Hudell)) -- wrong create date of channels and users on directory view ([#11682](https://github.com/RocketChat/Rocket.Chat/pull/11682) by [@gsperezb](https://github.com/gsperezb)) +- Incorrect migration version in v130.js ([#11544](https://github.com/RocketChat/Rocket.Chat/pull/11544) by [@c0dzilla](https://github.com/c0dzilla)) + +- Translations were not unique per app allowing conflicts among apps ([#11878](https://github.com/RocketChat/Rocket.Chat/pull/11878))
🔍 Minor changes -- Add new eslint rules (automatically fixed) ([#11800](https://github.com/RocketChat/Rocket.Chat/pull/11800)) +- Fixed deutsch message pruning translations ([#11691](https://github.com/RocketChat/Rocket.Chat/pull/11691) by [@TheReal1604](https://github.com/TheReal1604)) -- Additional eslint rules ([#11804](https://github.com/RocketChat/Rocket.Chat/pull/11804)) +- Fixed the Finnish translation and removed some profanities ([#11794](https://github.com/RocketChat/Rocket.Chat/pull/11794) by [@jukper](https://github.com/jukper)) -- App engine merge ([#11835](https://github.com/RocketChat/Rocket.Chat/pull/11835)) +- LingoHub based on develop ([#11838](https://github.com/RocketChat/Rocket.Chat/pull/11838)) + +- Regression: Fix livechat code issues after new lint rules ([#11814](https://github.com/RocketChat/Rocket.Chat/pull/11814)) - Do not remove package-lock.json of livechat package ([#11816](https://github.com/RocketChat/Rocket.Chat/pull/11816)) -- Fixed deutsch message pruning translations ([#11691](https://github.com/RocketChat/Rocket.Chat/pull/11691) by [@TheReal1604](https://github.com/TheReal1604)) +- Run eslint and unit tests on pre-push hook ([#11815](https://github.com/RocketChat/Rocket.Chat/pull/11815)) -- Fixed the Finnish translation and removed some profanities ([#11794](https://github.com/RocketChat/Rocket.Chat/pull/11794) by [@jukper](https://github.com/jukper)) +- Additional eslint rules ([#11804](https://github.com/RocketChat/Rocket.Chat/pull/11804)) -- LingoHub based on develop ([#11838](https://github.com/RocketChat/Rocket.Chat/pull/11838)) +- Add new eslint rules (automatically fixed) ([#11800](https://github.com/RocketChat/Rocket.Chat/pull/11800)) - Merge master into develop & Set version to 0.69.0-develop ([#11606](https://github.com/RocketChat/Rocket.Chat/pull/11606)) -- Regression: Fix livechat code issues after new lint rules ([#11814](https://github.com/RocketChat/Rocket.Chat/pull/11814)) - - Regression: Fix purge message's translations ([#11590](https://github.com/RocketChat/Rocket.Chat/pull/11590)) -- Regression: role tag background, unread item font and message box autogrow ([#11861](https://github.com/RocketChat/Rocket.Chat/pull/11861)) +- App engine merge ([#11835](https://github.com/RocketChat/Rocket.Chat/pull/11835)) -- Run eslint and unit tests on pre-push hook ([#11815](https://github.com/RocketChat/Rocket.Chat/pull/11815)) +- Regression: role tag background, unread item font and message box autogrow ([#11861](https://github.com/RocketChat/Rocket.Chat/pull/11861))
@@ -7917,6 +8221,7 @@ - [@Atisom](https://github.com/Atisom) - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@TheReal1604](https://github.com/TheReal1604) - [@ausminternet](https://github.com/ausminternet) - [@c0dzilla](https://github.com/c0dzilla) @@ -7936,7 +8241,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -7972,10 +8276,10 @@ ### 🐛 Bug fixes -- Broken logo on setup wizard ([#11708](https://github.com/RocketChat/Rocket.Chat/pull/11708)) - - Default server language not being applied ([#11719](https://github.com/RocketChat/Rocket.Chat/pull/11719)) +- Broken logo on setup wizard ([#11708](https://github.com/RocketChat/Rocket.Chat/pull/11708)) + - Regression in prune by user, and update lastMessage ([#11646](https://github.com/RocketChat/Rocket.Chat/pull/11646) by [@vynmera](https://github.com/vynmera)) ### 👩‍💻👨‍💻 Contributors 😍 @@ -7999,30 +8303,30 @@ - Missing chat history for users without permission `preview-c-room` ([#11639](https://github.com/RocketChat/Rocket.Chat/pull/11639) by [@Hudell](https://github.com/Hudell)) -- Prune translation on room info panel ([#11635](https://github.com/RocketChat/Rocket.Chat/pull/11635)) +- User info APIs not returning customFields correctly ([#11625](https://github.com/RocketChat/Rocket.Chat/pull/11625) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Prune translations in German ([#11631](https://github.com/RocketChat/Rocket.Chat/pull/11631) by [@rndmh3ro](https://github.com/rndmh3ro)) -- SAML login not working when user has multiple emails ([#11642](https://github.com/RocketChat/Rocket.Chat/pull/11642) by [@Hudell](https://github.com/Hudell)) +- Prune translation on room info panel ([#11635](https://github.com/RocketChat/Rocket.Chat/pull/11635)) -- User info APIs not returning customFields correctly ([#11625](https://github.com/RocketChat/Rocket.Chat/pull/11625)) +- SAML login not working when user has multiple emails ([#11642](https://github.com/RocketChat/Rocket.Chat/pull/11642) by [@Hudell](https://github.com/Hudell))
🔍 Minor changes -- Release 0.68.3 ([#11650](https://github.com/RocketChat/Rocket.Chat/pull/11650) by [@Hudell](https://github.com/Hudell) & [@rndmh3ro](https://github.com/rndmh3ro)) +- Release 0.68.3 ([#11650](https://github.com/RocketChat/Rocket.Chat/pull/11650) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@rndmh3ro](https://github.com/rndmh3ro))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@rndmh3ro](https://github.com/rndmh3ro) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@sampaiodiego](https://github.com/sampaiodiego) # 0.68.2 @@ -8092,120 +8396,120 @@ ### ⚠️ BREAKING CHANGES -- Remove deprecated /user.roles endpoint ([#11493](https://github.com/RocketChat/Rocket.Chat/pull/11493)) +- Remove deprecated /user.roles endpoint ([#11493](https://github.com/RocketChat/Rocket.Chat/pull/11493) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update GraphQL dependencies ([#11430](https://github.com/RocketChat/Rocket.Chat/pull/11430)) +- Update GraphQL dependencies ([#11430](https://github.com/RocketChat/Rocket.Chat/pull/11430) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) ### 🎉 New features -- Accept resumeToken as query param to log in ([#11443](https://github.com/RocketChat/Rocket.Chat/pull/11443)) +- Setting to disable 2FA globally ([#11328](https://github.com/RocketChat/Rocket.Chat/pull/11328) by [@Hudell](https://github.com/Hudell)) -- Add /roles.list REST endpoint to retrieve all server roles ([#11500](https://github.com/RocketChat/Rocket.Chat/pull/11500)) +- Add /users.deleteOwnAccount REST endpoint to an user delete his own account ([#11488](https://github.com/RocketChat/Rocket.Chat/pull/11488) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add /users.deleteOwnAccount REST endpoint to an user delete his own account ([#11488](https://github.com/RocketChat/Rocket.Chat/pull/11488)) +- Add /roles.list REST endpoint to retrieve all server roles ([#11500](https://github.com/RocketChat/Rocket.Chat/pull/11500) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat File Upload ([#10514](https://github.com/RocketChat/Rocket.Chat/pull/10514)) +- Message retention policy and pruning ([#11236](https://github.com/RocketChat/Rocket.Chat/pull/11236) by [@vynmera](https://github.com/vynmera)) -- Make WebRTC not enabled by default ([#11489](https://github.com/RocketChat/Rocket.Chat/pull/11489)) +- Send user status to client ([#11303](https://github.com/RocketChat/Rocket.Chat/pull/11303) by [@HappyTobi](https://github.com/HappyTobi)) -- Message retention policy and pruning ([#11236](https://github.com/RocketChat/Rocket.Chat/pull/11236) by [@vynmera](https://github.com/vynmera)) +- Room files search form ([#11486](https://github.com/RocketChat/Rocket.Chat/pull/11486)) + +- search only default tone emoji Popup search ([#10017](https://github.com/RocketChat/Rocket.Chat/pull/10017) by [@Joe-mcgee](https://github.com/Joe-mcgee)) - Privacy for custom user fields ([#11332](https://github.com/RocketChat/Rocket.Chat/pull/11332) by [@vynmera](https://github.com/vynmera)) - Replaced old logo with the new ones ([#11491](https://github.com/RocketChat/Rocket.Chat/pull/11491) by [@brunosquadros](https://github.com/brunosquadros)) -- Room files search form ([#11486](https://github.com/RocketChat/Rocket.Chat/pull/11486)) - -- search only default tone emoji Popup search ([#10017](https://github.com/RocketChat/Rocket.Chat/pull/10017) by [@Joe-mcgee](https://github.com/Joe-mcgee)) +- Sorting channels by number of users in directory ([#9972](https://github.com/RocketChat/Rocket.Chat/pull/9972) by [@arungalva](https://github.com/arungalva)) -- Send user status to client ([#11303](https://github.com/RocketChat/Rocket.Chat/pull/11303) by [@HappyTobi](https://github.com/HappyTobi)) +- Make WebRTC not enabled by default ([#11489](https://github.com/RocketChat/Rocket.Chat/pull/11489)) -- Setting to disable 2FA globally ([#11328](https://github.com/RocketChat/Rocket.Chat/pull/11328) by [@Hudell](https://github.com/Hudell)) +- Accept resumeToken as query param to log in ([#11443](https://github.com/RocketChat/Rocket.Chat/pull/11443)) -- Sorting channels by number of users in directory ([#9972](https://github.com/RocketChat/Rocket.Chat/pull/9972) by [@arungalva](https://github.com/arungalva)) +- Livechat File Upload ([#10514](https://github.com/RocketChat/Rocket.Chat/pull/10514)) ### 🚀 Improvements -- Allow markdown in room topic, announcement, and description including single quotes ([#11408](https://github.com/RocketChat/Rocket.Chat/pull/11408)) - - Set default max upload size to 100mb ([#11327](https://github.com/RocketChat/Rocket.Chat/pull/11327) by [@cardoso](https://github.com/cardoso)) - Typing indicators now use Real Names ([#11164](https://github.com/RocketChat/Rocket.Chat/pull/11164) by [@vynmera](https://github.com/vynmera)) +- Allow markdown in room topic, announcement, and description including single quotes ([#11408](https://github.com/RocketChat/Rocket.Chat/pull/11408)) + ### 🐛 Bug fixes -- Add customFields property to /me REST endpoint response ([#11496](https://github.com/RocketChat/Rocket.Chat/pull/11496)) +- New favicons size too small ([#11524](https://github.com/RocketChat/Rocket.Chat/pull/11524) by [@brunosquadros](https://github.com/brunosquadros)) -- broadcast channel reply ([#11462](https://github.com/RocketChat/Rocket.Chat/pull/11462)) +- Render reply preview with message as a common message ([#11534](https://github.com/RocketChat/Rocket.Chat/pull/11534)) -- Check for channels property on message object before parsing mentions ([#11527](https://github.com/RocketChat/Rocket.Chat/pull/11527)) +- Unreads counter for new rooms on /channels.counters REST endpoint ([#11531](https://github.com/RocketChat/Rocket.Chat/pull/11531) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Decrease room leader bar z-index ([#11450](https://github.com/RocketChat/Rocket.Chat/pull/11450)) +- Marked parser breaking announcements and mentions at the start of messages ([#11357](https://github.com/RocketChat/Rocket.Chat/pull/11357) by [@vynmera](https://github.com/vynmera)) -- empty blockquote ([#11526](https://github.com/RocketChat/Rocket.Chat/pull/11526)) +- Send Livechat back to Guest Pool ([#10731](https://github.com/RocketChat/Rocket.Chat/pull/10731)) -- Fixed svg for older chrome browsers bug #11414 ([#11416](https://github.com/RocketChat/Rocket.Chat/pull/11416) by [@tpDBL](https://github.com/tpDBL)) +- Add customFields property to /me REST endpoint response ([#11496](https://github.com/RocketChat/Rocket.Chat/pull/11496) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Invalid permalink URLs for Direct Messages ([#11507](https://github.com/RocketChat/Rocket.Chat/pull/11507) by [@Hudell](https://github.com/Hudell)) -- Loading and setting fixes for i18n and RTL ([#11363](https://github.com/RocketChat/Rocket.Chat/pull/11363)) - -- Marked parser breaking announcements and mentions at the start of messages ([#11357](https://github.com/RocketChat/Rocket.Chat/pull/11357) by [@vynmera](https://github.com/vynmera)) +- Unlimited upload file size not working ([#11471](https://github.com/RocketChat/Rocket.Chat/pull/11471) by [@Hudell](https://github.com/Hudell)) - Mixed case channel slugs ([#9449](https://github.com/RocketChat/Rocket.Chat/pull/9449) by [@soundstorm](https://github.com/soundstorm)) -- New favicons size too small ([#11524](https://github.com/RocketChat/Rocket.Chat/pull/11524) by [@brunosquadros](https://github.com/brunosquadros)) - -- Only escape HTML from details in toast error messages ([#11459](https://github.com/RocketChat/Rocket.Chat/pull/11459)) +- SAML issues ([#11135](https://github.com/RocketChat/Rocket.Chat/pull/11135) by [@Hudell](https://github.com/Hudell) & [@arminfelder](https://github.com/arminfelder)) -- Record popup ([#11349](https://github.com/RocketChat/Rocket.Chat/pull/11349)) +- Loading and setting fixes for i18n and RTL ([#11363](https://github.com/RocketChat/Rocket.Chat/pull/11363)) -- Refinements in message popup mentions ([#11441](https://github.com/RocketChat/Rocket.Chat/pull/11441)) +- Check for channels property on message object before parsing mentions ([#11527](https://github.com/RocketChat/Rocket.Chat/pull/11527)) -- Remove title attribute from sidebar items ([#11298](https://github.com/RocketChat/Rocket.Chat/pull/11298)) +- empty blockquote ([#11526](https://github.com/RocketChat/Rocket.Chat/pull/11526)) -- Render reply preview with message as a common message ([#11534](https://github.com/RocketChat/Rocket.Chat/pull/11534)) +- Snap font issue for sharp ([#11514](https://github.com/RocketChat/Rocket.Chat/pull/11514)) - RocketChat.settings.get causing memory leak (sometimes) ([#11487](https://github.com/RocketChat/Rocket.Chat/pull/11487)) -- SAML issues ([#11135](https://github.com/RocketChat/Rocket.Chat/pull/11135) by [@Hudell](https://github.com/Hudell) & [@arminfelder](https://github.com/arminfelder)) +- Refinements in message popup mentions ([#11441](https://github.com/RocketChat/Rocket.Chat/pull/11441)) -- Send Livechat back to Guest Pool ([#10731](https://github.com/RocketChat/Rocket.Chat/pull/10731)) +- Decrease room leader bar z-index ([#11450](https://github.com/RocketChat/Rocket.Chat/pull/11450)) -- Snap font issue for sharp ([#11514](https://github.com/RocketChat/Rocket.Chat/pull/11514)) +- Remove title attribute from sidebar items ([#11298](https://github.com/RocketChat/Rocket.Chat/pull/11298)) -- Unlimited upload file size not working ([#11471](https://github.com/RocketChat/Rocket.Chat/pull/11471) by [@Hudell](https://github.com/Hudell)) +- Only escape HTML from details in toast error messages ([#11459](https://github.com/RocketChat/Rocket.Chat/pull/11459)) + +- broadcast channel reply ([#11462](https://github.com/RocketChat/Rocket.Chat/pull/11462)) -- Unreads counter for new rooms on /channels.counters REST endpoint ([#11531](https://github.com/RocketChat/Rocket.Chat/pull/11531)) +- Fixed svg for older chrome browsers bug #11414 ([#11416](https://github.com/RocketChat/Rocket.Chat/pull/11416) by [@tpDBL](https://github.com/tpDBL)) - Wrap custom fields in user profile to new line ([#10119](https://github.com/RocketChat/Rocket.Chat/pull/10119) by [@PhpXp](https://github.com/PhpXp) & [@karlprieb](https://github.com/karlprieb)) +- Record popup ([#11349](https://github.com/RocketChat/Rocket.Chat/pull/11349)) +
🔍 Minor changes -- LingoHub based on develop ([#11587](https://github.com/RocketChat/Rocket.Chat/pull/11587)) +- Revert: Mixed case channel slugs #9449 ([#11537](https://github.com/RocketChat/Rocket.Chat/pull/11537)) - Merge master into develop & Set version to 0.68.0-develop ([#11536](https://github.com/RocketChat/Rocket.Chat/pull/11536)) - Regression: Add missing LiveChat permission to allow removing closed rooms ([#11423](https://github.com/RocketChat/Rocket.Chat/pull/11423)) -- Regression: Fix purge message's translations ([#11590](https://github.com/RocketChat/Rocket.Chat/pull/11590)) - -- Regression: Make message popup user mentions reactive again ([#11567](https://github.com/RocketChat/Rocket.Chat/pull/11567)) - -- Regression: nonReactive to nonreactive ([#11550](https://github.com/RocketChat/Rocket.Chat/pull/11550)) +- Update release issue template to use Houston CLI ([#11499](https://github.com/RocketChat/Rocket.Chat/pull/11499)) - Regression: Remove safe area margins from logos ([#11508](https://github.com/RocketChat/Rocket.Chat/pull/11508) by [@brunosquadros](https://github.com/brunosquadros)) - Regression: Update cachedCollection version ([#11561](https://github.com/RocketChat/Rocket.Chat/pull/11561)) -- Revert: Mixed case channel slugs #9449 ([#11537](https://github.com/RocketChat/Rocket.Chat/pull/11537)) +- Regression: nonReactive to nonreactive ([#11550](https://github.com/RocketChat/Rocket.Chat/pull/11550)) -- Update release issue template to use Houston CLI ([#11499](https://github.com/RocketChat/Rocket.Chat/pull/11499)) +- LingoHub based on develop ([#11587](https://github.com/RocketChat/Rocket.Chat/pull/11587)) + +- Regression: Make message popup user mentions reactive again ([#11567](https://github.com/RocketChat/Rocket.Chat/pull/11567)) + +- Regression: Fix purge message's translations ([#11590](https://github.com/RocketChat/Rocket.Chat/pull/11590))
@@ -8214,6 +8518,7 @@ - [@HappyTobi](https://github.com/HappyTobi) - [@Hudell](https://github.com/Hudell) - [@Joe-mcgee](https://github.com/Joe-mcgee) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@PhpXp](https://github.com/PhpXp) - [@arminfelder](https://github.com/arminfelder) - [@arungalva](https://github.com/arungalva) @@ -8226,7 +8531,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -8256,42 +8560,42 @@ ### 🚀 Improvements -- Setup Wizard username validation, step progress and optin/optout ([#11254](https://github.com/RocketChat/Rocket.Chat/pull/11254)) - - Stop sort callbacks on run ([#11330](https://github.com/RocketChat/Rocket.Chat/pull/11330)) +- Setup Wizard username validation, step progress and optin/optout ([#11254](https://github.com/RocketChat/Rocket.Chat/pull/11254)) + ### 🐛 Bug fixes +- Livechat taking inquiry leading to 404 page ([#11406](https://github.com/RocketChat/Rocket.Chat/pull/11406)) + - All messages notifications via email were sent as mention alert ([#11398](https://github.com/RocketChat/Rocket.Chat/pull/11398)) -- Livechat not sending desktop notifications ([#11266](https://github.com/RocketChat/Rocket.Chat/pull/11266)) +- sort fname sidenav ([#11358](https://github.com/RocketChat/Rocket.Chat/pull/11358)) -- Livechat taking inquiry leading to 404 page ([#11406](https://github.com/RocketChat/Rocket.Chat/pull/11406)) +- Livechat not sending desktop notifications ([#11266](https://github.com/RocketChat/Rocket.Chat/pull/11266)) -- Livestream muted when audio only option was enabled ([#11267](https://github.com/RocketChat/Rocket.Chat/pull/11267) by [@gdelavald](https://github.com/gdelavald)) +- SVG icons code ([#11319](https://github.com/RocketChat/Rocket.Chat/pull/11319)) -- Message attachment's fields with different sizes ([#11342](https://github.com/RocketChat/Rocket.Chat/pull/11342)) +- Remove file snap store doesn't like ([#11365](https://github.com/RocketChat/Rocket.Chat/pull/11365)) - Message popup responsiveness in slash commands ([#11313](https://github.com/RocketChat/Rocket.Chat/pull/11313)) -- Notification preferences being lost when switching view mode ([#11295](https://github.com/RocketChat/Rocket.Chat/pull/11295)) +- web app manifest errors as reported by Chrome DevTools ([#9991](https://github.com/RocketChat/Rocket.Chat/pull/9991) by [@justinribeiro](https://github.com/justinribeiro)) -- Outgoing integrations were stopping the oplog tailing sometimes ([#11333](https://github.com/RocketChat/Rocket.Chat/pull/11333)) +- Message attachment's fields with different sizes ([#11342](https://github.com/RocketChat/Rocket.Chat/pull/11342)) - Parse inline code without space before initial backtick ([#9754](https://github.com/RocketChat/Rocket.Chat/pull/9754) by [@c0dzilla](https://github.com/c0dzilla) & [@gdelavald](https://github.com/gdelavald)) -- Remove file snap store doesn't like ([#11365](https://github.com/RocketChat/Rocket.Chat/pull/11365)) +- Some updates were returning errors when based on queries with position operators ([#11335](https://github.com/RocketChat/Rocket.Chat/pull/11335)) - SAML attributes with periods are not properly read. ([#11315](https://github.com/RocketChat/Rocket.Chat/pull/11315) by [@Hudell](https://github.com/Hudell)) -- Some updates were returning errors when based on queries with position operators ([#11335](https://github.com/RocketChat/Rocket.Chat/pull/11335)) - -- sort fname sidenav ([#11358](https://github.com/RocketChat/Rocket.Chat/pull/11358)) +- Outgoing integrations were stopping the oplog tailing sometimes ([#11333](https://github.com/RocketChat/Rocket.Chat/pull/11333)) -- SVG icons code ([#11319](https://github.com/RocketChat/Rocket.Chat/pull/11319)) +- Livestream muted when audio only option was enabled ([#11267](https://github.com/RocketChat/Rocket.Chat/pull/11267) by [@gdelavald](https://github.com/gdelavald)) -- web app manifest errors as reported by Chrome DevTools ([#9991](https://github.com/RocketChat/Rocket.Chat/pull/9991) by [@justinribeiro](https://github.com/justinribeiro)) +- Notification preferences being lost when switching view mode ([#11295](https://github.com/RocketChat/Rocket.Chat/pull/11295))
🔍 Minor changes @@ -8303,14 +8607,14 @@ - Merge master into develop & Set version to 0.67.0-develop ([#11399](https://github.com/RocketChat/Rocket.Chat/pull/11399)) -- Merge master into develop & Set version to 0.67.0-develop ([#11348](https://github.com/RocketChat/Rocket.Chat/pull/11348) by [@Hudell](https://github.com/Hudell) & [@gdelavald](https://github.com/gdelavald)) - -- Merge master into develop & Set version to 0.67.0-develop ([#11290](https://github.com/RocketChat/Rocket.Chat/pull/11290)) - - Regression: Fix migration 125 checking for settings field ([#11364](https://github.com/RocketChat/Rocket.Chat/pull/11364)) - Send setting Allow_Marketing_Emails to statistics collector ([#11359](https://github.com/RocketChat/Rocket.Chat/pull/11359)) +- Merge master into develop & Set version to 0.67.0-develop ([#11348](https://github.com/RocketChat/Rocket.Chat/pull/11348) by [@Hudell](https://github.com/Hudell) & [@gdelavald](https://github.com/gdelavald)) + +- Merge master into develop & Set version to 0.67.0-develop ([#11290](https://github.com/RocketChat/Rocket.Chat/pull/11290)) +
### 👩‍💻👨‍💻 Contributors 😍 @@ -8359,18 +8663,18 @@ ### 🐛 Bug fixes -- Livechat not sending desktop notifications ([#11266](https://github.com/RocketChat/Rocket.Chat/pull/11266)) - - Remove file snap store doesn't like ([#11365](https://github.com/RocketChat/Rocket.Chat/pull/11365)) +- Livechat not sending desktop notifications ([#11266](https://github.com/RocketChat/Rocket.Chat/pull/11266)) +
🔍 Minor changes -- Regression: Fix migration 125 checking for settings field ([#11364](https://github.com/RocketChat/Rocket.Chat/pull/11364)) - - Send setting Allow_Marketing_Emails to statistics collector ([#11359](https://github.com/RocketChat/Rocket.Chat/pull/11359)) +- Regression: Fix migration 125 checking for settings field ([#11364](https://github.com/RocketChat/Rocket.Chat/pull/11364)) +
### 👩‍💻👨‍💻 Core Team 🤓 @@ -8395,15 +8699,15 @@ ### 🐛 Bug fixes -- Livestream muted when audio only option was enabled ([#11267](https://github.com/RocketChat/Rocket.Chat/pull/11267) by [@gdelavald](https://github.com/gdelavald)) +- Some updates were returning errors when based on queries with position operators ([#11335](https://github.com/RocketChat/Rocket.Chat/pull/11335)) -- Notification preferences being lost when switching view mode ([#11295](https://github.com/RocketChat/Rocket.Chat/pull/11295)) +- SAML attributes with periods are not properly read. ([#11315](https://github.com/RocketChat/Rocket.Chat/pull/11315) by [@Hudell](https://github.com/Hudell)) - Outgoing integrations were stopping the oplog tailing sometimes ([#11333](https://github.com/RocketChat/Rocket.Chat/pull/11333)) -- SAML attributes with periods are not properly read. ([#11315](https://github.com/RocketChat/Rocket.Chat/pull/11315) by [@Hudell](https://github.com/Hudell)) +- Livestream muted when audio only option was enabled ([#11267](https://github.com/RocketChat/Rocket.Chat/pull/11267) by [@gdelavald](https://github.com/gdelavald)) -- Some updates were returning errors when based on queries with position operators ([#11335](https://github.com/RocketChat/Rocket.Chat/pull/11335)) +- Notification preferences being lost when switching view mode ([#11295](https://github.com/RocketChat/Rocket.Chat/pull/11295)) ### 👩‍💻👨‍💻 Contributors 😍 @@ -8427,57 +8731,57 @@ ### ⚠️ BREAKING CHANGES -- Always remove the field `services` from user data responses in REST API ([#10799](https://github.com/RocketChat/Rocket.Chat/pull/10799)) +- Always remove the field `services` from user data responses in REST API ([#10799](https://github.com/RocketChat/Rocket.Chat/pull/10799) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) ### 🎉 New features -- Add input to set time for avatar cache control ([#10958](https://github.com/RocketChat/Rocket.Chat/pull/10958)) +- Youtube Broadcasting ([#10127](https://github.com/RocketChat/Rocket.Chat/pull/10127) by [@gdelavald](https://github.com/gdelavald)) + +- REST API endpoints `permissions.list` and `permissions.update`. Deprecated endpoint `permissions` ([#10975](https://github.com/RocketChat/Rocket.Chat/pull/10975) by [@vynmera](https://github.com/vynmera)) + +- REST API endpoint `channels.setDefault` ([#10941](https://github.com/RocketChat/Rocket.Chat/pull/10941) by [@vynmera](https://github.com/vynmera)) + +- Set Document Domain property in IFrame ([#9751](https://github.com/RocketChat/Rocket.Chat/pull/9751) by [@kb0304](https://github.com/kb0304)) + +- Custom login wallpapers ([#11025](https://github.com/RocketChat/Rocket.Chat/pull/11025) by [@vynmera](https://github.com/vynmera)) + +- Support for dynamic slack and rocket.chat channels ([#10205](https://github.com/RocketChat/Rocket.Chat/pull/10205) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) - Add prometheus port config ([#11115](https://github.com/RocketChat/Rocket.Chat/pull/11115) by [@brylie](https://github.com/brylie) & [@stuartpb](https://github.com/stuartpb) & [@thaiphv](https://github.com/thaiphv)) - Button to remove closed LiveChat rooms ([#10301](https://github.com/RocketChat/Rocket.Chat/pull/10301)) -- Changes all 'mergeChannels' to 'groupByType'. ([#10055](https://github.com/RocketChat/Rocket.Chat/pull/10055) by [@mikaelmello](https://github.com/mikaelmello)) +- Update katex to v0.9.0 ([#8402](https://github.com/RocketChat/Rocket.Chat/pull/8402) by [@pitamar](https://github.com/pitamar)) -- Command /hide to hide channels ([#10727](https://github.com/RocketChat/Rocket.Chat/pull/10727) by [@mikaelmello](https://github.com/mikaelmello)) +- WebDAV(Nextcloud/ownCloud) Storage Server Option ([#11027](https://github.com/RocketChat/Rocket.Chat/pull/11027) by [@karakayasemi](https://github.com/karakayasemi)) -- Custom login wallpapers ([#11025](https://github.com/RocketChat/Rocket.Chat/pull/11025) by [@vynmera](https://github.com/vynmera)) +- Don't ask me again checkbox on hide room modal ([#10973](https://github.com/RocketChat/Rocket.Chat/pull/10973) by [@karlprieb](https://github.com/karlprieb)) -- Direct Reply: separate Reply-To email from account username field ([#10988](https://github.com/RocketChat/Rocket.Chat/pull/10988) by [@pkgodara](https://github.com/pkgodara)) +- Add input to set time for avatar cache control ([#10958](https://github.com/RocketChat/Rocket.Chat/pull/10958) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Disconnect users from websocket when away from the login screen for 10min ([#11086](https://github.com/RocketChat/Rocket.Chat/pull/11086)) +- Command /hide to hide channels ([#10727](https://github.com/RocketChat/Rocket.Chat/pull/10727) by [@mikaelmello](https://github.com/mikaelmello)) - Do not wait method calls response on websocket before next method call ([#11087](https://github.com/RocketChat/Rocket.Chat/pull/11087)) -- Don't ask me again checkbox on hide room modal ([#10973](https://github.com/RocketChat/Rocket.Chat/pull/10973) by [@karlprieb](https://github.com/karlprieb)) +- Disconnect users from websocket when away from the login screen for 10min ([#11086](https://github.com/RocketChat/Rocket.Chat/pull/11086)) -- Make supplying an AWS access key and secret optional for S3 uploads ([#10673](https://github.com/RocketChat/Rocket.Chat/pull/10673) by [@saplla](https://github.com/saplla)) +- Reduce the amount of DDP API calls on login screen ([#11083](https://github.com/RocketChat/Rocket.Chat/pull/11083)) - Option to trace Methods and Subscription calls ([#11085](https://github.com/RocketChat/Rocket.Chat/pull/11085)) -- Reduce the amount of DDP API calls on login screen ([#11083](https://github.com/RocketChat/Rocket.Chat/pull/11083)) - - Replace variable 'mergeChannels' with 'groupByType'. ([#10954](https://github.com/RocketChat/Rocket.Chat/pull/10954) by [@mikaelmello](https://github.com/mikaelmello)) -- REST API endpoint `channels.setDefault` ([#10941](https://github.com/RocketChat/Rocket.Chat/pull/10941) by [@vynmera](https://github.com/vynmera)) - -- REST API endpoints `permissions.list` and `permissions.update`. Deprecated endpoint `permissions` ([#10975](https://github.com/RocketChat/Rocket.Chat/pull/10975) by [@vynmera](https://github.com/vynmera)) - - Send LiveChat visitor navigation history as messages ([#10091](https://github.com/RocketChat/Rocket.Chat/pull/10091)) -- Set Document Domain property in IFrame ([#9751](https://github.com/RocketChat/Rocket.Chat/pull/9751) by [@kb0304](https://github.com/kb0304)) +- Make supplying an AWS access key and secret optional for S3 uploads ([#10673](https://github.com/RocketChat/Rocket.Chat/pull/10673) by [@saplla](https://github.com/saplla)) -- Support for dynamic slack and rocket.chat channels ([#10205](https://github.com/RocketChat/Rocket.Chat/pull/10205) by [@Hudell](https://github.com/Hudell) & [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Direct Reply: separate Reply-To email from account username field ([#10988](https://github.com/RocketChat/Rocket.Chat/pull/10988) by [@pkgodara](https://github.com/pkgodara)) -- Update katex to v0.9.0 ([#8402](https://github.com/RocketChat/Rocket.Chat/pull/8402) by [@pitamar](https://github.com/pitamar)) +- Changes all 'mergeChannels' to 'groupByType'. ([#10055](https://github.com/RocketChat/Rocket.Chat/pull/10055) by [@mikaelmello](https://github.com/mikaelmello)) - Update WeDeploy deployment ([#10841](https://github.com/RocketChat/Rocket.Chat/pull/10841) by [@jonnilundy](https://github.com/jonnilundy)) -- WebDAV(Nextcloud/ownCloud) Storage Server Option ([#11027](https://github.com/RocketChat/Rocket.Chat/pull/11027) by [@karakayasemi](https://github.com/karakayasemi)) - -- Youtube Broadcasting ([#10127](https://github.com/RocketChat/Rocket.Chat/pull/10127) by [@gdelavald](https://github.com/gdelavald)) - ### 🚀 Improvements @@ -8490,153 +8794,155 @@ ### 🐛 Bug fixes -- "blank messages" on iOS < 11 ([#11221](https://github.com/RocketChat/Rocket.Chat/pull/11221)) - -- "blank" screen on iOS < 11 ([#11199](https://github.com/RocketChat/Rocket.Chat/pull/11199)) - -- /groups.invite not allow a user to invite even with permission ([#11010](https://github.com/RocketChat/Rocket.Chat/pull/11010) by [@Hudell](https://github.com/Hudell)) +- Wordpress oauth configuration not loading properly ([#11187](https://github.com/RocketChat/Rocket.Chat/pull/11187) by [@Hudell](https://github.com/Hudell)) -- Add parameter to REST chat.react endpoint, to make it work like a setter ([#10447](https://github.com/RocketChat/Rocket.Chat/pull/10447)) +- REST API: Add more test cases for `/login` ([#10999](https://github.com/RocketChat/Rocket.Chat/pull/10999) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Allow inviting livechat managers to the same LiveChat room ([#10956](https://github.com/RocketChat/Rocket.Chat/pull/10956)) +- Wrong font-family order ([#11191](https://github.com/RocketChat/Rocket.Chat/pull/11191) by [@Hudell](https://github.com/Hudell) & [@myfonj](https://github.com/myfonj)) -- Application crashing on startup when trying to log errors to `exceptions` channel ([#10934](https://github.com/RocketChat/Rocket.Chat/pull/10934)) +- REST endpoint `users.updateOwnBasicInfo` was not returning errors for invalid names and trying to save custom fields when empty ([#11204](https://github.com/RocketChat/Rocket.Chat/pull/11204) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Armhf snap build ([#11268](https://github.com/RocketChat/Rocket.Chat/pull/11268)) +- Livechat visitor not being prompted for transcript when himself is closing the chat ([#10767](https://github.com/RocketChat/Rocket.Chat/pull/10767)) -- avoid send presence without login ([#11074](https://github.com/RocketChat/Rocket.Chat/pull/11074)) +- HipChat Cloud import fails to import rooms ([#11188](https://github.com/RocketChat/Rocket.Chat/pull/11188) by [@Hudell](https://github.com/Hudell)) -- Build for Sandstorm missing dependence for capnp ([#11056](https://github.com/RocketChat/Rocket.Chat/pull/11056) by [@peterlee0127](https://github.com/peterlee0127)) +- Failure to download user data ([#11190](https://github.com/RocketChat/Rocket.Chat/pull/11190) by [@Hudell](https://github.com/Hudell)) -- Can't access the `/account/profile` ([#11089](https://github.com/RocketChat/Rocket.Chat/pull/11089)) +- Add parameter to REST chat.react endpoint, to make it work like a setter ([#10447](https://github.com/RocketChat/Rocket.Chat/pull/10447) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Cannot read property 'debug' of undefined when trying to use REST API ([#10805](https://github.com/RocketChat/Rocket.Chat/pull/10805) by [@haffla](https://github.com/haffla)) +- Default selected language ([#11150](https://github.com/RocketChat/Rocket.Chat/pull/11150)) -- Confirm password on set new password user profile ([#11095](https://github.com/RocketChat/Rocket.Chat/pull/11095)) +- Rendering of emails and mentions in messages ([#11165](https://github.com/RocketChat/Rocket.Chat/pull/11165)) -- Default selected language ([#11150](https://github.com/RocketChat/Rocket.Chat/pull/11150)) +- Livechat icon with status ([#11177](https://github.com/RocketChat/Rocket.Chat/pull/11177)) -- Exception in metrics generation ([#11072](https://github.com/RocketChat/Rocket.Chat/pull/11072)) +- remove sidebar on embedded view ([#11183](https://github.com/RocketChat/Rocket.Chat/pull/11183)) -- Exception thrown on avatar validation ([#11009](https://github.com/RocketChat/Rocket.Chat/pull/11009) by [@Hudell](https://github.com/Hudell)) +- Missing language constants ([#11173](https://github.com/RocketChat/Rocket.Chat/pull/11173) by [@rw4lll](https://github.com/rw4lll)) -- Failure to download user data ([#11190](https://github.com/RocketChat/Rocket.Chat/pull/11190) by [@Hudell](https://github.com/Hudell)) +- Room creation error due absence of subscriptions ([#11178](https://github.com/RocketChat/Rocket.Chat/pull/11178)) -- flex-tab icons missing ([#11049](https://github.com/RocketChat/Rocket.Chat/pull/11049)) +- Remove failed upload messages when switching rooms ([#11132](https://github.com/RocketChat/Rocket.Chat/pull/11132)) -- Generated random password visible to the user ([#11096](https://github.com/RocketChat/Rocket.Chat/pull/11096)) +- Wordpress OAuth not providing enough info to log in ([#11152](https://github.com/RocketChat/Rocket.Chat/pull/11152) by [@Hudell](https://github.com/Hudell)) -- HipChat Cloud import fails to import rooms ([#11188](https://github.com/RocketChat/Rocket.Chat/pull/11188) by [@Hudell](https://github.com/Hudell)) +- /groups.invite not allow a user to invite even with permission ([#11010](https://github.com/RocketChat/Rocket.Chat/pull/11010) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Icons svg xml structure ([#10771](https://github.com/RocketChat/Rocket.Chat/pull/10771) by [@timkinnane](https://github.com/timkinnane)) +- Various lang fixes [RU] ([#10095](https://github.com/RocketChat/Rocket.Chat/pull/10095) by [@rw4lll](https://github.com/rw4lll)) -- Idle time limit wasn’t working as expected ([#11084](https://github.com/RocketChat/Rocket.Chat/pull/11084)) +- set-toolbar-items postMessage ([#11109](https://github.com/RocketChat/Rocket.Chat/pull/11109)) -- Image lazy load was breaking attachments ([#10904](https://github.com/RocketChat/Rocket.Chat/pull/10904)) +- title and value attachments are optionals on sendMessage method ([#11021](https://github.com/RocketChat/Rocket.Chat/pull/11021) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Incomplete email notification link ([#10928](https://github.com/RocketChat/Rocket.Chat/pull/10928)) +- Some typos in the error message names ([#11136](https://github.com/RocketChat/Rocket.Chat/pull/11136) by [@vynmera](https://github.com/vynmera)) -- Internal Server Error on first login with CAS integration ([#11257](https://github.com/RocketChat/Rocket.Chat/pull/11257) by [@Hudell](https://github.com/Hudell)) +- open conversation from room info ([#11050](https://github.com/RocketChat/Rocket.Chat/pull/11050)) -- LDAP was accepting login with empty passwords for certain AD configurations ([#11264](https://github.com/RocketChat/Rocket.Chat/pull/11264)) +- Users model was not receiving options ([#11129](https://github.com/RocketChat/Rocket.Chat/pull/11129)) -- Leave room wasn't working as expected ([#10851](https://github.com/RocketChat/Rocket.Chat/pull/10851)) +- Popover position ([#11113](https://github.com/RocketChat/Rocket.Chat/pull/11113)) -- Link previews not being removed from messages after removed on editing ([#11063](https://github.com/RocketChat/Rocket.Chat/pull/11063)) +- Generated random password visible to the user ([#11096](https://github.com/RocketChat/Rocket.Chat/pull/11096)) - LiveChat appearance changes not being saved ([#11111](https://github.com/RocketChat/Rocket.Chat/pull/11111)) -- Livechat icon with status ([#11177](https://github.com/RocketChat/Rocket.Chat/pull/11177)) - -- Livechat visitor not being prompted for transcript when himself is closing the chat ([#10767](https://github.com/RocketChat/Rocket.Chat/pull/10767)) +- Confirm password on set new password user profile ([#11095](https://github.com/RocketChat/Rocket.Chat/pull/11095)) - Message_AllowedMaxSize fails for emoji sequences ([#10431](https://github.com/RocketChat/Rocket.Chat/pull/10431) by [@c0dzilla](https://github.com/c0dzilla)) -- Missing language constants ([#11173](https://github.com/RocketChat/Rocket.Chat/pull/11173) by [@rw4lll](https://github.com/rw4lll)) +- Can't access the `/account/profile` ([#11089](https://github.com/RocketChat/Rocket.Chat/pull/11089)) -- Notification not working for group mentions and not respecting ignored users ([#11024](https://github.com/RocketChat/Rocket.Chat/pull/11024)) +- Idle time limit wasn’t working as expected ([#11084](https://github.com/RocketChat/Rocket.Chat/pull/11084)) -- open conversation from room info ([#11050](https://github.com/RocketChat/Rocket.Chat/pull/11050)) +- Rooms list sorting by activity multiple re-renders and case sensitive sorting alphabetically ([#9959](https://github.com/RocketChat/Rocket.Chat/pull/9959) by [@JoseRenan](https://github.com/JoseRenan) & [@karlprieb](https://github.com/karlprieb)) -- Overlapping of search text and cancel search icon (X) ([#10294](https://github.com/RocketChat/Rocket.Chat/pull/10294) by [@taeven](https://github.com/taeven)) +- Notification not working for group mentions and not respecting ignored users ([#11024](https://github.com/RocketChat/Rocket.Chat/pull/11024)) -- Popover position ([#11113](https://github.com/RocketChat/Rocket.Chat/pull/11113)) +- Overlapping of search text and cancel search icon (X) ([#10294](https://github.com/RocketChat/Rocket.Chat/pull/10294) by [@taeven](https://github.com/taeven)) -- Preview of large images not resizing to fit the area and having scrollbars ([#10998](https://github.com/RocketChat/Rocket.Chat/pull/10998) by [@vynmera](https://github.com/vynmera)) +- Link previews not being removed from messages after removed on editing ([#11063](https://github.com/RocketChat/Rocket.Chat/pull/11063)) -- Reaction Toggle was not working when omitting the last parameter from the API (DDP and REST) ([#11276](https://github.com/RocketChat/Rocket.Chat/pull/11276) by [@Hudell](https://github.com/Hudell)) +- avoid send presence without login ([#11074](https://github.com/RocketChat/Rocket.Chat/pull/11074)) -- Remove failed upload messages when switching rooms ([#11132](https://github.com/RocketChat/Rocket.Chat/pull/11132)) +- Exception in metrics generation ([#11072](https://github.com/RocketChat/Rocket.Chat/pull/11072)) -- Remove outdated 2FA warning for mobile clients ([#10916](https://github.com/RocketChat/Rocket.Chat/pull/10916) by [@cardoso](https://github.com/cardoso)) +- Build for Sandstorm missing dependence for capnp ([#11056](https://github.com/RocketChat/Rocket.Chat/pull/11056) by [@peterlee0127](https://github.com/peterlee0127)) -- remove sidebar on embedded view ([#11183](https://github.com/RocketChat/Rocket.Chat/pull/11183)) +- flex-tab icons missing ([#11049](https://github.com/RocketChat/Rocket.Chat/pull/11049)) -- Rendering of emails and mentions in messages ([#11165](https://github.com/RocketChat/Rocket.Chat/pull/11165)) +- Update ja.i18n.json ([#11020](https://github.com/RocketChat/Rocket.Chat/pull/11020) by [@Hudell](https://github.com/Hudell) & [@noobbbbb](https://github.com/noobbbbb)) -- REST API: Add more test cases for `/login` ([#10999](https://github.com/RocketChat/Rocket.Chat/pull/10999)) +- Strange msg when setting room announcement, topic or description to be empty ([#11012](https://github.com/RocketChat/Rocket.Chat/pull/11012) by [@vynmera](https://github.com/vynmera)) -- REST endpoint `users.updateOwnBasicInfo` was not returning errors for invalid names and trying to save custom fields when empty ([#11204](https://github.com/RocketChat/Rocket.Chat/pull/11204)) +- Exception thrown on avatar validation ([#11009](https://github.com/RocketChat/Rocket.Chat/pull/11009) by [@Hudell](https://github.com/Hudell)) -- Room creation error due absence of subscriptions ([#11178](https://github.com/RocketChat/Rocket.Chat/pull/11178)) +- Preview of large images not resizing to fit the area and having scrollbars ([#10998](https://github.com/RocketChat/Rocket.Chat/pull/10998) by [@vynmera](https://github.com/vynmera)) -- Rooms list sorting by activity multiple re-renders and case sensitive sorting alphabetically ([#9959](https://github.com/RocketChat/Rocket.Chat/pull/9959) by [@JoseRenan](https://github.com/JoseRenan) & [@karlprieb](https://github.com/karlprieb)) +- Allow inviting livechat managers to the same LiveChat room ([#10956](https://github.com/RocketChat/Rocket.Chat/pull/10956)) -- set-toolbar-items postMessage ([#11109](https://github.com/RocketChat/Rocket.Chat/pull/11109)) +- Cannot read property 'debug' of undefined when trying to use REST API ([#10805](https://github.com/RocketChat/Rocket.Chat/pull/10805) by [@haffla](https://github.com/haffla)) -- Some typos in the error message names ([#11136](https://github.com/RocketChat/Rocket.Chat/pull/11136) by [@vynmera](https://github.com/vynmera)) +- Icons svg xml structure ([#10771](https://github.com/RocketChat/Rocket.Chat/pull/10771) by [@timkinnane](https://github.com/timkinnane)) -- Strange msg when setting room announcement, topic or description to be empty ([#11012](https://github.com/RocketChat/Rocket.Chat/pull/11012) by [@vynmera](https://github.com/vynmera)) +- Leave room wasn't working as expected ([#10851](https://github.com/RocketChat/Rocket.Chat/pull/10851)) -- The process was freezing in some cases when HTTP calls exceeds timeout on integrations ([#11253](https://github.com/RocketChat/Rocket.Chat/pull/11253)) +- Application crashing on startup when trying to log errors to `exceptions` channel ([#10934](https://github.com/RocketChat/Rocket.Chat/pull/10934)) -- title and value attachments are optionals on sendMessage method ([#11021](https://github.com/RocketChat/Rocket.Chat/pull/11021)) +- Image lazy load was breaking attachments ([#10904](https://github.com/RocketChat/Rocket.Chat/pull/10904)) -- Update capnproto dependence for Sandstorm Build ([#11263](https://github.com/RocketChat/Rocket.Chat/pull/11263) by [@peterlee0127](https://github.com/peterlee0127)) +- Incomplete email notification link ([#10928](https://github.com/RocketChat/Rocket.Chat/pull/10928)) -- Update ja.i18n.json ([#11020](https://github.com/RocketChat/Rocket.Chat/pull/11020) by [@Hudell](https://github.com/Hudell) & [@noobbbbb](https://github.com/noobbbbb)) +- Remove outdated 2FA warning for mobile clients ([#10916](https://github.com/RocketChat/Rocket.Chat/pull/10916) by [@cardoso](https://github.com/cardoso)) - Update Sandstorm build config ([#10867](https://github.com/RocketChat/Rocket.Chat/pull/10867) by [@ocdtrekkie](https://github.com/ocdtrekkie)) -- Users model was not receiving options ([#11129](https://github.com/RocketChat/Rocket.Chat/pull/11129)) +- "blank messages" on iOS < 11 ([#11221](https://github.com/RocketChat/Rocket.Chat/pull/11221)) -- Various lang fixes [RU] ([#10095](https://github.com/RocketChat/Rocket.Chat/pull/10095) by [@rw4lll](https://github.com/rw4lll)) +- "blank" screen on iOS < 11 ([#11199](https://github.com/RocketChat/Rocket.Chat/pull/11199)) + +- The process was freezing in some cases when HTTP calls exceeds timeout on integrations ([#11253](https://github.com/RocketChat/Rocket.Chat/pull/11253)) + +- LDAP was accepting login with empty passwords for certain AD configurations ([#11264](https://github.com/RocketChat/Rocket.Chat/pull/11264)) + +- Update capnproto dependence for Sandstorm Build ([#11263](https://github.com/RocketChat/Rocket.Chat/pull/11263) by [@peterlee0127](https://github.com/peterlee0127)) -- Wordpress oauth configuration not loading properly ([#11187](https://github.com/RocketChat/Rocket.Chat/pull/11187) by [@Hudell](https://github.com/Hudell)) +- Internal Server Error on first login with CAS integration ([#11257](https://github.com/RocketChat/Rocket.Chat/pull/11257) by [@Hudell](https://github.com/Hudell)) -- Wordpress OAuth not providing enough info to log in ([#11152](https://github.com/RocketChat/Rocket.Chat/pull/11152) by [@Hudell](https://github.com/Hudell)) +- Armhf snap build ([#11268](https://github.com/RocketChat/Rocket.Chat/pull/11268)) -- Wrong font-family order ([#11191](https://github.com/RocketChat/Rocket.Chat/pull/11191) by [@Hudell](https://github.com/Hudell) & [@myfonj](https://github.com/myfonj)) +- Reaction Toggle was not working when omitting the last parameter from the API (DDP and REST) ([#11276](https://github.com/RocketChat/Rocket.Chat/pull/11276) by [@Hudell](https://github.com/Hudell))
🔍 Minor changes -- [FIX Readme] Nodejs + Python version spicifications ([#11181](https://github.com/RocketChat/Rocket.Chat/pull/11181) by [@mahdiyari](https://github.com/mahdiyari)) - -- Add Dockerfile with MongoDB ([#10971](https://github.com/RocketChat/Rocket.Chat/pull/10971)) +- Merge master into develop & Set version to 0.66.0-develop ([#11277](https://github.com/RocketChat/Rocket.Chat/pull/11277) by [@Hudell](https://github.com/Hudell) & [@brylie](https://github.com/brylie) & [@stuartpb](https://github.com/stuartpb)) -- Add verification to make sure the user exists in REST insert object helper ([#11008](https://github.com/RocketChat/Rocket.Chat/pull/11008)) +- Regression: Directory css ([#11206](https://github.com/RocketChat/Rocket.Chat/pull/11206) by [@karlprieb](https://github.com/karlprieb)) -- Build Docker image on CI ([#11076](https://github.com/RocketChat/Rocket.Chat/pull/11076)) +- LingoHub based on develop ([#11208](https://github.com/RocketChat/Rocket.Chat/pull/11208)) -- Changed 'confirm password' placeholder text on user registration form ([#9969](https://github.com/RocketChat/Rocket.Chat/pull/9969) by [@kumarnitj](https://github.com/kumarnitj)) +- IRC Federation: RFC2813 implementation (ngIRCd) ([#10113](https://github.com/RocketChat/Rocket.Chat/pull/10113) by [@Hudell](https://github.com/Hudell) & [@cpitman](https://github.com/cpitman) & [@lindoelio](https://github.com/lindoelio)) -- Develop sync commits ([#10909](https://github.com/RocketChat/Rocket.Chat/pull/10909) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) +- Add verification to make sure the user exists in REST insert object helper ([#11008](https://github.com/RocketChat/Rocket.Chat/pull/11008) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Develop sync2 ([#10908](https://github.com/RocketChat/Rocket.Chat/pull/10908) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) +- Regression: Directory user table infinite scroll doesn't working ([#11200](https://github.com/RocketChat/Rocket.Chat/pull/11200) by [@karlprieb](https://github.com/karlprieb)) -- Fix Docker image build on tags ([#11271](https://github.com/RocketChat/Rocket.Chat/pull/11271)) +- [FIX Readme] Nodejs + Python version spicifications ([#11181](https://github.com/RocketChat/Rocket.Chat/pull/11181) by [@mahdiyari](https://github.com/mahdiyari)) -- Fix Docker image for develop commits ([#11093](https://github.com/RocketChat/Rocket.Chat/pull/11093)) +- Regression: sorting direct message by asc on favorites group ([#11090](https://github.com/RocketChat/Rocket.Chat/pull/11090)) - Fix PR Docker image creation by splitting in two build jobs ([#11107](https://github.com/RocketChat/Rocket.Chat/pull/11107)) -- Fix readme typo ([#5](https://github.com/RocketChat/Rocket.Chat/pull/5) by [@filipealva](https://github.com/filipealva)) +- Update v126.js ([#11103](https://github.com/RocketChat/Rocket.Chat/pull/11103)) -- IRC Federation: RFC2813 implementation (ngIRCd) ([#10113](https://github.com/RocketChat/Rocket.Chat/pull/10113) by [@Hudell](https://github.com/Hudell) & [@cpitman](https://github.com/cpitman) & [@lindoelio](https://github.com/lindoelio)) +- Speed up the build time by removing JSON Minify from i18n package ([#11097](https://github.com/RocketChat/Rocket.Chat/pull/11097)) -- LingoHub based on develop ([#11208](https://github.com/RocketChat/Rocket.Chat/pull/11208)) +- Fix Docker image for develop commits ([#11093](https://github.com/RocketChat/Rocket.Chat/pull/11093)) + +- Build Docker image on CI ([#11076](https://github.com/RocketChat/Rocket.Chat/pull/11076)) + +- Update issue templates ([#11070](https://github.com/RocketChat/Rocket.Chat/pull/11070)) - LingoHub based on develop ([#11062](https://github.com/RocketChat/Rocket.Chat/pull/11062)) @@ -8654,57 +8960,55 @@ - LingoHub based on develop ([#11042](https://github.com/RocketChat/Rocket.Chat/pull/11042)) +- Changed 'confirm password' placeholder text on user registration form ([#9969](https://github.com/RocketChat/Rocket.Chat/pull/9969) by [@kumarnitj](https://github.com/kumarnitj)) + - LingoHub based on develop ([#11039](https://github.com/RocketChat/Rocket.Chat/pull/11039)) - LingoHub based on develop ([#11035](https://github.com/RocketChat/Rocket.Chat/pull/11035)) -- LingoHub based on develop ([#11246](https://github.com/RocketChat/Rocket.Chat/pull/11246)) +- Update Documentation: README.md ([#10207](https://github.com/RocketChat/Rocket.Chat/pull/10207) by [@rakhi2104](https://github.com/rakhi2104)) -- Merge master into develop & Set version to 0.66.0-develop ([#11277](https://github.com/RocketChat/Rocket.Chat/pull/11277) by [@Hudell](https://github.com/Hudell) & [@brylie](https://github.com/brylie) & [@stuartpb](https://github.com/stuartpb)) +- NPM Dependencies Update ([#10913](https://github.com/RocketChat/Rocket.Chat/pull/10913)) -- Merge master into develop & Set version to 0.66.0-develop ([#10903](https://github.com/RocketChat/Rocket.Chat/pull/10903) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) +- update meteor to 1.6.1 for sandstorm build ([#10131](https://github.com/RocketChat/Rocket.Chat/pull/10131) by [@peterlee0127](https://github.com/peterlee0127)) -- New history source format & add Node and NPM versions ([#11237](https://github.com/RocketChat/Rocket.Chat/pull/11237)) +- Renaming username.username to username.value for clarity ([#10986](https://github.com/RocketChat/Rocket.Chat/pull/10986)) -- NPM Dependencies Update ([#10913](https://github.com/RocketChat/Rocket.Chat/pull/10913)) +- Fix readme typo ([#5](https://github.com/RocketChat/Rocket.Chat/pull/5) by [@filipealva](https://github.com/filipealva)) -- Regression: check username or usersCount on browseChannels ([#11216](https://github.com/RocketChat/Rocket.Chat/pull/11216)) +- Remove wrong and not needed time unit ([#10807](https://github.com/RocketChat/Rocket.Chat/pull/10807) by [@cliffparnitzky](https://github.com/cliffparnitzky)) -- Regression: Directory css ([#11206](https://github.com/RocketChat/Rocket.Chat/pull/11206) by [@karlprieb](https://github.com/karlprieb)) +- Develop sync commits ([#10909](https://github.com/RocketChat/Rocket.Chat/pull/10909) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) -- Regression: Directory sort users, fix null results, text for empty results ([#11224](https://github.com/RocketChat/Rocket.Chat/pull/11224)) +- Develop sync2 ([#10908](https://github.com/RocketChat/Rocket.Chat/pull/10908) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) -- Regression: Directory user table infinite scroll doesn't working ([#11200](https://github.com/RocketChat/Rocket.Chat/pull/11200) by [@karlprieb](https://github.com/karlprieb)) +- Merge master into develop & Set version to 0.66.0-develop ([#10903](https://github.com/RocketChat/Rocket.Chat/pull/10903) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) - Regression: Fix directory table loading ([#11223](https://github.com/RocketChat/Rocket.Chat/pull/11223) by [@karlprieb](https://github.com/karlprieb)) - Regression: Fix latest and release-candidate docker images building ([#11215](https://github.com/RocketChat/Rocket.Chat/pull/11215)) -- Regression: Prometheus was not being enabled in some cases ([#11249](https://github.com/RocketChat/Rocket.Chat/pull/11249)) +- Regression: check username or usersCount on browseChannels ([#11216](https://github.com/RocketChat/Rocket.Chat/pull/11216)) - Regression: Sending message with a mention is not showing to sender ([#11211](https://github.com/RocketChat/Rocket.Chat/pull/11211)) -- Regression: sidebar sorting was being wrong in some cases where the rooms records were returned before the subscriptions ([#11273](https://github.com/RocketChat/Rocket.Chat/pull/11273)) +- Regression: Prometheus was not being enabled in some cases ([#11249](https://github.com/RocketChat/Rocket.Chat/pull/11249)) - Regression: Skip operations if no actions on livechat migration ([#11232](https://github.com/RocketChat/Rocket.Chat/pull/11232)) -- Regression: sorting direct message by asc on favorites group ([#11090](https://github.com/RocketChat/Rocket.Chat/pull/11090)) - -- Remove wrong and not needed time unit ([#10807](https://github.com/RocketChat/Rocket.Chat/pull/10807) by [@cliffparnitzky](https://github.com/cliffparnitzky)) - -- Renaming username.username to username.value for clarity ([#10986](https://github.com/RocketChat/Rocket.Chat/pull/10986)) +- Regression: Directory sort users, fix null results, text for empty results ([#11224](https://github.com/RocketChat/Rocket.Chat/pull/11224)) -- Speed up the build time by removing JSON Minify from i18n package ([#11097](https://github.com/RocketChat/Rocket.Chat/pull/11097)) +- LingoHub based on develop ([#11246](https://github.com/RocketChat/Rocket.Chat/pull/11246)) -- Update Documentation: README.md ([#10207](https://github.com/RocketChat/Rocket.Chat/pull/10207) by [@rakhi2104](https://github.com/rakhi2104)) +- Update Meteor to 1.6.1.3 ([#11247](https://github.com/RocketChat/Rocket.Chat/pull/11247)) -- Update issue templates ([#11070](https://github.com/RocketChat/Rocket.Chat/pull/11070)) +- New history source format & add Node and NPM versions ([#11237](https://github.com/RocketChat/Rocket.Chat/pull/11237)) -- update meteor to 1.6.1 for sandstorm build ([#10131](https://github.com/RocketChat/Rocket.Chat/pull/10131) by [@peterlee0127](https://github.com/peterlee0127)) +- Add Dockerfile with MongoDB ([#10971](https://github.com/RocketChat/Rocket.Chat/pull/10971)) -- Update Meteor to 1.6.1.3 ([#11247](https://github.com/RocketChat/Rocket.Chat/pull/11247)) +- Regression: sidebar sorting was being wrong in some cases where the rooms records were returned before the subscriptions ([#11273](https://github.com/RocketChat/Rocket.Chat/pull/11273)) -- Update v126.js ([#11103](https://github.com/RocketChat/Rocket.Chat/pull/11103)) +- Fix Docker image build on tags ([#11271](https://github.com/RocketChat/Rocket.Chat/pull/11271))
@@ -8712,6 +9016,7 @@ - [@Hudell](https://github.com/Hudell) - [@JoseRenan](https://github.com/JoseRenan) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@brylie](https://github.com/brylie) - [@c0dzilla](https://github.com/c0dzilla) - [@cardoso](https://github.com/cardoso) @@ -8748,7 +9053,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@alansikora](https://github.com/alansikora) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -8799,15 +9103,15 @@ ### 🐛 Bug fixes -- Application crashing on startup when trying to log errors to `exceptions` channel ([#10934](https://github.com/RocketChat/Rocket.Chat/pull/10934)) +- Livechat not loading ([#10940](https://github.com/RocketChat/Rocket.Chat/pull/10940)) -- Image lazy load was breaking attachments ([#10904](https://github.com/RocketChat/Rocket.Chat/pull/10904)) +- Application crashing on startup when trying to log errors to `exceptions` channel ([#10934](https://github.com/RocketChat/Rocket.Chat/pull/10934)) - Incomplete email notification link ([#10928](https://github.com/RocketChat/Rocket.Chat/pull/10928)) -- Leave room wasn't working as expected ([#10851](https://github.com/RocketChat/Rocket.Chat/pull/10851)) +- Image lazy load was breaking attachments ([#10904](https://github.com/RocketChat/Rocket.Chat/pull/10904)) -- Livechat not loading ([#10940](https://github.com/RocketChat/Rocket.Chat/pull/10940)) +- Leave room wasn't working as expected ([#10851](https://github.com/RocketChat/Rocket.Chat/pull/10851)) ### 👩‍💻👨‍💻 Core Team 🤓 @@ -8825,160 +9129,161 @@ ### 🎉 New features -- Add more options for Wordpress OAuth configuration ([#10724](https://github.com/RocketChat/Rocket.Chat/pull/10724) by [@Hudell](https://github.com/Hudell)) - -- Add permission `view-broadcast-member-list` ([#10753](https://github.com/RocketChat/Rocket.Chat/pull/10753) by [@cardoso](https://github.com/cardoso)) +- Implement a local password policy ([#9857](https://github.com/RocketChat/Rocket.Chat/pull/9857)) -- Add REST API endpoint `users.getUsernameSuggestion` to get username suggestion ([#10702](https://github.com/RocketChat/Rocket.Chat/pull/10702)) +- Options to enable/disable each Livechat registration form field ([#10584](https://github.com/RocketChat/Rocket.Chat/pull/10584)) -- Add REST API endpoints `channels.counters`, `groups.counters and `im.counters` ([#9679](https://github.com/RocketChat/Rocket.Chat/pull/9679) by [@xbolshe](https://github.com/xbolshe)) +- Return the result of the `/me` endpoint within the result of the `/login` endpoint ([#10677](https://github.com/RocketChat/Rocket.Chat/pull/10677) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Add REST API endpoints `channels.setCustomFields` and `groups.setCustomFields` ([#9733](https://github.com/RocketChat/Rocket.Chat/pull/9733) by [@xbolshe](https://github.com/xbolshe)) +- Lazy load image attachments ([#10608](https://github.com/RocketChat/Rocket.Chat/pull/10608) by [@karlprieb](https://github.com/karlprieb)) -- Add REST endpoint `subscriptions.unread` to mark messages as unread ([#10778](https://github.com/RocketChat/Rocket.Chat/pull/10778)) +- View pinned message's attachment ([#10214](https://github.com/RocketChat/Rocket.Chat/pull/10214) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) -- Add REST endpoints `channels.roles` & `groups.roles` ([#10607](https://github.com/RocketChat/Rocket.Chat/pull/10607) by [@cardoso](https://github.com/cardoso) & [@rafaelks](https://github.com/rafaelks)) +- Add REST API endpoint `users.getUsernameSuggestion` to get username suggestion ([#10702](https://github.com/RocketChat/Rocket.Chat/pull/10702) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Implement a local password policy ([#9857](https://github.com/RocketChat/Rocket.Chat/pull/9857)) +- REST API endpoint `settings` now allow set colors and trigger actions ([#10488](https://github.com/RocketChat/Rocket.Chat/pull/10488) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@ThomasRoehl](https://github.com/ThomasRoehl)) -- Improvements to notifications logic ([#10686](https://github.com/RocketChat/Rocket.Chat/pull/10686)) +- Add REST endpoint `subscriptions.unread` to mark messages as unread ([#10778](https://github.com/RocketChat/Rocket.Chat/pull/10778) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Lazy load image attachments ([#10608](https://github.com/RocketChat/Rocket.Chat/pull/10608) by [@karlprieb](https://github.com/karlprieb)) +- REST API endpoint `/me` now returns all the settings, including the default values ([#10662](https://github.com/RocketChat/Rocket.Chat/pull/10662) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Now is possible to access files using header authorization (`x-user-id` and `x-auth-token`) ([#10741](https://github.com/RocketChat/Rocket.Chat/pull/10741)) +- Now is possible to access files using header authorization (`x-user-id` and `x-auth-token`) ([#10741](https://github.com/RocketChat/Rocket.Chat/pull/10741) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Options to enable/disable each Livechat registration form field ([#10584](https://github.com/RocketChat/Rocket.Chat/pull/10584)) +- Add REST API endpoints `channels.counters`, `groups.counters and `im.counters` ([#9679](https://github.com/RocketChat/Rocket.Chat/pull/9679) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@xbolshe](https://github.com/xbolshe)) -- REST API endpoint `/me` now returns all the settings, including the default values ([#10662](https://github.com/RocketChat/Rocket.Chat/pull/10662)) +- Add REST API endpoints `channels.setCustomFields` and `groups.setCustomFields` ([#9733](https://github.com/RocketChat/Rocket.Chat/pull/9733) by [@xbolshe](https://github.com/xbolshe)) -- REST API endpoint `settings` now allow set colors and trigger actions ([#10488](https://github.com/RocketChat/Rocket.Chat/pull/10488) by [@ThomasRoehl](https://github.com/ThomasRoehl)) +- Add REST endpoints `channels.roles` & `groups.roles` ([#10607](https://github.com/RocketChat/Rocket.Chat/pull/10607) by [@cardoso](https://github.com/cardoso) & [@rafaelks](https://github.com/rafaelks)) -- Return the result of the `/me` endpoint within the result of the `/login` endpoint ([#10677](https://github.com/RocketChat/Rocket.Chat/pull/10677)) +- Add more options for Wordpress OAuth configuration ([#10724](https://github.com/RocketChat/Rocket.Chat/pull/10724) by [@Hudell](https://github.com/Hudell)) - Setup Wizard ([#10523](https://github.com/RocketChat/Rocket.Chat/pull/10523) by [@karlprieb](https://github.com/karlprieb)) -- View pinned message's attachment ([#10214](https://github.com/RocketChat/Rocket.Chat/pull/10214) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) +- Improvements to notifications logic ([#10686](https://github.com/RocketChat/Rocket.Chat/pull/10686)) -### 🐛 Bug fixes +- Add permission `view-broadcast-member-list` ([#10753](https://github.com/RocketChat/Rocket.Chat/pull/10753) by [@cardoso](https://github.com/cardoso)) +### 🐛 Bug fixes -- Broadcast channels were showing reply button for deleted messages and generating wrong reply links some times ([#10835](https://github.com/RocketChat/Rocket.Chat/pull/10835)) -- Cancel button wasn't working while uploading file ([#10715](https://github.com/RocketChat/Rocket.Chat/pull/10715) by [@Mr-Gryphon](https://github.com/Mr-Gryphon) & [@karlprieb](https://github.com/karlprieb)) +- Livechat managers were not being able to send messages in some cases ([#10663](https://github.com/RocketChat/Rocket.Chat/pull/10663)) -- Channel owner was being set as muted when creating a read-only channel ([#10665](https://github.com/RocketChat/Rocket.Chat/pull/10665)) +- Livechat settings not appearing correctly ([#10612](https://github.com/RocketChat/Rocket.Chat/pull/10612)) - Enabling `Collapse Embedded Media by Default` was hiding replies and quotes ([#10427](https://github.com/RocketChat/Rocket.Chat/pull/10427) by [@c0dzilla](https://github.com/c0dzilla)) -- Horizontally align items in preview message ([#10883](https://github.com/RocketChat/Rocket.Chat/pull/10883) by [@gdelavald](https://github.com/gdelavald)) +- Missing option to disable/enable System Messages ([#10704](https://github.com/RocketChat/Rocket.Chat/pull/10704)) -- Improve desktop notification formatting ([#10445](https://github.com/RocketChat/Rocket.Chat/pull/10445) by [@Sameesunkaria](https://github.com/Sameesunkaria)) +- Remove outdated translations of Internal Hubot's description of Scripts to Load that were pointing to a non existent address ([#10448](https://github.com/RocketChat/Rocket.Chat/pull/10448) by [@Hudell](https://github.com/Hudell)) -- Internal Error when requesting user data download ([#10837](https://github.com/RocketChat/Rocket.Chat/pull/10837) by [@Hudell](https://github.com/Hudell)) +- UI was not disabling the actions when users has had no permissions to create channels or add users to rooms ([#10564](https://github.com/RocketChat/Rocket.Chat/pull/10564) by [@cfunkles](https://github.com/cfunkles) & [@chuckAtCataworx](https://github.com/chuckAtCataworx)) -- Layout badge cutting on unread messages for long names ([#10846](https://github.com/RocketChat/Rocket.Chat/pull/10846) by [@kos4live](https://github.com/kos4live)) +- Private settings were not being cleared from client cache in some cases ([#10625](https://github.com/RocketChat/Rocket.Chat/pull/10625) by [@Hudell](https://github.com/Hudell)) -- Livechat managers were not being able to send messages in some cases ([#10663](https://github.com/RocketChat/Rocket.Chat/pull/10663)) +- Not escaping special chars on mentions ([#10793](https://github.com/RocketChat/Rocket.Chat/pull/10793) by [@erhan-](https://github.com/erhan-)) -- Livechat settings not appearing correctly ([#10612](https://github.com/RocketChat/Rocket.Chat/pull/10612)) +- Send a message when muted returns inconsistent result in chat.sendMessage ([#10720](https://github.com/RocketChat/Rocket.Chat/pull/10720) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Message box emoji icon was flickering when typing a text ([#10678](https://github.com/RocketChat/Rocket.Chat/pull/10678) by [@gdelavald](https://github.com/gdelavald)) +- Regression: Empty content on announcement modal ([#10733](https://github.com/RocketChat/Rocket.Chat/pull/10733) by [@gdelavald](https://github.com/gdelavald)) - Missing attachment description when Rocket.Chat Apps were enabled ([#10705](https://github.com/RocketChat/Rocket.Chat/pull/10705) by [@Hudell](https://github.com/Hudell)) -- Missing option to disable/enable System Messages ([#10704](https://github.com/RocketChat/Rocket.Chat/pull/10704)) +- Improve desktop notification formatting ([#10445](https://github.com/RocketChat/Rocket.Chat/pull/10445) by [@Sameesunkaria](https://github.com/Sameesunkaria)) -- Missing pagination fields in the response of REST /directory endpoint ([#10840](https://github.com/RocketChat/Rocket.Chat/pull/10840)) +- Message box emoji icon was flickering when typing a text ([#10678](https://github.com/RocketChat/Rocket.Chat/pull/10678) by [@gdelavald](https://github.com/gdelavald)) -- Not escaping special chars on mentions ([#10793](https://github.com/RocketChat/Rocket.Chat/pull/10793) by [@erhan-](https://github.com/erhan-)) +- Channel owner was being set as muted when creating a read-only channel ([#10665](https://github.com/RocketChat/Rocket.Chat/pull/10665) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Private settings were not being cleared from client cache in some cases ([#10625](https://github.com/RocketChat/Rocket.Chat/pull/10625) by [@Hudell](https://github.com/Hudell)) +- SAML wasn't working correctly when running multiple instances ([#10681](https://github.com/RocketChat/Rocket.Chat/pull/10681) by [@Hudell](https://github.com/Hudell)) -- Regression: Empty content on announcement modal ([#10733](https://github.com/RocketChat/Rocket.Chat/pull/10733) by [@gdelavald](https://github.com/gdelavald)) +- Internal Error when requesting user data download ([#10837](https://github.com/RocketChat/Rocket.Chat/pull/10837) by [@Hudell](https://github.com/Hudell)) -- Remove outdated translations of Internal Hubot's description of Scripts to Load that were pointing to a non existent address ([#10448](https://github.com/RocketChat/Rocket.Chat/pull/10448) by [@Hudell](https://github.com/Hudell)) +- Broadcast channels were showing reply button for deleted messages and generating wrong reply links some times ([#10835](https://github.com/RocketChat/Rocket.Chat/pull/10835)) -- SAML wasn't working correctly when running multiple instances ([#10681](https://github.com/RocketChat/Rocket.Chat/pull/10681) by [@Hudell](https://github.com/Hudell)) +- User's preference `Unread on Top` wasn't working for LiveChat rooms ([#10734](https://github.com/RocketChat/Rocket.Chat/pull/10734)) -- Send a message when muted returns inconsistent result in chat.sendMessage ([#10720](https://github.com/RocketChat/Rocket.Chat/pull/10720)) +- Cancel button wasn't working while uploading file ([#10715](https://github.com/RocketChat/Rocket.Chat/pull/10715) by [@Mr-Gryphon](https://github.com/Mr-Gryphon) & [@karlprieb](https://github.com/karlprieb)) -- Slack-Bridge bug when migrating to 0.64.1 ([#10875](https://github.com/RocketChat/Rocket.Chat/pull/10875)) +- Missing pagination fields in the response of REST /directory endpoint ([#10840](https://github.com/RocketChat/Rocket.Chat/pull/10840) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- The first users was not set as admin some times ([#10878](https://github.com/RocketChat/Rocket.Chat/pull/10878)) +- Layout badge cutting on unread messages for long names ([#10846](https://github.com/RocketChat/Rocket.Chat/pull/10846) by [@kos4live](https://github.com/kos4live)) -- UI was not disabling the actions when users has had no permissions to create channels or add users to rooms ([#10564](https://github.com/RocketChat/Rocket.Chat/pull/10564) by [@cfunkles](https://github.com/cfunkles) & [@chuckAtCataworx](https://github.com/chuckAtCataworx)) +- Slack-Bridge bug when migrating to 0.64.1 ([#10875](https://github.com/RocketChat/Rocket.Chat/pull/10875)) -- User's preference `Unread on Top` wasn't working for LiveChat rooms ([#10734](https://github.com/RocketChat/Rocket.Chat/pull/10734)) +- Horizontally align items in preview message ([#10883](https://github.com/RocketChat/Rocket.Chat/pull/10883) by [@gdelavald](https://github.com/gdelavald)) + +- The first users was not set as admin some times ([#10878](https://github.com/RocketChat/Rocket.Chat/pull/10878))
🔍 Minor changes -- Add `npm run postinstall` into example build script ([#10524](https://github.com/RocketChat/Rocket.Chat/pull/10524) by [@peccu](https://github.com/peccu)) +- Release 0.65.0 ([#10893](https://github.com/RocketChat/Rocket.Chat/pull/10893) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@Sameesunkaria](https://github.com/Sameesunkaria) & [@cardoso](https://github.com/cardoso) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) -- Add badge back to push notifications ([#10779](https://github.com/RocketChat/Rocket.Chat/pull/10779)) +- Apps: Command Previews, Message and Room Removal Events ([#10822](https://github.com/RocketChat/Rocket.Chat/pull/10822)) -- Add setting and expose prometheus on port 9100 ([#10766](https://github.com/RocketChat/Rocket.Chat/pull/10766)) +- Develop sync ([#10815](https://github.com/RocketChat/Rocket.Chat/pull/10815) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) -- Apps: Command previews are clickable & Apps Framework is controlled via a setting ([#10853](https://github.com/RocketChat/Rocket.Chat/pull/10853)) +- Major dependencies update ([#10661](https://github.com/RocketChat/Rocket.Chat/pull/10661)) -- Apps: Command Previews, Message and Room Removal Events ([#10822](https://github.com/RocketChat/Rocket.Chat/pull/10822)) +- Prevent setup wizard redirects ([#10811](https://github.com/RocketChat/Rocket.Chat/pull/10811)) -- Better metric for notifications ([#10786](https://github.com/RocketChat/Rocket.Chat/pull/10786)) +- Prometheus: Add metric to track hooks time ([#10798](https://github.com/RocketChat/Rocket.Chat/pull/10798)) -- Correct links in README file ([#10674](https://github.com/RocketChat/Rocket.Chat/pull/10674) by [@winterstefan](https://github.com/winterstefan)) +- Regression: Autorun of wizard was not destroyed after completion ([#10802](https://github.com/RocketChat/Rocket.Chat/pull/10802)) -- Develop sync ([#10815](https://github.com/RocketChat/Rocket.Chat/pull/10815) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) +- Prometheus: Fix notification metric ([#10803](https://github.com/RocketChat/Rocket.Chat/pull/10803)) -- Fix: Clarify the wording of the release issue template ([#10520](https://github.com/RocketChat/Rocket.Chat/pull/10520)) +- Regression: Fix wrong wizard field name ([#10804](https://github.com/RocketChat/Rocket.Chat/pull/10804)) -- Fix: Manage apps layout was a bit confuse ([#10882](https://github.com/RocketChat/Rocket.Chat/pull/10882) by [@gdelavald](https://github.com/gdelavald)) +- Prometheus: Improve metric names ([#10789](https://github.com/RocketChat/Rocket.Chat/pull/10789)) -- Fix: Regression in REST API endpoint `/me` ([#10833](https://github.com/RocketChat/Rocket.Chat/pull/10833)) +- Improvement to push notifications on direct messages ([#10788](https://github.com/RocketChat/Rocket.Chat/pull/10788)) -- Fix: Regression Lazyload fix shuffle avatars ([#10887](https://github.com/RocketChat/Rocket.Chat/pull/10887)) +- Better metric for notifications ([#10786](https://github.com/RocketChat/Rocket.Chat/pull/10786)) -- Fix: Regression on users avatar in admin pages ([#10836](https://github.com/RocketChat/Rocket.Chat/pull/10836)) +- Add badge back to push notifications ([#10779](https://github.com/RocketChat/Rocket.Chat/pull/10779)) -- Fix: typo on error message for push token API ([#10857](https://github.com/RocketChat/Rocket.Chat/pull/10857) by [@rafaelks](https://github.com/rafaelks)) +- Wizard improvements ([#10776](https://github.com/RocketChat/Rocket.Chat/pull/10776)) -- Improvement to push notifications on direct messages ([#10788](https://github.com/RocketChat/Rocket.Chat/pull/10788)) +- Add setting and expose prometheus on port 9100 ([#10766](https://github.com/RocketChat/Rocket.Chat/pull/10766)) -- LingoHub based on develop ([#10691](https://github.com/RocketChat/Rocket.Chat/pull/10691)) +- Regression: Fix notifications for direct messages ([#10760](https://github.com/RocketChat/Rocket.Chat/pull/10760)) -- LingoHub based on develop ([#10886](https://github.com/RocketChat/Rocket.Chat/pull/10886)) +- More improvements on send notifications logic ([#10736](https://github.com/RocketChat/Rocket.Chat/pull/10736)) -- Major dependencies update ([#10661](https://github.com/RocketChat/Rocket.Chat/pull/10661)) +- LingoHub based on develop ([#10691](https://github.com/RocketChat/Rocket.Chat/pull/10691)) -- More improvements on send notifications logic ([#10736](https://github.com/RocketChat/Rocket.Chat/pull/10736)) +- Add `npm run postinstall` into example build script ([#10524](https://github.com/RocketChat/Rocket.Chat/pull/10524) by [@peccu](https://github.com/peccu)) -- Prevent setup wizard redirects ([#10811](https://github.com/RocketChat/Rocket.Chat/pull/10811)) +- Correct links in README file ([#10674](https://github.com/RocketChat/Rocket.Chat/pull/10674) by [@winterstefan](https://github.com/winterstefan)) -- Prometheus: Add metric to track hooks time ([#10798](https://github.com/RocketChat/Rocket.Chat/pull/10798)) +- Fix: Regression in REST API endpoint `/me` ([#10833](https://github.com/RocketChat/Rocket.Chat/pull/10833) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prometheus: Fix notification metric ([#10803](https://github.com/RocketChat/Rocket.Chat/pull/10803)) +- Regression: Fix email notification preference not showing correct selected value ([#10847](https://github.com/RocketChat/Rocket.Chat/pull/10847)) -- Prometheus: Improve metric names ([#10789](https://github.com/RocketChat/Rocket.Chat/pull/10789)) +- Apps: Command previews are clickable & Apps Framework is controlled via a setting ([#10853](https://github.com/RocketChat/Rocket.Chat/pull/10853)) -- Regression: Autorun of wizard was not destroyed after completion ([#10802](https://github.com/RocketChat/Rocket.Chat/pull/10802)) +- Regression: Make settings `Site_Name` and `Language` public again ([#10848](https://github.com/RocketChat/Rocket.Chat/pull/10848)) -- Regression: Fix email notification preference not showing correct selected value ([#10847](https://github.com/RocketChat/Rocket.Chat/pull/10847)) +- Fix: Clarify the wording of the release issue template ([#10520](https://github.com/RocketChat/Rocket.Chat/pull/10520)) -- Regression: Fix notifications for direct messages ([#10760](https://github.com/RocketChat/Rocket.Chat/pull/10760)) +- Fix: Regression on users avatar in admin pages ([#10836](https://github.com/RocketChat/Rocket.Chat/pull/10836)) -- Regression: Fix wrong wizard field name ([#10804](https://github.com/RocketChat/Rocket.Chat/pull/10804)) +- Fix: Manage apps layout was a bit confuse ([#10882](https://github.com/RocketChat/Rocket.Chat/pull/10882) by [@gdelavald](https://github.com/gdelavald)) -- Regression: Make settings `Site_Name` and `Language` public again ([#10848](https://github.com/RocketChat/Rocket.Chat/pull/10848)) +- LingoHub based on develop ([#10886](https://github.com/RocketChat/Rocket.Chat/pull/10886)) -- Release 0.65.0 ([#10893](https://github.com/RocketChat/Rocket.Chat/pull/10893) by [@Hudell](https://github.com/Hudell) & [@Sameesunkaria](https://github.com/Sameesunkaria) & [@cardoso](https://github.com/cardoso) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) +- Fix: Regression Lazyload fix shuffle avatars ([#10887](https://github.com/RocketChat/Rocket.Chat/pull/10887)) -- Wizard improvements ([#10776](https://github.com/RocketChat/Rocket.Chat/pull/10776)) +- Fix: typo on error message for push token API ([#10857](https://github.com/RocketChat/Rocket.Chat/pull/10857) by [@rafaelks](https://github.com/rafaelks))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Mr-Gryphon](https://github.com/Mr-Gryphon) - [@Sameesunkaria](https://github.com/Sameesunkaria) - [@ThomasRoehl](https://github.com/ThomasRoehl) @@ -8998,7 +9303,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -9018,13 +9322,14 @@ 🔍 Minor changes -- Release 0.64.2 ([#10812](https://github.com/RocketChat/Rocket.Chat/pull/10812) by [@Hudell](https://github.com/Hudell) & [@Sameesunkaria](https://github.com/Sameesunkaria) & [@cardoso](https://github.com/cardoso) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) +- Release 0.64.2 ([#10812](https://github.com/RocketChat/Rocket.Chat/pull/10812) by [@Hudell](https://github.com/Hudell) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@Sameesunkaria](https://github.com/Sameesunkaria) & [@cardoso](https://github.com/cardoso) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) ### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Sameesunkaria](https://github.com/Sameesunkaria) - [@cardoso](https://github.com/cardoso) - [@erhan-](https://github.com/erhan-) @@ -9035,7 +9340,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -9063,14 +9367,14 @@ 🔍 Minor changes -- Dependencies update ([#10648](https://github.com/RocketChat/Rocket.Chat/pull/10648)) - -- Regression: Updating an App on multi-instance servers wasn't working ([#10611](https://github.com/RocketChat/Rocket.Chat/pull/10611)) - - Release 0.64.1 ([#10660](https://github.com/RocketChat/Rocket.Chat/pull/10660) by [@saplla](https://github.com/saplla)) - Support passing extra connection options to the Mongo driver ([#10529](https://github.com/RocketChat/Rocket.Chat/pull/10529) by [@saplla](https://github.com/saplla)) +- Regression: Updating an App on multi-instance servers wasn't working ([#10611](https://github.com/RocketChat/Rocket.Chat/pull/10611)) + +- Dependencies update ([#10648](https://github.com/RocketChat/Rocket.Chat/pull/10648)) + ### 👩‍💻👨‍💻 Contributors 😍 @@ -9094,211 +9398,212 @@ ### ⚠️ BREAKING CHANGES -- The property "settings" is no longer available to regular users via rest api ([#10411](https://github.com/RocketChat/Rocket.Chat/pull/10411)) +- Validate incoming message schema ([#9922](https://github.com/RocketChat/Rocket.Chat/pull/9922) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Validate incoming message schema ([#9922](https://github.com/RocketChat/Rocket.Chat/pull/9922)) +- The property "settings" is no longer available to regular users via rest api ([#10411](https://github.com/RocketChat/Rocket.Chat/pull/10411)) ### 🎉 New features -- Add information regarding Zapier and Bots to the integrations page ([#10574](https://github.com/RocketChat/Rocket.Chat/pull/10574)) - -- Add internal API to handle room announcements ([#10396](https://github.com/RocketChat/Rocket.Chat/pull/10396) by [@gdelavald](https://github.com/gdelavald)) +- Option to mute group mentions (@all and @here) ([#10502](https://github.com/RocketChat/Rocket.Chat/pull/10502) by [@Hudell](https://github.com/Hudell)) -- Add message preview when quoting another message ([#10437](https://github.com/RocketChat/Rocket.Chat/pull/10437) by [@gdelavald](https://github.com/gdelavald)) +- GDPR - Right to access and Data Portability ([#9906](https://github.com/RocketChat/Rocket.Chat/pull/9906) by [@Hudell](https://github.com/Hudell)) -- Automatically trigger Redhat registry build when tagging new release ([#10414](https://github.com/RocketChat/Rocket.Chat/pull/10414)) +- Broadcast Channels ([#9950](https://github.com/RocketChat/Rocket.Chat/pull/9950)) -- Body of the payload on an incoming webhook is included on the request object ([#10259](https://github.com/RocketChat/Rocket.Chat/pull/10259) by [@Hudell](https://github.com/Hudell)) +- Option to ignore users on channels ([#10517](https://github.com/RocketChat/Rocket.Chat/pull/10517) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Broadcast Channels ([#9950](https://github.com/RocketChat/Rocket.Chat/pull/9950)) +- Search Provider Framework ([#10110](https://github.com/RocketChat/Rocket.Chat/pull/10110) by [@tkurz](https://github.com/tkurz)) -- GDPR - Right to access and Data Portability ([#9906](https://github.com/RocketChat/Rocket.Chat/pull/9906) by [@Hudell](https://github.com/Hudell)) +- REST API endpoint `/directory` ([#10442](https://github.com/RocketChat/Rocket.Chat/pull/10442) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat setting to customize ended conversation message ([#10108](https://github.com/RocketChat/Rocket.Chat/pull/10108)) +- Body of the payload on an incoming webhook is included on the request object ([#10259](https://github.com/RocketChat/Rocket.Chat/pull/10259) by [@Hudell](https://github.com/Hudell)) -- Option to ignore users on channels ([#10517](https://github.com/RocketChat/Rocket.Chat/pull/10517) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- REST endpoint to recover forgotten password ([#10371](https://github.com/RocketChat/Rocket.Chat/pull/10371) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Option to mute group mentions (@all and @here) ([#10502](https://github.com/RocketChat/Rocket.Chat/pull/10502) by [@Hudell](https://github.com/Hudell)) +- REST endpoint to report messages ([#10354](https://github.com/RocketChat/Rocket.Chat/pull/10354) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Prevent the browser to autocomplete some setting fields ([#10439](https://github.com/RocketChat/Rocket.Chat/pull/10439) by [@gdelavald](https://github.com/gdelavald)) +- Livechat setting to customize ended conversation message ([#10108](https://github.com/RocketChat/Rocket.Chat/pull/10108)) -- REST API endpoint `/directory` ([#10442](https://github.com/RocketChat/Rocket.Chat/pull/10442)) +- Twilio MMS support for LiveChat integration ([#7964](https://github.com/RocketChat/Rocket.Chat/pull/7964) by [@t3hchipmunk](https://github.com/t3hchipmunk)) -- REST API endpoint `rooms.favorite` to favorite and unfavorite rooms ([#10342](https://github.com/RocketChat/Rocket.Chat/pull/10342)) +- REST API endpoint `rooms.favorite` to favorite and unfavorite rooms ([#10342](https://github.com/RocketChat/Rocket.Chat/pull/10342) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- REST endpoint to recover forgotten password ([#10371](https://github.com/RocketChat/Rocket.Chat/pull/10371)) +- Add internal API to handle room announcements ([#10396](https://github.com/RocketChat/Rocket.Chat/pull/10396) by [@gdelavald](https://github.com/gdelavald)) -- REST endpoint to report messages ([#10354](https://github.com/RocketChat/Rocket.Chat/pull/10354)) +- Add message preview when quoting another message ([#10437](https://github.com/RocketChat/Rocket.Chat/pull/10437) by [@gdelavald](https://github.com/gdelavald)) -- Search Provider Framework ([#10110](https://github.com/RocketChat/Rocket.Chat/pull/10110) by [@tkurz](https://github.com/tkurz)) +- Prevent the browser to autocomplete some setting fields ([#10439](https://github.com/RocketChat/Rocket.Chat/pull/10439) by [@gdelavald](https://github.com/gdelavald)) - Shows user's real name on autocomplete popup ([#10444](https://github.com/RocketChat/Rocket.Chat/pull/10444) by [@gdelavald](https://github.com/gdelavald)) -- Twilio MMS support for LiveChat integration ([#7964](https://github.com/RocketChat/Rocket.Chat/pull/7964) by [@t3hchipmunk](https://github.com/t3hchipmunk)) +- Automatically trigger Redhat registry build when tagging new release ([#10414](https://github.com/RocketChat/Rocket.Chat/pull/10414)) -### 🐛 Bug fixes +- Add information regarding Zapier and Bots to the integrations page ([#10574](https://github.com/RocketChat/Rocket.Chat/pull/10574)) +### 🐛 Bug fixes -- "Highlight Words" wasn't working with more than one word ([#10083](https://github.com/RocketChat/Rocket.Chat/pull/10083) by [@gdelavald](https://github.com/gdelavald) & [@nemaniarjun](https://github.com/nemaniarjun)) -- "Idle Time Limit" using milliseconds instead of seconds ([#9824](https://github.com/RocketChat/Rocket.Chat/pull/9824) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Missing "Administration" menu for users with some administration permissions ([#10551](https://github.com/RocketChat/Rocket.Chat/pull/10551) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Add user object to responses in /*.files Rest endpoints ([#10480](https://github.com/RocketChat/Rocket.Chat/pull/10480)) +- Member list search with no results ([#10599](https://github.com/RocketChat/Rocket.Chat/pull/10599)) -- Autocomplete list when inviting a user was partial hidden ([#10409](https://github.com/RocketChat/Rocket.Chat/pull/10409) by [@karlprieb](https://github.com/karlprieb)) +- Integrations with room data not having the usernames filled in ([#10576](https://github.com/RocketChat/Rocket.Chat/pull/10576)) -- Button on user info contextual bar scrolling with the content ([#10358](https://github.com/RocketChat/Rocket.Chat/pull/10358) by [@karlprieb](https://github.com/karlprieb) & [@okaybroda](https://github.com/okaybroda)) +- Add user object to responses in /*.files Rest endpoints ([#10480](https://github.com/RocketChat/Rocket.Chat/pull/10480) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Button to delete rooms by the owners wasn't appearing ([#10438](https://github.com/RocketChat/Rocket.Chat/pull/10438) by [@karlprieb](https://github.com/karlprieb)) +- Missing user data on files uploaded through the API ([#10473](https://github.com/RocketChat/Rocket.Chat/pull/10473) by [@Hudell](https://github.com/Hudell)) -- Custom fields was misaligned in registration form ([#10463](https://github.com/RocketChat/Rocket.Chat/pull/10463) by [@dschuan](https://github.com/dschuan)) +- Rename method to clean history of messages ([#10498](https://github.com/RocketChat/Rocket.Chat/pull/10498) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Directory sort and column sizes were wrong ([#10403](https://github.com/RocketChat/Rocket.Chat/pull/10403) by [@karlprieb](https://github.com/karlprieb)) +- REST spotlight API wasn't allowing searches with # and @ ([#10410](https://github.com/RocketChat/Rocket.Chat/pull/10410) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Dropdown elements were using old styles ([#10482](https://github.com/RocketChat/Rocket.Chat/pull/10482) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Empty panel after changing a user's username ([#10404](https://github.com/RocketChat/Rocket.Chat/pull/10404) by [@Hudell](https://github.com/Hudell)) +- Directory sort and column sizes were wrong ([#10403](https://github.com/RocketChat/Rocket.Chat/pull/10403) by [@karlprieb](https://github.com/karlprieb)) + +- REST API OAuth services endpoint were missing fields and flag to indicate custom services ([#10299](https://github.com/RocketChat/Rocket.Chat/pull/10299) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Error messages weren't been displayed when email verification fails ([#10446](https://github.com/RocketChat/Rocket.Chat/pull/10446) by [@Hudell](https://github.com/Hudell) & [@karlprieb](https://github.com/karlprieb)) -- GitLab authentication scope was too open, reduced to read only access ([#10225](https://github.com/RocketChat/Rocket.Chat/pull/10225) by [@rafaelks](https://github.com/rafaelks)) +- Wrong column positions in the directory search for users ([#10454](https://github.com/RocketChat/Rocket.Chat/pull/10454) by [@karlprieb](https://github.com/karlprieb) & [@lunaticmonk](https://github.com/lunaticmonk)) -- Incoming integrations being able to trigger an empty message with a GET ([#9576](https://github.com/RocketChat/Rocket.Chat/pull/9576)) +- Custom fields was misaligned in registration form ([#10463](https://github.com/RocketChat/Rocket.Chat/pull/10463) by [@dschuan](https://github.com/dschuan)) -- Integrations with room data not having the usernames filled in ([#10576](https://github.com/RocketChat/Rocket.Chat/pull/10576)) +- Unique identifier file not really being unique ([#10341](https://github.com/RocketChat/Rocket.Chat/pull/10341) by [@abernix](https://github.com/abernix)) -- Links being embedded inside of blockquotes ([#10496](https://github.com/RocketChat/Rocket.Chat/pull/10496) by [@gdelavald](https://github.com/gdelavald)) +- Empty panel after changing a user's username ([#10404](https://github.com/RocketChat/Rocket.Chat/pull/10404) by [@Hudell](https://github.com/Hudell)) -- Livechat desktop notifications not being displayed ([#10221](https://github.com/RocketChat/Rocket.Chat/pull/10221)) +- Russian translation of "False" ([#10418](https://github.com/RocketChat/Rocket.Chat/pull/10418) by [@strangerintheq](https://github.com/strangerintheq)) -- Livechat translation files being ignored ([#10369](https://github.com/RocketChat/Rocket.Chat/pull/10369)) +- Links being embedded inside of blockquotes ([#10496](https://github.com/RocketChat/Rocket.Chat/pull/10496) by [@gdelavald](https://github.com/gdelavald)) -- Member list search with no results ([#10599](https://github.com/RocketChat/Rocket.Chat/pull/10599)) +- The 'channel.messages' REST API Endpoint error ([#10485](https://github.com/RocketChat/Rocket.Chat/pull/10485) by [@rafaelks](https://github.com/rafaelks)) -- Message view mode setting was missing at user's preferences ([#10395](https://github.com/RocketChat/Rocket.Chat/pull/10395) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb)) +- Button on user info contextual bar scrolling with the content ([#10358](https://github.com/RocketChat/Rocket.Chat/pull/10358) by [@karlprieb](https://github.com/karlprieb) & [@okaybroda](https://github.com/okaybroda)) -- Messages was grouping wrong some times when server is slow ([#10472](https://github.com/RocketChat/Rocket.Chat/pull/10472) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- "Idle Time Limit" using milliseconds instead of seconds ([#9824](https://github.com/RocketChat/Rocket.Chat/pull/9824) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Missing "Administration" menu for user with manage-emoji permission ([#10171](https://github.com/RocketChat/Rocket.Chat/pull/10171) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) +- Missing i18n translation key for "Unread" ([#10387](https://github.com/RocketChat/Rocket.Chat/pull/10387) by [@Hudell](https://github.com/Hudell)) -- Missing "Administration" menu for users with some administration permissions ([#10551](https://github.com/RocketChat/Rocket.Chat/pull/10551) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Owner unable to delete channel or group from APIs ([#9729](https://github.com/RocketChat/Rocket.Chat/pull/9729) by [@c0dzilla](https://github.com/c0dzilla)) -- Missing i18n translation key for "Unread" ([#10387](https://github.com/RocketChat/Rocket.Chat/pull/10387) by [@Hudell](https://github.com/Hudell)) +- Livechat translation files being ignored ([#10369](https://github.com/RocketChat/Rocket.Chat/pull/10369)) - Missing page "not found" ([#6673](https://github.com/RocketChat/Rocket.Chat/pull/6673) by [@Prakharsvnit](https://github.com/Prakharsvnit) & [@karlprieb](https://github.com/karlprieb)) -- Missing RocketApps input types ([#10394](https://github.com/RocketChat/Rocket.Chat/pull/10394) by [@karlprieb](https://github.com/karlprieb)) +- "Highlight Words" wasn't working with more than one word ([#10083](https://github.com/RocketChat/Rocket.Chat/pull/10083) by [@gdelavald](https://github.com/gdelavald) & [@nemaniarjun](https://github.com/nemaniarjun)) -- Missing user data on files uploaded through the API ([#10473](https://github.com/RocketChat/Rocket.Chat/pull/10473) by [@Hudell](https://github.com/Hudell)) +- Missing "Administration" menu for user with manage-emoji permission ([#10171](https://github.com/RocketChat/Rocket.Chat/pull/10171) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) -- Owner unable to delete channel or group from APIs ([#9729](https://github.com/RocketChat/Rocket.Chat/pull/9729) by [@c0dzilla](https://github.com/c0dzilla)) +- Message view mode setting was missing at user's preferences ([#10395](https://github.com/RocketChat/Rocket.Chat/pull/10395) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb)) - Profile image was not being shown in user's directory search ([#10399](https://github.com/RocketChat/Rocket.Chat/pull/10399) by [@karlprieb](https://github.com/karlprieb) & [@lunaticmonk](https://github.com/lunaticmonk)) -- Remove a user from the user's list when creating a new channel removes the wrong user ([#10423](https://github.com/RocketChat/Rocket.Chat/pull/10423) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- Wrong positioning of popover when using RTL languages ([#10428](https://github.com/RocketChat/Rocket.Chat/pull/10428) by [@karlprieb](https://github.com/karlprieb)) -- Rename method to clean history of messages ([#10498](https://github.com/RocketChat/Rocket.Chat/pull/10498)) +- Messages was grouping wrong some times when server is slow ([#10472](https://github.com/RocketChat/Rocket.Chat/pull/10472) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Renaming agent's username within Livechat's department ([#10344](https://github.com/RocketChat/Rocket.Chat/pull/10344)) +- GitLab authentication scope was too open, reduced to read only access ([#10225](https://github.com/RocketChat/Rocket.Chat/pull/10225) by [@rafaelks](https://github.com/rafaelks)) -- REST API OAuth services endpoint were missing fields and flag to indicate custom services ([#10299](https://github.com/RocketChat/Rocket.Chat/pull/10299)) +- Renaming agent's username within Livechat's department ([#10344](https://github.com/RocketChat/Rocket.Chat/pull/10344)) -- REST spotlight API wasn't allowing searches with # and @ ([#10410](https://github.com/RocketChat/Rocket.Chat/pull/10410)) +- Missing RocketApps input types ([#10394](https://github.com/RocketChat/Rocket.Chat/pull/10394) by [@karlprieb](https://github.com/karlprieb)) -- Room's name was cutting instead of having ellipses on sidebar ([#10430](https://github.com/RocketChat/Rocket.Chat/pull/10430)) +- Livechat desktop notifications not being displayed ([#10221](https://github.com/RocketChat/Rocket.Chat/pull/10221)) -- Russian translation of "False" ([#10418](https://github.com/RocketChat/Rocket.Chat/pull/10418) by [@strangerintheq](https://github.com/strangerintheq)) +- Autocomplete list when inviting a user was partial hidden ([#10409](https://github.com/RocketChat/Rocket.Chat/pull/10409) by [@karlprieb](https://github.com/karlprieb)) -- Snaps installations are breaking on avatar requests ([#10390](https://github.com/RocketChat/Rocket.Chat/pull/10390)) +- Remove a user from the user's list when creating a new channel removes the wrong user ([#10423](https://github.com/RocketChat/Rocket.Chat/pull/10423) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Stop Firefox announcement overflowing viewport ([#10503](https://github.com/RocketChat/Rocket.Chat/pull/10503) by [@brendangadd](https://github.com/brendangadd)) +- Room's name was cutting instead of having ellipses on sidebar ([#10430](https://github.com/RocketChat/Rocket.Chat/pull/10430)) -- Switch buttons were cutting in RTL mode ([#10558](https://github.com/RocketChat/Rocket.Chat/pull/10558)) +- Button to delete rooms by the owners wasn't appearing ([#10438](https://github.com/RocketChat/Rocket.Chat/pull/10438) by [@karlprieb](https://github.com/karlprieb)) -- The 'channel.messages' REST API Endpoint error ([#10485](https://github.com/RocketChat/Rocket.Chat/pull/10485) by [@rafaelks](https://github.com/rafaelks)) +- Updated OpenShift Template to take an Image as a Param ([#9946](https://github.com/RocketChat/Rocket.Chat/pull/9946) by [@christianh814](https://github.com/christianh814)) -- Unique identifier file not really being unique ([#10341](https://github.com/RocketChat/Rocket.Chat/pull/10341) by [@abernix](https://github.com/abernix)) +- Incoming integrations being able to trigger an empty message with a GET ([#9576](https://github.com/RocketChat/Rocket.Chat/pull/9576)) -- Updated OpenShift Template to take an Image as a Param ([#9946](https://github.com/RocketChat/Rocket.Chat/pull/9946) by [@christianh814](https://github.com/christianh814)) +- Snaps installations are breaking on avatar requests ([#10390](https://github.com/RocketChat/Rocket.Chat/pull/10390)) - Wordpress oAuth authentication wasn't behaving correctly ([#10550](https://github.com/RocketChat/Rocket.Chat/pull/10550) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Wrong column positions in the directory search for users ([#10454](https://github.com/RocketChat/Rocket.Chat/pull/10454) by [@karlprieb](https://github.com/karlprieb) & [@lunaticmonk](https://github.com/lunaticmonk)) +- Switch buttons were cutting in RTL mode ([#10558](https://github.com/RocketChat/Rocket.Chat/pull/10558)) -- Wrong positioning of popover when using RTL languages ([#10428](https://github.com/RocketChat/Rocket.Chat/pull/10428) by [@karlprieb](https://github.com/karlprieb)) +- Stop Firefox announcement overflowing viewport ([#10503](https://github.com/RocketChat/Rocket.Chat/pull/10503) by [@brendangadd](https://github.com/brendangadd))
🔍 Minor changes -- [OTHER] Develop sync ([#10487](https://github.com/RocketChat/Rocket.Chat/pull/10487)) +- Release 0.64.0 ([#10613](https://github.com/RocketChat/Rocket.Chat/pull/10613) by [@TwizzyDizzy](https://github.com/TwizzyDizzy) & [@christianh814](https://github.com/christianh814) & [@gdelavald](https://github.com/gdelavald) & [@tttt-conan](https://github.com/tttt-conan)) -- [OTHER] More Listeners for Apps & Utilize Promises inside Apps ([#10335](https://github.com/RocketChat/Rocket.Chat/pull/10335)) +- Regression: Various search provider fixes ([#10591](https://github.com/RocketChat/Rocket.Chat/pull/10591) by [@tkurz](https://github.com/tkurz)) -- [OTHER] Removed the developer warning on the rest api ([#10441](https://github.com/RocketChat/Rocket.Chat/pull/10441)) +- Regression: /api/v1/settings.oauth not sending needed info for SAML & CAS ([#10596](https://github.com/RocketChat/Rocket.Chat/pull/10596) by [@cardoso](https://github.com/cardoso)) -- Add some missing translations ([#10435](https://github.com/RocketChat/Rocket.Chat/pull/10435) by [@gdelavald](https://github.com/gdelavald)) +- Regression: Apps and Livechats not getting along well with each other ([#10598](https://github.com/RocketChat/Rocket.Chat/pull/10598)) -- Change Docker-Compose to use mmapv1 storage engine for mongo ([#10336](https://github.com/RocketChat/Rocket.Chat/pull/10336)) +- Development: Add Visual Studio Code debugging configuration ([#10586](https://github.com/RocketChat/Rocket.Chat/pull/10586)) -- Deps update ([#10549](https://github.com/RocketChat/Rocket.Chat/pull/10549)) +- Included missing lib for migrations ([#10532](https://github.com/RocketChat/Rocket.Chat/pull/10532) by [@Hudell](https://github.com/Hudell)) - Develop sync ([#10505](https://github.com/RocketChat/Rocket.Chat/pull/10505) by [@nsuchy](https://github.com/nsuchy) & [@rafaelks](https://github.com/rafaelks)) -- Development: Add Visual Studio Code debugging configuration ([#10586](https://github.com/RocketChat/Rocket.Chat/pull/10586)) - -- Fix and improve vietnamese translation ([#10397](https://github.com/RocketChat/Rocket.Chat/pull/10397) by [@TDiNguyen](https://github.com/TDiNguyen) & [@tttt-conan](https://github.com/tttt-conan)) +- Fix: Remove "secret" from REST endpoint /settings.oauth response ([#10513](https://github.com/RocketChat/Rocket.Chat/pull/10513) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Fix: Remove "secret" from REST endpoint /settings.oauth response ([#10513](https://github.com/RocketChat/Rocket.Chat/pull/10513)) +- [OTHER] More Listeners for Apps & Utilize Promises inside Apps ([#10335](https://github.com/RocketChat/Rocket.Chat/pull/10335)) -- Included missing lib for migrations ([#10532](https://github.com/RocketChat/Rocket.Chat/pull/10532) by [@Hudell](https://github.com/Hudell)) +- [OTHER] Develop sync ([#10487](https://github.com/RocketChat/Rocket.Chat/pull/10487)) -- LingoHub based on develop ([#10545](https://github.com/RocketChat/Rocket.Chat/pull/10545)) +- Change Docker-Compose to use mmapv1 storage engine for mongo ([#10336](https://github.com/RocketChat/Rocket.Chat/pull/10336)) -- Master into Develop Branch Sync ([#10376](https://github.com/RocketChat/Rocket.Chat/pull/10376)) +- Add some missing translations ([#10435](https://github.com/RocketChat/Rocket.Chat/pull/10435) by [@gdelavald](https://github.com/gdelavald)) -- New issue template for *Release Process* ([#10234](https://github.com/RocketChat/Rocket.Chat/pull/10234)) +- [OTHER] Removed the developer warning on the rest api ([#10441](https://github.com/RocketChat/Rocket.Chat/pull/10441)) -- Regression: /api/v1/settings.oauth not returning clientId for Twitter ([#10560](https://github.com/RocketChat/Rocket.Chat/pull/10560) by [@cardoso](https://github.com/cardoso)) +- Fix and improve vietnamese translation ([#10397](https://github.com/RocketChat/Rocket.Chat/pull/10397) by [@TDiNguyen](https://github.com/TDiNguyen) & [@tttt-conan](https://github.com/tttt-conan)) -- Regression: /api/v1/settings.oauth not sending needed info for SAML & CAS ([#10596](https://github.com/RocketChat/Rocket.Chat/pull/10596) by [@cardoso](https://github.com/cardoso)) +- Use Node 8.9 for CI build ([#10405](https://github.com/RocketChat/Rocket.Chat/pull/10405)) -- Regression: Apps and Livechats not getting along well with each other ([#10598](https://github.com/RocketChat/Rocket.Chat/pull/10598)) +- Update allowed labels for bot ([#10360](https://github.com/RocketChat/Rocket.Chat/pull/10360) by [@TwizzyDizzy](https://github.com/TwizzyDizzy)) -- Regression: Attachments and fields incorrectly failing on validation ([#10573](https://github.com/RocketChat/Rocket.Chat/pull/10573)) +- Remove @core team mention from Pull Request template ([#10384](https://github.com/RocketChat/Rocket.Chat/pull/10384)) -- Regression: Fix announcement bar being displayed without content ([#10554](https://github.com/RocketChat/Rocket.Chat/pull/10554) by [@gdelavald](https://github.com/gdelavald)) +- New issue template for *Release Process* ([#10234](https://github.com/RocketChat/Rocket.Chat/pull/10234)) -- Regression: Inconsistent response of settings.oauth endpoint ([#10553](https://github.com/RocketChat/Rocket.Chat/pull/10553)) +- Master into Develop Branch Sync ([#10376](https://github.com/RocketChat/Rocket.Chat/pull/10376)) -- Regression: Remove added mentions on quote/reply ([#10571](https://github.com/RocketChat/Rocket.Chat/pull/10571) by [@gdelavald](https://github.com/gdelavald)) +- LingoHub based on develop ([#10545](https://github.com/RocketChat/Rocket.Chat/pull/10545)) - Regression: Revert announcement structure ([#10544](https://github.com/RocketChat/Rocket.Chat/pull/10544) by [@gdelavald](https://github.com/gdelavald)) -- Regression: Rocket.Chat App author link opens in same window ([#10575](https://github.com/RocketChat/Rocket.Chat/pull/10575) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) - -- Regression: Rooms and Apps weren't playing nice with each other ([#10559](https://github.com/RocketChat/Rocket.Chat/pull/10559)) - - Regression: Upload was not working ([#10543](https://github.com/RocketChat/Rocket.Chat/pull/10543)) -- Regression: Various search provider fixes ([#10591](https://github.com/RocketChat/Rocket.Chat/pull/10591) by [@tkurz](https://github.com/tkurz)) +- Deps update ([#10549](https://github.com/RocketChat/Rocket.Chat/pull/10549)) + +- Regression: /api/v1/settings.oauth not returning clientId for Twitter ([#10560](https://github.com/RocketChat/Rocket.Chat/pull/10560) by [@cardoso](https://github.com/cardoso)) - Regression: Webhooks breaking due to restricted test ([#10555](https://github.com/RocketChat/Rocket.Chat/pull/10555)) -- Release 0.64.0 ([#10613](https://github.com/RocketChat/Rocket.Chat/pull/10613) by [@TwizzyDizzy](https://github.com/TwizzyDizzy) & [@christianh814](https://github.com/christianh814) & [@gdelavald](https://github.com/gdelavald) & [@tttt-conan](https://github.com/tttt-conan)) +- Regression: Rooms and Apps weren't playing nice with each other ([#10559](https://github.com/RocketChat/Rocket.Chat/pull/10559)) -- Remove @core team mention from Pull Request template ([#10384](https://github.com/RocketChat/Rocket.Chat/pull/10384)) +- Regression: Fix announcement bar being displayed without content ([#10554](https://github.com/RocketChat/Rocket.Chat/pull/10554) by [@gdelavald](https://github.com/gdelavald)) -- Update allowed labels for bot ([#10360](https://github.com/RocketChat/Rocket.Chat/pull/10360) by [@TwizzyDizzy](https://github.com/TwizzyDizzy)) +- Regression: Inconsistent response of settings.oauth endpoint ([#10553](https://github.com/RocketChat/Rocket.Chat/pull/10553) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Use Node 8.9 for CI build ([#10405](https://github.com/RocketChat/Rocket.Chat/pull/10405)) +- Regression: Remove added mentions on quote/reply ([#10571](https://github.com/RocketChat/Rocket.Chat/pull/10571) by [@gdelavald](https://github.com/gdelavald)) + +- Regression: Attachments and fields incorrectly failing on validation ([#10573](https://github.com/RocketChat/Rocket.Chat/pull/10573)) + +- Regression: Rocket.Chat App author link opens in same window ([#10575](https://github.com/RocketChat/Rocket.Chat/pull/10575) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii))
### 👩‍💻👨‍💻 Contributors 😍 - [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@Prakharsvnit](https://github.com/Prakharsvnit) - [@TDiNguyen](https://github.com/TDiNguyen) - [@TwizzyDizzy](https://github.com/TwizzyDizzy) @@ -9323,7 +9628,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -9366,10 +9670,10 @@ 🔍 Minor changes -- add redhat dockerfile to master ([#10408](https://github.com/RocketChat/Rocket.Chat/pull/10408)) - - Release 0.63.2 ([#10476](https://github.com/RocketChat/Rocket.Chat/pull/10476)) +- add redhat dockerfile to master ([#10408](https://github.com/RocketChat/Rocket.Chat/pull/10408)) + ### 👩‍💻👨‍💻 Core Team 🤓 @@ -9420,160 +9724,160 @@ ### 🎉 New features -- Add leave public channel & leave private channel permissions ([#9584](https://github.com/RocketChat/Rocket.Chat/pull/9584) by [@kb0304](https://github.com/kb0304)) - -- Add option to login via REST using Facebook and Twitter tokens ([#9816](https://github.com/RocketChat/Rocket.Chat/pull/9816)) - -- Add REST endpoint to get the list of custom emojis ([#9629](https://github.com/RocketChat/Rocket.Chat/pull/9629)) - -- Added endpoint to get the list of available oauth services ([#10144](https://github.com/RocketChat/Rocket.Chat/pull/10144)) +- Improve history generation ([#10319](https://github.com/RocketChat/Rocket.Chat/pull/10319)) -- Added endpoint to retrieve mentions of a channel ([#10105](https://github.com/RocketChat/Rocket.Chat/pull/10105)) +- Interface to install and manage RocketChat Apps (alpha) ([#10246](https://github.com/RocketChat/Rocket.Chat/pull/10246)) -- Added GET/POST channels.notifications ([#10128](https://github.com/RocketChat/Rocket.Chat/pull/10128)) +- Livechat messages rest APIs ([#10054](https://github.com/RocketChat/Rocket.Chat/pull/10054) by [@hmagarotto](https://github.com/hmagarotto)) -- Announcement bar color wasn't using color from theming variables ([#9367](https://github.com/RocketChat/Rocket.Chat/pull/9367) by [@cyclops24](https://github.com/cyclops24) & [@karlprieb](https://github.com/karlprieb)) +- Endpoint to retrieve message read receipts ([#9907](https://github.com/RocketChat/Rocket.Chat/pull/9907) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Audio recording as mp3 and better ui for recording ([#9726](https://github.com/RocketChat/Rocket.Chat/pull/9726) by [@kb0304](https://github.com/kb0304)) +- Add option to login via REST using Facebook and Twitter tokens ([#9816](https://github.com/RocketChat/Rocket.Chat/pull/9816) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Endpoint to retrieve message read receipts ([#9907](https://github.com/RocketChat/Rocket.Chat/pull/9907)) +- Add REST endpoint to get the list of custom emojis ([#9629](https://github.com/RocketChat/Rocket.Chat/pull/9629) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - GDPR Right to be forgotten/erased ([#9947](https://github.com/RocketChat/Rocket.Chat/pull/9947) by [@Hudell](https://github.com/Hudell)) -- Improve history generation ([#10319](https://github.com/RocketChat/Rocket.Chat/pull/10319)) - -- Interface to install and manage RocketChat Apps (alpha) ([#10246](https://github.com/RocketChat/Rocket.Chat/pull/10246)) +- Added endpoint to retrieve mentions of a channel ([#10105](https://github.com/RocketChat/Rocket.Chat/pull/10105) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Livechat messages rest APIs ([#10054](https://github.com/RocketChat/Rocket.Chat/pull/10054) by [@hmagarotto](https://github.com/hmagarotto)) +- Add leave public channel & leave private channel permissions ([#9584](https://github.com/RocketChat/Rocket.Chat/pull/9584) by [@kb0304](https://github.com/kb0304)) -- Livechat webhook request on message ([#9870](https://github.com/RocketChat/Rocket.Chat/pull/9870) by [@hmagarotto](https://github.com/hmagarotto)) +- Added GET/POST channels.notifications ([#10128](https://github.com/RocketChat/Rocket.Chat/pull/10128) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) - Reply preview ([#10086](https://github.com/RocketChat/Rocket.Chat/pull/10086) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Support for agent's phone field ([#10123](https://github.com/RocketChat/Rocket.Chat/pull/10123)) + +- Added endpoint to get the list of available oauth services ([#10144](https://github.com/RocketChat/Rocket.Chat/pull/10144) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) + - REST API method to set room's announcement (channels.setAnnouncement) ([#9742](https://github.com/RocketChat/Rocket.Chat/pull/9742) by [@TopHattedCat](https://github.com/TopHattedCat)) -- Setting to configure max delta for 2fa ([#9732](https://github.com/RocketChat/Rocket.Chat/pull/9732) by [@Hudell](https://github.com/Hudell)) +- Audio recording as mp3 and better ui for recording ([#9726](https://github.com/RocketChat/Rocket.Chat/pull/9726) by [@kb0304](https://github.com/kb0304)) -- Support for agent's phone field ([#10123](https://github.com/RocketChat/Rocket.Chat/pull/10123)) +- Setting to configure max delta for 2fa ([#9732](https://github.com/RocketChat/Rocket.Chat/pull/9732) by [@Hudell](https://github.com/Hudell)) -### 🐛 Bug fixes +- Livechat webhook request on message ([#9870](https://github.com/RocketChat/Rocket.Chat/pull/9870) by [@hmagarotto](https://github.com/hmagarotto)) +- Announcement bar color wasn't using color from theming variables ([#9367](https://github.com/RocketChat/Rocket.Chat/pull/9367) by [@cyclops24](https://github.com/cyclops24) & [@karlprieb](https://github.com/karlprieb)) -- "View All Members" button inside channel's "User Info" is over sized ([#10012](https://github.com/RocketChat/Rocket.Chat/pull/10012) by [@karlprieb](https://github.com/karlprieb)) +### 🐛 Bug fixes -- /me REST endpoint was missing user roles and preferences ([#10240](https://github.com/RocketChat/Rocket.Chat/pull/10240)) -- Able to react with invalid emoji ([#8667](https://github.com/RocketChat/Rocket.Chat/pull/8667) by [@mutdmour](https://github.com/mutdmour)) +- Audio Message UI fixes ([#10303](https://github.com/RocketChat/Rocket.Chat/pull/10303) by [@kb0304](https://github.com/kb0304)) -- Apostrophe-containing URL misparsed ([#9739](https://github.com/RocketChat/Rocket.Chat/pull/9739) by [@lunaticmonk](https://github.com/lunaticmonk)) +- "View All Members" button inside channel's "User Info" is over sized ([#10012](https://github.com/RocketChat/Rocket.Chat/pull/10012) by [@karlprieb](https://github.com/karlprieb)) - Apostrophe-containing URL misparsed" ([#10242](https://github.com/RocketChat/Rocket.Chat/pull/10242)) -- Audio Message UI fixes ([#10303](https://github.com/RocketChat/Rocket.Chat/pull/10303) by [@kb0304](https://github.com/kb0304)) - -- Avatar input was accepting not supported image types ([#10011](https://github.com/RocketChat/Rocket.Chat/pull/10011) by [@karlprieb](https://github.com/karlprieb)) +- user status on sidenav ([#10222](https://github.com/RocketChat/Rocket.Chat/pull/10222)) -- Broken video call accept dialog ([#9872](https://github.com/RocketChat/Rocket.Chat/pull/9872) by [@ramrami](https://github.com/ramrami)) +- Dynamic CSS script isn't working on older browsers ([#10152](https://github.com/RocketChat/Rocket.Chat/pull/10152) by [@karlprieb](https://github.com/karlprieb)) -- Browser was auto-filling values when editing another user profile ([#9932](https://github.com/RocketChat/Rocket.Chat/pull/9932) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Extended view mode on sidebar ([#10160](https://github.com/RocketChat/Rocket.Chat/pull/10160) by [@karlprieb](https://github.com/karlprieb)) - Cannot answer to a livechat as a manager if agent has not answered yet ([#10082](https://github.com/RocketChat/Rocket.Chat/pull/10082) by [@kb0304](https://github.com/kb0304)) -- Download links was duplicating Sub Paths ([#10029](https://github.com/RocketChat/Rocket.Chat/pull/10029)) +- User status missing on user info ([#9866](https://github.com/RocketChat/Rocket.Chat/pull/9866) by [@lunaticmonk](https://github.com/lunaticmonk)) -- Dynamic CSS script isn't working on older browsers ([#10152](https://github.com/RocketChat/Rocket.Chat/pull/10152) by [@karlprieb](https://github.com/karlprieb)) +- Name of files in file upload list cuts down at bottom due to overflow ([#9672](https://github.com/RocketChat/Rocket.Chat/pull/9672) by [@lunaticmonk](https://github.com/lunaticmonk)) -- Extended view mode on sidebar ([#10160](https://github.com/RocketChat/Rocket.Chat/pull/10160) by [@karlprieb](https://github.com/karlprieb)) +- No pattern for user's status text capitalization ([#9783](https://github.com/RocketChat/Rocket.Chat/pull/9783) by [@lunaticmonk](https://github.com/lunaticmonk)) -- File had redirect delay when using external storage services and no option to proxy only avatars ([#10272](https://github.com/RocketChat/Rocket.Chat/pull/10272)) +- Apostrophe-containing URL misparsed ([#9739](https://github.com/RocketChat/Rocket.Chat/pull/9739) by [@lunaticmonk](https://github.com/lunaticmonk)) -- Incoming Webhooks were missing the raw content ([#10258](https://github.com/RocketChat/Rocket.Chat/pull/10258) by [@Hudell](https://github.com/Hudell)) +- Popover divs don't scroll if they overflow the viewport ([#9860](https://github.com/RocketChat/Rocket.Chat/pull/9860) by [@Joe-mcgee](https://github.com/Joe-mcgee)) -- Initial loading feedback was missing ([#10028](https://github.com/RocketChat/Rocket.Chat/pull/10028) by [@karlprieb](https://github.com/karlprieb)) +- Reactions not working on mobile ([#10104](https://github.com/RocketChat/Rocket.Chat/pull/10104)) -- Inline code following a url leads to autolinking of code with url ([#10163](https://github.com/RocketChat/Rocket.Chat/pull/10163) by [@c0dzilla](https://github.com/c0dzilla)) +- Broken video call accept dialog ([#9872](https://github.com/RocketChat/Rocket.Chat/pull/9872) by [@ramrami](https://github.com/ramrami)) -- Message editing is crashing the server when read receipts are enabled ([#10061](https://github.com/RocketChat/Rocket.Chat/pull/10061)) +- Wrong switch button border color ([#10081](https://github.com/RocketChat/Rocket.Chat/pull/10081) by [@kb0304](https://github.com/kb0304)) -- Missing pt-BR translations ([#10262](https://github.com/RocketChat/Rocket.Chat/pull/10262)) +- Nextcloud as custom oauth provider wasn't mapping data correctly ([#10090](https://github.com/RocketChat/Rocket.Chat/pull/10090) by [@pierreozoux](https://github.com/pierreozoux)) - Missing sidebar default options on admin ([#10016](https://github.com/RocketChat/Rocket.Chat/pull/10016) by [@karlprieb](https://github.com/karlprieb)) -- Missing Translation Key on Reactions ([#10270](https://github.com/RocketChat/Rocket.Chat/pull/10270) by [@bernardoetrevisan](https://github.com/bernardoetrevisan)) +- Able to react with invalid emoji ([#8667](https://github.com/RocketChat/Rocket.Chat/pull/8667) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@mutdmour](https://github.com/mutdmour)) -- Name of files in file upload list cuts down at bottom due to overflow ([#9672](https://github.com/RocketChat/Rocket.Chat/pull/9672) by [@lunaticmonk](https://github.com/lunaticmonk)) +- Slack Import reports `invalid import file type` due to a call to BSON.native() which is now doesn't exist ([#10071](https://github.com/RocketChat/Rocket.Chat/pull/10071) by [@trongthanh](https://github.com/trongthanh)) -- Nextcloud as custom oauth provider wasn't mapping data correctly ([#10090](https://github.com/RocketChat/Rocket.Chat/pull/10090) by [@pierreozoux](https://github.com/pierreozoux)) +- Verified property of user is always set to false if not supplied ([#9719](https://github.com/RocketChat/Rocket.Chat/pull/9719) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- No pattern for user's status text capitalization ([#9783](https://github.com/RocketChat/Rocket.Chat/pull/9783) by [@lunaticmonk](https://github.com/lunaticmonk)) +- Update preferences of users with settings: null was crashing the server ([#10076](https://github.com/RocketChat/Rocket.Chat/pull/10076)) -- Popover divs don't scroll if they overflow the viewport ([#9860](https://github.com/RocketChat/Rocket.Chat/pull/9860) by [@Joe-mcgee](https://github.com/Joe-mcgee)) +- REST API: Can't list all public channels when user has permission `view-joined-room` ([#10009](https://github.com/RocketChat/Rocket.Chat/pull/10009) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Reactions not working on mobile ([#10104](https://github.com/RocketChat/Rocket.Chat/pull/10104)) +- Message editing is crashing the server when read receipts are enabled ([#10061](https://github.com/RocketChat/Rocket.Chat/pull/10061)) -- REST API: Can't list all public channels when user has permission `view-joined-room` ([#10009](https://github.com/RocketChat/Rocket.Chat/pull/10009)) +- Download links was duplicating Sub Paths ([#10029](https://github.com/RocketChat/Rocket.Chat/pull/10029)) -- Slack Import reports `invalid import file type` due to a call to BSON.native() which is now doesn't exist ([#10071](https://github.com/RocketChat/Rocket.Chat/pull/10071) by [@trongthanh](https://github.com/trongthanh)) +- User preferences can't be saved when roles are hidden in admin settings ([#10051](https://github.com/RocketChat/Rocket.Chat/pull/10051) by [@Hudell](https://github.com/Hudell)) -- Unable to mention after newline in message ([#10078](https://github.com/RocketChat/Rocket.Chat/pull/10078) by [@c0dzilla](https://github.com/c0dzilla)) +- Browser was auto-filling values when editing another user profile ([#9932](https://github.com/RocketChat/Rocket.Chat/pull/9932) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Update preferences of users with settings: null was crashing the server ([#10076](https://github.com/RocketChat/Rocket.Chat/pull/10076)) +- Avatar input was accepting not supported image types ([#10011](https://github.com/RocketChat/Rocket.Chat/pull/10011) by [@karlprieb](https://github.com/karlprieb)) -- User preferences can't be saved when roles are hidden in admin settings ([#10051](https://github.com/RocketChat/Rocket.Chat/pull/10051) by [@Hudell](https://github.com/Hudell)) +- Initial loading feedback was missing ([#10028](https://github.com/RocketChat/Rocket.Chat/pull/10028) by [@karlprieb](https://github.com/karlprieb)) -- User status missing on user info ([#9866](https://github.com/RocketChat/Rocket.Chat/pull/9866) by [@lunaticmonk](https://github.com/lunaticmonk)) +- File had redirect delay when using external storage services and no option to proxy only avatars ([#10272](https://github.com/RocketChat/Rocket.Chat/pull/10272)) -- user status on sidenav ([#10222](https://github.com/RocketChat/Rocket.Chat/pull/10222)) +- Missing pt-BR translations ([#10262](https://github.com/RocketChat/Rocket.Chat/pull/10262)) -- Verified property of user is always set to false if not supplied ([#9719](https://github.com/RocketChat/Rocket.Chat/pull/9719)) +- /me REST endpoint was missing user roles and preferences ([#10240](https://github.com/RocketChat/Rocket.Chat/pull/10240) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Wrong pagination information on /api/v1/channels.members ([#10224](https://github.com/RocketChat/Rocket.Chat/pull/10224)) +- Unable to mention after newline in message ([#10078](https://github.com/RocketChat/Rocket.Chat/pull/10078) by [@c0dzilla](https://github.com/c0dzilla)) -- Wrong switch button border color ([#10081](https://github.com/RocketChat/Rocket.Chat/pull/10081) by [@kb0304](https://github.com/kb0304)) +- Wrong pagination information on /api/v1/channels.members ([#10224](https://github.com/RocketChat/Rocket.Chat/pull/10224) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -
-🔍 Minor changes +- Inline code following a url leads to autolinking of code with url ([#10163](https://github.com/RocketChat/Rocket.Chat/pull/10163) by [@c0dzilla](https://github.com/c0dzilla)) + +- Incoming Webhooks were missing the raw content ([#10258](https://github.com/RocketChat/Rocket.Chat/pull/10258) by [@Hudell](https://github.com/Hudell)) +- Missing Translation Key on Reactions ([#10270](https://github.com/RocketChat/Rocket.Chat/pull/10270) by [@bernardoetrevisan](https://github.com/bernardoetrevisan)) -- [OTHER] Reactivate all tests ([#10036](https://github.com/RocketChat/Rocket.Chat/pull/10036)) +
+🔍 Minor changes -- [OTHER] Reactivate API tests ([#9844](https://github.com/RocketChat/Rocket.Chat/pull/9844) by [@karlprieb](https://github.com/karlprieb)) -- Add a few listener supports for the Rocket.Chat Apps ([#10154](https://github.com/RocketChat/Rocket.Chat/pull/10154)) +- Release 0.63.0 ([#10324](https://github.com/RocketChat/Rocket.Chat/pull/10324) by [@Hudell](https://github.com/Hudell) & [@Joe-mcgee](https://github.com/Joe-mcgee) & [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@TopHattedCat](https://github.com/TopHattedCat) & [@hmagarotto](https://github.com/hmagarotto) & [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb) & [@kb0304](https://github.com/kb0304) & [@lunaticmonk](https://github.com/lunaticmonk) & [@ramrami](https://github.com/ramrami)) -- Add forums as a place to suggest, discuss and upvote features ([#10148](https://github.com/RocketChat/Rocket.Chat/pull/10148) by [@SeanPackham](https://github.com/SeanPackham)) +- Fix: Reaction endpoint/api only working with regular emojis ([#10323](https://github.com/RocketChat/Rocket.Chat/pull/10323)) - Bump snap version to include security fix ([#10313](https://github.com/RocketChat/Rocket.Chat/pull/10313)) -- Fix caddy download link to pull from github ([#10260](https://github.com/RocketChat/Rocket.Chat/pull/10260)) +- Update Meteor to 1.6.1.1 ([#10314](https://github.com/RocketChat/Rocket.Chat/pull/10314)) -- Fix snap install. Remove execstack from sharp, and bypass grpc error ([#10015](https://github.com/RocketChat/Rocket.Chat/pull/10015)) +- LingoHub based on develop ([#10243](https://github.com/RocketChat/Rocket.Chat/pull/10243)) -- Fix tests breaking randomly ([#10065](https://github.com/RocketChat/Rocket.Chat/pull/10065)) +- Rename migration name on 108 to match file name ([#10237](https://github.com/RocketChat/Rocket.Chat/pull/10237)) - Fix typo for Nextcloud login ([#10159](https://github.com/RocketChat/Rocket.Chat/pull/10159) by [@pierreozoux](https://github.com/pierreozoux)) -- Fix: chat.react api not accepting previous emojis ([#10290](https://github.com/RocketChat/Rocket.Chat/pull/10290)) +- Add a few listener supports for the Rocket.Chat Apps ([#10154](https://github.com/RocketChat/Rocket.Chat/pull/10154)) -- Fix: inputs for rocketchat apps ([#10274](https://github.com/RocketChat/Rocket.Chat/pull/10274)) +- Add forums as a place to suggest, discuss and upvote features ([#10148](https://github.com/RocketChat/Rocket.Chat/pull/10148) by [@SeanPackham](https://github.com/SeanPackham)) -- Fix: possible errors on rocket.chat side of the apps ([#10252](https://github.com/RocketChat/Rocket.Chat/pull/10252)) +- Fix tests breaking randomly ([#10065](https://github.com/RocketChat/Rocket.Chat/pull/10065)) -- Fix: Reaction endpoint/api only working with regular emojis ([#10323](https://github.com/RocketChat/Rocket.Chat/pull/10323)) +- [OTHER] Reactivate all tests ([#10036](https://github.com/RocketChat/Rocket.Chat/pull/10036)) -- Fix: Renaming channels.notifications Get/Post endpoints ([#10257](https://github.com/RocketChat/Rocket.Chat/pull/10257)) +- [OTHER] Reactivate API tests ([#9844](https://github.com/RocketChat/Rocket.Chat/pull/9844) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@karlprieb](https://github.com/karlprieb)) -- Fix: Scroll on content page ([#10300](https://github.com/RocketChat/Rocket.Chat/pull/10300)) +- Start 0.63.0-develop / develop sync from master ([#9985](https://github.com/RocketChat/Rocket.Chat/pull/9985)) -- LingoHub based on develop ([#10243](https://github.com/RocketChat/Rocket.Chat/pull/10243)) +- Fix: Renaming channels.notifications Get/Post endpoints ([#10257](https://github.com/RocketChat/Rocket.Chat/pull/10257) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Release 0.63.0 ([#10324](https://github.com/RocketChat/Rocket.Chat/pull/10324) by [@Hudell](https://github.com/Hudell) & [@Joe-mcgee](https://github.com/Joe-mcgee) & [@TopHattedCat](https://github.com/TopHattedCat) & [@hmagarotto](https://github.com/hmagarotto) & [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb) & [@kb0304](https://github.com/kb0304) & [@lunaticmonk](https://github.com/lunaticmonk) & [@ramrami](https://github.com/ramrami)) +- Fix caddy download link to pull from github ([#10260](https://github.com/RocketChat/Rocket.Chat/pull/10260)) -- Rename migration name on 108 to match file name ([#10237](https://github.com/RocketChat/Rocket.Chat/pull/10237)) +- Fix: possible errors on rocket.chat side of the apps ([#10252](https://github.com/RocketChat/Rocket.Chat/pull/10252)) -- Start 0.63.0-develop / develop sync from master ([#9985](https://github.com/RocketChat/Rocket.Chat/pull/9985)) +- Fix snap install. Remove execstack from sharp, and bypass grpc error ([#10015](https://github.com/RocketChat/Rocket.Chat/pull/10015)) -- Update Meteor to 1.6.1.1 ([#10314](https://github.com/RocketChat/Rocket.Chat/pull/10314)) +- Fix: inputs for rocketchat apps ([#10274](https://github.com/RocketChat/Rocket.Chat/pull/10274)) + +- Fix: chat.react api not accepting previous emojis ([#10290](https://github.com/RocketChat/Rocket.Chat/pull/10290)) + +- Fix: Scroll on content page ([#10300](https://github.com/RocketChat/Rocket.Chat/pull/10300))
@@ -9581,6 +9885,7 @@ - [@Hudell](https://github.com/Hudell) - [@Joe-mcgee](https://github.com/Joe-mcgee) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@SeanPackham](https://github.com/SeanPackham) - [@TopHattedCat](https://github.com/TopHattedCat) - [@bernardoetrevisan](https://github.com/bernardoetrevisan) @@ -9599,7 +9904,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) @@ -9618,17 +9922,17 @@ ### 🐛 Bug fixes -- Download links was duplicating Sub Paths ([#10029](https://github.com/RocketChat/Rocket.Chat/pull/10029)) +- Slack Import reports `invalid import file type` due to a call to BSON.native() which is now doesn't exist ([#10071](https://github.com/RocketChat/Rocket.Chat/pull/10071) by [@trongthanh](https://github.com/trongthanh)) -- Message editing is crashing the server when read receipts are enabled ([#10061](https://github.com/RocketChat/Rocket.Chat/pull/10061)) +- Verified property of user is always set to false if not supplied ([#9719](https://github.com/RocketChat/Rocket.Chat/pull/9719) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- REST API: Can't list all public channels when user has permission `view-joined-room` ([#10009](https://github.com/RocketChat/Rocket.Chat/pull/10009)) +- Update preferences of users with settings: null was crashing the server ([#10076](https://github.com/RocketChat/Rocket.Chat/pull/10076)) -- Slack Import reports `invalid import file type` due to a call to BSON.native() which is now doesn't exist ([#10071](https://github.com/RocketChat/Rocket.Chat/pull/10071) by [@trongthanh](https://github.com/trongthanh)) +- REST API: Can't list all public channels when user has permission `view-joined-room` ([#10009](https://github.com/RocketChat/Rocket.Chat/pull/10009) by [@MarcosSpessatto](https://github.com/MarcosSpessatto)) -- Update preferences of users with settings: null was crashing the server ([#10076](https://github.com/RocketChat/Rocket.Chat/pull/10076)) +- Message editing is crashing the server when read receipts are enabled ([#10061](https://github.com/RocketChat/Rocket.Chat/pull/10061)) -- Verified property of user is always set to false if not supplied ([#9719](https://github.com/RocketChat/Rocket.Chat/pull/9719)) +- Download links was duplicating Sub Paths ([#10029](https://github.com/RocketChat/Rocket.Chat/pull/10029))
🔍 Minor changes @@ -9640,11 +9944,11 @@ ### 👩‍💻👨‍💻 Contributors 😍 +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@trongthanh](https://github.com/trongthanh) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -9660,10 +9964,10 @@ - Delete user without username was removing direct rooms of all users ([#9986](https://github.com/RocketChat/Rocket.Chat/pull/9986)) -- Empty sidenav when sorting by activity and there is a subscription without room ([#9960](https://github.com/RocketChat/Rocket.Chat/pull/9960)) - - New channel page on medium size screens ([#9988](https://github.com/RocketChat/Rocket.Chat/pull/9988) by [@karlprieb](https://github.com/karlprieb)) +- Empty sidenav when sorting by activity and there is a subscription without room ([#9960](https://github.com/RocketChat/Rocket.Chat/pull/9960)) + - Two factor authentication modal was not showing ([#9982](https://github.com/RocketChat/Rocket.Chat/pull/9982))
@@ -9699,176 +10003,176 @@ ### 🎉 New features -- Add documentation requirement to PRs ([#9658](https://github.com/RocketChat/Rocket.Chat/pull/9658) by [@SeanPackham](https://github.com/SeanPackham)) +- Version update check ([#9793](https://github.com/RocketChat/Rocket.Chat/pull/9793)) -- Add route to get user shield/badge ([#9549](https://github.com/RocketChat/Rocket.Chat/pull/9549) by [@kb0304](https://github.com/kb0304)) +- General alert banner ([#9778](https://github.com/RocketChat/Rocket.Chat/pull/9778)) -- Add user settings / preferences API endpoint ([#9457](https://github.com/RocketChat/Rocket.Chat/pull/9457) by [@jgtoriginal](https://github.com/jgtoriginal)) +- Browse more channels / Directory ([#9642](https://github.com/RocketChat/Rocket.Chat/pull/9642) by [@karlprieb](https://github.com/karlprieb)) -- Alert admins when user requires approval & alert users when the account is approved/activated/deactivated ([#7098](https://github.com/RocketChat/Rocket.Chat/pull/7098) by [@luisfn](https://github.com/luisfn)) +- Add user settings / preferences API endpoint ([#9457](https://github.com/RocketChat/Rocket.Chat/pull/9457) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@jgtoriginal](https://github.com/jgtoriginal)) -- Allow configuration of SAML logout behavior ([#9527](https://github.com/RocketChat/Rocket.Chat/pull/9527) by [@mrsimpson](https://github.com/mrsimpson)) +- New sidebar layout ([#9608](https://github.com/RocketChat/Rocket.Chat/pull/9608) by [@karlprieb](https://github.com/karlprieb)) -- Allow request avatar placeholders as PNG or JPG instead of SVG ([#8193](https://github.com/RocketChat/Rocket.Chat/pull/8193) by [@lindoelio](https://github.com/lindoelio)) +- Message read receipts ([#9717](https://github.com/RocketChat/Rocket.Chat/pull/9717)) -- Allow sounds when conversation is focused ([#9312](https://github.com/RocketChat/Rocket.Chat/pull/9312) by [@RationalCoding](https://github.com/RationalCoding)) +- Alert admins when user requires approval & alert users when the account is approved/activated/deactivated ([#7098](https://github.com/RocketChat/Rocket.Chat/pull/7098) by [@luisfn](https://github.com/luisfn)) -- API to fetch permissions & user roles ([#9519](https://github.com/RocketChat/Rocket.Chat/pull/9519) by [@rafaelks](https://github.com/rafaelks)) +- Allow configuration of SAML logout behavior ([#9527](https://github.com/RocketChat/Rocket.Chat/pull/9527) by [@mrsimpson](https://github.com/mrsimpson)) -- Browse more channels / Directory ([#9642](https://github.com/RocketChat/Rocket.Chat/pull/9642) by [@karlprieb](https://github.com/karlprieb)) +- Internal hubot support for Direct Messages and Private Groups ([#8933](https://github.com/RocketChat/Rocket.Chat/pull/8933) by [@ramrami](https://github.com/ramrami)) -- General alert banner ([#9778](https://github.com/RocketChat/Rocket.Chat/pull/9778)) +- Improved default welcome message ([#9298](https://github.com/RocketChat/Rocket.Chat/pull/9298) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Global message search (beta: disabled by default) ([#9687](https://github.com/RocketChat/Rocket.Chat/pull/9687) by [@cyberhck](https://github.com/cyberhck) & [@savikko](https://github.com/savikko)) +- Makes shield icon configurable ([#9746](https://github.com/RocketChat/Rocket.Chat/pull/9746) by [@c0dzilla](https://github.com/c0dzilla)) -- GraphQL API ([#8158](https://github.com/RocketChat/Rocket.Chat/pull/8158) by [@kamilkisiela](https://github.com/kamilkisiela)) +- Global message search (beta: disabled by default) ([#9687](https://github.com/RocketChat/Rocket.Chat/pull/9687) by [@cyberhck](https://github.com/cyberhck) & [@savikko](https://github.com/savikko)) -- Image preview as 32x32 base64 jpeg ([#9218](https://github.com/RocketChat/Rocket.Chat/pull/9218) by [@jorgeluisrezende](https://github.com/jorgeluisrezende)) +- Allow sounds when conversation is focused ([#9312](https://github.com/RocketChat/Rocket.Chat/pull/9312) by [@RationalCoding](https://github.com/RationalCoding)) -- Improved default welcome message ([#9298](https://github.com/RocketChat/Rocket.Chat/pull/9298) by [@HammyHavoc](https://github.com/HammyHavoc)) +- API to fetch permissions & user roles ([#9519](https://github.com/RocketChat/Rocket.Chat/pull/9519) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@rafaelks](https://github.com/rafaelks)) -- Internal hubot support for Direct Messages and Private Groups ([#8933](https://github.com/RocketChat/Rocket.Chat/pull/8933) by [@ramrami](https://github.com/ramrami)) +- REST API to use Spotlight ([#9509](https://github.com/RocketChat/Rocket.Chat/pull/9509) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@rafaelks](https://github.com/rafaelks)) -- Livestream tab ([#9255](https://github.com/RocketChat/Rocket.Chat/pull/9255) by [@gdelavald](https://github.com/gdelavald)) +- Option to proxy files and avatars through the server ([#9699](https://github.com/RocketChat/Rocket.Chat/pull/9699)) -- Makes shield icon configurable ([#9746](https://github.com/RocketChat/Rocket.Chat/pull/9746) by [@c0dzilla](https://github.com/c0dzilla)) +- Allow request avatar placeholders as PNG or JPG instead of SVG ([#8193](https://github.com/RocketChat/Rocket.Chat/pull/8193) by [@lindoelio](https://github.com/lindoelio)) -- Message read receipts ([#9717](https://github.com/RocketChat/Rocket.Chat/pull/9717)) +- Image preview as 32x32 base64 jpeg ([#9218](https://github.com/RocketChat/Rocket.Chat/pull/9218) by [@jorgeluisrezende](https://github.com/jorgeluisrezende)) - New REST API to mark channel as read ([#9507](https://github.com/RocketChat/Rocket.Chat/pull/9507) by [@rafaelks](https://github.com/rafaelks)) -- New sidebar layout ([#9608](https://github.com/RocketChat/Rocket.Chat/pull/9608) by [@karlprieb](https://github.com/karlprieb)) +- Add route to get user shield/badge ([#9549](https://github.com/RocketChat/Rocket.Chat/pull/9549) by [@kb0304](https://github.com/kb0304)) -- Option to proxy files and avatars through the server ([#9699](https://github.com/RocketChat/Rocket.Chat/pull/9699)) +- GraphQL API ([#8158](https://github.com/RocketChat/Rocket.Chat/pull/8158) by [@kamilkisiela](https://github.com/kamilkisiela)) -- Request mongoDB version in github issue template ([#9807](https://github.com/RocketChat/Rocket.Chat/pull/9807) by [@TwizzyDizzy](https://github.com/TwizzyDizzy)) +- Livestream tab ([#9255](https://github.com/RocketChat/Rocket.Chat/pull/9255) by [@gdelavald](https://github.com/gdelavald)) -- REST API to use Spotlight ([#9509](https://github.com/RocketChat/Rocket.Chat/pull/9509) by [@rafaelks](https://github.com/rafaelks)) +- Add documentation requirement to PRs ([#9658](https://github.com/RocketChat/Rocket.Chat/pull/9658) by [@SeanPackham](https://github.com/SeanPackham)) -- Version update check ([#9793](https://github.com/RocketChat/Rocket.Chat/pull/9793)) +- Request mongoDB version in github issue template ([#9807](https://github.com/RocketChat/Rocket.Chat/pull/9807) by [@TwizzyDizzy](https://github.com/TwizzyDizzy)) ### 🐛 Bug fixes -- 'Query' support for channels.list.joined, groups.list, groups.listAll, im.list ([#9424](https://github.com/RocketChat/Rocket.Chat/pull/9424) by [@xbolshe](https://github.com/xbolshe)) +- Typo on french translation for "Open" ([#9934](https://github.com/RocketChat/Rocket.Chat/pull/9934) by [@sizrar](https://github.com/sizrar)) -- API to retrive rooms was returning empty objects ([#9737](https://github.com/RocketChat/Rocket.Chat/pull/9737)) +- Wrong behavior of rooms info's *Read Only* and *Collaborative* buttons ([#9665](https://github.com/RocketChat/Rocket.Chat/pull/9665) by [@karlprieb](https://github.com/karlprieb)) -- Chat Message Reactions REST API End Point ([#9487](https://github.com/RocketChat/Rocket.Chat/pull/9487) by [@jgtoriginal](https://github.com/jgtoriginal)) +- Close button on file upload bar was not working ([#9662](https://github.com/RocketChat/Rocket.Chat/pull/9662) by [@karlprieb](https://github.com/karlprieb)) -- Chrome 64 breaks jitsi-meet iframe ([#9560](https://github.com/RocketChat/Rocket.Chat/pull/9560) by [@speedy01](https://github.com/speedy01)) +- Livechat conversation not receiving messages when start without form ([#9772](https://github.com/RocketChat/Rocket.Chat/pull/9772)) -- Close button on file upload bar was not working ([#9662](https://github.com/RocketChat/Rocket.Chat/pull/9662) by [@karlprieb](https://github.com/karlprieb)) +- Emoji rendering on last message ([#9776](https://github.com/RocketChat/Rocket.Chat/pull/9776)) -- Close Livechat conversation by visitor not working in version 0.61.0 ([#9714](https://github.com/RocketChat/Rocket.Chat/pull/9714)) +- Chrome 64 breaks jitsi-meet iframe ([#9560](https://github.com/RocketChat/Rocket.Chat/pull/9560) by [@speedy01](https://github.com/speedy01)) + +- Harmonize channel-related actions ([#9697](https://github.com/RocketChat/Rocket.Chat/pull/9697) by [@mrsimpson](https://github.com/mrsimpson)) - Custom emoji was cropping sometimes ([#9676](https://github.com/RocketChat/Rocket.Chat/pull/9676) by [@anu-007](https://github.com/anu-007)) -- DeprecationWarning: prom-client ... when starting Rocket Chat server ([#9747](https://github.com/RocketChat/Rocket.Chat/pull/9747) by [@jgtoriginal](https://github.com/jgtoriginal)) +- Show custom room types icon in channel header ([#9696](https://github.com/RocketChat/Rocket.Chat/pull/9696) by [@mrsimpson](https://github.com/mrsimpson)) -- Desktop notification not showing when avatar came from external storage service ([#9639](https://github.com/RocketChat/Rocket.Chat/pull/9639)) +- 'Query' support for channels.list.joined, groups.list, groups.listAll, im.list ([#9424](https://github.com/RocketChat/Rocket.Chat/pull/9424) by [@xbolshe](https://github.com/xbolshe)) -- Emoji rendering on last message ([#9776](https://github.com/RocketChat/Rocket.Chat/pull/9776)) +- Livechat issues on external queue and lead capture ([#9750](https://github.com/RocketChat/Rocket.Chat/pull/9750)) -- Facebook integration in livechat not working on version 0.61.0 ([#9640](https://github.com/RocketChat/Rocket.Chat/pull/9640)) +- DeprecationWarning: prom-client ... when starting Rocket Chat server ([#9747](https://github.com/RocketChat/Rocket.Chat/pull/9747) by [@jgtoriginal](https://github.com/jgtoriginal)) -- Formal pronouns and some small mistakes in German texts ([#9067](https://github.com/RocketChat/Rocket.Chat/pull/9067) by [@AmShaegar13](https://github.com/AmShaegar13)) +- API to retrive rooms was returning empty objects ([#9737](https://github.com/RocketChat/Rocket.Chat/pull/9737)) -- GitLab OAuth does not work when GitLab’s URL ends with slash ([#9716](https://github.com/RocketChat/Rocket.Chat/pull/9716)) +- Chat Message Reactions REST API End Point ([#9487](https://github.com/RocketChat/Rocket.Chat/pull/9487) by [@MarcosSpessatto](https://github.com/MarcosSpessatto) & [@jgtoriginal](https://github.com/jgtoriginal)) -- Harmonize channel-related actions ([#9697](https://github.com/RocketChat/Rocket.Chat/pull/9697) by [@mrsimpson](https://github.com/mrsimpson)) +- Messages can't be quoted sometimes ([#9720](https://github.com/RocketChat/Rocket.Chat/pull/9720)) -- Importers no longer working due to the FileUpload changes ([#9850](https://github.com/RocketChat/Rocket.Chat/pull/9850)) +- GitLab OAuth does not work when GitLab’s URL ends with slash ([#9716](https://github.com/RocketChat/Rocket.Chat/pull/9716)) -- Livechat conversation not receiving messages when start without form ([#9772](https://github.com/RocketChat/Rocket.Chat/pull/9772)) +- Close Livechat conversation by visitor not working in version 0.61.0 ([#9714](https://github.com/RocketChat/Rocket.Chat/pull/9714)) -- Livechat is not working when running in a sub path ([#9599](https://github.com/RocketChat/Rocket.Chat/pull/9599)) +- Formal pronouns and some small mistakes in German texts ([#9067](https://github.com/RocketChat/Rocket.Chat/pull/9067) by [@AmShaegar13](https://github.com/AmShaegar13)) -- Livechat issues on external queue and lead capture ([#9750](https://github.com/RocketChat/Rocket.Chat/pull/9750)) +- Facebook integration in livechat not working on version 0.61.0 ([#9640](https://github.com/RocketChat/Rocket.Chat/pull/9640)) -- Messages can't be quoted sometimes ([#9720](https://github.com/RocketChat/Rocket.Chat/pull/9720)) +- Weird rendering of emojis at sidebar when `last message` is activated ([#9623](https://github.com/RocketChat/Rocket.Chat/pull/9623)) -- Misplaced "Save Changes" button in user account panel ([#9888](https://github.com/RocketChat/Rocket.Chat/pull/9888) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Rest API helpers only applying to v1 ([#9520](https://github.com/RocketChat/Rocket.Chat/pull/9520)) + +- Desktop notification not showing when avatar came from external storage service ([#9639](https://github.com/RocketChat/Rocket.Chat/pull/9639)) - Missing link Site URLs in enrollment e-mails ([#9454](https://github.com/RocketChat/Rocket.Chat/pull/9454) by [@kemitchell](https://github.com/kemitchell)) - Missing string 'Username_already_exist' on the accountProfile page ([#9610](https://github.com/RocketChat/Rocket.Chat/pull/9610) by [@lunaticmonk](https://github.com/lunaticmonk)) -- Not receiving sound notifications in rooms created by new LiveChats ([#9802](https://github.com/RocketChat/Rocket.Chat/pull/9802)) - -- Parsing messages with multiple markdown matches ignore some tokens ([#9884](https://github.com/RocketChat/Rocket.Chat/pull/9884) by [@c0dzilla](https://github.com/c0dzilla)) +- SVG avatars are not been displayed correctly when load in non HTML containers ([#9570](https://github.com/RocketChat/Rocket.Chat/pull/9570) by [@filipedelimabrito](https://github.com/filipedelimabrito)) -- Rest API helpers only applying to v1 ([#9520](https://github.com/RocketChat/Rocket.Chat/pull/9520)) +- Livechat is not working when running in a sub path ([#9599](https://github.com/RocketChat/Rocket.Chat/pull/9599)) -- Show custom room types icon in channel header ([#9696](https://github.com/RocketChat/Rocket.Chat/pull/9696) by [@mrsimpson](https://github.com/mrsimpson)) +- Not receiving sound notifications in rooms created by new LiveChats ([#9802](https://github.com/RocketChat/Rocket.Chat/pull/9802)) - Silence the update check error message ([#9858](https://github.com/RocketChat/Rocket.Chat/pull/9858)) -- Snap build was failing ([#9879](https://github.com/RocketChat/Rocket.Chat/pull/9879)) - -- SVG avatars are not been displayed correctly when load in non HTML containers ([#9570](https://github.com/RocketChat/Rocket.Chat/pull/9570) by [@filipedelimabrito](https://github.com/filipedelimabrito)) +- Parsing messages with multiple markdown matches ignore some tokens ([#9884](https://github.com/RocketChat/Rocket.Chat/pull/9884) by [@c0dzilla](https://github.com/c0dzilla)) -- Typo on french translation for "Open" ([#9934](https://github.com/RocketChat/Rocket.Chat/pull/9934) by [@sizrar](https://github.com/sizrar)) +- Importers no longer working due to the FileUpload changes ([#9850](https://github.com/RocketChat/Rocket.Chat/pull/9850)) -- Weird rendering of emojis at sidebar when `last message` is activated ([#9623](https://github.com/RocketChat/Rocket.Chat/pull/9623)) +- Misplaced "Save Changes" button in user account panel ([#9888](https://github.com/RocketChat/Rocket.Chat/pull/9888) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Wrong behavior of rooms info's *Read Only* and *Collaborative* buttons ([#9665](https://github.com/RocketChat/Rocket.Chat/pull/9665) by [@karlprieb](https://github.com/karlprieb)) +- Snap build was failing ([#9879](https://github.com/RocketChat/Rocket.Chat/pull/9879))
🔍 Minor changes -- [Fix] Not Translated Phrases ([#9877](https://github.com/RocketChat/Rocket.Chat/pull/9877) by [@bernardoetrevisan](https://github.com/bernardoetrevisan)) +- Release 0.62.0 ([#9935](https://github.com/RocketChat/Rocket.Chat/pull/9935)) -- [OTHER] Fix Apps not working on multi-instance deployments ([#9902](https://github.com/RocketChat/Rocket.Chat/pull/9902)) +- Regression: Fix livechat queue link ([#9928](https://github.com/RocketChat/Rocket.Chat/pull/9928) by [@karlprieb](https://github.com/karlprieb)) -- [OTHER] Rocket.Chat Apps ([#9666](https://github.com/RocketChat/Rocket.Chat/pull/9666)) +- Regression: Directory now list default channel ([#9931](https://github.com/RocketChat/Rocket.Chat/pull/9931) by [@karlprieb](https://github.com/karlprieb)) -- Dependencies update ([#9811](https://github.com/RocketChat/Rocket.Chat/pull/9811)) +- Improve link handling for attachments ([#9908](https://github.com/RocketChat/Rocket.Chat/pull/9908)) -- Develop fix sync from master ([#9797](https://github.com/RocketChat/Rocket.Chat/pull/9797)) +- Regression: Misplaced language dropdown in user preferences panel ([#9883](https://github.com/RocketChat/Rocket.Chat/pull/9883) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) - Fix RHCC image path for OpenShift and default to the current namespace. ([#9901](https://github.com/RocketChat/Rocket.Chat/pull/9901) by [@jsm84](https://github.com/jsm84)) -- Fix: Custom fields not showing on user info panel ([#9821](https://github.com/RocketChat/Rocket.Chat/pull/9821)) +- Sync from Master ([#9796](https://github.com/RocketChat/Rocket.Chat/pull/9796) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Improve link handling for attachments ([#9908](https://github.com/RocketChat/Rocket.Chat/pull/9908)) +- [OTHER] Rocket.Chat Apps ([#9666](https://github.com/RocketChat/Rocket.Chat/pull/9666)) - Move NRR package to inside the project and convert from CoffeeScript ([#9753](https://github.com/RocketChat/Rocket.Chat/pull/9753)) -- Regression: Avatar now open account related options ([#9843](https://github.com/RocketChat/Rocket.Chat/pull/9843) by [@karlprieb](https://github.com/karlprieb)) +- Update to meteor 1.6.1 ([#9546](https://github.com/RocketChat/Rocket.Chat/pull/9546)) -- Regression: Change create channel icon ([#9851](https://github.com/RocketChat/Rocket.Chat/pull/9851) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Avatar now open account related options ([#9843](https://github.com/RocketChat/Rocket.Chat/pull/9843) by [@karlprieb](https://github.com/karlprieb)) -- Regression: Directory now list default channel ([#9931](https://github.com/RocketChat/Rocket.Chat/pull/9931) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Open search using ctrl/cmd + p and ctrl/cmd + k ([#9837](https://github.com/RocketChat/Rocket.Chat/pull/9837) by [@karlprieb](https://github.com/karlprieb)) -- Regression: Fix admin/user settings item text ([#9845](https://github.com/RocketChat/Rocket.Chat/pull/9845) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Search bar is now full width ([#9839](https://github.com/RocketChat/Rocket.Chat/pull/9839) by [@karlprieb](https://github.com/karlprieb)) -- Regression: Fix channel icons on safari ([#9852](https://github.com/RocketChat/Rocket.Chat/pull/9852) by [@karlprieb](https://github.com/karlprieb)) +- Dependencies update ([#9811](https://github.com/RocketChat/Rocket.Chat/pull/9811)) -- Regression: Fix livechat queue link ([#9928](https://github.com/RocketChat/Rocket.Chat/pull/9928) by [@karlprieb](https://github.com/karlprieb)) +- Fix: Custom fields not showing on user info panel ([#9821](https://github.com/RocketChat/Rocket.Chat/pull/9821)) -- Regression: Improve sidebar filter ([#9905](https://github.com/RocketChat/Rocket.Chat/pull/9905) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Page was not respecting the window height on Firefox ([#9804](https://github.com/RocketChat/Rocket.Chat/pull/9804)) -- Regression: Misplaced language dropdown in user preferences panel ([#9883](https://github.com/RocketChat/Rocket.Chat/pull/9883) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Update bot-config.yml ([#9784](https://github.com/RocketChat/Rocket.Chat/pull/9784) by [@JSzaszvari](https://github.com/JSzaszvari)) -- Regression: Open search using ctrl/cmd + p and ctrl/cmd + k ([#9837](https://github.com/RocketChat/Rocket.Chat/pull/9837) by [@karlprieb](https://github.com/karlprieb)) +- Develop fix sync from master ([#9797](https://github.com/RocketChat/Rocket.Chat/pull/9797)) -- Regression: Overlapping header in user profile panel ([#9889](https://github.com/RocketChat/Rocket.Chat/pull/9889) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Regression: Change create channel icon ([#9851](https://github.com/RocketChat/Rocket.Chat/pull/9851) by [@karlprieb](https://github.com/karlprieb)) -- Regression: Page was not respecting the window height on Firefox ([#9804](https://github.com/RocketChat/Rocket.Chat/pull/9804)) +- Regression: Fix channel icons on safari ([#9852](https://github.com/RocketChat/Rocket.Chat/pull/9852) by [@karlprieb](https://github.com/karlprieb)) -- Regression: Search bar is now full width ([#9839](https://github.com/RocketChat/Rocket.Chat/pull/9839) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Fix admin/user settings item text ([#9845](https://github.com/RocketChat/Rocket.Chat/pull/9845) by [@karlprieb](https://github.com/karlprieb)) -- Regression: sort on room's list not working correctly ([#9897](https://github.com/RocketChat/Rocket.Chat/pull/9897)) +- Regression: Improve sidebar filter ([#9905](https://github.com/RocketChat/Rocket.Chat/pull/9905) by [@karlprieb](https://github.com/karlprieb)) -- Release 0.62.0 ([#9935](https://github.com/RocketChat/Rocket.Chat/pull/9935)) +- [OTHER] Fix Apps not working on multi-instance deployments ([#9902](https://github.com/RocketChat/Rocket.Chat/pull/9902)) -- Sync from Master ([#9796](https://github.com/RocketChat/Rocket.Chat/pull/9796) by [@HammyHavoc](https://github.com/HammyHavoc)) +- [Fix] Not Translated Phrases ([#9877](https://github.com/RocketChat/Rocket.Chat/pull/9877) by [@bernardoetrevisan](https://github.com/bernardoetrevisan)) -- Update bot-config.yml ([#9784](https://github.com/RocketChat/Rocket.Chat/pull/9784) by [@JSzaszvari](https://github.com/JSzaszvari)) +- Regression: Overlapping header in user profile panel ([#9889](https://github.com/RocketChat/Rocket.Chat/pull/9889) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Update to meteor 1.6.1 ([#9546](https://github.com/RocketChat/Rocket.Chat/pull/9546)) +- Regression: sort on room's list not working correctly ([#9897](https://github.com/RocketChat/Rocket.Chat/pull/9897))
@@ -9877,6 +10181,7 @@ - [@AmShaegar13](https://github.com/AmShaegar13) - [@HammyHavoc](https://github.com/HammyHavoc) - [@JSzaszvari](https://github.com/JSzaszvari) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@RationalCoding](https://github.com/RationalCoding) - [@SeanPackham](https://github.com/SeanPackham) - [@TwizzyDizzy](https://github.com/TwizzyDizzy) @@ -9907,7 +10212,6 @@ ### 👩‍💻👨‍💻 Core Team 🤓 -- [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@MartinSchoeler](https://github.com/MartinSchoeler) - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -9927,12 +10231,12 @@ ### 🐛 Bug fixes +- Livechat issues on external queue and lead capture ([#9750](https://github.com/RocketChat/Rocket.Chat/pull/9750)) + - Emoji rendering on last message ([#9776](https://github.com/RocketChat/Rocket.Chat/pull/9776)) - Livechat conversation not receiving messages when start without form ([#9772](https://github.com/RocketChat/Rocket.Chat/pull/9772)) -- Livechat issues on external queue and lead capture ([#9750](https://github.com/RocketChat/Rocket.Chat/pull/9750)) -
🔍 Minor changes @@ -9981,202 +10285,202 @@ ### 🎉 New features -- add /home link to sidenav footer logo ([#9366](https://github.com/RocketChat/Rocket.Chat/pull/9366) by [@cyclops24](https://github.com/cyclops24)) +- Contextual Bar Redesign ([#8411](https://github.com/RocketChat/Rocket.Chat/pull/8411) by [@karlprieb](https://github.com/karlprieb)) -- Add impersonate option for livechat triggers ([#9107](https://github.com/RocketChat/Rocket.Chat/pull/9107)) +- Update documentation: provide example for multiple basedn ([#9442](https://github.com/RocketChat/Rocket.Chat/pull/9442) by [@rndmh3ro](https://github.com/rndmh3ro)) -- Add mention-here permission #7631 ([#9228](https://github.com/RocketChat/Rocket.Chat/pull/9228) by [@ryjones](https://github.com/ryjones)) +- Sidebar menu option to mark room as unread ([#9216](https://github.com/RocketChat/Rocket.Chat/pull/9216) by [@karlprieb](https://github.com/karlprieb)) -- Add support to external livechat queue service provider ([#9053](https://github.com/RocketChat/Rocket.Chat/pull/9053)) +- Add mention-here permission #7631 ([#9228](https://github.com/RocketChat/Rocket.Chat/pull/9228) by [@ryjones](https://github.com/ryjones)) -- Contextual bar mail messages ([#9510](https://github.com/RocketChat/Rocket.Chat/pull/9510) by [@karlprieb](https://github.com/karlprieb)) +- Indicate the Self DM room ([#9234](https://github.com/RocketChat/Rocket.Chat/pull/9234)) -- Contextual Bar Redesign ([#8411](https://github.com/RocketChat/Rocket.Chat/pull/8411) by [@karlprieb](https://github.com/karlprieb)) +- new layout for emojipicker ([#9245](https://github.com/RocketChat/Rocket.Chat/pull/9245) by [@karlprieb](https://github.com/karlprieb)) -- Indicate the Self DM room ([#9234](https://github.com/RocketChat/Rocket.Chat/pull/9234)) +- add /home link to sidenav footer logo ([#9366](https://github.com/RocketChat/Rocket.Chat/pull/9366) by [@cyclops24](https://github.com/cyclops24)) - Livechat extract lead data from message ([#9135](https://github.com/RocketChat/Rocket.Chat/pull/9135)) -- Make Custom oauth accept nested usernameField ([#9066](https://github.com/RocketChat/Rocket.Chat/pull/9066) by [@pierreozoux](https://github.com/pierreozoux)) +- Add impersonate option for livechat triggers ([#9107](https://github.com/RocketChat/Rocket.Chat/pull/9107)) -- new layout for emojipicker ([#9245](https://github.com/RocketChat/Rocket.Chat/pull/9245) by [@karlprieb](https://github.com/karlprieb)) +- Add support to external livechat queue service provider ([#9053](https://github.com/RocketChat/Rocket.Chat/pull/9053)) -- Sidebar menu option to mark room as unread ([#9216](https://github.com/RocketChat/Rocket.Chat/pull/9216) by [@karlprieb](https://github.com/karlprieb)) +- Make Custom oauth accept nested usernameField ([#9066](https://github.com/RocketChat/Rocket.Chat/pull/9066) by [@pierreozoux](https://github.com/pierreozoux)) -- Update documentation: provide example for multiple basedn ([#9442](https://github.com/RocketChat/Rocket.Chat/pull/9442) by [@rndmh3ro](https://github.com/rndmh3ro)) +- Contextual bar mail messages ([#9510](https://github.com/RocketChat/Rocket.Chat/pull/9510) by [@karlprieb](https://github.com/karlprieb)) ### 🐛 Bug fixes -- "Enter usernames" placeholder is cutting in "create channel" view ([#9194](https://github.com/RocketChat/Rocket.Chat/pull/9194) by [@TheReal1604](https://github.com/TheReal1604)) - -- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182) by [@karlprieb](https://github.com/karlprieb)) - - **i18n:** add room type translation support for room-changed-privacy message ([#9369](https://github.com/RocketChat/Rocket.Chat/pull/9369) by [@cyclops24](https://github.com/cyclops24)) -- announcement hyperlink color ([#9330](https://github.com/RocketChat/Rocket.Chat/pull/9330) by [@karlprieb](https://github.com/karlprieb)) - -- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168) by [@karlprieb](https://github.com/karlprieb)) +- Fix livechat register form ([#9452](https://github.com/RocketChat/Rocket.Chat/pull/9452)) -- Channel page error ([#9091](https://github.com/RocketChat/Rocket.Chat/pull/9091) by [@ggrish](https://github.com/ggrish)) +- Fix livechat build ([#9451](https://github.com/RocketChat/Rocket.Chat/pull/9451)) -- Contextual bar redesign ([#9481](https://github.com/RocketChat/Rocket.Chat/pull/9481) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- Fix closing livechat inquiry ([#9164](https://github.com/RocketChat/Rocket.Chat/pull/9164)) -- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185) by [@karlprieb](https://github.com/karlprieb)) +- Slash command 'unarchive' throws exception if the channel does not exist ([#9435](https://github.com/RocketChat/Rocket.Chat/pull/9435) by [@ramrami](https://github.com/ramrami)) -- custom emoji size on sidebar item ([#9314](https://github.com/RocketChat/Rocket.Chat/pull/9314) by [@karlprieb](https://github.com/karlprieb)) +- Slash command 'archive' throws exception if the channel does not exist ([#9428](https://github.com/RocketChat/Rocket.Chat/pull/9428) by [@ramrami](https://github.com/ramrami)) -- Deleting message with store last message not removing ([#9335](https://github.com/RocketChat/Rocket.Chat/pull/9335)) +- Subscriptions not removed when removing user ([#9432](https://github.com/RocketChat/Rocket.Chat/pull/9432)) -- Do not block room while loading history ([#9121](https://github.com/RocketChat/Rocket.Chat/pull/9121)) +- Highlight setting not working correctly ([#9364](https://github.com/RocketChat/Rocket.Chat/pull/9364) by [@cyclops24](https://github.com/cyclops24)) -- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186) by [@karlprieb](https://github.com/karlprieb)) +- announcement hyperlink color ([#9330](https://github.com/RocketChat/Rocket.Chat/pull/9330) by [@karlprieb](https://github.com/karlprieb)) -- English Typos ([#9285](https://github.com/RocketChat/Rocket.Chat/pull/9285) by [@HammyHavoc](https://github.com/HammyHavoc)) +- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328) by [@karlprieb](https://github.com/karlprieb)) -- Error when user roles is missing or is invalid ([#9040](https://github.com/RocketChat/Rocket.Chat/pull/9040) by [@paulovitin](https://github.com/paulovitin)) +- last message cutting on bottom ([#9345](https://github.com/RocketChat/Rocket.Chat/pull/9345) by [@karlprieb](https://github.com/karlprieb)) -- File access not working when passing credentials via querystring ([#9264](https://github.com/RocketChat/Rocket.Chat/pull/9264)) +- Deleting message with store last message not removing ([#9335](https://github.com/RocketChat/Rocket.Chat/pull/9335)) -- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206) by [@karlprieb](https://github.com/karlprieb)) +- custom emoji size on sidebar item ([#9314](https://github.com/RocketChat/Rocket.Chat/pull/9314) by [@karlprieb](https://github.com/karlprieb)) -- Fix closing livechat inquiry ([#9164](https://github.com/RocketChat/Rocket.Chat/pull/9164)) +- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311) by [@karlprieb](https://github.com/karlprieb)) -- Fix livechat build ([#9451](https://github.com/RocketChat/Rocket.Chat/pull/9451)) +- sidebar footer padding ([#9249](https://github.com/RocketChat/Rocket.Chat/pull/9249) by [@karlprieb](https://github.com/karlprieb)) -- Fix livechat register form ([#9452](https://github.com/RocketChat/Rocket.Chat/pull/9452)) +- LDAP/AD is not importing all users ([#9309](https://github.com/RocketChat/Rocket.Chat/pull/9309)) -- Fix livechat visitor edit ([#9506](https://github.com/RocketChat/Rocket.Chat/pull/9506)) +- Wrong position of notifications alert in accounts preference page ([#9289](https://github.com/RocketChat/Rocket.Chat/pull/9289) by [@HammyHavoc](https://github.com/HammyHavoc)) -- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172) by [@karlprieb](https://github.com/karlprieb)) +- English Typos ([#9285](https://github.com/RocketChat/Rocket.Chat/pull/9285) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Highlight setting not working correctly ([#9364](https://github.com/RocketChat/Rocket.Chat/pull/9364) by [@cyclops24](https://github.com/cyclops24)) +- File access not working when passing credentials via querystring ([#9264](https://github.com/RocketChat/Rocket.Chat/pull/9264)) -- Importers not recovering when an error occurs ([#9134](https://github.com/RocketChat/Rocket.Chat/pull/9134)) +- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243) by [@karlprieb](https://github.com/karlprieb)) -- large names on userinfo, and admin user bug on users with no usernames ([#9493](https://github.com/RocketChat/Rocket.Chat/pull/9493) by [@gdelavald](https://github.com/gdelavald)) +- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241) by [@karlprieb](https://github.com/karlprieb)) -- last message cutting on bottom ([#9345](https://github.com/RocketChat/Rocket.Chat/pull/9345) by [@karlprieb](https://github.com/karlprieb)) +- "Enter usernames" placeholder is cutting in "create channel" view ([#9194](https://github.com/RocketChat/Rocket.Chat/pull/9194) by [@TheReal1604](https://github.com/TheReal1604)) -- Last sent message reoccurs in textbox ([#9169](https://github.com/RocketChat/Rocket.Chat/pull/9169)) +- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206) by [@karlprieb](https://github.com/karlprieb)) -- LDAP/AD is not importing all users ([#9309](https://github.com/RocketChat/Rocket.Chat/pull/9309)) +- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@karlprieb](https://github.com/karlprieb) & [@vitor-nagao](https://github.com/vitor-nagao)) - Made welcome emails more readable ([#9193](https://github.com/RocketChat/Rocket.Chat/pull/9193) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922) by [@karlprieb](https://github.com/karlprieb)) +- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185) by [@karlprieb](https://github.com/karlprieb)) -- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@karlprieb](https://github.com/karlprieb) & [@vitor-nagao](https://github.com/vitor-nagao)) +- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186) by [@karlprieb](https://github.com/karlprieb)) -- mention-here is missing i18n text #9455 ([#9456](https://github.com/RocketChat/Rocket.Chat/pull/9456) by [@ryjones](https://github.com/ryjones)) +- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188) by [@karlprieb](https://github.com/karlprieb)) -- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171) by [@karlprieb](https://github.com/karlprieb)) +- Error when user roles is missing or is invalid ([#9040](https://github.com/RocketChat/Rocket.Chat/pull/9040) by [@paulovitin](https://github.com/paulovitin)) -- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243) by [@karlprieb](https://github.com/karlprieb)) +- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922) by [@karlprieb](https://github.com/karlprieb)) -- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328) by [@karlprieb](https://github.com/karlprieb)) +- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182) by [@karlprieb](https://github.com/karlprieb)) -- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241) by [@karlprieb](https://github.com/karlprieb)) +- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168) by [@karlprieb](https://github.com/karlprieb)) + +- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172) by [@karlprieb](https://github.com/karlprieb)) + +- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171) by [@karlprieb](https://github.com/karlprieb)) - show oauth logins when adblock is used ([#9170](https://github.com/RocketChat/Rocket.Chat/pull/9170) by [@karlprieb](https://github.com/karlprieb)) -- sidebar footer padding ([#9249](https://github.com/RocketChat/Rocket.Chat/pull/9249) by [@karlprieb](https://github.com/karlprieb)) +- Last sent message reoccurs in textbox ([#9169](https://github.com/RocketChat/Rocket.Chat/pull/9169)) -- Slash command 'archive' throws exception if the channel does not exist ([#9428](https://github.com/RocketChat/Rocket.Chat/pull/9428) by [@ramrami](https://github.com/ramrami)) +- Update Rocket.Chat for sandstorm ([#9062](https://github.com/RocketChat/Rocket.Chat/pull/9062) by [@peterlee0127](https://github.com/peterlee0127)) -- Slash command 'unarchive' throws exception if the channel does not exist ([#9435](https://github.com/RocketChat/Rocket.Chat/pull/9435) by [@ramrami](https://github.com/ramrami)) +- Importers not recovering when an error occurs ([#9134](https://github.com/RocketChat/Rocket.Chat/pull/9134)) -- Subscriptions not removed when removing user ([#9432](https://github.com/RocketChat/Rocket.Chat/pull/9432)) +- Do not block room while loading history ([#9121](https://github.com/RocketChat/Rocket.Chat/pull/9121)) -- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311) by [@karlprieb](https://github.com/karlprieb)) +- Channel page error ([#9091](https://github.com/RocketChat/Rocket.Chat/pull/9091) by [@ggrish](https://github.com/ggrish)) + +- Contextual bar redesign ([#9481](https://github.com/RocketChat/Rocket.Chat/pull/9481) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188) by [@karlprieb](https://github.com/karlprieb)) +- mention-here is missing i18n text #9455 ([#9456](https://github.com/RocketChat/Rocket.Chat/pull/9456) by [@ryjones](https://github.com/ryjones)) -- Update Rocket.Chat for sandstorm ([#9062](https://github.com/RocketChat/Rocket.Chat/pull/9062) by [@peterlee0127](https://github.com/peterlee0127)) +- Fix livechat visitor edit ([#9506](https://github.com/RocketChat/Rocket.Chat/pull/9506)) -- Wrong position of notifications alert in accounts preference page ([#9289](https://github.com/RocketChat/Rocket.Chat/pull/9289) by [@HammyHavoc](https://github.com/HammyHavoc)) +- large names on userinfo, and admin user bug on users with no usernames ([#9493](https://github.com/RocketChat/Rocket.Chat/pull/9493) by [@gdelavald](https://github.com/gdelavald))
🔍 Minor changes -- [DOCS] Update the links of our Mobile Apps in Features topic ([#9469](https://github.com/RocketChat/Rocket.Chat/pull/9469) by [@rafaelks](https://github.com/rafaelks)) - -- [Fix] oauth not working because of email array ([#9173](https://github.com/RocketChat/Rocket.Chat/pull/9173)) +- Release 0.61.0 ([#9533](https://github.com/RocketChat/Rocket.Chat/pull/9533) by [@karlprieb](https://github.com/karlprieb) & [@ryjones](https://github.com/ryjones)) - Add community bot ([#9439](https://github.com/RocketChat/Rocket.Chat/pull/9439)) -- Add curl, its missing on worker nodes so has to be explicitly added ([#9248](https://github.com/RocketChat/Rocket.Chat/pull/9248)) - -- Dependencies Update ([#9197](https://github.com/RocketChat/Rocket.Chat/pull/9197)) - -- Develop sync - Bump version to 0.61.0-develop ([#9260](https://github.com/RocketChat/Rocket.Chat/pull/9260) by [@cpitman](https://github.com/cpitman) & [@karlprieb](https://github.com/karlprieb)) - -- Do not change room icon color when room is unread ([#9257](https://github.com/RocketChat/Rocket.Chat/pull/9257)) +- Use correct version of Mailparser module ([#9356](https://github.com/RocketChat/Rocket.Chat/pull/9356)) -- Fix test without oplog by waiting a successful login on changing users ([#9146](https://github.com/RocketChat/Rocket.Chat/pull/9146)) +- Update Marked dependecy to 0.3.9 ([#9346](https://github.com/RocketChat/Rocket.Chat/pull/9346)) -- Fix: Can’t login using LDAP via REST ([#9162](https://github.com/RocketChat/Rocket.Chat/pull/9162)) +- Fix: English language improvements ([#9299](https://github.com/RocketChat/Rocket.Chat/pull/9299) by [@HammyHavoc](https://github.com/HammyHavoc)) - Fix: Change 'Wordpress' to 'WordPress ([#9291](https://github.com/RocketChat/Rocket.Chat/pull/9291) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Fix: Clear all unreads modal not closing after confirming ([#9137](https://github.com/RocketChat/Rocket.Chat/pull/9137)) +- Fix: Improved README.md ([#9290](https://github.com/RocketChat/Rocket.Chat/pull/9290) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Fix: Click on channel name - hover area bigger than link area ([#9165](https://github.com/RocketChat/Rocket.Chat/pull/9165)) +- Fix: README typo ([#9286](https://github.com/RocketChat/Rocket.Chat/pull/9286) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Fix: Confirmation modals showing `Send` button ([#9136](https://github.com/RocketChat/Rocket.Chat/pull/9136)) +- Develop sync - Bump version to 0.61.0-develop ([#9260](https://github.com/RocketChat/Rocket.Chat/pull/9260) by [@cpitman](https://github.com/cpitman) & [@karlprieb](https://github.com/karlprieb)) -- Fix: English language improvements ([#9299](https://github.com/RocketChat/Rocket.Chat/pull/9299) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Do not change room icon color when room is unread ([#9257](https://github.com/RocketChat/Rocket.Chat/pull/9257)) -- Fix: Improved README.md ([#9290](https://github.com/RocketChat/Rocket.Chat/pull/9290) by [@HammyHavoc](https://github.com/HammyHavoc)) +- LingoHub based on develop ([#9256](https://github.com/RocketChat/Rocket.Chat/pull/9256)) -- Fix: Message action quick buttons drops if "new message" divider is being shown ([#9138](https://github.com/RocketChat/Rocket.Chat/pull/9138)) +- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247) by [@karlprieb](https://github.com/karlprieb)) -- Fix: Messages being displayed in reverse order ([#9144](https://github.com/RocketChat/Rocket.Chat/pull/9144)) +- Add curl, its missing on worker nodes so has to be explicitly added ([#9248](https://github.com/RocketChat/Rocket.Chat/pull/9248)) + +- Fix: Unneeded warning in payload of REST API calls ([#9240](https://github.com/RocketChat/Rocket.Chat/pull/9240)) - Fix: Missing option to set user's avatar from a url ([#9229](https://github.com/RocketChat/Rocket.Chat/pull/9229)) -- Fix: Multiple unread indicators ([#9120](https://github.com/RocketChat/Rocket.Chat/pull/9120)) +- Fix: Upload access control too distributed ([#9215](https://github.com/RocketChat/Rocket.Chat/pull/9215)) -- Fix: README typo ([#9286](https://github.com/RocketChat/Rocket.Chat/pull/9286) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Fix: Username find is matching partially ([#9217](https://github.com/RocketChat/Rocket.Chat/pull/9217)) + +- Fix: updating last message on message edit or delete ([#9227](https://github.com/RocketChat/Rocket.Chat/pull/9227)) - Fix: Rooms and users are using different avatar style ([#9196](https://github.com/RocketChat/Rocket.Chat/pull/9196)) -- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247) by [@karlprieb](https://github.com/karlprieb)) +- Replace postcss-nesting with postcss-nested ([#9200](https://github.com/RocketChat/Rocket.Chat/pull/9200)) + +- Dependencies Update ([#9197](https://github.com/RocketChat/Rocket.Chat/pull/9197)) + +- Typo: German language file ([#9190](https://github.com/RocketChat/Rocket.Chat/pull/9190) by [@TheReal1604](https://github.com/TheReal1604)) - Fix: Snippet name to not showing in snippet list ([#9184](https://github.com/RocketChat/Rocket.Chat/pull/9184) by [@karlprieb](https://github.com/karlprieb)) +- Fix/api me only return verified ([#9183](https://github.com/RocketChat/Rocket.Chat/pull/9183)) + - Fix: UI: Descenders of glyphs are cut off ([#9181](https://github.com/RocketChat/Rocket.Chat/pull/9181)) -- Fix: UI: Descenders of glyphs are cut off ([#9166](https://github.com/RocketChat/Rocket.Chat/pull/9166)) +- [Fix] oauth not working because of email array ([#9173](https://github.com/RocketChat/Rocket.Chat/pull/9173)) -- Fix: Unneeded warning in payload of REST API calls ([#9240](https://github.com/RocketChat/Rocket.Chat/pull/9240)) +- Fix: Click on channel name - hover area bigger than link area ([#9165](https://github.com/RocketChat/Rocket.Chat/pull/9165)) -- Fix: Unread line ([#9149](https://github.com/RocketChat/Rocket.Chat/pull/9149)) +- Fix: UI: Descenders of glyphs are cut off ([#9166](https://github.com/RocketChat/Rocket.Chat/pull/9166)) -- Fix: updating last message on message edit or delete ([#9227](https://github.com/RocketChat/Rocket.Chat/pull/9227)) +- Fix: Can’t login using LDAP via REST ([#9162](https://github.com/RocketChat/Rocket.Chat/pull/9162)) -- Fix: Upload access control too distributed ([#9215](https://github.com/RocketChat/Rocket.Chat/pull/9215)) +- Fix: Unread line ([#9149](https://github.com/RocketChat/Rocket.Chat/pull/9149)) -- Fix: Username find is matching partially ([#9217](https://github.com/RocketChat/Rocket.Chat/pull/9217)) +- Fix test without oplog by waiting a successful login on changing users ([#9146](https://github.com/RocketChat/Rocket.Chat/pull/9146)) -- Fix/api me only return verified ([#9183](https://github.com/RocketChat/Rocket.Chat/pull/9183)) +- Fix: Messages being displayed in reverse order ([#9144](https://github.com/RocketChat/Rocket.Chat/pull/9144)) -- LingoHub based on develop ([#9256](https://github.com/RocketChat/Rocket.Chat/pull/9256)) +- Fix: Clear all unreads modal not closing after confirming ([#9137](https://github.com/RocketChat/Rocket.Chat/pull/9137)) -- Prevent NPM package-lock inside livechat ([#9504](https://github.com/RocketChat/Rocket.Chat/pull/9504)) +- Fix: Message action quick buttons drops if "new message" divider is being shown ([#9138](https://github.com/RocketChat/Rocket.Chat/pull/9138)) -- Release 0.61.0 ([#9533](https://github.com/RocketChat/Rocket.Chat/pull/9533) by [@karlprieb](https://github.com/karlprieb) & [@ryjones](https://github.com/ryjones)) +- Fix: Confirmation modals showing `Send` button ([#9136](https://github.com/RocketChat/Rocket.Chat/pull/9136)) -- Replace postcss-nesting with postcss-nested ([#9200](https://github.com/RocketChat/Rocket.Chat/pull/9200)) +- Fix: Multiple unread indicators ([#9120](https://github.com/RocketChat/Rocket.Chat/pull/9120)) -- Typo: German language file ([#9190](https://github.com/RocketChat/Rocket.Chat/pull/9190) by [@TheReal1604](https://github.com/TheReal1604)) +- [DOCS] Update the links of our Mobile Apps in Features topic ([#9469](https://github.com/RocketChat/Rocket.Chat/pull/9469) by [@rafaelks](https://github.com/rafaelks)) - Update license ([#9490](https://github.com/RocketChat/Rocket.Chat/pull/9490)) -- Update Marked dependecy to 0.3.9 ([#9346](https://github.com/RocketChat/Rocket.Chat/pull/9346)) - -- Use correct version of Mailparser module ([#9356](https://github.com/RocketChat/Rocket.Chat/pull/9356)) +- Prevent NPM package-lock inside livechat ([#9504](https://github.com/RocketChat/Rocket.Chat/pull/9504))
@@ -10219,16 +10523,16 @@ ### 🐛 Bug fixes +- LDAP TLS not working in some cases ([#9343](https://github.com/RocketChat/Rocket.Chat/pull/9343)) + +- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328) by [@karlprieb](https://github.com/karlprieb)) + - announcement hyperlink color ([#9330](https://github.com/RocketChat/Rocket.Chat/pull/9330) by [@karlprieb](https://github.com/karlprieb)) - Deleting message with store last message not removing ([#9335](https://github.com/RocketChat/Rocket.Chat/pull/9335)) - last message cutting on bottom ([#9345](https://github.com/RocketChat/Rocket.Chat/pull/9345) by [@karlprieb](https://github.com/karlprieb)) -- LDAP TLS not working in some cases ([#9343](https://github.com/RocketChat/Rocket.Chat/pull/9343)) - -- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328) by [@karlprieb](https://github.com/karlprieb)) -
🔍 Minor changes @@ -10260,30 +10564,30 @@ - custom emoji size on sidebar item ([#9314](https://github.com/RocketChat/Rocket.Chat/pull/9314) by [@karlprieb](https://github.com/karlprieb)) -- English Typos ([#9285](https://github.com/RocketChat/Rocket.Chat/pull/9285) by [@HammyHavoc](https://github.com/HammyHavoc)) - -- LDAP/AD is not importing all users ([#9309](https://github.com/RocketChat/Rocket.Chat/pull/9309)) +- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311) by [@karlprieb](https://github.com/karlprieb)) - sidebar footer padding ([#9249](https://github.com/RocketChat/Rocket.Chat/pull/9249) by [@karlprieb](https://github.com/karlprieb)) -- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311) by [@karlprieb](https://github.com/karlprieb)) +- LDAP/AD is not importing all users ([#9309](https://github.com/RocketChat/Rocket.Chat/pull/9309)) - Wrong position of notifications alert in accounts preference page ([#9289](https://github.com/RocketChat/Rocket.Chat/pull/9289) by [@HammyHavoc](https://github.com/HammyHavoc)) +- English Typos ([#9285](https://github.com/RocketChat/Rocket.Chat/pull/9285) by [@HammyHavoc](https://github.com/HammyHavoc)) +
🔍 Minor changes -- Fix: Change 'Wordpress' to 'WordPress ([#9291](https://github.com/RocketChat/Rocket.Chat/pull/9291) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Release 0.60.3 ([#9320](https://github.com/RocketChat/Rocket.Chat/pull/9320) by [@HammyHavoc](https://github.com/HammyHavoc)) - Fix: English language improvements ([#9299](https://github.com/RocketChat/Rocket.Chat/pull/9299) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Fix: Change 'Wordpress' to 'WordPress ([#9291](https://github.com/RocketChat/Rocket.Chat/pull/9291) by [@HammyHavoc](https://github.com/HammyHavoc)) + - Fix: Improved README.md ([#9290](https://github.com/RocketChat/Rocket.Chat/pull/9290) by [@HammyHavoc](https://github.com/HammyHavoc)) - Fix: README typo ([#9286](https://github.com/RocketChat/Rocket.Chat/pull/9286) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Release 0.60.3 ([#9320](https://github.com/RocketChat/Rocket.Chat/pull/9320) by [@HammyHavoc](https://github.com/HammyHavoc)) -
### 👩‍💻👨‍💻 Contributors 😍 @@ -10305,11 +10609,11 @@ ### 🐛 Bug fixes -- Missing translations ([#9272](https://github.com/RocketChat/Rocket.Chat/pull/9272)) +- Restore translations from other languages ([#9277](https://github.com/RocketChat/Rocket.Chat/pull/9277)) - Remove sweetalert from livechat facebook integration page ([#9274](https://github.com/RocketChat/Rocket.Chat/pull/9274)) -- Restore translations from other languages ([#9277](https://github.com/RocketChat/Rocket.Chat/pull/9277)) +- Missing translations ([#9272](https://github.com/RocketChat/Rocket.Chat/pull/9272))
🔍 Minor changes @@ -10350,618 +10654,618 @@ ### 🎉 New features -- Add "Favorites" and "Mark as read" options to the room list ([#8915](https://github.com/RocketChat/Rocket.Chat/pull/8915) by [@karlprieb](https://github.com/karlprieb)) - -- Add "real name change" setting ([#8739](https://github.com/RocketChat/Rocket.Chat/pull/8739) by [@AmShaegar13](https://github.com/AmShaegar13)) - -- Add new API endpoints ([#8947](https://github.com/RocketChat/Rocket.Chat/pull/8947)) - -- Add RD Station integration to livechat ([#8304](https://github.com/RocketChat/Rocket.Chat/pull/8304)) - -- Add settings for allow user direct messages to yourself ([#8066](https://github.com/RocketChat/Rocket.Chat/pull/8066) by [@lindoelio](https://github.com/lindoelio)) +- Allow user's default preferences configuration ([#7285](https://github.com/RocketChat/Rocket.Chat/pull/7285) by [@goiaba](https://github.com/goiaba)) -- Add sweet alert to video call tab ([#8108](https://github.com/RocketChat/Rocket.Chat/pull/8108)) +- Add "Favorites" and "Mark as read" options to the room list ([#8915](https://github.com/RocketChat/Rocket.Chat/pull/8915) by [@karlprieb](https://github.com/karlprieb)) -- Add yunohost.org installation method to Readme.md ([#8037](https://github.com/RocketChat/Rocket.Chat/pull/8037) by [@selamanse](https://github.com/selamanse)) +- Facebook livechat integration ([#8807](https://github.com/RocketChat/Rocket.Chat/pull/8807)) - Added support for Dataporten's userid-feide scope ([#8902](https://github.com/RocketChat/Rocket.Chat/pull/8902) by [@torgeirl](https://github.com/torgeirl)) -- Adds admin option to globally set mobile devices to always be notified regardless of presence status. ([#7641](https://github.com/RocketChat/Rocket.Chat/pull/7641) by [@stalley](https://github.com/stalley)) - -- Allow user's default preferences configuration ([#7285](https://github.com/RocketChat/Rocket.Chat/pull/7285) by [@goiaba](https://github.com/goiaba)) - -- code to get the updated messages ([#8857](https://github.com/RocketChat/Rocket.Chat/pull/8857)) - - Describe file uploads when notifying by email ([#8924](https://github.com/RocketChat/Rocket.Chat/pull/8924)) -- Displays QR code for manually entering when enabling 2fa ([#8143](https://github.com/RocketChat/Rocket.Chat/pull/8143)) - -- Facebook livechat integration ([#8807](https://github.com/RocketChat/Rocket.Chat/pull/8807)) - - Feature/livechat hide email ([#8149](https://github.com/RocketChat/Rocket.Chat/pull/8149) by [@icosamuel](https://github.com/icosamuel) & [@sarbasamuel](https://github.com/sarbasamuel)) -- Improve room types API and usages ([#9009](https://github.com/RocketChat/Rocket.Chat/pull/9009) by [@mrsimpson](https://github.com/mrsimpson)) +- Sender's name in email notifications. ([#7999](https://github.com/RocketChat/Rocket.Chat/pull/7999) by [@pkgodara](https://github.com/pkgodara)) -- Make Custom oauth accept nested usernameField ([#9066](https://github.com/RocketChat/Rocket.Chat/pull/9066) by [@pierreozoux](https://github.com/pierreozoux)) +- Add "real name change" setting ([#8739](https://github.com/RocketChat/Rocket.Chat/pull/8739) by [@AmShaegar13](https://github.com/AmShaegar13)) -- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362) by [@karlprieb](https://github.com/karlprieb)) +- Use enter separator rather than comma in highlight preferences + Auto refresh after change highlighted words ([#8433](https://github.com/RocketChat/Rocket.Chat/pull/8433) by [@cyclops24](https://github.com/cyclops24)) -- Modal ([#9092](https://github.com/RocketChat/Rocket.Chat/pull/9092) by [@karlprieb](https://github.com/karlprieb)) +- Adds admin option to globally set mobile devices to always be notified regardless of presence status. ([#7641](https://github.com/RocketChat/Rocket.Chat/pull/7641) by [@stalley](https://github.com/stalley)) -- New Modal component ([#8882](https://github.com/RocketChat/Rocket.Chat/pull/8882) by [@karlprieb](https://github.com/karlprieb)) +- Add new API endpoints ([#8947](https://github.com/RocketChat/Rocket.Chat/pull/8947)) - Option to enable/disable auto away and configure timer ([#8029](https://github.com/RocketChat/Rocket.Chat/pull/8029) by [@armand1m](https://github.com/armand1m)) -- Rest API endpoints to list, get, and run commands ([#8531](https://github.com/RocketChat/Rocket.Chat/pull/8531)) +- New Modal component ([#8882](https://github.com/RocketChat/Rocket.Chat/pull/8882) by [@karlprieb](https://github.com/karlprieb)) + +- Improve room types API and usages ([#9009](https://github.com/RocketChat/Rocket.Chat/pull/9009) by [@mrsimpson](https://github.com/mrsimpson)) - Room counter sidebar preference ([#8866](https://github.com/RocketChat/Rocket.Chat/pull/8866) by [@karlprieb](https://github.com/karlprieb)) - Save room's last message ([#8979](https://github.com/RocketChat/Rocket.Chat/pull/8979) by [@karlprieb](https://github.com/karlprieb)) +- Token Controlled Access channels ([#8060](https://github.com/RocketChat/Rocket.Chat/pull/8060) by [@karlprieb](https://github.com/karlprieb) & [@lindoelio](https://github.com/lindoelio)) + - Send category and title fields to iOS push notification ([#8905](https://github.com/RocketChat/Rocket.Chat/pull/8905)) -- Sender's name in email notifications. ([#7999](https://github.com/RocketChat/Rocket.Chat/pull/7999) by [@pkgodara](https://github.com/pkgodara)) +- code to get the updated messages ([#8857](https://github.com/RocketChat/Rocket.Chat/pull/8857)) + +- Rest API endpoints to list, get, and run commands ([#8531](https://github.com/RocketChat/Rocket.Chat/pull/8531)) + +- Upgrade Meteor to 1.6 ([#8715](https://github.com/RocketChat/Rocket.Chat/pull/8715) by [@karlprieb](https://github.com/karlprieb)) - Setting to disable MarkDown and enable AutoLinker ([#8459](https://github.com/RocketChat/Rocket.Chat/pull/8459)) -- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360) by [@karlprieb](https://github.com/karlprieb)) +- Add settings for allow user direct messages to yourself ([#8066](https://github.com/RocketChat/Rocket.Chat/pull/8066) by [@lindoelio](https://github.com/lindoelio)) -- Token Controlled Access channels ([#8060](https://github.com/RocketChat/Rocket.Chat/pull/8060) by [@karlprieb](https://github.com/karlprieb) & [@lindoelio](https://github.com/lindoelio)) +- Add sweet alert to video call tab ([#8108](https://github.com/RocketChat/Rocket.Chat/pull/8108)) + +- Displays QR code for manually entering when enabling 2fa ([#8143](https://github.com/RocketChat/Rocket.Chat/pull/8143)) - Unify unread and mentions badge ([#8361](https://github.com/RocketChat/Rocket.Chat/pull/8361) by [@karlprieb](https://github.com/karlprieb)) -- Upgrade Meteor to 1.6 ([#8715](https://github.com/RocketChat/Rocket.Chat/pull/8715) by [@karlprieb](https://github.com/karlprieb)) +- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362) by [@karlprieb](https://github.com/karlprieb)) -- Upgrade to meteor 1.5.2 ([#8073](https://github.com/RocketChat/Rocket.Chat/pull/8073)) +- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360) by [@karlprieb](https://github.com/karlprieb)) -- Use enter separator rather than comma in highlight preferences + Auto refresh after change highlighted words ([#8433](https://github.com/RocketChat/Rocket.Chat/pull/8433) by [@cyclops24](https://github.com/cyclops24)) +- Add RD Station integration to livechat ([#8304](https://github.com/RocketChat/Rocket.Chat/pull/8304)) -### 🐛 Bug fixes +- Upgrade to meteor 1.5.2 ([#8073](https://github.com/RocketChat/Rocket.Chat/pull/8073)) +- Add yunohost.org installation method to Readme.md ([#8037](https://github.com/RocketChat/Rocket.Chat/pull/8037) by [@selamanse](https://github.com/selamanse)) -- "*.members" rest api being useless and only returning usernames ([#8147](https://github.com/RocketChat/Rocket.Chat/pull/8147)) +- Modal ([#9092](https://github.com/RocketChat/Rocket.Chat/pull/9092) by [@karlprieb](https://github.com/karlprieb)) -- "Cancel button" on modal in RTL in Firefox 55 ([#8278](https://github.com/RocketChat/Rocket.Chat/pull/8278) by [@cyclops24](https://github.com/cyclops24)) +- Make Custom oauth accept nested usernameField ([#9066](https://github.com/RocketChat/Rocket.Chat/pull/9066) by [@pierreozoux](https://github.com/pierreozoux)) -- "Enter usernames" placeholder is cutting in "create channel" view ([#9194](https://github.com/RocketChat/Rocket.Chat/pull/9194) by [@TheReal1604](https://github.com/TheReal1604)) +### 🐛 Bug fixes -- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182) by [@karlprieb](https://github.com/karlprieb)) - **i18n:** My Profile & README.md links ([#8270](https://github.com/RocketChat/Rocket.Chat/pull/8270) by [@Rzeszow](https://github.com/Rzeszow)) - **PL:** Polish translation ([#7989](https://github.com/RocketChat/Rocket.Chat/pull/7989) by [@Rzeszow](https://github.com/Rzeszow)) -- Add admin audio preferences translations ([#8094](https://github.com/RocketChat/Rocket.Chat/pull/8094)) - -- Add historic chats icon in Livechat ([#8708](https://github.com/RocketChat/Rocket.Chat/pull/8708) by [@mrsimpson](https://github.com/mrsimpson)) +- Can't react on Read Only rooms even when enabled ([#8925](https://github.com/RocketChat/Rocket.Chat/pull/8925) by [@karlprieb](https://github.com/karlprieb)) -- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) +- CAS does not share secrets when operating multiple server instances ([#8654](https://github.com/RocketChat/Rocket.Chat/pull/8654) by [@AmShaegar13](https://github.com/AmShaegar13)) -- Add padding on messages to allow space to the action buttons ([#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971)) +- Snippetted messages not working ([#8937](https://github.com/RocketChat/Rocket.Chat/pull/8937) by [@karlprieb](https://github.com/karlprieb)) - Added afterUserCreated trigger after first CAS login ([#9022](https://github.com/RocketChat/Rocket.Chat/pull/9022) by [@AmShaegar13](https://github.com/AmShaegar13)) -- Adds default search text padding for emoji search ([#7878](https://github.com/RocketChat/Rocket.Chat/pull/7878) by [@gdelavald](https://github.com/gdelavald)) - -- After deleting the room, cache is not synchronizing ([#8314](https://github.com/RocketChat/Rocket.Chat/pull/8314) by [@szluohua](https://github.com/szluohua)) - -- AmazonS3: Quote file.name for ContentDisposition for files with commas ([#8593](https://github.com/RocketChat/Rocket.Chat/pull/8593) by [@xenithorb](https://github.com/xenithorb)) +- Notification is not sent when a video conference start ([#8828](https://github.com/RocketChat/Rocket.Chat/pull/8828) by [@deepseainside75](https://github.com/deepseainside75) & [@stefanoverducci](https://github.com/stefanoverducci)) -- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299) by [@karlprieb](https://github.com/karlprieb)) +- long filename overlaps cancel button in progress bar ([#8868](https://github.com/RocketChat/Rocket.Chat/pull/8868) by [@joesitton](https://github.com/joesitton)) -- API channel/group.members not sorting ([#8635](https://github.com/RocketChat/Rocket.Chat/pull/8635)) +- Changed oembedUrlWidget to prefer og:image and twitter:image over msapplication-TileImage ([#9012](https://github.com/RocketChat/Rocket.Chat/pull/9012) by [@wferris722](https://github.com/wferris722)) -- Attachment icons alignment in LTR and RTL ([#8271](https://github.com/RocketChat/Rocket.Chat/pull/8271) by [@cyclops24](https://github.com/cyclops24)) +- Update insecure moment.js dependency ([#9046](https://github.com/RocketChat/Rocket.Chat/pull/9046) by [@robbyoconnor](https://github.com/robbyoconnor)) -- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648) by [@karlprieb](https://github.com/karlprieb)) +- Custom OAuth: Not able to set different token place for routes ([#9034](https://github.com/RocketChat/Rocket.Chat/pull/9034)) -- Autoupdate of CSS does not work when using a prefix ([#8107](https://github.com/RocketChat/Rocket.Chat/pull/8107) by [@Darkneon](https://github.com/Darkneon)) +- Can't use OAuth login against a Rocket.Chat OAuth server ([#9044](https://github.com/RocketChat/Rocket.Chat/pull/9044)) -- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) by [@karlprieb](https://github.com/karlprieb)) +- Notification sound is not disabling when busy ([#9042](https://github.com/RocketChat/Rocket.Chat/pull/9042)) -- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) by [@karlprieb](https://github.com/karlprieb)) +- Use encodeURI in AmazonS3 contentDisposition file.name to prevent fail ([#9024](https://github.com/RocketChat/Rocket.Chat/pull/9024) by [@paulovitin](https://github.com/paulovitin)) -- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307) by [@karlprieb](https://github.com/karlprieb)) +- snap install by setting grpc package used by google/vision to 1.6.6 ([#9029](https://github.com/RocketChat/Rocket.Chat/pull/9029)) -- Can't react on Read Only rooms even when enabled ([#8925](https://github.com/RocketChat/Rocket.Chat/pull/8925) by [@karlprieb](https://github.com/karlprieb)) +- Enable CORS for Restivus ([#8671](https://github.com/RocketChat/Rocket.Chat/pull/8671) by [@mrsimpson](https://github.com/mrsimpson)) -- Can't use OAuth login against a Rocket.Chat OAuth server ([#9044](https://github.com/RocketChat/Rocket.Chat/pull/9044)) +- Importers failing when usernames exists but cases don't match and improve the importer framework's performance ([#8966](https://github.com/RocketChat/Rocket.Chat/pull/8966)) -- Cannot edit or delete custom sounds ([#8889](https://github.com/RocketChat/Rocket.Chat/pull/8889) by [@ccfang](https://github.com/ccfang)) +- Error when saving integration with symbol as only trigger ([#9023](https://github.com/RocketChat/Rocket.Chat/pull/9023)) -- CAS does not share secrets when operating multiple server instances ([#8654](https://github.com/RocketChat/Rocket.Chat/pull/8654) by [@AmShaegar13](https://github.com/AmShaegar13)) +- Sync of non existent field throws exception ([#8006](https://github.com/RocketChat/Rocket.Chat/pull/8006) by [@goiaba](https://github.com/goiaba)) -- Change old 'rocketbot' username to 'InternalHubot_Username' setting ([#8928](https://github.com/RocketChat/Rocket.Chat/pull/8928) by [@ramrami](https://github.com/ramrami)) +- Autoupdate of CSS does not work when using a prefix ([#8107](https://github.com/RocketChat/Rocket.Chat/pull/8107) by [@Darkneon](https://github.com/Darkneon)) -- Change the unread messages style ([#8883](https://github.com/RocketChat/Rocket.Chat/pull/8883) by [@karlprieb](https://github.com/karlprieb)) +- Contextual errors for this and RegExp declarations in IRC module ([#8656](https://github.com/RocketChat/Rocket.Chat/pull/8656) by [@Pharserror](https://github.com/Pharserror)) -- Changed all rocket.chat/docs/ to docs.rocket.chat/ ([#8588](https://github.com/RocketChat/Rocket.Chat/pull/8588) by [@RekkyRek](https://github.com/RekkyRek)) +- Wrong room counter name ([#9013](https://github.com/RocketChat/Rocket.Chat/pull/9013) by [@karlprieb](https://github.com/karlprieb)) -- Changed oembedUrlWidget to prefer og:image and twitter:image over msapplication-TileImage ([#9012](https://github.com/RocketChat/Rocket.Chat/pull/9012) by [@wferris722](https://github.com/wferris722)) +- Message-box autogrow flick ([#8932](https://github.com/RocketChat/Rocket.Chat/pull/8932) by [@karlprieb](https://github.com/karlprieb)) -- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168) by [@karlprieb](https://github.com/karlprieb)) +- Don't strip trailing slash on autolinker urls ([#8812](https://github.com/RocketChat/Rocket.Chat/pull/8812) by [@jwilkins](https://github.com/jwilkins)) -- Channel page error ([#9091](https://github.com/RocketChat/Rocket.Chat/pull/9091) by [@ggrish](https://github.com/ggrish)) +- Change the unread messages style ([#8883](https://github.com/RocketChat/Rocket.Chat/pull/8883) by [@karlprieb](https://github.com/karlprieb)) -- Chat box no longer auto-focuses when typing ([#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984)) +- Missing sidebar footer padding ([#8884](https://github.com/RocketChat/Rocket.Chat/pull/8884) by [@karlprieb](https://github.com/karlprieb)) -- Check attachments is defined before accessing first element ([#8295](https://github.com/RocketChat/Rocket.Chat/pull/8295) by [@Darkneon](https://github.com/Darkneon)) +- Long room announcement cut off ([#8907](https://github.com/RocketChat/Rocket.Chat/pull/8907) by [@karlprieb](https://github.com/karlprieb)) -- Check for mention-all permission in room scope ([#8931](https://github.com/RocketChat/Rocket.Chat/pull/8931)) +- DM email notifications always being sent regardless of account setting ([#8917](https://github.com/RocketChat/Rocket.Chat/pull/8917) by [@ashward](https://github.com/ashward)) -- Color reset when default value editor is different ([#8543](https://github.com/RocketChat/Rocket.Chat/pull/8543)) +- Typo Fix ([#8938](https://github.com/RocketChat/Rocket.Chat/pull/8938) by [@seangeleno](https://github.com/seangeleno)) -- Contextual errors for this and RegExp declarations in IRC module ([#8656](https://github.com/RocketChat/Rocket.Chat/pull/8656) by [@Pharserror](https://github.com/Pharserror)) +- Katex markdown link changed ([#8948](https://github.com/RocketChat/Rocket.Chat/pull/8948) by [@mritunjaygoutam12](https://github.com/mritunjaygoutam12)) -- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039) by [@karlprieb](https://github.com/karlprieb)) +- if ogImage exists use it over image in oembedUrlWidget ([#9000](https://github.com/RocketChat/Rocket.Chat/pull/9000) by [@satyapramodh](https://github.com/satyapramodh)) -- Creating channels on Firefox ([#9109](https://github.com/RocketChat/Rocket.Chat/pull/9109) by [@karlprieb](https://github.com/karlprieb)) +- Cannot edit or delete custom sounds ([#8889](https://github.com/RocketChat/Rocket.Chat/pull/8889) by [@ccfang](https://github.com/ccfang)) -- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185) by [@karlprieb](https://github.com/karlprieb)) +- Change old 'rocketbot' username to 'InternalHubot_Username' setting ([#8928](https://github.com/RocketChat/Rocket.Chat/pull/8928) by [@ramrami](https://github.com/ramrami)) -- Custom OAuth: Not able to set different token place for routes ([#9034](https://github.com/RocketChat/Rocket.Chat/pull/9034)) +- Link for channels are not rendering correctly ([#8985](https://github.com/RocketChat/Rocket.Chat/pull/8985) by [@karlprieb](https://github.com/karlprieb)) -- disabled katex tooltip on messageBox ([#8386](https://github.com/RocketChat/Rocket.Chat/pull/8386)) +- Xenforo [BD]API for 'user.user_id; instead of 'id' ([#8968](https://github.com/RocketChat/Rocket.Chat/pull/8968) by [@wesnspace](https://github.com/wesnspace)) -- DM email notifications always being sent regardless of account setting ([#8917](https://github.com/RocketChat/Rocket.Chat/pull/8917) by [@ashward](https://github.com/ashward)) +- flextab height on smaller screens ([#8994](https://github.com/RocketChat/Rocket.Chat/pull/8994) by [@karlprieb](https://github.com/karlprieb)) -- Do not block room while loading history ([#9121](https://github.com/RocketChat/Rocket.Chat/pull/9121)) +- Check for mention-all permission in room scope ([#8931](https://github.com/RocketChat/Rocket.Chat/pull/8931)) -- Do not send joinCode field to clients ([#8527](https://github.com/RocketChat/Rocket.Chat/pull/8527)) +- fix emoji package path so they show up correctly in browser ([#8822](https://github.com/RocketChat/Rocket.Chat/pull/8822) by [@ryoshimizu](https://github.com/ryoshimizu)) -- Document README.md. Drupal repo out of date ([#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) +- Set correct Twitter link ([#8830](https://github.com/RocketChat/Rocket.Chat/pull/8830) by [@jotafeldmann](https://github.com/jotafeldmann)) -- Don't strip trailing slash on autolinker urls ([#8812](https://github.com/RocketChat/Rocket.Chat/pull/8812) by [@jwilkins](https://github.com/jwilkins)) +- User email settings on DM ([#8810](https://github.com/RocketChat/Rocket.Chat/pull/8810) by [@karlprieb](https://github.com/karlprieb)) -- Double scroll on 'keyboard shortcuts' menu in sidepanel ([#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) by [@aditya19496](https://github.com/aditya19496)) +- i18n'd Resend_verification_mail, username_initials, upload avatar ([#8721](https://github.com/RocketChat/Rocket.Chat/pull/8721) by [@arungalva](https://github.com/arungalva)) -- Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) +- Username clipping on firefox ([#8716](https://github.com/RocketChat/Rocket.Chat/pull/8716) by [@karlprieb](https://github.com/karlprieb)) -- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101) by [@karlprieb](https://github.com/karlprieb)) +- Improved grammar and made it clearer to the user ([#8795](https://github.com/RocketChat/Rocket.Chat/pull/8795) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Email Subjects not being sent ([#8317](https://github.com/RocketChat/Rocket.Chat/pull/8317)) +- Show real name of current user at top of side nav if setting enabled ([#8718](https://github.com/RocketChat/Rocket.Chat/pull/8718) by [@alexbrazier](https://github.com/alexbrazier)) -- Email verification indicator added ([#7923](https://github.com/RocketChat/Rocket.Chat/pull/7923) by [@aditya19496](https://github.com/aditya19496)) +- Range Slider Value label has bug in RTL ([#8441](https://github.com/RocketChat/Rocket.Chat/pull/8441) by [@cyclops24](https://github.com/cyclops24)) -- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300) by [@karlprieb](https://github.com/karlprieb)) +- Add historic chats icon in Livechat ([#8708](https://github.com/RocketChat/Rocket.Chat/pull/8708) by [@mrsimpson](https://github.com/mrsimpson)) -- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186) by [@karlprieb](https://github.com/karlprieb)) +- Sort direct messages by full name if show real names setting enabled ([#8717](https://github.com/RocketChat/Rocket.Chat/pull/8717) by [@alexbrazier](https://github.com/alexbrazier)) -- Enable CORS for Restivus ([#8671](https://github.com/RocketChat/Rocket.Chat/pull/8671) by [@mrsimpson](https://github.com/mrsimpson)) +- Improving consistency of UX ([#8796](https://github.com/RocketChat/Rocket.Chat/pull/8796) by [@HammyHavoc](https://github.com/HammyHavoc)) -- encode filename in url to prevent links breaking ([#8551](https://github.com/RocketChat/Rocket.Chat/pull/8551) by [@joesitton](https://github.com/joesitton)) +- fixed some typos ([#8787](https://github.com/RocketChat/Rocket.Chat/pull/8787) by [@TheReal1604](https://github.com/TheReal1604)) -- Error when saving integration with symbol as only trigger ([#9023](https://github.com/RocketChat/Rocket.Chat/pull/9023)) +- Fix e-mail message forward ([#8645](https://github.com/RocketChat/Rocket.Chat/pull/8645)) -- Error when user roles is missing or is invalid ([#9040](https://github.com/RocketChat/Rocket.Chat/pull/9040) by [@paulovitin](https://github.com/paulovitin)) +- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648) by [@karlprieb](https://github.com/karlprieb)) -- Execute meteor reset on TRAVIS_TAG builds ([#8310](https://github.com/RocketChat/Rocket.Chat/pull/8310)) +- Highlighted color height issue ([#8431](https://github.com/RocketChat/Rocket.Chat/pull/8431) by [@cyclops24](https://github.com/cyclops24)) -- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206) by [@karlprieb](https://github.com/karlprieb)) +- AmazonS3: Quote file.name for ContentDisposition for files with commas ([#8593](https://github.com/RocketChat/Rocket.Chat/pull/8593) by [@xenithorb](https://github.com/xenithorb)) -- fix color on unread messages ([#8282](https://github.com/RocketChat/Rocket.Chat/pull/8282)) +- Update pt-BR translation ([#8655](https://github.com/RocketChat/Rocket.Chat/pull/8655) by [@rodorgas](https://github.com/rodorgas)) -- Fix e-mail message forward ([#8645](https://github.com/RocketChat/Rocket.Chat/pull/8645)) +- Fix typos ([#8679](https://github.com/RocketChat/Rocket.Chat/pull/8679)) -- Fix email on mention ([#7754](https://github.com/RocketChat/Rocket.Chat/pull/7754)) +- LDAP not respecting UTF8 characters & Sync Interval not working ([#8691](https://github.com/RocketChat/Rocket.Chat/pull/8691)) -- fix emoji package path so they show up correctly in browser ([#8822](https://github.com/RocketChat/Rocket.Chat/pull/8822) by [@ryoshimizu](https://github.com/ryoshimizu)) +- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637) by [@karlprieb](https://github.com/karlprieb)) -- Fix google play logo on repo README ([#7912](https://github.com/RocketChat/Rocket.Chat/pull/7912) by [@luizbills](https://github.com/luizbills)) +- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634) by [@karlprieb](https://github.com/karlprieb)) -- Fix guest pool inquiry taking ([#8577](https://github.com/RocketChat/Rocket.Chat/pull/8577)) +- API channel/group.members not sorting ([#8635](https://github.com/RocketChat/Rocket.Chat/pull/8635)) -- Fix iframe login API response (issue #8145) ([#8146](https://github.com/RocketChat/Rocket.Chat/pull/8146) by [@astax-t](https://github.com/astax-t)) +- LDAP not merging existent users && Wrong id link generation ([#8613](https://github.com/RocketChat/Rocket.Chat/pull/8613)) -- Fix livechat toggle UI issue ([#7904](https://github.com/RocketChat/Rocket.Chat/pull/7904)) +- encode filename in url to prevent links breaking ([#8551](https://github.com/RocketChat/Rocket.Chat/pull/8551) by [@joesitton](https://github.com/joesitton)) -- Fix placeholders in account profile ([#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) by [@josiasds](https://github.com/josiasds)) +- Fix guest pool inquiry taking ([#8577](https://github.com/RocketChat/Rocket.Chat/pull/8577)) -- Fix setting user avatar on LDAP login ([#8099](https://github.com/RocketChat/Rocket.Chat/pull/8099)) +- Changed all rocket.chat/docs/ to docs.rocket.chat/ ([#8588](https://github.com/RocketChat/Rocket.Chat/pull/8588) by [@RekkyRek](https://github.com/RekkyRek)) -- Fix the status on the members list ([#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963)) +- Color reset when default value editor is different ([#8543](https://github.com/RocketChat/Rocket.Chat/pull/8543)) -- Fix typos ([#8679](https://github.com/RocketChat/Rocket.Chat/pull/8679)) +- Wrong colors after migration 103 ([#8547](https://github.com/RocketChat/Rocket.Chat/pull/8547)) -- fixed some typos ([#8787](https://github.com/RocketChat/Rocket.Chat/pull/8787) by [@TheReal1604](https://github.com/TheReal1604)) +- LDAP login error regression at 0.59.0 ([#8541](https://github.com/RocketChat/Rocket.Chat/pull/8541)) -- flextab height on smaller screens ([#8994](https://github.com/RocketChat/Rocket.Chat/pull/8994) by [@karlprieb](https://github.com/karlprieb)) +- Migration 103 wrong converting primrary colors ([#8544](https://github.com/RocketChat/Rocket.Chat/pull/8544)) -- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172) by [@karlprieb](https://github.com/karlprieb)) +- Do not send joinCode field to clients ([#8527](https://github.com/RocketChat/Rocket.Chat/pull/8527)) -- Highlighted color height issue ([#8431](https://github.com/RocketChat/Rocket.Chat/pull/8431) by [@cyclops24](https://github.com/cyclops24)) +- Uncessary route reload break some routes ([#8514](https://github.com/RocketChat/Rocket.Chat/pull/8514)) -- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882) by [@karlprieb](https://github.com/karlprieb)) +- Invalid Code message for password protected channel ([#8491](https://github.com/RocketChat/Rocket.Chat/pull/8491)) -- i18n'd Resend_verification_mail, username_initials, upload avatar ([#8721](https://github.com/RocketChat/Rocket.Chat/pull/8721) by [@arungalva](https://github.com/arungalva)) +- Wrong message when reseting password and 2FA is enabled ([#8489](https://github.com/RocketChat/Rocket.Chat/pull/8489)) -- if ogImage exists use it over image in oembedUrlWidget ([#9000](https://github.com/RocketChat/Rocket.Chat/pull/9000) by [@satyapramodh](https://github.com/satyapramodh)) +- LDAP memory issues when pagination is not available ([#8457](https://github.com/RocketChat/Rocket.Chat/pull/8457)) -- Importers failing when usernames exists but cases don't match and improve the importer framework's performance ([#8966](https://github.com/RocketChat/Rocket.Chat/pull/8966)) +- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) -- Importers not recovering when an error occurs ([#9134](https://github.com/RocketChat/Rocket.Chat/pull/9134)) +- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) -- Improved grammar and made it clearer to the user ([#8795](https://github.com/RocketChat/Rocket.Chat/pull/8795) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Sidebar item menu position in RTL ([#8397](https://github.com/RocketChat/Rocket.Chat/pull/8397) by [@cyclops24](https://github.com/cyclops24)) -- Improving consistency of UX ([#8796](https://github.com/RocketChat/Rocket.Chat/pull/8796) by [@HammyHavoc](https://github.com/HammyHavoc)) +- disabled katex tooltip on messageBox ([#8386](https://github.com/RocketChat/Rocket.Chat/pull/8386)) -- Incorrect URL for login terms when using prefix ([#8211](https://github.com/RocketChat/Rocket.Chat/pull/8211) by [@Darkneon](https://github.com/Darkneon)) +- Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) -- Invalid Code message for password protected channel ([#8491](https://github.com/RocketChat/Rocket.Chat/pull/8491)) +- Various LDAP issues & Missing pagination ([#8372](https://github.com/RocketChat/Rocket.Chat/pull/8372)) -- Invisible leader bar on hover ([#8048](https://github.com/RocketChat/Rocket.Chat/pull/8048)) +- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358) by [@karlprieb](https://github.com/karlprieb)) -- Issue #8166 where empty analytics setting breaks to load Piwik script ([#8167](https://github.com/RocketChat/Rocket.Chat/pull/8167) by [@ruKurz](https://github.com/ruKurz)) +- Missing i18n translations ([#8357](https://github.com/RocketChat/Rocket.Chat/pull/8357)) -- Katex markdown link changed ([#8948](https://github.com/RocketChat/Rocket.Chat/pull/8948) by [@mritunjaygoutam12](https://github.com/mritunjaygoutam12)) +- After deleting the room, cache is not synchronizing ([#8314](https://github.com/RocketChat/Rocket.Chat/pull/8314) by [@szluohua](https://github.com/szluohua)) -- Last sent message reoccurs in textbox ([#9169](https://github.com/RocketChat/Rocket.Chat/pull/9169)) +- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334) by [@karlprieb](https://github.com/karlprieb)) -- LDAP login error regression at 0.59.0 ([#8541](https://github.com/RocketChat/Rocket.Chat/pull/8541)) +- Email Subjects not being sent ([#8317](https://github.com/RocketChat/Rocket.Chat/pull/8317)) -- LDAP memory issues when pagination is not available ([#8457](https://github.com/RocketChat/Rocket.Chat/pull/8457)) +- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315) by [@karlprieb](https://github.com/karlprieb)) -- LDAP not merging existent users && Wrong id link generation ([#8613](https://github.com/RocketChat/Rocket.Chat/pull/8613)) +- Mention unread indicator was removed ([#8316](https://github.com/RocketChat/Rocket.Chat/pull/8316)) -- LDAP not respecting UTF8 characters & Sync Interval not working ([#8691](https://github.com/RocketChat/Rocket.Chat/pull/8691)) +- Execute meteor reset on TRAVIS_TAG builds ([#8310](https://github.com/RocketChat/Rocket.Chat/pull/8310)) -- Link for channels are not rendering correctly ([#8985](https://github.com/RocketChat/Rocket.Chat/pull/8985) by [@karlprieb](https://github.com/karlprieb)) +- Wrong file name when upload to AWS S3 ([#8296](https://github.com/RocketChat/Rocket.Chat/pull/8296)) -- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886) by [@karlprieb](https://github.com/karlprieb)) +- TypeError: Cannot read property 't' of undefined ([#8298](https://github.com/RocketChat/Rocket.Chat/pull/8298)) -- long filename overlaps cancel button in progress bar ([#8868](https://github.com/RocketChat/Rocket.Chat/pull/8868) by [@joesitton](https://github.com/joesitton)) +- Check attachments is defined before accessing first element ([#8295](https://github.com/RocketChat/Rocket.Chat/pull/8295) by [@Darkneon](https://github.com/Darkneon)) -- Long room announcement cut off ([#8907](https://github.com/RocketChat/Rocket.Chat/pull/8907) by [@karlprieb](https://github.com/karlprieb)) +- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299) by [@karlprieb](https://github.com/karlprieb)) -- Made welcome emails more readable ([#9193](https://github.com/RocketChat/Rocket.Chat/pull/9193) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307) by [@karlprieb](https://github.com/karlprieb)) -- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922) by [@karlprieb](https://github.com/karlprieb)) +- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300) by [@karlprieb](https://github.com/karlprieb)) -- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@karlprieb](https://github.com/karlprieb) & [@vitor-nagao](https://github.com/vitor-nagao)) +- fix color on unread messages ([#8282](https://github.com/RocketChat/Rocket.Chat/pull/8282)) -- Makes text action menu width based on content size ([#7887](https://github.com/RocketChat/Rocket.Chat/pull/7887) by [@gdelavald](https://github.com/gdelavald)) +- Missing placeholder translations ([#8286](https://github.com/RocketChat/Rocket.Chat/pull/8286)) -- Markdown being rendered in code tags ([#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965)) +- "Cancel button" on modal in RTL in Firefox 55 ([#8278](https://github.com/RocketChat/Rocket.Chat/pull/8278) by [@cyclops24](https://github.com/cyclops24)) -- Mention unread indicator was removed ([#8316](https://github.com/RocketChat/Rocket.Chat/pull/8316)) +- Attachment icons alignment in LTR and RTL ([#8271](https://github.com/RocketChat/Rocket.Chat/pull/8271) by [@cyclops24](https://github.com/cyclops24)) -- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885) by [@karlprieb](https://github.com/karlprieb)) +- Incorrect URL for login terms when using prefix ([#8211](https://github.com/RocketChat/Rocket.Chat/pull/8211) by [@Darkneon](https://github.com/Darkneon)) -- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634) by [@karlprieb](https://github.com/karlprieb)) +- Scrollbar not using new style ([#8190](https://github.com/RocketChat/Rocket.Chat/pull/8190)) -- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019) by [@karlprieb](https://github.com/karlprieb)) +- User avatar in DM list. ([#8210](https://github.com/RocketChat/Rocket.Chat/pull/8210)) -- Message-box autogrow flick ([#8932](https://github.com/RocketChat/Rocket.Chat/pull/8932) by [@karlprieb](https://github.com/karlprieb)) +- Fix iframe login API response (issue #8145) ([#8146](https://github.com/RocketChat/Rocket.Chat/pull/8146) by [@astax-t](https://github.com/astax-t)) -- Migration 103 wrong converting primrary colors ([#8544](https://github.com/RocketChat/Rocket.Chat/pull/8544)) +- Issue #8166 where empty analytics setting breaks to load Piwik script ([#8167](https://github.com/RocketChat/Rocket.Chat/pull/8167) by [@ruKurz](https://github.com/ruKurz)) -- Missing i18n translations ([#8357](https://github.com/RocketChat/Rocket.Chat/pull/8357)) +- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154) by [@karlprieb](https://github.com/karlprieb)) -- Missing placeholder translations ([#8286](https://github.com/RocketChat/Rocket.Chat/pull/8286)) +- "*.members" rest api being useless and only returning usernames ([#8147](https://github.com/RocketChat/Rocket.Chat/pull/8147)) -- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637) by [@karlprieb](https://github.com/karlprieb)) +- Text area lost text when page reloads ([#8159](https://github.com/RocketChat/Rocket.Chat/pull/8159)) -- Missing sidebar footer padding ([#8884](https://github.com/RocketChat/Rocket.Chat/pull/8884) by [@karlprieb](https://github.com/karlprieb)) +- Add admin audio preferences translations ([#8094](https://github.com/RocketChat/Rocket.Chat/pull/8094)) -- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171) by [@karlprieb](https://github.com/karlprieb)) +- RTL ([#8112](https://github.com/RocketChat/Rocket.Chat/pull/8112)) -- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243) by [@karlprieb](https://github.com/karlprieb)) +- Settings description not showing ([#8122](https://github.com/RocketChat/Rocket.Chat/pull/8122)) - Not sending email to mentioned users with unchanged preference ([#8059](https://github.com/RocketChat/Rocket.Chat/pull/8059)) -- Notification is not sent when a video conference start ([#8828](https://github.com/RocketChat/Rocket.Chat/pull/8828) by [@deepseainside75](https://github.com/deepseainside75) & [@stefanoverducci](https://github.com/stefanoverducci)) - -- Notification sound is not disabling when busy ([#9042](https://github.com/RocketChat/Rocket.Chat/pull/9042)) +- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101) by [@karlprieb](https://github.com/karlprieb)) -- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) by [@karlprieb](https://github.com/karlprieb)) +- Fix setting user avatar on LDAP login ([#8099](https://github.com/RocketChat/Rocket.Chat/pull/8099)) -- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883) by [@karlprieb](https://github.com/karlprieb)) +- Scroll on messagebox ([#8047](https://github.com/RocketChat/Rocket.Chat/pull/8047)) -- Prevent autotranslate tokens race condition ([#8046](https://github.com/RocketChat/Rocket.Chat/pull/8046)) +- Invisible leader bar on hover ([#8048](https://github.com/RocketChat/Rocket.Chat/pull/8048)) -- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315) by [@karlprieb](https://github.com/karlprieb)) +- Fix email on mention ([#7754](https://github.com/RocketChat/Rocket.Chat/pull/7754)) -- Range Slider Value label has bug in RTL ([#8441](https://github.com/RocketChat/Rocket.Chat/pull/8441) by [@cyclops24](https://github.com/cyclops24)) +- Prevent autotranslate tokens race condition ([#8046](https://github.com/RocketChat/Rocket.Chat/pull/8046)) -- Recent emojis not updated when adding via text ([#7998](https://github.com/RocketChat/Rocket.Chat/pull/7998)) +- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988) by [@karlprieb](https://github.com/karlprieb)) -- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358) by [@karlprieb](https://github.com/karlprieb)) +- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019) by [@karlprieb](https://github.com/karlprieb)) -- Remove break change in Realtime API ([#7895](https://github.com/RocketChat/Rocket.Chat/pull/7895)) +- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039) by [@karlprieb](https://github.com/karlprieb)) -- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334) by [@karlprieb](https://github.com/karlprieb)) +- Recent emojis not updated when adding via text ([#7998](https://github.com/RocketChat/Rocket.Chat/pull/7998)) -- REST API file upload not respecting size limit ([#9108](https://github.com/RocketChat/Rocket.Chat/pull/9108)) +- Chat box no longer auto-focuses when typing ([#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984)) -- RTL ([#8112](https://github.com/RocketChat/Rocket.Chat/pull/8112)) +- Fix the status on the members list ([#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963)) -- Scroll on messagebox ([#8047](https://github.com/RocketChat/Rocket.Chat/pull/8047)) +- Markdown being rendered in code tags ([#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965)) -- Scrollbar not using new style ([#8190](https://github.com/RocketChat/Rocket.Chat/pull/8190)) +- Email verification indicator added ([#7923](https://github.com/RocketChat/Rocket.Chat/pull/7923) by [@aditya19496](https://github.com/aditya19496)) -- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881) by [@karlprieb](https://github.com/karlprieb)) +- Show leader on first load ([#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) by [@danischreiber](https://github.com/danischreiber)) -- Set correct Twitter link ([#8830](https://github.com/RocketChat/Rocket.Chat/pull/8830) by [@jotafeldmann](https://github.com/jotafeldmann)) +- Add padding on messages to allow space to the action buttons ([#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971)) -- Settings description not showing ([#8122](https://github.com/RocketChat/Rocket.Chat/pull/8122)) +- Small alignment fixes ([#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970)) -- Show leader on first load ([#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) by [@danischreiber](https://github.com/danischreiber)) +- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) by [@karlprieb](https://github.com/karlprieb)) -- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241) by [@karlprieb](https://github.com/karlprieb)) +- Document README.md. Drupal repo out of date ([#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) -- show oauth logins when adblock is used ([#9170](https://github.com/RocketChat/Rocket.Chat/pull/9170) by [@karlprieb](https://github.com/karlprieb)) +- Double scroll on 'keyboard shortcuts' menu in sidepanel ([#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) by [@aditya19496](https://github.com/aditya19496)) -- Show real name of current user at top of side nav if setting enabled ([#8718](https://github.com/RocketChat/Rocket.Chat/pull/8718) by [@alexbrazier](https://github.com/alexbrazier)) +- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) by [@karlprieb](https://github.com/karlprieb)) -- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154) by [@karlprieb](https://github.com/karlprieb)) +- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) by [@karlprieb](https://github.com/karlprieb)) -- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888) by [@karlprieb](https://github.com/karlprieb)) +- Fix placeholders in account profile ([#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) by [@josiasds](https://github.com/josiasds)) -- Sidebar item menu position in RTL ([#8397](https://github.com/RocketChat/Rocket.Chat/pull/8397) by [@cyclops24](https://github.com/cyclops24)) +- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) by [@karlprieb](https://github.com/karlprieb)) -- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880) by [@karlprieb](https://github.com/karlprieb)) +- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) by [@karlprieb](https://github.com/karlprieb)) -- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) +- Fix google play logo on repo README ([#7912](https://github.com/RocketChat/Rocket.Chat/pull/7912) by [@luizbills](https://github.com/luizbills)) -- Small alignment fixes ([#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970)) +- Fix livechat toggle UI issue ([#7904](https://github.com/RocketChat/Rocket.Chat/pull/7904)) -- snap install by setting grpc package used by google/vision to 1.6.6 ([#9029](https://github.com/RocketChat/Rocket.Chat/pull/9029)) +- Remove break change in Realtime API ([#7895](https://github.com/RocketChat/Rocket.Chat/pull/7895)) -- Snippetted messages not working ([#8937](https://github.com/RocketChat/Rocket.Chat/pull/8937) by [@karlprieb](https://github.com/karlprieb)) +- Window exception when parsing Markdown on server ([#7893](https://github.com/RocketChat/Rocket.Chat/pull/7893)) -- Some UI problems on 0.60 ([#9095](https://github.com/RocketChat/Rocket.Chat/pull/9095) by [@karlprieb](https://github.com/karlprieb)) +- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888) by [@karlprieb](https://github.com/karlprieb)) -- Sort direct messages by full name if show real names setting enabled ([#8717](https://github.com/RocketChat/Rocket.Chat/pull/8717) by [@alexbrazier](https://github.com/alexbrazier)) +- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882) by [@karlprieb](https://github.com/karlprieb)) -- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) by [@karlprieb](https://github.com/karlprieb)) +- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886) by [@karlprieb](https://github.com/karlprieb)) -- Sync of non existent field throws exception ([#8006](https://github.com/RocketChat/Rocket.Chat/pull/8006) by [@goiaba](https://github.com/goiaba)) +- Makes text action menu width based on content size ([#7887](https://github.com/RocketChat/Rocket.Chat/pull/7887) by [@gdelavald](https://github.com/gdelavald)) -- Text area lost text when page reloads ([#8159](https://github.com/RocketChat/Rocket.Chat/pull/8159)) +- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885) by [@karlprieb](https://github.com/karlprieb)) -- TypeError: Cannot read property 't' of undefined ([#8298](https://github.com/RocketChat/Rocket.Chat/pull/8298)) +- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883) by [@karlprieb](https://github.com/karlprieb)) -- Typo Fix ([#8938](https://github.com/RocketChat/Rocket.Chat/pull/8938) by [@seangeleno](https://github.com/seangeleno)) +- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881) by [@karlprieb](https://github.com/karlprieb)) -- Uncessary route reload break some routes ([#8514](https://github.com/RocketChat/Rocket.Chat/pull/8514)) +- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880) by [@karlprieb](https://github.com/karlprieb)) -- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188) by [@karlprieb](https://github.com/karlprieb)) +- Adds default search text padding for emoji search ([#7878](https://github.com/RocketChat/Rocket.Chat/pull/7878) by [@gdelavald](https://github.com/gdelavald)) -- Update insecure moment.js dependency ([#9046](https://github.com/RocketChat/Rocket.Chat/pull/9046) by [@robbyoconnor](https://github.com/robbyoconnor)) +- REST API file upload not respecting size limit ([#9108](https://github.com/RocketChat/Rocket.Chat/pull/9108)) -- Update pt-BR translation ([#8655](https://github.com/RocketChat/Rocket.Chat/pull/8655) by [@rodorgas](https://github.com/rodorgas)) +- Creating channels on Firefox ([#9109](https://github.com/RocketChat/Rocket.Chat/pull/9109) by [@karlprieb](https://github.com/karlprieb)) -- Update Rocket.Chat for sandstorm ([#9062](https://github.com/RocketChat/Rocket.Chat/pull/9062) by [@peterlee0127](https://github.com/peterlee0127)) +- Some UI problems on 0.60 ([#9095](https://github.com/RocketChat/Rocket.Chat/pull/9095) by [@karlprieb](https://github.com/karlprieb)) - Update rocketchat:streamer to be compatible with previous version ([#9094](https://github.com/RocketChat/Rocket.Chat/pull/9094)) -- Use encodeURI in AmazonS3 contentDisposition file.name to prevent fail ([#9024](https://github.com/RocketChat/Rocket.Chat/pull/9024) by [@paulovitin](https://github.com/paulovitin)) +- Importers not recovering when an error occurs ([#9134](https://github.com/RocketChat/Rocket.Chat/pull/9134)) -- User avatar in DM list. ([#8210](https://github.com/RocketChat/Rocket.Chat/pull/8210)) +- Do not block room while loading history ([#9121](https://github.com/RocketChat/Rocket.Chat/pull/9121)) -- User email settings on DM ([#8810](https://github.com/RocketChat/Rocket.Chat/pull/8810) by [@karlprieb](https://github.com/karlprieb)) +- Channel page error ([#9091](https://github.com/RocketChat/Rocket.Chat/pull/9091) by [@ggrish](https://github.com/ggrish)) -- Username clipping on firefox ([#8716](https://github.com/RocketChat/Rocket.Chat/pull/8716) by [@karlprieb](https://github.com/karlprieb)) +- Update Rocket.Chat for sandstorm ([#9062](https://github.com/RocketChat/Rocket.Chat/pull/9062) by [@peterlee0127](https://github.com/peterlee0127)) -- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) by [@karlprieb](https://github.com/karlprieb)) +- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171) by [@karlprieb](https://github.com/karlprieb)) -- Various LDAP issues & Missing pagination ([#8372](https://github.com/RocketChat/Rocket.Chat/pull/8372)) +- show oauth logins when adblock is used ([#9170](https://github.com/RocketChat/Rocket.Chat/pull/9170) by [@karlprieb](https://github.com/karlprieb)) -- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988) by [@karlprieb](https://github.com/karlprieb)) +- Last sent message reoccurs in textbox ([#9169](https://github.com/RocketChat/Rocket.Chat/pull/9169)) -- Window exception when parsing Markdown on server ([#7893](https://github.com/RocketChat/Rocket.Chat/pull/7893)) +- Made welcome emails more readable ([#9193](https://github.com/RocketChat/Rocket.Chat/pull/9193) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Wrong colors after migration 103 ([#8547](https://github.com/RocketChat/Rocket.Chat/pull/8547)) +- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188) by [@karlprieb](https://github.com/karlprieb)) -- Wrong file name when upload to AWS S3 ([#8296](https://github.com/RocketChat/Rocket.Chat/pull/8296)) +- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186) by [@karlprieb](https://github.com/karlprieb)) -- Wrong message when reseting password and 2FA is enabled ([#8489](https://github.com/RocketChat/Rocket.Chat/pull/8489)) +- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185) by [@karlprieb](https://github.com/karlprieb)) -- Wrong room counter name ([#9013](https://github.com/RocketChat/Rocket.Chat/pull/9013) by [@karlprieb](https://github.com/karlprieb)) +- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182) by [@karlprieb](https://github.com/karlprieb)) -- Xenforo [BD]API for 'user.user_id; instead of 'id' ([#8968](https://github.com/RocketChat/Rocket.Chat/pull/8968) by [@wesnspace](https://github.com/wesnspace)) +- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@karlprieb](https://github.com/karlprieb) & [@vitor-nagao](https://github.com/vitor-nagao)) -
-🔍 Minor changes +- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172) by [@karlprieb](https://github.com/karlprieb)) +- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168) by [@karlprieb](https://github.com/karlprieb)) -- [DOCS] Add native mobile app links into README and update button images ([#7909](https://github.com/RocketChat/Rocket.Chat/pull/7909) by [@rafaelks](https://github.com/rafaelks)) +- Error when user roles is missing or is invalid ([#9040](https://github.com/RocketChat/Rocket.Chat/pull/9040) by [@paulovitin](https://github.com/paulovitin)) -- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331) by [@karlprieb](https://github.com/karlprieb)) +- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922) by [@karlprieb](https://github.com/karlprieb)) -- [Fix] Store Outgoing Integration Result as String in Mongo ([#8413](https://github.com/RocketChat/Rocket.Chat/pull/8413) by [@cpitman](https://github.com/cpitman)) +- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241) by [@karlprieb](https://github.com/karlprieb)) -- [MOVE] Move archiveroom command to client/server folders ([#8140](https://github.com/RocketChat/Rocket.Chat/pull/8140) by [@vcapretz](https://github.com/vcapretz)) +- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206) by [@karlprieb](https://github.com/karlprieb)) -- [MOVE] Move create command to client/server folder ([#8139](https://github.com/RocketChat/Rocket.Chat/pull/8139) by [@vcapretz](https://github.com/vcapretz)) +- "Enter usernames" placeholder is cutting in "create channel" view ([#9194](https://github.com/RocketChat/Rocket.Chat/pull/9194) by [@TheReal1604](https://github.com/TheReal1604)) -- [MOVE] Move favico to client folder ([#8077](https://github.com/RocketChat/Rocket.Chat/pull/8077) by [@vcapretz](https://github.com/vcapretz)) +- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243) by [@karlprieb](https://github.com/karlprieb)) -- [MOVE] Move files from emojione to client/server folders ([#8078](https://github.com/RocketChat/Rocket.Chat/pull/8078) by [@vcapretz](https://github.com/vcapretz)) +
+🔍 Minor changes -- [MOVE] Move files from slashcommands-unarchive to client/server folders ([#8084](https://github.com/RocketChat/Rocket.Chat/pull/8084) by [@vcapretz](https://github.com/vcapretz)) -- [MOVE] Move invite command to client/server folder ([#8138](https://github.com/RocketChat/Rocket.Chat/pull/8138) by [@vcapretz](https://github.com/vcapretz)) +- Release 0.60.0 ([#9259](https://github.com/RocketChat/Rocket.Chat/pull/9259)) -- [MOVE] Move inviteall command to client/server folder ([#8137](https://github.com/RocketChat/Rocket.Chat/pull/8137) by [@vcapretz](https://github.com/vcapretz)) +- Fix tag build ([#9084](https://github.com/RocketChat/Rocket.Chat/pull/9084)) -- [MOVE] Move join command to client/server folder ([#8136](https://github.com/RocketChat/Rocket.Chat/pull/8136) by [@vcapretz](https://github.com/vcapretz)) +- Turn off prettyJson if the node environment isn't development ([#9068](https://github.com/RocketChat/Rocket.Chat/pull/9068)) -- [MOVE] Move kick command to client/server folders ([#8135](https://github.com/RocketChat/Rocket.Chat/pull/8135) by [@vcapretz](https://github.com/vcapretz)) +- Fix api regression (exception when deleting user) ([#9049](https://github.com/RocketChat/Rocket.Chat/pull/9049)) -- [MOVE] Move logger files to client/server folders ([#8150](https://github.com/RocketChat/Rocket.Chat/pull/8150) by [@vcapretz](https://github.com/vcapretz)) +- Use real names for user and room in emails ([#7922](https://github.com/RocketChat/Rocket.Chat/pull/7922) by [@danischreiber](https://github.com/danischreiber)) - [MOVE] Move mentions files to client/server ([#8142](https://github.com/RocketChat/Rocket.Chat/pull/8142) by [@vcapretz](https://github.com/vcapretz)) -- [MOVE] Move slackbridge to client/server folders ([#8141](https://github.com/RocketChat/Rocket.Chat/pull/8141) by [@vcapretz](https://github.com/vcapretz)) +- Update multiple-instance-status package ([#9018](https://github.com/RocketChat/Rocket.Chat/pull/9018)) -- [MOVE] Move slashcommands-open to client folder ([#8132](https://github.com/RocketChat/Rocket.Chat/pull/8132) by [@vcapretz](https://github.com/vcapretz)) +- Use redhat official image with openshift ([#9007](https://github.com/RocketChat/Rocket.Chat/pull/9007)) -- [MOVE] Move timesync files to client/server folders ([#8152](https://github.com/RocketChat/Rocket.Chat/pull/8152) by [@vcapretz](https://github.com/vcapretz)) +- Added d2c.io to deployment ([#8975](https://github.com/RocketChat/Rocket.Chat/pull/8975) by [@mastappl](https://github.com/mastappl)) -- Add a few dots in readme.md ([#8906](https://github.com/RocketChat/Rocket.Chat/pull/8906) by [@dusta](https://github.com/dusta)) +- LingoHub based on develop ([#8831](https://github.com/RocketChat/Rocket.Chat/pull/8831)) -- Add curl, its missing on worker nodes so has to be explicitly added ([#9248](https://github.com/RocketChat/Rocket.Chat/pull/9248)) +- Fix snap download url ([#8981](https://github.com/RocketChat/Rocket.Chat/pull/8981)) -- Add i18n Title to snippet messages ([#8394](https://github.com/RocketChat/Rocket.Chat/pull/8394)) +- Add a few dots in readme.md ([#8906](https://github.com/RocketChat/Rocket.Chat/pull/8906) by [@dusta](https://github.com/dusta)) -- Added d2c.io to deployment ([#8975](https://github.com/RocketChat/Rocket.Chat/pull/8975) by [@mastappl](https://github.com/mastappl)) +- Changed wording for "Maximum Allowed Message Size" ([#8872](https://github.com/RocketChat/Rocket.Chat/pull/8872) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Added RocketChatLauncher (SaaS) ([#6606](https://github.com/RocketChat/Rocket.Chat/pull/6606) by [@designgurudotorg](https://github.com/designgurudotorg)) +- Fix Docker image build ([#8862](https://github.com/RocketChat/Rocket.Chat/pull/8862)) -- Adding: How to Install in WeDeploy ([#8036](https://github.com/RocketChat/Rocket.Chat/pull/8036) by [@thompsonemerson](https://github.com/thompsonemerson)) +- Fix link to .asc file on S3 ([#8829](https://github.com/RocketChat/Rocket.Chat/pull/8829)) - Bump version to 0.60.0-develop ([#8820](https://github.com/RocketChat/Rocket.Chat/pull/8820) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Change artifact path ([#8515](https://github.com/RocketChat/Rocket.Chat/pull/8515)) +- Update path for s3 redirect in circle ci ([#8819](https://github.com/RocketChat/Rocket.Chat/pull/8819)) -- Changed wording for "Maximum Allowed Message Size" ([#8872](https://github.com/RocketChat/Rocket.Chat/pull/8872) by [@HammyHavoc](https://github.com/HammyHavoc)) +- Remove chatops package ([#8742](https://github.com/RocketChat/Rocket.Chat/pull/8742)) -- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463) by [@karlprieb](https://github.com/karlprieb)) +- Removed tmeasday:crypto-md5 ([#8743](https://github.com/RocketChat/Rocket.Chat/pull/8743)) -- Dependencies Update ([#9197](https://github.com/RocketChat/Rocket.Chat/pull/9197)) +- Update meteor package to 1.8.1 ([#8802](https://github.com/RocketChat/Rocket.Chat/pull/8802)) -- Deps update ([#8273](https://github.com/RocketChat/Rocket.Chat/pull/8273)) +- Fix typo ([#8705](https://github.com/RocketChat/Rocket.Chat/pull/8705) by [@rmetzler](https://github.com/rmetzler)) -- Develop sync ([#7866](https://github.com/RocketChat/Rocket.Chat/pull/7866)) +- [Fix] Store Outgoing Integration Result as String in Mongo ([#8413](https://github.com/RocketChat/Rocket.Chat/pull/8413) by [@cpitman](https://github.com/cpitman)) -- Do not change room icon color when room is unread ([#9257](https://github.com/RocketChat/Rocket.Chat/pull/9257)) +- Update DEMO to OPEN links ([#8793](https://github.com/RocketChat/Rocket.Chat/pull/8793)) -- Enable AutoLinker back ([#8490](https://github.com/RocketChat/Rocket.Chat/pull/8490)) +- Fix Travis CI build ([#8750](https://github.com/RocketChat/Rocket.Chat/pull/8750)) -- Fix api regression (exception when deleting user) ([#9049](https://github.com/RocketChat/Rocket.Chat/pull/9049)) +- Updated comments. ([#8719](https://github.com/RocketChat/Rocket.Chat/pull/8719) by [@jasonjyu](https://github.com/jasonjyu)) + +- removing a duplicate line ([#8434](https://github.com/RocketChat/Rocket.Chat/pull/8434) by [@vikaskedia](https://github.com/vikaskedia)) + +- install grpc package manually to fix snap armhf build ([#8653](https://github.com/RocketChat/Rocket.Chat/pull/8653)) - Fix community links in readme ([#8589](https://github.com/RocketChat/Rocket.Chat/pull/8589)) -- Fix Docker image build ([#8862](https://github.com/RocketChat/Rocket.Chat/pull/8862)) +- Improve room sync speed ([#8529](https://github.com/RocketChat/Rocket.Chat/pull/8529)) - Fix high CPU load when sending messages on large rooms (regression) ([#8520](https://github.com/RocketChat/Rocket.Chat/pull/8520)) -- Fix link to .asc file on S3 ([#8829](https://github.com/RocketChat/Rocket.Chat/pull/8829)) +- Change artifact path ([#8515](https://github.com/RocketChat/Rocket.Chat/pull/8515)) -- Fix more rtl issues ([#8194](https://github.com/RocketChat/Rocket.Chat/pull/8194) by [@karlprieb](https://github.com/karlprieb)) +- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463) by [@karlprieb](https://github.com/karlprieb)) -- Fix regression in api channels.members ([#9110](https://github.com/RocketChat/Rocket.Chat/pull/9110)) +- Fix: Change password not working in new UI ([#8516](https://github.com/RocketChat/Rocket.Chat/pull/8516)) -- Fix snap download url ([#8981](https://github.com/RocketChat/Rocket.Chat/pull/8981)) +- Enable AutoLinker back ([#8490](https://github.com/RocketChat/Rocket.Chat/pull/8490)) -- Fix tag build ([#9084](https://github.com/RocketChat/Rocket.Chat/pull/9084)) +- Improve markdown parser code ([#8451](https://github.com/RocketChat/Rocket.Chat/pull/8451)) -- Fix test without oplog by waiting a successful login on changing users ([#9146](https://github.com/RocketChat/Rocket.Chat/pull/9146)) +- [MOVE] Move favico to client folder ([#8077](https://github.com/RocketChat/Rocket.Chat/pull/8077) by [@vcapretz](https://github.com/vcapretz)) -- Fix Travis CI build ([#8750](https://github.com/RocketChat/Rocket.Chat/pull/8750)) +- [MOVE] Move files from emojione to client/server folders ([#8078](https://github.com/RocketChat/Rocket.Chat/pull/8078) by [@vcapretz](https://github.com/vcapretz)) -- Fix typo ([#8705](https://github.com/RocketChat/Rocket.Chat/pull/8705) by [@rmetzler](https://github.com/rmetzler)) +- [MOVE] Move files from slashcommands-unarchive to client/server folders ([#8084](https://github.com/RocketChat/Rocket.Chat/pull/8084) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416) by [@karlprieb](https://github.com/karlprieb)) +- [MOVE] Move slashcommands-open to client folder ([#8132](https://github.com/RocketChat/Rocket.Chat/pull/8132) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Can’t login using LDAP via REST ([#9162](https://github.com/RocketChat/Rocket.Chat/pull/9162)) +- [MOVE] Move kick command to client/server folders ([#8135](https://github.com/RocketChat/Rocket.Chat/pull/8135) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Change password not working in new UI ([#8516](https://github.com/RocketChat/Rocket.Chat/pull/8516)) +- [MOVE] Move join command to client/server folder ([#8136](https://github.com/RocketChat/Rocket.Chat/pull/8136) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Clear all unreads modal not closing after confirming ([#9137](https://github.com/RocketChat/Rocket.Chat/pull/9137)) +- [MOVE] Move inviteall command to client/server folder ([#8137](https://github.com/RocketChat/Rocket.Chat/pull/8137) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Click on channel name - hover area bigger than link area ([#9165](https://github.com/RocketChat/Rocket.Chat/pull/9165)) +- [MOVE] Move invite command to client/server folder ([#8138](https://github.com/RocketChat/Rocket.Chat/pull/8138) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Confirmation modals showing `Send` button ([#9136](https://github.com/RocketChat/Rocket.Chat/pull/9136)) +- [MOVE] Move create command to client/server folder ([#8139](https://github.com/RocketChat/Rocket.Chat/pull/8139) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Message action quick buttons drops if "new message" divider is being shown ([#9138](https://github.com/RocketChat/Rocket.Chat/pull/9138)) +- [MOVE] Move archiveroom command to client/server folders ([#8140](https://github.com/RocketChat/Rocket.Chat/pull/8140) by [@vcapretz](https://github.com/vcapretz)) -- Fix: Messages being displayed in reverse order ([#9144](https://github.com/RocketChat/Rocket.Chat/pull/9144)) +- [MOVE] Move slackbridge to client/server folders ([#8141](https://github.com/RocketChat/Rocket.Chat/pull/8141) by [@vcapretz](https://github.com/vcapretz)) + +- [MOVE] Move logger files to client/server folders ([#8150](https://github.com/RocketChat/Rocket.Chat/pull/8150) by [@vcapretz](https://github.com/vcapretz)) + +- [MOVE] Move timesync files to client/server folders ([#8152](https://github.com/RocketChat/Rocket.Chat/pull/8152) by [@vcapretz](https://github.com/vcapretz)) + +- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416) by [@karlprieb](https://github.com/karlprieb)) - Fix: Missing LDAP option to show internal logs ([#8417](https://github.com/RocketChat/Rocket.Chat/pull/8417)) - Fix: Missing LDAP reconnect setting ([#8414](https://github.com/RocketChat/Rocket.Chat/pull/8414)) -- Fix: Missing option to set user's avatar from a url ([#9229](https://github.com/RocketChat/Rocket.Chat/pull/9229)) +- Add i18n Title to snippet messages ([#8394](https://github.com/RocketChat/Rocket.Chat/pull/8394)) - Fix: Missing settings to configure LDAP size and page limits ([#8398](https://github.com/RocketChat/Rocket.Chat/pull/8398)) -- Fix: Multiple unread indicators ([#9120](https://github.com/RocketChat/Rocket.Chat/pull/9120)) +- LingoHub based on develop ([#8375](https://github.com/RocketChat/Rocket.Chat/pull/8375)) -- Fix: Rooms and users are using different avatar style ([#9196](https://github.com/RocketChat/Rocket.Chat/pull/9196)) +- Update Meteor to 1.5.2.2 ([#8364](https://github.com/RocketChat/Rocket.Chat/pull/8364)) -- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247) by [@karlprieb](https://github.com/karlprieb)) +- Sync translations from LingoHub ([#8363](https://github.com/RocketChat/Rocket.Chat/pull/8363)) -- Fix: Snippet name to not showing in snippet list ([#9184](https://github.com/RocketChat/Rocket.Chat/pull/9184) by [@karlprieb](https://github.com/karlprieb)) +- Remove field `lastActivity` from subscription data ([#8345](https://github.com/RocketChat/Rocket.Chat/pull/8345)) -- Fix: UI: Descenders of glyphs are cut off ([#9166](https://github.com/RocketChat/Rocket.Chat/pull/9166)) +- Update meteor to 1.5.2.2-rc.0 ([#8355](https://github.com/RocketChat/Rocket.Chat/pull/8355)) -- Fix: UI: Descenders of glyphs are cut off ([#9181](https://github.com/RocketChat/Rocket.Chat/pull/9181)) +- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331) by [@karlprieb](https://github.com/karlprieb)) -- Fix: Unneeded warning in payload of REST API calls ([#9240](https://github.com/RocketChat/Rocket.Chat/pull/9240)) +- Deps update ([#8273](https://github.com/RocketChat/Rocket.Chat/pull/8273)) -- Fix: Unread line ([#9149](https://github.com/RocketChat/Rocket.Chat/pull/9149)) +- Fix more rtl issues ([#8194](https://github.com/RocketChat/Rocket.Chat/pull/8194) by [@karlprieb](https://github.com/karlprieb)) -- Fix: updating last message on message edit or delete ([#9227](https://github.com/RocketChat/Rocket.Chat/pull/9227)) +- npm deps update ([#8197](https://github.com/RocketChat/Rocket.Chat/pull/8197)) -- Fix: Upload access control too distributed ([#9215](https://github.com/RocketChat/Rocket.Chat/pull/9215)) +- Remove unnecessary returns in cors common ([#8054](https://github.com/RocketChat/Rocket.Chat/pull/8054) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Fix: Username find is matching partially ([#9217](https://github.com/RocketChat/Rocket.Chat/pull/9217)) +- Adding: How to Install in WeDeploy ([#8036](https://github.com/RocketChat/Rocket.Chat/pull/8036) by [@thompsonemerson](https://github.com/thompsonemerson)) -- Fix: users listed as online after API login ([#9111](https://github.com/RocketChat/Rocket.Chat/pull/9111)) +- Revert "npm deps update" ([#7983](https://github.com/RocketChat/Rocket.Chat/pull/7983)) -- Fix/api me only return verified ([#9183](https://github.com/RocketChat/Rocket.Chat/pull/9183)) +- [DOCS] Add native mobile app links into README and update button images ([#7909](https://github.com/RocketChat/Rocket.Chat/pull/7909) by [@rafaelks](https://github.com/rafaelks)) + +- npm deps update ([#7969](https://github.com/RocketChat/Rocket.Chat/pull/7969)) + +- Update BlackDuck URL ([#7941](https://github.com/RocketChat/Rocket.Chat/pull/7941)) - Hide flex-tab close button ([#7894](https://github.com/RocketChat/Rocket.Chat/pull/7894) by [@karlprieb](https://github.com/karlprieb)) -- Improve markdown parser code ([#8451](https://github.com/RocketChat/Rocket.Chat/pull/8451)) +- Added RocketChatLauncher (SaaS) ([#6606](https://github.com/RocketChat/Rocket.Chat/pull/6606) by [@designgurudotorg](https://github.com/designgurudotorg)) -- Improve room sync speed ([#8529](https://github.com/RocketChat/Rocket.Chat/pull/8529)) +- Develop sync ([#7866](https://github.com/RocketChat/Rocket.Chat/pull/7866)) -- install grpc package manually to fix snap armhf build ([#8653](https://github.com/RocketChat/Rocket.Chat/pull/8653)) +- Fix: users listed as online after API login ([#9111](https://github.com/RocketChat/Rocket.Chat/pull/9111)) -- LingoHub based on develop ([#8831](https://github.com/RocketChat/Rocket.Chat/pull/8831)) +- Fix regression in api channels.members ([#9110](https://github.com/RocketChat/Rocket.Chat/pull/9110)) -- LingoHub based on develop ([#8375](https://github.com/RocketChat/Rocket.Chat/pull/8375)) +- Fix: Clear all unreads modal not closing after confirming ([#9137](https://github.com/RocketChat/Rocket.Chat/pull/9137)) -- LingoHub based on develop ([#9256](https://github.com/RocketChat/Rocket.Chat/pull/9256)) +- Fix: Message action quick buttons drops if "new message" divider is being shown ([#9138](https://github.com/RocketChat/Rocket.Chat/pull/9138)) -- npm deps update ([#8197](https://github.com/RocketChat/Rocket.Chat/pull/8197)) +- Fix: Confirmation modals showing `Send` button ([#9136](https://github.com/RocketChat/Rocket.Chat/pull/9136)) -- npm deps update ([#7969](https://github.com/RocketChat/Rocket.Chat/pull/7969)) +- Fix: Multiple unread indicators ([#9120](https://github.com/RocketChat/Rocket.Chat/pull/9120)) -- Release 0.60.0 ([#9259](https://github.com/RocketChat/Rocket.Chat/pull/9259)) +- Fix: Messages being displayed in reverse order ([#9144](https://github.com/RocketChat/Rocket.Chat/pull/9144)) -- Remove chatops package ([#8742](https://github.com/RocketChat/Rocket.Chat/pull/8742)) +- Fix: UI: Descenders of glyphs are cut off ([#9166](https://github.com/RocketChat/Rocket.Chat/pull/9166)) -- Remove field `lastActivity` from subscription data ([#8345](https://github.com/RocketChat/Rocket.Chat/pull/8345)) +- Fix: Click on channel name - hover area bigger than link area ([#9165](https://github.com/RocketChat/Rocket.Chat/pull/9165)) -- Remove unnecessary returns in cors common ([#8054](https://github.com/RocketChat/Rocket.Chat/pull/8054) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Fix: Can’t login using LDAP via REST ([#9162](https://github.com/RocketChat/Rocket.Chat/pull/9162)) -- Removed tmeasday:crypto-md5 ([#8743](https://github.com/RocketChat/Rocket.Chat/pull/8743)) +- Fix: Unread line ([#9149](https://github.com/RocketChat/Rocket.Chat/pull/9149)) -- removing a duplicate line ([#8434](https://github.com/RocketChat/Rocket.Chat/pull/8434) by [@vikaskedia](https://github.com/vikaskedia)) +- Fix test without oplog by waiting a successful login on changing users ([#9146](https://github.com/RocketChat/Rocket.Chat/pull/9146)) - Replace postcss-nesting with postcss-nested ([#9200](https://github.com/RocketChat/Rocket.Chat/pull/9200)) -- Revert "npm deps update" ([#7983](https://github.com/RocketChat/Rocket.Chat/pull/7983)) - -- Sync translations from LingoHub ([#8363](https://github.com/RocketChat/Rocket.Chat/pull/8363)) +- Dependencies Update ([#9197](https://github.com/RocketChat/Rocket.Chat/pull/9197)) -- Turn off prettyJson if the node environment isn't development ([#9068](https://github.com/RocketChat/Rocket.Chat/pull/9068)) +- Fix: Rooms and users are using different avatar style ([#9196](https://github.com/RocketChat/Rocket.Chat/pull/9196)) - Typo: German language file ([#9190](https://github.com/RocketChat/Rocket.Chat/pull/9190) by [@TheReal1604](https://github.com/TheReal1604)) -- Update BlackDuck URL ([#7941](https://github.com/RocketChat/Rocket.Chat/pull/7941)) +- Fix: Snippet name to not showing in snippet list ([#9184](https://github.com/RocketChat/Rocket.Chat/pull/9184) by [@karlprieb](https://github.com/karlprieb)) -- Update DEMO to OPEN links ([#8793](https://github.com/RocketChat/Rocket.Chat/pull/8793)) +- Fix/api me only return verified ([#9183](https://github.com/RocketChat/Rocket.Chat/pull/9183)) -- Update meteor package to 1.8.1 ([#8802](https://github.com/RocketChat/Rocket.Chat/pull/8802)) +- Fix: UI: Descenders of glyphs are cut off ([#9181](https://github.com/RocketChat/Rocket.Chat/pull/9181)) -- Update Meteor to 1.5.2.2 ([#8364](https://github.com/RocketChat/Rocket.Chat/pull/8364)) +- Fix: Unneeded warning in payload of REST API calls ([#9240](https://github.com/RocketChat/Rocket.Chat/pull/9240)) -- Update meteor to 1.5.2.2-rc.0 ([#8355](https://github.com/RocketChat/Rocket.Chat/pull/8355)) +- Fix: Missing option to set user's avatar from a url ([#9229](https://github.com/RocketChat/Rocket.Chat/pull/9229)) -- Update multiple-instance-status package ([#9018](https://github.com/RocketChat/Rocket.Chat/pull/9018)) +- Fix: updating last message on message edit or delete ([#9227](https://github.com/RocketChat/Rocket.Chat/pull/9227)) -- Update path for s3 redirect in circle ci ([#8819](https://github.com/RocketChat/Rocket.Chat/pull/8819)) +- Fix: Username find is matching partially ([#9217](https://github.com/RocketChat/Rocket.Chat/pull/9217)) -- Updated comments. ([#8719](https://github.com/RocketChat/Rocket.Chat/pull/8719) by [@jasonjyu](https://github.com/jasonjyu)) +- Fix: Upload access control too distributed ([#9215](https://github.com/RocketChat/Rocket.Chat/pull/9215)) -- Use real names for user and room in emails ([#7922](https://github.com/RocketChat/Rocket.Chat/pull/7922) by [@danischreiber](https://github.com/danischreiber)) +- Do not change room icon color when room is unread ([#9257](https://github.com/RocketChat/Rocket.Chat/pull/9257)) -- Use redhat official image with openshift ([#9007](https://github.com/RocketChat/Rocket.Chat/pull/9007)) +- LingoHub based on develop ([#9256](https://github.com/RocketChat/Rocket.Chat/pull/9256)) + +- Add curl, its missing on worker nodes so has to be explicitly added ([#9248](https://github.com/RocketChat/Rocket.Chat/pull/9248)) + +- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247) by [@karlprieb](https://github.com/karlprieb))
@@ -11096,10 +11400,10 @@ 🔍 Minor changes -- Add CircleCI ([#8685](https://github.com/RocketChat/Rocket.Chat/pull/8685)) - - Release/0.59.4 ([#8967](https://github.com/RocketChat/Rocket.Chat/pull/8967) by [@cpitman](https://github.com/cpitman) & [@karlprieb](https://github.com/karlprieb)) +- Add CircleCI ([#8685](https://github.com/RocketChat/Rocket.Chat/pull/8685)) +
### 👩‍💻👨‍💻 Contributors 😍 @@ -11125,26 +11429,26 @@ - AmazonS3: Quote file.name for ContentDisposition for files with commas ([#8593](https://github.com/RocketChat/Rocket.Chat/pull/8593) by [@xenithorb](https://github.com/xenithorb)) -- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648) by [@karlprieb](https://github.com/karlprieb)) - - Fix e-mail message forward ([#8645](https://github.com/RocketChat/Rocket.Chat/pull/8645)) -- Fix typos ([#8679](https://github.com/RocketChat/Rocket.Chat/pull/8679)) +- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648) by [@karlprieb](https://github.com/karlprieb)) - Highlighted color height issue ([#8431](https://github.com/RocketChat/Rocket.Chat/pull/8431) by [@cyclops24](https://github.com/cyclops24)) -- LDAP not respecting UTF8 characters & Sync Interval not working ([#8691](https://github.com/RocketChat/Rocket.Chat/pull/8691)) - - Update pt-BR translation ([#8655](https://github.com/RocketChat/Rocket.Chat/pull/8655) by [@rodorgas](https://github.com/rodorgas)) +- Fix typos ([#8679](https://github.com/RocketChat/Rocket.Chat/pull/8679)) + +- LDAP not respecting UTF8 characters & Sync Interval not working ([#8691](https://github.com/RocketChat/Rocket.Chat/pull/8691)) +
🔍 Minor changes -- install grpc package manually to fix snap armhf build ([#8653](https://github.com/RocketChat/Rocket.Chat/pull/8653)) - - removing a duplicate line ([#8434](https://github.com/RocketChat/Rocket.Chat/pull/8434) by [@vikaskedia](https://github.com/vikaskedia)) +- install grpc package manually to fix snap armhf build ([#8653](https://github.com/RocketChat/Rocket.Chat/pull/8653)) +
### 👩‍💻👨‍💻 Contributors 😍 @@ -11171,17 +11475,17 @@ ### 🐛 Bug fixes -- API channel/group.members not sorting ([#8635](https://github.com/RocketChat/Rocket.Chat/pull/8635)) +- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637) by [@karlprieb](https://github.com/karlprieb)) -- encode filename in url to prevent links breaking ([#8551](https://github.com/RocketChat/Rocket.Chat/pull/8551) by [@joesitton](https://github.com/joesitton)) +- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634) by [@karlprieb](https://github.com/karlprieb)) -- Fix guest pool inquiry taking ([#8577](https://github.com/RocketChat/Rocket.Chat/pull/8577)) +- API channel/group.members not sorting ([#8635](https://github.com/RocketChat/Rocket.Chat/pull/8635)) - LDAP not merging existent users && Wrong id link generation ([#8613](https://github.com/RocketChat/Rocket.Chat/pull/8613)) -- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634) by [@karlprieb](https://github.com/karlprieb)) +- encode filename in url to prevent links breaking ([#8551](https://github.com/RocketChat/Rocket.Chat/pull/8551) by [@joesitton](https://github.com/joesitton)) -- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637) by [@karlprieb](https://github.com/karlprieb)) +- Fix guest pool inquiry taking ([#8577](https://github.com/RocketChat/Rocket.Chat/pull/8577)) ### 👩‍💻👨‍💻 Contributors 😍 @@ -11205,12 +11509,12 @@ - Color reset when default value editor is different ([#8543](https://github.com/RocketChat/Rocket.Chat/pull/8543)) +- Wrong colors after migration 103 ([#8547](https://github.com/RocketChat/Rocket.Chat/pull/8547)) + - LDAP login error regression at 0.59.0 ([#8541](https://github.com/RocketChat/Rocket.Chat/pull/8541)) - Migration 103 wrong converting primrary colors ([#8544](https://github.com/RocketChat/Rocket.Chat/pull/8544)) -- Wrong colors after migration 103 ([#8547](https://github.com/RocketChat/Rocket.Chat/pull/8547)) - ### 👩‍💻👨‍💻 Core Team 🤓 - [@rodrigok](https://github.com/rodrigok) @@ -11226,408 +11530,408 @@ ### 🎉 New features -- Add classes to notification menu so they can be hidden in css ([#7636](https://github.com/RocketChat/Rocket.Chat/pull/7636) by [@danischreiber](https://github.com/danischreiber)) - -- Add markdown parser "marked" ([#7852](https://github.com/RocketChat/Rocket.Chat/pull/7852) by [@nishimaki10](https://github.com/nishimaki10)) - -- Add RD Station integration to livechat ([#8304](https://github.com/RocketChat/Rocket.Chat/pull/8304)) - -- Add room type as a class to the ul-group of rooms ([#7711](https://github.com/RocketChat/Rocket.Chat/pull/7711) by [@danischreiber](https://github.com/danischreiber)) - -- Add tags to uploaded images using Google Cloud Vision API ([#6301](https://github.com/RocketChat/Rocket.Chat/pull/6301) by [@karlprieb](https://github.com/karlprieb)) - -- Add unread options for direct messages ([#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658)) +- Replace message cog for vertical menu ([#7864](https://github.com/RocketChat/Rocket.Chat/pull/7864) by [@karlprieb](https://github.com/karlprieb)) -- Adds a Keyboard Shortcut option to the flextab ([#5902](https://github.com/RocketChat/Rocket.Chat/pull/5902) by [@cnash](https://github.com/cnash) & [@karlprieb](https://github.com/karlprieb)) +- block users to mention unknow users ([#7830](https://github.com/RocketChat/Rocket.Chat/pull/7830)) - Allow ldap mapping of customFields ([#7614](https://github.com/RocketChat/Rocket.Chat/pull/7614) by [@goiaba](https://github.com/goiaba)) +- Create a standard for our svg icons ([#7853](https://github.com/RocketChat/Rocket.Chat/pull/7853) by [@karlprieb](https://github.com/karlprieb)) + - Allows admin to list all groups with API ([#7565](https://github.com/RocketChat/Rocket.Chat/pull/7565) by [@mboudet](https://github.com/mboudet)) +- Add markdown parser "marked" ([#7852](https://github.com/RocketChat/Rocket.Chat/pull/7852) by [@nishimaki10](https://github.com/nishimaki10)) + - Audio Notification updated in sidebar ([#7817](https://github.com/RocketChat/Rocket.Chat/pull/7817) by [@aditya19496](https://github.com/aditya19496) & [@maarten-v](https://github.com/maarten-v)) -- Automatically select the first channel ([#7350](https://github.com/RocketChat/Rocket.Chat/pull/7350) by [@antaryami-sahoo](https://github.com/antaryami-sahoo)) +- Search users by fields defined by admin ([#7612](https://github.com/RocketChat/Rocket.Chat/pull/7612) by [@goiaba](https://github.com/goiaba)) -- block users to mention unknow users ([#7830](https://github.com/RocketChat/Rocket.Chat/pull/7830)) +- Template to show Custom Fields in user info view ([#7688](https://github.com/RocketChat/Rocket.Chat/pull/7688) by [@goiaba](https://github.com/goiaba)) -- Create a standard for our svg icons ([#7853](https://github.com/RocketChat/Rocket.Chat/pull/7853) by [@karlprieb](https://github.com/karlprieb)) +- Add room type as a class to the ul-group of rooms ([#7711](https://github.com/RocketChat/Rocket.Chat/pull/7711) by [@danischreiber](https://github.com/danischreiber)) -- Enable read only channel creation ([#8260](https://github.com/RocketChat/Rocket.Chat/pull/8260) by [@karlprieb](https://github.com/karlprieb)) +- Add classes to notification menu so they can be hidden in css ([#7636](https://github.com/RocketChat/Rocket.Chat/pull/7636) by [@danischreiber](https://github.com/danischreiber)) + +- Adds a Keyboard Shortcut option to the flextab ([#5902](https://github.com/RocketChat/Rocket.Chat/pull/5902) by [@cnash](https://github.com/cnash) & [@karlprieb](https://github.com/karlprieb)) - Integrated personal email gateway (GSoC'17) ([#7342](https://github.com/RocketChat/Rocket.Chat/pull/7342) by [@pkgodara](https://github.com/pkgodara)) -- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362) by [@karlprieb](https://github.com/karlprieb)) +- Add tags to uploaded images using Google Cloud Vision API ([#6301](https://github.com/RocketChat/Rocket.Chat/pull/6301) by [@karlprieb](https://github.com/karlprieb)) - Package to render issue numbers into links to an issue tracker. ([#6700](https://github.com/RocketChat/Rocket.Chat/pull/6700) by [@TAdeJong](https://github.com/TAdeJong) & [@TobiasKappe](https://github.com/TobiasKappe)) -- Replace message cog for vertical menu ([#7864](https://github.com/RocketChat/Rocket.Chat/pull/7864) by [@karlprieb](https://github.com/karlprieb)) +- Automatically select the first channel ([#7350](https://github.com/RocketChat/Rocket.Chat/pull/7350) by [@antaryami-sahoo](https://github.com/antaryami-sahoo)) - Rocket.Chat UI Redesign ([#7643](https://github.com/RocketChat/Rocket.Chat/pull/7643)) -- Search users by fields defined by admin ([#7612](https://github.com/RocketChat/Rocket.Chat/pull/7612) by [@goiaba](https://github.com/goiaba)) +- Add unread options for direct messages ([#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658)) -- Setting to disable MarkDown and enable AutoLinker ([#8459](https://github.com/RocketChat/Rocket.Chat/pull/8459)) +- Upgrade to meteor 1.5.2 ([#8073](https://github.com/RocketChat/Rocket.Chat/pull/8073)) -- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360) by [@karlprieb](https://github.com/karlprieb)) +- Enable read only channel creation ([#8260](https://github.com/RocketChat/Rocket.Chat/pull/8260) by [@karlprieb](https://github.com/karlprieb)) -- Template to show Custom Fields in user info view ([#7688](https://github.com/RocketChat/Rocket.Chat/pull/7688) by [@goiaba](https://github.com/goiaba)) +- Add RD Station integration to livechat ([#8304](https://github.com/RocketChat/Rocket.Chat/pull/8304)) - Unify unread and mentions badge ([#8361](https://github.com/RocketChat/Rocket.Chat/pull/8361) by [@karlprieb](https://github.com/karlprieb)) -- Upgrade to meteor 1.5.2 ([#8073](https://github.com/RocketChat/Rocket.Chat/pull/8073)) +- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362) by [@karlprieb](https://github.com/karlprieb)) -### 🐛 Bug fixes +- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360) by [@karlprieb](https://github.com/karlprieb)) +- Setting to disable MarkDown and enable AutoLinker ([#8459](https://github.com/RocketChat/Rocket.Chat/pull/8459)) -- "*.members" rest api being useless and only returning usernames ([#8147](https://github.com/RocketChat/Rocket.Chat/pull/8147)) +### 🐛 Bug fixes -- "Cancel button" on modal in RTL in Firefox 55 ([#8278](https://github.com/RocketChat/Rocket.Chat/pull/8278) by [@cyclops24](https://github.com/cyclops24)) -- "Channel Setting" buttons alignment in RTL ([#8266](https://github.com/RocketChat/Rocket.Chat/pull/8266) by [@cyclops24](https://github.com/cyclops24)) +- **PL:** Polish translation ([#7989](https://github.com/RocketChat/Rocket.Chat/pull/7989) by [@Rzeszow](https://github.com/Rzeszow)) - **i18n:** My Profile & README.md links ([#8270](https://github.com/RocketChat/Rocket.Chat/pull/8270) by [@Rzeszow](https://github.com/Rzeszow)) -- **PL:** Polish translation ([#7989](https://github.com/RocketChat/Rocket.Chat/pull/7989) by [@Rzeszow](https://github.com/Rzeszow)) +- File upload on multi-instances using a path prefix ([#7855](https://github.com/RocketChat/Rocket.Chat/pull/7855) by [@Darkneon](https://github.com/Darkneon)) -- Add admin audio preferences translations ([#8094](https://github.com/RocketChat/Rocket.Chat/pull/8094)) +- Fix migration 100 ([#7863](https://github.com/RocketChat/Rocket.Chat/pull/7863)) + +- Email message forward error ([#7846](https://github.com/RocketChat/Rocket.Chat/pull/7846)) - Add CSS support for Safari versions > 7 ([#7854](https://github.com/RocketChat/Rocket.Chat/pull/7854)) -- Add padding on messages to allow space to the action buttons ([#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971)) +- Fix black background on transparent avatars ([#7168](https://github.com/RocketChat/Rocket.Chat/pull/7168)) -- Adds default search text padding for emoji search ([#7878](https://github.com/RocketChat/Rocket.Chat/pull/7878) by [@gdelavald](https://github.com/gdelavald)) +- Google vision NSFW tag ([#7825](https://github.com/RocketChat/Rocket.Chat/pull/7825)) -- After deleting the room, cache is not synchronizing ([#8314](https://github.com/RocketChat/Rocket.Chat/pull/8314) by [@szluohua](https://github.com/szluohua)) +- meteor-accounts-saml issue with ns0,ns1 namespaces, makes it compatible with pysaml2 lib ([#7721](https://github.com/RocketChat/Rocket.Chat/pull/7721) by [@arminfelder](https://github.com/arminfelder)) -- Allow unknown file types if no allowed whitelist has been set (#7074) ([#8172](https://github.com/RocketChat/Rocket.Chat/pull/8172) by [@TriPhoenix](https://github.com/TriPhoenix)) +- Fix new-message button showing on search ([#7823](https://github.com/RocketChat/Rocket.Chat/pull/7823)) -- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299) by [@karlprieb](https://github.com/karlprieb)) +- Settings not getting applied from Meteor.settings and process.env ([#7779](https://github.com/RocketChat/Rocket.Chat/pull/7779) by [@Darkneon](https://github.com/Darkneon)) -- Api groups.files is always returning empty ([#8241](https://github.com/RocketChat/Rocket.Chat/pull/8241)) +- scroll on flex-tab ([#7748](https://github.com/RocketChat/Rocket.Chat/pull/7748)) -- Attachment icons alignment in LTR and RTL ([#8271](https://github.com/RocketChat/Rocket.Chat/pull/8271) by [@cyclops24](https://github.com/cyclops24)) +- Dutch translations ([#7815](https://github.com/RocketChat/Rocket.Chat/pull/7815) by [@maarten-v](https://github.com/maarten-v)) -- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) by [@karlprieb](https://github.com/karlprieb)) +- Fix Dutch translation ([#7814](https://github.com/RocketChat/Rocket.Chat/pull/7814) by [@maarten-v](https://github.com/maarten-v)) -- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) by [@karlprieb](https://github.com/karlprieb)) +- Update Snap links ([#7778](https://github.com/RocketChat/Rocket.Chat/pull/7778) by [@MichaelGooden](https://github.com/MichaelGooden)) -- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307) by [@karlprieb](https://github.com/karlprieb)) +- Remove redundant "do" in "Are you sure ...?" messages. ([#7809](https://github.com/RocketChat/Rocket.Chat/pull/7809) by [@xurizaemon](https://github.com/xurizaemon)) -- Case insensitive SAML email check ([#8216](https://github.com/RocketChat/Rocket.Chat/pull/8216) by [@arminfelder](https://github.com/arminfelder)) +- Fixed function closure syntax allowing validation emails to be sent. ([#7758](https://github.com/RocketChat/Rocket.Chat/pull/7758) by [@snoozan](https://github.com/snoozan)) -- Chat box no longer auto-focuses when typing ([#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984)) +- Csv importer: work with more problematic data ([#7456](https://github.com/RocketChat/Rocket.Chat/pull/7456) by [@reist](https://github.com/reist)) -- Check attachments is defined before accessing first element ([#8295](https://github.com/RocketChat/Rocket.Chat/pull/8295) by [@Darkneon](https://github.com/Darkneon)) +- Fix avatar upload fail on Cordova app ([#7656](https://github.com/RocketChat/Rocket.Chat/pull/7656) by [@ccfang](https://github.com/ccfang)) -- clipboard and permalink on new popover ([#8259](https://github.com/RocketChat/Rocket.Chat/pull/8259) by [@karlprieb](https://github.com/karlprieb)) +- Make link inside YouTube preview open in new tab ([#7679](https://github.com/RocketChat/Rocket.Chat/pull/7679) by [@1lann](https://github.com/1lann)) -- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039) by [@karlprieb](https://github.com/karlprieb)) +- Remove references to non-existent tests ([#7672](https://github.com/RocketChat/Rocket.Chat/pull/7672) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Create channel button on Firefox ([#7942](https://github.com/RocketChat/Rocket.Chat/pull/7942) by [@karlprieb](https://github.com/karlprieb)) +- Example usage of unsubscribe.js ([#7673](https://github.com/RocketChat/Rocket.Chat/pull/7673) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Csv importer: work with more problematic data ([#7456](https://github.com/RocketChat/Rocket.Chat/pull/7456) by [@reist](https://github.com/reist)) +- Wrong email subject when "All Messages" setting enabled ([#7639](https://github.com/RocketChat/Rocket.Chat/pull/7639)) -- disabled katex tooltip on messageBox ([#8386](https://github.com/RocketChat/Rocket.Chat/pull/8386)) +- Markdown noopener/noreferrer: use correct HTML attribute ([#7644](https://github.com/RocketChat/Rocket.Chat/pull/7644) by [@jangmarker](https://github.com/jangmarker)) -- Do not send joinCode field to clients ([#8527](https://github.com/RocketChat/Rocket.Chat/pull/8527)) +- Fix room load on first hit ([#7687](https://github.com/RocketChat/Rocket.Chat/pull/7687)) -- Document README.md. Drupal repo out of date ([#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) +- Wrong render of snippet’s name ([#7630](https://github.com/RocketChat/Rocket.Chat/pull/7630)) -- Double scroll on 'keyboard shortcuts' menu in sidepanel ([#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) by [@aditya19496](https://github.com/aditya19496)) +- Fix messagebox growth ([#7629](https://github.com/RocketChat/Rocket.Chat/pull/7629)) -- Dutch translations ([#7815](https://github.com/RocketChat/Rocket.Chat/pull/7815) by [@maarten-v](https://github.com/maarten-v)) +- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880) by [@karlprieb](https://github.com/karlprieb)) -- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101) by [@karlprieb](https://github.com/karlprieb)) +- Adds default search text padding for emoji search ([#7878](https://github.com/RocketChat/Rocket.Chat/pull/7878) by [@gdelavald](https://github.com/gdelavald)) -- Email message forward error ([#7846](https://github.com/RocketChat/Rocket.Chat/pull/7846)) +- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881) by [@karlprieb](https://github.com/karlprieb)) -- Email Subjects not being sent ([#8317](https://github.com/RocketChat/Rocket.Chat/pull/8317)) +- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882) by [@karlprieb](https://github.com/karlprieb)) -- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300) by [@karlprieb](https://github.com/karlprieb)) +- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883) by [@karlprieb](https://github.com/karlprieb)) -- Error when translating message ([#8001](https://github.com/RocketChat/Rocket.Chat/pull/8001)) +- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885) by [@karlprieb](https://github.com/karlprieb)) -- Example usage of unsubscribe.js ([#7673](https://github.com/RocketChat/Rocket.Chat/pull/7673) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886) by [@karlprieb](https://github.com/karlprieb)) -- Execute meteor reset on TRAVIS_TAG builds ([#8310](https://github.com/RocketChat/Rocket.Chat/pull/8310)) +- Makes text action menu width based on content size ([#7887](https://github.com/RocketChat/Rocket.Chat/pull/7887) by [@gdelavald](https://github.com/gdelavald)) -- File upload on multi-instances using a path prefix ([#7855](https://github.com/RocketChat/Rocket.Chat/pull/7855) by [@Darkneon](https://github.com/Darkneon)) +- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888) by [@karlprieb](https://github.com/karlprieb)) -- Fix avatar upload fail on Cordova app ([#7656](https://github.com/RocketChat/Rocket.Chat/pull/7656) by [@ccfang](https://github.com/ccfang)) +- Fix google play logo on repo README ([#7912](https://github.com/RocketChat/Rocket.Chat/pull/7912) by [@luizbills](https://github.com/luizbills)) -- Fix black background on transparent avatars ([#7168](https://github.com/RocketChat/Rocket.Chat/pull/7168)) +- Fix livechat toggle UI issue ([#7904](https://github.com/RocketChat/Rocket.Chat/pull/7904)) -- fix color on unread messages ([#8282](https://github.com/RocketChat/Rocket.Chat/pull/8282)) +- Remove break change in Realtime API ([#7895](https://github.com/RocketChat/Rocket.Chat/pull/7895)) -- Fix Dutch translation ([#7814](https://github.com/RocketChat/Rocket.Chat/pull/7814) by [@maarten-v](https://github.com/maarten-v)) +- Window exception when parsing Markdown on server ([#7893](https://github.com/RocketChat/Rocket.Chat/pull/7893)) -- Fix email on mention ([#7754](https://github.com/RocketChat/Rocket.Chat/pull/7754)) +- Text area buttons and layout on mobile ([#7985](https://github.com/RocketChat/Rocket.Chat/pull/7985)) -- Fix google play logo on repo README ([#7912](https://github.com/RocketChat/Rocket.Chat/pull/7912) by [@luizbills](https://github.com/luizbills)) +- Double scroll on 'keyboard shortcuts' menu in sidepanel ([#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) by [@aditya19496](https://github.com/aditya19496)) -- Fix iframe login API response (issue #8145) ([#8146](https://github.com/RocketChat/Rocket.Chat/pull/8146) by [@astax-t](https://github.com/astax-t)) +- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) by [@karlprieb](https://github.com/karlprieb)) -- Fix livechat toggle UI issue ([#7904](https://github.com/RocketChat/Rocket.Chat/pull/7904)) +- Textarea on firefox ([#7986](https://github.com/RocketChat/Rocket.Chat/pull/7986)) -- Fix messagebox growth ([#7629](https://github.com/RocketChat/Rocket.Chat/pull/7629)) +- Chat box no longer auto-focuses when typing ([#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984)) -- Fix migration 100 ([#7863](https://github.com/RocketChat/Rocket.Chat/pull/7863)) +- Add padding on messages to allow space to the action buttons ([#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971)) -- Fix new room sound being played too much ([#8144](https://github.com/RocketChat/Rocket.Chat/pull/8144)) +- Small alignment fixes ([#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970)) -- Fix new-message button showing on search ([#7823](https://github.com/RocketChat/Rocket.Chat/pull/7823)) +- Markdown being rendered in code tags ([#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965)) -- Fix placeholders in account profile ([#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) by [@josiasds](https://github.com/josiasds)) +- Fix the status on the members list ([#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963)) -- Fix room load on first hit ([#7687](https://github.com/RocketChat/Rocket.Chat/pull/7687)) +- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) by [@karlprieb](https://github.com/karlprieb)) -- Fix setting user avatar on LDAP login ([#8099](https://github.com/RocketChat/Rocket.Chat/pull/8099)) +- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) by [@karlprieb](https://github.com/karlprieb)) -- Fix the status on the members list ([#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963)) +- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) by [@karlprieb](https://github.com/karlprieb)) -- Fixed function closure syntax allowing validation emails to be sent. ([#7758](https://github.com/RocketChat/Rocket.Chat/pull/7758) by [@snoozan](https://github.com/snoozan)) +- Document README.md. Drupal repo out of date ([#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) -- Google vision NSFW tag ([#7825](https://github.com/RocketChat/Rocket.Chat/pull/7825)) +- Fix placeholders in account profile ([#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) by [@josiasds](https://github.com/josiasds)) -- Hide scrollbar on login page if not necessary ([#8014](https://github.com/RocketChat/Rocket.Chat/pull/8014) by [@alexbrazier](https://github.com/alexbrazier)) +- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) by [@karlprieb](https://github.com/karlprieb)) -- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882) by [@karlprieb](https://github.com/karlprieb)) +- Create channel button on Firefox ([#7942](https://github.com/RocketChat/Rocket.Chat/pull/7942) by [@karlprieb](https://github.com/karlprieb)) -- Incorrect URL for login terms when using prefix ([#8211](https://github.com/RocketChat/Rocket.Chat/pull/8211) by [@Darkneon](https://github.com/Darkneon)) +- Show leader on first load ([#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) by [@danischreiber](https://github.com/danischreiber)) -- Invalid Code message for password protected channel ([#8491](https://github.com/RocketChat/Rocket.Chat/pull/8491)) +- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988) by [@karlprieb](https://github.com/karlprieb)) - Invisible leader bar on hover ([#8048](https://github.com/RocketChat/Rocket.Chat/pull/8048)) -- Issue #8166 where empty analytics setting breaks to load Piwik script ([#8167](https://github.com/RocketChat/Rocket.Chat/pull/8167) by [@ruKurz](https://github.com/ruKurz)) +- Prevent autotranslate tokens race condition ([#8046](https://github.com/RocketChat/Rocket.Chat/pull/8046)) -- LDAP memory issues when pagination is not available ([#8457](https://github.com/RocketChat/Rocket.Chat/pull/8457)) +- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039) by [@karlprieb](https://github.com/karlprieb)) -- Leave and hide buttons was removed ([#8213](https://github.com/RocketChat/Rocket.Chat/pull/8213) by [@karlprieb](https://github.com/karlprieb)) +- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019) by [@karlprieb](https://github.com/karlprieb)) -- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886) by [@karlprieb](https://github.com/karlprieb)) +- search results height ([#8018](https://github.com/RocketChat/Rocket.Chat/pull/8018) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) -- Make link inside YouTube preview open in new tab ([#7679](https://github.com/RocketChat/Rocket.Chat/pull/7679) by [@1lann](https://github.com/1lann)) +- room icon on header ([#8017](https://github.com/RocketChat/Rocket.Chat/pull/8017) by [@karlprieb](https://github.com/karlprieb)) -- make sidebar item animation fast ([#8262](https://github.com/RocketChat/Rocket.Chat/pull/8262) by [@karlprieb](https://github.com/karlprieb)) +- Hide scrollbar on login page if not necessary ([#8014](https://github.com/RocketChat/Rocket.Chat/pull/8014) by [@alexbrazier](https://github.com/alexbrazier)) -- Makes text action menu width based on content size ([#7887](https://github.com/RocketChat/Rocket.Chat/pull/7887) by [@gdelavald](https://github.com/gdelavald)) +- Error when translating message ([#8001](https://github.com/RocketChat/Rocket.Chat/pull/8001)) -- Markdown being rendered in code tags ([#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965)) +- Recent emojis not updated when adding via text ([#7998](https://github.com/RocketChat/Rocket.Chat/pull/7998)) -- Markdown noopener/noreferrer: use correct HTML attribute ([#7644](https://github.com/RocketChat/Rocket.Chat/pull/7644) by [@jangmarker](https://github.com/jangmarker)) +- Fix email on mention ([#7754](https://github.com/RocketChat/Rocket.Chat/pull/7754)) -- Mention unread indicator was removed ([#8316](https://github.com/RocketChat/Rocket.Chat/pull/8316)) +- RTL ([#8112](https://github.com/RocketChat/Rocket.Chat/pull/8112)) -- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885) by [@karlprieb](https://github.com/karlprieb)) +- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101) by [@karlprieb](https://github.com/karlprieb)) -- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019) by [@karlprieb](https://github.com/karlprieb)) +- Settings description not showing ([#8122](https://github.com/RocketChat/Rocket.Chat/pull/8122)) -- meteor-accounts-saml issue with ns0,ns1 namespaces, makes it compatible with pysaml2 lib ([#7721](https://github.com/RocketChat/Rocket.Chat/pull/7721) by [@arminfelder](https://github.com/arminfelder)) +- Fix setting user avatar on LDAP login ([#8099](https://github.com/RocketChat/Rocket.Chat/pull/8099)) -- Missing i18n translations ([#8357](https://github.com/RocketChat/Rocket.Chat/pull/8357)) +- Not sending email to mentioned users with unchanged preference ([#8059](https://github.com/RocketChat/Rocket.Chat/pull/8059)) -- Missing placeholder translations ([#8286](https://github.com/RocketChat/Rocket.Chat/pull/8286)) +- Scroll on messagebox ([#8047](https://github.com/RocketChat/Rocket.Chat/pull/8047)) -- Not sending email to mentioned users with unchanged preference ([#8059](https://github.com/RocketChat/Rocket.Chat/pull/8059)) +- Allow unknown file types if no allowed whitelist has been set (#7074) ([#8172](https://github.com/RocketChat/Rocket.Chat/pull/8172) by [@TriPhoenix](https://github.com/TriPhoenix)) -- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) by [@karlprieb](https://github.com/karlprieb)) +- Issue #8166 where empty analytics setting breaks to load Piwik script ([#8167](https://github.com/RocketChat/Rocket.Chat/pull/8167) by [@ruKurz](https://github.com/ruKurz)) -- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883) by [@karlprieb](https://github.com/karlprieb)) +- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154) by [@karlprieb](https://github.com/karlprieb)) -- Prevent autotranslate tokens race condition ([#8046](https://github.com/RocketChat/Rocket.Chat/pull/8046)) +- "*.members" rest api being useless and only returning usernames ([#8147](https://github.com/RocketChat/Rocket.Chat/pull/8147)) -- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315) by [@karlprieb](https://github.com/karlprieb)) +- Fix iframe login API response (issue #8145) ([#8146](https://github.com/RocketChat/Rocket.Chat/pull/8146) by [@astax-t](https://github.com/astax-t)) -- Recent emojis not updated when adding via text ([#7998](https://github.com/RocketChat/Rocket.Chat/pull/7998)) +- Text area lost text when page reloads ([#8159](https://github.com/RocketChat/Rocket.Chat/pull/8159)) -- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358) by [@karlprieb](https://github.com/karlprieb)) +- Fix new room sound being played too much ([#8144](https://github.com/RocketChat/Rocket.Chat/pull/8144)) -- Remove break change in Realtime API ([#7895](https://github.com/RocketChat/Rocket.Chat/pull/7895)) +- Add admin audio preferences translations ([#8094](https://github.com/RocketChat/Rocket.Chat/pull/8094)) -- Remove redundant "do" in "Are you sure ...?" messages. ([#7809](https://github.com/RocketChat/Rocket.Chat/pull/7809) by [@xurizaemon](https://github.com/xurizaemon)) +- Leave and hide buttons was removed ([#8213](https://github.com/RocketChat/Rocket.Chat/pull/8213) by [@karlprieb](https://github.com/karlprieb)) -- Remove references to non-existent tests ([#7672](https://github.com/RocketChat/Rocket.Chat/pull/7672) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Incorrect URL for login terms when using prefix ([#8211](https://github.com/RocketChat/Rocket.Chat/pull/8211) by [@Darkneon](https://github.com/Darkneon)) -- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334) by [@karlprieb](https://github.com/karlprieb)) +- User avatar in DM list. ([#8210](https://github.com/RocketChat/Rocket.Chat/pull/8210)) -- Removing pipe and commas from custom emojis (#8168) ([#8237](https://github.com/RocketChat/Rocket.Chat/pull/8237) by [@matheusml](https://github.com/matheusml)) +- Scrollbar not using new style ([#8190](https://github.com/RocketChat/Rocket.Chat/pull/8190)) -- room icon on header ([#8017](https://github.com/RocketChat/Rocket.Chat/pull/8017) by [@karlprieb](https://github.com/karlprieb)) +- sidenav colors, hide and leave, create channel on safari ([#8257](https://github.com/RocketChat/Rocket.Chat/pull/8257) by [@karlprieb](https://github.com/karlprieb)) -- RTL ([#8112](https://github.com/RocketChat/Rocket.Chat/pull/8112)) +- make sidebar item animation fast ([#8262](https://github.com/RocketChat/Rocket.Chat/pull/8262) by [@karlprieb](https://github.com/karlprieb)) - RTL on reply ([#8261](https://github.com/RocketChat/Rocket.Chat/pull/8261) by [@karlprieb](https://github.com/karlprieb)) -- scroll on flex-tab ([#7748](https://github.com/RocketChat/Rocket.Chat/pull/7748)) +- clipboard and permalink on new popover ([#8259](https://github.com/RocketChat/Rocket.Chat/pull/8259) by [@karlprieb](https://github.com/karlprieb)) -- Scroll on messagebox ([#8047](https://github.com/RocketChat/Rocket.Chat/pull/8047)) +- sidenav mentions on hover ([#8252](https://github.com/RocketChat/Rocket.Chat/pull/8252) by [@karlprieb](https://github.com/karlprieb)) -- Scrollbar not using new style ([#8190](https://github.com/RocketChat/Rocket.Chat/pull/8190)) +- Api groups.files is always returning empty ([#8241](https://github.com/RocketChat/Rocket.Chat/pull/8241)) -- search results height ([#8018](https://github.com/RocketChat/Rocket.Chat/pull/8018) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- Case insensitive SAML email check ([#8216](https://github.com/RocketChat/Rocket.Chat/pull/8216) by [@arminfelder](https://github.com/arminfelder)) -- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881) by [@karlprieb](https://github.com/karlprieb)) +- Execute meteor reset on TRAVIS_TAG builds ([#8310](https://github.com/RocketChat/Rocket.Chat/pull/8310)) -- Settings description not showing ([#8122](https://github.com/RocketChat/Rocket.Chat/pull/8122)) +- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307) by [@karlprieb](https://github.com/karlprieb)) -- Settings not getting applied from Meteor.settings and process.env ([#7779](https://github.com/RocketChat/Rocket.Chat/pull/7779) by [@Darkneon](https://github.com/Darkneon)) +- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300) by [@karlprieb](https://github.com/karlprieb)) -- Show leader on first load ([#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) by [@danischreiber](https://github.com/danischreiber)) +- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299) by [@karlprieb](https://github.com/karlprieb)) -- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154) by [@karlprieb](https://github.com/karlprieb)) +- TypeError: Cannot read property 't' of undefined ([#8298](https://github.com/RocketChat/Rocket.Chat/pull/8298)) -- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888) by [@karlprieb](https://github.com/karlprieb)) +- Wrong file name when upload to AWS S3 ([#8296](https://github.com/RocketChat/Rocket.Chat/pull/8296)) -- Sidebar item menu position in RTL ([#8397](https://github.com/RocketChat/Rocket.Chat/pull/8397) by [@cyclops24](https://github.com/cyclops24)) +- Check attachments is defined before accessing first element ([#8295](https://github.com/RocketChat/Rocket.Chat/pull/8295) by [@Darkneon](https://github.com/Darkneon)) -- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880) by [@karlprieb](https://github.com/karlprieb)) +- Missing placeholder translations ([#8286](https://github.com/RocketChat/Rocket.Chat/pull/8286)) -- sidenav colors, hide and leave, create channel on safari ([#8257](https://github.com/RocketChat/Rocket.Chat/pull/8257) by [@karlprieb](https://github.com/karlprieb)) +- fix color on unread messages ([#8282](https://github.com/RocketChat/Rocket.Chat/pull/8282)) -- sidenav mentions on hover ([#8252](https://github.com/RocketChat/Rocket.Chat/pull/8252) by [@karlprieb](https://github.com/karlprieb)) +- "Cancel button" on modal in RTL in Firefox 55 ([#8278](https://github.com/RocketChat/Rocket.Chat/pull/8278) by [@cyclops24](https://github.com/cyclops24)) -- Small alignment fixes ([#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970)) +- Attachment icons alignment in LTR and RTL ([#8271](https://github.com/RocketChat/Rocket.Chat/pull/8271) by [@cyclops24](https://github.com/cyclops24)) - some placeholder and phrase traslation fix ([#8269](https://github.com/RocketChat/Rocket.Chat/pull/8269) by [@cyclops24](https://github.com/cyclops24)) -- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) by [@karlprieb](https://github.com/karlprieb)) +- "Channel Setting" buttons alignment in RTL ([#8266](https://github.com/RocketChat/Rocket.Chat/pull/8266) by [@cyclops24](https://github.com/cyclops24)) -- Text area buttons and layout on mobile ([#7985](https://github.com/RocketChat/Rocket.Chat/pull/7985)) +- Removing pipe and commas from custom emojis (#8168) ([#8237](https://github.com/RocketChat/Rocket.Chat/pull/8237) by [@matheusml](https://github.com/matheusml)) -- Text area lost text when page reloads ([#8159](https://github.com/RocketChat/Rocket.Chat/pull/8159)) +- After deleting the room, cache is not synchronizing ([#8314](https://github.com/RocketChat/Rocket.Chat/pull/8314) by [@szluohua](https://github.com/szluohua)) -- Textarea on firefox ([#7986](https://github.com/RocketChat/Rocket.Chat/pull/7986)) +- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334) by [@karlprieb](https://github.com/karlprieb)) -- TypeError: Cannot read property 't' of undefined ([#8298](https://github.com/RocketChat/Rocket.Chat/pull/8298)) +- Email Subjects not being sent ([#8317](https://github.com/RocketChat/Rocket.Chat/pull/8317)) -- Uncessary route reload break some routes ([#8514](https://github.com/RocketChat/Rocket.Chat/pull/8514)) +- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315) by [@karlprieb](https://github.com/karlprieb)) -- Update Snap links ([#7778](https://github.com/RocketChat/Rocket.Chat/pull/7778) by [@MichaelGooden](https://github.com/MichaelGooden)) +- Mention unread indicator was removed ([#8316](https://github.com/RocketChat/Rocket.Chat/pull/8316)) -- User avatar in DM list. ([#8210](https://github.com/RocketChat/Rocket.Chat/pull/8210)) +- Various LDAP issues & Missing pagination ([#8372](https://github.com/RocketChat/Rocket.Chat/pull/8372)) -- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) by [@karlprieb](https://github.com/karlprieb)) +- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358) by [@karlprieb](https://github.com/karlprieb)) -- Various LDAP issues & Missing pagination ([#8372](https://github.com/RocketChat/Rocket.Chat/pull/8372)) +- Missing i18n translations ([#8357](https://github.com/RocketChat/Rocket.Chat/pull/8357)) -- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988) by [@karlprieb](https://github.com/karlprieb)) +- Sidebar item menu position in RTL ([#8397](https://github.com/RocketChat/Rocket.Chat/pull/8397) by [@cyclops24](https://github.com/cyclops24)) -- Window exception when parsing Markdown on server ([#7893](https://github.com/RocketChat/Rocket.Chat/pull/7893)) +- disabled katex tooltip on messageBox ([#8386](https://github.com/RocketChat/Rocket.Chat/pull/8386)) -- Wrong email subject when "All Messages" setting enabled ([#7639](https://github.com/RocketChat/Rocket.Chat/pull/7639)) +- LDAP memory issues when pagination is not available ([#8457](https://github.com/RocketChat/Rocket.Chat/pull/8457)) -- Wrong file name when upload to AWS S3 ([#8296](https://github.com/RocketChat/Rocket.Chat/pull/8296)) +- Uncessary route reload break some routes ([#8514](https://github.com/RocketChat/Rocket.Chat/pull/8514)) + +- Invalid Code message for password protected channel ([#8491](https://github.com/RocketChat/Rocket.Chat/pull/8491)) - Wrong message when reseting password and 2FA is enabled ([#8489](https://github.com/RocketChat/Rocket.Chat/pull/8489)) -- Wrong render of snippet’s name ([#7630](https://github.com/RocketChat/Rocket.Chat/pull/7630)) +- Do not send joinCode field to clients ([#8527](https://github.com/RocketChat/Rocket.Chat/pull/8527))
🔍 Minor changes -- [DOCS] Add native mobile app links into README and update button images ([#7909](https://github.com/RocketChat/Rocket.Chat/pull/7909) by [@rafaelks](https://github.com/rafaelks)) +- Merge 0.58.4 to master ([#8420](https://github.com/RocketChat/Rocket.Chat/pull/8420)) + +- 0.58.3 ([#8335](https://github.com/RocketChat/Rocket.Chat/pull/8335)) + +- Mobile sidenav ([#7865](https://github.com/RocketChat/Rocket.Chat/pull/7865)) + +- npm deps update ([#7842](https://github.com/RocketChat/Rocket.Chat/pull/7842)) + +- LingoHub based on develop ([#7803](https://github.com/RocketChat/Rocket.Chat/pull/7803)) + +- Additions to the REST API ([#7793](https://github.com/RocketChat/Rocket.Chat/pull/7793)) + +- npm deps update ([#7755](https://github.com/RocketChat/Rocket.Chat/pull/7755)) -- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331) by [@karlprieb](https://github.com/karlprieb)) +- FIX: Error when starting local development environment ([#7728](https://github.com/RocketChat/Rocket.Chat/pull/7728) by [@rdebeasi](https://github.com/rdebeasi)) -- [MOVE] Client folder rocketchat-autolinker ([#7667](https://github.com/RocketChat/Rocket.Chat/pull/7667) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Remove CircleCI ([#7739](https://github.com/RocketChat/Rocket.Chat/pull/7739)) -- [MOVE] Client folder rocketchat-cas ([#7668](https://github.com/RocketChat/Rocket.Chat/pull/7668) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Meteor packages and npm dependencies update ([#7677](https://github.com/RocketChat/Rocket.Chat/pull/7677)) - [MOVE] Client folder rocketchat-colors ([#7664](https://github.com/RocketChat/Rocket.Chat/pull/7664) by [@Kiran-Rao](https://github.com/Kiran-Rao)) - [MOVE] Client folder rocketchat-custom-oauth ([#7665](https://github.com/RocketChat/Rocket.Chat/pull/7665) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- [MOVE] Client folder rocketchat-custom-sounds ([#7670](https://github.com/RocketChat/Rocket.Chat/pull/7670) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- [MOVE] Client folder rocketchat-tooltip ([#7666](https://github.com/RocketChat/Rocket.Chat/pull/7666) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- [MOVE] Client folder rocketchat-emoji ([#7671](https://github.com/RocketChat/Rocket.Chat/pull/7671) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- [MOVE] Client folder rocketchat-autolinker ([#7667](https://github.com/RocketChat/Rocket.Chat/pull/7667) by [@Kiran-Rao](https://github.com/Kiran-Rao)) + +- [MOVE] Client folder rocketchat-cas ([#7668](https://github.com/RocketChat/Rocket.Chat/pull/7668) by [@Kiran-Rao](https://github.com/Kiran-Rao)) - [MOVE] Client folder rocketchat-highlight-words ([#7669](https://github.com/RocketChat/Rocket.Chat/pull/7669) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- [MOVE] Client folder rocketchat-tooltip ([#7666](https://github.com/RocketChat/Rocket.Chat/pull/7666) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- [MOVE] Client folder rocketchat-custom-sounds ([#7670](https://github.com/RocketChat/Rocket.Chat/pull/7670) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- 0.58.3 ([#8335](https://github.com/RocketChat/Rocket.Chat/pull/8335)) +- [MOVE] Client folder rocketchat-emoji ([#7671](https://github.com/RocketChat/Rocket.Chat/pull/7671) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Add i18n Title to snippet messages ([#8394](https://github.com/RocketChat/Rocket.Chat/pull/8394)) +- Only use "File Uploaded" prefix on files ([#7652](https://github.com/RocketChat/Rocket.Chat/pull/7652)) -- Additions to the REST API ([#7793](https://github.com/RocketChat/Rocket.Chat/pull/7793)) +- Fix typo in generated URI ([#7661](https://github.com/RocketChat/Rocket.Chat/pull/7661) by [@Rohlik](https://github.com/Rohlik)) - Bump version to 0.59.0-develop ([#7625](https://github.com/RocketChat/Rocket.Chat/pull/7625)) -- Change artifact path ([#8515](https://github.com/RocketChat/Rocket.Chat/pull/8515)) - -- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463) by [@karlprieb](https://github.com/karlprieb)) - -- Deps update ([#8273](https://github.com/RocketChat/Rocket.Chat/pull/8273)) +- implemented new page-loader animated icon ([#2](https://github.com/RocketChat/Rocket.Chat/pull/2)) -- Disable perfect scrollbar ([#8244](https://github.com/RocketChat/Rocket.Chat/pull/8244)) +- Hide flex-tab close button ([#7894](https://github.com/RocketChat/Rocket.Chat/pull/7894) by [@karlprieb](https://github.com/karlprieb)) -- Enable AutoLinker back ([#8490](https://github.com/RocketChat/Rocket.Chat/pull/8490)) +- Update BlackDuck URL ([#7941](https://github.com/RocketChat/Rocket.Chat/pull/7941)) -- Fix `leave and hide` click, color and position ([#8243](https://github.com/RocketChat/Rocket.Chat/pull/8243) by [@karlprieb](https://github.com/karlprieb)) +- [DOCS] Add native mobile app links into README and update button images ([#7909](https://github.com/RocketChat/Rocket.Chat/pull/7909) by [@rafaelks](https://github.com/rafaelks)) -- Fix artifact path ([#8518](https://github.com/RocketChat/Rocket.Chat/pull/8518)) +- Remove unnecessary returns in cors common ([#8054](https://github.com/RocketChat/Rocket.Chat/pull/8054) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Fix high CPU load when sending messages on large rooms (regression) ([#8520](https://github.com/RocketChat/Rocket.Chat/pull/8520)) +- npm deps update ([#8197](https://github.com/RocketChat/Rocket.Chat/pull/8197)) - Fix more rtl issues ([#8194](https://github.com/RocketChat/Rocket.Chat/pull/8194) by [@karlprieb](https://github.com/karlprieb)) -- Fix typo in generated URI ([#7661](https://github.com/RocketChat/Rocket.Chat/pull/7661) by [@Rohlik](https://github.com/Rohlik)) - -- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416) by [@karlprieb](https://github.com/karlprieb)) - -- Fix: Change password not working in new UI ([#8516](https://github.com/RocketChat/Rocket.Chat/pull/8516)) - -- FIX: Error when starting local development environment ([#7728](https://github.com/RocketChat/Rocket.Chat/pull/7728) by [@rdebeasi](https://github.com/rdebeasi)) - -- Fix: Missing LDAP option to show internal logs ([#8417](https://github.com/RocketChat/Rocket.Chat/pull/8417)) - -- Fix: Missing LDAP reconnect setting ([#8414](https://github.com/RocketChat/Rocket.Chat/pull/8414)) - -- Fix: Missing settings to configure LDAP size and page limits ([#8398](https://github.com/RocketChat/Rocket.Chat/pull/8398)) +- readme-file: fix broken link ([#8253](https://github.com/RocketChat/Rocket.Chat/pull/8253) by [@vcapretz](https://github.com/vcapretz)) -- Hide flex-tab close button ([#7894](https://github.com/RocketChat/Rocket.Chat/pull/7894) by [@karlprieb](https://github.com/karlprieb)) +- Disable perfect scrollbar ([#8244](https://github.com/RocketChat/Rocket.Chat/pull/8244)) -- implemented new page-loader animated icon ([#2](https://github.com/RocketChat/Rocket.Chat/pull/2)) +- Fix `leave and hide` click, color and position ([#8243](https://github.com/RocketChat/Rocket.Chat/pull/8243) by [@karlprieb](https://github.com/karlprieb)) -- Improve markdown parser code ([#8451](https://github.com/RocketChat/Rocket.Chat/pull/8451)) +- Deps update ([#8273](https://github.com/RocketChat/Rocket.Chat/pull/8273)) -- Improve room sync speed ([#8529](https://github.com/RocketChat/Rocket.Chat/pull/8529)) +- Update meteor to 1.5.2.2-rc.0 ([#8355](https://github.com/RocketChat/Rocket.Chat/pull/8355)) -- LingoHub based on develop ([#7803](https://github.com/RocketChat/Rocket.Chat/pull/7803)) +- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331) by [@karlprieb](https://github.com/karlprieb)) - LingoHub based on develop ([#8375](https://github.com/RocketChat/Rocket.Chat/pull/8375)) -- Merge 0.58.4 to master ([#8420](https://github.com/RocketChat/Rocket.Chat/pull/8420)) +- Update Meteor to 1.5.2.2 ([#8364](https://github.com/RocketChat/Rocket.Chat/pull/8364)) -- Meteor packages and npm dependencies update ([#7677](https://github.com/RocketChat/Rocket.Chat/pull/7677)) +- Sync translations from LingoHub ([#8363](https://github.com/RocketChat/Rocket.Chat/pull/8363)) -- Mobile sidenav ([#7865](https://github.com/RocketChat/Rocket.Chat/pull/7865)) +- Remove field `lastActivity` from subscription data ([#8345](https://github.com/RocketChat/Rocket.Chat/pull/8345)) -- npm deps update ([#7842](https://github.com/RocketChat/Rocket.Chat/pull/7842)) +- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416) by [@karlprieb](https://github.com/karlprieb)) -- npm deps update ([#7755](https://github.com/RocketChat/Rocket.Chat/pull/7755)) +- Fix: Missing LDAP option to show internal logs ([#8417](https://github.com/RocketChat/Rocket.Chat/pull/8417)) -- npm deps update ([#8197](https://github.com/RocketChat/Rocket.Chat/pull/8197)) +- Fix: Missing LDAP reconnect setting ([#8414](https://github.com/RocketChat/Rocket.Chat/pull/8414)) -- Only use "File Uploaded" prefix on files ([#7652](https://github.com/RocketChat/Rocket.Chat/pull/7652)) +- Add i18n Title to snippet messages ([#8394](https://github.com/RocketChat/Rocket.Chat/pull/8394)) -- readme-file: fix broken link ([#8253](https://github.com/RocketChat/Rocket.Chat/pull/8253) by [@vcapretz](https://github.com/vcapretz)) +- Fix: Missing settings to configure LDAP size and page limits ([#8398](https://github.com/RocketChat/Rocket.Chat/pull/8398)) -- Remove CircleCI ([#7739](https://github.com/RocketChat/Rocket.Chat/pull/7739)) +- Improve markdown parser code ([#8451](https://github.com/RocketChat/Rocket.Chat/pull/8451)) -- Remove field `lastActivity` from subscription data ([#8345](https://github.com/RocketChat/Rocket.Chat/pull/8345)) +- Change artifact path ([#8515](https://github.com/RocketChat/Rocket.Chat/pull/8515)) -- Remove unnecessary returns in cors common ([#8054](https://github.com/RocketChat/Rocket.Chat/pull/8054) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463) by [@karlprieb](https://github.com/karlprieb)) -- Sync translations from LingoHub ([#8363](https://github.com/RocketChat/Rocket.Chat/pull/8363)) +- Fix: Change password not working in new UI ([#8516](https://github.com/RocketChat/Rocket.Chat/pull/8516)) -- Update BlackDuck URL ([#7941](https://github.com/RocketChat/Rocket.Chat/pull/7941)) +- Enable AutoLinker back ([#8490](https://github.com/RocketChat/Rocket.Chat/pull/8490)) -- Update Meteor to 1.5.2.2 ([#8364](https://github.com/RocketChat/Rocket.Chat/pull/8364)) +- Fix artifact path ([#8518](https://github.com/RocketChat/Rocket.Chat/pull/8518)) -- Update meteor to 1.5.2.2-rc.0 ([#8355](https://github.com/RocketChat/Rocket.Chat/pull/8355)) +- Fix high CPU load when sending messages on large rooms (regression) ([#8520](https://github.com/RocketChat/Rocket.Chat/pull/8520)) + +- Improve room sync speed ([#8529](https://github.com/RocketChat/Rocket.Chat/pull/8529))
@@ -11693,12 +11997,12 @@ ### 🐛 Bug fixes -- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) - - Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) - Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) +- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@geekgonecrazy](https://github.com/geekgonecrazy) @@ -11767,200 +12071,200 @@ ### 🎉 New features -- Add admin and user setting for notifications #4339 ([#7479](https://github.com/RocketChat/Rocket.Chat/pull/7479) by [@stalley](https://github.com/stalley)) - -- Add close button to flex tabs ([#7529](https://github.com/RocketChat/Rocket.Chat/pull/7529)) - -- Add customFields in rooms/get method ([#6564](https://github.com/RocketChat/Rocket.Chat/pull/6564) by [@borsden](https://github.com/borsden)) +- Allow special chars on room names ([#7595](https://github.com/RocketChat/Rocket.Chat/pull/7595)) -- Add healthchecks in OpenShift templates ([#7184](https://github.com/RocketChat/Rocket.Chat/pull/7184) by [@jfchevrette](https://github.com/jfchevrette)) +- Add admin and user setting for notifications #4339 ([#7479](https://github.com/RocketChat/Rocket.Chat/pull/7479) by [@stalley](https://github.com/stalley)) -- Add reaction to the last message when get the shortcut +: ([#7569](https://github.com/RocketChat/Rocket.Chat/pull/7569) by [@danilomiranda](https://github.com/danilomiranda)) +- Edit user permissions ([#7309](https://github.com/RocketChat/Rocket.Chat/pull/7309)) -- Add room type identifier to room list header ([#7520](https://github.com/RocketChat/Rocket.Chat/pull/7520) by [@danischreiber](https://github.com/danischreiber)) +- Adding support for piwik sub domain settings ([#7324](https://github.com/RocketChat/Rocket.Chat/pull/7324) by [@ruKurz](https://github.com/ruKurz)) - Add setting to change User Agent of OEmbed calls ([#6753](https://github.com/RocketChat/Rocket.Chat/pull/6753) by [@AhmetS](https://github.com/AhmetS)) -- Add toolbar buttons for iframe API ([#7525](https://github.com/RocketChat/Rocket.Chat/pull/7525)) +- Configurable Volume for Notifications #6087 ([#7517](https://github.com/RocketChat/Rocket.Chat/pull/7517) by [@lindoelio](https://github.com/lindoelio)) -- Add unread options for direct messages ([#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658)) +- Add customFields in rooms/get method ([#6564](https://github.com/RocketChat/Rocket.Chat/pull/6564) by [@borsden](https://github.com/borsden)) -- Adding support for piwik sub domain settings ([#7324](https://github.com/RocketChat/Rocket.Chat/pull/7324) by [@ruKurz](https://github.com/ruKurz)) +- Option to select unread count style ([#7589](https://github.com/RocketChat/Rocket.Chat/pull/7589)) -- Adds preference to one-click-to-direct-message and basic functionality ([#7564](https://github.com/RocketChat/Rocket.Chat/pull/7564) by [@gdelavald](https://github.com/gdelavald)) +- Show different shape for alert numbers when have mentions ([#7580](https://github.com/RocketChat/Rocket.Chat/pull/7580)) -- Allow channel property in the integrations returned content ([#7214](https://github.com/RocketChat/Rocket.Chat/pull/7214)) +- Add reaction to the last message when get the shortcut +: ([#7569](https://github.com/RocketChat/Rocket.Chat/pull/7569) by [@danilomiranda](https://github.com/danilomiranda)) -- Allow special chars on room names ([#7595](https://github.com/RocketChat/Rocket.Chat/pull/7595)) +- Show emojis and file uploads on notifications ([#7559](https://github.com/RocketChat/Rocket.Chat/pull/7559)) - Closes tab bar on mobile when leaving room ([#7561](https://github.com/RocketChat/Rocket.Chat/pull/7561) by [@gdelavald](https://github.com/gdelavald)) -- Configurable Volume for Notifications #6087 ([#7517](https://github.com/RocketChat/Rocket.Chat/pull/7517) by [@lindoelio](https://github.com/lindoelio)) +- Adds preference to one-click-to-direct-message and basic functionality ([#7564](https://github.com/RocketChat/Rocket.Chat/pull/7564) by [@gdelavald](https://github.com/gdelavald)) + +- Search users also by email in toolbar ([#7334](https://github.com/RocketChat/Rocket.Chat/pull/7334) by [@shahar3012](https://github.com/shahar3012)) - Do not rate limit bots on createDirectMessage ([#7326](https://github.com/RocketChat/Rocket.Chat/pull/7326) by [@jangmarker](https://github.com/jangmarker)) -- Edit user permissions ([#7309](https://github.com/RocketChat/Rocket.Chat/pull/7309)) +- Allow channel property in the integrations returned content ([#7214](https://github.com/RocketChat/Rocket.Chat/pull/7214)) -- flex-tab now is side by side with message list ([#7448](https://github.com/RocketChat/Rocket.Chat/pull/7448) by [@karlprieb](https://github.com/karlprieb)) +- Add room type identifier to room list header ([#7520](https://github.com/RocketChat/Rocket.Chat/pull/7520) by [@danischreiber](https://github.com/danischreiber)) -- Force use of MongoDB for spotlight queries ([#7311](https://github.com/RocketChat/Rocket.Chat/pull/7311)) +- Room type and recipient data for global event ([#7523](https://github.com/RocketChat/Rocket.Chat/pull/7523) by [@danischreiber](https://github.com/danischreiber)) -- Option to select unread count behavior ([#7477](https://github.com/RocketChat/Rocket.Chat/pull/7477)) +- Show room leader at top of chat when user scrolls down. Set and unset leader as admin. ([#7526](https://github.com/RocketChat/Rocket.Chat/pull/7526) by [@danischreiber](https://github.com/danischreiber)) -- Option to select unread count style ([#7589](https://github.com/RocketChat/Rocket.Chat/pull/7589)) +- Add toolbar buttons for iframe API ([#7525](https://github.com/RocketChat/Rocket.Chat/pull/7525)) -- Room type and recipient data for global event ([#7523](https://github.com/RocketChat/Rocket.Chat/pull/7523) by [@danischreiber](https://github.com/danischreiber)) +- Add close button to flex tabs ([#7529](https://github.com/RocketChat/Rocket.Chat/pull/7529)) -- Search users also by email in toolbar ([#7334](https://github.com/RocketChat/Rocket.Chat/pull/7334) by [@shahar3012](https://github.com/shahar3012)) +- Update meteor to 1.5.1 ([#7496](https://github.com/RocketChat/Rocket.Chat/pull/7496)) -- Show different shape for alert numbers when have mentions ([#7580](https://github.com/RocketChat/Rocket.Chat/pull/7580)) +- flex-tab now is side by side with message list ([#7448](https://github.com/RocketChat/Rocket.Chat/pull/7448) by [@karlprieb](https://github.com/karlprieb)) -- Show emojis and file uploads on notifications ([#7559](https://github.com/RocketChat/Rocket.Chat/pull/7559)) +- Option to select unread count behavior ([#7477](https://github.com/RocketChat/Rocket.Chat/pull/7477)) -- Show room leader at top of chat when user scrolls down. Set and unset leader as admin. ([#7526](https://github.com/RocketChat/Rocket.Chat/pull/7526) by [@danischreiber](https://github.com/danischreiber)) +- Force use of MongoDB for spotlight queries ([#7311](https://github.com/RocketChat/Rocket.Chat/pull/7311)) -- Update meteor to 1.5.1 ([#7496](https://github.com/RocketChat/Rocket.Chat/pull/7496)) +- Add healthchecks in OpenShift templates ([#7184](https://github.com/RocketChat/Rocket.Chat/pull/7184) by [@jfchevrette](https://github.com/jfchevrette)) + +- Add unread options for direct messages ([#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658)) ### 🐛 Bug fixes -- "requirePasswordChange" property not being saved when set to false ([#7209](https://github.com/RocketChat/Rocket.Chat/pull/7209)) +- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) -- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) +- Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) -- Always set LDAP properties on login ([#7472](https://github.com/RocketChat/Rocket.Chat/pull/7472)) +- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) -- Csv importer: work with more problematic data ([#7456](https://github.com/RocketChat/Rocket.Chat/pull/7456) by [@reist](https://github.com/reist)) +- Error when updating message with an empty attachment array ([#7624](https://github.com/RocketChat/Rocket.Chat/pull/7624)) -- Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) +- Uploading an unknown file type erroring out ([#7623](https://github.com/RocketChat/Rocket.Chat/pull/7623)) - Error when acessing settings before ready ([#7622](https://github.com/RocketChat/Rocket.Chat/pull/7622)) -- Error when updating message with an empty attachment array ([#7624](https://github.com/RocketChat/Rocket.Chat/pull/7624)) - -- Fix admin room list show the correct i18n type ([#7582](https://github.com/RocketChat/Rocket.Chat/pull/7582) by [@ccfang](https://github.com/ccfang)) +- Message box on safari ([#7621](https://github.com/RocketChat/Rocket.Chat/pull/7621)) -- Fix Block Delete Message After (n) Minutes ([#7207](https://github.com/RocketChat/Rocket.Chat/pull/7207)) +- The username not being allowed to be passed into the user.setAvatar ([#7620](https://github.com/RocketChat/Rocket.Chat/pull/7620)) - Fix Custom Fields Crashing on Register ([#7617](https://github.com/RocketChat/Rocket.Chat/pull/7617)) -- Fix editing others messages ([#7200](https://github.com/RocketChat/Rocket.Chat/pull/7200)) +- Fix admin room list show the correct i18n type ([#7582](https://github.com/RocketChat/Rocket.Chat/pull/7582) by [@ccfang](https://github.com/ccfang)) -- Fix Emails in User Admin View ([#7431](https://github.com/RocketChat/Rocket.Chat/pull/7431)) +- URL parse error fix for issue #7169 ([#7538](https://github.com/RocketChat/Rocket.Chat/pull/7538) by [@satyapramodh](https://github.com/satyapramodh)) -- Fix emoji picker translations ([#7195](https://github.com/RocketChat/Rocket.Chat/pull/7195)) +- User avatar image background ([#7572](https://github.com/RocketChat/Rocket.Chat/pull/7572) by [@filipedelimabrito](https://github.com/filipedelimabrito)) -- Fix error on image preview due to undefined description|title ([#7187](https://github.com/RocketChat/Rocket.Chat/pull/7187)) +- Look for livechat visitor IP address on X-Forwarded-For header ([#7554](https://github.com/RocketChat/Rocket.Chat/pull/7554)) -- Fix file upload on Slack import ([#7469](https://github.com/RocketChat/Rocket.Chat/pull/7469)) +- Revert emojione package version upgrade ([#7557](https://github.com/RocketChat/Rocket.Chat/pull/7557)) -- Fix geolocation button ([#7322](https://github.com/RocketChat/Rocket.Chat/pull/7322)) +- Stop logging mentions object to console ([#7562](https://github.com/RocketChat/Rocket.Chat/pull/7562) by [@gdelavald](https://github.com/gdelavald)) - Fix hiding flex-tab on embedded view ([#7486](https://github.com/RocketChat/Rocket.Chat/pull/7486)) -- Fix jump to unread button ([#7320](https://github.com/RocketChat/Rocket.Chat/pull/7320)) +- Fix emoji picker translations ([#7195](https://github.com/RocketChat/Rocket.Chat/pull/7195)) -- Fix messagebox growth ([#7629](https://github.com/RocketChat/Rocket.Chat/pull/7629)) +- Issue #7365: added check for the existence of a parameter in the CAS URL ([#7471](https://github.com/RocketChat/Rocket.Chat/pull/7471) by [@wsw70](https://github.com/wsw70)) -- Fix migration of avatars from version 0.57.0 ([#7428](https://github.com/RocketChat/Rocket.Chat/pull/7428)) +- Fix Word Placement Anywhere on WebHooks ([#7392](https://github.com/RocketChat/Rocket.Chat/pull/7392)) -- Fix oembed previews not being shown ([#7208](https://github.com/RocketChat/Rocket.Chat/pull/7208)) +- Prevent new room status from playing when user status changes ([#7487](https://github.com/RocketChat/Rocket.Chat/pull/7487)) -- Fix Private Channel List Submit ([#7432](https://github.com/RocketChat/Rocket.Chat/pull/7432)) +- S3 uploads not working for custom URLs ([#7443](https://github.com/RocketChat/Rocket.Chat/pull/7443)) -- Fix room load on first hit ([#7687](https://github.com/RocketChat/Rocket.Chat/pull/7687)) +- Fix Private Channel List Submit ([#7432](https://github.com/RocketChat/Rocket.Chat/pull/7432)) -- Fix Secret Url ([#7321](https://github.com/RocketChat/Rocket.Chat/pull/7321)) +- Fix file upload on Slack import ([#7469](https://github.com/RocketChat/Rocket.Chat/pull/7469)) - Fix Unread Bar Disappearing ([#7403](https://github.com/RocketChat/Rocket.Chat/pull/7403)) -- Fix Word Placement Anywhere on WebHooks ([#7392](https://github.com/RocketChat/Rocket.Chat/pull/7392)) +- Always set LDAP properties on login ([#7472](https://github.com/RocketChat/Rocket.Chat/pull/7472)) -- Issue #7365: added check for the existence of a parameter in the CAS URL ([#7471](https://github.com/RocketChat/Rocket.Chat/pull/7471) by [@wsw70](https://github.com/wsw70)) +- url click events in the cordova app open in external browser or not at all ([#7205](https://github.com/RocketChat/Rocket.Chat/pull/7205) by [@flaviogrossi](https://github.com/flaviogrossi)) -- Look for livechat visitor IP address on X-Forwarded-For header ([#7554](https://github.com/RocketChat/Rocket.Chat/pull/7554)) +- Fix Emails in User Admin View ([#7431](https://github.com/RocketChat/Rocket.Chat/pull/7431)) -- make flex-tab visible again when reduced width ([#7738](https://github.com/RocketChat/Rocket.Chat/pull/7738)) +- Fix migration of avatars from version 0.57.0 ([#7428](https://github.com/RocketChat/Rocket.Chat/pull/7428)) -- Markdown noopener/noreferrer: use correct HTML attribute ([#7644](https://github.com/RocketChat/Rocket.Chat/pull/7644) by [@jangmarker](https://github.com/jangmarker)) +- sweetalert alignment on mobile ([#7404](https://github.com/RocketChat/Rocket.Chat/pull/7404) by [@karlprieb](https://github.com/karlprieb)) -- Message box on safari ([#7621](https://github.com/RocketChat/Rocket.Chat/pull/7621)) +- Sweet-Alert modal popup position on mobile devices ([#7376](https://github.com/RocketChat/Rocket.Chat/pull/7376) by [@Oliver84](https://github.com/Oliver84)) -- Prevent new room status from playing when user status changes ([#7487](https://github.com/RocketChat/Rocket.Chat/pull/7487)) +- Update node-engine in Snap to latest v4 LTS relase: 4.8.3 ([#7355](https://github.com/RocketChat/Rocket.Chat/pull/7355) by [@al3x](https://github.com/al3x)) - Remove warning about 2FA support being unavailable in mobile apps ([#7354](https://github.com/RocketChat/Rocket.Chat/pull/7354) by [@al3x](https://github.com/al3x)) -- Revert emojione package version upgrade ([#7557](https://github.com/RocketChat/Rocket.Chat/pull/7557)) +- Fix geolocation button ([#7322](https://github.com/RocketChat/Rocket.Chat/pull/7322)) -- S3 uploads not working for custom URLs ([#7443](https://github.com/RocketChat/Rocket.Chat/pull/7443)) +- Fix Block Delete Message After (n) Minutes ([#7207](https://github.com/RocketChat/Rocket.Chat/pull/7207)) -- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) +- Fix jump to unread button ([#7320](https://github.com/RocketChat/Rocket.Chat/pull/7320)) -- Stop logging mentions object to console ([#7562](https://github.com/RocketChat/Rocket.Chat/pull/7562) by [@gdelavald](https://github.com/gdelavald)) +- Fix Secret Url ([#7321](https://github.com/RocketChat/Rocket.Chat/pull/7321)) -- Sweet-Alert modal popup position on mobile devices ([#7376](https://github.com/RocketChat/Rocket.Chat/pull/7376) by [@Oliver84](https://github.com/Oliver84)) +- Use I18n on "File Uploaded" ([#7199](https://github.com/RocketChat/Rocket.Chat/pull/7199)) -- sweetalert alignment on mobile ([#7404](https://github.com/RocketChat/Rocket.Chat/pull/7404) by [@karlprieb](https://github.com/karlprieb)) +- "requirePasswordChange" property not being saved when set to false ([#7209](https://github.com/RocketChat/Rocket.Chat/pull/7209)) -- The username not being allowed to be passed into the user.setAvatar ([#7620](https://github.com/RocketChat/Rocket.Chat/pull/7620)) +- Fix oembed previews not being shown ([#7208](https://github.com/RocketChat/Rocket.Chat/pull/7208)) -- Update node-engine in Snap to latest v4 LTS relase: 4.8.3 ([#7355](https://github.com/RocketChat/Rocket.Chat/pull/7355) by [@al3x](https://github.com/al3x)) +- Fix editing others messages ([#7200](https://github.com/RocketChat/Rocket.Chat/pull/7200)) -- Uploading an unknown file type erroring out ([#7623](https://github.com/RocketChat/Rocket.Chat/pull/7623)) +- Fix error on image preview due to undefined description|title ([#7187](https://github.com/RocketChat/Rocket.Chat/pull/7187)) -- url click events in the cordova app open in external browser or not at all ([#7205](https://github.com/RocketChat/Rocket.Chat/pull/7205) by [@flaviogrossi](https://github.com/flaviogrossi)) +- Fix messagebox growth ([#7629](https://github.com/RocketChat/Rocket.Chat/pull/7629)) -- URL parse error fix for issue #7169 ([#7538](https://github.com/RocketChat/Rocket.Chat/pull/7538) by [@satyapramodh](https://github.com/satyapramodh)) +- Wrong render of snippet’s name ([#7630](https://github.com/RocketChat/Rocket.Chat/pull/7630)) -- Use I18n on "File Uploaded" ([#7199](https://github.com/RocketChat/Rocket.Chat/pull/7199)) +- Fix room load on first hit ([#7687](https://github.com/RocketChat/Rocket.Chat/pull/7687)) -- User avatar image background ([#7572](https://github.com/RocketChat/Rocket.Chat/pull/7572) by [@filipedelimabrito](https://github.com/filipedelimabrito)) +- Markdown noopener/noreferrer: use correct HTML attribute ([#7644](https://github.com/RocketChat/Rocket.Chat/pull/7644) by [@jangmarker](https://github.com/jangmarker)) - Wrong email subject when "All Messages" setting enabled ([#7639](https://github.com/RocketChat/Rocket.Chat/pull/7639)) -- Wrong render of snippet’s name ([#7630](https://github.com/RocketChat/Rocket.Chat/pull/7630)) +- Csv importer: work with more problematic data ([#7456](https://github.com/RocketChat/Rocket.Chat/pull/7456) by [@reist](https://github.com/reist)) + +- make flex-tab visible again when reduced width ([#7738](https://github.com/RocketChat/Rocket.Chat/pull/7738))
🔍 Minor changes -- [Fix] Don't save user to DB when a custom field is invalid ([#7513](https://github.com/RocketChat/Rocket.Chat/pull/7513) by [@Darkneon](https://github.com/Darkneon)) - -- [New] Add instance id to response headers ([#7211](https://github.com/RocketChat/Rocket.Chat/pull/7211)) +- Release 0.58.0 ([#7752](https://github.com/RocketChat/Rocket.Chat/pull/7752) by [@flaviogrossi](https://github.com/flaviogrossi) & [@jangmarker](https://github.com/jangmarker) & [@karlprieb](https://github.com/karlprieb) & [@pierreozoux](https://github.com/pierreozoux) & [@ryoshimizu](https://github.com/ryoshimizu)) -- Add helm chart kubernetes deployment ([#6340](https://github.com/RocketChat/Rocket.Chat/pull/6340) by [@pierreozoux](https://github.com/pierreozoux)) +- Sync Master with 0.57.3 ([#7690](https://github.com/RocketChat/Rocket.Chat/pull/7690)) - Add missing parts of `one click to direct message` ([#7608](https://github.com/RocketChat/Rocket.Chat/pull/7608)) -- Better Issue Template ([#7492](https://github.com/RocketChat/Rocket.Chat/pull/7492)) +- LingoHub based on develop ([#7613](https://github.com/RocketChat/Rocket.Chat/pull/7613)) -- Develop sync ([#7590](https://github.com/RocketChat/Rocket.Chat/pull/7590)) +- Improve link parser using tokens ([#7615](https://github.com/RocketChat/Rocket.Chat/pull/7615)) -- Develop sync ([#7500](https://github.com/RocketChat/Rocket.Chat/pull/7500) by [@thinkeridea](https://github.com/thinkeridea)) +- Improve login error messages ([#7616](https://github.com/RocketChat/Rocket.Chat/pull/7616)) -- Develop sync ([#7363](https://github.com/RocketChat/Rocket.Chat/pull/7363) by [@JSzaszvari](https://github.com/JSzaszvari)) +- LingoHub based on develop ([#7594](https://github.com/RocketChat/Rocket.Chat/pull/7594)) -- Escape error messages ([#7308](https://github.com/RocketChat/Rocket.Chat/pull/7308)) +- Improve room leader ([#7578](https://github.com/RocketChat/Rocket.Chat/pull/7578)) -- Fix the Zapier oAuth return url to the new one ([#7215](https://github.com/RocketChat/Rocket.Chat/pull/7215)) +- Develop sync ([#7590](https://github.com/RocketChat/Rocket.Chat/pull/7590)) -- Improve link parser using tokens ([#7615](https://github.com/RocketChat/Rocket.Chat/pull/7615)) +- [Fix] Don't save user to DB when a custom field is invalid ([#7513](https://github.com/RocketChat/Rocket.Chat/pull/7513) by [@Darkneon](https://github.com/Darkneon)) + +- Develop sync ([#7500](https://github.com/RocketChat/Rocket.Chat/pull/7500) by [@thinkeridea](https://github.com/thinkeridea)) -- Improve login error messages ([#7616](https://github.com/RocketChat/Rocket.Chat/pull/7616)) +- Better Issue Template ([#7492](https://github.com/RocketChat/Rocket.Chat/pull/7492)) -- Improve room leader ([#7578](https://github.com/RocketChat/Rocket.Chat/pull/7578)) +- Add helm chart kubernetes deployment ([#6340](https://github.com/RocketChat/Rocket.Chat/pull/6340) by [@pierreozoux](https://github.com/pierreozoux)) -- LingoHub based on develop ([#7613](https://github.com/RocketChat/Rocket.Chat/pull/7613)) +- Develop sync ([#7363](https://github.com/RocketChat/Rocket.Chat/pull/7363) by [@JSzaszvari](https://github.com/JSzaszvari)) -- LingoHub based on develop ([#7594](https://github.com/RocketChat/Rocket.Chat/pull/7594)) +- Escape error messages ([#7308](https://github.com/RocketChat/Rocket.Chat/pull/7308)) -- Only use "File Uploaded" prefix on files ([#7652](https://github.com/RocketChat/Rocket.Chat/pull/7652)) +- update meteor to 1.5.0 ([#7287](https://github.com/RocketChat/Rocket.Chat/pull/7287)) -- Release 0.58.0 ([#7752](https://github.com/RocketChat/Rocket.Chat/pull/7752) by [@flaviogrossi](https://github.com/flaviogrossi) & [@jangmarker](https://github.com/jangmarker) & [@karlprieb](https://github.com/karlprieb) & [@pierreozoux](https://github.com/pierreozoux) & [@ryoshimizu](https://github.com/ryoshimizu)) +- Fix the Zapier oAuth return url to the new one ([#7215](https://github.com/RocketChat/Rocket.Chat/pull/7215)) -- Sync Master with 0.57.3 ([#7690](https://github.com/RocketChat/Rocket.Chat/pull/7690)) +- [New] Add instance id to response headers ([#7211](https://github.com/RocketChat/Rocket.Chat/pull/7211)) -- update meteor to 1.5.0 ([#7287](https://github.com/RocketChat/Rocket.Chat/pull/7287)) +- Only use "File Uploaded" prefix on files ([#7652](https://github.com/RocketChat/Rocket.Chat/pull/7652))
@@ -12012,11 +12316,11 @@ ### 🐛 Bug fixes -- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) +- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) - Duplicate code in rest api letting in a few bugs with the rest api ([#8408](https://github.com/RocketChat/Rocket.Chat/pull/8408)) -- Slack import failing and not being able to be restarted ([#8390](https://github.com/RocketChat/Rocket.Chat/pull/8390)) +- Add needed dependency for snaps ([#8389](https://github.com/RocketChat/Rocket.Chat/pull/8389)) ### 👩‍💻👨‍💻 Core Team 🤓 @@ -12033,21 +12337,21 @@ ### 🐛 Bug fixes +- Modernize rate limiting of sendMessage ([#7325](https://github.com/RocketChat/Rocket.Chat/pull/7325) by [@jangmarker](https://github.com/jangmarker)) + - custom soundEdit.html ([#7390](https://github.com/RocketChat/Rocket.Chat/pull/7390) by [@rasos](https://github.com/rasos)) +- Use UTF8 setting for /create command ([#7394](https://github.com/RocketChat/Rocket.Chat/pull/7394)) + - file upload broken when running in subdirectory https://github.com… ([#7395](https://github.com/RocketChat/Rocket.Chat/pull/7395) by [@ryoshimizu](https://github.com/ryoshimizu)) - Fix Anonymous User ([#7444](https://github.com/RocketChat/Rocket.Chat/pull/7444)) -- Fix Join Channel Without Preview Room Permission ([#7535](https://github.com/RocketChat/Rocket.Chat/pull/7535)) - -- Improve build script example ([#7555](https://github.com/RocketChat/Rocket.Chat/pull/7555)) - - Missing eventName in unUser ([#7533](https://github.com/RocketChat/Rocket.Chat/pull/7533) by [@Darkneon](https://github.com/Darkneon)) -- Modernize rate limiting of sendMessage ([#7325](https://github.com/RocketChat/Rocket.Chat/pull/7325) by [@jangmarker](https://github.com/jangmarker)) +- Fix Join Channel Without Preview Room Permission ([#7535](https://github.com/RocketChat/Rocket.Chat/pull/7535)) -- Use UTF8 setting for /create command ([#7394](https://github.com/RocketChat/Rocket.Chat/pull/7394)) +- Improve build script example ([#7555](https://github.com/RocketChat/Rocket.Chat/pull/7555))
🔍 Minor changes @@ -12080,16 +12384,16 @@ ### 🐛 Bug fixes +- Fix Emails in User Admin View ([#7431](https://github.com/RocketChat/Rocket.Chat/pull/7431)) + - Always set LDAP properties on login ([#7472](https://github.com/RocketChat/Rocket.Chat/pull/7472)) -- Fix Emails in User Admin View ([#7431](https://github.com/RocketChat/Rocket.Chat/pull/7431)) +- Fix Unread Bar Disappearing ([#7403](https://github.com/RocketChat/Rocket.Chat/pull/7403)) - Fix file upload on Slack import ([#7469](https://github.com/RocketChat/Rocket.Chat/pull/7469)) - Fix Private Channel List Submit ([#7432](https://github.com/RocketChat/Rocket.Chat/pull/7432)) -- Fix Unread Bar Disappearing ([#7403](https://github.com/RocketChat/Rocket.Chat/pull/7403)) - - S3 uploads not working for custom URLs ([#7443](https://github.com/RocketChat/Rocket.Chat/pull/7443)) ### 👩‍💻👨‍💻 Core Team 🤓 @@ -12130,184 +12434,184 @@ ### 🎉 New features -- API method and REST Endpoint for getting a single message by id ([#7085](https://github.com/RocketChat/Rocket.Chat/pull/7085)) - -- Feature/delete any message permission ([#6919](https://github.com/RocketChat/Rocket.Chat/pull/6919) by [@phutchins](https://github.com/phutchins)) - -- Force use of MongoDB for spotlight queries ([#7311](https://github.com/RocketChat/Rocket.Chat/pull/7311)) +- New avatar storage types ([#6788](https://github.com/RocketChat/Rocket.Chat/pull/6788)) -- Improve CI/Docker build/release ([#6938](https://github.com/RocketChat/Rocket.Chat/pull/6938)) +- Show full name in mentions if use full name setting enabled ([#6690](https://github.com/RocketChat/Rocket.Chat/pull/6690) by [@alexbrazier](https://github.com/alexbrazier)) - Increase unread message count on @here mention ([#7059](https://github.com/RocketChat/Rocket.Chat/pull/7059)) -- Make channel/group delete call answer to roomName ([#6857](https://github.com/RocketChat/Rocket.Chat/pull/6857) by [@reist](https://github.com/reist)) +- API method and REST Endpoint for getting a single message by id ([#7085](https://github.com/RocketChat/Rocket.Chat/pull/7085)) - Migration to add tags to email header and footer ([#7080](https://github.com/RocketChat/Rocket.Chat/pull/7080)) -- New avatar storage types ([#6788](https://github.com/RocketChat/Rocket.Chat/pull/6788)) - - postcss parser and cssnext implementation ([#6982](https://github.com/RocketChat/Rocket.Chat/pull/6982)) -- Show full name in mentions if use full name setting enabled ([#6690](https://github.com/RocketChat/Rocket.Chat/pull/6690) by [@alexbrazier](https://github.com/alexbrazier)) +- Start running unit tests ([#6605](https://github.com/RocketChat/Rocket.Chat/pull/6605)) + +- Make channel/group delete call answer to roomName ([#6857](https://github.com/RocketChat/Rocket.Chat/pull/6857) by [@reist](https://github.com/reist)) - Show info about multiple instances at admin page ([#6953](https://github.com/RocketChat/Rocket.Chat/pull/6953)) -- Start running unit tests ([#6605](https://github.com/RocketChat/Rocket.Chat/pull/6605)) +- Improve CI/Docker build/release ([#6938](https://github.com/RocketChat/Rocket.Chat/pull/6938)) + +- Feature/delete any message permission ([#6919](https://github.com/RocketChat/Rocket.Chat/pull/6919) by [@phutchins](https://github.com/phutchins)) + +- Force use of MongoDB for spotlight queries ([#7311](https://github.com/RocketChat/Rocket.Chat/pull/7311)) ### 🐛 Bug fixes -- "requirePasswordChange" property not being saved when set to false ([#7209](https://github.com/RocketChat/Rocket.Chat/pull/7209)) +- Message being displayed unescaped ([#7379](https://github.com/RocketChat/Rocket.Chat/pull/7379) by [@gdelavald](https://github.com/gdelavald)) -- Add and to header and footer ([#7025](https://github.com/RocketChat/Rocket.Chat/pull/7025) by [@ExTechOp](https://github.com/ExTechOp)) +- Fix highlightjs bug ([#6991](https://github.com/RocketChat/Rocket.Chat/pull/6991)) + +- do only store password if LDAP_Login_Fallback is on ([#7030](https://github.com/RocketChat/Rocket.Chat/pull/7030) by [@pmb0](https://github.com/pmb0)) + +- fix bug in preview image ([#7121](https://github.com/RocketChat/Rocket.Chat/pull/7121)) + +- Fix the failing tests ([#7094](https://github.com/RocketChat/Rocket.Chat/pull/7094)) - Add option to ignore TLS in SMTP server settings ([#7084](https://github.com/RocketChat/Rocket.Chat/pull/7084) by [@colin-campbell](https://github.com/colin-campbell)) - Add support for carriage return in markdown code blocks ([#7072](https://github.com/RocketChat/Rocket.Chat/pull/7072) by [@jm-factorin](https://github.com/jm-factorin)) -- Allow image insert from slack through slackbridge ([#6910](https://github.com/RocketChat/Rocket.Chat/pull/6910)) - -- Bugs in `isUserFromParams` helper ([#6904](https://github.com/RocketChat/Rocket.Chat/pull/6904) by [@abrom](https://github.com/abrom)) +- Parse HTML on admin setting's descriptions ([#7014](https://github.com/RocketChat/Rocket.Chat/pull/7014)) -- Check that username is not in the room when being muted / unmuted ([#6840](https://github.com/RocketChat/Rocket.Chat/pull/6840) by [@matthewshirley](https://github.com/matthewshirley)) +- edit button on firefox ([#7105](https://github.com/RocketChat/Rocket.Chat/pull/7105)) -- click on image in a message ([#7345](https://github.com/RocketChat/Rocket.Chat/pull/7345)) +- Fix missing CSS files on production builds ([#7104](https://github.com/RocketChat/Rocket.Chat/pull/7104)) - clipboard (permalink, copy, pin, star buttons) ([#7103](https://github.com/RocketChat/Rocket.Chat/pull/7103)) -- do only store password if LDAP_Login_Fallback is on ([#7030](https://github.com/RocketChat/Rocket.Chat/pull/7030) by [@pmb0](https://github.com/pmb0)) - -- edit button on firefox ([#7105](https://github.com/RocketChat/Rocket.Chat/pull/7105)) +- Fixed typo hmtl -> html ([#7092](https://github.com/RocketChat/Rocket.Chat/pull/7092) by [@jautero](https://github.com/jautero)) -- Fix all reactions having the same username ([#7157](https://github.com/RocketChat/Rocket.Chat/pull/7157)) +- Add and to header and footer ([#7025](https://github.com/RocketChat/Rocket.Chat/pull/7025) by [@ExTechOp](https://github.com/ExTechOp)) -- Fix avatar upload via users.setAvatar REST endpoint ([#7045](https://github.com/RocketChat/Rocket.Chat/pull/7045)) +- Prevent Ctrl key on message field from reloading messages list ([#7033](https://github.com/RocketChat/Rocket.Chat/pull/7033)) -- Fix badge counter on iOS push notifications ([#6950](https://github.com/RocketChat/Rocket.Chat/pull/6950)) +- New screen sharing Chrome extension checking method ([#7044](https://github.com/RocketChat/Rocket.Chat/pull/7044)) -- fix bug in preview image ([#7121](https://github.com/RocketChat/Rocket.Chat/pull/7121)) +- Improve Tests ([#7049](https://github.com/RocketChat/Rocket.Chat/pull/7049)) -- Fix editing others messages ([#7200](https://github.com/RocketChat/Rocket.Chat/pull/7200)) +- Fix avatar upload via users.setAvatar REST endpoint ([#7045](https://github.com/RocketChat/Rocket.Chat/pull/7045)) -- Fix error handling for non-valid avatar URL ([#6972](https://github.com/RocketChat/Rocket.Chat/pull/6972)) +- Sidenav roomlist ([#7023](https://github.com/RocketChat/Rocket.Chat/pull/7023)) -- Fix highlightjs bug ([#6991](https://github.com/RocketChat/Rocket.Chat/pull/6991)) +- video message recording dialog is shown in an incorrect position ([#7012](https://github.com/RocketChat/Rocket.Chat/pull/7012) by [@flaviogrossi](https://github.com/flaviogrossi)) -- Fix jump to unread button ([#7320](https://github.com/RocketChat/Rocket.Chat/pull/7320)) +- Remove room from roomPick setting ([#6912](https://github.com/RocketChat/Rocket.Chat/pull/6912)) -- Fix login with Meteor saving an object as email address ([#6974](https://github.com/RocketChat/Rocket.Chat/pull/6974)) +- Parse markdown links last ([#6997](https://github.com/RocketChat/Rocket.Chat/pull/6997)) -- Fix missing CSS files on production builds ([#7104](https://github.com/RocketChat/Rocket.Chat/pull/7104)) +- overlapping text for users-typing-message ([#6999](https://github.com/RocketChat/Rocket.Chat/pull/6999) by [@darkv](https://github.com/darkv)) -- Fix oembed previews not being shown ([#7208](https://github.com/RocketChat/Rocket.Chat/pull/7208)) +- Updating Incoming Integration Post As Field Not Allowed ([#6903](https://github.com/RocketChat/Rocket.Chat/pull/6903)) -- Fix Secret Url ([#7321](https://github.com/RocketChat/Rocket.Chat/pull/7321)) +- Fix error handling for non-valid avatar URL ([#6972](https://github.com/RocketChat/Rocket.Chat/pull/6972)) -- Fix the failing tests ([#7094](https://github.com/RocketChat/Rocket.Chat/pull/7094)) +- SAML: Only set KeyDescriptor when non empty ([#6961](https://github.com/RocketChat/Rocket.Chat/pull/6961) by [@sathieu](https://github.com/sathieu)) - Fix the other tests failing due chimp update ([#6986](https://github.com/RocketChat/Rocket.Chat/pull/6986)) -- Fix user's customFields not being saved correctly ([#7358](https://github.com/RocketChat/Rocket.Chat/pull/7358)) +- Fix badge counter on iOS push notifications ([#6950](https://github.com/RocketChat/Rocket.Chat/pull/6950)) -- Fixed typo hmtl -> html ([#7092](https://github.com/RocketChat/Rocket.Chat/pull/7092) by [@jautero](https://github.com/jautero)) +- Fix login with Meteor saving an object as email address ([#6974](https://github.com/RocketChat/Rocket.Chat/pull/6974)) -- Improve avatar migration ([#7352](https://github.com/RocketChat/Rocket.Chat/pull/7352)) +- Check that username is not in the room when being muted / unmuted ([#6840](https://github.com/RocketChat/Rocket.Chat/pull/6840) by [@matthewshirley](https://github.com/matthewshirley)) -- Improve Tests ([#7049](https://github.com/RocketChat/Rocket.Chat/pull/7049)) +- Use AWS Signature Version 4 signed URLs for uploads ([#6947](https://github.com/RocketChat/Rocket.Chat/pull/6947)) - make channels.create API check for create-c ([#6968](https://github.com/RocketChat/Rocket.Chat/pull/6968) by [@reist](https://github.com/reist)) -- Message being displayed unescaped ([#7379](https://github.com/RocketChat/Rocket.Chat/pull/7379) by [@gdelavald](https://github.com/gdelavald)) - -- New screen sharing Chrome extension checking method ([#7044](https://github.com/RocketChat/Rocket.Chat/pull/7044)) +- Bugs in `isUserFromParams` helper ([#6904](https://github.com/RocketChat/Rocket.Chat/pull/6904) by [@abrom](https://github.com/abrom)) -- overlapping text for users-typing-message ([#6999](https://github.com/RocketChat/Rocket.Chat/pull/6999) by [@darkv](https://github.com/darkv)) +- Allow image insert from slack through slackbridge ([#6910](https://github.com/RocketChat/Rocket.Chat/pull/6910)) -- Parse HTML on admin setting's descriptions ([#7014](https://github.com/RocketChat/Rocket.Chat/pull/7014)) +- Slackbridge text replacements ([#6913](https://github.com/RocketChat/Rocket.Chat/pull/6913)) -- Parse markdown links last ([#6997](https://github.com/RocketChat/Rocket.Chat/pull/6997)) +- Fix all reactions having the same username ([#7157](https://github.com/RocketChat/Rocket.Chat/pull/7157)) -- Prevent Ctrl key on message field from reloading messages list ([#7033](https://github.com/RocketChat/Rocket.Chat/pull/7033)) +- Fix editing others messages ([#7200](https://github.com/RocketChat/Rocket.Chat/pull/7200)) -- Proxy upload to correct instance ([#7304](https://github.com/RocketChat/Rocket.Chat/pull/7304)) +- Fix oembed previews not being shown ([#7208](https://github.com/RocketChat/Rocket.Chat/pull/7208)) -- Remove room from roomPick setting ([#6912](https://github.com/RocketChat/Rocket.Chat/pull/6912)) +- "requirePasswordChange" property not being saved when set to false ([#7209](https://github.com/RocketChat/Rocket.Chat/pull/7209)) - Removing the kadira package install from example build script. ([#7160](https://github.com/RocketChat/Rocket.Chat/pull/7160) by [@JSzaszvari](https://github.com/JSzaszvari)) -- SAML: Only set KeyDescriptor when non empty ([#6961](https://github.com/RocketChat/Rocket.Chat/pull/6961) by [@sathieu](https://github.com/sathieu)) +- Fix user's customFields not being saved correctly ([#7358](https://github.com/RocketChat/Rocket.Chat/pull/7358)) -- Sidenav roomlist ([#7023](https://github.com/RocketChat/Rocket.Chat/pull/7023)) +- Improve avatar migration ([#7352](https://github.com/RocketChat/Rocket.Chat/pull/7352)) -- Slackbridge text replacements ([#6913](https://github.com/RocketChat/Rocket.Chat/pull/6913)) +- Fix jump to unread button ([#7320](https://github.com/RocketChat/Rocket.Chat/pull/7320)) -- Updating Incoming Integration Post As Field Not Allowed ([#6903](https://github.com/RocketChat/Rocket.Chat/pull/6903)) +- click on image in a message ([#7345](https://github.com/RocketChat/Rocket.Chat/pull/7345)) -- Use AWS Signature Version 4 signed URLs for uploads ([#6947](https://github.com/RocketChat/Rocket.Chat/pull/6947)) +- Proxy upload to correct instance ([#7304](https://github.com/RocketChat/Rocket.Chat/pull/7304)) -- video message recording dialog is shown in an incorrect position ([#7012](https://github.com/RocketChat/Rocket.Chat/pull/7012) by [@flaviogrossi](https://github.com/flaviogrossi)) +- Fix Secret Url ([#7321](https://github.com/RocketChat/Rocket.Chat/pull/7321))
🔍 Minor changes -- [Fix] Error when trying to show preview of undefined filetype ([#6935](https://github.com/RocketChat/Rocket.Chat/pull/6935)) - -- [New] LDAP: Use variables in User_Data_FieldMap for name mapping ([#6921](https://github.com/RocketChat/Rocket.Chat/pull/6921) by [@bbrauns](https://github.com/bbrauns)) - - add server methods getRoomNameById ([#7102](https://github.com/RocketChat/Rocket.Chat/pull/7102) by [@thinkeridea](https://github.com/thinkeridea)) +- Convert hipchat importer to js ([#7146](https://github.com/RocketChat/Rocket.Chat/pull/7146)) + - Convert file unsubscribe.coffee to js ([#7145](https://github.com/RocketChat/Rocket.Chat/pull/7145)) -- Convert hipchat importer to js ([#7146](https://github.com/RocketChat/Rocket.Chat/pull/7146)) +- Convert oauth2-server-config package to js ([#7017](https://github.com/RocketChat/Rocket.Chat/pull/7017)) - Convert irc package to js ([#7022](https://github.com/RocketChat/Rocket.Chat/pull/7022)) -- Convert Livechat from Coffeescript to JavaScript ([#7096](https://github.com/RocketChat/Rocket.Chat/pull/7096)) - -- Convert meteor-autocomplete package to js ([#6936](https://github.com/RocketChat/Rocket.Chat/pull/6936)) +- Ldap: User_Data_FieldMap description ([#7055](https://github.com/RocketChat/Rocket.Chat/pull/7055) by [@bbrauns](https://github.com/bbrauns)) -- Convert oauth2-server-config package to js ([#7017](https://github.com/RocketChat/Rocket.Chat/pull/7017)) +- Remove Useless Jasmine Tests ([#7062](https://github.com/RocketChat/Rocket.Chat/pull/7062)) -- Convert Ui Account Package to Js ([#6795](https://github.com/RocketChat/Rocket.Chat/pull/6795)) +- converted rocketchat-importer ([#7018](https://github.com/RocketChat/Rocket.Chat/pull/7018)) -- Convert ui-admin package to js ([#6911](https://github.com/RocketChat/Rocket.Chat/pull/6911)) +- LingoHub based on develop ([#7114](https://github.com/RocketChat/Rocket.Chat/pull/7114)) -- Convert WebRTC Package to Js ([#6775](https://github.com/RocketChat/Rocket.Chat/pull/6775)) +- Convert Livechat from Coffeescript to JavaScript ([#7096](https://github.com/RocketChat/Rocket.Chat/pull/7096)) -- converted rocketchat-importer ([#7018](https://github.com/RocketChat/Rocket.Chat/pull/7018)) +- Rocketchat ui3 ([#7006](https://github.com/RocketChat/Rocket.Chat/pull/7006)) - converted rocketchat-ui coffee to js part 2 ([#6836](https://github.com/RocketChat/Rocket.Chat/pull/6836)) -- Fix forbidden error on setAvatar REST endpoint ([#7159](https://github.com/RocketChat/Rocket.Chat/pull/7159)) +- LingoHub based on develop ([#7005](https://github.com/RocketChat/Rocket.Chat/pull/7005)) -- Fix mobile avatars ([#7177](https://github.com/RocketChat/Rocket.Chat/pull/7177)) +- rocketchat-lib[4] coffee to js ([#6735](https://github.com/RocketChat/Rocket.Chat/pull/6735)) -- fix the crashing tests ([#6976](https://github.com/RocketChat/Rocket.Chat/pull/6976)) +- rocketchat-importer-slack coffee to js ([#6987](https://github.com/RocketChat/Rocket.Chat/pull/6987)) -- Fix the Zapier oAuth return url to the new one ([#7215](https://github.com/RocketChat/Rocket.Chat/pull/7215)) +- Convert ui-admin package to js ([#6911](https://github.com/RocketChat/Rocket.Chat/pull/6911)) -- Ldap: User_Data_FieldMap description ([#7055](https://github.com/RocketChat/Rocket.Chat/pull/7055) by [@bbrauns](https://github.com/bbrauns)) +- Rocketchat ui message ([#6914](https://github.com/RocketChat/Rocket.Chat/pull/6914)) -- LingoHub based on develop ([#7114](https://github.com/RocketChat/Rocket.Chat/pull/7114)) +- [New] LDAP: Use variables in User_Data_FieldMap for name mapping ([#6921](https://github.com/RocketChat/Rocket.Chat/pull/6921) by [@bbrauns](https://github.com/bbrauns)) -- LingoHub based on develop ([#7005](https://github.com/RocketChat/Rocket.Chat/pull/7005)) +- Convert meteor-autocomplete package to js ([#6936](https://github.com/RocketChat/Rocket.Chat/pull/6936)) + +- Convert Ui Account Package to Js ([#6795](https://github.com/RocketChat/Rocket.Chat/pull/6795)) - LingoHub based on develop ([#6978](https://github.com/RocketChat/Rocket.Chat/pull/6978)) -- Remove missing CoffeeScript dependencies ([#7154](https://github.com/RocketChat/Rocket.Chat/pull/7154)) +- fix the crashing tests ([#6976](https://github.com/RocketChat/Rocket.Chat/pull/6976)) -- Remove Useless Jasmine Tests ([#7062](https://github.com/RocketChat/Rocket.Chat/pull/7062)) +- Convert WebRTC Package to Js ([#6775](https://github.com/RocketChat/Rocket.Chat/pull/6775)) -- Rocketchat ui message ([#6914](https://github.com/RocketChat/Rocket.Chat/pull/6914)) +- [Fix] Error when trying to show preview of undefined filetype ([#6935](https://github.com/RocketChat/Rocket.Chat/pull/6935)) -- Rocketchat ui3 ([#7006](https://github.com/RocketChat/Rocket.Chat/pull/7006)) +- Remove missing CoffeeScript dependencies ([#7154](https://github.com/RocketChat/Rocket.Chat/pull/7154)) -- rocketchat-importer-slack coffee to js ([#6987](https://github.com/RocketChat/Rocket.Chat/pull/6987)) +- Switch logic of artifact name ([#7158](https://github.com/RocketChat/Rocket.Chat/pull/7158)) -- rocketchat-lib[4] coffee to js ([#6735](https://github.com/RocketChat/Rocket.Chat/pull/6735)) +- Fix the Zapier oAuth return url to the new one ([#7215](https://github.com/RocketChat/Rocket.Chat/pull/7215)) -- Switch logic of artifact name ([#7158](https://github.com/RocketChat/Rocket.Chat/pull/7158)) +- Fix forbidden error on setAvatar REST endpoint ([#7159](https://github.com/RocketChat/Rocket.Chat/pull/7159)) + +- Fix mobile avatars ([#7177](https://github.com/RocketChat/Rocket.Chat/pull/7177))
@@ -12354,112 +12658,112 @@ - Add a pointer cursor to message images ([#6881](https://github.com/RocketChat/Rocket.Chat/pull/6881)) -- Add a setting to not run outgoing integrations on message edits ([#6615](https://github.com/RocketChat/Rocket.Chat/pull/6615)) - -- Add option on Channel Settings: Hide Notifications and Hide Unread Room Status (#2707, #2143) ([#5373](https://github.com/RocketChat/Rocket.Chat/pull/5373)) +- Make channels.info accept roomName, just like groups.info ([#6827](https://github.com/RocketChat/Rocket.Chat/pull/6827) by [@reist](https://github.com/reist)) -- Add SMTP settings for Protocol and Pool ([#6940](https://github.com/RocketChat/Rocket.Chat/pull/6940)) +- Option to allow to signup as anonymous ([#6797](https://github.com/RocketChat/Rocket.Chat/pull/6797)) - create a method 'create token' ([#6807](https://github.com/RocketChat/Rocket.Chat/pull/6807)) -- Improve CI/Docker build/release ([#6938](https://github.com/RocketChat/Rocket.Chat/pull/6938)) - -- Make channels.info accept roomName, just like groups.info ([#6827](https://github.com/RocketChat/Rocket.Chat/pull/6827) by [@reist](https://github.com/reist)) - -- Option to allow to signup as anonymous ([#6797](https://github.com/RocketChat/Rocket.Chat/pull/6797)) +- Add option on Channel Settings: Hide Notifications and Hide Unread Room Status (#2707, #2143) ([#5373](https://github.com/RocketChat/Rocket.Chat/pull/5373)) - Remove lesshat ([#6722](https://github.com/RocketChat/Rocket.Chat/pull/6722) by [@karlprieb](https://github.com/karlprieb)) -- Show info about multiple instances at admin page ([#6953](https://github.com/RocketChat/Rocket.Chat/pull/6953)) - - Use tokenSentVia parameter for clientid/secret to token endpoint ([#6692](https://github.com/RocketChat/Rocket.Chat/pull/6692) by [@intelradoux](https://github.com/intelradoux)) -### 🐛 Bug fixes +- Add a setting to not run outgoing integrations on message edits ([#6615](https://github.com/RocketChat/Rocket.Chat/pull/6615)) +- Improve CI/Docker build/release ([#6938](https://github.com/RocketChat/Rocket.Chat/pull/6938)) -- Added helper for testing if the current user matches the params ([#6845](https://github.com/RocketChat/Rocket.Chat/pull/6845) by [@abrom](https://github.com/abrom)) +- Add SMTP settings for Protocol and Pool ([#6940](https://github.com/RocketChat/Rocket.Chat/pull/6940)) -- Archiving Direct Messages ([#6737](https://github.com/RocketChat/Rocket.Chat/pull/6737)) +- Show info about multiple instances at admin page ([#6953](https://github.com/RocketChat/Rocket.Chat/pull/6953)) -- Compile CSS color variables ([#6939](https://github.com/RocketChat/Rocket.Chat/pull/6939)) +### 🐛 Bug fixes -- CSV importer: require that there is some data in the zip, not ALL data ([#6768](https://github.com/RocketChat/Rocket.Chat/pull/6768) by [@reist](https://github.com/reist)) -- emoji picker exception ([#6709](https://github.com/RocketChat/Rocket.Chat/pull/6709) by [@gdelavald](https://github.com/gdelavald)) +- start/unstar message ([#6861](https://github.com/RocketChat/Rocket.Chat/pull/6861)) -- Fix Caddy by forcing go 1.7 as needed by one of caddy's dependencies ([#6721](https://github.com/RocketChat/Rocket.Chat/pull/6721)) +- Added helper for testing if the current user matches the params ([#6845](https://github.com/RocketChat/Rocket.Chat/pull/6845) by [@abrom](https://github.com/abrom)) + +- REST API user.update throwing error due to rate limiting ([#6796](https://github.com/RocketChat/Rocket.Chat/pull/6796)) - fix german translation ([#6790](https://github.com/RocketChat/Rocket.Chat/pull/6790) by [@sscholl](https://github.com/sscholl)) +- Improve and correct Iframe Integration help text ([#6793](https://github.com/RocketChat/Rocket.Chat/pull/6793)) + +- Quoted and replied messages not retaining the original message's alias ([#6800](https://github.com/RocketChat/Rocket.Chat/pull/6800)) + - Fix iframe wise issues ([#6798](https://github.com/RocketChat/Rocket.Chat/pull/6798)) -- Fix message types ([#6704](https://github.com/RocketChat/Rocket.Chat/pull/6704)) +- Incorrect error message when creating channel ([#6747](https://github.com/RocketChat/Rocket.Chat/pull/6747) by [@gdelavald](https://github.com/gdelavald)) - Hides nav buttons when selecting own profile ([#6760](https://github.com/RocketChat/Rocket.Chat/pull/6760) by [@gdelavald](https://github.com/gdelavald)) -- Improve and correct Iframe Integration help text ([#6793](https://github.com/RocketChat/Rocket.Chat/pull/6793)) +- Search full name on client side ([#6767](https://github.com/RocketChat/Rocket.Chat/pull/6767) by [@alexbrazier](https://github.com/alexbrazier)) -- Incorrect error message when creating channel ([#6747](https://github.com/RocketChat/Rocket.Chat/pull/6747) by [@gdelavald](https://github.com/gdelavald)) +- Sort by real name if use real name setting is enabled ([#6758](https://github.com/RocketChat/Rocket.Chat/pull/6758) by [@alexbrazier](https://github.com/alexbrazier)) -- make channels.create API check for create-c ([#6968](https://github.com/RocketChat/Rocket.Chat/pull/6968) by [@reist](https://github.com/reist)) +- CSV importer: require that there is some data in the zip, not ALL data ([#6768](https://github.com/RocketChat/Rocket.Chat/pull/6768) by [@reist](https://github.com/reist)) -- Not showing unread count on electron app’s icon ([#6923](https://github.com/RocketChat/Rocket.Chat/pull/6923)) +- Archiving Direct Messages ([#6737](https://github.com/RocketChat/Rocket.Chat/pull/6737)) -- Quoted and replied messages not retaining the original message's alias ([#6800](https://github.com/RocketChat/Rocket.Chat/pull/6800)) +- Fix Caddy by forcing go 1.7 as needed by one of caddy's dependencies ([#6721](https://github.com/RocketChat/Rocket.Chat/pull/6721)) -- Remove spaces from env PORT and INSTANCE_IP ([#6955](https://github.com/RocketChat/Rocket.Chat/pull/6955)) +- emoji picker exception ([#6709](https://github.com/RocketChat/Rocket.Chat/pull/6709) by [@gdelavald](https://github.com/gdelavald)) -- REST API user.update throwing error due to rate limiting ([#6796](https://github.com/RocketChat/Rocket.Chat/pull/6796)) +- Fix message types ([#6704](https://github.com/RocketChat/Rocket.Chat/pull/6704)) -- Search full name on client side ([#6767](https://github.com/RocketChat/Rocket.Chat/pull/6767) by [@alexbrazier](https://github.com/alexbrazier)) +- Users status on main menu always offline ([#6896](https://github.com/RocketChat/Rocket.Chat/pull/6896)) -- Sort by real name if use real name setting is enabled ([#6758](https://github.com/RocketChat/Rocket.Chat/pull/6758) by [@alexbrazier](https://github.com/alexbrazier)) +- Not showing unread count on electron app’s icon ([#6923](https://github.com/RocketChat/Rocket.Chat/pull/6923)) -- start/unstar message ([#6861](https://github.com/RocketChat/Rocket.Chat/pull/6861)) +- Compile CSS color variables ([#6939](https://github.com/RocketChat/Rocket.Chat/pull/6939)) + +- Remove spaces from env PORT and INSTANCE_IP ([#6955](https://github.com/RocketChat/Rocket.Chat/pull/6955)) -- Users status on main menu always offline ([#6896](https://github.com/RocketChat/Rocket.Chat/pull/6896)) +- make channels.create API check for create-c ([#6968](https://github.com/RocketChat/Rocket.Chat/pull/6968) by [@reist](https://github.com/reist))
🔍 Minor changes -- [Fix] Error when trying to show preview of undefined filetype ([#6935](https://github.com/RocketChat/Rocket.Chat/pull/6935)) - - [New] Snap arm support ([#6842](https://github.com/RocketChat/Rocket.Chat/pull/6842)) -- Anonymous use ([#5986](https://github.com/RocketChat/Rocket.Chat/pull/5986)) +- Meteor update ([#6858](https://github.com/RocketChat/Rocket.Chat/pull/6858)) -- Breaking long URLS to prevent overflow ([#6368](https://github.com/RocketChat/Rocket.Chat/pull/6368) by [@robertdown](https://github.com/robertdown)) +- Converted rocketchat-lib 3 ([#6672](https://github.com/RocketChat/Rocket.Chat/pull/6672)) -- Convert Katex Package to Js ([#6671](https://github.com/RocketChat/Rocket.Chat/pull/6671)) +- Convert Message-Star Package to js ([#6781](https://github.com/RocketChat/Rocket.Chat/pull/6781)) - Convert Mailer Package to Js ([#6780](https://github.com/RocketChat/Rocket.Chat/pull/6780)) -- Convert markdown to js ([#6694](https://github.com/RocketChat/Rocket.Chat/pull/6694) by [@ehkasper](https://github.com/ehkasper)) +- LingoHub based on develop ([#6816](https://github.com/RocketChat/Rocket.Chat/pull/6816)) -- Convert Mentions-Flextab Package to Js ([#6689](https://github.com/RocketChat/Rocket.Chat/pull/6689)) +- Missing useful fields in admin user list #5110 ([#6804](https://github.com/RocketChat/Rocket.Chat/pull/6804) by [@vlogic](https://github.com/vlogic)) -- Convert Message-Star Package to js ([#6781](https://github.com/RocketChat/Rocket.Chat/pull/6781)) +- Convert Katex Package to Js ([#6671](https://github.com/RocketChat/Rocket.Chat/pull/6671)) - Convert Oembed Package to Js ([#6688](https://github.com/RocketChat/Rocket.Chat/pull/6688)) -- Converted rocketchat-lib 3 ([#6672](https://github.com/RocketChat/Rocket.Chat/pull/6672)) +- Convert Mentions-Flextab Package to Js ([#6689](https://github.com/RocketChat/Rocket.Chat/pull/6689)) -- disable proxy configuration ([#6654](https://github.com/RocketChat/Rocket.Chat/pull/6654) by [@glehmann](https://github.com/glehmann)) +- Anonymous use ([#5986](https://github.com/RocketChat/Rocket.Chat/pull/5986)) -- LingoHub based on develop ([#6816](https://github.com/RocketChat/Rocket.Chat/pull/6816)) +- Breaking long URLS to prevent overflow ([#6368](https://github.com/RocketChat/Rocket.Chat/pull/6368) by [@robertdown](https://github.com/robertdown)) -- LingoHub based on develop ([#6715](https://github.com/RocketChat/Rocket.Chat/pull/6715)) +- Rocketchat lib2 ([#6593](https://github.com/RocketChat/Rocket.Chat/pull/6593)) -- LingoHub based on develop ([#6703](https://github.com/RocketChat/Rocket.Chat/pull/6703)) +- disable proxy configuration ([#6654](https://github.com/RocketChat/Rocket.Chat/pull/6654) by [@glehmann](https://github.com/glehmann)) -- Meteor update ([#6858](https://github.com/RocketChat/Rocket.Chat/pull/6858)) +- Convert markdown to js ([#6694](https://github.com/RocketChat/Rocket.Chat/pull/6694) by [@ehkasper](https://github.com/ehkasper)) + +- LingoHub based on develop ([#6715](https://github.com/RocketChat/Rocket.Chat/pull/6715)) - meteor update to 1.4.4 ([#6706](https://github.com/RocketChat/Rocket.Chat/pull/6706)) -- Missing useful fields in admin user list #5110 ([#6804](https://github.com/RocketChat/Rocket.Chat/pull/6804) by [@vlogic](https://github.com/vlogic)) +- LingoHub based on develop ([#6703](https://github.com/RocketChat/Rocket.Chat/pull/6703)) -- Rocketchat lib2 ([#6593](https://github.com/RocketChat/Rocket.Chat/pull/6593)) +- [Fix] Error when trying to show preview of undefined filetype ([#6935](https://github.com/RocketChat/Rocket.Chat/pull/6935))
@@ -12522,254 +12826,254 @@ ### 🎉 New features -- 'users.resetAvatar' rest api endpoint ([#6616](https://github.com/RocketChat/Rocket.Chat/pull/6616)) - -- Add monitoring package ([#6634](https://github.com/RocketChat/Rocket.Chat/pull/6634)) - - Add shield.svg api route to generate custom shields/badges ([#6565](https://github.com/RocketChat/Rocket.Chat/pull/6565) by [@alexbrazier](https://github.com/alexbrazier)) -- Drupal oAuth Integration for Rocketchat ([#6632](https://github.com/RocketChat/Rocket.Chat/pull/6632) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) +- resolve merge share function ([#6577](https://github.com/RocketChat/Rocket.Chat/pull/6577) by [@karlprieb](https://github.com/karlprieb) & [@tgxn](https://github.com/tgxn)) -- Expose Livechat to Incoming Integrations and allow response ([#6681](https://github.com/RocketChat/Rocket.Chat/pull/6681)) +- Two Factor Auth ([#6476](https://github.com/RocketChat/Rocket.Chat/pull/6476)) + +- Permission `join-without-join-code` assigned to admins and bots by default ([#6430](https://github.com/RocketChat/Rocket.Chat/pull/6430)) - Integrations, both incoming and outgoing, now have access to the models. Example: `Users.findOneById(id)` ([#6420](https://github.com/RocketChat/Rocket.Chat/pull/6420)) -- Permission `join-without-join-code` assigned to admins and bots by default ([#6430](https://github.com/RocketChat/Rocket.Chat/pull/6430)) +- 'users.resetAvatar' rest api endpoint ([#6616](https://github.com/RocketChat/Rocket.Chat/pull/6616)) -- resolve merge share function ([#6577](https://github.com/RocketChat/Rocket.Chat/pull/6577) by [@karlprieb](https://github.com/karlprieb) & [@tgxn](https://github.com/tgxn)) +- Drupal oAuth Integration for Rocketchat ([#6632](https://github.com/RocketChat/Rocket.Chat/pull/6632) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) -- Two Factor Auth ([#6476](https://github.com/RocketChat/Rocket.Chat/pull/6476)) +- Add monitoring package ([#6634](https://github.com/RocketChat/Rocket.Chat/pull/6634)) + +- Expose Livechat to Incoming Integrations and allow response ([#6681](https://github.com/RocketChat/Rocket.Chat/pull/6681)) ### 🐛 Bug fixes -- Accounts from LinkedIn OAuth without name ([#6590](https://github.com/RocketChat/Rocket.Chat/pull/6590)) +- Incoming integrations would break when trying to use the `Store` feature.` -- Administrators being rate limited when editing users data ([#6659](https://github.com/RocketChat/Rocket.Chat/pull/6659)) +- Removed Deprecated Package rocketchat:sharedsecret` -- Allow question on OAuth token path ([#6684](https://github.com/RocketChat/Rocket.Chat/pull/6684)) +- emoji picker exception ([#6709](https://github.com/RocketChat/Rocket.Chat/pull/6709) by [@gdelavald](https://github.com/gdelavald)) -- arguments logger ([#6617](https://github.com/RocketChat/Rocket.Chat/pull/6617)) +- Large files crashed browser when trying to show preview ([#6598](https://github.com/RocketChat/Rocket.Chat/pull/6598)) -- can not get access_token when using custom oauth ([#6531](https://github.com/RocketChat/Rocket.Chat/pull/6531) by [@fengt](https://github.com/fengt)) +- messageBox: put "joinCodeRequired" back ([#6600](https://github.com/RocketChat/Rocket.Chat/pull/6600) by [@karlprieb](https://github.com/karlprieb)) - Do not add default roles for users without services field ([#6594](https://github.com/RocketChat/Rocket.Chat/pull/6594)) -- Do not escaping markdown on message attachments ([#6648](https://github.com/RocketChat/Rocket.Chat/pull/6648)) +- Accounts from LinkedIn OAuth without name ([#6590](https://github.com/RocketChat/Rocket.Chat/pull/6590)) -- Downgrade email package to from 1.2.0 to 1.1.18 ([#6680](https://github.com/RocketChat/Rocket.Chat/pull/6680)) +- Usage of subtagged languages ([#6575](https://github.com/RocketChat/Rocket.Chat/pull/6575)) -- emoji picker exception ([#6709](https://github.com/RocketChat/Rocket.Chat/pull/6709) by [@gdelavald](https://github.com/gdelavald)) +- UTC offset missing UTC text when positive ([#6562](https://github.com/RocketChat/Rocket.Chat/pull/6562) by [@alexbrazier](https://github.com/alexbrazier)) -- Encode avatar url to prevent CSS injection ([#6651](https://github.com/RocketChat/Rocket.Chat/pull/6651)) +- can not get access_token when using custom oauth ([#6531](https://github.com/RocketChat/Rocket.Chat/pull/6531) by [@fengt](https://github.com/fengt)) -- Error when returning undefined from incoming intergation’s script ([#6683](https://github.com/RocketChat/Rocket.Chat/pull/6683)) +- Outgoing webhooks which have an error and they're retrying would still retry even if the integration was disabled` ([#6478](https://github.com/RocketChat/Rocket.Chat/pull/6478)) -- Fix Logger stdout publication ([#6682](https://github.com/RocketChat/Rocket.Chat/pull/6682)) +- Incorrect curl command being generated on incoming integrations ([#6620](https://github.com/RocketChat/Rocket.Chat/pull/6620)) -- Fix message types ([#6704](https://github.com/RocketChat/Rocket.Chat/pull/6704)) +- arguments logger ([#6617](https://github.com/RocketChat/Rocket.Chat/pull/6617)) - Improve markdown code ([#6650](https://github.com/RocketChat/Rocket.Chat/pull/6650)) -- Incoming integrations would break when trying to use the `Store` feature.` - -- Incorrect curl command being generated on incoming integrations ([#6620](https://github.com/RocketChat/Rocket.Chat/pull/6620)) +- Encode avatar url to prevent CSS injection ([#6651](https://github.com/RocketChat/Rocket.Chat/pull/6651)) -- Large files crashed browser when trying to show preview ([#6598](https://github.com/RocketChat/Rocket.Chat/pull/6598)) +- Do not escaping markdown on message attachments ([#6648](https://github.com/RocketChat/Rocket.Chat/pull/6648)) -- Make sure username exists in findByActiveUsersExcept ([#6674](https://github.com/RocketChat/Rocket.Chat/pull/6674)) +- Revert unwanted UI changes ([#6658](https://github.com/RocketChat/Rocket.Chat/pull/6658)) -- messageBox: put "joinCodeRequired" back ([#6600](https://github.com/RocketChat/Rocket.Chat/pull/6600) by [@karlprieb](https://github.com/karlprieb)) +- Fix Logger stdout publication ([#6682](https://github.com/RocketChat/Rocket.Chat/pull/6682)) -- Outgoing webhooks which have an error and they're retrying would still retry even if the integration was disabled` ([#6478](https://github.com/RocketChat/Rocket.Chat/pull/6478)) +- Downgrade email package to from 1.2.0 to 1.1.18 ([#6680](https://github.com/RocketChat/Rocket.Chat/pull/6680)) -- Removed Deprecated Package rocketchat:sharedsecret` +- Administrators being rate limited when editing users data ([#6659](https://github.com/RocketChat/Rocket.Chat/pull/6659)) -- Revert unwanted UI changes ([#6658](https://github.com/RocketChat/Rocket.Chat/pull/6658)) +- Make sure username exists in findByActiveUsersExcept ([#6674](https://github.com/RocketChat/Rocket.Chat/pull/6674)) - Update server cache indexes on record updates ([#6686](https://github.com/RocketChat/Rocket.Chat/pull/6686)) -- Usage of subtagged languages ([#6575](https://github.com/RocketChat/Rocket.Chat/pull/6575)) +- Allow question on OAuth token path ([#6684](https://github.com/RocketChat/Rocket.Chat/pull/6684)) -- UTC offset missing UTC text when positive ([#6562](https://github.com/RocketChat/Rocket.Chat/pull/6562) by [@alexbrazier](https://github.com/alexbrazier)) +- Error when returning undefined from incoming intergation’s script ([#6683](https://github.com/RocketChat/Rocket.Chat/pull/6683)) + +- Fix message types ([#6704](https://github.com/RocketChat/Rocket.Chat/pull/6704))
🔍 Minor changes -- 'allow reacting' should be a toggle option.otherwise, the style will display an error ([#6522](https://github.com/RocketChat/Rocket.Chat/pull/6522) by [@szluohua](https://github.com/szluohua)) +- Add candidate snap channel ([#6614](https://github.com/RocketChat/Rocket.Chat/pull/6614)) -- [New] Added oauth2 userinfo endpoint ([#6554](https://github.com/RocketChat/Rocket.Chat/pull/6554)) +- Add `fname` to subscriptions in memory ([#6597](https://github.com/RocketChat/Rocket.Chat/pull/6597)) - [New] Switch Snaps to use oplog ([#6608](https://github.com/RocketChat/Rocket.Chat/pull/6608)) -- Add `fname` to subscriptions in memory ([#6597](https://github.com/RocketChat/Rocket.Chat/pull/6597)) +- Convert Message Pin Package to JS ([#6576](https://github.com/RocketChat/Rocket.Chat/pull/6576)) -- Add candidate snap channel ([#6614](https://github.com/RocketChat/Rocket.Chat/pull/6614)) +- Move room display name logic to roomType definition ([#6585](https://github.com/RocketChat/Rocket.Chat/pull/6585)) -- Add ESLint rule `object-shorthand` ([#6457](https://github.com/RocketChat/Rocket.Chat/pull/6457)) +- Only configure LoggerManager on server ([#6596](https://github.com/RocketChat/Rocket.Chat/pull/6596)) -- Add ESLint rule `one-var` ([#6458](https://github.com/RocketChat/Rocket.Chat/pull/6458)) +- POC Google Natural Language integration ([#6298](https://github.com/RocketChat/Rocket.Chat/pull/6298)) -- Add ESLint rules `one-var` and `no-var` ([#6459](https://github.com/RocketChat/Rocket.Chat/pull/6459)) +- Fix recently introduced bug: OnePassword not defined ([#6591](https://github.com/RocketChat/Rocket.Chat/pull/6591)) -- Add ESLint rules `prefer-template` and `template-curly-spacing` ([#6456](https://github.com/RocketChat/Rocket.Chat/pull/6456)) +- rocketchat-lib part1 ([#6553](https://github.com/RocketChat/Rocket.Chat/pull/6553)) -- Add permission check to the import methods and not just the UI ([#6400](https://github.com/RocketChat/Rocket.Chat/pull/6400)) +- dependencies upgrade ([#6584](https://github.com/RocketChat/Rocket.Chat/pull/6584)) -- Added Deploy method and platform to stats ([#6649](https://github.com/RocketChat/Rocket.Chat/pull/6649)) +- fixed typo in readme.md ([#6580](https://github.com/RocketChat/Rocket.Chat/pull/6580) by [@sezinkarli](https://github.com/sezinkarli)) -- Allow livechat managers to transfer chats ([#6180](https://github.com/RocketChat/Rocket.Chat/pull/6180) by [@drallgood](https://github.com/drallgood)) +- Use real name instead of username for messages and direct messages list ([#3851](https://github.com/RocketChat/Rocket.Chat/pull/3851) by [@alexbrazier](https://github.com/alexbrazier)) -- Allow Livechat visitors to switch the department ([#6035](https://github.com/RocketChat/Rocket.Chat/pull/6035) by [@drallgood](https://github.com/drallgood)) +- Convert Ui-Login Package to Js ([#6561](https://github.com/RocketChat/Rocket.Chat/pull/6561)) -- Change all instances of Meteor.Collection for Mongo.Collection ([#6410](https://github.com/RocketChat/Rocket.Chat/pull/6410)) +- rocketchat-channel-settings coffee to js ([#6551](https://github.com/RocketChat/Rocket.Chat/pull/6551)) -- Clipboard [Firefox version < 50] ([#6280](https://github.com/RocketChat/Rocket.Chat/pull/6280)) +- Move wordpress packages client files to client folder ([#6571](https://github.com/RocketChat/Rocket.Chat/pull/6571)) -- Convert ChatOps Package to JavaScript ([#6425](https://github.com/RocketChat/Rocket.Chat/pull/6425)) +- convert rocketchat-ui part 2 ([#6539](https://github.com/RocketChat/Rocket.Chat/pull/6539)) -- Convert Dolphin Package to JavaScript ([#6427](https://github.com/RocketChat/Rocket.Chat/pull/6427)) +- rocketchat-channel-settings-mail-messages coffee to js ([#6541](https://github.com/RocketChat/Rocket.Chat/pull/6541)) -- Convert File Package to js ([#6503](https://github.com/RocketChat/Rocket.Chat/pull/6503)) +- LingoHub based on develop ([#6574](https://github.com/RocketChat/Rocket.Chat/pull/6574)) -- convert mapview package to js ([#6471](https://github.com/RocketChat/Rocket.Chat/pull/6471)) +- LingoHub based on develop ([#6567](https://github.com/RocketChat/Rocket.Chat/pull/6567)) -- Convert Message Pin Package to JS ([#6576](https://github.com/RocketChat/Rocket.Chat/pull/6576)) +- [New] Added oauth2 userinfo endpoint ([#6554](https://github.com/RocketChat/Rocket.Chat/pull/6554)) -- convert rocketchat-ui part 2 ([#6539](https://github.com/RocketChat/Rocket.Chat/pull/6539)) +- Remove Deprecated Shared Secret Package ([#6540](https://github.com/RocketChat/Rocket.Chat/pull/6540)) -- Convert Spotify Package to JS ([#6449](https://github.com/RocketChat/Rocket.Chat/pull/6449)) +- Remove coffeescript package from ui-sidenav ([#6542](https://github.com/RocketChat/Rocket.Chat/pull/6542) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- Convert Statistics Package to JS ([#6447](https://github.com/RocketChat/Rocket.Chat/pull/6447)) +- Remove coffeescript package from ui-flextab ([#6543](https://github.com/RocketChat/Rocket.Chat/pull/6543) by [@Kiran-Rao](https://github.com/Kiran-Rao)) - Convert Theme Package to JS ([#6491](https://github.com/RocketChat/Rocket.Chat/pull/6491)) -- Convert Tutum Package to JS ([#6446](https://github.com/RocketChat/Rocket.Chat/pull/6446)) +- Fix typo of the safari pinned tab label ([#6487](https://github.com/RocketChat/Rocket.Chat/pull/6487) by [@qge](https://github.com/qge)) -- Convert Ui-Login Package to Js ([#6561](https://github.com/RocketChat/Rocket.Chat/pull/6561)) +- fix channel merge option of user preferences ([#6493](https://github.com/RocketChat/Rocket.Chat/pull/6493) by [@billtt](https://github.com/billtt)) -- Convert Ui-Master Package to Js ([#6498](https://github.com/RocketChat/Rocket.Chat/pull/6498)) +- converted Rocketchat logger coffee to js ([#6495](https://github.com/RocketChat/Rocket.Chat/pull/6495)) -- Convert ui-vrecord Package to JS ([#6473](https://github.com/RocketChat/Rocket.Chat/pull/6473)) +- converted rocketchat-integrations coffee to js ([#6502](https://github.com/RocketChat/Rocket.Chat/pull/6502)) -- Convert Version Package to JS ([#6494](https://github.com/RocketChat/Rocket.Chat/pull/6494)) +- 'allow reacting' should be a toggle option.otherwise, the style will display an error ([#6522](https://github.com/RocketChat/Rocket.Chat/pull/6522) by [@szluohua](https://github.com/szluohua)) -- Convert Wordpress Package to js ([#6499](https://github.com/RocketChat/Rocket.Chat/pull/6499)) +- Clipboard [Firefox version < 50] ([#6280](https://github.com/RocketChat/Rocket.Chat/pull/6280)) -- converted getAvatarUrlFromUsername ([#6496](https://github.com/RocketChat/Rocket.Chat/pull/6496)) +- Convert ui-vrecord Package to JS ([#6473](https://github.com/RocketChat/Rocket.Chat/pull/6473)) -- converted messageAttachment coffee to js ([#6500](https://github.com/RocketChat/Rocket.Chat/pull/6500)) +- converted slashcommands-mute coffee to js ([#6474](https://github.com/RocketChat/Rocket.Chat/pull/6474)) -- converted meteor-accounts-saml coffee to js ([#6450](https://github.com/RocketChat/Rocket.Chat/pull/6450)) +- Convert Version Package to JS ([#6494](https://github.com/RocketChat/Rocket.Chat/pull/6494)) -- converted Rocketchat logger coffee to js ([#6495](https://github.com/RocketChat/Rocket.Chat/pull/6495)) +- Convert Ui-Master Package to Js ([#6498](https://github.com/RocketChat/Rocket.Chat/pull/6498)) -- converted rocketchat-integrations coffee to js ([#6502](https://github.com/RocketChat/Rocket.Chat/pull/6502)) +- converted messageAttachment coffee to js ([#6500](https://github.com/RocketChat/Rocket.Chat/pull/6500)) -- converted rocketchat-mentions coffee to js ([#6467](https://github.com/RocketChat/Rocket.Chat/pull/6467)) +- Convert File Package to js ([#6503](https://github.com/RocketChat/Rocket.Chat/pull/6503)) -- converted rocketchat-message-mark-as-unread coffee/js ([#6445](https://github.com/RocketChat/Rocket.Chat/pull/6445)) +- Create groups.addAll endpoint and add activeUsersOnly param. ([#6505](https://github.com/RocketChat/Rocket.Chat/pull/6505) by [@nathanmarcos](https://github.com/nathanmarcos)) -- converted rocketchat-slashcommands-kick coffee to js ([#6453](https://github.com/RocketChat/Rocket.Chat/pull/6453)) +- New feature: Room announcement ([#6351](https://github.com/RocketChat/Rocket.Chat/pull/6351) by [@billtt](https://github.com/billtt)) -- converted slashcommand-invite coffee to js ([#6497](https://github.com/RocketChat/Rocket.Chat/pull/6497)) +- converted slashcommand-me coffee to js ([#6468](https://github.com/RocketChat/Rocket.Chat/pull/6468)) - converted slashcommand-join coffee to js ([#6469](https://github.com/RocketChat/Rocket.Chat/pull/6469)) - converted slashcommand-leave coffee to js ([#6470](https://github.com/RocketChat/Rocket.Chat/pull/6470)) -- converted slashcommand-me coffee to js ([#6468](https://github.com/RocketChat/Rocket.Chat/pull/6468)) +- convert mapview package to js ([#6471](https://github.com/RocketChat/Rocket.Chat/pull/6471)) -- converted slashcommand-msg coffee to js ([#6501](https://github.com/RocketChat/Rocket.Chat/pull/6501)) +- converted getAvatarUrlFromUsername ([#6496](https://github.com/RocketChat/Rocket.Chat/pull/6496)) -- converted slashcommands-mute coffee to js ([#6474](https://github.com/RocketChat/Rocket.Chat/pull/6474)) +- converted slashcommand-invite coffee to js ([#6497](https://github.com/RocketChat/Rocket.Chat/pull/6497)) -- Create groups.addAll endpoint and add activeUsersOnly param. ([#6505](https://github.com/RocketChat/Rocket.Chat/pull/6505) by [@nathanmarcos](https://github.com/nathanmarcos)) +- Convert Wordpress Package to js ([#6499](https://github.com/RocketChat/Rocket.Chat/pull/6499)) -- dependencies upgrade ([#6584](https://github.com/RocketChat/Rocket.Chat/pull/6584)) +- converted slashcommand-msg coffee to js ([#6501](https://github.com/RocketChat/Rocket.Chat/pull/6501)) -- Do not show reset button for hidden settings ([#6432](https://github.com/RocketChat/Rocket.Chat/pull/6432)) +- rocketchat-ui coffee to js part1 ([#6504](https://github.com/RocketChat/Rocket.Chat/pull/6504)) -- Env override initial setting ([#6163](https://github.com/RocketChat/Rocket.Chat/pull/6163) by [@mrsimpson](https://github.com/mrsimpson)) +- converted rocketchat-mentions coffee to js ([#6467](https://github.com/RocketChat/Rocket.Chat/pull/6467)) - ESLint add rule `no-void` ([#6479](https://github.com/RocketChat/Rocket.Chat/pull/6479)) -- fix channel merge option of user preferences ([#6493](https://github.com/RocketChat/Rocket.Chat/pull/6493) by [@billtt](https://github.com/billtt)) +- Add ESLint rules `prefer-template` and `template-curly-spacing` ([#6456](https://github.com/RocketChat/Rocket.Chat/pull/6456)) - Fix livechat permissions ([#6466](https://github.com/RocketChat/Rocket.Chat/pull/6466)) -- fix livechat widget on small screens ([#6122](https://github.com/RocketChat/Rocket.Chat/pull/6122) by [@karlprieb](https://github.com/karlprieb)) +- Add ESLint rule `object-shorthand` ([#6457](https://github.com/RocketChat/Rocket.Chat/pull/6457)) -- Fix recently introduced bug: OnePassword not defined ([#6591](https://github.com/RocketChat/Rocket.Chat/pull/6591)) +- Add ESLint rules `one-var` and `no-var` ([#6459](https://github.com/RocketChat/Rocket.Chat/pull/6459)) -- Fix typo of the safari pinned tab label ([#6487](https://github.com/RocketChat/Rocket.Chat/pull/6487) by [@qge](https://github.com/qge)) +- Add ESLint rule `one-var` ([#6458](https://github.com/RocketChat/Rocket.Chat/pull/6458)) -- Fix visitor ending livechat if multiples still open ([#6419](https://github.com/RocketChat/Rocket.Chat/pull/6419)) +- Side-nav CoffeeScript to JavaScript III ([#6274](https://github.com/RocketChat/Rocket.Chat/pull/6274)) -- fixed typo in readme.md ([#6580](https://github.com/RocketChat/Rocket.Chat/pull/6580) by [@sezinkarli](https://github.com/sezinkarli)) +- Flex-Tab CoffeeScript to JavaScript II ([#6277](https://github.com/RocketChat/Rocket.Chat/pull/6277)) -- Flex-Tab CoffeeScript to JavaScript I ([#6276](https://github.com/RocketChat/Rocket.Chat/pull/6276)) +- Side-nav CoffeeScript to JavaScript II ([#6266](https://github.com/RocketChat/Rocket.Chat/pull/6266)) -- Flex-Tab CoffeeScript to JavaScript II ([#6277](https://github.com/RocketChat/Rocket.Chat/pull/6277)) +- Allow Livechat visitors to switch the department ([#6035](https://github.com/RocketChat/Rocket.Chat/pull/6035) by [@drallgood](https://github.com/drallgood)) -- Flex-Tab CoffeeScript to JavaScript III ([#6278](https://github.com/RocketChat/Rocket.Chat/pull/6278)) +- fix livechat widget on small screens ([#6122](https://github.com/RocketChat/Rocket.Chat/pull/6122) by [@karlprieb](https://github.com/karlprieb)) -- focus first textbox element ([#6257](https://github.com/RocketChat/Rocket.Chat/pull/6257) by [@a5his](https://github.com/a5his)) +- Allow livechat managers to transfer chats ([#6180](https://github.com/RocketChat/Rocket.Chat/pull/6180) by [@drallgood](https://github.com/drallgood)) -- Hide email settings on Sandstorm ([#6429](https://github.com/RocketChat/Rocket.Chat/pull/6429)) +- focus first textbox element ([#6257](https://github.com/RocketChat/Rocket.Chat/pull/6257) by [@a5his](https://github.com/a5his)) - Join command ([#6268](https://github.com/RocketChat/Rocket.Chat/pull/6268)) -- Just admins can change a Default Channel to Private (the channel will be a non default channel) ([#6426](https://github.com/RocketChat/Rocket.Chat/pull/6426)) +- Fix visitor ending livechat if multiples still open ([#6419](https://github.com/RocketChat/Rocket.Chat/pull/6419)) -- LingoHub based on develop ([#6574](https://github.com/RocketChat/Rocket.Chat/pull/6574)) +- Password reset Cleaner text ([#6319](https://github.com/RocketChat/Rocket.Chat/pull/6319)) -- LingoHub based on develop ([#6567](https://github.com/RocketChat/Rocket.Chat/pull/6567)) +- Add permission check to the import methods and not just the UI ([#6400](https://github.com/RocketChat/Rocket.Chat/pull/6400)) -- LingoHub based on develop ([#6647](https://github.com/RocketChat/Rocket.Chat/pull/6647)) +- Max textarea height ([#6409](https://github.com/RocketChat/Rocket.Chat/pull/6409)) - Livechat fix office hours order ([#6413](https://github.com/RocketChat/Rocket.Chat/pull/6413)) -- Make favicon package easier to read. ([#6422](https://github.com/RocketChat/Rocket.Chat/pull/6422) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Convert Spotify Package to JS ([#6449](https://github.com/RocketChat/Rocket.Chat/pull/6449)) -- Max textarea height ([#6409](https://github.com/RocketChat/Rocket.Chat/pull/6409)) +- Make favicon package easier to read. ([#6422](https://github.com/RocketChat/Rocket.Chat/pull/6422) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- meteor update ([#6631](https://github.com/RocketChat/Rocket.Chat/pull/6631)) +- Just admins can change a Default Channel to Private (the channel will be a non default channel) ([#6426](https://github.com/RocketChat/Rocket.Chat/pull/6426)) -- Move room display name logic to roomType definition ([#6585](https://github.com/RocketChat/Rocket.Chat/pull/6585)) +- Hide email settings on Sandstorm ([#6429](https://github.com/RocketChat/Rocket.Chat/pull/6429)) -- Move wordpress packages client files to client folder ([#6571](https://github.com/RocketChat/Rocket.Chat/pull/6571)) +- Do not show reset button for hidden settings ([#6432](https://github.com/RocketChat/Rocket.Chat/pull/6432)) -- New feature: Room announcement ([#6351](https://github.com/RocketChat/Rocket.Chat/pull/6351) by [@billtt](https://github.com/billtt)) +- Convert Dolphin Package to JavaScript ([#6427](https://github.com/RocketChat/Rocket.Chat/pull/6427)) -- Only configure LoggerManager on server ([#6596](https://github.com/RocketChat/Rocket.Chat/pull/6596)) +- converted rocketchat-message-mark-as-unread coffee/js ([#6445](https://github.com/RocketChat/Rocket.Chat/pull/6445)) -- Password reset Cleaner text ([#6319](https://github.com/RocketChat/Rocket.Chat/pull/6319)) +- converted rocketchat-slashcommands-kick coffee to js ([#6453](https://github.com/RocketChat/Rocket.Chat/pull/6453)) -- POC Google Natural Language integration ([#6298](https://github.com/RocketChat/Rocket.Chat/pull/6298)) +- converted meteor-accounts-saml coffee to js ([#6450](https://github.com/RocketChat/Rocket.Chat/pull/6450)) -- Remove coffeescript package from ui-flextab ([#6543](https://github.com/RocketChat/Rocket.Chat/pull/6543) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Convert Statistics Package to JS ([#6447](https://github.com/RocketChat/Rocket.Chat/pull/6447)) -- Remove coffeescript package from ui-sidenav ([#6542](https://github.com/RocketChat/Rocket.Chat/pull/6542) by [@Kiran-Rao](https://github.com/Kiran-Rao)) +- Convert ChatOps Package to JavaScript ([#6425](https://github.com/RocketChat/Rocket.Chat/pull/6425)) -- Remove Deprecated Shared Secret Package ([#6540](https://github.com/RocketChat/Rocket.Chat/pull/6540)) +- Change all instances of Meteor.Collection for Mongo.Collection ([#6410](https://github.com/RocketChat/Rocket.Chat/pull/6410)) -- rocketchat-channel-settings coffee to js ([#6551](https://github.com/RocketChat/Rocket.Chat/pull/6551)) +- Flex-Tab CoffeeScript to JavaScript III ([#6278](https://github.com/RocketChat/Rocket.Chat/pull/6278)) -- rocketchat-channel-settings-mail-messages coffee to js ([#6541](https://github.com/RocketChat/Rocket.Chat/pull/6541)) +- Flex-Tab CoffeeScript to JavaScript I ([#6276](https://github.com/RocketChat/Rocket.Chat/pull/6276)) -- rocketchat-lib part1 ([#6553](https://github.com/RocketChat/Rocket.Chat/pull/6553)) +- Side-nav CoffeeScript to JavaScript ([#6264](https://github.com/RocketChat/Rocket.Chat/pull/6264)) -- rocketchat-ui coffee to js part1 ([#6504](https://github.com/RocketChat/Rocket.Chat/pull/6504)) +- Convert Tutum Package to JS ([#6446](https://github.com/RocketChat/Rocket.Chat/pull/6446)) -- Side-nav CoffeeScript to JavaScript ([#6264](https://github.com/RocketChat/Rocket.Chat/pull/6264)) +- Added Deploy method and platform to stats ([#6649](https://github.com/RocketChat/Rocket.Chat/pull/6649)) -- Side-nav CoffeeScript to JavaScript II ([#6266](https://github.com/RocketChat/Rocket.Chat/pull/6266)) +- LingoHub based on develop ([#6647](https://github.com/RocketChat/Rocket.Chat/pull/6647)) -- Side-nav CoffeeScript to JavaScript III ([#6274](https://github.com/RocketChat/Rocket.Chat/pull/6274)) +- meteor update ([#6631](https://github.com/RocketChat/Rocket.Chat/pull/6631)) -- Use real name instead of username for messages and direct messages list ([#3851](https://github.com/RocketChat/Rocket.Chat/pull/3851) by [@alexbrazier](https://github.com/alexbrazier)) +- Env override initial setting ([#6163](https://github.com/RocketChat/Rocket.Chat/pull/6163) by [@mrsimpson](https://github.com/mrsimpson))
diff --git a/README.md b/README.md index b096a0c40428..7626dcbfb518 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ The WideChat repo is a fork of RocketChat for development of features to be merg # Moving to a Single Codebase -Rocket.Chat is moving to a single codebase. Get to know the reasons and how the community will benefit from it. Read the [details](https://rocket.chat/2020/03/28/moving-to-a-single-codebase/). +Rocket.Chat is moving to a single codebase. Get to know the reasons and how the community will benefit from it. Read the [details](https://rocket.chat/rocket-chat-is-moving-to-a-single-codebase-get-to-know-the-reasons-and-how-the-community-will-benefit-from-it/). # Help Wanted diff --git a/app/2fa/client/accountSecurity.html b/app/2fa/client/accountSecurity.html deleted file mode 100644 index 87e42c658954..000000000000 --- a/app/2fa/client/accountSecurity.html +++ /dev/null @@ -1,61 +0,0 @@ - diff --git a/app/2fa/client/accountSecurity.js b/app/2fa/client/accountSecurity.js deleted file mode 100644 index 38d975e82328..000000000000 --- a/app/2fa/client/accountSecurity.js +++ /dev/null @@ -1,188 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Template } from 'meteor/templating'; -import toastr from 'toastr'; - -import { modal } from '../../ui-utils'; -import { settings } from '../../settings'; -import { t, handleError, APIClient } from '../../utils/client'; - -Template.accountSecurity.helpers({ - showImage() { - return Template.instance().showImage.get(); - }, - imageData() { - return Template.instance().imageData.get(); - }, - imageSecret() { - return Template.instance().imageSecret.get(); - }, - isEnabled() { - const user = Meteor.user(); - return user && user.services && user.services.totp && user.services.totp.enabled; - }, - isRegistering() { - return Template.instance().state.get() === 'registering'; - }, - isAllowed() { - return settings.get('Accounts_TwoFactorAuthentication_Enabled'); - }, - codesRemaining() { - if (Template.instance().codesRemaining.get()) { - return t('You_have_n_codes_remaining', { number: Template.instance().codesRemaining.get() }); - } - }, - isEmailEnabled() { - const user = Meteor.user(); - return user && user.services && user.services.email2fa && user.services.email2fa.enabled; - }, -}); - -Template.accountSecurity.events({ - 'click .enable-2fa'(event, instance) { - event.preventDefault(); - - Meteor.call('2fa:enable', async (error, result) => { - const qrcode = await import('yaqrcode'); - instance.imageSecret.set(result.secret); - instance.imageData.set(qrcode.default(result.url, { size: 200 })); - - instance.state.set('registering'); - - Meteor.defer(() => { - instance.find('#testCode').focus(); - }); - }); - }, - - 'click .disable-2fa'(event) { - event.preventDefault(); - - modal.open({ - title: t('Two-factor_authentication'), - text: t('Open_your_authentication_app_and_enter_the_code'), - type: 'input', - inputType: 'text', - showCancelButton: true, - closeOnConfirm: true, - confirmButtonText: t('Verify'), - cancelButtonText: t('Cancel'), - }, (code) => { - if (code === false) { - return; - } - - Meteor.call('2fa:disable', code, (error, result) => { - if (error) { - return toastr.error(t(error.error)); - } - - if (result) { - toastr.success(t('Two-factor_authentication_disabled')); - } else { - toastr.error(t('Invalid_two_factor_code')); - } - }); - }); - }, - - async 'click .enable-2fa-email'(event) { - event.preventDefault(); - - try { - await APIClient.v1.post('users.2fa.enableEmail'); - toastr.success(t('Two-factor_authentication_enabled')); - } catch (error) { - handleError(error); - } - }, - - async 'click .disable-2fa-email'(event) { - event.preventDefault(); - - try { - await APIClient.v1.post('users.2fa.disableEmail'); - toastr.success(t('Two-factor_authentication_disabled')); - } catch (error) { - handleError(error); - } - }, - - 'click .verify-code'(event, instance) { - event.preventDefault(); - - Meteor.call('2fa:validateTempToken', instance.find('#testCode').value, (error, result) => { - if (result) { - instance.showBackupCodes(result.codes); - - instance.find('#testCode').value = ''; - instance.state.set(); - toastr.success(t('Two-factor_authentication_enabled')); - } else { - toastr.error(t('Invalid_two_factor_code')); - } - }); - }, - - 'click .regenerate-codes'(event, instance) { - event.preventDefault(); - - modal.open({ - title: t('Two-factor_authentication'), - text: t('Open_your_authentication_app_and_enter_the_code'), - type: 'input', - inputType: 'text', - showCancelButton: true, - closeOnConfirm: false, - confirmButtonText: t('Verify'), - cancelButtonText: t('Cancel'), - }, (code) => { - if (code === false) { - return; - } - - Meteor.call('2fa:regenerateCodes', code, (error, result) => { - if (error) { - return toastr.error(t(error.error)); - } - - if (result) { - instance.showBackupCodes(result.codes); - } else { - toastr.error(t('Invalid_two_factor_code')); - } - }); - }); - }, -}); - -Template.accountSecurity.onCreated(function() { - this.showImage = new ReactiveVar(false); - this.imageData = new ReactiveVar(); - this.imageSecret = new ReactiveVar(); - - this.state = new ReactiveVar(); - - this.codesRemaining = new ReactiveVar(); - - this.showBackupCodes = (userCodes) => { - const backupCodes = userCodes.map((value, index) => ((index + 1) % 4 === 0 && index < 11 ? `${ value }\n` : `${ value } `)).join(''); - const codes = `${ backupCodes }`; - modal.open({ - title: t('Backup_codes'), - text: `${ t('Make_sure_you_have_a_copy_of_your_codes', { codes }) }`, - html: true, - }); - }; - - this.autorun(() => { - const user = Meteor.user(); - if (user && user.services && user.services.totp && user.services.totp.enabled) { - Meteor.call('2fa:checkCodesRemaining', (error, result) => { - if (result) { - this.codesRemaining.set(result.remaining); - } - }); - } - }); -}); diff --git a/app/2fa/client/callWithTwoFactorRequired.js b/app/2fa/client/callWithTwoFactorRequired.js index a7bc16514f1b..54ca429f40a1 100644 --- a/app/2fa/client/callWithTwoFactorRequired.js +++ b/app/2fa/client/callWithTwoFactorRequired.js @@ -36,7 +36,7 @@ export function process2faReturn({ error, result, originalCallback, onCode, emai text: t(methods[method].text), html: methods[method].html, type: 'input', - inputActionText: method === 'email' && t('Send_me_the_code_again'), + inputActionText: method === 'email' && emailOrUsername && t('Send_me_the_code_again'), async inputAction(e) { const { value } = e.currentTarget; e.currentTarget.value = t('Sending'); diff --git a/app/2fa/client/index.js b/app/2fa/client/index.js index cc18071f0238..1ad86d365b7b 100644 --- a/app/2fa/client/index.js +++ b/app/2fa/client/index.js @@ -1,4 +1,2 @@ -import './accountSecurity.html'; -import './accountSecurity'; import './callWithTwoFactorRequired'; import './TOTPPassword'; diff --git a/app/api/server/lib/messages.js b/app/api/server/lib/messages.js index 18b0b71ca176..257da349bb6e 100644 --- a/app/api/server/lib/messages.js +++ b/app/api/server/lib/messages.js @@ -116,14 +116,14 @@ export async function findSnippetedMessages({ uid, roomId, pagination: { offset, }; } -export async function findDiscussionsFromRoom({ uid, roomId, pagination: { offset, count, sort } }) { +export async function findDiscussionsFromRoom({ uid, roomId, text, pagination: { offset, count, sort } }) { const room = await Rooms.findOneById(roomId); if (!await canAccessRoomAsync(room, { _id: uid })) { throw new Error('error-not-allowed'); } - const cursor = Messages.findDiscussionsByRoom(roomId, { + const cursor = Messages.findDiscussionsByRoomAndText(roomId, text, { sort: sort || { ts: -1 }, skip: offset, limit: count, diff --git a/app/api/server/lib/users.js b/app/api/server/lib/users.js index 4d7226a608d1..f15e765ff668 100644 --- a/app/api/server/lib/users.js +++ b/app/api/server/lib/users.js @@ -13,6 +13,7 @@ export async function findUsersToAutocomplete({ uid, selector }) { fields: { name: 1, username: 1, + nickname: 1, status: 1, avatarETag: 1, }, diff --git a/app/api/server/v1/chat.js b/app/api/server/v1/chat.js index 57c7b4f1c5de..1facedfd62ff 100644 --- a/app/api/server/v1/chat.js +++ b/app/api/server/v1/chat.js @@ -713,7 +713,7 @@ API.v1.addRoute('chat.getSnippetedMessages', { authRequired: true }, { API.v1.addRoute('chat.getDiscussions', { authRequired: true }, { get() { - const { roomId } = this.queryParams; + const { roomId, text } = this.queryParams; const { sort } = this.parseJsonQuery(); const { offset, count } = this.getPaginationItems(); @@ -723,6 +723,7 @@ API.v1.addRoute('chat.getDiscussions', { authRequired: true }, { const messages = Promise.await(findDiscussionsFromRoom({ uid: this.userId, roomId, + text, pagination: { offset, count, diff --git a/app/api/server/v1/misc.js b/app/api/server/v1/misc.js index b975ab1201b2..1af2c884a860 100644 --- a/app/api/server/v1/misc.js +++ b/app/api/server/v1/misc.js @@ -262,6 +262,8 @@ const methodCall = () => ({ const result = Meteor.call(method, ...params); return API.v1.success(mountResult({ id, result })); } catch (error) { + Meteor._debug(`Exception while invoking method ${ method }`, error.stack); + return API.v1.success(mountResult({ id, error })); } }, diff --git a/app/api/server/v1/push.js b/app/api/server/v1/push.js index 9e3c8d59b325..937b62efc9d7 100644 --- a/app/api/server/v1/push.js +++ b/app/api/server/v1/push.js @@ -1,8 +1,12 @@ import { Meteor } from 'meteor/meteor'; import { Random } from 'meteor/random'; +import { Match, check } from 'meteor/check'; import { appTokensCollection } from '../../../push/server'; import { API } from '../api'; +import PushNotification from '../../../push-notifications/server/lib/PushNotification'; +import { canAccessRoom } from '../../../authorization/server/functions/canAccessRoom'; +import { Users, Messages, Rooms } from '../../../models/server'; API.v1.addRoute('push.token', { authRequired: true }, { post() { @@ -63,3 +67,35 @@ API.v1.addRoute('push.token', { authRequired: true }, { return API.v1.success(); }, }); + +API.v1.addRoute('push.get', { authRequired: true }, { + get() { + const params = this.requestParams(); + check(params, Match.ObjectIncluding({ + id: String, + })); + + const receiver = Users.findOneById(this.userId); + if (!receiver) { + throw new Error('error-user-not-found'); + } + + const message = Messages.findOneById(params.id); + if (!message) { + throw new Error('error-message-not-found'); + } + + const room = Rooms.findOneById(message.rid); + if (!room) { + throw new Error('error-room-not-found'); + } + + if (!canAccessRoom(room, receiver)) { + throw new Error('error-not-allowed'); + } + + const data = PushNotification.getNotificationForMessageId({ receiver, room, message }); + + return API.v1.success({ data }); + }, +}); diff --git a/app/api/server/v1/settings.js b/app/api/server/v1/settings.js index 284fea491be7..6cad33dca4be 100644 --- a/app/api/server/v1/settings.js +++ b/app/api/server/v1/settings.js @@ -6,6 +6,19 @@ import _ from 'underscore'; import { Settings } from '../../../models/server'; import { hasPermission } from '../../../authorization'; import { API } from '../api'; +import { SettingsEvents } from '../../../settings/server'; + +const fetchSettings = (query, sort, offset, count, fields) => { + const settings = Settings.find(query, { + sort: sort || { _id: 1 }, + skip: offset, + limit: count, + fields: Object.assign({ _id: 1, value: 1, enterprise: 1, invalidValue: 1, modules: 1 }, fields), + }).fetch(); + + SettingsEvents.emit('fetch-settings', settings); + return settings; +}; // settings endpoints API.v1.addRoute('settings.public', { authRequired: false }, { @@ -20,12 +33,7 @@ API.v1.addRoute('settings.public', { authRequired: false }, { ourQuery = Object.assign({}, query, ourQuery); - const settings = Settings.find(ourQuery, { - sort: sort || { _id: 1 }, - skip: offset, - limit: count, - fields: Object.assign({ _id: 1, value: 1 }, fields), - }).fetch(); + const settings = fetchSettings(ourQuery, sort, offset, count, fields); return API.v1.success({ settings, @@ -94,12 +102,7 @@ API.v1.addRoute('settings', { authRequired: true }, { ourQuery = Object.assign({}, query, ourQuery); - const settings = Settings.find(ourQuery, { - sort: sort || { _id: 1 }, - skip: offset, - limit: count, - fields: Object.assign({ _id: 1, value: 1 }, fields), - }).fetch(); + const settings = fetchSettings(ourQuery, sort, offset, count, fields); return API.v1.success({ settings, diff --git a/app/api/server/v1/users.js b/app/api/server/v1/users.js index 6d3c380bbe7e..e368b309f176 100644 --- a/app/api/server/v1/users.js +++ b/app/api/server/v1/users.js @@ -31,6 +31,7 @@ API.v1.addRoute('users.create', { authRequired: true }, { username: String, active: Match.Maybe(Boolean), bio: Match.Maybe(String), + nickname: Match.Maybe(String), statusText: Match.Maybe(String), roles: Match.Maybe(Array), joinDefaultChannels: Match.Maybe(Boolean), @@ -436,6 +437,7 @@ API.v1.addRoute('users.update', { authRequired: true, twoFactorRequired: true }, password: Match.Maybe(String), username: Match.Maybe(String), bio: Match.Maybe(String), + nickname: Match.Maybe(String), statusText: Match.Maybe(String), active: Match.Maybe(Boolean), roles: Match.Maybe(Array), @@ -473,6 +475,7 @@ API.v1.addRoute('users.updateOwnBasicInfo', { authRequired: true }, { email: Match.Maybe(String), name: Match.Maybe(String), username: Match.Maybe(String), + nickname: Match.Maybe(String), statusText: Match.Maybe(String), currentPassword: Match.Maybe(String), newPassword: Match.Maybe(String), @@ -484,6 +487,7 @@ API.v1.addRoute('users.updateOwnBasicInfo', { authRequired: true }, { email: this.bodyParams.data.email, realname: this.bodyParams.data.name, username: this.bodyParams.data.username, + nickname: this.bodyParams.data.nickname, statusText: this.bodyParams.data.statusText, newPassword: this.bodyParams.data.newPassword, typedPassword: this.bodyParams.data.currentPassword, diff --git a/app/apple/server/index.js b/app/apple/server/index.js new file mode 100644 index 000000000000..bfc42742322d --- /dev/null +++ b/app/apple/server/index.js @@ -0,0 +1,2 @@ +import './startup.js'; +import './loginHandler.js'; diff --git a/app/apple/server/loginHandler.js b/app/apple/server/loginHandler.js new file mode 100644 index 000000000000..95bfee852c9c --- /dev/null +++ b/app/apple/server/loginHandler.js @@ -0,0 +1,33 @@ +import { Meteor } from 'meteor/meteor'; +import { Accounts } from 'meteor/accounts-base'; + +import { handleIdentityToken } from './tokenHandler'; +import { settings } from '../../settings'; + +Accounts.registerLoginHandler('apple', (loginRequest) => { + if (!loginRequest.identityToken) { + return; + } + + if (!settings.get('Accounts_OAuth_Apple')) { + return; + } + + const identityResult = handleIdentityToken(loginRequest); + + if (!identityResult.error) { + const result = Accounts.updateOrCreateUserFromExternalService('apple', identityResult.serviceData, identityResult.options); + + // Ensure processing succeeded + if (result === undefined || result.userId === undefined) { + return { + type: 'apple', + error: new Meteor.Error(Accounts.LoginCancelledError.numericError, 'User creation failed from Apple response token'), + }; + } + + return result; + } + + return identityResult; +}); diff --git a/app/apple/server/startup.js b/app/apple/server/startup.js new file mode 100644 index 000000000000..c0b04ed32334 --- /dev/null +++ b/app/apple/server/startup.js @@ -0,0 +1,35 @@ +import _ from 'underscore'; +import { Meteor } from 'meteor/meteor'; +import { ServiceConfiguration } from 'meteor/service-configuration'; + +import { settings } from '../../settings'; + +settings.addGroup('OAuth', function() { + this.section('Apple', function() { + this.add('Accounts_OAuth_Apple', false, { type: 'boolean', public: true }); + }); +}); + +const configureService = _.debounce(Meteor.bindEnvironment(() => { + if (!settings.get('Accounts_OAuth_Apple')) { + return ServiceConfiguration.configurations.remove({ + service: 'apple', + }); + } + + ServiceConfiguration.configurations.upsert({ + service: 'apple', + }, { + $set: { + // We'll hide this button on Web Client + showButton: false, + enabled: settings.get('Accounts_OAuth_Apple'), + }, + }); +}), 1000); + +Meteor.startup(() => { + settings.get('Accounts_OAuth_Apple', () => { + configureService(); + }); +}); diff --git a/app/apple/server/tokenHandler.js b/app/apple/server/tokenHandler.js new file mode 100644 index 000000000000..8594757a426c --- /dev/null +++ b/app/apple/server/tokenHandler.js @@ -0,0 +1,77 @@ +import { jws } from 'jsrsasign'; +import NodeRSA from 'node-rsa'; +import { HTTP } from 'meteor/http'; +import { Meteor } from 'meteor/meteor'; +import { Accounts } from 'meteor/accounts-base'; +import { Match, check } from 'meteor/check'; + +const isValidAppleJWT = (identityToken, header) => { + const applePublicKeys = HTTP.get('https://appleid.apple.com/auth/keys').data.keys; + const { kid } = header; + + const key = applePublicKeys.find((k) => k.kid === kid); + + const pubKey = new NodeRSA(); + pubKey.importKey( + { n: Buffer.from(key.n, 'base64'), e: Buffer.from(key.e, 'base64') }, + 'components-public', + ); + const userKey = pubKey.exportKey(['public']); + + try { + return jws.JWS.verify(identityToken, userKey, { + typ: 'JWT', + alg: 'RS256', + }); + } catch { + return false; + } +}; + +export const handleIdentityToken = ({ identityToken, fullName, email }) => { + check(identityToken, String); + check(fullName, Match.Maybe(Object)); + check(email, Match.Maybe(String)); + + const decodedToken = jws.JWS.parse(identityToken); + + if (!isValidAppleJWT(identityToken, decodedToken.headerObj)) { + return { + type: 'apple', + error: new Meteor.Error(Accounts.LoginCancelledError.numericError, 'identityToken is a invalid JWT'), + }; + } + + const profile = {}; + + const { givenName, familyName } = fullName; + if (givenName && familyName) { + profile.name = `${ givenName } ${ familyName }`; + } + + const { iss, iat, exp } = decodedToken.payloadObj; + + if (!iss) { + return { + type: 'apple', + error: new Meteor.Error(Accounts.LoginCancelledError.numericError, 'Insufficient data in auth response token'), + }; + } + + // Collect basic auth provider details + const serviceData = { + id: iss, + did: iss.split(':').pop(), + issuedAt: new Date(iat * 1000), + expiresAt: new Date(exp * 1000), + }; + + if (email) { + serviceData.email = email; + } + + return { + serviceData, + options: { profile }, + }; +}; diff --git a/app/apps/client/gameCenter/invitePlayers.js b/app/apps/client/gameCenter/invitePlayers.js index 1f0b6f07455e..15579db899c2 100644 --- a/app/apps/client/gameCenter/invitePlayers.js +++ b/app/apps/client/gameCenter/invitePlayers.js @@ -54,13 +54,13 @@ Template.InvitePlayers.helpers({ roomModifier() { return (filter, text = '') => { const f = filter.get(); - return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `${ part }`) }`; + return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `${ part }`) }`; }; }, userModifier() { return (filter, text = '') => { const f = filter.get(); - return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `${ part }`) }`; + return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `${ part }`) }`; }; }, nameSuggestion() { diff --git a/app/apps/server/communication/uikit.js b/app/apps/server/communication/uikit.js index 2bb8beeebc1f..ded3cb2b45e8 100644 --- a/app/apps/server/communication/uikit.js +++ b/app/apps/server/communication/uikit.js @@ -111,8 +111,10 @@ export class AppUIKitInteractionApi { const { type, actionId, - view, - isCleared, + payload: { + view, + isCleared, + }, } = req.body; const user = this.orch.getConverters().get('users').convertToApp(req.user); diff --git a/app/channel-settings/client/views/channelSettings.js b/app/channel-settings/client/views/channelSettings.js index 1ee6d8a4fff6..0e58f1e80319 100644 --- a/app/channel-settings/client/views/channelSettings.js +++ b/app/channel-settings/client/views/channelSettings.js @@ -62,7 +62,7 @@ function roomExcludePinned(room) { return room.retention.excludePinned; } - return settings.get('RetentionPolicy_ExcludePinned'); + return settings.get('RetentionPolicy_DoNotPrunePinned'); } function roomHasGlobalPurge(room) { diff --git a/app/cloud/server/functions/connectWorkspace.js b/app/cloud/server/functions/connectWorkspace.js index 24eff7d9f803..17872bbce584 100644 --- a/app/cloud/server/functions/connectWorkspace.js +++ b/app/cloud/server/functions/connectWorkspace.js @@ -3,7 +3,6 @@ import { HTTP } from 'meteor/http'; import { getRedirectUri } from './getRedirectUri'; import { retrieveRegistrationStatus } from './retrieveRegistrationStatus'; -import { getWorkspaceAccessToken } from './getWorkspaceAccessToken'; import { Settings } from '../../../models'; import { settings } from '../../../settings'; import { saveRegistrationData } from './saveRegistrationData'; @@ -49,11 +48,5 @@ export function connectWorkspace(token) { Promise.await(saveRegistrationData(data)); - // Now that we have the client id and secret, let's get the access token - const accessToken = getWorkspaceAccessToken(true); - if (!accessToken) { - return false; - } - return true; } diff --git a/app/cloud/server/methods.js b/app/cloud/server/methods.js index cca83d62c30b..7e64e5d889df 100644 --- a/app/cloud/server/methods.js +++ b/app/cloud/server/methods.js @@ -11,7 +11,6 @@ import { disconnectWorkspace } from './functions/disconnectWorkspace'; import { syncWorkspace } from './functions/syncWorkspace'; import { checkUserHasCloudLogin } from './functions/checkUserHasCloudLogin'; import { userLogout } from './functions/userLogout'; -import { Settings } from '../../models'; import { hasPermission } from '../../authorization'; import { buildWorkspaceRegistrationData } from './functions/buildRegistrationData'; @@ -49,28 +48,13 @@ Meteor.methods({ return startRegisterWorkspace(); }, - 'cloud:updateEmail'(email, resend = false) { - check(email, String); - - if (!Meteor.userId()) { - throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'cloud:updateEmail' }); - } - - if (!hasPermission(Meteor.userId(), 'manage-cloud')) { - throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'cloud:updateEmail' }); - } - - Settings.updateValueById('Organization_Email', email); - - return startRegisterWorkspace(resend); - }, 'cloud:syncWorkspace'() { if (!Meteor.userId()) { - throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'cloud:updateEmail' }); + throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'cloud:syncWorkspace' }); } if (!hasPermission(Meteor.userId(), 'manage-cloud')) { - throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'cloud:updateEmail' }); + throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'cloud:syncWorkspace' }); } return syncWorkspace(); diff --git a/app/discussion/client/tabBar.js b/app/discussion/client/tabBar.js index 661c9a8ddebf..5b5873d2a41b 100644 --- a/app/discussion/client/tabBar.js +++ b/app/discussion/client/tabBar.js @@ -10,6 +10,7 @@ Meteor.startup(function() { i18nTitle: 'Discussions', icon: 'discussion', template: 'discussionsTabbar', + full: true, order: 1, condition: () => settings.get('Discussion_enabled'), }); diff --git a/app/discussion/client/views/DiscussionTabbar.html b/app/discussion/client/views/DiscussionTabbar.html index b489dcedb79f..80f65ec9d16c 100644 --- a/app/discussion/client/views/DiscussionTabbar.html +++ b/app/discussion/client/views/DiscussionTabbar.html @@ -1,24 +1,3 @@ diff --git a/app/discussion/client/views/DiscussionTabbar.js b/app/discussion/client/views/DiscussionTabbar.js index 956428e899f1..acbae6d694bb 100644 --- a/app/discussion/client/views/DiscussionTabbar.js +++ b/app/discussion/client/views/DiscussionTabbar.js @@ -1,74 +1,11 @@ -import _ from 'underscore'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Mongo } from 'meteor/mongo'; import { Template } from 'meteor/templating'; -import { messageContext } from '../../../ui-utils/client/lib/messageContext'; -import { Messages } from '../../../models/client'; -import { APIClient } from '../../../utils/client'; -import { upsertMessageBulk } from '../../../ui-utils/client/lib/RoomHistoryManager'; - import './DiscussionTabbar.html'; -const LIMIT_DEFAULT = 50; - Template.discussionsTabbar.helpers({ - hasMessages() { - return Template.instance().messages.find().count(); - }, - messages() { - const instance = Template.instance(); - return instance.messages.find({}, { limit: instance.limit.get(), sort: { ts: -1 } }); - }, - hasMore() { - return Template.instance().hasMore.get(); + close() { + const { data } = Template.instance(); + const { tabBar } = data; + return () => tabBar.close(); }, - messageContext, -}); - -Template.discussionsTabbar.onCreated(function() { - this.rid = this.data.rid; - this.messages = new Mongo.Collection(null); - this.hasMore = new ReactiveVar(true); - this.limit = new ReactiveVar(LIMIT_DEFAULT); - - this.autorun(() => { - const query = { - rid: this.rid, - drid: { $exists: true }, - }; - - this.cursor && this.cursor.stop(); - - this.limit.set(LIMIT_DEFAULT); - - this.cursor = Messages.find(query).observe({ - added: ({ _id, ...message }) => { - this.messages.upsert({ _id }, message); - }, - changed: ({ _id, ...message }) => { - this.messages.upsert({ _id }, message); - }, - removed: ({ _id }) => { - this.messages.remove({ _id }); - }, - }); - }); - - this.autorun(async () => { - const limit = this.limit.get(); - const { messages, total } = await APIClient.v1.get(`chat.getDiscussions?roomId=${ this.rid }&count=${ limit }`); - - upsertMessageBulk({ msgs: messages }, this.messages); - - this.hasMore.set(total > limit); - }); -}); - -Template.discussionsTabbar.events({ - 'scroll .js-list': _.throttle(function(e, instance) { - if (e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight - 10 && instance.hasMore.get()) { - instance.limit.set(instance.limit.get() + LIMIT_DEFAULT); - } - }, 200), }); diff --git a/app/discussion/client/views/creationDialog/CreateDiscussion.js b/app/discussion/client/views/creationDialog/CreateDiscussion.js index 7f2f3c2fb7b3..e5cfcc0a5341 100755 --- a/app/discussion/client/views/creationDialog/CreateDiscussion.js +++ b/app/discussion/client/views/creationDialog/CreateDiscussion.js @@ -72,13 +72,13 @@ Template.CreateDiscussion.helpers({ roomModifier() { return (filter, text = '') => { const f = filter.get(); - return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `${ part }`) }`; + return `#${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `${ part }`) }`; }; }, userModifier() { return (filter, text = '') => { const f = filter.get(); - return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get()), (part) => `${ part }`) }`; + return `@${ f.length === 0 ? text : text.replace(new RegExp(filter.get(), 'i'), (part) => `${ part }`) }`; }; }, nameSuggestion() { diff --git a/app/discussion/server/config.js b/app/discussion/server/config.js index d5ed8ee0a2a5..61f6d0d10ce1 100644 --- a/app/discussion/server/config.js +++ b/app/discussion/server/config.js @@ -27,23 +27,23 @@ Meteor.startup(() => { value: true, }; - settings.add('RetentionPolicy_DoNotExcludeDiscussion', true, { + settings.add('RetentionPolicy_DoNotPruneDiscussion', true, { group: 'RetentionPolicy', section: 'Global Policy', type: 'boolean', public: true, - i18nLabel: 'RetentionPolicy_DoNotExcludeDiscussion', - i18nDescription: 'RetentionPolicy_DoNotExcludeDiscussion_Description', + i18nLabel: 'RetentionPolicy_DoNotPruneDiscussion', + i18nDescription: 'RetentionPolicy_DoNotPruneDiscussion_Description', enableQuery: globalQuery, }); - settings.add('RetentionPolicy_DoNotExcludeThreads', true, { + settings.add('RetentionPolicy_DoNotPruneThreads', true, { group: 'RetentionPolicy', section: 'Global Policy', type: 'boolean', public: true, - i18nLabel: 'RetentionPolicy_DoNotExcludeThreads', - i18nDescription: 'RetentionPolicy_DoNotExcludeThreads_Description', + i18nLabel: 'RetentionPolicy_DoNotPruneThreads', + i18nDescription: 'RetentionPolicy_DoNotPruneThreads_Description', enableQuery: globalQuery, }); }); diff --git a/app/e2e/client/accountEncryption.html b/app/e2e/client/accountEncryption.html deleted file mode 100644 index 4a024352b586..000000000000 --- a/app/e2e/client/accountEncryption.html +++ /dev/null @@ -1,75 +0,0 @@ - diff --git a/app/e2e/client/accountEncryption.js b/app/e2e/client/accountEncryption.js deleted file mode 100644 index 145244eb1c7a..000000000000 --- a/app/e2e/client/accountEncryption.js +++ /dev/null @@ -1,100 +0,0 @@ -import { Template } from 'meteor/templating'; -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import toastr from 'toastr'; -import s from 'underscore.string'; - -import { e2e } from './rocketchat.e2e'; -import { settings } from '../../settings'; -import { t } from '../../utils'; - -Template.accountEncryption.helpers({ - isEnabled() { - return settings.get('E2E_Enable'); - }, - allowKeyChange() { - return Meteor._localStorage.getItem('public_key') && Meteor._localStorage.getItem('private_key'); - }, - canConfirmNewKey() { - const encryptionKey = Template.instance().encryptionKey.get(); - return encryptionKey && encryptionKey !== ''; - }, - ifThenElse(condition, val, not = '') { - return condition ? val : not; - }, - canSave(ret) { - const instance = Template.instance(); - - const encryptionKey = instance.encryptionKey.get(); - const confirmationEncryptionKey = instance.confirmationEncryptionKey.get(); - - if (!encryptionKey || encryptionKey !== confirmationEncryptionKey) { - return ret; - } - }, -}); - -Template.accountEncryption.events({ - 'input [name=encryptionKey]'(e, instance) { - instance.encryptionKey.set(e.target.value); - - if (e.target.value.length === 0) { - instance.confirmationEncryptionKey.set(''); - } - }, - 'input [name=confirmation-encryptionKey]'(e, instance) { - instance.confirmationEncryptionKey.set(e.target.value); - }, - 'click button[name=reset-e2e-key]'(e, instance) { - e.preventDefault(); - - return instance.resetKey(); - }, - 'submit form'(e, instance) { - e.preventDefault(); - - return instance.save(); - }, -}); - -Template.accountEncryption.onCreated(function() { - const self = this; - - this.encryptionKey = new ReactiveVar(); - this.confirmationEncryptionKey = new ReactiveVar(); - - this.save = function(cb) { - const instance = this; - const data = {}; - - if (s.trim(self.encryptionKey.get())) { - data.newEncryptionKey = self.encryptionKey.get(); - } - - if (Object.keys(data).length === 0) { - return cb && cb(); - } - - e2e.changePassword(data.newEncryptionKey); - - instance.clearForm(); - toastr.remove(); - this.encryptionKey.set(''); - this.confirmationEncryptionKey.set(''); - - toastr.success(t('Encryption_key_saved_successfully')); - }; - - this.clearForm = function() { - this.find('[name=encryptionKey]').value = ''; - this.find('[name=confirmation-encryptionKey]').value = ''; - }; - - this.resetKey = function() { - Meteor.call('e2e.resetOwnE2EKey', (error, result) => { - if (result) { - toastr.success(t('User_e2e_key_was_reset')); - } - }); - }; -}); diff --git a/app/e2e/client/rocketchat.e2e.js b/app/e2e/client/rocketchat.e2e.js index dcb0b2917169..21c2824780e5 100644 --- a/app/e2e/client/rocketchat.e2e.js +++ b/app/e2e/client/rocketchat.e2e.js @@ -28,9 +28,7 @@ import { Notifications } from '../../notifications'; import { Layout, call, modal, alerts } from '../../ui-utils'; import './events.js'; -import './accountEncryption.html'; import './tabbar'; -import './accountEncryption.js'; let failedToDecodeKey = false; let showingE2EAlert = false; diff --git a/app/ldap/client/loginHelper.js b/app/ldap/client/loginHelper.js index 57a006524c08..efd0b90862f6 100644 --- a/app/ldap/client/loginHelper.js +++ b/app/ldap/client/loginHelper.js @@ -4,6 +4,10 @@ // You'll likely want to set the dn value here {dn: "..."} import { Meteor } from 'meteor/meteor'; import { Accounts } from 'meteor/accounts-base'; +import toastr from 'toastr'; + +import { t } from '../../utils'; +import { process2faReturn } from '../../2fa/client/callWithTwoFactorRequired'; Meteor.loginWithLDAP = function(...args) { // Pull username and password @@ -25,18 +29,41 @@ Meteor.loginWithLDAP = function(...args) { ldapOptions: customLdapOptions, }; + const ldapCallback = (error) => { + if (!callback) { + return; + } + + if (error) { + callback(error); + return; + } + + callback(); + }; + Accounts.callLoginMethod({ // Call login method with ldap = true // This will hook into our login handler for ldap methodArguments: [loginRequest], - userCallback(error/* , result*/) { - if (error) { - if (callback) { - callback(error); - } - } else if (callback) { - callback(); - } + userCallback(error, result) { + process2faReturn({ + error, + result, + originalCallback: ldapCallback, + emailOrUsername: username, + onCode: (code) => { + // If LDAP resulted in a totp-required error, it means this is a login fallback, so for this second login we go straigth to password login + Meteor.loginWithPasswordAndTOTP(username, password, code, (error) => { + if (error && error.error === 'totp-invalid') { + toastr.error(t('Invalid_two_factor_code')); + ldapCallback(); + } else { + ldapCallback(error); + } + }); + }, + }); }, }); }; diff --git a/app/ldap/server/sync.js b/app/ldap/server/sync.js index 607db49b61c5..c11d9ed73367 100644 --- a/app/ldap/server/sync.js +++ b/app/ldap/server/sync.js @@ -358,6 +358,9 @@ export function syncUserData(user, ldapUser, ldap) { _setRealName(user._id, userData.name); delete userData.name; } + userData.customFields = { + ...user.customFields, ...userData.customFields, + }; Meteor.users.update(user._id, { $set: userData }); user = Meteor.users.findOne({ _id: user._id }); } diff --git a/app/lib/server/functions/getFullUserData.js b/app/lib/server/functions/getFullUserData.js index 571977614f5e..9dec322a8dde 100644 --- a/app/lib/server/functions/getFullUserData.js +++ b/app/lib/server/functions/getFullUserData.js @@ -10,6 +10,7 @@ const logger = new Logger('getFullUserData'); const defaultFields = { name: 1, username: 1, + nickname: 1, status: 1, utcOffset: 1, type: 1, diff --git a/app/lib/server/functions/notifications/index.js b/app/lib/server/functions/notifications/index.js index 8b247c8810a3..f3f21638bcc1 100644 --- a/app/lib/server/functions/notifications/index.js +++ b/app/lib/server/functions/notifications/index.js @@ -11,15 +11,13 @@ import { settings } from '../../../../settings'; * @param {object} message the message to be parsed */ export function parseMessageTextPerUser(messageText, message, receiver) { - if (!message.msg && message.attachments && message.attachments[0]) { - const lng = receiver.language || settings.get('Language') || 'en'; + const lng = receiver.language || settings.get('Language') || 'en'; + if (!message.msg && message.attachments && message.attachments[0]) { return message.attachments[0].image_type ? TAPi18n.__('User_uploaded_image', { lng }) : TAPi18n.__('User_uploaded_file', { lng }); } if (message.msg && message.t === 'e2e') { - const lng = receiver.language || settings.get('Language') || 'en'; - return TAPi18n.__('Encrypted_message', { lng }); } diff --git a/app/lib/server/functions/notifications/mobile.js b/app/lib/server/functions/notifications/mobile.js index 5853ba21dc02..02e5cb4d4f81 100644 --- a/app/lib/server/functions/notifications/mobile.js +++ b/app/lib/server/functions/notifications/mobile.js @@ -1,4 +1,5 @@ import { Meteor } from 'meteor/meteor'; +import { TAPi18n } from 'meteor/rocketchat:tap-i18n'; import { settings } from '../../../../settings'; import { Subscriptions } from '../../../../models'; @@ -40,12 +41,23 @@ function enableNotificationReplyButton(room, username) { return !room.muted.includes(username); } -export async function getPushData({ room, message, userId, receiverUsername, senderUsername, senderName, notificationMessage }) { +export async function getPushData({ room, message, userId, senderUsername, senderName, notificationMessage, receiver, shouldOmitMessage = true }) { let username = ''; if (settings.get('Push_show_username_room')) { username = settings.get('UI_Use_Real_Name') === true ? senderName : senderUsername; } + const lng = receiver.language || settings.get('Language') || 'en'; + + let messageText; + if (shouldOmitMessage && settings.get('Push_request_content_from_server')) { + messageText = TAPi18n.__('You_have_a_new_message', { lng }); + } else if (!settings.get('Push_show_message')) { + messageText = ' '; + } else { + messageText = notificationMessage; + } + return { payload: { sender: message.u, @@ -56,9 +68,9 @@ export async function getPushData({ room, message, userId, receiverUsername, sen }, roomName: settings.get('Push_show_username_room') && roomTypes.getConfig(room.t).isGroupChat(room) ? `#${ roomTypes.getRoomName(room.t, room) }` : '', username, - message: settings.get('Push_show_message') ? notificationMessage : ' ', + message: messageText, badge: await getBadgeCount(userId), - category: enableNotificationReplyButton(room, receiverUsername) ? CATEGORY_MESSAGE : CATEGORY_MESSAGE_NOREPLY, + category: enableNotificationReplyButton(room, receiver.username) ? CATEGORY_MESSAGE : CATEGORY_MESSAGE_NOREPLY, }; } diff --git a/app/lib/server/functions/saveUser.js b/app/lib/server/functions/saveUser.js index bceec8403c0a..dbaef2ab13f0 100644 --- a/app/lib/server/functions/saveUser.js +++ b/app/lib/server/functions/saveUser.js @@ -215,6 +215,23 @@ const handleBio = (updateUser, bio) => { } }; +const handleNickname = (updateUser, nickname) => { + if (nickname) { + if (nickname.trim()) { + if (typeof nickname !== 'string' || nickname.length > 120) { + throw new Meteor.Error('error-invalid-field', 'nickname', { + method: 'saveUserProfile', + }); + } + updateUser.$set = updateUser.$set || {}; + updateUser.$set.nickname = nickname; + } else { + updateUser.$unset = updateUser.$unset || {}; + updateUser.$unset.nickname = 1; + } + } +}; + export const saveUser = function(userId, userData) { validateUserData(userId, userData); let sendPassword = false; @@ -261,6 +278,7 @@ export const saveUser = function(userId, userData) { } handleBio(updateUser, userData.bio); + handleNickname(updateUser, userData.nickname); Meteor.users.update({ _id }, updateUser); @@ -320,6 +338,7 @@ export const saveUser = function(userId, userData) { }; handleBio(updateUser, userData.bio); + handleNickname(updateUser, userData.nickname); if (userData.roles) { updateUser.$set.roles = userData.roles; diff --git a/app/lib/server/lib/sendNotificationsOnMessage.js b/app/lib/server/lib/sendNotificationsOnMessage.js index 52b69b341d70..cec7d55150c9 100644 --- a/app/lib/server/lib/sendNotificationsOnMessage.js +++ b/app/lib/server/lib/sendNotificationsOnMessage.js @@ -140,7 +140,7 @@ export const sendNotification = async ({ userId: subscription.u._id, senderUsername: sender.username, senderName: sender.name, - receiverUsername: receiver.username, + receiver, }), }); } diff --git a/app/lib/server/startup/settings.js b/app/lib/server/startup/settings.js index f12d410eda9a..c352ddcb4da5 100644 --- a/app/lib/server/startup/settings.js +++ b/app/lib/server/startup/settings.js @@ -97,7 +97,7 @@ settings.addGroup('Accounts', function() { type: 'boolean', public: true, }); - this.add('Accounts_SearchFields', 'username, name, bio', { + this.add('Accounts_SearchFields', 'username, name, bio, nickname', { type: 'string', }); this.add('Accounts_Directory_DefaultView', 'channels', { @@ -549,6 +549,7 @@ settings.addGroup('Accounts', function() { this.add('Accounts_AvatarBlockUnauthenticatedAccess', false, { type: 'boolean', + public: true, }); return this.add('Accounts_SetDefaultAvatar', true, { @@ -1225,10 +1226,20 @@ settings.addGroup('Push', function() { this.add('Push_enable_gateway', true, { type: 'boolean', alert: 'Push_Setting_Requires_Restart_Alert', - enableQuery: { - _id: 'Push_enable', - value: true, - }, + enableQuery: [ + { + _id: 'Push_enable', + value: true, + }, + { + _id: 'Register_Server', + value: true, + }, + { + _id: 'Cloud_Service_Agree_PrivacyTerms', + value: true, + }, + ], }); this.add('Push_gateway', 'https://gateway.rocket.chat', { type: 'string', @@ -1311,10 +1322,18 @@ settings.addGroup('Push', function() { type: 'boolean', public: true, }); - return this.add('Push_show_message', true, { + this.add('Push_show_message', true, { type: 'boolean', public: true, }); + this.add('Push_request_content_from_server', true, { + type: 'boolean', + enterprise: true, + invalidValue: false, + modules: [ + 'push-privacy', + ], + }); }); }); @@ -1454,6 +1473,12 @@ settings.addGroup('Layout', function() { type: 'boolean', public: true, }); + + this.add('Number_of_users_autocomplete_suggestions', 5, { + type: 'int', + public: true, + }); + this.add('UI_Unread_Counter_Style', 'Different_Style_For_User_Mentions', { type: 'select', values: [ diff --git a/app/livechat/client/views/app/livechatDepartmentForm.html b/app/livechat/client/views/app/livechatDepartmentForm.html index e0a2e5e991e1..d846f4e129ca 100644 --- a/app/livechat/client/views/app/livechatDepartmentForm.html +++ b/app/livechat/client/views/app/livechatDepartmentForm.html @@ -166,7 +166,7 @@

{{_ "Agents"}}

{{_ "Selected_agents"}}
- {{#table fixed='true'}} + {{#table fixed='true' onScroll=onTableScroll }}
{{_ "Username"}}
@@ -185,8 +185,8 @@

{{_ "Agents"}}

- - + + {{else}} diff --git a/app/livechat/client/views/app/livechatDepartmentForm.js b/app/livechat/client/views/app/livechatDepartmentForm.js index 6a926b5aa55c..cb4c8f5e0cb4 100644 --- a/app/livechat/client/views/app/livechatDepartmentForm.js +++ b/app/livechat/client/views/app/livechatDepartmentForm.js @@ -12,6 +12,20 @@ import { getCustomFormTemplate } from './customTemplates/register'; import './livechatDepartmentForm.html'; import { APIClient, roomTypes } from '../../../../utils/client'; +const LIST_SIZE = 50; + +const saveDepartmentsAgents = async (_id, instance) => { + const upsert = [...instance.agentsToUpsert.values()]; + const remove = [...instance.agentsToRemove.values()]; + if (!upsert.length && !remove.length) { + return; + } + return APIClient.v1.post(`livechat/department/${ _id }/agents`, { + upsert, + remove, + }); +}; + Template.livechatDepartmentForm.helpers({ department() { return Template.instance().department.get(); @@ -91,6 +105,18 @@ Template.livechatDepartmentForm.helpers({ hasChatClosingTags() { return [...Template.instance().chatClosingTags.get()].length > 0; }, + onTableScroll() { + const instance = Template.instance(); + return function(currentTarget) { + if (currentTarget.offsetHeight + currentTarget.scrollTop < currentTarget.scrollHeight - 100) { + return; + } + const agents = instance.departmentAgents.get(); + if (instance.total.get() > agents.length) { + instance.offset.set(instance.offset.get() + LIST_SIZE); + } + }; + }, onClickTagOfflineMessageChannel() { return Template.instance().onClickTagOfflineMessageChannel; }, @@ -166,28 +192,19 @@ Template.livechatDepartmentForm.events({ departmentData[name] = elField.val(); }); - const departmentAgents = []; - instance.departmentAgents.get().forEach((agent) => { - agent.count = instance.$(`.count-${ agent.agentId }`).val(); - agent.order = instance.$(`.order-${ agent.agentId }`).val(); - - departmentAgents.push(agent); - }); - - const callback = (error) => { - $btn.html(oldBtnValue); - if (error) { - return handleError(error); - } - - toastr.success(t('Saved')); - FlowRouter.go('livechat-departments'); - }; - if (hasPermission('manage-livechat-departments')) { - Meteor.call('livechat:saveDepartment', _id, departmentData, departmentAgents, callback); + Meteor.call('livechat:saveDepartment', _id, departmentData, [], async function(err, result) { + $btn.html(oldBtnValue); + if (err) { + return handleError(err); + } + + await saveDepartmentsAgents(result._id, instance); + toastr.success(t('Saved')); + FlowRouter.go('livechat-departments'); + }); } else if (hasPermission('add-livechat-department-agents')) { - Meteor.call('livechat:saveDepartmentAgents', _id, departmentAgents, callback); + saveDepartmentsAgents(_id, instance); } else { throw new Error(t('error-not-authorized')); } @@ -197,7 +214,6 @@ Template.livechatDepartmentForm.events({ e.preventDefault(); const users = instance.selectedAgents.get(); - users.forEach(async (user) => { const { _id, username } = user; @@ -205,10 +221,13 @@ Template.livechatDepartmentForm.events({ if (departmentAgents.find(({ agentId }) => agentId === _id)) { return toastr.error(t('This_agent_was_already_selected')); } - const newAgent = _.clone(user); newAgent.agentId = _id; delete newAgent._id; + if (instance.agentsToRemove.has(newAgent.agentId)) { + instance.agentsToRemove.delete(newAgent.agentId); + } + instance.agentsToUpsert.set(newAgent.agentId, { ...newAgent, count: 0, order: 0 }); departmentAgents.push(newAgent); instance.departmentAgents.set(departmentAgents); instance.selectedAgents.set(instance.selectedAgents.get().filter((user) => user.username !== username)); @@ -222,10 +241,24 @@ Template.livechatDepartmentForm.events({ 'click .remove-agent'(e, instance) { e.preventDefault(); + if (instance.agentsToUpsert.has(this.agentId)) { + instance.agentsToUpsert.delete(this.agentId); + } + instance.agentsToRemove.set(this.agentId, this); instance.departmentAgents.set(instance.departmentAgents.get().filter((agent) => agent.agentId !== this.agentId)); }, + 'keyup .count'(event, instance) { + const agent = instance.agentsToUpsert.get(this.agentId) || this; + instance.agentsToUpsert.set(this.agentId, { ...agent, count: parseInt(event.currentTarget.value) || 0 }); + }, + + 'keyup .order'(event, instance) { + const agent = instance.agentsToUpsert.get(this.agentId) || this; + instance.agentsToUpsert.set(this.agentId, { ...agent, order: parseInt(event.currentTarget.value) || 0 }); + }, + 'click #addTag'(e, instance) { e.stopPropagation(); e.preventDefault(); @@ -255,6 +288,8 @@ Template.livechatDepartmentForm.events({ }); Template.livechatDepartmentForm.onCreated(async function() { + this.agentsToUpsert = new Map(); + this.agentsToRemove = new Map(); this.department = new ReactiveVar({ enabled: true }); this.departmentAgents = new ReactiveVar([]); this.selectedAgents = new ReactiveVar([]); @@ -264,8 +299,11 @@ Template.livechatDepartmentForm.onCreated(async function() { this.chatClosingTags = new ReactiveVar([]); this.availableTags = new ReactiveVar([]); this.availableDepartmentTags = new ReactiveVar([]); + this.offset = new ReactiveVar(0); + this.total = new ReactiveVar(0); this.offlineMessageChannel = new ReactiveVar([]); + this.onClickTagOfflineMessageChannel = () => { this.offlineMessageChannel.set([]); }; @@ -293,13 +331,22 @@ Template.livechatDepartmentForm.onCreated(async function() { this.availableDepartmentTags.set(availableTags); }); }; + this.autorun(async () => { + const offset = this.offset.get(); + const { agents, total } = await APIClient.v1.get(`livechat/department/${ FlowRouter.getParam('_id') }/agents?count=${ LIST_SIZE }&offset=${ offset }`); + this.total.set(total); + if (offset === 0) { + this.departmentAgents.set(agents); + } else { + this.departmentAgents.set(this.departmentAgents.get().concat(agents)); + } + }); this.autorun(async () => { const id = FlowRouter.getParam('_id'); if (id) { - const { department, agents = [] } = await APIClient.v1.get(`livechat/department/${ FlowRouter.getParam('_id') }`); + const { department } = await APIClient.v1.get(`livechat/department/${ FlowRouter.getParam('_id') }?includeAgents=false`); this.department.set(department); - this.departmentAgents.set(agents); this.chatClosingTags.set((department && department.chatClosingTags) || []); this.loadAvailableTags(id); } diff --git a/app/livechat/imports/server/rest/departments.js b/app/livechat/imports/server/rest/departments.js index 9ec4113ba66a..3d6eff882f69 100644 --- a/app/livechat/imports/server/rest/departments.js +++ b/app/livechat/imports/server/rest/departments.js @@ -4,7 +4,7 @@ import { API } from '../../../../api/server'; import { hasPermission } from '../../../../authorization'; import { LivechatDepartment, LivechatDepartmentAgents } from '../../../../models'; import { Livechat } from '../../../server/lib/Livechat'; -import { findDepartments, findDepartmentById, findDepartmentsToAutocomplete, findDepartmentsBetweenIds } from '../../../server/api/lib/departments'; +import { findDepartments, findDepartmentById, findDepartmentsToAutocomplete, findDepartmentsBetweenIds, findDepartmentAgents } from '../../../server/api/lib/departments'; API.v1.addRoute('livechat/department', { authRequired: true }, { get() { @@ -35,7 +35,8 @@ API.v1.addRoute('livechat/department', { authRequired: true }, { agents: Match.Maybe(Array), }); - const department = Livechat.saveDepartment(null, this.bodyParams.department, this.bodyParams.agents); + const agents = this.bodyParams.agents ? { upsert: this.bodyParams.agents } : {}; + const department = Livechat.saveDepartment(null, this.bodyParams.department, agents); if (department) { return API.v1.success({ @@ -86,7 +87,6 @@ API.v1.addRoute('livechat/department/:_id', { authRequired: true }, { check(this.bodyParams, { department: Object, agents: Match.Maybe(Array), - }); const { _id } = this.urlParams; @@ -94,11 +94,11 @@ API.v1.addRoute('livechat/department/:_id', { authRequired: true }, { let success; if (permissionToSave) { - success = Livechat.saveDepartment(_id, department, agents); + success = Livechat.saveDepartment(_id, department); } if (success && agents && permissionToAddAgents) { - success = Livechat.saveDepartmentAgents(_id, agents); + success = Livechat.saveDepartmentAgents(_id, { upsert: agents }); } if (success) { @@ -148,6 +148,43 @@ API.v1.addRoute('livechat/department.autocomplete', { authRequired: true }, { }, }); +API.v1.addRoute('livechat/department/:departmentId/agents', { authRequired: true }, { + get() { + check(this.urlParams, { + departmentId: String, + }); + + const { offset, count } = this.getPaginationItems(); + const { sort } = this.parseJsonQuery(); + + const agents = Promise.await(findDepartmentAgents({ + userId: this.userId, + departmentId: this.urlParams.departmentId, + pagination: { + offset, + count, + sort, + }, + })); + + return API.v1.success(agents); + }, + post() { + if (!hasPermission(this.userId, 'manage-livechat-departments') || !hasPermission(this.userId, 'add-livechat-department-agents')) { + return API.v1.unauthorized(); + } + check(this.urlParams, { + departmentId: String, + }); + + check(this.bodyParams, Match.ObjectIncluding({ + upsert: Array, + remove: Array, + })); + Livechat.saveDepartmentAgents(this.urlParams.departmentId, this.bodyParams); + }, +}); + API.v1.addRoute('livechat/department.listByIds', { authRequired: true }, { get() { const { ids } = this.queryParams; diff --git a/app/livechat/imports/server/rest/inquiries.js b/app/livechat/imports/server/rest/inquiries.js index 3abfc5eee735..85b23f2f00ef 100644 --- a/app/livechat/imports/server/rest/inquiries.js +++ b/app/livechat/imports/server/rest/inquiries.js @@ -48,9 +48,6 @@ API.v1.addRoute('livechat/inquiries.list', { authRequired: true }, { API.v1.addRoute('livechat/inquiries.take', { authRequired: true }, { post() { - if (!hasPermission(this.userId, 'view-livechat-manager')) { - return API.v1.unauthorized(); - } try { check(this.bodyParams, { inquiryId: String, diff --git a/app/livechat/server/api/lib/agents.js b/app/livechat/server/api/lib/agents.js index 7de4dade6549..f38b7a5344d7 100644 --- a/app/livechat/server/api/lib/agents.js +++ b/app/livechat/server/api/lib/agents.js @@ -7,7 +7,7 @@ export async function findAgentDepartments({ userId, enabledDepartmentsOnly, age } if (enabledDepartmentsOnly) { return { - departments: await LivechatDepartmentAgents.findActiveDepartmentsByAgentId(agentId), + departments: await LivechatDepartmentAgents.findActiveDepartmentsByAgentId(agentId).toArray(), }; } diff --git a/app/livechat/server/api/lib/departments.js b/app/livechat/server/api/lib/departments.js index ef008ae6fd15..34cdbbe4e0c5 100644 --- a/app/livechat/server/api/lib/departments.js +++ b/app/livechat/server/api/lib/departments.js @@ -68,6 +68,29 @@ export async function findDepartmentsToAutocomplete({ uid, selector }) { }; } +export async function findDepartmentAgents({ userId, departmentId, pagination: { offset, count, sort } }) { + if (!await hasPermissionAsync(userId, 'view-livechat-departments') && !await hasPermissionAsync(userId, 'view-l-room')) { + throw new Error('error-not-authorized'); + } + + const cursor = LivechatDepartmentAgents.findAgentsByDepartmentId(departmentId, { + sort: sort || { username: 1 }, + skip: offset, + limit: count, + }); + + const total = await cursor.count(); + + const agents = await cursor.toArray(); + + return { + agents, + count: agents.length, + offset, + total, + }; +} + export async function findDepartmentsBetweenIds({ uid, ids, fields }) { if (!await hasPermissionAsync(uid, 'view-livechat-departments') && !await hasPermissionAsync(uid, 'view-l-room')) { throw new Error('error-not-authorized'); diff --git a/app/livechat/server/lib/Helper.js b/app/livechat/server/lib/Helper.js index 1bf82d3ddca9..bf6f3b26dae0 100644 --- a/app/livechat/server/lib/Helper.js +++ b/app/livechat/server/lib/Helper.js @@ -1,9 +1,8 @@ -import _ from 'underscore'; import { Meteor } from 'meteor/meteor'; import { Match, check } from 'meteor/check'; import { MongoInternals } from 'meteor/mongo'; -import { Messages, LivechatRooms, Rooms, Subscriptions, Users, LivechatInquiry, LivechatDepartmentAgents } from '../../../models/server'; +import { Messages, LivechatRooms, Rooms, Subscriptions, Users, LivechatInquiry, LivechatDepartment, LivechatDepartmentAgents } from '../../../models/server'; import { Livechat } from './Livechat'; import { RoutingManager } from './RoutingManager'; import { callbacks } from '../../../callbacks/server'; @@ -360,28 +359,30 @@ export const userCanTakeInquiry = (user) => { return (status !== 'offline' && statusLivechat === 'available') || roles.includes('bot'); }; -export const updateDepartmentAgents = (departmentId, agents = []) => { +export const updateDepartmentAgents = (departmentId, agents) => { check(departmentId, String); + check(agents, Match.ObjectIncluding({ + upsert: Match.Maybe(Array), + remove: Match.Maybe(Array), + })); - if (!agents && !Array.isArray(agents)) { - return true; - } - - const savedAgents = _.pluck(LivechatDepartmentAgents.findByDepartmentId(departmentId).fetch(), 'agentId'); - const agentsToSave = _.pluck(agents, 'agentId'); - - // remove other agents + const { upsert = [], remove = [] } = agents; const agentsRemoved = []; - _.difference(savedAgents, agentsToSave).forEach((agentId) => { + const agentsAdded = []; + remove.forEach(({ agentId }) => { LivechatDepartmentAgents.removeByDepartmentIdAndAgentId(departmentId, agentId); agentsRemoved.push(agentId); }); if (agentsRemoved.length > 0) { - callbacks.run('livechat.removeAgentDepartment', { departmentId, agentsId: agentsRemoved }); + callbacks.runAsync('livechat.removeAgentDepartment', { departmentId, agentsId: agentsRemoved }); } - agents.forEach((agent) => { + upsert.forEach((agent) => { + if (!Users.findOneById(agent.agentId, { fields: { _id: 1 } })) { + return; + } + LivechatDepartmentAgents.saveAgent({ agentId: agent.agentId, departmentId, @@ -389,15 +390,20 @@ export const updateDepartmentAgents = (departmentId, agents = []) => { count: agent.count ? parseInt(agent.count) : 0, order: agent.order ? parseInt(agent.order) : 0, }); + agentsAdded.push(agent.agentId); }); - const diff = agents - .map((agent) => agent.agentId) - .filter((agentId) => !savedAgents.includes(agentId)); - if (diff.length > 0) { - callbacks.run('livechat.saveAgentDepartment', { + if (agentsAdded.length > 0) { + callbacks.runAsync('livechat.saveAgentDepartment', { departmentId, - agentsId: diff, + agentsId: agentsAdded, }); } + + if (agentsRemoved.length > 0 || agentsAdded.length > 0) { + const numAgents = LivechatDepartmentAgents.find({ departmentId }).count(); + LivechatDepartment.updateNumAgentsById(departmentId, numAgents); + } + + return true; }; diff --git a/app/livechat/server/lib/Livechat.js b/app/livechat/server/lib/Livechat.js index 0214768ee06b..0fe3480aa77d 100644 --- a/app/livechat/server/lib/Livechat.js +++ b/app/livechat/server/lib/Livechat.js @@ -812,20 +812,31 @@ export const Livechat = { saveDepartmentAgents(_id, departmentAgents) { check(_id, String); - check(departmentAgents, [ - Match.ObjectIncluding({ - agentId: String, - username: String, - }), - ]); + check(departmentAgents, { + upsert: Match.Maybe([ + Match.ObjectIncluding({ + agentId: String, + username: String, + count: Match.Maybe(Match.Integer), + order: Match.Maybe(Match.Integer), + }), + ]), + remove: Match.Maybe([ + Match.ObjectIncluding({ + agentId: String, + username: Match.Maybe(String), + count: Match.Maybe(Match.Integer), + order: Match.Maybe(Match.Integer), + }), + ]), + }); const department = LivechatDepartment.findOneById(_id); if (!department) { throw new Meteor.Error('error-department-not-found', 'Department not found', { method: 'livechat:saveDepartmentAgents' }); } - const departmentDB = LivechatDepartment.createOrUpdateDepartment(_id, department); - return departmentDB && updateDepartmentAgents(departmentDB._id, departmentAgents); + return updateDepartmentAgents(_id, departmentAgents); }, saveDepartment(_id, departmentData, departmentAgents) { @@ -850,13 +861,10 @@ export const Livechat = { }); check(departmentData, defaultValidations); - - check(departmentAgents, Match.Maybe([ - Match.ObjectIncluding({ - agentId: String, - username: String, - }), - ])); + check(departmentAgents, Match.Maybe({ + upsert: Match.Maybe(Array), + remove: Match.Maybe(Array), + })); const { requestTagBeforeClosingChat, chatClosingTags } = departmentData; if (requestTagBeforeClosingChat && (!chatClosingTags || chatClosingTags.length === 0)) { @@ -870,8 +878,12 @@ export const Livechat = { } } - const departmentDB = LivechatDepartment.createOrUpdateDepartment(_id, departmentData, departmentAgents); - return departmentDB && updateDepartmentAgents(departmentDB._id, departmentAgents); + const departmentDB = LivechatDepartment.createOrUpdateDepartment(_id, departmentData); + if (departmentDB && departmentAgents) { + updateDepartmentAgents(departmentDB._id, departmentAgents); + } + + return departmentDB; }, saveAgentInfo(_id, agentData, agentDepartments) { @@ -899,7 +911,6 @@ export const Livechat = { if (!department) { throw new Meteor.Error('department-not-found', 'Department not found', { method: 'livechat:removeDepartment' }); } - const ret = LivechatDepartment.removeById(_id); const agentsIds = LivechatDepartmentAgents.findByDepartmentId(_id).fetch().map((agent) => agent.agentId); LivechatDepartmentAgents.removeByDepartmentId(_id); @@ -940,6 +951,7 @@ export const Livechat = { throw new Meteor.Error('error-invalid-room', 'Invalid room'); } + const showAgentInfo = settings.get('Livechat_show_agent_info'); const ignoredMessageTypes = ['livechat_navigation_history', 'livechat_transcript_history', 'command', 'livechat-close', 'livechat_video_call']; const messages = Messages.findVisibleByRoomIdNotContainingTypes(rid, ignoredMessageTypes, { sort: { ts: 1 } }); @@ -949,7 +961,7 @@ export const Livechat = { if (message.u._id === visitor._id) { author = TAPi18n.__('You', { lng: userLanguage }); } else { - author = message.u.username; + author = showAgentInfo ? message.u.name || message.u.username : TAPi18n.__('Agent', { lng: userLanguage }); } const datetime = moment(message.ts).locale(userLanguage).format('LLL'); diff --git a/app/livechat/server/lib/stream/agentStatus.ts b/app/livechat/server/lib/stream/agentStatus.ts index 0634f78bc396..4d875e95ebcc 100644 --- a/app/livechat/server/lib/stream/agentStatus.ts +++ b/app/livechat/server/lib/stream/agentStatus.ts @@ -17,17 +17,8 @@ settings.get('Livechat_agent_leave_action_timeout', (_key, value) => { }); settings.get('Livechat_agent_leave_action', (_key, value) => { - if (typeof value !== 'boolean') { - return; - } - monitorAgents = value; -}); - -settings.get('Livechat_agent_leave_action', (_key, value) => { - if (typeof value !== 'string') { - return; - } - action = value; + monitorAgents = value !== 'none'; + action = value as string; }); settings.get('Livechat_agent_leave_comment', (_key, value) => { @@ -57,6 +48,7 @@ const onlineAgents = { if (!this.exists(userId)) { return; } + this.users.delete(userId); if (this.queue.has(userId)) { clearTimeout(this.queue.get(userId)); diff --git a/app/livechat/server/methods/saveDepartment.js b/app/livechat/server/methods/saveDepartment.js index b26866c87be0..9665f4facc74 100644 --- a/app/livechat/server/methods/saveDepartment.js +++ b/app/livechat/server/methods/saveDepartment.js @@ -9,6 +9,6 @@ Meteor.methods({ throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveDepartment' }); } - return Livechat.saveDepartment(_id, departmentData, departmentAgents); + return Livechat.saveDepartment(_id, departmentData, { upsert: departmentAgents }); }, }); diff --git a/app/livechat/server/methods/saveDepartmentAgents.js b/app/livechat/server/methods/saveDepartmentAgents.js index 1849bb9a7630..7ae3836ed088 100644 --- a/app/livechat/server/methods/saveDepartmentAgents.js +++ b/app/livechat/server/methods/saveDepartmentAgents.js @@ -9,6 +9,6 @@ Meteor.methods({ throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'livechat:saveDepartmentAgents' }); } - return Livechat.saveDepartmentAgents(_id, departmentAgents); + return Livechat.saveDepartmentAgents(_id, { upsert: departmentAgents }); }, }); diff --git a/app/message-pin/client/actionButton.js b/app/message-pin/client/actionButton.js index 37326abeda06..fd86421e7ba1 100644 --- a/app/message-pin/client/actionButton.js +++ b/app/message-pin/client/actionButton.js @@ -98,9 +98,10 @@ Meteor.startup(function() { label: 'Get_link', classes: 'clipboard', context: ['pinned'], - async action(event) { + async action() { const { msg: message } = messageArgs(this); - $(event.currentTarget).attr('data-clipboard-text', await MessageAction.getPermaLink(message._id)); + const permalink = await MessageAction.getPermaLink(message._id); + navigator.clipboard.writeText(permalink); toastr.success(TAPi18n.__('Copied')); }, condition({ subscription }) { diff --git a/app/message-star/client/actionButton.js b/app/message-star/client/actionButton.js index 72ace56f300c..89690f3da7c0 100644 --- a/app/message-star/client/actionButton.js +++ b/app/message-star/client/actionButton.js @@ -101,9 +101,10 @@ Meteor.startup(function() { label: 'Get_link', classes: 'clipboard', context: ['starred', 'threads'], - async action(event) { + async action() { const { msg: message } = messageArgs(this); - $(event.currentTarget).attr('data-clipboard-text', await MessageAction.getPermaLink(message._id)); + const permalink = await MessageAction.getPermaLink(message._id); + navigator.clipboard.writeText(permalink); toastr.success(TAPi18n.__('Copied')); }, condition({ msg, subscription, u }) { diff --git a/app/meteor-accounts-saml/server/lib/Utils.ts b/app/meteor-accounts-saml/server/lib/Utils.ts index f0c229440360..3a76a4e6c658 100644 --- a/app/meteor-accounts-saml/server/lib/Utils.ts +++ b/app/meteor-accounts-saml/server/lib/Utils.ts @@ -326,7 +326,7 @@ export class SAMLUtils { return parsedMap; } - public static getProfileValue(profile: Record, mapping: IAttributeMapping): any { + public static getProfileValue(profile: Record, mapping: IAttributeMapping, forceString = false): any { const values: Record = { regex: '', }; @@ -334,10 +334,26 @@ export class SAMLUtils { let mainValue; for (const fieldName of fieldNames) { - values[fieldName] = profile[fieldName]; + let profileValue = profile[fieldName]; + + if (Array.isArray(profileValue)) { + for (let i = 0; i < profile[fieldName].length; i++) { + // Add every index to the list of possible values to be used, both first to last and from last to first + values[`${ fieldName }[${ i }]`] = profileValue[i]; + values[`${ fieldName }[-${ Math.abs(0 - profileValue.length + i) }]`] = profileValue[i]; + } + values[`${ fieldName }[]`] = profileValue.join(' '); + if (forceString) { + profileValue = profileValue.join(' '); + } + } else { + values[fieldName] = profileValue; + } + + values[fieldName] = profileValue; if (!mainValue) { - mainValue = profile[fieldName]; + mainValue = profileValue; } } @@ -422,7 +438,7 @@ export class SAMLUtils { } const email = this.getProfileValue(profile, userDataMap.email); - const profileUsername = this.getProfileValue(profile, userDataMap.username); + const profileUsername = this.getProfileValue(profile, userDataMap.username, true); const name = this.getProfileValue(profile, userDataMap.name); // Even if we're not using the email to identify the user, it is still mandatory because it's a mandatory information on Rocket.Chat diff --git a/app/meteor-accounts-saml/tests/server.tests.ts b/app/meteor-accounts-saml/tests/server.tests.ts index be8e26359c90..b806e2dd2477 100644 --- a/app/meteor-accounts-saml/tests/server.tests.ts +++ b/app/meteor-accounts-saml/tests/server.tests.ts @@ -664,6 +664,22 @@ describe('SAML', () => { expect(userObject).to.have.property('customFields').that.is.a('Map').and.is.deep.equal(map); }); + it('should join array values if username receives an array of values', () => { + const { globalSettings } = SAMLUtils; + + const multipleUsernames = { + ...profile, + anotherUsername: ['user1', 'user2'], + }; + + SAMLUtils.updateGlobalSettings(globalSettings); + const userObject = SAMLUtils.mapProfileToUserObject(multipleUsernames); + + expect(userObject).to.be.an('object'); + expect(userObject).to.have.property('samlLogin').that.is.an('object'); + expect(userObject).to.have.property('username').that.is.equal('user1 user2'); + }); + // Channels support both a comma separated single value and an array of values it('should support `channels` attribute with multiple values', () => { const channelsProfile = { @@ -837,6 +853,36 @@ describe('SAML', () => { expect(userObject).to.have.property('fullName').that.is.equal('[DisplayName] (AnotherName)'); }); + it('should support individual array values on templates', () => { + const { globalSettings } = SAMLUtils; + + const multipleUsernames = { + ...profile, + anotherUsername: ['1', '2'], + }; + + const fieldMap = { + username: { + fieldName: 'anotherUsername', + template: 'user-__anotherUsername[-1]__', + }, + email: { + fieldName: 'anotherUsername', + template: 'user-__anotherUsername[0]__', + }, + }; + + globalSettings.userDataFieldMap = JSON.stringify(fieldMap); + + SAMLUtils.updateGlobalSettings(globalSettings); + const userObject = SAMLUtils.mapProfileToUserObject(multipleUsernames); + + expect(userObject).to.be.an('object'); + expect(userObject).to.have.property('username').that.is.equal('user-2'); + expect(userObject).to.have.property('emailList').that.is.an('array').that.includes('user-1'); + }); + + it('should collect the values of every attribute on the field map', () => { const { globalSettings } = SAMLUtils; diff --git a/app/migrations/server/migrations.js b/app/migrations/server/migrations.js index a797c1aeed29..c7d25a94dad6 100644 --- a/app/migrations/server/migrations.js +++ b/app/migrations/server/migrations.js @@ -293,6 +293,7 @@ Migrations._migrateTo = function(version, rerun) { `Branch: ${ Info.commit.branch }`, `Tag: ${ Info.commit.tag }`, ])); + console.log(e.stack); process.exit(1); } } diff --git a/app/models/server/models/LivechatDepartment.js b/app/models/server/models/LivechatDepartment.js index 8ad7bea0f259..080c1975a207 100644 --- a/app/models/server/models/LivechatDepartment.js +++ b/app/models/server/models/LivechatDepartment.js @@ -30,15 +30,11 @@ export class LivechatDepartment extends Base { return this.find(query, options); } - createOrUpdateDepartment(_id, data = {}, agents) { - // We need to allow updating Departments without having to inform agents, so now we'll only - // update the agent/numAgents fields when the agent parameter is an Array, otherwise we skipp those fields - const hasAgents = agents && Array.isArray(agents); - const numAgents = hasAgents && agents.length; + createOrUpdateDepartment(_id, data = {}) { + const oldData = _id && this.findOneById(_id); const record = { ...data, - ...hasAgents && { numAgents }, }; if (_id) { @@ -46,7 +42,9 @@ export class LivechatDepartment extends Base { } else { _id = this.insert(record); } - + if (oldData && oldData.enabled !== data.enabled) { + LivechatDepartmentAgents.setDepartmentEnabledByDepartmentId(_id, data.enabled); + } return _.extend(record, { _id }); } @@ -62,10 +60,12 @@ export class LivechatDepartment extends Base { }); departments.forEach((departmentId) => { + const { enabled: departmentEnabled } = this.findOneById(departmentId, { fields: { enabled: 1 } }); const saveResult = LivechatDepartmentAgents.saveAgent({ agentId, departmentId, username, + departmentEnabled, count: 0, order: 0, }); @@ -80,6 +80,10 @@ export class LivechatDepartment extends Base { return this.update({ _id }, update); } + updateNumAgentsById(_id, numAgents) { + return this.update({ _id }, { $set: { numAgents } }); + } + // REMOVE removeById(_id) { const query = { _id }; diff --git a/app/models/server/models/LivechatDepartmentAgents.js b/app/models/server/models/LivechatDepartmentAgents.js index eda2c4d4b274..d18cb831c8ef 100644 --- a/app/models/server/models/LivechatDepartmentAgents.js +++ b/app/models/server/models/LivechatDepartmentAgents.js @@ -11,6 +11,7 @@ export class LivechatDepartmentAgents extends Base { super('livechat_department_agents'); this.tryEnsureIndex({ departmentId: 1 }); + this.tryEnsureIndex({ departmentEnabled: 1 }); this.tryEnsureIndex({ agentId: 1 }); this.tryEnsureIndex({ username: 1 }); } @@ -34,6 +35,7 @@ export class LivechatDepartmentAgents extends Base { }, { $set: { username: agent.username, + departmentEnabled: agent.departmentEnabled, count: parseInt(agent.count), order: parseInt(agent.order), }, @@ -48,6 +50,10 @@ export class LivechatDepartmentAgents extends Base { this.remove({ departmentId, agentId }); } + removeByDepartmentId(departmentId) { + this.remove({ departmentId }); + } + getNextAgentForDepartment(departmentId) { const agents = this.findByDepartmentId(departmentId).fetch(); @@ -205,10 +211,10 @@ export class LivechatDepartmentAgents extends Base { return this.update(query, update, { multi: true }); } - removeByDepartmentId(departmentId) { - const query = { departmentId }; - - return this.remove(query); + setDepartmentEnabledByDepartmentId(departmentId, departmentEnabled) { + return this.update({ departmentId }, + { $set: { departmentEnabled } }, + { multi: true }); } } export default new LivechatDepartmentAgents(); diff --git a/app/models/server/models/Settings.js b/app/models/server/models/Settings.js index a03c81a04100..2c766c24ca5b 100644 --- a/app/models/server/models/Settings.js +++ b/app/models/server/models/Settings.js @@ -58,7 +58,7 @@ export class Settings extends Base { filter._id = { $in: ids }; } - return this.find(filter, { fields: { _id: 1, value: 1, editor: 1 } }); + return this.find(filter, { fields: { _id: 1, value: 1, editor: 1, enterprise: 1, invalidValue: 1, modules: 1 } }); } findNotHiddenPublicUpdatedAfter(updatedAt) { @@ -70,7 +70,7 @@ export class Settings extends Base { }, }; - return this.find(filter, { fields: { _id: 1, value: 1, editor: 1 } }); + return this.find(filter, { fields: { _id: 1, value: 1, editor: 1, enterprise: 1, invalidValue: 1, modules: 1 } }); } findNotHiddenPrivate() { @@ -105,6 +105,10 @@ export class Settings extends Base { return this.find({ wizard: { $exists: true, $ne: null } }); } + findEnterpriseSettings() { + return this.find({ enterprise: true }); + } + // UPDATE updateValueById(_id, value) { const query = { diff --git a/app/models/server/models/Subscriptions.js b/app/models/server/models/Subscriptions.js index c98ebdd69523..2913a30370e6 100644 --- a/app/models/server/models/Subscriptions.js +++ b/app/models/server/models/Subscriptions.js @@ -1308,6 +1308,10 @@ export class Subscriptions extends Base { Rooms.incUsersCountById(room._id); + if (!['d', 'l'].includes(room.t)) { + Users.addRoomByUserId(user._id, room._id); + } + return result; } @@ -1326,6 +1330,8 @@ export class Subscriptions extends Base { Rooms.incUsersCountNotDMsByIds(roomIds, -1); } + Users.removeAllRoomsByUserId(userId); + return result; } @@ -1340,6 +1346,8 @@ export class Subscriptions extends Base { Rooms.incUsersCountById(roomId, - result); } + Users.removeRoomByRoomId(roomId); + return result; } @@ -1355,11 +1363,17 @@ export class Subscriptions extends Base { Rooms.incUsersCountById(roomId, - result); } + Users.removeRoomByUserId(userId, roomId); + return result; } removeByRoomIds(rids) { - return this.remove({ rid: { $in: rids } }); + const result = this.remove({ rid: { $in: rids } }); + + Users.removeRoomByRoomIds(rids); + + return result; } // ////////////////////////////////////////////////////////////////// diff --git a/app/models/server/models/Users.js b/app/models/server/models/Users.js index 68d45023e7ca..07bf09b38dcb 100644 --- a/app/models/server/models/Users.js +++ b/app/models/server/models/Users.js @@ -28,9 +28,16 @@ export class Users extends Base { constructor(...args) { super(...args); + this.defaultFields = { + __rooms: 0, + }; + + this.tryEnsureIndex({ __rooms: 1 }, { sparse: 1 }); + this.tryEnsureIndex({ roles: 1 }, { sparse: 1 }); this.tryEnsureIndex({ name: 1 }); - this.tryEnsureIndex({ bio: 1 }); + this.tryEnsureIndex({ bio: 1 }, { sparse: 1 }); + this.tryEnsureIndex({ nickname: 1 }, { sparse: 1 }); this.tryEnsureIndex({ createdAt: 1 }); this.tryEnsureIndex({ lastLogin: 1 }); this.tryEnsureIndex({ status: 1 }); @@ -387,6 +394,48 @@ export class Users extends Base { }); } + addRoomByUserId(_id, rid) { + return this.update({ + _id, + __rooms: { $ne: rid }, + }, { + $addToSet: { __rooms: rid }, + }); + } + + removeRoomByUserId(_id, rid) { + return this.update({ + _id, + __rooms: rid, + }, { + $pull: { __rooms: rid }, + }); + } + + removeAllRoomsByUserId(_id) { + return this.update({ + _id, + }, { + $set: { __rooms: [] }, + }); + } + + removeRoomByRoomId(rid) { + return this.update({ + __rooms: rid, + }, { + $pull: { __rooms: rid }, + }, { multi: true }); + } + + removeRoomByRoomIds(rids) { + return this.update({ + __rooms: { $in: rids }, + }, { + $pullAll: { __rooms: rids }, + }, { multi: true }); + } + update2FABackupCodesByUserId(userId, backupCodes) { return this.update({ _id: userId, @@ -508,6 +557,19 @@ export class Users extends Base { return this.findOne(query, options); } + findOneByUsernameAndRoomIgnoringCase(username, rid, options) { + if (typeof username === 'string') { + username = new RegExp(`^${ s.escapeRegExp(username) }$`, 'i'); + } + + const query = { + __rooms: rid, + username, + }; + + return this.findOne(query, options); + } + findOneByUsernameAndServiceNameIgnoringCase(username, userId, serviceName, options) { if (typeof username === 'string') { username = new RegExp(`^${ s.escapeRegExp(username) }$`, 'i'); @@ -660,7 +722,7 @@ export class Users extends Base { return this.find(query, options); } - findByActiveUsersExcept(searchTerm, exceptions, options, forcedSearchFields, extraQuery = []) { + findByActiveUsersExcept(searchTerm, exceptions, options, forcedSearchFields, extraQuery = [], { startsWith = false, endsWith = false } = {}) { if (exceptions == null) { exceptions = []; } if (options == null) { options = {}; } if (!_.isArray(exceptions)) { @@ -682,7 +744,7 @@ export class Users extends Base { return this._db.find(query, options); } - const termRegex = new RegExp(s.escapeRegExp(searchTerm), 'i'); + const termRegex = new RegExp((startsWith ? '^' : '') + s.escapeRegExp(searchTerm) + (endsWith ? '$' : ''), 'i'); const searchFields = forcedSearchFields || settings.get('Accounts_SearchFields').trim().split(','); @@ -1170,6 +1232,21 @@ export class Users extends Base { return this.update(_id, update); } + setNickname(_id, nickname = '') { + const update = { + ...nickname.trim() ? { + $set: { + nickname, + }, + } : { + $unset: { + nickname: 1, + }, + }, + }; + return this.update(_id, update); + } + clearSettings(_id) { const update = { $set: { diff --git a/app/models/server/models/_BaseDb.js b/app/models/server/models/_BaseDb.js index f8438ad25ba4..87785f6a5ec2 100644 --- a/app/models/server/models/_BaseDb.js +++ b/app/models/server/models/_BaseDb.js @@ -124,28 +124,52 @@ export class BaseDb extends EventEmitter { }; } + _ensureDefaultFields(options) { + if (!this.baseModel.defaultFields) { + return options; + } + + if (!options) { + return { fields: this.baseModel.defaultFields }; + } + + if (options.fields != null && Object.keys(options.fields).length > 0) { + return options; + } + + return { + ...options, + fields: this.baseModel.defaultFields, + }; + } + _doNotMixInclusionAndExclusionFields(options) { - if (options && options.fields) { - const keys = Object.keys(options.fields); - const removeKeys = keys.filter((key) => options.fields[key] === 0); - if (keys.length > removeKeys.length) { - removeKeys.forEach((key) => delete options.fields[key]); - } + const optionsDef = this._ensureDefaultFields(options); + if (!optionsDef?.fields) { + return optionsDef; } + + const keys = Object.keys(optionsDef.fields); + const removeKeys = keys.filter((key) => optionsDef.fields[key] === 0); + if (keys.length > removeKeys.length) { + removeKeys.forEach((key) => delete optionsDef.fields[key]); + } + + return optionsDef; } - find(...args) { - this._doNotMixInclusionAndExclusionFields(args[1]); - return this.model.find(...args); + find(query = {}, options = {}) { + const optionsDef = this._doNotMixInclusionAndExclusionFields(options); + return this.model.find(query, optionsDef); } findById(_id, options) { return this.find({ _id }, options); } - findOne(...args) { - this._doNotMixInclusionAndExclusionFields(args[1]); - return this.model.findOne(...args); + findOne(query = {}, options = {}) { + const optionsDef = this._doNotMixInclusionAndExclusionFields(options); + return this.model.findOne(query, optionsDef); } findOneById(_id, options) { diff --git a/app/models/server/raw/BaseRaw.js b/app/models/server/raw/BaseRaw.js index dc2699e01c4f..312ff9df2444 100644 --- a/app/models/server/raw/BaseRaw.js +++ b/app/models/server/raw/BaseRaw.js @@ -3,20 +3,43 @@ export class BaseRaw { this.col = col; } - findOneById(_id, options) { + _ensureDefaultFields(options) { + if (!this.defaultFields) { + return options; + } + + if (!options) { + return { projection: this.defaultFields }; + } + + // TODO: change all places using "fields" for raw models and remove the additional condition here + if ((options.projection != null && Object.keys(options.projection).length > 0) + || (options.fields != null && Object.keys(options.fields).length > 0)) { + return options; + } + + return { + ...options, + projection: this.defaultFields, + }; + } + + findOneById(_id, options = {}) { return this.findOne({ _id }, options); } - findOne(...args) { - return this.col.findOne(...args); + findOne(query = {}, options = {}) { + const optionsDef = this._ensureDefaultFields(options); + return this.col.findOne(query, optionsDef); } findUsersInRoles() { throw new Error('overwrite-function', 'You must overwrite this function in the extended classes'); } - find(...args) { - return this.col.find(...args); + find(query = {}, options = {}) { + const optionsDef = this._ensureDefaultFields(options); + return this.col.find(query, optionsDef); } update(...args) { diff --git a/app/models/server/raw/LivechatDepartment.js b/app/models/server/raw/LivechatDepartment.js index c4f145a860af..405f415db69a 100644 --- a/app/models/server/raw/LivechatDepartment.js +++ b/app/models/server/raw/LivechatDepartment.js @@ -36,7 +36,7 @@ export class LivechatDepartmentRaw extends BaseRaw { return this.find(query, options); } - addBusinessHourToDepartamentsByIds(ids = [], businessHourId) { + addBusinessHourToDepartmentsByIds(ids = [], businessHourId) { const query = { _id: { $in: ids }, }; diff --git a/app/models/server/raw/LivechatDepartmentAgents.js b/app/models/server/raw/LivechatDepartmentAgents.js index 0f1285cef106..d802dc6b2181 100644 --- a/app/models/server/raw/LivechatDepartmentAgents.js +++ b/app/models/server/raw/LivechatDepartmentAgents.js @@ -16,30 +16,19 @@ export class LivechatDepartmentAgentsRaw extends BaseRaw { return this.find({ agentId }); } - findByDepartmentIds(departmentIds, options) { - return this.find({ departmentId: { $in: departmentIds } }, options); + findAgentsByDepartmentId(departmentId, options) { + return this.find({ departmentId }, options); } - findActiveDepartmentsByAgentId(agentId) { - const match = { - $match: { agentId }, - }; - const lookup = { - $lookup: { - from: 'rocketchat_livechat_department', - localField: 'departmentId', - foreignField: '_id', - as: 'departments', - }, + findActiveDepartmentsByAgentId(agentId, options) { + const query = { + agentId, + departmentEnabled: true, }; - const unwind = { - $unwind: { - path: '$departments', - preserveNullAndEmptyArrays: true, - }, - }; - const activeDepartmentsOnlyMatch = { $match: { 'departments.enabled': true } }; - const project = { $project: { departments: 0 } }; - return this.col.aggregate([match, lookup, unwind, activeDepartmentsOnlyMatch, project]).toArray(); + return this.find(query, options); + } + + findByDepartmentIds(departmentIds, options) { + return this.find({ departmentId: { $in: departmentIds } }, options); } } diff --git a/app/models/server/raw/Messages.js b/app/models/server/raw/Messages.js index 6326293c4142..ad09996f7f46 100644 --- a/app/models/server/raw/Messages.js +++ b/app/models/server/raw/Messages.js @@ -48,6 +48,20 @@ export class MessagesRaw extends BaseRaw { return this.find(query, options); } + findDiscussionsByRoomAndText(rid, text, options) { + const query = { + rid, + drid: { $exists: true }, + ...text && { + $text: { + $search: text, + }, + }, + }; + + return this.find(query, options); + } + findAllNumberOfTransferredRooms({ start, end, departmentId, onlyCount = false, options = {} }) { const match = { $match: { diff --git a/app/models/server/raw/Users.js b/app/models/server/raw/Users.js index a6b8fd728dc5..5edbe960a35d 100644 --- a/app/models/server/raw/Users.js +++ b/app/models/server/raw/Users.js @@ -1,6 +1,14 @@ import { BaseRaw } from './BaseRaw'; export class UsersRaw extends BaseRaw { + constructor(...args) { + super(...args); + + this.defaultFields = { + __rooms: 0, + }; + } + findUsersInRoles(roles, scope, options) { roles = [].concat(roles); @@ -126,6 +134,8 @@ export class UsersRaw extends BaseRaw { username: termRegex, }, { name: termRegex, + }, { + nickname: termRegex, }], active: true, type: { diff --git a/app/push-notifications/server/lib/PushNotification.js b/app/push-notifications/server/lib/PushNotification.js index 76847b6f4c3c..115dc0294050 100644 --- a/app/push-notifications/server/lib/PushNotification.js +++ b/app/push-notifications/server/lib/PushNotification.js @@ -3,7 +3,11 @@ import { Meteor } from 'meteor/meteor'; import { Push } from '../../../push/server'; import { settings } from '../../../settings/server'; import { metrics } from '../../../metrics/server'; +import { Users } from '../../../models/server'; import { RocketChatAssets } from '../../../assets/server'; +import { replaceMentionedUsernamesWithFullNames, parseMessageTextPerUser } from '../../../lib/server/functions/notifications'; +import { callbacks } from '../../../callbacks/server'; +import { getPushData } from '../../../lib/server/functions/notifications/mobile'; export class PushNotification { getNotificationId(roomId) { @@ -11,25 +15,11 @@ export class PushNotification { return this.hash(`${ serverId }|${ roomId }`); // hash } - hash(str) { - let hash = 0; - let i = str.length; + getNotificationConfig({ rid, uid: userId, mid: messageId, roomName, username, message, payload, badge = 1, category, idOnly = false }) { + const title = idOnly ? '' : roomName || username; - while (i) { - hash = ((hash << 5) - hash) + str.charCodeAt(--i); - hash &= hash; // Convert to 32bit integer - } - return hash; - } - - send({ rid, uid: userId, mid: messageId, roomName, username, message, payload, badge = 1, category }) { - let title; - if (roomName && roomName !== '') { - title = `${ roomName }`; - message = `${ username }: ${ message }`; - } else { - title = `${ username }`; - } + // message is being redacted already by 'getPushData' if idOnly is true + const text = !idOnly && roomName !== '' ? `${ username }: ${ message }` : message; const config = { from: 'push', @@ -37,12 +27,12 @@ export class PushNotification { sound: 'default', priority: 10, title, - text: message, + text, payload: { host: Meteor.absoluteUrl(), - rid, messageId, - ...payload, + notificationType: idOnly ? 'message-id-only' : 'message', + ...idOnly || { rid, ...payload }, }, userId, notId: this.getNotificationId(rid), @@ -58,9 +48,62 @@ export class PushNotification { }; } + return config; + } + + hash(str) { + let hash = 0; + let i = str.length; + + while (i) { + hash = ((hash << 5) - hash) + str.charCodeAt(--i); + hash &= hash; // Convert to 32bit integer + } + return hash; + } + + send({ rid, uid, mid, roomName, username, message, payload, badge = 1, category }) { + const idOnly = settings.get('Push_request_content_from_server'); + const config = this.getNotificationConfig({ rid, uid, mid, roomName, username, message, payload, badge, category, idOnly }); + metrics.notificationsSent.inc({ notification_type: 'mobile' }); return Push.send(config); } + + getNotificationForMessageId({ receiver, message, room }) { + const sender = Users.findOne(message.u._id, { fields: { username: 1, name: 1 } }); + if (!sender) { + throw new Error('Message sender not found'); + } + + let notificationMessage = callbacks.run('beforeSendMessageNotifications', message.msg); + if (message.mentions?.length > 0 && settings.get('UI_Use_Real_Name')) { + notificationMessage = replaceMentionedUsernamesWithFullNames(message.msg, message.mentions); + } + notificationMessage = parseMessageTextPerUser(notificationMessage, message, receiver); + + const pushData = Promise.await(getPushData({ + room, + message, + userId: receiver._id, + receiver, + senderUsername: sender.username, + senderName: sender.name, + notificationMessage, + shouldOmitMessage: false, + })); + + return { + message, + notification: this.getNotificationConfig({ + ...pushData, + rid: message.rid, + uid: message.u._id, + mid: message._id, + idOnly: false, + }), + }; + } } export default new PushNotification(); diff --git a/app/push/server/apn.js b/app/push/server/apn.js index f661da45cda2..693f8dcc0529 100644 --- a/app/push/server/apn.js +++ b/app/push/server/apn.js @@ -1,4 +1,5 @@ import apn from 'apn'; +import { EJSON } from 'meteor/ejson'; import { logger } from './logger'; @@ -34,7 +35,7 @@ export const sendAPN = ({ userToken, notification, _removeToken }) => { } // Allow the user to set payload data - note.payload = notification.payload || {}; + note.payload = notification.payload ? { ejson: EJSON.stringify(notification.payload) } : {}; note.payload.messageFrom = notification.from; note.priority = priority; @@ -111,5 +112,10 @@ export const initAPN = ({ options, absoluteUrl }) => { } // Rig apn connection - apnConnection = new apn.Provider(options.apn); + try { + apnConnection = new apn.Provider(options.apn); + } catch (e) { + console.error('Error trying to initialize APN'); + console.error(e); + } }; diff --git a/app/push/server/gcm.js b/app/push/server/gcm.js index 5d7c11d04cb7..05acee5b8819 100644 --- a/app/push/server/gcm.js +++ b/app/push/server/gcm.js @@ -1,4 +1,5 @@ import gcm from 'node-gcm'; +import { EJSON } from 'meteor/ejson'; import { logger } from './logger'; @@ -21,7 +22,7 @@ export const sendGCM = function({ userTokens, notification, _replaceToken, _remo logger.debug('sendGCM', userTokens, notification); // Allow user to set payload - const data = notification.payload || {}; + const data = notification.payload ? { ejson: EJSON.stringify(notification.payload) } : {}; data.title = notification.title; data.message = notification.text; diff --git a/app/push/server/push.js b/app/push/server/push.js index 69a094ddcc67..b0d7abed1ad8 100644 --- a/app/push/server/push.js +++ b/app/push/server/push.js @@ -1,5 +1,4 @@ import { Meteor } from 'meteor/meteor'; -import { EJSON } from 'meteor/ejson'; import { Match, check } from 'meteor/check'; import { Mongo } from 'meteor/mongo'; import { HTTP } from 'meteor/http'; @@ -8,6 +7,7 @@ import _ from 'underscore'; import { initAPN, sendAPN } from './apn'; import { sendGCM } from './gcm'; import { logger, LoggerManager } from './logger'; +import { settings } from '../../settings/server'; export const _matchToken = Match.OneOf({ apn: String }, { gcm: String }); export const appTokensCollection = new Mongo.Collection('_raix_push_app_tokens'); @@ -70,11 +70,15 @@ export class PushClass { appTokensCollection.rawCollection().deleteOne({ token }); } + _shouldUseGateway() { + return !!this.options.gateways + && settings.get('Register_Server') + && settings.get('Cloud_Service_Agree_PrivacyTerms'); + } + sendNotificationNative(app, notification, countApn, countGcm) { logger.debug('send to token', app.token); - notification.payload = notification.payload ? { ejson: EJSON.stringify(notification.payload) } : {}; - if (app.token.apn) { countApn.push(app._id); // Send to APN @@ -186,7 +190,7 @@ export class PushClass { appTokensCollection.find(query).forEach((app) => { logger.debug('send to token', app.token); - if (this.options.gateways) { + if (this._shouldUseGateway()) { return this.sendNotificationGateway(app, notification, countApn, countGcm); } diff --git a/app/retention-policy/server/cronPruneMessages.js b/app/retention-policy/server/cronPruneMessages.js index ad374d9e4767..cb5b0fab1865 100644 --- a/app/retention-policy/server/cronPruneMessages.js +++ b/app/retention-policy/server/cronPruneMessages.js @@ -21,9 +21,9 @@ const toDays = (d) => d * 1000 * 60 * 60 * 24; function job() { const now = new Date(); const filesOnly = settings.get('RetentionPolicy_FilesOnly'); - const excludePinned = settings.get('RetentionPolicy_ExcludePinned'); - const ignoreDiscussion = settings.get('RetentionPolicy_DoNotExcludeDiscussion'); - const ignoreThreads = settings.get('RetentionPolicy_DoNotExcludeThreads'); + const excludePinned = settings.get('RetentionPolicy_DoNotPrunePinned'); + const ignoreDiscussion = settings.get('RetentionPolicy_DoNotPruneDiscussion'); + const ignoreThreads = settings.get('RetentionPolicy_DoNotPruneThreads'); // get all rooms with default values types.forEach((type) => { diff --git a/app/retention-policy/server/startup/settings.js b/app/retention-policy/server/startup/settings.js index b6b7946a6d69..6389cbe6b551 100644 --- a/app/retention-policy/server/startup/settings.js +++ b/app/retention-policy/server/startup/settings.js @@ -91,10 +91,10 @@ settings.addGroup('RetentionPolicy', function() { }, globalQuery], }); - this.add('RetentionPolicy_ExcludePinned', false, { + this.add('RetentionPolicy_DoNotPrunePinned', false, { type: 'boolean', public: true, - i18nLabel: 'RetentionPolicy_ExcludePinned', + i18nLabel: 'RetentionPolicy_DoNotPrunePinned', enableQuery: globalQuery, }); this.add('RetentionPolicy_FilesOnly', false, { diff --git a/app/settings/client/lib/settings.ts b/app/settings/client/lib/settings.ts index 6a9597e9df48..c94664ae4d93 100644 --- a/app/settings/client/lib/settings.ts +++ b/app/settings/client/lib/settings.ts @@ -15,20 +15,18 @@ class Settings extends SettingsBase { return this.dict.get(_id); } + private _storeSettingValue(record: { _id: string; value: SettingValue }, initialLoad: boolean): void { + Meteor.settings[record._id] = record.value; + this.dict.set(record._id, record.value); + this.load(record._id, record.value, initialLoad); + } + init(): void { let initialLoad = true; this.collection.find().observe({ - added: (record: {_id: string; value: SettingValue}) => { - Meteor.settings[record._id] = record.value; - this.dict.set(record._id, record.value); - this.load(record._id, record.value, initialLoad); - }, - changed: (record: {_id: string; value: SettingValue}) => { - Meteor.settings[record._id] = record.value; - this.dict.set(record._id, record.value); - this.load(record._id, record.value, initialLoad); - }, - removed: (record: {_id: string}) => { + added: (record: { _id: string; value: SettingValue }) => this._storeSettingValue(record, initialLoad), + changed: (record: { _id: string; value: SettingValue }) => this._storeSettingValue(record, initialLoad), + removed: (record: { _id: string }) => { delete Meteor.settings[record._id]; this.dict.set(record._id, null); this.load(record._id, undefined, initialLoad); diff --git a/app/settings/server/functions/settings.ts b/app/settings/server/functions/settings.ts index 07eb26187b38..480c2f936832 100644 --- a/app/settings/server/functions/settings.ts +++ b/app/settings/server/functions/settings.ts @@ -1,3 +1,5 @@ +import { EventEmitter } from 'events'; + import { Meteor } from 'meteor/meteor'; import _ from 'underscore'; @@ -15,6 +17,8 @@ if (process.env.SETTINGS_HIDDEN) { process.env.SETTINGS_HIDDEN.split(',').forEach((settingId) => hiddenSettings.add(settingId.trim())); } +export const SettingsEvents = new EventEmitter(); + const overrideSetting = (_id: string, value: SettingValue, options: ISettingAddOptions): SettingValue => { const envValue = process.env[_id]; if (envValue) { @@ -79,12 +83,19 @@ export interface ISettingAddOptions { multiline?: boolean; values?: Array; public?: boolean; + enterprise?: boolean; + modules?: Array; + invalidValue?: SettingValue; } - export interface ISettingSelectOption { key: string; i18nLabel: string; } +export interface ISettingRecord extends ISettingAddOptions { + _id: string; + env: boolean; + value: SettingValue; +} export interface ISettingAddGroupOptions { hidden?: boolean; @@ -94,6 +105,7 @@ export interface ISettingAddGroupOptions { i18nDescription?: string; } + interface IUpdateOperator { $set: ISettingAddOptions; $setOnInsert: ISettingAddOptions & { @@ -143,6 +155,13 @@ class Settings extends SettingsBase { options.hidden = options.hidden || false; options.blocked = options.blocked || false; options.secret = options.secret || false; + options.enterprise = options.enterprise || false; + + if (options.enterprise && !('invalidValue' in options)) { + console.error(`Enterprise setting ${ _id } is missing the invalidValue option`); + throw new Error(`Enterprise setting ${ _id } is missing the invalidValue option`); + } + if (options.group && options.sorter == null) { options.sorter = this._sorter[options.group]++; } @@ -329,33 +348,47 @@ class Settings extends SettingsBase { return SettingsModel.updateValueById(_id, undefined); } + /* + * Change a setting value on the Meteor.settings object + */ + storeSettingValue(record: ISettingRecord, initialLoad: boolean): void { + const newData = { + value: record.value, + }; + SettingsEvents.emit('store-setting-value', record, newData); + const { value } = newData; + + Meteor.settings[record._id] = value; + if (record.env === true) { + process.env[record._id] = String(value); + } + + this.load(record._id, value, initialLoad); + } + + /* + * Remove a setting value on the Meteor.settings object + */ + removeSettingValue(record: ISettingRecord, initialLoad: boolean): void { + SettingsEvents.emit('remove-setting-value', record); + + delete Meteor.settings[record._id]; + if (record.env === true) { + delete process.env[record._id]; + } + + this.load(record._id, undefined, initialLoad); + } + /* * Update a setting by id */ init(): void { this.initialLoad = true; SettingsModel.find().observe({ - added: (record: {_id: string; env: boolean; value: SettingValue}) => { - Meteor.settings[record._id] = record.value; - if (record.env === true) { - process.env[record._id] = String(record.value); - } - return this.load(record._id, record.value, this.initialLoad); - }, - changed: (record: {_id: string; env: boolean; value: SettingValue}) => { - Meteor.settings[record._id] = record.value; - if (record.env === true) { - process.env[record._id] = String(record.value); - } - return this.load(record._id, record.value, this.initialLoad); - }, - removed: (record: {_id: string; env: boolean}) => { - delete Meteor.settings[record._id]; - if (record.env === true) { - delete process.env[record._id]; - } - return this.load(record._id, undefined, this.initialLoad); - }, + added: (record: ISettingRecord) => this.storeSettingValue(record, this.initialLoad), + changed: (record: ISettingRecord) => this.storeSettingValue(record, this.initialLoad), + removed: (record: ISettingRecord) => this.removeSettingValue(record, this.initialLoad), }); this.initialLoad = false; this.afterInitialLoad.forEach((fn) => fn(Meteor.settings)); diff --git a/app/settings/server/index.ts b/app/settings/server/index.ts index edcce3a33231..7a4f6ebf00b4 100644 --- a/app/settings/server/index.ts +++ b/app/settings/server/index.ts @@ -1,6 +1,7 @@ -import { settings } from './functions/settings'; +import { settings, SettingsEvents } from './functions/settings'; import './observer'; export { settings, + SettingsEvents, }; diff --git a/app/theme/client/imports/components/contextual-bar.css b/app/theme/client/imports/components/contextual-bar.css index f5bb2b4b0adf..0111c0ad1594 100644 --- a/app/theme/client/imports/components/contextual-bar.css +++ b/app/theme/client/imports/components/contextual-bar.css @@ -1,18 +1,33 @@ .contextual-bar { - z-index: 10; + &.contextual-bar { + z-index: 10; - display: flex; + display: flex; + + overflow: hidden; + flex-direction: column; + flex: 0 0 var(--flex-tab-width); - overflow: hidden; - flex-direction: column; - flex: 0 0 var(--flex-tab-width); + width: var(--flex-tab-width); + height: 100%; - width: var(--flex-tab-width); - height: 100%; + background: var(--color-white); - background: var(--color-white); + border-inline-start: 2px solid var(--color-gray-lightest); - border-inline-start: 2px solid var(--color-gray-lightest); + & > .flex-tab { + width: 100%; + } + + & & { + margin-left: -2px; + } + + .rtl & & { + margin-right: -2px; + margin-left: 0; + } + } &-wrap { position: relative; @@ -24,10 +39,6 @@ max-height: 100%; } - & > .flex-tab { - width: 100%; - } - &__content { display: flex; overflow: auto; @@ -174,13 +185,15 @@ @media (width <= 500px) { .contextual-bar { - position: fixed; - z-index: 999; - top: 0; + &.contextual-bar { + position: fixed; + z-index: 999; + top: 0; - width: 100%; + width: 100%; - animation: dropup-show 0.3s cubic-bezier(0.45, 0.05, 0.55, 0.95); + animation: dropup-show 0.3s cubic-bezier(0.45, 0.05, 0.55, 0.95); + } } } diff --git a/app/theme/client/imports/components/messages.css b/app/theme/client/imports/components/messages.css index 445638c71211..f8f5276e6e0e 100644 --- a/app/theme/client/imports/components/messages.css +++ b/app/theme/client/imports/components/messages.css @@ -4,38 +4,40 @@ .message-actions { position: absolute; - top: 2px; + z-index: 2; + top: -18px; right: 0.4rem; display: none; + box-sizing: border-box; + + padding: 2px; + user-select: none; color: var(--color-darkest); - font-size: 1rem; - - &__buttons { - display: flex; - } + border: 2px solid #f2f3f7; + border-radius: 4px; - &__button { - margin: 0 0.2rem; + background: var(rcx-surface, #ffffff); - font-size: inherit; + font-size: 1.25rem; - &:hover { - color: var(--rc-color-button-primary); - } + &__buttons { + display: flex; } + &__button, &__menu { - padding: 2px 0; + padding: 2px; cursor: pointer; - &:hover &-icon { - fill: var(--rc-color-button-primary); + &:hover { + border-radius: 2px; + background: #eeeff1; } &-icon { diff --git a/app/theme/client/imports/general/base_old.css b/app/theme/client/imports/general/base_old.css index b04db444271f..c1efd9899852 100644 --- a/app/theme/client/imports/general/base_old.css +++ b/app/theme/client/imports/general/base_old.css @@ -1961,6 +1961,12 @@ background-size: contain; } +.rc-old .popup-user-not_in_channel { + display: inline-block; + + float: right; +} + .rc-old .popup-user-status { display: inline-block; @@ -3169,18 +3175,6 @@ } } -.rc-old .avatarPrompt { - & header p { - font-size: 14px; - font-weight: 300; - line-height: 22px; - } - - & img { - width: 200px; - } -} - .rc-old #login-card { position: relative; z-index: 1; diff --git a/app/theme/client/imports/general/theme_old.css b/app/theme/client/imports/general/theme_old.css index 268ea9cdc630..0f00d263728b 100644 --- a/app/theme/client/imports/general/theme_old.css +++ b/app/theme/client/imports/general/theme_old.css @@ -207,7 +207,7 @@ textarea { color: var(--input-placeholder-color); } - &[disabled] { + &[disabled]:not(.rcx-box--full) { background-color: var(--button-disabled-background); } } diff --git a/app/threads/client/components/ThreadComponent.js b/app/threads/client/components/ThreadComponent.js index 20d2881e4274..9cbcddf06f94 100644 --- a/app/threads/client/components/ThreadComponent.js +++ b/app/threads/client/components/ThreadComponent.js @@ -4,6 +4,7 @@ import { Meteor } from 'meteor/meteor'; import { Template } from 'meteor/templating'; import { Blaze } from 'meteor/blaze'; import { Tracker } from 'meteor/tracker'; +import { useLocalStorage } from '@rocket.chat/fuselage-hooks'; import { ChatMessage } from '../../../models/client'; import { useRoute } from '../../../../client/contexts/RouterContext'; @@ -11,7 +12,6 @@ import { roomTypes, APIClient } from '../../../utils/client'; import { call } from '../../../ui-utils/client'; import { useTranslation } from '../../../../client/contexts/TranslationContext'; import VerticalBar from '../../../../client/components/basic/VerticalBar'; -import { useLocalStorage } from './hooks/useLocalstorage'; import { normalizeThreadTitle } from '../lib/normalizeThreadTitle'; export default function ThreadComponent({ mid, rid, jump, room, ...props }) { @@ -88,7 +88,7 @@ export default function ThreadComponent({ mid, rid, jump, room, ...props }) { - {headerTitle} + diff --git a/app/threads/client/components/ThreadListMessage.js b/app/threads/client/components/ThreadListMessage.js deleted file mode 100644 index 4fe07ce40113..000000000000 --- a/app/threads/client/components/ThreadListMessage.js +++ /dev/null @@ -1,127 +0,0 @@ -import React from 'react'; -import { Box, Margins, Button, Icon, Skeleton } from '@rocket.chat/fuselage'; -import { css } from '@rocket.chat/css-in-js'; - -import UserAvatar from '../../../../client/components/basic/avatar/UserAvatar'; -import RawText from '../../../../client/components/basic/RawText'; - -const borderRadius = css` - border-radius: 100%; -`; - -export function NotificationStatus({ t = (e) => e, label, ...props }) { - return ; -} - -export function NotificationStatusAll(props) { - return ; -} - -export function NotificationStatusMe(props) { - return ; -} - -export function NotificationStatusUnread(props) { - return ; -} - -function isIterable(obj) { - // checks for null and undefined - if (obj == null) { - return false; - } - return typeof obj[Symbol.iterator] === 'function'; -} - -const followStyle = css` - & > .rcx-message__container > .rcx-contextual-message__follow { - opacity: 0; - } - .rcx-contextual-message__follow:focus, - &:hover > .rcx-message__container > .rcx-contextual-message__follow, - &:focus > .rcx-message__container > .rcx-contextual-message__follow { - opacity: 1 - } -`; - -export default function ThreadListMessage({ _id, msg, following, username, name, ts, replies, participants, handleFollowButton, unread, mention, all, t = (e) => e, formatDate = (e) => e, tlm, className = [], ...props }) { - const button = !following ? 'bell-off' : 'bell'; - const actionLabel = t(!following ? 'Not_Following' : 'Following'); - - return - - - - -
- {name} - -
- {msg} - - - {replies} - {participants} - {formatDate(tlm)} - - -
- - - { - (mention && ) - || (all && ) - || (unread && ) - } - -
; -} - -export function MessageSkeleton(props) { - return - - - - -
- -
- - - - - - - - -
-
; -} - -function Container({ children, ...props }) { - return {children}; -} - -function Header({ children }) { - return {children} ; -} - -function Username(props) { - return ; -} - -function Timestamp({ ts }) { - return {ts.toDateString ? ts.toDateString() : ts }; -} - -const style = { - display: '-webkit-box', - overflow: 'hidden', - WebkitLineClamp: 2, - WebkitBoxOrient: 'vertical', - wordBreak: 'break-all', -}; - -function Body(props) { - return ; -} diff --git a/app/threads/client/components/hooks/useLocalstorage.js b/app/threads/client/components/hooks/useLocalstorage.js deleted file mode 100644 index 1fa0c81c66ff..000000000000 --- a/app/threads/client/components/hooks/useLocalstorage.js +++ /dev/null @@ -1,38 +0,0 @@ -import { useState, useEffect } from 'react'; - -export function useLocalStorage(key, initialValue) { - const [storedValue, setStoredValue] = useState(() => { - try { - const item = window.localStorage.getItem(key); - return item ? JSON.parse(item) : initialValue; - } catch (error) { - console.log('useLocalStorage Error ->', error); - return initialValue; - } - }); - - const setValue = (value) => { - try { - const valueToStore = value instanceof Function ? value(storedValue) : value; - - setStoredValue(valueToStore); - - window.localStorage.setItem(key, JSON.stringify(valueToStore)); - } catch (error) { - console.log('useLocalStorage setValue Error ->', error); - } - }; - - useEffect(() => { - function handleEvent(e) { - if (e.key !== key) { - return; - } - setStoredValue(JSON.parse(e.newValue)); - } - window.addEventListener('storage', handleEvent); - return () => window.removeEventListener('storage', handleEvent); - }, [key]); - - return [storedValue, setValue]; -} diff --git a/app/threads/client/components/hooks/useUserRoom.js b/app/threads/client/components/hooks/useUserRoom.js deleted file mode 100644 index 64653e1562b8..000000000000 --- a/app/threads/client/components/hooks/useUserRoom.js +++ /dev/null @@ -1,4 +0,0 @@ -import { useReactiveValue } from '../../../../../client/hooks/useReactiveValue'; -import { Rooms } from '../../../../models/client'; - -export const useUserRoom = (rid, fields) => useReactiveValue(() => Rooms.findOne({ _id: rid }, { fields }), [rid, fields]); diff --git a/app/threads/client/components/hooks/useUserSubscription.js b/app/threads/client/components/hooks/useUserSubscription.js deleted file mode 100644 index af65338d6437..000000000000 --- a/app/threads/client/components/hooks/useUserSubscription.js +++ /dev/null @@ -1,4 +0,0 @@ -import { useReactiveValue } from '../../../../../client/hooks/useReactiveValue'; -import { Subscriptions } from '../../../../models/client'; - -export const useUserSubscription = (rid, fields) => useReactiveValue(() => Subscriptions.findOne({ rid }, { fields }), [rid, fields]); diff --git a/app/threads/client/flextab/thread.js b/app/threads/client/flextab/thread.js index b68b335d2b87..90fdad5a04e2 100644 --- a/app/threads/client/flextab/thread.js +++ b/app/threads/client/flextab/thread.js @@ -275,9 +275,15 @@ Template.thread.onCreated(async function() { }); Template.thread.onDestroyed(function() { - const { Threads, threadsObserve, callbackRemove } = this; + const { Threads, threadsObserve, callbackRemove, state } = this; Threads.remove({}); threadsObserve && threadsObserve.stop(); callbackRemove && callbackRemove(); + + const tmid = state.get('tmid'); + const rid = state.get('rid'); + if (rid && tmid) { + delete chatMessages[`${ rid }-${ tmid }`]; + } }); diff --git a/app/threads/client/flextab/threads.js b/app/threads/client/flextab/threads.js index f5bd3f50ffe2..c302a5f00ada 100644 --- a/app/threads/client/flextab/threads.js +++ b/app/threads/client/flextab/threads.js @@ -1,15 +1,8 @@ import { Template } from 'meteor/templating'; -import { HTML } from 'meteor/htmljs'; import './threads.html'; import '../threads.css'; -import { createTemplateForComponent } from '../../../../client/reactAdapters'; - - -createTemplateForComponent('ThreadsList', () => import('../components/ThreadList'), { - renderContainerView: () => HTML.DIV({ class: 'contextual-bar' }), // eslint-disable-line new-cap -}); Template.threads.helpers({ rid() { diff --git a/app/threads/client/lib/normalizeThreadTitle.js b/app/threads/client/lib/normalizeThreadTitle.js index c2d9aaf01006..1eae0c55afb6 100644 --- a/app/threads/client/lib/normalizeThreadTitle.js +++ b/app/threads/client/lib/normalizeThreadTitle.js @@ -8,7 +8,7 @@ import { MentionsParser } from '../../../mentions/lib/MentionsParser'; export const normalizeThreadTitle = ({ ...message }) => { if (message.msg) { - const filteredMessage = filterMarkdown(message.msg); + const filteredMessage = filterMarkdown(s.escapeHTML(message.msg)); if (!message.channels && !message.mentions) { return filteredMessage; } diff --git a/app/ui-account/client/account.html b/app/ui-account/client/account.html deleted file mode 100644 index 537dbcdf8dc2..000000000000 --- a/app/ui-account/client/account.html +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/app/ui-account/client/account.js b/app/ui-account/client/account.js deleted file mode 100644 index 64fa7f578c19..000000000000 --- a/app/ui-account/client/account.js +++ /dev/null @@ -1,11 +0,0 @@ -import { Tracker } from 'meteor/tracker'; -import { Template } from 'meteor/templating'; - -import { SideNav } from '../../ui-utils'; - -Template.account.onRendered(function() { - Tracker.afterFlush(function() { - SideNav.setFlex('accountFlex'); - SideNav.openFlex(); - }); -}); diff --git a/app/ui-account/client/accountFlex.html b/app/ui-account/client/accountFlex.html deleted file mode 100644 index 9af49f8e3743..000000000000 --- a/app/ui-account/client/accountFlex.html +++ /dev/null @@ -1,37 +0,0 @@ - diff --git a/app/ui-account/client/accountFlex.js b/app/ui-account/client/accountFlex.js deleted file mode 100644 index 1f1404855119..000000000000 --- a/app/ui-account/client/accountFlex.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Template } from 'meteor/templating'; -import { FlowRouter } from 'meteor/kadira:flow-router'; - -import { settings } from '../../settings'; -import { hasAllPermission } from '../../authorization'; -import { SideNav, Layout } from '../../ui-utils'; -import { t } from '../../utils'; - -Template.accountFlex.events({ - 'click [data-action="close"]'() { - SideNav.closeFlex(); - }, -}); - -// Template.accountFlex.onRendered(function() { -// $(this.find('.rooms-list')).perfectScrollbar(); -// }); - -Template.accountFlex.helpers({ - allowUserProfileChange() { - return settings.get('Accounts_AllowUserProfileChange'); - }, - accessTokensEnabled() { - return hasAllPermission(['create-personal-access-tokens']); - }, - twoFactorEnabled() { - return settings.get('Accounts_TwoFactorAuthentication_Enabled'); - }, - encryptionEnabled() { - return settings.get('E2E_Enable'); - }, - webdavIntegrationEnabled() { - return settings.get('Webdav_Integration_Enabled'); - }, - menuItem(name, icon, section, group) { - const routeParam = FlowRouter.getParam('group'); - return { - name: t(name), - icon, - pathSection: section, - pathGroup: group, - darken: true, - active: group === routeParam, - }; - }, - embeddedVersion() { - return Layout.isEmbedded(); - }, - showSecurityMenu() { - return settings.get('UI_Display_Security'); - }, - showPersonalAccessTokensMenu() { - return hasAllPermission(['create-personal-access-tokens']) && settings.get('UI_Display_Personal_Access_Tokens'); - }, - showIntegrationsMenu() { - return settings.get('Webdav_Integration_Enabled') && settings.get('UI_Display_Integrations'); - }, - -}); diff --git a/app/ui-account/client/accountIntegrations.html b/app/ui-account/client/accountIntegrations.html deleted file mode 100644 index ef894978795d..000000000000 --- a/app/ui-account/client/accountIntegrations.html +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/app/ui-account/client/accountIntegrations.js b/app/ui-account/client/accountIntegrations.js deleted file mode 100644 index a8d9d3916bcf..000000000000 --- a/app/ui-account/client/accountIntegrations.js +++ /dev/null @@ -1,37 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { Template } from 'meteor/templating'; -import toastr from 'toastr'; - -import { WebdavAccounts } from '../../models'; -import { modal } from '../../ui-utils'; -import { t } from '../../utils'; - -Template.accountIntegrations.helpers({ - webdavAccounts() { - return WebdavAccounts.find().fetch(); - }, - getOptionValue(account) { - return account.name || `${ account.username }@${ account.server_url.replace(/^https?\:\/\//i, '') }`; - }, -}); - -Template.accountIntegrations.events({ - 'click .webdav-account-remove'(e) { - e.preventDefault(); - const selectEl = document.getElementById('webdav-accounts'); - const { options } = selectEl; - const selectedOption = selectEl.value; - const optionIndex = Array.from(options).findIndex((option) => option.value === selectedOption); - - Meteor.call('removeWebdavAccount', selectedOption, function(error) { - if (error) { - return toastr.error(t(error.error)); - } - - toastr.success(t('webdav-account-removed')); - modal.close(); - }); - - selectEl.remove(optionIndex); - }, -}); diff --git a/app/ui-account/client/accountPreferences.html b/app/ui-account/client/accountPreferences.html deleted file mode 100644 index c139d7a3bd7c..000000000000 --- a/app/ui-account/client/accountPreferences.html +++ /dev/null @@ -1,396 +0,0 @@ - diff --git a/app/ui-account/client/accountPreferences.js b/app/ui-account/client/accountPreferences.js deleted file mode 100644 index f27db50f1003..000000000000 --- a/app/ui-account/client/accountPreferences.js +++ /dev/null @@ -1,428 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Tracker } from 'meteor/tracker'; -import { Reload } from 'meteor/reload'; -import { Template } from 'meteor/templating'; -import { TAPi18n } from 'meteor/rocketchat:tap-i18n'; -import _ from 'underscore'; -import s from 'underscore.string'; -import toastr from 'toastr'; - -import { t, handleError, getUserPreference } from '../../utils'; -import { modal, SideNav, offlineAction } from '../../ui-utils'; -import { KonchatNotification } from '../../ui'; -import { settings } from '../../settings'; -import { CustomSounds } from '../../custom-sounds/client'; - -const notificationLabels = { - all: 'All_messages', - mentions: 'Mentions', - nothing: 'Nothing', -}; - -const emailLabels = { - nothing: 'Email_Notification_Mode_Disabled', - mentions: 'Email_Notification_Mode_All', -}; - -function checkedSelected(property, value, defaultValue = undefined) { - if (defaultValue && defaultValue.hash) { - defaultValue = undefined; - } - return getUserPreference(Meteor.userId(), property, defaultValue) === value; -} - -Template.accountPreferences.helpers({ - audioAssets() { - return (CustomSounds && CustomSounds.getList && CustomSounds.getList()) || []; - }, - newMessageNotification() { - return getUserPreference(Meteor.userId(), 'newMessageNotification'); - }, - newRoomNotification() { - return getUserPreference(Meteor.userId(), 'newRoomNotification'); - }, - muteFocusedConversations() { - return getUserPreference(Meteor.userId(), 'muteFocusedConversations'); - }, - languages() { - const languages = TAPi18n.getLanguages(); - - const result = Object.entries(languages) - .map(([key, language]) => ({ ...language, key })) - .sort((a, b) => a.key - b.key); - - result.unshift({ - name: 'Default', - en: 'Default', - key: '', - }); - - return result; - }, - isUserLanguage(key) { - const languageKey = Meteor.user().language; - return typeof languageKey === 'string' && languageKey.toLowerCase() === key.toLowerCase(); - }, - ifThenElse(condition, val, not = '') { - return condition ? val : not; - }, - checked(property, value, defaultValue = undefined) { - return checkedSelected(property, value, defaultValue); - }, - selected(property, value, defaultValue = undefined) { - return checkedSelected(property, value, defaultValue); - }, - highlights() { - const userHighlights = getUserPreference(Meteor.userId(), 'highlights'); - return userHighlights ? userHighlights.join(',\n') : undefined; - }, - desktopNotificationEnabled() { - return KonchatNotification.notificationStatus.get() === 'granted' || (window.Notification && Notification.permission === 'granted'); - }, - desktopNotificationDisabled() { - return KonchatNotification.notificationStatus.get() === 'denied' || (window.Notification && Notification.permission === 'denied'); - }, - desktopNotificationRequireInteraction() { - const userPref = getUserPreference(Meteor.userId(), 'desktopNotificationRequireInteraction', 'undefined'); - return userPref !== 'undefined' ? userPref : undefined; - }, - defaultDesktopNotificationRequireInteraction() { - return settings.get('Accounts_Default_User_Preferences_desktopNotificationRequireInteraction'); - }, - idleTimeLimit() { - return getUserPreference(Meteor.userId(), 'idleTimeLimit'); - }, - defaultIdleTimeLimit() { - return settings.get('Accounts_Default_User_Preferences_idleTimeLimit'); - }, - defaultDesktopNotification() { - return notificationLabels[settings.get('Accounts_Default_User_Preferences_desktopNotifications')]; - }, - defaultMobileNotification() { - return notificationLabels[settings.get('Accounts_Default_User_Preferences_mobileNotifications')]; - }, - defaultEmailNotification() { - return emailLabels[settings.get('Accounts_Default_User_Preferences_emailNotificationMode')]; - }, - showRoles() { - return settings.get('UI_DisplayRoles'); - }, - userDataDownloadEnabled() { - return settings.get('UserData_EnableDownload') !== false; - }, - notificationsSoundVolume() { - return getUserPreference(Meteor.userId(), 'notificationsSoundVolume'); - }, - emailNotificationsAllowed() { - return settings.get('Accounts_AllowEmailNotifications'); - }, - dontAskAgainList() { - return getUserPreference(Meteor.userId(), 'dontAskAgainList'); - }, - showLocalization() { - return settings.get('UI_DisplayLocalization'); - }, - showPrivacy() { - return settings.get('UI_DisplayPrivacy'); - }, - showUserPresence() { - return settings.get('UI_DisplayUserPresence'); - }, - showNotifications() { - return settings.get('UI_DisplayNotifications'); - }, - showMessages() { - return settings.get('UI_DisplayMessages'); - }, - showSidebar() { - return settings.get('UI_DisplaySidebar'); - }, - showHighlights() { - return settings.get('UI_DisplayHighlights'); - }, - showSound() { - return settings.get('UI_DisplaySound'); - }, - showMyData() { - return (settings.get('UserData_EnableDownload') !== false) && settings.get('UI_DisplayMyData'); - }, -}); - -Template.accountPreferences.onCreated(function() { - const settingsTemplate = this.parentTemplate(3); - - if (settingsTemplate.child == null) { - settingsTemplate.child = []; - } - - settingsTemplate.child.push(this); - - this.useEmojis = new ReactiveVar(getUserPreference(Meteor.userId(), 'useEmojis')); - - let instance = this; - - this.autorun(() => { - if (instance.useEmojis && instance.useEmojis.get()) { - Tracker.afterFlush(() => $('#convertAsciiEmoji').show()); - } else { - Tracker.afterFlush(() => $('#convertAsciiEmoji').hide()); - } - }); - - this.clearForm = function() { - this.find('#language').value = Meteor._localStorage.getItem('userLanguage'); - }; - - this.shouldUpdateLocalStorageSetting = function(setting, newValue) { - return Meteor._localStorage.getItem(setting) !== newValue; - }; - - this.save = function() { - if (offlineAction('Updating preference')) { - return; - } - - instance = this; - const data = {}; - let reload = false; - - if (settings.get('UI_DisplayLocalization')) { - const selectedLanguage = $('#language').val(); - if (this.shouldUpdateLocalStorageSetting('userLanguage', selectedLanguage)) { - localStorage.setItem('userLanguage', selectedLanguage); - data.language = selectedLanguage; - reload = true; - } - } - - data.newRoomNotification = $('select[name=newRoomNotification]').val(); - data.newMessageNotification = $('select[name=newMessageNotification]').val(); - data.clockMode = parseInt($('select[name=clockMode]').val()); - data.useEmojis = JSON.parse($('input[name=useEmojis]:checked').val()); - data.convertAsciiEmoji = JSON.parse($('input[name=convertAsciiEmoji]:checked').val()); - data.saveMobileBandwidth = JSON.parse($('input[name=saveMobileBandwidth]:checked').val()); - data.collapseMediaByDefault = JSON.parse($('input[name=collapseMediaByDefault]:checked').val()); - data.muteFocusedConversations = JSON.parse($('#muteFocusedConversations').find('input:checked').val()); - data.hideUsernames = JSON.parse($('#hideUsernames').find('input:checked').val()); - data.messageViewMode = parseInt($('#messageViewMode').find('select').val()); - data.showMessageInMainThread = JSON.parse($('#showMessageInMainThread').find('input:checked').val()); - data.hideFlexTab = JSON.parse($('#hideFlexTab').find('input:checked').val()); - data.hideAvatars = JSON.parse($('#hideAvatars').find('input:checked').val()); - data.sidebarHideAvatar = JSON.parse($('#sidebarHideAvatar').find('input:checked').val()); - data.sendOnEnter = $('#sendOnEnter').find('select').val(); - data.autoImageLoad = JSON.parse($('input[name=autoImageLoad]:checked').val()); - data.emailNotificationMode = $('select[name=emailNotificationMode]').val(); - data.desktopNotifications = $('#desktopNotifications').find('select').val(); - data.mobileNotifications = $('#mobileNotifications').find('select').val(); - data.unreadAlert = JSON.parse($('#unreadAlert').find('input:checked').val()); - data.sidebarShowDiscussion = JSON.parse($('#sidebarShowDiscussion').find('input:checked').val()); - data.notificationsSoundVolume = parseInt($('#notificationsSoundVolume').val()); - data.highlights = _.compact(_.map($('[name=highlights]').val().split(/,|\n/), function(e) { - return s.trim(e); - })); - data.dontAskAgainList = Array.from(document.getElementById('dont-ask').options).map((option) => ({ action: option.value, label: option.text })); - - if (settings.get('UI_DisplayUserPresence')) { - const enableAutoAway = JSON.parse($('#enableAutoAway').find('input:checked').val()); - data.enableAutoAway = enableAutoAway; - if (this.shouldUpdateLocalStorageSetting('enableAutoAway', enableAutoAway)) { - localStorage.setItem('enableAutoAway', enableAutoAway); - reload = true; - } - - const idleTimeLimit = $('input[name=idleTimeLimit]').val() === '' ? settings.get('Accounts_Default_User_Preferences_idleTimeLimit') : parseInt($('input[name=idleTimeLimit]').val()); - data.idleTimeLimit = idleTimeLimit; - if (this.shouldUpdateLocalStorageSetting('idleTimeLimit', idleTimeLimit)) { - localStorage.setItem('idleTimeLimit', idleTimeLimit); - reload = true; - } - } - - if (settings.get('UI_DisplayNotifications')) { - data.emailNotificationMode = $('select[name=emailNotificationMode]').val(); - data.desktopNotificationDuration = $('input[name=desktopNotificationDuration]').val() === '' ? settings.get('Accounts_Default_User_Preferences_desktopNotificationDuration') : parseInt($('input[name=desktopNotificationDuration]').val()); - data.desktopNotifications = $('#desktopNotifications').find('select').val(); - data.mobileNotifications = $('#mobileNotifications').find('select').val(); - } - - if ($('input[name=desktopNotificationRequireInteraction]:checked').val() === undefined) { - data.desktopNotificationRequireInteraction = settings.get('Accounts_Default_User_Preferences_desktopNotificationRequireInteraction'); - } else { - data.desktopNotificationRequireInteraction = JSON.parse($('input[name=desktopNotificationRequireInteraction]:checked').val()); - } - - // if highlights changed we need page reload - const highlights = getUserPreference(Meteor.userId(), 'highlights'); - if (highlights && highlights.join('\n') !== data.highlights.join('\n')) { - reload = true; - } - - if (settings.get('UI_DisplaySidebar')) { - data.roomCounterSidebar = JSON.parse($('#roomCounterSidebar').find('input:checked').val()); - data.sidebarShowDiscussion = JSON.parse($('#sidebarShowDiscussion').find('input:checked').val()); - } - - if (settings.get('UI_DisplayHighlights')) { - data.highlights = _.compact(_.map($('[name=highlights]').val().split(/,|\n/), function(e) { - return s.trim(e); - })); - - // if highlights changed we need page reload - const highlights = getUserPreference(Meteor.userId(), 'highlights'); - if (highlights && highlights.join('\n') !== data.highlights.join('\n')) { - reload = true; - } - } - - if (settings.get('UI_DisplaySound')) { - data.newRoomNotification = $('select[name=newRoomNotification]').val(); - data.newMessageNotification = $('select[name=newMessageNotification]').val(); - data.muteFocusedConversations = JSON.parse($('#muteFocusedConversations').find('input:checked').val()); - data.notificationsSoundVolume = parseInt($('#notificationsSoundVolume').val()); - } - - const selectedLanguage = $('#language').val(); - if (this.shouldUpdateLocalStorageSetting('userLanguage', selectedLanguage)) { - Meteor._localStorage.setItem('userLanguage', selectedLanguage); - data.language = selectedLanguage; - reload = true; - } - - Meteor.call('saveUserPreferences', data, function(error, results) { - if (results) { - toastr.success(t('Preferences_saved')); - instance.clearForm(); - if (reload) { - setTimeout(function() { - if (Meteor._reload && Meteor._reload.reload) { // make it compatible with old meteor - Meteor._reload.reload(); - } else { - Reload._reload(); - } - }, 1000); - } - } - if (error) { - return handleError(error); - } - }); - }; - - this.downloadMyData = function(fullExport = false) { - if (!settings.get('UI_DisplayMyData')) { - return false; - } - Meteor.call('requestDataDownload', { fullExport }, function(error, results) { - if (results) { - if (results.requested) { - modal.open({ - title: t('UserDataDownload_Requested'), - text: t('UserDataDownload_Requested_Text', { pending_operations: results.pendingOperationsBeforeMyRequest }), - type: 'success', - html: true, - }); - - return true; - } - - if (results.exportOperation) { - if (results.exportOperation.status === 'completed') { - const text = results.url - ? TAPi18n.__('UserDataDownload_CompletedRequestExistedWithLink_Text', { download_link: results.url }) - : t('UserDataDownload_CompletedRequestExisted_Text'); - - modal.open({ - title: t('UserDataDownload_Requested'), - text, - type: 'success', - html: true, - }); - - return true; - } - - modal.open({ - title: t('UserDataDownload_Requested'), - text: t('UserDataDownload_RequestExisted_Text', { pending_operations: results.pendingOperationsBeforeMyRequest }), - type: 'success', - html: true, - }); - return true; - } - - modal.open({ - title: t('UserDataDownload_Requested'), - type: 'success', - }); - return true; - } - - if (error) { - return handleError(error); - } - }); - }; - - this.exportMyData = function() { - if (!settings.get('UI_DisplayMyData')) { - return false; - } - this.downloadMyData(true); - }; -}); - -Template.accountPreferences.onRendered(function() { - Tracker.afterFlush(function() { - SideNav.setFlex('accountFlex'); - SideNav.openFlex(); - }); -}); - -Template.accountPreferences.events({ - 'click .rc-header__section-button .save'(e, t) { - t.save(); - }, - 'change input[name=useEmojis]'(e, t) { - t.useEmojis.set($(e.currentTarget).val() === '1'); - }, - 'click .download-my-data'(e, t) { - e.preventDefault(); - t.downloadMyData(); - }, - 'click .export-my-data'(e, t) { - e.preventDefault(); - t.exportMyData(); - }, - 'click .js-test-notifications'(e) { - e.preventDefault(); - KonchatNotification.notify({ - payload: { sender: { username: 'rocket.cat' }, - }, - title: TAPi18n.__('Desktop_Notification_Test'), - text: TAPi18n.__('This_is_a_desktop_notification'), - }); - }, - 'click .js-enable-notifications'() { - KonchatNotification.getDesktopPermission(); - }, - 'change .audio'(e) { - e.preventDefault(); - const audio = $(e.currentTarget).val(); - if (audio === 'none') { - return; - } - if (audio) { - CustomSounds.play(audio); - } - }, - 'click .js-dont-ask-remove'(e) { - e.preventDefault(); - const selectEl = document.getElementById('dont-ask'); - for (let i = selectEl.options.length - 1; i >= 0; i--) { - if (selectEl.options[i].selected) { - selectEl.remove(i); - } - } - }, -}); diff --git a/app/ui-account/client/accountProfile.html b/app/ui-account/client/accountProfile.html deleted file mode 100644 index 45e1769f3e62..000000000000 --- a/app/ui-account/client/accountProfile.html +++ /dev/null @@ -1,221 +0,0 @@ - - diff --git a/app/ui-account/client/accountProfile.js b/app/ui-account/client/accountProfile.js deleted file mode 100644 index c00439457912..000000000000 --- a/app/ui-account/client/accountProfile.js +++ /dev/null @@ -1,612 +0,0 @@ -import { SHA256 } from 'meteor/sha'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { ReactiveDict } from 'meteor/reactive-dict'; -import { Meteor } from 'meteor/meteor'; -import { Tracker } from 'meteor/tracker'; -import { FlowRouter } from 'meteor/kadira:flow-router'; -import { Template } from 'meteor/templating'; -import _ from 'underscore'; -import s from 'underscore.string'; -import toastr from 'toastr'; - -import { modal, offlineAction, SideNav, warnUserDeletionMayRemoveRooms, popover } from '../../ui-utils/client'; -import { t, handleError } from '../../utils/client'; -import { settings } from '../../settings/client'; -import { Notifications } from '../../notifications/client'; -import { callbacks } from '../../callbacks/client'; -import { getPopoverStatusConfig } from '../../ui/client'; - -const validateEmail = (email) => /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email); -const validateUsername = (username) => { - const reg = new RegExp(`^${ settings.get('UTF8_Names_Validation') }$`); - return reg.test(username); -}; -const validateName = (name) => (name && name.length) || !settings.get('Accounts_RequireNameForSignUp'); -const validateStatusMessage = (statusMessage) => { - if (!statusMessage || statusMessage.length <= 120 || statusMessage.length === 0) { - return true; - } -}; -const validatePassword = (password, confirmationPassword) => { - if (!confirmationPassword) { - return true; - } - - return password === confirmationPassword; -}; - -const filterNames = (old) => { - const reg = new RegExp(`^${ settings.get('UTF8_Names_Validation') }$`); - return [...old.replace(' ', '')].filter((f) => reg.test(f)).join(''); -}; -const filterEmail = (old) => old.replace(' ', ''); - -const setAvatar = function(event, template) { - const { blob, contentType, service } = this.suggestion; - - template.avatar.set({ - service, - contentType, - blob, - }); -}; -const loginWith = function(event, template) { - const loginWithService = `loginWith${ s.capitalize(this.name) }`; - const serviceConfig = {}; - Meteor[loginWithService](serviceConfig, function(error) { - if (error && error.error) { - if (error.error === 'github-no-public-email') { - return alert(t('github_no_public_email')); - } - return toastr.error(error.message); - } - template.getSuggestions(); - }); -}; -const isUserEmailVerified = (user) => user.emails && user.emails[0] && user.emails[0].verified; -const getUserEmailAddress = (user) => user.emails && user.emails[0] && user.emails[0].address; - -Template.accountProfile.helpers({ - emailInvalid() { - return !validateEmail(Template.instance().email.get()); - }, - usernameInvalid() { - return !validateUsername(Template.instance().username.get()); - }, - usernameAvaliable() { - return Template.instance().usernameAvaliable.get() !== false; - }, - nameInvalid() { - return !validateName(Template.instance().realname.get()); - }, - statusMessageInvalid() { - return !validateStatusMessage(Template.instance().fields.get('statusText')); - }, - confirmationPasswordInvalid() { - const { password, confirmationPassword } = Template.instance(); - return !validatePassword(password.get(), confirmationPassword.get()); - }, - selectUrl() { - return Template.instance().url.get().trim() ? '' : 'disabled'; - }, - services() { - const suggestions = Template.instance().suggestions.get(); - - if (suggestions.avatars) { - return Object.keys(suggestions.avatars).map((service) => ({ - name: service, - // TODO: improve this fix - service: !suggestions.avatars[service.toLowerCase()] ? settings.get(`Accounts_OAuth_${ s.capitalize(service.toLowerCase()) }`) : false, - suggestion: suggestions.avatars[service.toLowerCase()], - })) - .filter(({ service, suggestion }) => service || suggestion); - } - }, - initialsUsername() { - const user = Meteor.user(); - return `@${ user && user.username }`; - }, - avatarPreview() { - return Template.instance().avatar.get(); - }, - suggestions() { - return Template.instance().suggestions.get(); - }, - ifThenElse(condition, val, not = '') { - return condition ? val : not; - }, - canSave(ret) { - const instance = Template.instance(); - instance.dep.depend(); - const realname = instance.realname.get(); - - const statusType = instance.statusType.get(); - const statusText = instance.fields.get('statusText'); - const bio = instance.fields.get('bio'); - const username = instance.username.get(); - const password = instance.password.get(); - const confirmationPassword = instance.confirmationPassword.get(); - const email = instance.email.get(); - const usernameAvaliable = instance.usernameAvaliable.get(); - const avatar = instance.avatar.get(); - const user = Meteor.user(); - const { customFields = {} } = user; - if (instance.view.isRendered) { - if (instance.findAll('[data-customfield="true"]').some((el) => { - const key = el.getAttribute('name'); - const value = customFields[key] || ''; - return el.value !== value; - })) { - return; - } - } - - if (!avatar && user.bio === bio && user.name === realname && user.username === username && getUserEmailAddress(user) === email && statusText === user.statusText && !password && statusType === user.status) { - return ret; - } - - if (!validateEmail(email) || !validatePassword(password, confirmationPassword) || (!validateUsername(username) || usernameAvaliable !== true) || !validateName(realname) || !validateStatusMessage(statusText)) { - return ret; - } - }, - canResendEmailConf(ret) { - const email = Template.instance().email.get(); - const user = Meteor.user(); - if (getUserEmailAddress(user) && getUserEmailAddress(user) !== email) { - return ret; - } - }, - allowDeleteOwnAccount() { - return settings.get('Accounts_AllowDeleteOwnAccount'); - }, - realname() { - return Meteor.user().name; - }, - username() { - return Meteor.user().username; - }, - email() { - const user = Meteor.user(); - return getUserEmailAddress(user); - }, - emailVerified() { - const user = Meteor.user(); - return isUserEmailVerified(user); - }, - allowRealNameChange() { - return settings.get('Accounts_AllowRealNameChange'); - }, - allowStatusMessageChange() { - return settings.get('Accounts_AllowUserStatusMessageChange'); - }, - allowUsernameChange() { - return settings.get('Accounts_AllowUsernameChange') && settings.get('LDAP_Enable') !== true; - }, - allowEmailChange() { - return settings.get('Accounts_AllowEmailChange'); - }, - allowPasswordChange() { - return settings.get('Accounts_AllowPasswordChange'); - }, - canConfirmNewPassword() { - const password = Template.instance().password.get(); - return settings.get('Accounts_AllowPasswordChange') && password && password !== ''; - }, - allowAvatarChange() { - return settings.get('Accounts_AllowUserAvatarChange'); - }, - customFields() { - return Meteor.user().customFields; - }, - statusType() { - return Meteor.user().status; - }, - get(field) { - return Template.instance().fields.get(field); - }, -}); - -Template.accountProfile.onCreated(function() { - const user = Meteor.user(); - - this.fields = new ReactiveDict({ - statusText: user.statusText, - bio: user.bio, - }); - - const self = this; - self.dep = new Tracker.Dependency(); - self.realname = new ReactiveVar(user.name); - self.email = new ReactiveVar(getUserEmailAddress(user)); - self.username = new ReactiveVar(user.username); - self.password = new ReactiveVar(); - self.confirmationPassword = new ReactiveVar(); - self.suggestions = new ReactiveVar(); - self.avatar = new ReactiveVar(); - self.url = new ReactiveVar(''); - self.usernameAvaliable = new ReactiveVar(true); - self.statusText = new ReactiveVar(user.statusText); - self.statusType = new ReactiveVar(user.status); - - Notifications.onLogged('updateAvatar', () => self.avatar.set()); - self.getSuggestions = function() { - self.suggestions.set(undefined); - Meteor.call('getAvatarSuggestion', function(error, avatars) { - self.suggestions.set({ ready: true, avatars }); - }); - }; - self.getSuggestions(); - const settingsTemplate = this.parentTemplate(3); - if (settingsTemplate.child == null) { - settingsTemplate.child = []; - } - settingsTemplate.child.push(this); - this.clearForm = function() { - this.find('[name=password]').value = ''; - }; - this.changePassword = function(newPassword, callback) { - const instance = this; - if (!newPassword) { - return callback(); - } if (!settings.get('Accounts_AllowPasswordChange')) { - toastr.remove(); - toastr.error(t('Password_Change_Disabled')); - instance.clearForm(); - } - }; - this.save = function(typedPassword, cb) { - const avatar = self.avatar.get(); - if (avatar) { - const params = [avatar.blob]; - - params.push(avatar.contentType); - - params.push(avatar.service); - Meteor.call('setAvatarFromService', ...params, function(err) { - if (err && err.details && err.details.timeToReset) { - toastr.error(t('error-too-many-requests', { - seconds: parseInt(err.details.timeToReset / 1000), - })); - } else { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', avatar.service); - } - }); - } - const instance = this; - const data = {}; - const user = Meteor.user(); - if (typedPassword) { - data.typedPassword = typedPassword; - } - if (s.trim(self.password.get()) && settings.get('Accounts_AllowPasswordChange')) { - data.newPassword = self.password.get(); - } - if (s.trim(self.realname.get()) !== user.name) { - if (!settings.get('Accounts_AllowRealNameChange')) { - toastr.remove(); - toastr.error(t('RealName_Change_Disabled')); - instance.clearForm(); - return cb && cb(); - } - data.realname = s.trim(self.realname.get()); - } - if (s.trim(self.fields.get('statusText')) !== user.statusText) { - if (!settings.get('Accounts_AllowUserStatusMessageChange')) { - toastr.remove(); - toastr.error(t('StatusMessage_Change_Disabled')); - instance.clearForm(); - return cb && cb(); - } - - data.statusText = s.trim(self.fields.get('statusText')); - } - - if (s.trim(self.fields.get('bio')) !== user.statusText) { - data.bio = s.trim(self.fields.get('bio')); - } - if (self.statusType.get() !== user.statusType) { - data.statusType = self.statusType.get(); - } - if (s.trim(self.username.get()) !== user.username) { - if (!settings.get('Accounts_AllowUsernameChange')) { - toastr.remove(); - toastr.error(t('Username_Change_Disabled')); - instance.clearForm(); - return cb && cb(); - } - data.username = s.trim(self.username.get()); - } - // WIDECHAT - disable email check - // if (s.trim(self.email.get()) !== getUserEmailAddress(user)) { - // if (!settings.get('Accounts_AllowEmailChange')) { - // toastr.remove(); - // toastr.error(t('Email_Change_Disabled')); - // instance.clearForm(); - // return cb && cb(); - // } else { - // data.email = s.trim(self.email.get()); - // } - // } - - const customFields = {}; - $('[data-customfield=true]').each(function() { - customFields[this.name] = $(this).val() || ''; - }); - - if (Object.keys(data).length + Object.keys(customFields).length === 0 || offlineAction('Updating profile')) { - return cb && cb(); - } - Meteor.call('saveUserProfile', data, customFields, function(error, results) { - cb && cb(); - if (results) { - toastr.remove(); - toastr.success(t('Profile_saved_successfully')); - modal.close(); - instance.clearForm(); - self.password.set(); - } - if (error) { - toastr.remove(); - handleError(error); - } - }); - }; -}); - -Template.accountProfile.onRendered(function() { - Tracker.afterFlush(() => { - if (!settings.get('Accounts_AllowUserProfileChange')) { - FlowRouter.go('home'); - } - this.clearForm(); - SideNav.setFlex('accountFlex'); - SideNav.openFlex(); - }); -}); - -const checkAvailability = _.debounce((username, { usernameAvaliable }) => { - Meteor.call('checkUsernameAvailability', username, function(error, data) { - usernameAvaliable.set(data); - }); -}, 800); - -Template.accountProfile.events({ - 'change [data-customfield="true"], input [data-customfield="true"]': _.debounce((e, i) => { - i.dep.changed(); - }, 300), - 'click .js-select-avatar-initials'() { - Meteor.call('resetAvatar', function(err) { - if (err && err.details && err.details.timeToReset) { - toastr.error(t('error-too-many-requests', { - seconds: parseInt(err.details.timeToReset / 1000), - })); - } else { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', 'initials'); - } - }); - }, - 'click .js-select-avatar-url'(e, instance, ...args) { - const url = instance.url.get().trim(); - if (!url) { - return; - } - setAvatar.apply({ - suggestion: { - service: 'url', - blob: url, - contentType: '', - }, - }, [e, instance, ...args]); - }, - 'click .js-status-type'(e, instance) { - popover.open(getPopoverStatusConfig(e.currentTarget, (status) => instance.statusType.set(status))); - }, - 'input .js-avatar-url-input'(e, instance) { - const text = e.target.value; - instance.url.set(text); - }, - 'click .js-select-avatar'(...args) { - this.suggestion ? setAvatar.apply(this, args) : loginWith.apply(this, args); - }, - 'input [name=email]'(e, instance) { - const input = e.target; - const position = input.selectionEnd || input.selectionStart; - const { length } = input.value; - const modified = filterEmail(input.value); - input.value = modified; - document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length); - instance.email.set(modified); - }, - 'input [name=username]'(e, instance) { - const input = e.target; - const position = input.selectionEnd || input.selectionStart; - const { length } = input.value; - const modified = filterNames(input.value); - input.value = modified; - document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length); - instance.username.set(modified); - instance.usernameAvaliable.set(); - checkAvailability(modified, instance); - }, - 'input [name=realname]'(e, instance) { - instance.realname.set(e.target.value); - }, - 'input [name=password]'(e, instance) { - instance.password.set(e.target.value); - - if (e.target.value.length === 0) { - instance.confirmationPassword.set(''); - } - }, - 'input [name=bio], input [name=statusText]'(e, instance) { - instance.fields.set(e.target.name, e.target.value); - }, - 'input [name=confirmation-password]'(e, instance) { - instance.confirmationPassword.set(e.target.value); - }, - 'submit form'(e, instance) { - e.preventDefault(); - const user = Meteor.user(); - const email = instance.email.get(); - const password = instance.password.get(); - - const send = $(e.target.send); - send.addClass('loading'); - const reqPass = ((email !== getUserEmailAddress(user)) - || s.trim(password)) && (user && user.services && user.services.password && s.trim(user.services.password.bcrypt)); - if (!reqPass) { - return instance.save(undefined, () => setTimeout(() => send.removeClass('loading'), 1000)); - } - modal.open({ - title: t('Please_enter_your_password'), - text: t('For_your_security_you_must_enter_your_current_password_to_continue'), - type: 'input', - inputType: 'password', - showCancelButton: true, - closeOnConfirm: false, - confirmButtonText: t('Save'), - cancelButtonText: t('Cancel'), - }, (typedPassword) => { - if (typedPassword) { - toastr.remove(); - toastr.warning(t('Please_wait_while_your_profile_is_being_saved')); - instance.save(SHA256(typedPassword), () => send.removeClass('loading')); - instance.password.set(); - instance.confirmationPassword.set(); - } else { - modal.showInputError(t('You_need_to_type_in_your_password_in_order_to_do_this')); - return false; - } - }); - }, - 'click .js-logout'(e) { - e.preventDefault(); - $(e.target).addClass('loading'); - Meteor.logoutOtherClients(function(error) { - setTimeout(function functionName() { - if (error) { - toastr.remove(); - handleError(error); - } else { - toastr.remove(); - toastr.success(t('Logged_out_of_other_clients_successfully')); - } - - $(e.target).removeClass('loading'); - }, 1000); - }); - }, - 'click .js-delete-account'(e) { - e.preventDefault(); - const user = Meteor.user(); - - const deleteOwnAccount = (deleteConfirmation, confirmRelinquish = false) => { - Meteor.call('deleteUserOwnAccount', deleteConfirmation, confirmRelinquish, function(error) { - if (error) { - toastr.remove(); - - if (error.error === 'user-last-owner') { - const { shouldChangeOwner, shouldBeRemoved } = error.details; - warnUserDeletionMayRemoveRooms(user._id, () => deleteOwnAccount(deleteConfirmation, true), { - confirmButtonKey: 'Continue', - closeOnConfirm: true, - skipModalIfEmpty: true, - shouldChangeOwner, - shouldBeRemoved, - }); - return; - } - - modal.showInputError(t('Your_password_is_wrong')); - } else { - modal.close(); - } - }); - }; - - if (s.trim(user && user.services && user.services.password && user.services.password.bcrypt)) { - modal.open({ - title: t('Are_you_sure_you_want_to_delete_your_account'), - text: t('If_you_are_sure_type_in_your_password'), - type: 'input', - inputType: 'password', - showCancelButton: true, - closeOnConfirm: false, - confirmButtonText: t('Delete'), - cancelButtonText: t('Cancel'), - }, (typedPassword) => { - if (typedPassword) { - toastr.remove(); - toastr.warning(t('Please_wait_while_your_account_is_being_deleted')); - - deleteOwnAccount(SHA256(typedPassword)); - } else { - modal.showInputError(t('You_need_to_type_in_your_password_in_order_to_do_this')); - return false; - } - }); - } else { - modal.open({ - title: t('Are_you_sure_you_want_to_delete_your_account'), - text: t('If_you_are_sure_type_in_your_username'), - type: 'input', - showCancelButton: true, - closeOnConfirm: false, - confirmButtonText: t('Delete'), - cancelButtonText: t('Cancel'), - }, (deleteConfirmation) => { - const user = Meteor.user(); - if (deleteConfirmation === (user && user.username)) { - toastr.remove(); - toastr.warning(t('Please_wait_while_your_account_is_being_deleted')); - - deleteOwnAccount(deleteConfirmation); - } else { - modal.showInputError(t('You_need_to_type_in_your_username_in_order_to_do_this')); - return false; - } - }); - } - }, - 'click #resend-verification-email'(e) { - const user = Meteor.user(); - e.preventDefault(); - e.currentTarget.innerHTML = `${ e.currentTarget.innerHTML } ...`; - e.currentTarget.disabled = true; - Meteor.call('sendConfirmationEmail', getUserEmailAddress(user), (error, results) => { - if (results) { - toastr.success(t('Verification_email_sent')); - } else if (error) { - handleError(error); - } - e.currentTarget.innerHTML = e.currentTarget.innerHTML.replace(' ...', ''); - e.currentTarget.disabled = false; - }); - }, - 'change .js-select-avatar-upload [type=file]'(event, template) { - const e = event.originalEvent || event; - let { files } = e.target; - if (!files || files.length === 0) { - files = (e.dataTransfer && e.dataTransfer.files) || []; - } - Object.keys(files).forEach((key) => { - const blob = files[key]; - if (!/image\/.+/.test(blob.type)) { - return; - } - const reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = function() { - template.avatar.set({ - service: 'upload', - contentType: blob.type, - blob: reader.result, - }); - callbacks.run('userAvatarSet', 'upload'); - }; - }); - }, - -}); diff --git a/app/ui-account/client/avatar/prompt.html b/app/ui-account/client/avatar/prompt.html deleted file mode 100644 index d1a8aaaf015f..000000000000 --- a/app/ui-account/client/avatar/prompt.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/app/ui-account/client/avatar/prompt.js b/app/ui-account/client/avatar/prompt.js deleted file mode 100644 index 1d5d651e9917..000000000000 --- a/app/ui-account/client/avatar/prompt.js +++ /dev/null @@ -1,172 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Tracker } from 'meteor/tracker'; -import { FlowRouter } from 'meteor/kadira:flow-router'; -import { Template } from 'meteor/templating'; -import s from 'underscore.string'; -import toastr from 'toastr'; - -import { settings } from '../../../settings'; -import { callbacks } from '../../../callbacks'; -import { SideNav } from '../../../ui-utils'; -import { t } from '../../../utils'; -import { mime } from '../../../utils/lib/mimeTypes'; -import { fileUploadHandler } from '../../../file-upload'; - -Template.avatarPrompt.onCreated(function() { - const self = this; - self.suggestions = new ReactiveVar(); - self.upload = new ReactiveVar(); - self.getSuggestions = function() { - self.suggestions.set(undefined); - Meteor.call('getAvatarSuggestion', function(error, avatars) { - self.suggestions.set({ ready: true, avatars }); - }); - }; - self.getSuggestions(); -}); - -Template.avatarPrompt.onRendered(function() { - Tracker.afterFlush(function() { - if (!settings.get('Accounts_AllowUserAvatarChange')) { - FlowRouter.go('home'); - } - SideNav.setFlex('accountFlex'); - SideNav.openFlex(); - }); -}); - -Template.avatarPrompt.helpers({ - suggestions() { - return Template.instance().suggestions.get(); - }, - suggestAvatar(service) { - const suggestions = Template.instance().suggestions.get(); - return settings.get(`Accounts_OAuth_${ s.capitalize(service) }`) && !suggestions.avatars[service]; - }, - upload() { - return Template.instance().upload.get(); - }, - username() { - const user = Meteor.user(); - return user && user.username; - }, - initialsUsername() { - const user = Meteor.user(); - return `@${ user && user.username }`; - }, -}); - -Template.avatarPrompt.events({ - 'click .select-service'(event, instance) { - if (this.service === 'initials') { - Meteor.call('resetAvatar', function(err) { - if (err && err.details && err.details.timeToReset) { - toastr.error(t('error-too-many-requests', { - seconds: parseInt(err.details.timeToReset / 1000), - })); - } else { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', 'initials'); - } - }); - } else if (this.service === 'url') { - if (s.trim($('#avatarurl').val())) { - Meteor.call('setAvatarFromService', $('#avatarurl').val(), '', this.service, function(err) { - if (err) { - if (err.details && err.details.timeToReset) { - toastr.error(t('error-too-many-requests', { - seconds: parseInt(err.details.timeToReset / 1000), - })); - } else { - toastr.error(t('Avatar_url_invalid_or_error')); - } - } else { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', 'url'); - } - }); - } else { - toastr.error(t('Please_enter_value_for_url')); - } - } else if (this.service === 'upload') { - let { files } = instance.find('input[type=file]'); - if (!files || files.length === 0) { - files = (event.dataTransfer && event.dataTransfer.files) || []; - } - - for (let i = 0; i < files.length; i++) { - const file = files[i]; - Object.defineProperty(file, 'type', { value: mime.lookup(file.name) }); - } - - const record = { - name: files[0].name, - size: files[0].size, - type: files[0].type, - // description: document.getElementById('file-description').value - }; - - const upload = fileUploadHandler('Avatars', record, files[0]); - - // upload.onProgress = (progress) -> - // console.log 'progress ->', progress - - upload.start((error, result) => { - if (result) { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', this.service); - } - }); - } else { - const tmpService = this.service; - Meteor.call('setAvatarFromService', this.blob, this.contentType, this.service, function(err) { - if (err && err.details && err.details.timeToReset) { - toastr.error(t('error-too-many-requests', { - seconds: parseInt(err.details.timeToReset / 1000), - })); - } else { - toastr.success(t('Avatar_changed_successfully')); - callbacks.run('userAvatarSet', tmpService); - } - }); - } - }, - 'click .login-with-service'(event, template) { - const loginWithService = `loginWith${ s.capitalize(this) }`; - const serviceConfig = {}; - Meteor[loginWithService](serviceConfig, function(error) { - if (error && error.error) { - if (error.error === 'github-no-public-email') { - return alert(t('github_no_public_email')); - } - console.log(error); - return toastr.error(error.message); - } - template.getSuggestions(); - }); - }, - 'change .avatar-file-input'(event, template) { - const e = event.originalEvent || event; - let { files } = e.target; - if (!files || files.length === 0) { - files = (e.dataTransfer && e.dataTransfer.files) || []; - } - Object.keys(files).forEach((key) => { - const blob = files[key]; - if (!/image\/.+/.test(blob.type)) { - return; - } - const reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = function() { - template.upload.set({ - service: 'upload', - contentType: blob.type, - blob: reader.result, - }); - callbacks.run('userAvatarSet', 'upload'); - }; - }); - }, -}); diff --git a/app/ui-account/client/index.js b/app/ui-account/client/index.js index 18631c92c195..6d435e98838c 100644 --- a/app/ui-account/client/index.js +++ b/app/ui-account/client/index.js @@ -1,14 +1,2 @@ -import './account.html'; -import './accountFlex.html'; -import './accountIntegrations.html'; -import './accountPreferences.html'; -import './accountProfile.html'; import './avatar/avatar.html'; -import './avatar/prompt.html'; -import './account'; -import './accountFlex'; -import './accountIntegrations'; -import './accountPreferences'; -import './accountProfile'; import './avatar/avatar'; -import './avatar/prompt'; diff --git a/app/ui-clean-history/client/views/cleanHistory.html b/app/ui-clean-history/client/views/cleanHistory.html index de5cec6b2c0f..27f9a9a7bc64 100644 --- a/app/ui-clean-history/client/views/cleanHistory.html +++ b/app/ui-clean-history/client/views/cleanHistory.html @@ -64,17 +64,17 @@
; } -function VerticalBarText({ children, ...props }) { - return {children}; +function VerticalBarText(props) { + return ; } VerticalBar.Icon = React.memo(VerticalBarIcon); diff --git a/client/components/basic/avatar/AppAvatar.js b/client/components/basic/avatar/AppAvatar.js index 1f328f84f626..594fd01be0ad 100644 --- a/client/components/basic/avatar/AppAvatar.js +++ b/client/components/basic/avatar/AppAvatar.js @@ -1,8 +1,9 @@ import React from 'react'; -import { Avatar } from '@rocket.chat/fuselage'; + +import BaseAvatar from './BaseAvatar'; const objectFit = { objectFit: 'contain' }; export default function AppAvatar({ iconFileContent, iconFileData, ...props }) { - return ; + return ; } diff --git a/client/components/basic/avatar/BaseAvatar.js b/client/components/basic/avatar/BaseAvatar.js new file mode 100644 index 000000000000..1430ecdc8fdd --- /dev/null +++ b/client/components/basic/avatar/BaseAvatar.js @@ -0,0 +1,14 @@ +import React, { useState } from 'react'; +import { Avatar, Skeleton } from '@rocket.chat/fuselage'; + +function BaseAvatar(props) { + const [error, setError] = useState(false); + + if (error) { + return ; + } + + return ; +} + +export default BaseAvatar; diff --git a/client/components/basic/avatar/RoomAvatar.js b/client/components/basic/avatar/RoomAvatar.js index a66741e10b86..ad2a6699f7b1 100644 --- a/client/components/basic/avatar/RoomAvatar.js +++ b/client/components/basic/avatar/RoomAvatar.js @@ -1,12 +1,12 @@ import React from 'react'; -import { Avatar } from '@rocket.chat/fuselage'; import { roomTypes } from '../../../../app/utils/client'; +import BaseAvatar from './BaseAvatar'; function RoomAvatar({ room: { type, ...room }, ...props }) { const avatarUrl = roomTypes.getConfig(type).getAvatarPath({ type, ...room }); - return ; + return ; } export default RoomAvatar; diff --git a/client/components/basic/avatar/UserAvatar.js b/client/components/basic/avatar/UserAvatar.js index d5bc6b16a3c0..17301a4e9e59 100644 --- a/client/components/basic/avatar/UserAvatar.js +++ b/client/components/basic/avatar/UserAvatar.js @@ -1,9 +1,14 @@ import React from 'react'; -import { Avatar } from '@rocket.chat/fuselage'; -function UserAvatar({ url, username, ...props }) { - const avatarUrl = url || `/avatar/${ username }`; - return ; +import BaseAvatar from './BaseAvatar'; + +function UserAvatar({ url, username, etag, ...props }) { + // NOW, `username` and `etag` props are enough to determine the whole state of + // this component, but it must be as performatic as possible as it will be + // rendered many times; and some of the state can be derived at the ancestors. + // Ideally, it should be a purely visual component. + const avatarUrl = url || `/avatar/${ username }${ etag ? `?etag=${ etag }` : '' }`; + return ; } export default UserAvatar; diff --git a/client/components/basic/avatar/UserAvatarEditor.js b/client/components/basic/avatar/UserAvatarEditor.js index 13152a3f934d..256181d0b6ab 100644 --- a/client/components/basic/avatar/UserAvatarEditor.js +++ b/client/components/basic/avatar/UserAvatarEditor.js @@ -1,17 +1,30 @@ import React, { useState, useCallback } from 'react'; -import { Box, Button, Icon, TextInput, Margins } from '@rocket.chat/fuselage'; +import { Box, Button, Icon, TextInput, Margins, Avatar } from '@rocket.chat/fuselage'; import { useTranslation } from '../../../contexts/TranslationContext'; import { useFileInput } from '../../../hooks/useFileInput'; import UserAvatar from './UserAvatar'; -export function UserAvatarEditor({ username, setAvatarObj }) { +function UserAvatarSuggestions({ suggestions, setAvatarObj, setNewAvatarSource, disabled, ...props }) { + const handleClick = useCallback((suggestion) => () => { + setAvatarObj(suggestion); + setNewAvatarSource(suggestion.blob); + }, [setAvatarObj, setNewAvatarSource]); + + return + {Object.values(suggestions).map((suggestion) => )} + ; +} + +export function UserAvatarEditor({ username, setAvatarObj, suggestions, disabled, etag }) { const t = useTranslation(); const [avatarFromUrl, setAvatarFromUrl] = useState(''); const [newAvatarSource, setNewAvatarSource] = useState(); - const setUploadedPreview = useCallback(async (file, formData) => { - setAvatarObj(formData); + const setUploadedPreview = useCallback(async (file, avatarObj) => { + setAvatarObj(avatarObj); setNewAvatarSource(URL.createObjectURL(file)); }, [setAvatarObj]); @@ -26,7 +39,7 @@ export function UserAvatarEditor({ username, setAvatarObj }) { setAvatarObj('reset'); }; - const url = newAvatarSource || undefined; + const url = newAvatarSource; const handleAvatarFromUrlChange = (event) => { setAvatarFromUrl(event.currentTarget.value); @@ -35,17 +48,18 @@ export function UserAvatarEditor({ username, setAvatarObj }) { return {t('Profile_picture')} - + - - - + + + + {suggestions && } {t('Use_url_for_avatar')} - + ; diff --git a/client/components/basic/userStatus/UserStatus.js b/client/components/basic/userStatus/UserStatus.js new file mode 100644 index 000000000000..73fd3adc1ce3 --- /dev/null +++ b/client/components/basic/userStatus/UserStatus.js @@ -0,0 +1,8 @@ +import React from 'react'; +import { Box } from '@rocket.chat/fuselage'; + +import statusColors from '../../../helpers/statusColors'; + +const UserStatus = React.memo(({ status, ...props }) => ); + +export default UserStatus; diff --git a/client/components/basic/userStatus/UserStatusMenu.js b/client/components/basic/userStatus/UserStatusMenu.js new file mode 100644 index 000000000000..3e335405c0eb --- /dev/null +++ b/client/components/basic/userStatus/UserStatusMenu.js @@ -0,0 +1,92 @@ +import React, { useRef, useCallback, useState, useMemo, useEffect } from 'react'; +import { + Button, + PositionAnimated, + Margins, + Options, + useCursor, + Box, +} from '@rocket.chat/fuselage'; + +import { useTranslation } from '../../../contexts/TranslationContext'; +import UserStatus from './UserStatus'; + +const UserStatusMenu = ({ + onChange = () => {}, + optionWidth, + initialStatus = 'offline', + placement = 'bottom-end', + ...props +}) => { + const t = useTranslation(); + + const [status, setStatus] = useState(initialStatus); + + const options = useMemo(() => { + const renderOption = (status, label) => + + + + {label} + ; + + return [ + ['online', renderOption('online', t('Online'))], + ['busy', renderOption('busy', t('Busy'))], + ['away', renderOption('away', t('Away'))], + ['offline', renderOption('offline', t('Invisible'))], + ]; + }, [t]); + + const [cursor, handleKeyDown, handleKeyUp, reset, [visible, hide, show]] = useCursor(-1, options, ([selected], [, hide]) => { + setStatus(selected); + reset(); + hide(); + }); + + const ref = useRef(); + const onClick = useCallback(() => { + ref.current.focus() & show(); + ref.current.classList.add('focus-visible'); + }, [show]); + + const handleSelection = useCallback(([selected]) => { + setStatus(selected); + reset(); + hide(); + }, [hide, reset]); + + useEffect(() => onChange(status), [status, onChange]); + + return ( + <> + + + + + + ); +}; + +export default UserStatusMenu; diff --git a/client/contexts/AuthorizationContext.js b/client/contexts/AuthorizationContext.js deleted file mode 100644 index 93485325cc48..000000000000 --- a/client/contexts/AuthorizationContext.js +++ /dev/null @@ -1,34 +0,0 @@ -import { createContext, useCallback, useContext } from 'react'; - -import { useObservableValue } from '../hooks/useObservableValue'; - -export const AuthorizationContext = createContext({ - hasPermission: () => {}, - hasAtLeastOnePermission: () => {}, - hasAllPermissions: () => {}, - hasRole: () => {}, -}); - -export const usePermission = (permission, scope) => { - const { hasPermission } = useContext(AuthorizationContext); - return useObservableValue(useCallback((listener) => - hasPermission(permission, scope, listener), [hasPermission, permission, scope])); -}; - -export const useAtLeastOnePermission = (permissions, scope) => { - const { hasAtLeastOnePermission } = useContext(AuthorizationContext); - return useObservableValue(useCallback((listener) => - hasAtLeastOnePermission(permissions, scope, listener), [hasAtLeastOnePermission, permissions, scope])); -}; - -export const useAllPermissions = (permissions, scope) => { - const { hasAllPermissions } = useContext(AuthorizationContext); - return useObservableValue(useCallback((listener) => - hasAllPermissions(permissions, scope, listener), [hasAllPermissions, permissions, scope])); -}; - -export const useRole = (role) => { - const { hasRole } = useContext(AuthorizationContext); - return useObservableValue(useCallback((listener) => - hasRole(role, listener), [hasRole, role])); -}; diff --git a/client/contexts/AuthorizationContext.ts b/client/contexts/AuthorizationContext.ts new file mode 100644 index 000000000000..e9aa28cdeb42 --- /dev/null +++ b/client/contexts/AuthorizationContext.ts @@ -0,0 +1,79 @@ +import { createContext, useContext, useMemo } from 'react'; +import { useSubscription, Subscription, Unsubscribe } from 'use-subscription'; + +export type AuthorizationContextValue = { + queryPermission( + permission: string | Mongo.ObjectID, + scope?: string | Mongo.ObjectID + ): Subscription; + queryAtLeastOnePermission( + permission: (string | Mongo.ObjectID)[], + scope?: string | Mongo.ObjectID + ): Subscription; + queryAllPermissions( + permission: (string | Mongo.ObjectID)[], + scope?: string | Mongo.ObjectID + ): Subscription; + queryRole(role: string | Mongo.ObjectID): Subscription; +}; + +export const AuthorizationContext = createContext({ + queryPermission: () => ({ + getCurrentValue: (): boolean => false, + subscribe: (): Unsubscribe => (): void => undefined, + }), + queryAtLeastOnePermission: () => ({ + getCurrentValue: (): boolean => false, + subscribe: (): Unsubscribe => (): void => undefined, + }), + queryAllPermissions: () => ({ + getCurrentValue: (): boolean => false, + subscribe: (): Unsubscribe => (): void => undefined, + }), + queryRole: () => ({ + getCurrentValue: (): boolean => false, + subscribe: (): Unsubscribe => (): void => undefined, + }), +}); + +export const usePermission = ( + permission: string | Mongo.ObjectID, + scope?: string | Mongo.ObjectID, +): boolean => { + const { queryPermission } = useContext(AuthorizationContext); + const subscription = useMemo( + () => queryPermission(permission, scope), + [queryPermission, permission, scope], + ); + return useSubscription(subscription); +}; + +export const useAtLeastOnePermission = ( + permissions: (string | Mongo.ObjectID)[], + scope?: string | Mongo.ObjectID, +): boolean => { + const { queryAtLeastOnePermission } = useContext(AuthorizationContext); + const subscription = useMemo( + () => queryAtLeastOnePermission(permissions, scope), + [queryAtLeastOnePermission, permissions, scope], + ); + return useSubscription(subscription); +}; + +export const useAllPermissions = ( + permissions: (string | Mongo.ObjectID)[], + scope?: string | Mongo.ObjectID, +): boolean => { + const { queryAllPermissions } = useContext(AuthorizationContext); + const subscription = useMemo( + () => queryAllPermissions(permissions, scope), + [queryAllPermissions, permissions, scope], + ); + return useSubscription(subscription); +}; + +export const useRole = (role: string | Mongo.ObjectID): boolean => { + const { queryRole } = useContext(AuthorizationContext); + const subscription = useMemo(() => queryRole(role), [queryRole, role]); + return useSubscription(subscription); +}; diff --git a/client/contexts/SessionContext.js b/client/contexts/SessionContext.js deleted file mode 100644 index 1ac91740e4c6..000000000000 --- a/client/contexts/SessionContext.js +++ /dev/null @@ -1,18 +0,0 @@ -import { createContext, useCallback, useContext } from 'react'; - -import { useObservableValue } from '../hooks/useObservableValue'; - -export const SessionContext = createContext({ - get: () => {}, - set: () => {}, -}); - -export const useSession = (name) => { - const { get } = useContext(SessionContext); - return useObservableValue((listener) => get(name, listener)); -}; - -export const useSessionDispatch = (name) => { - const { set } = useContext(SessionContext); - return useCallback((value) => set(name, value), [set, name]); -}; diff --git a/client/contexts/SessionContext.ts b/client/contexts/SessionContext.ts new file mode 100644 index 000000000000..f80e976cfc7c --- /dev/null +++ b/client/contexts/SessionContext.ts @@ -0,0 +1,26 @@ +import { createContext, useCallback, useContext, useMemo } from 'react'; +import { useSubscription, Subscription, Unsubscribe } from 'use-subscription'; + +type SessionContextValue = { + query: (name: string) => Subscription; + dispatch: (name: string, value: unknown) => void; +}; + +export const SessionContext = createContext({ + query: () => ({ + getCurrentValue: (): undefined => undefined, + subscribe: (): Unsubscribe => (): void => undefined, + }), + dispatch: (): void => undefined, +}); + +export const useSession = (name: string): unknown => { + const { query } = useContext(SessionContext); + const subscription = useMemo(() => query(name), [query, name]); + return useSubscription(subscription); +}; + +export const useSessionDispatch = (name: string): ((name: string, value: unknown) => void) => { + const { dispatch } = useContext(SessionContext); + return useCallback((value) => dispatch(name, value), [dispatch, name]); +}; diff --git a/client/contexts/UserContext.js b/client/contexts/UserContext.js deleted file mode 100644 index 4f7777d09e50..000000000000 --- a/client/contexts/UserContext.js +++ /dev/null @@ -1,19 +0,0 @@ -import { createContext, useContext, useCallback } from 'react'; - -import { useObservableValue } from '../hooks/useObservableValue'; - -export const UserContext = createContext({ - userId: null, - user: null, - loginWithPassword: async () => {}, - getPreference: () => {}, -}); - -export const useUserId = () => useContext(UserContext).userId; -export const useUser = () => useContext(UserContext).user; -export const useLoginWithPassword = () => useContext(UserContext).loginWithPassword; -export const useUserPreference = (key, defaultValue = undefined) => { - const { getPreference } = useContext(UserContext); - return useObservableValue(useCallback((listener) => - getPreference(key, defaultValue, listener), [getPreference, key, defaultValue])); -}; diff --git a/client/contexts/UserContext.ts b/client/contexts/UserContext.ts new file mode 100644 index 000000000000..a91be0ca0dd3 --- /dev/null +++ b/client/contexts/UserContext.ts @@ -0,0 +1,60 @@ +import { createContext, useContext, useMemo } from 'react'; +import { useSubscription, Subscription, Unsubscribe } from 'use-subscription'; + +type SubscriptionQuery = { + rid: string | Mongo.ObjectID; +} | { + name: string; +} +type Fields = { + [key: string]: boolean; +} + +type UserContextValue = { + userId: string | null; + user: Meteor.User | null; + loginWithPassword: (user: string | object, password: string) => Promise; + queryPreference: (key: string | Mongo.ObjectID, defaultValue?: T) => Subscription; + querySubscription: (query: SubscriptionQuery, fields: Fields) => Subscription ; +}; + +export const UserContext = createContext({ + userId: null, + user: null, + loginWithPassword: async () => undefined, + queryPreference: () => ({ + getCurrentValue: (): undefined => undefined, + subscribe: (): Unsubscribe => (): void => undefined, + }), + querySubscription: () => ({ + getCurrentValue: (): undefined => undefined, + subscribe: (): Unsubscribe => (): void => undefined, + }), +}); + +export const useUserId = (): string | Mongo.ObjectID | null => + useContext(UserContext).userId; + +export const useUser = (): Meteor.User | null => + useContext(UserContext).user; + +export const useLoginWithPassword = (): ((user: string | object, password: string) => Promise) => + useContext(UserContext).loginWithPassword; + +export const useUserPreference = (key: string | Mongo.ObjectID, defaultValue?: T): T | undefined => { + const { queryPreference } = useContext(UserContext); + const subscription = useMemo(() => queryPreference(key, defaultValue), [queryPreference, key, defaultValue]); + return useSubscription(subscription); +}; + +export const useUserSubscription = (rid: string | Mongo.ObjectID, fields: Fields): T | undefined => { + const { querySubscription } = useContext(UserContext); + const subscription = useMemo(() => querySubscription({ rid }, fields), [querySubscription, rid, fields]); + return useSubscription(subscription); +}; + +export const useUserSubscriptionByName = (name: string, fields: Fields): T | undefined => { + const { querySubscription } = useContext(UserContext); + const subscription = useMemo(() => querySubscription({ name }, fields), [querySubscription, name, fields]); + return useSubscription(subscription); +}; diff --git a/client/fuselage-hooks.d.ts b/client/fuselage-hooks.d.ts deleted file mode 100644 index 2bef8fec95ab..000000000000 --- a/client/fuselage-hooks.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '@rocket.chat/fuselage-hooks' { - export const useDebouncedCallback: (fn: (...args: any[]) => any, ms: number, deps: any[]) => (...args: any[]) => any; - export const useMutableCallback: (fn: (...args: any[]) => any) => (...args: any[]) => any; -} diff --git a/client/helpers/getUserEmailAddress.js b/client/helpers/getUserEmailAddress.js new file mode 100644 index 000000000000..31d8b1f54403 --- /dev/null +++ b/client/helpers/getUserEmailAddress.js @@ -0,0 +1 @@ +export const getUserEmailAddress = (user) => user.emails?.find(({ address }) => !!address)?.address; diff --git a/client/helpers/statusColors.js b/client/helpers/statusColors.js new file mode 100644 index 000000000000..c33e65a83a16 --- /dev/null +++ b/client/helpers/statusColors.js @@ -0,0 +1,8 @@ +const statusColors = { + offline: 'neutral-500', + busy: 'danger-500', + away: 'warning-500', + online: 'success-500', +}; + +export default statusColors; diff --git a/client/hooks/useEndpointAction.js b/client/hooks/useEndpointAction.js index ff7962091d8f..dda0d872bd4a 100644 --- a/client/hooks/useEndpointAction.js +++ b/client/hooks/useEndpointAction.js @@ -24,3 +24,25 @@ export const useEndpointAction = (httpMethod, endpoint, params = {}, successMess } }, [dispatchToastMessage, params, sendData, successMessage]); }; + +export const useEndpointActionExperimental = (httpMethod, endpoint, successMessage) => { + const sendData = useEndpoint(httpMethod, endpoint); + const dispatchToastMessage = useToastMessageDispatch(); + + return useCallback(async (params, ...args) => { + try { + const data = await sendData(params, ...args); + + if (!data.success) { + throw new Error(data.status); + } + + successMessage && dispatchToastMessage({ type: 'success', message: successMessage }); + + return data; + } catch (error) { + dispatchToastMessage({ type: 'error', message: error }); + return { success: false }; + } + }, [dispatchToastMessage, sendData, successMessage]); +}; diff --git a/client/hooks/useEndpointDataExperimental.js b/client/hooks/useEndpointDataExperimental.js index c8a81df49d52..1c441441af9b 100644 --- a/client/hooks/useEndpointDataExperimental.js +++ b/client/hooks/useEndpointDataExperimental.js @@ -10,8 +10,14 @@ export const ENDPOINT_STATES = { }; const defaultState = { data: null, state: ENDPOINT_STATES.LOADING }; - -export const useEndpointDataExperimental = (endpoint, params = {}, { delayTimeout = 1000 } = {}) => { +const defaultParams = {}; +const defaultOptions = {}; + +export const useEndpointDataExperimental = ( + endpoint, + params = defaultParams, + { delayTimeout = 1000 } = defaultOptions, +) => { const [data, setData] = useState(defaultState); const getData = useEndpoint('GET', endpoint); @@ -26,7 +32,7 @@ export const useEndpointDataExperimental = (endpoint, params = {}, { delayTimeou return; } - setData({ delaying: true, state: ENDPOINT_STATES.LOADING }); + setData({ delaying: true, state: ENDPOINT_STATES.LOADING, reload: fetchData }); }, delayTimeout); try { @@ -42,13 +48,13 @@ export const useEndpointDataExperimental = (endpoint, params = {}, { delayTimeou } - setData({ data, state: ENDPOINT_STATES.DONE }); + setData({ data, state: ENDPOINT_STATES.DONE, reload: fetchData }); } catch (error) { if (!mounted) { return; } - setData({ error, state: ENDPOINT_STATES.ERROR }); + setData({ error, state: ENDPOINT_STATES.ERROR, reload: fetchData }); dispatchToastMessage({ type: 'error', message: error }); } finally { clearTimeout(timer); diff --git a/client/hooks/useForm.js b/client/hooks/useForm.js deleted file mode 100644 index 0da0149920d7..000000000000 --- a/client/hooks/useForm.js +++ /dev/null @@ -1,31 +0,0 @@ -/* eslint-disable react-hooks/rules-of-hooks */ -import { useState, useCallback } from 'react'; - -import { capitalize } from '../helpers/capitalize'; - -const getValue = (e) => (e.currentTarget ? e.currentTarget.value : e); - -export const useForm = (obj) => { - const resetCallbacks = []; - const hasUnsavedChanges = []; - // TODO: use useReducer hook as we can't assure that obj will have the same structure on each render - const ret = Object.keys(obj).sort().reduce((ret, key) => { - const value = obj[key]; - const [data, setData] = useState(value); - - ret.values = { ...ret.values, [key]: data }; - ret.handlers = { ...ret.handlers, [`handle${ capitalize(key) }`]: useCallback(typeof value !== 'boolean' ? (e) => setData(getValue(e)) : () => setData(!data), [data]) }; - hasUnsavedChanges.push(JSON.stringify(value) !== JSON.stringify(data)); - resetCallbacks.push(() => setData(value)); - - return ret; - }, {}); - - ret.reset = () => { - resetCallbacks.forEach((reset) => reset()); - }; - - ret.hasUnsavedChanges = hasUnsavedChanges.filter(Boolean).length > 0; - - return ret; -}; diff --git a/client/hooks/useForm.ts b/client/hooks/useForm.ts new file mode 100644 index 000000000000..cc1f4d4df579 --- /dev/null +++ b/client/hooks/useForm.ts @@ -0,0 +1,175 @@ +import { useCallback, useReducer, useMemo, ChangeEvent } from 'react'; + +import { capitalize } from '../helpers/capitalize'; + +type Field = { + name: string; + currentValue: unknown; + initialValue: unknown; + changed: boolean; +}; + +type FormState = { + fields: Field[]; + values: Record; + hasUnsavedChanges: boolean; +}; + +type FormAction = { + (prevState: FormState): FormState; +}; + +type UseFormReturnType = { + values: Record; + handlers: Record void>; + hasUnsavedChanges: boolean; + commit: () => void; + reset: () => void; +}; + +const reduceForm = (state: FormState, action: FormAction): FormState => + action(state); + +const initForm = (initialValues: Record): FormState => { + const fields = []; + + for (const [fieldName, initialValue] of Object.entries(initialValues)) { + fields.push({ + name: fieldName, + currentValue: initialValue, + initialValue, + changed: false, + }); + } + + return { + fields, + values: { ...initialValues }, + hasUnsavedChanges: false, + }; +}; + +const valueChanged = (fieldName: string, newValue: unknown): FormAction => + (state: FormState): FormState => { + let { fields } = state; + const field = fields.find(({ name }) => name === fieldName); + + if (!field || field.currentValue === newValue) { + return state; + } + + const newField = { + ...field, + currentValue: newValue, + changed: JSON.stringify(newValue) !== JSON.stringify(field.initialValue), + }; + + fields = state.fields.map((field) => { + if (field.name === fieldName) { + return newField; + } + + return field; + }); + + return { + ...state, + fields, + values: { + ...state.values, + [newField.name]: newField.currentValue, + }, + hasUnsavedChanges: newField.changed || fields.some((field) => field.changed), + }; + }; + +const formCommitted = (): FormAction => + (state: FormState): FormState => ({ + ...state, + fields: state.fields.map((field) => ({ + ...field, + initialValue: field.currentValue, + changed: false, + })), + hasUnsavedChanges: false, + }); + +const formReset = (): FormAction => + (state: FormState): FormState => ({ + ...state, + fields: state.fields.map((field) => ({ + ...field, + currentValue: field.initialValue, + changed: false, + })), + values: state.fields.reduce((values, field) => ({ + ...values, + [field.name]: field.initialValue, + }), {}), + hasUnsavedChanges: false, + }); + +const isChangeEvent = (x: any): x is ChangeEvent => + (typeof x === 'object' || typeof x === 'function') && typeof x?.currentTarget !== 'undefined'; + +const getValue = (eventOrValue: ChangeEvent | unknown): unknown => { + if (!isChangeEvent(eventOrValue)) { + return eventOrValue; + } + + const target = eventOrValue.currentTarget; + + if (target instanceof HTMLTextAreaElement) { + return target.value; + } + + if (target instanceof HTMLSelectElement) { + return target.value; + } + + if (!(target instanceof HTMLInputElement)) { + return undefined; + } + + if (target.type === 'checkbox' || target.type === 'radio') { + return target.checked; + } + + return target.value; +}; + +export const useForm = ( + initialValues: Record, + onChange: ((...args: unknown[]) => void) = (): void => undefined, +): UseFormReturnType => { + const [state, dispatch] = useReducer(reduceForm, initialValues, initForm); + + const commit = useCallback(() => { + dispatch(formCommitted()); + }, []); + + const reset = useCallback(() => { + dispatch(formReset()); + }, []); + + const handlers = useMemo(() => state.fields.reduce((handlers, { name, initialValue }) => ({ + ...handlers, + [`handle${ capitalize(name) }`]: (eventOrValue: ChangeEvent | unknown): void => { + const newValue = getValue(eventOrValue); + dispatch(valueChanged(name, newValue)); + onChange({ + initialValue, + value: newValue, + key: name, + }); + }, + }), {}), [onChange, state.fields]); + + return { + handlers, + values: state.values, + hasUnsavedChanges: state.hasUnsavedChanges, + commit, + reset, + }; +}; diff --git a/client/hooks/useObservableValue.js b/client/hooks/useObservableValue.js deleted file mode 100644 index 835eeaabdf23..000000000000 --- a/client/hooks/useObservableValue.js +++ /dev/null @@ -1,22 +0,0 @@ -import { useEffect, useState } from 'react'; - -export const useObservableValue = (getValue) => { - const [value, setValue] = useState(() => getValue()); - - useEffect(() => { - let mounted = true; - - const unsubscribe = getValue((newValue) => { - if (mounted) { - setValue(newValue); - } - }); - - return () => { - mounted = false; - typeof unsubscribe === 'function' && unsubscribe(); - }; - }, [getValue]); - - return value; -}; diff --git a/client/hooks/useQuery.ts b/client/hooks/useQuery.ts deleted file mode 100644 index 7fb48742650b..000000000000 --- a/client/hooks/useQuery.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Tracker } from 'meteor/tracker'; -import { useCallback, useMemo, useRef } from 'react'; -import { useSubscription } from 'use-subscription'; -import { Mongo } from 'meteor/mongo'; - -const allQuery = {}; - -export const useQuery = (collection: Mongo.Collection, query: object = allQuery, options?: object): T[] => { - const queryHandle = useMemo(() => collection.find(query, options), [collection, query, options]); - const resultRef = useRef([]); - resultRef.current = Tracker.nonreactive(() => queryHandle.fetch()) as unknown as T[]; - - const subscribe = useCallback((cb) => { - const computation = Tracker.autorun(() => { - resultRef.current = queryHandle.fetch(); - cb(resultRef.current); - }); - - return (): void => { - computation.stop(); - }; - }, [queryHandle]); - - const subscription = useMemo(() => ({ - getCurrentValue: (): T[] => resultRef.current ?? [], - subscribe, - }), [subscribe]); - - return useSubscription(subscription); -}; diff --git a/client/hooks/useReactiveSubscriptionFactory.ts b/client/hooks/useReactiveSubscriptionFactory.ts deleted file mode 100644 index ac9021186d0a..000000000000 --- a/client/hooks/useReactiveSubscriptionFactory.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Tracker } from 'meteor/tracker'; -import { useCallback } from 'react'; -import { Subscription, Unsubscribe } from 'use-subscription'; - -interface ISubscriptionFactory { - (...args: any[]): Subscription; -} - -export const useReactiveSubscriptionFactory = (fn: (...args: any[]) => T): ISubscriptionFactory => - useCallback>((...args: any[]) => { - const fnWithArgs = (): T => fn(...args); - - return { - getCurrentValue: (): T => Tracker.nonreactive(fnWithArgs) as unknown as T, - subscribe: (callback): Unsubscribe => { - const computation = Tracker.autorun((c) => { - fnWithArgs(); - if (!c.firstRun) { - callback(); - } - }); - - return (): void => { - computation.stop(); - }; - }, - }; - }, [fn]); diff --git a/client/hooks/useReactiveValue.js b/client/hooks/useReactiveValue.js deleted file mode 100644 index b42d26606112..000000000000 --- a/client/hooks/useReactiveValue.js +++ /dev/null @@ -1,19 +0,0 @@ -import { useState, useEffect } from 'react'; -import { Tracker } from 'meteor/tracker'; - -export const useReactiveValue = (getValue, deps = []) => { - const [value, setValue] = useState(() => Tracker.nonreactive(getValue)); - - useEffect(() => { - const computation = Tracker.autorun(() => { - const newValue = getValue(); - setValue(() => newValue); - }); - - return () => { - computation.stop(); - }; - }, deps); - - return value; -}; diff --git a/client/hooks/useReactiveValue.ts b/client/hooks/useReactiveValue.ts new file mode 100644 index 000000000000..1ffb609429d3 --- /dev/null +++ b/client/hooks/useReactiveValue.ts @@ -0,0 +1,35 @@ +import { Tracker } from 'meteor/tracker'; +import { useMemo } from 'react'; +import { Subscription, Unsubscribe, useSubscription } from 'use-subscription'; + +export const useReactiveValue = (computeCurrentValue: () => T): T => { + const subscription: Subscription = useMemo(() => { + const callbacks = new Set(); + + let currentValue: T; + + const computation = Tracker.autorun(() => { + currentValue = computeCurrentValue(); + callbacks.forEach((callback) => { + callback(); + }); + }); + + return { + getCurrentValue: (): T => currentValue, + subscribe: (callback): Unsubscribe => { + callbacks.add(callback); + + return (): void => { + callbacks.delete(callback); + + if (callbacks.size === 0) { + computation.stop(); + } + }; + }, + }; + }, [computeCurrentValue]); + + return useSubscription(subscription); +}; diff --git a/client/hooks/useTimezoneTime.js b/client/hooks/useTimezoneTime.js new file mode 100644 index 000000000000..9e12c24f6e84 --- /dev/null +++ b/client/hooks/useTimezoneTime.js @@ -0,0 +1,20 @@ +import { useState, useEffect } from 'react'; +import moment from 'moment'; + +import { useFormatTime } from './useFormatTime'; + +export const useTimezoneTime = (offset, interval = 1000) => { + const [time, setTime] = useState(null); + const format = useFormatTime(); + useEffect(() => { + if (offset === undefined) { + return; + } + const update = () => setTime(moment().utcOffset(offset)); + const timer = setInterval(update, interval); + update(); + return () => clearInterval(timer); + }, [offset, interval]); + + return format(time); +}; diff --git a/client/hooks/useUpdateAvatar.js b/client/hooks/useUpdateAvatar.js new file mode 100644 index 000000000000..8aa8e1fa30fe --- /dev/null +++ b/client/hooks/useUpdateAvatar.js @@ -0,0 +1,55 @@ +import { useMemo, useCallback } from 'react'; + +import { useMethod } from '../contexts/ServerContext'; +import { useEndpointAction } from './useEndpointAction'; +import { useTranslation } from '../contexts/TranslationContext'; +import { useEndpointUpload } from './useEndpointUpload'; +import { useToastMessageDispatch } from '../contexts/ToastMessagesContext'; + +export const useUpdateAvatar = (avatarObj, userId) => { + const t = useTranslation(); + const avatarUrl = avatarObj?.avatarUrl; + + const successText = t('Avatar_changed_successfully'); + const setAvatarFromService = useMethod('setAvatarFromService'); + + const dispatchToastMessage = useToastMessageDispatch(); + + const saveAvatarQuery = useMemo(() => ({ + userId, + avatarUrl, + }), [avatarUrl, userId]); + + const resetAvatarQuery = useMemo(() => ({ + userId, + }), [userId]); + + const saveAvatarAction = useEndpointUpload('users.setAvatar', saveAvatarQuery, successText); + const saveAvatarUrlAction = useEndpointAction('POST', 'users.setAvatar', saveAvatarQuery, successText); + const resetAvatarAction = useEndpointAction('POST', 'users.resetAvatar', resetAvatarQuery, successText); + + const updateAvatar = useCallback(async () => { + if (avatarObj === 'reset') { + return resetAvatarAction(); + } + if (avatarObj.avatarUrl) { + return saveAvatarUrlAction(); + } + if (avatarObj.service) { + const { blob, contentType, service } = avatarObj; + try { + await setAvatarFromService(blob, contentType, service); + dispatchToastMessage({ type: 'success', message: successText }); + } catch (error) { + dispatchToastMessage({ type: 'error', message: error }); + } + return; + } + if (avatarObj instanceof FormData) { + avatarObj.set('userId', userId); + return saveAvatarAction(avatarObj); + } + }, [avatarObj, dispatchToastMessage, resetAvatarAction, saveAvatarAction, saveAvatarUrlAction, setAvatarFromService, successText, userId]); + + return updateAvatar; +}; diff --git a/client/main.js b/client/main.js index 2ec93a5e52d7..2f672c898539 100644 --- a/client/main.js +++ b/client/main.js @@ -32,3 +32,4 @@ import './startup/unread'; import './startup/userSetUtcOffset'; import './startup/usersObserve'; import './admin'; +import './channel'; diff --git a/client/providers/AuthorizationProvider.js b/client/providers/AuthorizationProvider.js deleted file mode 100644 index 96eba34ccaa2..000000000000 --- a/client/providers/AuthorizationProvider.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import { Meteor } from 'meteor/meteor'; - -import { - hasPermission, - hasAtLeastOnePermission, - hasAllPermission, -} from '../../app/authorization/client/hasPermission'; -import { AuthorizationContext } from '../contexts/AuthorizationContext'; -import { hasRole } from '../../app/authorization/client'; -import { createObservableFromReactive } from './createObservableFromReactive'; - -const contextValue = { - hasPermission: createObservableFromReactive(hasPermission), - hasAtLeastOnePermission: createObservableFromReactive(hasAtLeastOnePermission), - hasAllPermission: createObservableFromReactive(hasAllPermission), - hasRole: createObservableFromReactive((role) => hasRole(Meteor.userId(), role)), -}; - -export function AuthorizationProvider({ children }) { - return ; -} diff --git a/client/providers/AuthorizationProvider.tsx b/client/providers/AuthorizationProvider.tsx new file mode 100644 index 000000000000..a934bd69af1d --- /dev/null +++ b/client/providers/AuthorizationProvider.tsx @@ -0,0 +1,31 @@ +import React, { FC } from 'react'; +import { Meteor } from 'meteor/meteor'; + +import { + hasPermission, + hasAtLeastOnePermission, + hasAllPermission, + hasRole, +} from '../../app/authorization/client'; +import { AuthorizationContext } from '../contexts/AuthorizationContext'; +import { createReactiveSubscriptionFactory } from './createReactiveSubscriptionFactory'; + +const contextValue = { + queryPermission: createReactiveSubscriptionFactory( + (permission, scope) => hasPermission(permission, scope), + ), + queryAtLeastOnePermission: createReactiveSubscriptionFactory( + (permissions, scope) => hasAtLeastOnePermission(permissions, scope), + ), + queryAllPermissions: createReactiveSubscriptionFactory( + (permissions, scope) => hasAllPermission(permissions, scope), + ), + queryRole: createReactiveSubscriptionFactory( + (role) => hasRole(Meteor.userId(), role), + ), +}; + +const AuthorizationProvider: FC = ({ children }) => + ; + +export default AuthorizationProvider; diff --git a/client/providers/ConnectionStatusProvider.js b/client/providers/ConnectionStatusProvider.js index 6f553e7cae2f..ed820da5cdfe 100644 --- a/client/providers/ConnectionStatusProvider.js +++ b/client/providers/ConnectionStatusProvider.js @@ -4,11 +4,13 @@ import React from 'react'; import { ConnectionStatusContext } from '../contexts/ConnectionStatusContext'; import { useReactiveValue } from '../hooks/useReactiveValue'; +const getStatus = () => ({ + ...Meteor.status(), + reconnect: Meteor.reconnect, +}); + export function ConnectionStatusProvider({ children }) { - const status = useReactiveValue(() => ({ - ...Meteor.status(), - reconnect: Meteor.reconnect, - }), []); + const status = useReactiveValue(getStatus); return ; } diff --git a/client/providers/EditableSettingsProvider.tsx b/client/providers/EditableSettingsProvider.tsx index 6ac9af67a6a9..9965b97e791b 100644 --- a/client/providers/EditableSettingsProvider.tsx +++ b/client/providers/EditableSettingsProvider.tsx @@ -1,12 +1,12 @@ import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { Mongo } from 'meteor/mongo'; import { Tracker } from 'meteor/tracker'; -import React, { useEffect, useMemo, FunctionComponent, useCallback, useRef, MutableRefObject } from 'react'; +import React, { useEffect, useMemo, FunctionComponent, useRef, MutableRefObject } from 'react'; import { SettingId, GroupId } from '../../definition/ISetting'; import { EditableSettingsContext, IEditableSetting, EditableSettingsContextValue } from '../contexts/EditableSettingsContext'; import { useSettings, SettingsContextQuery } from '../contexts/SettingsContext'; -import { useReactiveSubscriptionFactory } from '../hooks/useReactiveSubscriptionFactory'; +import { createReactiveSubscriptionFactory } from './createReactiveSubscriptionFactory'; const defaultQuery: SettingsContextQuery = {}; @@ -34,12 +34,12 @@ const EditableSettingsProvider: FunctionComponent settingsCollection.remove({ _id: { $nin: persistedSettings.map(({ _id }) => _id) } }); for (const { _id, ...fields } of persistedSettings) { - settingsCollection.upsert(_id, { $set: { ...fields } }); + settingsCollection.upsert(_id, { $set: { ...fields }, $unset: { changed: true } }); } }, [getSettingsCollection, persistedSettings]); - const queryEditableSetting = useReactiveSubscriptionFactory( - useCallback( + const queryEditableSetting = useMemo( + () => createReactiveSubscriptionFactory( (_id: SettingId): IEditableSetting | undefined => { const settingsCollection = getSettingsCollection(); @@ -65,12 +65,12 @@ const EditableSettingsProvider: FunctionComponent disabled: !queries.every((query) => settingsCollection.find(query).count() > 0), }; }, - [getSettingsCollection], ), + [getSettingsCollection], ); - const queryEditableSettings = useReactiveSubscriptionFactory( - useCallback( + const queryEditableSettings = useMemo( + () => createReactiveSubscriptionFactory( (query = {}) => getSettingsCollection().find({ ...('_id' in query) && { _id: { $in: query._id } }, ...('group' in query) && { group: query.group }, @@ -92,12 +92,12 @@ const EditableSettingsProvider: FunctionComponent i18nLabel: 1, }, }).fetch(), - [getSettingsCollection], ), + [getSettingsCollection], ); - const queryGroupSections = useReactiveSubscriptionFactory( - useCallback( + const queryGroupSections = useMemo( + () => createReactiveSubscriptionFactory( (_id: GroupId) => Array.from(new Set( getSettingsCollection().find({ group: _id, @@ -112,8 +112,8 @@ const EditableSettingsProvider: FunctionComponent }, }).fetch().map(({ section }) => section || ''), )), - [getSettingsCollection], ), + [getSettingsCollection], ); const dispatch = useMutableCallback((changes: Partial[]): void => { diff --git a/client/providers/MeteorProvider.js b/client/providers/MeteorProvider.js index 55c0e3dd7c03..220867809341 100644 --- a/client/providers/MeteorProvider.js +++ b/client/providers/MeteorProvider.js @@ -1,15 +1,15 @@ import React from 'react'; -import { AuthorizationProvider } from './AuthorizationProvider'; +import AuthorizationProvider from './AuthorizationProvider'; import { ConnectionStatusProvider } from './ConnectionStatusProvider'; import { RouterProvider } from './RouterProvider'; -import { SessionProvider } from './SessionProvider'; +import SessionProvider from './SessionProvider'; import SettingsProvider from './SettingsProvider'; import { ServerProvider } from './ServerProvider'; import { SidebarProvider } from './SidebarProvider'; import { TranslationProvider } from './TranslationProvider'; import { ToastMessagesProvider } from './ToastMessagesProvider'; -import { UserProvider } from './UserProvider'; +import UserProvider from './UserProvider'; import { AvatarUrlProvider } from './AvatarUrlProvider'; import { CustomSoundProvider } from './CustomSoundProvides'; import ModalProvider from './ModalProvider'; @@ -22,19 +22,19 @@ export function MeteorProvider({ children }) { - - - - - - + + + + + + {children} - - - - - - + + + + + + diff --git a/client/providers/ModalProvider.js b/client/providers/ModalProvider.js index 3e14f0401c1c..1065a40cd31f 100644 --- a/client/providers/ModalProvider.js +++ b/client/providers/ModalProvider.js @@ -15,7 +15,7 @@ function ModalProvider({ children }) { return {children} {currentModal && - + {currentModal} } diff --git a/client/providers/SessionProvider.js b/client/providers/SessionProvider.js deleted file mode 100644 index fb4dbc2ce489..000000000000 --- a/client/providers/SessionProvider.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { Session } from 'meteor/session'; - -import { SessionContext } from '../contexts/SessionContext'; -import { createObservableFromReactive } from './createObservableFromReactive'; - -const contextValue = { - get: createObservableFromReactive((name) => Session.get(name)), - set: (name, value) => { - Session.set(name, value); - }, -}; - -export function SessionProvider({ children }) { - return ; -} diff --git a/client/providers/SessionProvider.tsx b/client/providers/SessionProvider.tsx new file mode 100644 index 000000000000..e316c79f182e --- /dev/null +++ b/client/providers/SessionProvider.tsx @@ -0,0 +1,17 @@ +import React, { FC } from 'react'; +import { Session } from 'meteor/session'; + +import { SessionContext } from '../contexts/SessionContext'; +import { createReactiveSubscriptionFactory } from './createReactiveSubscriptionFactory'; + +const contextValue = { + query: createReactiveSubscriptionFactory((name) => Session.get(name)), + dispatch: (name: string, value: unknown): void => { + Session.set(name, value); + }, +}; + +const SessionProvider: FC = ({ children }) => + ; + +export default SessionProvider; diff --git a/client/providers/SettingsProvider.tsx b/client/providers/SettingsProvider.tsx index 15d7cb0f5fc1..b57feb97af88 100644 --- a/client/providers/SettingsProvider.tsx +++ b/client/providers/SettingsProvider.tsx @@ -3,10 +3,10 @@ import React, { useCallback, useEffect, useMemo, useState, FunctionComponent } f import { useMethod } from '../contexts/ServerContext'; import { SettingsContext, SettingsContextValue } from '../contexts/SettingsContext'; -import { useReactiveSubscriptionFactory } from '../hooks/useReactiveSubscriptionFactory'; import { PrivateSettingsCachedCollection } from '../lib/settings/PrivateSettingsCachedCollection'; import { PublicSettingsCachedCollection } from '../lib/settings/PublicSettingsCachedCollection'; import { useAtLeastOnePermission } from '../contexts/AuthorizationContext'; +import { createReactiveSubscriptionFactory } from './createReactiveSubscriptionFactory'; type SettingsProviderProps = { readonly privileged?: boolean; @@ -16,11 +16,13 @@ const SettingsProvider: FunctionComponent = ({ children, privileged = false, }) => { - const hasPrivilegedPermission = useAtLeastOnePermission([ - 'view-privileged-setting', - 'edit-privileged-setting', - 'manage-selected-settings', - ]); + const hasPrivilegedPermission = useAtLeastOnePermission( + useMemo(() => [ + 'view-privileged-setting', + 'edit-privileged-setting', + 'manage-selected-settings', + ], []), + ); const hasPrivateAccess = privileged && hasPrivilegedPermission; @@ -54,15 +56,15 @@ const SettingsProvider: FunctionComponent = ({ }; }, [cachedCollection]); - const querySetting = useReactiveSubscriptionFactory( - useCallback( + const querySetting = useMemo( + () => createReactiveSubscriptionFactory( (_id) => ({ ...cachedCollection.collection.findOne(_id) }), - [cachedCollection], ), + [cachedCollection], ); - const querySettings = useReactiveSubscriptionFactory( - useCallback( + const querySettings = useMemo( + () => createReactiveSubscriptionFactory( (query = {}) => cachedCollection.collection.find({ ...('_id' in query) && { _id: { $in: query._id } }, ...('group' in query) && { group: query.group }, @@ -83,8 +85,8 @@ const SettingsProvider: FunctionComponent = ({ i18nLabel: 1, }, }).fetch(), - [cachedCollection], ), + [cachedCollection], ); const saveSettings = useMethod('saveSettings'); diff --git a/client/providers/SidebarProvider.js b/client/providers/SidebarProvider.js index e6049d6f08db..0cc8296591f0 100644 --- a/client/providers/SidebarProvider.js +++ b/client/providers/SidebarProvider.js @@ -9,7 +9,7 @@ const getOpen = () => menu.isOpen(); const setOpen = (open) => (open ? menu.open() : menu.close()); export function SidebarProvider({ children }) { - const contextValue = [useReactiveValue(getOpen, []), setOpen]; + const contextValue = [useReactiveValue(getOpen), setOpen]; return ; } diff --git a/client/providers/TranslationProvider.js b/client/providers/TranslationProvider.js index f736475b8807..ae8e1f3ff3ce 100644 --- a/client/providers/TranslationProvider.js +++ b/client/providers/TranslationProvider.js @@ -1,4 +1,4 @@ -import React, { useMemo, useCallback } from 'react'; +import React, { useMemo } from 'react'; import { TAPi18n, TAPi18next } from 'meteor/rocketchat:tap-i18n'; import { TranslationContext } from '../contexts/TranslationContext'; @@ -33,31 +33,37 @@ const createTranslateFunction = (language) => { return translate; }; -export function TranslationProvider({ children }) { - const languages = useReactiveValue(() => { - const result = Object.entries(TAPi18n.getLanguages()) - .map(([key, language]) => ({ ...language, key: key.toLowerCase() })) - .sort((a, b) => a.key - b.key); - - result.unshift({ - name: 'Default', - en: 'Default', - key: '', - }); +const getLanguages = () => { + const result = Object.entries(TAPi18n.getLanguages()) + .map(([key, language]) => ({ ...language, key: key.toLowerCase() })) + .sort((a, b) => a.key - b.key); - return result; - }, []); - const language = useReactiveValue(() => TAPi18n.getLanguage()); - const loadLanguage = useCallback((language) => TAPi18n._loadLanguage(language), []); - const translate = useMemo(() => createTranslateFunction(language), [language]); + result.unshift({ + name: 'Default', + en: 'Default', + key: '', + }); + + return result; +}; +const getLanguage = () => TAPi18n.getLanguage(); + +const loadLanguage = (language) => TAPi18n._loadLanguage(language); + +export function TranslationProvider({ children }) { + const languages = useReactiveValue(getLanguages); + const language = useReactiveValue(getLanguage); + const translate = useMemo(() => createTranslateFunction(language), [language]); + const value = useMemo(() => ({ + languages, + language, + loadLanguage, + translate, + }), + [languages, language, loadLanguage, translate]); return ; } diff --git a/client/providers/UserProvider.js b/client/providers/UserProvider.js deleted file mode 100644 index dd6eb6df0641..000000000000 --- a/client/providers/UserProvider.js +++ /dev/null @@ -1,34 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import React, { useCallback } from 'react'; - -import { getUserPreference } from '../../app/utils/client'; -import { UserContext } from '../contexts/UserContext'; -import { useReactiveValue } from '../hooks/useReactiveValue'; -import { createObservableFromReactive } from './createObservableFromReactive'; - -const getPreference = createObservableFromReactive((key, defaultValue) => - getUserPreference(Meteor.userId(), key, defaultValue)); - -export function UserProvider({ children }) { - const userId = useReactiveValue(() => Meteor.userId(), []); - const user = useReactiveValue(() => Meteor.user(), []); - const loginWithPassword = useCallback((user, password) => new Promise((resolve, reject) => { - Meteor.loginWithPassword(user, password, (error, result) => { - if (error) { - reject(error); - return; - } - - resolve(result); - }); - }), []); - - const contextValue = useReactiveValue(() => ({ - userId, - user, - loginWithPassword, - getPreference, - }), [userId, user, loginWithPassword]); - - return ; -} diff --git a/client/providers/UserProvider.tsx b/client/providers/UserProvider.tsx new file mode 100644 index 000000000000..fa960345d16f --- /dev/null +++ b/client/providers/UserProvider.tsx @@ -0,0 +1,43 @@ +import { Meteor } from 'meteor/meteor'; +import React, { useMemo, FC } from 'react'; + +import { getUserPreference } from '../../app/utils/client'; +import { UserContext } from '../contexts/UserContext'; +import { useReactiveValue } from '../hooks/useReactiveValue'; +import { createReactiveSubscriptionFactory } from './createReactiveSubscriptionFactory'; +import { Subscriptions } from '../../app/models/client'; + +const getUserId = (): string | null => Meteor.userId(); + +const getUser = (): Meteor.User | null => Meteor.user(); + +const loginWithPassword = (user: string | object, password: string): Promise => + new Promise((resolve, reject) => { + Meteor.loginWithPassword(user, password, (error: Error | Meteor.Error | Meteor.TypedError | undefined) => { + if (error) { + reject(error); + return; + } + + resolve(); + }); + }); + +const UserProvider: FC = ({ children }) => { + const userId = useReactiveValue(getUserId); + const user = useReactiveValue(getUser); + + const contextValue = useMemo(() => ({ + userId, + user, + loginWithPassword, + queryPreference: createReactiveSubscriptionFactory( + (key, defaultValue) => getUserPreference(userId, key, defaultValue), + ), + querySubscription: createReactiveSubscriptionFactory((query, fields) => Subscriptions.findOne(query, { fields })), + }), [userId, user]); + + return ; +}; + +export default UserProvider; diff --git a/client/providers/createObservableFromReactive.js b/client/providers/createObservableFromReactive.js deleted file mode 100644 index a1c5e11e5494..000000000000 --- a/client/providers/createObservableFromReactive.js +++ /dev/null @@ -1,19 +0,0 @@ -import { Tracker } from 'meteor/tracker'; - -export const createObservableFromReactive = (fn) => (...fnArgs) => { - const args = fnArgs.slice(0, -1); - const listener = fnArgs.pop(); - - if (!listener) { - return Tracker.nonreactive(() => fn(...args)); - } - - const computation = Tracker.autorun(() => { - const value = fn(...args); - listener(value); - }); - - return () => { - computation.stop(); - }; -}; diff --git a/client/providers/createReactiveSubscriptionFactory.ts b/client/providers/createReactiveSubscriptionFactory.ts new file mode 100644 index 000000000000..6c6b23739086 --- /dev/null +++ b/client/providers/createReactiveSubscriptionFactory.ts @@ -0,0 +1,39 @@ +import { Tracker } from 'meteor/tracker'; +import { Subscription, Unsubscribe } from 'use-subscription'; + +interface ISubscriptionFactory { + (...args: any[]): Subscription; +} + +export const createReactiveSubscriptionFactory = ( + computeCurrentValueWith: (...args: any[]) => T, +): ISubscriptionFactory => + (...args: any[]): Subscription => { + const computeCurrentValue = (): T => computeCurrentValueWith(...args); + + const callbacks = new Set(); + + let currentValue: T; + + const computation = Tracker.autorun(() => { + currentValue = computeCurrentValue(); + callbacks.forEach((callback) => { + callback(); + }); + }); + + return { + getCurrentValue: (): T => currentValue, + subscribe: (callback): Unsubscribe => { + callbacks.add(callback); + + return (): void => { + callbacks.delete(callback); + + if (callbacks.size === 0) { + computation.stop(); + } + }; + }, + }; + }; diff --git a/client/reactAdapters.js b/client/reactAdapters.js index e900f0d73cb8..2c7b129e2ed8 100644 --- a/client/reactAdapters.js +++ b/client/reactAdapters.js @@ -1,5 +1,6 @@ import { Blaze } from 'meteor/blaze'; import { HTML } from 'meteor/htmljs'; +import { Random } from 'meteor/random'; import { BlazeLayout } from 'meteor/kadira:blaze-layout'; import { FlowRouter } from 'meteor/kadira:flow-router'; import { ReactiveVar } from 'meteor/reactive-var'; @@ -20,16 +21,17 @@ const mountRoot = async () => { } const [ - { Component, Suspense, createElement, lazy, useLayoutEffect, useState }, + { PureComponent, Suspense, createElement, lazy, useLayoutEffect, useState }, { render }, ] = await Promise.all([ import('react'), import('react-dom'), + import('@rocket.chat/fuselage-hooks'), ]); const LazyMeteorProvider = lazy(() => import('./providers/MeteorProvider')); - class PortalWrapper extends Component { + class PortalWrapper extends PureComponent { state = { errored: false } static getDerivedStateFromError = () => ({ errored: true }) @@ -55,7 +57,7 @@ const mountRoot = async () => { return createElement(Suspense, { fallback: null }, createElement(LazyMeteorProvider, {}, - ...portals.map((portal, key) => createElement(PortalWrapper, { key, portal })), + portals.map(({ key, portal }) => createElement(PortalWrapper, { key, portal })), ), ); } @@ -63,34 +65,36 @@ const mountRoot = async () => { render(createElement(AppRoot), rootNode); }; +const unregisterPortal = (key) => { + portalsMap.delete(key); + invalidatePortals(); +}; + export const registerPortal = (key, portal) => { if (!rootNode) { mountRoot(); } - portalsMap.set(key, portal); + portalsMap.set(key, { portal, key: Random.id() }); invalidatePortals(); + return () => unregisterPortal(key); }; -export const unregisterPortal = (key) => { - portalsMap.delete(key); - invalidatePortals(); -}; const createLazyElement = async (importFn, propsFn) => { - const { createElement, lazy, useEffect, useState } = await import('react'); + const { createElement, lazy, useEffect, useState, memo, Suspense } = await import('react'); const LazyComponent = lazy(importFn); if (!propsFn) { return createElement(LazyComponent); } - const WrappedComponent = () => { + const WrappedComponent = memo(() => { const [props, setProps] = useState(() => Tracker.nonreactive(propsFn)); useEffect(() => { const computation = Tracker.autorun(() => { - setProps(propsFn); + setProps(propsFn()); }); return () => { @@ -98,8 +102,8 @@ const createLazyElement = async (importFn, propsFn) => { }; }, []); - return createElement(LazyComponent, props); - }; + return createElement(Suspense, { fallback: null }, createElement(LazyComponent, props)); + }); return createElement(WrappedComponent); }; @@ -109,6 +113,11 @@ const createLazyPortal = async (importFn, propsFn, node) => { return createPortal(await createLazyElement(importFn, propsFn), node); }; +export const createEphemeralPortal = async (importFn, propsFn, node) => { + const portal = await createLazyPortal(importFn, propsFn, node); + return registerPortal(node, portal); +}; + export const createTemplateForComponent = ( name, importFn, @@ -121,7 +130,7 @@ export const createTemplateForComponent = ( } const template = new Blaze.Template(name, renderContainerView); - + let unregister; template.onRendered(async function() { const props = new ReactiveVar(this.data); this.autorun(() => { @@ -134,11 +143,11 @@ export const createTemplateForComponent = ( return; } - registerPortal(this, portal); + unregister = await registerPortal(this, portal); }); template.onDestroyed(function() { - unregisterPortal(this); + unregister && unregister(); }); Template[name] = template; diff --git a/client/routes.js b/client/routes.js index 3aacdba145f7..00de91749a02 100644 --- a/client/routes.js +++ b/client/routes.js @@ -1,5 +1,4 @@ import mem from 'mem'; -import s from 'underscore.string'; import { Meteor } from 'meteor/meteor'; import { Accounts } from 'meteor/accounts-base'; import { Tracker } from 'meteor/tracker'; @@ -106,12 +105,8 @@ FlowRouter.route('/directory/:tab?', { FlowRouter.route('/account/:group?', { name: 'account', - action: (params) => { - if (!params.group) { - params.group = 'Profile'; - } - params.group = s.capitalize(params.group, true); - BlazeLayout.render('main', { center: `account${ params.group }` }); + action: () => { + renderRouteComponent(() => import('./account/AccountRoute'), { template: 'main', region: 'center' }); }, triggersExit: [function() { $('.main-content').addClass('rc-old'); diff --git a/client/views/directory/ChannelsTab.js b/client/views/directory/ChannelsTab.js index f8b8f572a659..3fbc962b3268 100644 --- a/client/views/directory/ChannelsTab.js +++ b/client/views/directory/ChannelsTab.js @@ -4,7 +4,7 @@ import React, { useMemo, useState, useCallback, useEffect } from 'react'; import { GenericTable, Th } from '../../components/GenericTable'; import MarkdownText from '../../components/basic/MarkdownText'; -import NotAuthorizedPage from '../../admin/NotAuthorizedPage'; +import NotAuthorizedPage from '../../components/NotAuthorizedPage'; import { useTranslation } from '../../contexts/TranslationContext'; import { usePermission } from '../../contexts/AuthorizationContext'; import { useRoute } from '../../contexts/RouterContext'; diff --git a/client/views/directory/UserTab.js b/client/views/directory/UserTab.js index 21e54f010d75..1ed4f2bce397 100644 --- a/client/views/directory/UserTab.js +++ b/client/views/directory/UserTab.js @@ -1,5 +1,5 @@ import React, { useMemo, useState, useCallback, useEffect } from 'react'; -import { Box, Table, Flex, Avatar, TextInput, Icon } from '@rocket.chat/fuselage'; +import { Box, Table, Flex, TextInput, Icon } from '@rocket.chat/fuselage'; import { useMediaQuery } from '@rocket.chat/fuselage-hooks'; import { GenericTable, Th } from '../../components/GenericTable'; @@ -7,10 +7,10 @@ import { useTranslation } from '../../contexts/TranslationContext'; import { useRoute } from '../../contexts/RouterContext'; import { usePermission } from '../../contexts/AuthorizationContext'; import { useQuery } from './hooks'; -import { getUserAvatarURL } from '../../../app/utils/client'; import { useEndpointData } from '../../hooks/useEndpointData'; import { useFormatDate } from '../../hooks/useFormatDate'; -import NotAuthorizedPage from '../../admin/NotAuthorizedPage'; +import UserAvatar from '../../components/basic/avatar/UserAvatar'; +import NotAuthorizedPage from '../../components/NotAuthorizedPage'; const style = { whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden' }; @@ -72,38 +72,34 @@ function UserTable({ const formatDate = useFormatDate(); - const renderRow = useCallback(({ createdAt, emails, _id, username, name, domain, bio, avatarETag }) => { - const avatarUrl = getUserAvatarURL(username, avatarETag); - - return - - - - - - - - - {name || username} {username} - - {bio} + const renderRow = useCallback(({ createdAt, emails, _id, username, name, domain, bio, avatarETag, nickname }) => + + + + + + + + + {name || username}{nickname && ` (${ nickname })`} {username} + {bio} - - - {mediaQuery && canViewFullOtherUserInfo + + + + {mediaQuery && canViewFullOtherUserInfo && {emails && emails[0].address} } - {federation + {federation && {domain} } - {mediaQuery && - {formatDate(createdAt)} - } - ; - }, [mediaQuery, federation, canViewFullOtherUserInfo, formatDate, onClick]); + {mediaQuery && + {formatDate(createdAt)} + } + , [mediaQuery, federation, canViewFullOtherUserInfo, formatDate, onClick]); return ; } diff --git a/ee/app/canned-responses/client/startup/responses.js b/ee/app/canned-responses/client/startup/responses.js index 29955b600845..1c1f0c7b85f7 100644 --- a/ee/app/canned-responses/client/startup/responses.js +++ b/ee/app/canned-responses/client/startup/responses.js @@ -22,7 +22,14 @@ Meteor.startup(() => { if (hasPermission('view-canned-responses')) { const { responses } = await APIClient.v1.get('canned-responses.get'); responses.forEach((response) => CannedResponse.insert(response)); - cannedResponsesStreamer.on('canned-responses', (response) => events[response.type](response)); + cannedResponsesStreamer.on('canned-responses', (response, options) => { + const { agentsId } = options || {}; + if (agentsId && Array.isArray(agentsId) && !agentsId.includes(Meteor.userId())) { + return; + } + + events[response.type](response); + }); c.stop(); } diff --git a/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts b/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts new file mode 100644 index 000000000000..e08e23a115cb --- /dev/null +++ b/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts @@ -0,0 +1,13 @@ +import { callbacks } from '../../../../../app/callbacks/server'; +import CannedResponse from '../../../models/server/models/CannedResponse'; +import { cannedResponsesStreamer } from '../streamer'; + +callbacks.add('livechat.removeAgentDepartment', async (options: Record): Promise => { + const { departmentId, agentsId } = options; + CannedResponse.findByDepartmentId(departmentId, { fields: { _id: 1 } }).forEach((response: any) => { + const { _id } = response; + cannedResponsesStreamer.emit('canned-responses', { type: 'removed', _id }, { agentsId }); + }); + + return options; +}, callbacks.priority.HIGH, 'canned-responses-on-remove-agent-department'); diff --git a/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts b/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts new file mode 100644 index 000000000000..d74f80f582c6 --- /dev/null +++ b/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts @@ -0,0 +1,12 @@ +import { callbacks } from '../../../../../app/callbacks/server'; +import CannedResponse from '../../../models/server/models/CannedResponse'; +import { cannedResponsesStreamer } from '../streamer'; + +callbacks.add('livechat.saveAgentDepartment', async (options: Record): Promise => { + const { departmentId, agentsId } = options; + CannedResponse.findByDepartmentId(departmentId, {}).forEach((response: any) => { + cannedResponsesStreamer.emit('canned-responses', { type: 'changed', ...response }, { agentsId }); + }); + + return options; +}, callbacks.priority.HIGH, 'canned-responses-on-save-agent-department'); diff --git a/ee/app/canned-responses/server/index.js b/ee/app/canned-responses/server/index.js index 0e0d8a3a36cc..5c90ad43a141 100644 --- a/ee/app/canned-responses/server/index.js +++ b/ee/app/canned-responses/server/index.js @@ -5,6 +5,8 @@ import { onLicense } from '../../license/server'; onLicense('canned-responses', () => { const { createSettings } = require('./settings'); require('./permissions'); + require('./hooks/onRemoveAgentDepartment'); + require('./hooks/onSaveAgentDepartment'); require('./methods/saveCannedResponse'); require('./methods/removeCannedResponse'); diff --git a/ee/app/canned-responses/server/settings.js b/ee/app/canned-responses/server/settings.js index 0b204f9cd614..d9b35f1d5d2f 100644 --- a/ee/app/canned-responses/server/settings.js +++ b/ee/app/canned-responses/server/settings.js @@ -6,6 +6,11 @@ export const createSettings = () => { this.add('Canned_Responses_Enable', false, { type: 'boolean', public: true, + enterprise: true, + invalidValue: false, + modules: [ + 'canned-responses', + ], }); }); }); diff --git a/ee/app/ldap-enterprise/server/settings.js b/ee/app/ldap-enterprise/server/settings.js index 9d5d5738b247..a9925a5ec361 100644 --- a/ee/app/ldap-enterprise/server/settings.js +++ b/ee/app/ldap-enterprise/server/settings.js @@ -7,23 +7,48 @@ export const createSettings = () => { this.add('LDAP_Enable_LDAP_Roles_To_RC_Roles', false, { type: 'boolean', enableQuery: { _id: 'LDAP_Enable', value: true }, + enterprise: true, + invalidValue: false, + modules: [ + 'ldap-enterprise', + ], }); this.add('LDAP_Roles_To_Rocket_Chat_Roles', '{}', { type: 'code', enableQuery: { _id: 'LDAP_Enable_LDAP_Roles_To_RC_Roles', value: true }, + enterprise: true, + invalidValue: '{}', + modules: [ + 'ldap-enterprise', + ], }); this.add('LDAP_Validate_Roles_For_Each_Login', false, { type: 'boolean', enableQuery: { _id: 'LDAP_Enable_LDAP_Roles_To_RC_Roles', value: true }, + enterprise: true, + invalidValue: false, + modules: [ + 'ldap-enterprise', + ], }); this.add('LDAP_Default_Role_To_User', 'user', { type: 'select', values: Roles.find({ scope: 'Users' }).fetch().map((role) => ({ key: role._id, i18nLabel: role._id })), enableQuery: { _id: 'LDAP_Enable_LDAP_Roles_To_RC_Roles', value: true }, + enterprise: true, + invalidValue: 'user', + modules: [ + 'ldap-enterprise', + ], }); this.add('LDAP_Query_To_Get_User_Groups', '(&(ou=*)(uniqueMember=uid=#{username},dc=example,dc=com))', { type: 'string', enableQuery: { _id: 'LDAP_Enable_LDAP_Roles_To_RC_Roles', value: true }, + enterprise: true, + invalidValue: '(&(ou=*)(uniqueMember=uid=#{username},dc=example,dc=com))', + modules: [ + 'ldap-enterprise', + ], }); }); @@ -37,6 +62,11 @@ export const createSettings = () => { ], i18nDescription: 'LDAP_Sync_User_Active_State_Description', enableQuery: { _id: 'LDAP_Enable', value: true }, + enterprise: true, + invalidValue: 'none', + modules: [ + 'ldap-enterprise', + ], }); }); }); diff --git a/ee/app/license/server/bundles.ts b/ee/app/license/server/bundles.ts index 5b92f305a1bd..102f0a62c418 100644 --- a/ee/app/license/server/bundles.ts +++ b/ee/app/license/server/bundles.ts @@ -9,12 +9,13 @@ const bundles: IBundle = { 'ldap-enterprise', 'livechat-enterprise', 'engagement-dashboard', + 'push-privacy', ], pro: [ ], }; -const getBundleFromModule = (moduleName: string): string|undefined => { +export const getBundleFromModule = (moduleName: string): string|undefined => { const match = moduleName.match(/(.*):\*$/); if (!match) { return; @@ -43,7 +44,7 @@ export function getBundleModules(moduleName: string): string[] { } const bundle = getBundleFromModule(moduleName); - if (!bundle) { + if (!bundle || !bundles[bundle]) { return []; } diff --git a/ee/app/license/server/getTagColor.ts b/ee/app/license/server/getTagColor.ts new file mode 100644 index 000000000000..8184082530db --- /dev/null +++ b/ee/app/license/server/getTagColor.ts @@ -0,0 +1,8 @@ +export function getTagColor(tag: string): string { + switch (tag) { + case 'bronze': return '#BD5A0B'; + case 'silver': return '#9EA2A8'; + case 'gold': return '#F3BE08'; + default: return '#4411DD'; + } +} diff --git a/ee/app/license/server/license.ts b/ee/app/license/server/license.ts index 6edb121c440a..09027ae2fe98 100644 --- a/ee/app/license/server/license.ts +++ b/ee/app/license/server/license.ts @@ -1,13 +1,19 @@ import { EventEmitter } from 'events'; import { Users } from '../../../../app/models/server'; -import { resetEnterprisePermissions } from '../../authorization/server/resetEnterprisePermissions'; import { addRoleRestrictions } from '../../authorization/lib/addRoleRestrictions'; +import { resetEnterprisePermissions } from '../../authorization/server/resetEnterprisePermissions'; +import { getBundleModules, isBundle, getBundleFromModule } from './bundles'; import decrypt from './decrypt'; -import { getBundleModules, isBundle } from './bundles'; +import { getTagColor } from './getTagColor'; const EnterpriseLicenses = new EventEmitter(); +interface ILicenseTag { + name: string; + color: string; +} + export interface ILicense { url: string; expiry: string; @@ -15,6 +21,7 @@ export interface ILicense { modules: string[]; maxGuestUsers: number; maxRoomsPerGuest: number; + tag?: ILicenseTag; } export interface IValidLicense { @@ -30,13 +37,15 @@ class LicenseClass { private licenses: IValidLicense[] = []; + private tags = new Set(); + private modules = new Set(); - _validateExpiration(expiration: string): boolean { + private _validateExpiration(expiration: string): boolean { return new Date() > new Date(expiration); } - _validateURL(licenseURL: string, url: string): boolean { + private _validateURL(licenseURL: string, url: string): boolean { licenseURL = licenseURL .replace(/\./g, '\\.') // convert dots to literal .replace(/\*/g, '.*'); // convert * to .* @@ -45,7 +54,7 @@ class LicenseClass { return !!regex.exec(url); } - _validModules(licenseModules: string[]): void { + private _validModules(licenseModules: string[]): void { licenseModules.forEach((licenseModule) => { const modules = isBundle(licenseModule) ? getBundleModules(licenseModule) @@ -58,7 +67,7 @@ class LicenseClass { }); } - _invalidModules(licenseModules: string[]): void { + private _invalidModules(licenseModules: string[]): void { licenseModules.forEach((licenseModule) => { const modules = isBundle(licenseModule) ? getBundleModules(licenseModule) @@ -68,10 +77,34 @@ class LicenseClass { }); } - _hasValidNumberOfActiveUsers(maxActiveUsers: number): boolean { + private _hasValidNumberOfActiveUsers(maxActiveUsers: number): boolean { return Users.getActiveLocalUserCount() <= maxActiveUsers; } + private _addTags(license: ILicense): void { + // if no tag present, it means it is an old license, so try check for bundles and use them as tags + if (typeof license.tag === 'undefined') { + license.modules + .filter(isBundle) + .map(getBundleFromModule) + .forEach((tag) => tag && this._addTag({ name: tag, color: getTagColor(tag) })); + return; + } + + this._addTag(license.tag); + } + + private _addTag(tag: ILicenseTag): void { + // make sure to not add duplicated tag names + for (const addedTag of this.tags) { + if (addedTag.name.toLowerCase() === tag.name.toLowerCase()) { + return; + } + } + + this.tags.add(tag); + } + addLicense(license: ILicense): void { this.licenses.push({ valid: undefined, @@ -99,6 +132,10 @@ class LicenseClass { return [...this.modules]; } + getTags(): ILicenseTag[] { + return [...this.tags]; + } + setURL(url: string): void { this.url = url.replace(/\/$/, '').replace(/^https?:\/\/(.*)$/, '$1'); @@ -138,12 +175,15 @@ class LicenseClass { this._validModules(license.modules); + this._addTags(license); + console.log('#### License validated:', license.modules.join(', ')); item.valid = true; return item; }); + EnterpriseLicenses.emit('validate'); this.showLicenses(); } @@ -220,6 +260,10 @@ export function getModules(): string[] { return License.getModules(); } +export function getTags(): ILicenseTag[] { + return License.getTags(); +} + export function onLicense(feature: string, cb: (...args: any[]) => void): void { if (hasLicense(feature)) { return cb(); @@ -228,6 +272,10 @@ export function onLicense(feature: string, cb: (...args: any[]) => void): void { EnterpriseLicenses.once(`valid:${ feature }`, cb); } +export function onValidateLicenses(cb: (...args: any[]) => void): void { + EnterpriseLicenses.on('validate', cb); +} + export interface IOverrideClassProperties { [key: string]: (...args: any[]) => any; } diff --git a/ee/app/license/server/methods.ts b/ee/app/license/server/methods.ts index a9103c4c1cb8..4f966e2f31e9 100644 --- a/ee/app/license/server/methods.ts +++ b/ee/app/license/server/methods.ts @@ -1,7 +1,7 @@ -import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; +import { Meteor } from 'meteor/meteor'; -import { hasLicense, getModules, isEnterprise } from './license'; +import { getModules, getTags, hasLicense, isEnterprise } from './license'; Meteor.methods({ 'license:hasLicense'(feature: string) { @@ -12,6 +12,9 @@ Meteor.methods({ 'license:getModules'() { return getModules(); }, + 'license:getTags'() { + return getTags(); + }, 'license:isEnterprise'() { return isEnterprise(); }, diff --git a/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.html b/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.html index 969666e2867d..0938352ada18 100644 --- a/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.html +++ b/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.html @@ -55,13 +55,11 @@
{{{_ "List_of_departments_for_forward_description"}}}
- {{#with businessHour}} -
- -
- -
+
+ +
+
- {{/with}} +
diff --git a/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.js b/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.js index 29a14ddafccf..fbe1ac0b7b89 100644 --- a/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.js +++ b/ee/app/livechat-enterprise/client/views/app/customTemplates/livechatDepartmentCustomFieldsForm.js @@ -31,8 +31,9 @@ Template.livechatDepartmentCustomFieldsForm.helpers({ const department = Template.instance().department.get(); return [department && department._id, ...Template.instance().selectedDepartments.get().map((dept) => dept._id)]; }, - businessHour() { - return Template.instance().businessHour.get(); + businessHourName() { + const businessHour = Template.instance().businessHour.get(); + return businessHour?.name; }, }); @@ -53,7 +54,7 @@ Template.livechatDepartmentCustomFieldsForm.onCreated(function() { if (!contextDepartment && _id) { this.autorun(async () => { - const { department } = await APIClient.v1.get(`livechat/department/${ _id }`); + const { department } = await APIClient.v1.get(`livechat/department/${ _id }?includeAgents=false`); if (department.departmentsAllowedToForward) { const { departments } = await APIClient.v1.get(`livechat/department.listByIds?${ mountArrayQueryParameters('ids', department.departmentsAllowedToForward) }&fields=${ JSON.stringify({ fields: { name: 1 } }) }`); this.selectedDepartments.set(departments.map((dept) => ({ diff --git a/ee/app/livechat-enterprise/server/business-hour/Custom.ts b/ee/app/livechat-enterprise/server/business-hour/Custom.ts index 67717348c07d..9dd3fe08a685 100644 --- a/ee/app/livechat-enterprise/server/business-hour/Custom.ts +++ b/ee/app/livechat-enterprise/server/business-hour/Custom.ts @@ -24,7 +24,12 @@ class CustomBusinessHour extends AbstractBusinessHourType implements IBusinessHo if (!id) { return; } + const businessHour: ILivechatBusinessHour = await this.BusinessHourRepository.findOneById(id); + if (!businessHour) { + return; + } + businessHour.departments = await this.DepartmentsRepository.findByBusinessHourId(businessHour._id, { fields: { name: 1 } }).toArray(); return businessHour; } @@ -77,7 +82,7 @@ class CustomBusinessHour extends AbstractBusinessHourType implements IBusinessHo if (!departmentsToAdd.length) { return; } - await this.DepartmentsRepository.addBusinessHourToDepartamentsByIds(departmentsToAdd, businessHourId); + await this.DepartmentsRepository.addBusinessHourToDepartmentsByIds(departmentsToAdd, businessHourId); } } diff --git a/ee/app/livechat-enterprise/server/settings.js b/ee/app/livechat-enterprise/server/settings.js index e2e92660ca2e..ee5b5aa41a6f 100644 --- a/ee/app/livechat-enterprise/server/settings.js +++ b/ee/app/livechat-enterprise/server/settings.js @@ -7,6 +7,8 @@ export const createSettings = () => { group: 'Omnichannel', section: 'Routing', i18nLabel: 'Waiting_queue', + enterprise: true, + invalidValue: false, }); settings.add('Livechat_waiting_queue_message', '', { @@ -16,6 +18,11 @@ export const createSettings = () => { i18nLabel: 'Waiting_queue_message', i18nDescription: 'Waiting_queue_message_description', enableQuery: { _id: 'Livechat_waiting_queue', value: true }, + enterprise: true, + invalidValue: '', + modules: [ + 'livechat-enterprise', + ], }); settings.add('Livechat_maximum_chats_per_agent', 0, { @@ -25,6 +32,11 @@ export const createSettings = () => { i18nLabel: 'Max_number_of_chats_per_agent', i18nDescription: 'Max_number_of_chats_per_agent_description', enableQuery: { _id: 'Livechat_waiting_queue', value: true }, + enterprise: true, + invalidValue: 0, + modules: [ + 'livechat-enterprise', + ], }); settings.add('Livechat_number_most_recent_chats_estimate_wait_time', 100, { @@ -34,6 +46,11 @@ export const createSettings = () => { i18nLabel: 'Number_of_most_recent_chats_estimate_wait_time', i18nDescription: 'Number_of_most_recent_chats_estimate_wait_time_description', enableQuery: { _id: 'Livechat_waiting_queue', value: true }, + enterprise: true, + invalidValue: 100, + modules: [ + 'livechat-enterprise', + ], }); settings.add('Livechat_auto_close_abandoned_rooms', false, { @@ -41,6 +58,11 @@ export const createSettings = () => { group: 'Omnichannel', section: 'Sessions', i18nLabel: 'Enable_omnichannel_auto_close_abandoned_rooms', + enterprise: true, + invalidValue: false, + modules: [ + 'livechat-enterprise', + ], }); settings.add('Livechat_abandoned_rooms_closed_custom_message', '', { @@ -49,6 +71,11 @@ export const createSettings = () => { section: 'Sessions', i18nLabel: 'Livechat_abandoned_rooms_closed_custom_message', enableQuery: { _id: 'Livechat_auto_close_abandoned_rooms', value: true }, + enterprise: true, + invalidValue: '', + modules: [ + 'livechat-enterprise', + ], }); settings.add('Livechat_last_chatted_agent_routing', false, { @@ -56,6 +83,11 @@ export const createSettings = () => { group: 'Omnichannel', section: 'Routing', enableQuery: { _id: 'Livechat_Routing_Method', value: { $ne: 'Manual_Selection' } }, + enterprise: true, + invalidValue: false, + modules: [ + 'livechat-enterprise', + ], }); settings.addGroup('Omnichannel', function() { @@ -71,10 +103,14 @@ export const createSettings = () => { }], public: true, i18nLabel: 'Livechat_business_hour_type', + enterprise: true, + invalidValue: 'Single', + modules: [ + 'livechat-enterprise', + ], }); }); }); - Settings.addOptionValueById('Livechat_Routing_Method', { key: 'Load_Balancing', i18nLabel: 'Load_Balancing' }); }; diff --git a/ee/app/models/server/models/CannedResponse.js b/ee/app/models/server/models/CannedResponse.js index aee66bcaf04f..1fd117cad2b1 100644 --- a/ee/app/models/server/models/CannedResponse.js +++ b/ee/app/models/server/models/CannedResponse.js @@ -45,6 +45,15 @@ export class CannedResponse extends Base { return this.find(query, options); } + findByDepartmentId(departmentId, options) { + const query = { + scope: 'department', + departmentId, + }; + + return this.find(query, options); + } + findByShortcut(shortcut, options) { const query = { shortcut }; diff --git a/ee/app/settings/server/index.js b/ee/app/settings/server/index.js new file mode 100644 index 000000000000..97097791afdc --- /dev/null +++ b/ee/app/settings/server/index.js @@ -0,0 +1 @@ +import './settings'; diff --git a/ee/app/settings/server/settings.ts b/ee/app/settings/server/settings.ts new file mode 100644 index 000000000000..560d057c5f3e --- /dev/null +++ b/ee/app/settings/server/settings.ts @@ -0,0 +1,70 @@ +import { Meteor } from 'meteor/meteor'; + +import { SettingsEvents, settings, ISettingRecord } from '../../../../app/settings/server/functions/settings'; +import { SettingValue } from '../../../../app/settings/lib/settings'; +import { isEnterprise, hasLicense, onValidateLicenses } from '../../license/server/license'; +import SettingsModel from '../../../../app/models/server/models/Settings'; + +function changeSettingValue(record: ISettingRecord): undefined | { value: SettingValue } { + if (!record.enterprise) { + return; + } + + if (!isEnterprise()) { + return { value: record.invalidValue }; + } + + if (!record.modules?.length) { + return; + } + + for (const moduleName of record.modules) { + if (!hasLicense(moduleName)) { + return { value: record.invalidValue }; + } + } +} + +SettingsEvents.on('store-setting-value', (record: ISettingRecord, newRecord: { value: SettingValue }) => { + const changedValue = changeSettingValue(record); + if (changedValue) { + newRecord.value = changedValue.value; + } +}); + +SettingsEvents.on('fetch-settings', (settings: Array): void => { + for (const setting of settings) { + const changedValue = changeSettingValue(setting); + if (changedValue) { + setting.value = changedValue.value; + } + } +}); + +type ISettingNotificationValue = { + _id: string; + value: SettingValue; + editor: string; + properties: string; + enterprise: boolean; +}; + +SettingsEvents.on('change-setting', (record: ISettingRecord, value: ISettingNotificationValue): void => { + const changedValue = changeSettingValue(record); + if (changedValue) { + value.value = changedValue.value; + } +}); + +function updateSettings(): void { + const enterpriseSettings = SettingsModel.findEnterpriseSettings(); + + enterpriseSettings.forEach((record: ISettingRecord) => settings.storeSettingValue(record, false)); +} + + +Meteor.startup(() => { + updateSettings(); + + onValidateLicenses(updateSettings); +}); diff --git a/ee/i18n/cs.i18n.json b/ee/i18n/cs.i18n.json index 4ee71c28ab5e..e62af8a47230 100644 --- a/ee/i18n/cs.i18n.json +++ b/ee/i18n/cs.i18n.json @@ -7,11 +7,14 @@ "error-max-number-simultaneous-chats-reached": "Byl dosažen maximální počet souběžných konverzací na operátora.", "Add_monitor": "Přidat vedoucího", "Available_departments": "Dostupná oddělení", + "Business_Hour": "Otevírací doba", + "Business_Hour_Removed": "Otevírací doba odstraněna", "Canned Responses": "Zakonzervované odpovědi", "Canned_Response_Removed": "Zakonzervované odpovědi odstraněny", "Canned_Responses_Enable": "Povolit zakonzervované odpovědi", "Closed_automatically": "Uzavřeno automaticky", "Default_value": "Výchozí hodnota", + "Edit_Business_Hour": "Upravit otevírací dobu", "Edit_Tag": "Upravit štítek", "Edit_Unit": "Upravit skupinu", "Edit_Priority": "Upravit prioritu", @@ -23,6 +26,7 @@ "Failed_to_add_monitor": "Nepodařilo se přidat vedoucího", "Invalid Canned Response": "Nevalidní zakonzervovaná odpověď", "Invalid_Department": "Neplatné oddělení", + "LDAP_Advanced_Sync": "Pokročilá synchronizace", "LDAP_Default_Role_To_User": "Výchozí role pro uživatele", "LDAP_Default_Role_To_User_Description": "Výchozí role přidaná uživateli v případě že LDAP role není namapovaná", "LDAP_Enable_LDAP_Roles_To_RC_Roles": "Povolit mapování rolí z LDAP do Rocket.Chat", @@ -30,11 +34,18 @@ "LDAP_Query_To_Get_User_Groups_Description": "LDAP query pro získání skupin do kterých patří uživatel.", "LDAP_Roles_To_Rocket_Chat_Roles": "Mapování rolí z LDAP do Rocket.Chat", "LDAP_Roles_To_Rocket_Chat_Roles_Description": "Mapování rolí v objektovém formátu, kde klíč je LDAP role a hodnota pole Rocket.Chat rolí. Například { 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "Synchronizovat stavy aktivity uživatelů", + "LDAP_Sync_User_Active_State_Description": "Rozlišuje zda by měli být uživatelé povolení nebo zakázaní na základě jejich stavu v LDAP. Pro zjištění se používá atribut 'pwdAccountLockedTime'.", + "LDAP_Sync_User_Active_State_Nothing": "Nedělat nic", + "LDAP_Sync_User_Active_State_Disable": "Zakázat uživatele", + "LDAP_Sync_User_Active_State_Both": "Povolit a zakázat uživatele", "LDAP_Validate_Roles_For_Each_Login": "Validovat mapování pro každé přihlášení", "LDAP_Validate_Roles_For_Each_Login_Description": "Zda má validace probíhat při každém přihlášení (Opatrně, taková akce přepíše uživatelské role při každém přihlášení. V opačném případě je validováno jen při vytvoření uživatele", + "List_of_departments_to_apply_this_business_hour": "Seznam oddělení pro která platí tato otevírací doba", "List_of_departments_for_forward": "Seznam oddělení povolených pro přesměrování (volitelné)", "List_of_departments_for_forward_description": "Omezit oddělení do kterých je možné přesměrovat konverzace z aktuálního", "Livechat_abandoned_rooms_closed_custom_message": "Vlastní zpráva pokud je místnost automaticky uzavřena z důvodu neaktivity", + "Livechat_business_hour_type": "Typ otevírací doby (jednoduchá nebo rozšířená)", "Livechat_custom_fields_options_placeholder": "Čárkou oddělený seznam pro vybrání hodnoty. Mezery nejsou povoleny", "Livechat_custom_fields_public_description": "Veřejné vlastní pole zobrazené v externí aplikaci jako Livechat, atd.", "Livechat_last_chatted_agent_routing": "Preferovat operátora z předešlé konverzace", @@ -48,6 +59,7 @@ "Message_auditing_log": "Log auditu zpráv", "Monitor_removed": "Vedoucí odstraněn", "Monitors": "Vedoucí", + "New_Business_Hour": "Nová otevírací doba", "New_Canned_Response": "Nová zakonzervovaná odpověď", "New_chat_priority": "Priorita změněna: __user__ změnil prioritu na __priority__", "New_Tag": "Nový štítek", @@ -58,6 +70,7 @@ "Number_of_most_recent_chats_estimate_wait_time": "Počet nedávných konverzací k výpočtu odhadu času čekání", "Number_of_most_recent_chats_estimate_wait_time_description": "K výpočtu času ve frontě se použije několik nedávných zpracovaných konverzací.", "Others": "Ostatní", + "Open_Days": "Otevřené dny", "Please_select_visibility": "Prosím vyberte viditelnost", "Priorities": "Priority", "Priority": "Priorita", diff --git a/ee/i18n/da.i18n.json b/ee/i18n/da.i18n.json index 8371da0988c9..0df711ab702b 100644 --- a/ee/i18n/da.i18n.json +++ b/ee/i18n/da.i18n.json @@ -7,11 +7,14 @@ "error-max-number-simultaneous-chats-reached": "Det maksimale tilladte antal af samtidige chats pr agent er nået", "Add_monitor": "Tilføj monitor", "Available_departments": "Tilgængelige afdelinger", + "Business_Hour": "Kontortid", + "Business_Hour_Removed": "Kontortid fjernet", "Canned Responses": "Opbevarede svar", "Canned_Response_Removed": "Opbevaret svar blev fjernet", "Canned_Responses_Enable": "Aktivér opbevarede svar", "Closed_automatically": "Blev automatisk lukket af systemet", "Default_value": "Standardværdi", + "Edit_Business_Hour": "Redigér kontortid", "Edit_Tag": "Redigér mærke", "Edit_Unit": "Redigér enhed", "Edit_Priority": "Rediger prioritet", @@ -23,6 +26,7 @@ "Failed_to_add_monitor": "Fejl ved tilføjelse af monitor", "Invalid Canned Response": "Ikke gyldigt opbevaret svar", "Invalid_Department": "Ugyldig afdeling", + "LDAP_Advanced_Sync": "Avanceret synkronisering", "LDAP_Default_Role_To_User": "Standardrolle for bruger", "LDAP_Default_Role_To_User_Description": "Standard RC-rolle der skal tildeles en bruger, hvis brugeren har en LDAP-rolle der ikke er knyttet til noget", "LDAP_Enable_LDAP_Roles_To_RC_Roles": "Aktivér rolletilknytning fra LDAP til Rocket.Chat", @@ -30,11 +34,18 @@ "LDAP_Query_To_Get_User_Groups_Description": "LDAP-forespørgsel for at hente de LDAP-grupper, som brugeren er en del af.", "LDAP_Roles_To_Rocket_Chat_Roles": "Rolletilknytning fra LDAP til Rocket.Chat.", "LDAP_Roles_To_Rocket_Chat_Roles_Description": "Rolletilknytning i objektformat hvor objektnøglen skal være LDAP-rollen og objektværdien skal være en array af RC-roller. Eksempel: { 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "Aktive brugeres synkroniseringsstatus", + "LDAP_Sync_User_Active_State_Description": "Beslut om brugere skal være aktiveret eller deaktiveret i Rocket.Chat baseret på deres LDAP-status. Attributten 'pwdAccountLockedTime' vil blive brugt til at vurdere om brugeren er deaktiveret.", + "LDAP_Sync_User_Active_State_Nothing": "Gør ikke noget", + "LDAP_Sync_User_Active_State_Disable": "Deaktiver brugere", + "LDAP_Sync_User_Active_State_Both": "Aktivér og deaktiver brugere", "LDAP_Validate_Roles_For_Each_Login": "Validér tilknytning for hvert login", "LDAP_Validate_Roles_For_Each_Login_Description": "Hvis validering skal ske for hvert login (Vær forsigtig med denne indstilling, fordi den vil overskrive brugerrollerne i hvert login. Ellers valideres dette kun på det tidspunkt hvor brugeren oprettes).", + "List_of_departments_to_apply_this_business_hour": "Liste over afdelinger som skal anvende denne kontortid", "List_of_departments_for_forward": "Liste over tilladte afdelinger til videresendelse (valgfrit)", "List_of_departments_for_forward_description": "Tillad at indstille en begrænset liste over afdelinger der kan modtage chats fra denne afdeling", "Livechat_abandoned_rooms_closed_custom_message": "Tilpasset besked når værelset automatisk lukkes af besøgendes inaktivitet", + "Livechat_business_hour_type": "Kontortidstype (enkelt eller flere)", "Livechat_custom_fields_options_placeholder": "Kommasepareret liste der bruges til at vælge en forudkonfigureret værdi. Mellemrum mellem elementer accepteres ikke.", "Livechat_custom_fields_public_description": "Offentlige brugerdefinerede felter vil blive vist i eksterne applikationer såsom Livechat osv.", "Livechat_last_chatted_agent_routing": "Agent der er blevet chattet med sidst foretrækkes", @@ -48,6 +59,7 @@ "Message_auditing_log": "Log for meddelelsesovervågning", "Monitor_removed": "Monitor fjernet", "Monitors": "Monitore", + "New_Business_Hour": "Ny kontortid", "New_Canned_Response": "Nyt opbevaret svar", "New_chat_priority": "Prioritet ændret: __user__ changed the priority to __priority__", "New_Tag": "Nyt mærke", @@ -58,6 +70,7 @@ "Number_of_most_recent_chats_estimate_wait_time": "Antal seneste chats til beregning af estimeret ventetid", "Number_of_most_recent_chats_estimate_wait_time_description": "Dette antal definerer antallet af sidst anvendte rum, der vil blive brugt til at beregne kø-ventetider.", "Others": "Andre", + "Open_Days": "Åbne dage", "Please_select_visibility": "Vælg en synlighed", "Priorities": "Prioriteter", "Priority": "Prioritet", diff --git a/ee/i18n/en.i18n.json b/ee/i18n/en.i18n.json index 3365ac9bdb82..21d2320146b6 100644 --- a/ee/i18n/en.i18n.json +++ b/ee/i18n/en.i18n.json @@ -96,4 +96,4 @@ "Waiting_queue_message": "Waiting queue message", "Waiting_queue_message_description": "Message that will be displayed to the visitors when they get in the queue", "Without_priority": "Without priority" -} +} \ No newline at end of file diff --git a/ee/i18n/es.i18n.json b/ee/i18n/es.i18n.json index b822514d8410..f683d3689693 100644 --- a/ee/i18n/es.i18n.json +++ b/ee/i18n/es.i18n.json @@ -1,22 +1,32 @@ { "error-canned-response-not-found": "Modelo de respuesta no encontrado", + "error-forwarding-department-target-not-allowed": "El envío al departamento de destino no está permitido.", "error-guests-cant-have-other-roles": "Los usuarios invitados no pueden tener ningún otro rol.", + "error-invalid-priority": "Prioridad inválida", + "error-max-guests-number-reached": "Has alcanzado el número máximo de usuarios invitados permitido por tu licencia. Contacta con sale@rocket.chat para una nueva licencia.", "error-max-number-simultaneous-chats-reached": "Se ha alcanzado el máximo de chats simultáneos por agente.", "Add_monitor": "Añadir monitor", "Available_departments": "Departamentos disponibles", + "Business_Hour": "Horario de oficina", + "Business_Hour_Removed": "Horario de oficina eliminado", "Canned Responses": "Modelos de respuesta", "Canned_Response_Removed": "Modelo de respuesta eliminado", "Canned_Responses_Enable": "Habilitar modelos de respuesta", "Closed_automatically": "Cerrado automáticamente por el sistema", + "Default_value": "Valor por defecto", + "Edit_Business_Hour": "Editar horario de oficina ", "Edit_Tag": "Editar etiqueta", "Edit_Unit": "Editar unidad", + "Edit_Priority": "Editar proridad", "Enable_omnichannel_auto_close_abandoned_rooms": "Habilitar cerrar automáticamente las salas abandonados por el visitante", "Enter_a_custom_message": "Introduzca un mensaje personalizado", "Enterprise_License": "Licencia de empresa", "Enterprise_License_Description": "Si tu espacio de trabajo está registrado y dispone de una licencia proporcionada por Rocket.Chat Cloud no es necesario actualizar esta licencia.", + "Estimated_due_time": "Tiempo estimado de espera (tiempo en minutos)", "Failed_to_add_monitor": "Error al añadir monitor", "Invalid Canned Response": "Modelo de respuesta incorrecto", "Invalid_Department": "Departamento incorrecto", + "LDAP_Advanced_Sync": "Sincronización avanzada", "LDAP_Default_Role_To_User": "Rol de usuario por defecto", "LDAP_Default_Role_To_User_Description": "Rol RC por defecto a aplicar al usuario si el usuario tiene algún rol de LDAP que no está mapeado.", "LDAP_Enable_LDAP_Roles_To_RC_Roles": "Habilitar mapeo de roles de LDAP a Rocket.Chat", @@ -24,9 +34,22 @@ "LDAP_Query_To_Get_User_Groups_Description": "Consulta LDAP para recuperar los grupos a los que pertenece el usuario.", "LDAP_Roles_To_Rocket_Chat_Roles": "Mapeo de roles de LDAP a Rocket.Chat.", "LDAP_Roles_To_Rocket_Chat_Roles_Description": "Mapeo de rol en formato de objeto donde la clave del objeto debe ser el rol LDAP y el valor debe ser un array de roles RC. Por ejemplo: { 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "Sincronizar el estado de actividad del usuario", + "LDAP_Sync_User_Active_State_Description": "Determinar si los usuarios deben ser habilitados o deshabilitados en Rocket.Chat en base al estado LDAP. El atributo 'pwdAccountLockedTime' se usará para determinar si el usuario está deshabilitado.", + "LDAP_Sync_User_Active_State_Nothing": "No hagas nada", + "LDAP_Sync_User_Active_State_Disable": "Desactivar Usuarios", + "LDAP_Sync_User_Active_State_Both": "Activar y desactivar usuarios", "LDAP_Validate_Roles_For_Each_Login": "Validar el mapeo en cada login", "LDAP_Validate_Roles_For_Each_Login_Description": "Si la validación debe realizarse en cada login (Ten cuidado con esta configuración porque se sobrescribirán los roles del usuario en cada login, de otro modo estos serán validados en el momento de la creación del usuario).", + "List_of_departments_to_apply_this_business_hour": "Lista de departamentos para aplicar este horario ", + "List_of_departments_for_forward": "Lista de departamentos permitidos para el envío (Opcional)", + "List_of_departments_for_forward_description": "Permitir establecer una lista restringida de departamentos que pueden recibir chats de este departamento", "Livechat_abandoned_rooms_closed_custom_message": "Mensaje personalizado cuando se cierra la sala por inactividad del visitante", + "Livechat_business_hour_type": "Tipo de horario comercial (simple o múltiple)", + "Livechat_custom_fields_options_placeholder": "Lista separada por comas utilizada para seleccionar un valor preconfigurado. No se aceptan espacios entre elementos.", + "Livechat_custom_fields_public_description": "Los campos personalizados públicos se mostrarán en aplicaciones externas, como Livechat, etc.", + "Livechat_last_chatted_agent_routing": "Agente de último chat preferido", + "Livechat_last_chatted_agent_routing_Description": "La configuración de agente de último chat preferido asigna los chats al agente que previamente interactuó con el mismo visitante si el agente está disponible cuando el chat comienza.", "Livechat_Monitors": "Monitores", "Livechat_monitors": "Monitores de Livechat", "Max_number_of_chats_per_agent": "Número máximo de chats simultáneos", @@ -36,15 +59,22 @@ "Message_auditing_log": "Registro de auditoría de mensajes", "Monitor_removed": "Monitor eliminado", "Monitors": "Monitores", + "New_Business_Hour": "Nuevo horario de oficina", "New_Canned_Response": "Nuevo modelo de respuesta", + "New_chat_priority": "Prioridad cambiada: __user__ cambió la prioridad a __priority__", "New_Tag": "Nueva etiqueta", "New_Unit": "Nueva unidad", + "New_Priority": "Nueva prioridad", "No_Canned_Responses": "No existen modelos de respuesta", "Number_in_seconds": "Valor en segundos", "Number_of_most_recent_chats_estimate_wait_time": "Número de chats recientes para calcular el tiempo de espera estimado", "Number_of_most_recent_chats_estimate_wait_time_description": "Este valor define el número de las últimas salas reservadas que serán utilizadas para calcular los tiempos de espera en cola. ", "Others": "Otros", + "Open_Days": "Dias abiertos", "Please_select_visibility": "Por favor, seleccione una visibilidad", + "Priorities": "Prioridades", + "Priority": "Prioridad", + "Priority_removed": "Prioridad eliminada", "Role_Mapping": "Mapeo de roles", "Selected_departments": "Departamentos seleccionados", "Selected_monitors": "Monitores seleccionados", @@ -64,5 +94,6 @@ "view-livechat-unit": "Ver las unidades de Livechat", "Waiting_queue": "Cola de espera", "Waiting_queue_message": "Mensaje de la cola de espera", - "Waiting_queue_message_description": "Mensaje que se mostrará a los visitantes cuando entren en la cola" + "Waiting_queue_message_description": "Mensaje que se mostrará a los visitantes cuando entren en la cola", + "Without_priority": "Sin prioridad" } \ No newline at end of file diff --git a/ee/i18n/he.i18n.json b/ee/i18n/he.i18n.json index 6f31cf5a2e62..4980400d4795 100644 --- a/ee/i18n/he.i18n.json +++ b/ee/i18n/he.i18n.json @@ -1 +1,4 @@ -{ } \ No newline at end of file +{ + "Default_value": "ערך ברירת מחדל", + "Me": "אני" +} \ No newline at end of file diff --git a/ee/i18n/ja.i18n.json b/ee/i18n/ja.i18n.json index 9df55c86e758..b3205343df2c 100644 --- a/ee/i18n/ja.i18n.json +++ b/ee/i18n/ja.i18n.json @@ -7,11 +7,14 @@ "error-max-number-simultaneous-chats-reached": "エージェントごとの同時チャットの最大数に達しました。", "Add_monitor": "モニターを追加", "Available_departments": "利用可能な部門", + "Business_Hour": "営業時間", + "Business_Hour_Removed": "削除された営業時間", "Canned Responses": "返信定型文", "Canned_Response_Removed": "削除された定型文", "Canned_Responses_Enable": "返信定型文を有効にする", "Closed_automatically": "システムにより自動的に閉鎖", "Default_value": "デフォルト値", + "Edit_Business_Hour": "営業時間を編集", "Edit_Tag": "タグを編集", "Edit_Unit": "ユニットを編集", "Edit_Priority": "優先度を編集", @@ -23,6 +26,7 @@ "Failed_to_add_monitor": "モニターを追加できませんでした", "Invalid Canned Response": "無効な返信定型文", "Invalid_Department": "部門が無効です", + "LDAP_Advanced_Sync": "高度な同期", "LDAP_Default_Role_To_User": "ユーザーへのデフォルトの役割", "LDAP_Default_Role_To_User_Description": "ユーザーにマッピングされていないLDAPロールがある場合にユーザーに適用されるデフォルトのRCロール。", "LDAP_Enable_LDAP_Roles_To_RC_Roles": "LDAPからRocket.Chatへのロールマッピングを有効にする", @@ -30,11 +34,18 @@ "LDAP_Query_To_Get_User_Groups_Description": "ユーザーが属するLDAPグループを取得するためのLDAPクエリ。", "LDAP_Roles_To_Rocket_Chat_Roles": "LDAPからRocket.Chatへのロールマッピング。", "LDAP_Roles_To_Rocket_Chat_Roles_Description": "オブジェクトキーがLDAPロールであり、オブジェクト値がRCロールの配列である必要があるオブジェクト形式のロールマッピング。例:{ 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "ユーザーのアクティブ状態の同期", + "LDAP_Sync_User_Active_State_Description": "LDAPステータスに基づいて、Rocket.Chatでユーザーを有効にするか無効にするかを決定します。 `pwdAccountLockedTime`属性は、ユーザーが無効になっているかどうかを判断するために使用されます。", + "LDAP_Sync_User_Active_State_Nothing": "何もしない", + "LDAP_Sync_User_Active_State_Disable": "ユーザーを無効にする", + "LDAP_Sync_User_Active_State_Both": "ユーザーの有効化と無効化", "LDAP_Validate_Roles_For_Each_Login": "各ログインのマッピングを検証する", "LDAP_Validate_Roles_For_Each_Login_Description": "各ログインで検証を行う必要がある場合(この設定は各ログインでユーザーロールを上書きするため、注意してください。そうでない場合、ユーザーの作成時にのみ検証されます)。", + "List_of_departments_to_apply_this_business_hour": "この営業時間を適用する部門のリスト", "List_of_departments_for_forward": "転送が許可されている部門のリスト(オプション)", "List_of_departments_for_forward_description": "この部門からチャットを受信できる部門の制限リストを設定することを許可します", "Livechat_abandoned_rooms_closed_custom_message": "訪問者の非アクティブによって部屋が自動的に閉じられたときのカスタムメッセージ", + "Livechat_business_hour_type": "営業時間タイプ(単一または複数)", "Livechat_custom_fields_options_placeholder": "設定済みの値を選択するために使用されるカンマ区切りのリスト。要素間のスペースは受け入れられません。", "Livechat_custom_fields_public_description": "パブリックカスタムフィールドは、Livechatなどの外部アプリケーションに表示されます。", "Livechat_last_chatted_agent_routing": "最終チャットエージェントが優先", @@ -48,6 +59,7 @@ "Message_auditing_log": "メッセージ監査ログ", "Monitor_removed": "モニターを取り外しました", "Monitors": "モニター", + "New_Business_Hour": "新しい営業時間", "New_Canned_Response": "新しい返信定型文", "New_chat_priority": "優先度の変更:__user__が優先度を__priority__に変更しました", "New_Tag": "新しいタグ", @@ -58,6 +70,7 @@ "Number_of_most_recent_chats_estimate_wait_time": "推定待ち時間を計算するための最近のチャットの数", "Number_of_most_recent_chats_estimate_wait_time_description": "この数は、キュー待機時間の計算に使用される最後に提供された部屋の数を定義します。", "Others": "その他", + "Open_Days": "開館日", "Please_select_visibility": "可視性を選択してください", "Priorities": "優先度", "Priority": "優先度", diff --git a/ee/i18n/km.i18n.json b/ee/i18n/km.i18n.json index c657863beb44..1106d75bca0c 100644 --- a/ee/i18n/km.i18n.json +++ b/ee/i18n/km.i18n.json @@ -1,13 +1,24 @@ { "error-canned-response-not-found": "ការឆ្លើយតបដែលបានថតទុកមិនត្រូវបានរកឃើញទេ", + "error-forwarding-department-target-not-allowed": "មិនអនុញ្ញាតឱ្យបញ្ជូនបន្តទៅផ្នែកគោលដៅទេ។", + "error-guests-cant-have-other-roles": "អ្នកប្រើប្រាស់ភ្ញៀវមិនអាចមានតួនាទីអ្វីផ្សេងបានទេ។", + "error-invalid-priority": "អាទិភាពមិនត្រឹមត្រូវ", + "error-max-guests-number-reached": "អ្នកបានឈានដល់ចំនួនអតិបរិមានៃអ្នកប្រើប្រាស់ភ្ញៀវដែលបានអនុញ្ញាតដោយអាជ្ញាប័ណ្ណរបស់អ្នក។ ទាក់ទង sale@rocket.chat សម្រាប់អាជ្ញាប័ណ្ណថ្មី។", "error-max-number-simultaneous-chats-reached": "ចំនួនអតិបរមានៃការជជែកដំណាលគ្នាក្នុងមួយភ្នាក់ងារត្រូវបានឈានដល់។", "Add_monitor": "បន្ថែមម៉ូនីទ័រ", "Available_departments": "ផ្នែកដែលមាន", + "Business_Hour": "ម៉ោងធ្វើការ", + "Business_Hour_Removed": "ម៉ោងធ្វើការ", "Canned Responses": "ការឆ្លើយតបដែលបានថតទុកមិនត្រូវបានរកឃើញទេ", "Canned_Response_Removed": "ការឆ្លើយតបដែលបានថតទុកមិនត្រូវបានរកឃើញទេ", "Canned_Responses_Enable": "បើកការឆ្លើយតបដែលអាចប្រើបាន", + "Closed_automatically": "បានបិទដោយស្វ័យប្រវត្តិដោយប្រព័ន្ធ", + "Default_value": "តម្លៃ​លំនាំដើម", + "Edit_Business_Hour": "កែសម្រួលម៉ោងធ្វើការ", "Edit_Tag": "កែសម្រួលស្លាក", "Edit_Unit": "កែ​សម្រួល", + "Edit_Priority": "កែសម្រួលអាទិភាព", + "Enable_omnichannel_auto_close_abandoned_rooms": "បើកដំណើរការបិទដោយស្វ័យប្រវត្តិនៃបន្ទប់ដែលបោះបង់ចោលដោយអ្នកទស្សនា", "Enterprise_License": "អាជ្ញាប័ណ្ណសហគ្រាស", "Enterprise_License_Description": "ប្រសិនបើកន្លែងធ្វើការរបស់អ្នកត្រូវបានចុះឈ្មោះហើយអាជ្ញាប័ណ្ណត្រូវបានផ្តល់ដោយ Rocket.Chat Cloud អ្នកមិនចាំបាច់ធ្វើបច្ចុប្បន្នភាពអាជ្ញាប័ណ្ណដោយដៃនៅទីនេះទេ។", "Failed_to_add_monitor": "បានបរាជ័យក្នុងការបន្ថែមម៉ូនីទ័រ", diff --git a/ee/i18n/pl.i18n.json b/ee/i18n/pl.i18n.json index 9dcf80df21f4..41b0ee2691ba 100644 --- a/ee/i18n/pl.i18n.json +++ b/ee/i18n/pl.i18n.json @@ -1,4 +1,5 @@ { + "error-canned-response-not-found": "Predefiniowana odpowiedź nie odnaleziona", "error-forwarding-department-target-not-allowed": "Przekazywanie do docelowego działu nie jest dozwolone.", "error-guests-cant-have-other-roles": "Goście nie mogą mieć żadnych innych ról.", "error-invalid-priority": "Niepoprawny priorytet", @@ -6,6 +7,9 @@ "error-max-number-simultaneous-chats-reached": "Maksymalna liczba jednoczesnych rozmów na agenta została osiągnięta.", "Add_monitor": "Dodaj monitor", "Available_departments": "Dostępne oddziały", + "Canned Responses": "Predefiniowane odpowiedzi", + "Canned_Response_Removed": "Predefiniowana odpowiedź usunięta", + "Canned_Responses_Enable": "Włącz predefiniowane odpowiedzi", "Closed_automatically": "Automatycznie zamknięte przez system", "Default_value": "Domyślna wartość", "Edit_Tag": "Edytuj tag", @@ -17,6 +21,7 @@ "Enterprise_License_Description": "Jeśli Twoja przestrzeń robocza jest zarejestrowana i licencja jest dostarczana przez Rocket.Chat Cloud, nie musisz ręcznie aktualizować licencji tutaj.", "Estimated_due_time": "Szacowany czas (w minutach)", "Failed_to_add_monitor": "Nieudane dodanie monitora", + "Invalid Canned Response": "Niepoprawna predefiniowana odpowiedź", "Invalid_Department": "Błędny oddział", "LDAP_Default_Role_To_User": "Domyślna rola dla użytkownika", "LDAP_Default_Role_To_User_Description": "Zostanie użyta domyślna rola RC jeżeli użytkownik ma jakąś rolę LDAP która nie jest zamapowana.", @@ -24,10 +29,16 @@ "LDAP_Query_To_Get_User_Groups": "Zapytanie LDAP do pobrania grup użytkownika", "LDAP_Query_To_Get_User_Groups_Description": "Zapytanie LDAP do pobrania grup w których uczestniczy użytkownik", "LDAP_Roles_To_Rocket_Chat_Roles": "Mapowanie ról z LDAP do Rocket.Chat", + "LDAP_Roles_To_Rocket_Chat_Roles_Description": "Odwzorowanie ról w formacie obiektowym, w którym kluczem obiektu musi być rola LDAP, a wartością obiektu musi być tablica ról RC. Example: { 'ldapRole': ['rcRole', 'anotherRCRole'] }", "LDAP_Validate_Roles_For_Each_Login": "Zweryfikuj mapowanie przy każdym logowaniu", + "LDAP_Validate_Roles_For_Each_Login_Description": "Jeśli sprawdzanie poprawności powinno nastąpić przy każdym logowaniu (należy zachować ostrożność przy tym ustawieniu, ponieważ spowoduje to zastąpienie ról użytkownika przy każdym logowaniu, w przeciwnym razie zostanie to zatwierdzone tylko w momencie tworzenia użytkownika).", "List_of_departments_for_forward": "Lista działow dozwolonych do przekazywania (opcjonalne)", "List_of_departments_for_forward_description": "Zezwalaj na ustawienie zastrzeżonej listy departamentów, które mogą otrzymywać czaty z tego departamentu.", "Livechat_abandoned_rooms_closed_custom_message": "Niestandardowy komunikat, gdy pokój jest automatycznie zamykany przez brak aktywności odwiedzającego", + "Livechat_custom_fields_options_placeholder": "Użyj przecinków aby wybrać pre-konfigurowaną wartość. Spacje pomiędzy elementami nie są akceptowane.", + "Livechat_custom_fields_public_description": "Publiczne pola niestandardowe będą wyświetlane w aplikacjach zewnętrznych, takich jak Livechat itp.", + "Livechat_last_chatted_agent_routing": "Preferowany agent ostatnio prowadzący czat", + "Livechat_last_chatted_agent_routing_Description": "Ustawienie agenta ostatnio prowadzącego czat przypisuje agenta, który ostatnio prowadził rozmowę z tym samym odwiedzającym jeżeli agent jest dostępny w momencie rozpoczęcia czatu.", "Livechat_Monitors": "Monitory", "Livechat_monitors": "Monitory Livechat", "Max_number_of_chats_per_agent": "Maksymalna liczba jednoczesnych rozmów", @@ -37,9 +48,12 @@ "Message_auditing_log": "Log audytu wiadomości", "Monitor_removed": "Monitor usunięty", "Monitors": "Monitory", + "New_Canned_Response": "Nowa predefiniowana odpowiedź", + "New_chat_priority": "Zmieniono priorytet: __user__ zmienił priorytet na __priority__", "New_Tag": "Nowy znacznik", "New_Unit": "Nowa jednostka", "New_Priority": "Nowy priorytet", + "No_Canned_Responses": "Brak predefiniowanych odpowiedzi", "Number_in_seconds": "Liczba w sekundach", "Number_of_most_recent_chats_estimate_wait_time": "Liczba ostatnich rozmów do szacowania czasu oczekiwania", "Number_of_most_recent_chats_estimate_wait_time_description": "Liczba ta określa liczbę ostatnio obsługiwanych pokoi, która będzie wykorzystana do obliczenia czasu oczekiwania w kolejce.", @@ -62,6 +76,7 @@ "This_monitor_was_already_selected": "Ten monitor został już wybrany", "Unit_removed": "Jednostka usunięta", "Use_this_response": "Użyj tej odpowiedzi", + "view-canned-responses": "Zobacz predefiniowane odpowiedzi", "view-livechat-monitor": "Zobacz monitory Livechat", "view-livechat-unit": "Zobacz jednostki Livechat", "Waiting_queue": "Kolejka oczekujących", diff --git a/ee/i18n/pt-BR.i18n.json b/ee/i18n/pt-BR.i18n.json index 53399f1f0198..a3fbabd1c42e 100644 --- a/ee/i18n/pt-BR.i18n.json +++ b/ee/i18n/pt-BR.i18n.json @@ -78,4 +78,4 @@ "Waiting_queue_message": "Mensagem de fila de espera", "Waiting_queue_message_description": "Mensagem que será exibida aos visitantes quando eles entrarem na fila de espera", "Without_priority": "Sem prioridade" -} +} \ No newline at end of file diff --git a/ee/i18n/tr.i18n.json b/ee/i18n/tr.i18n.json index 6f31cf5a2e62..2bb6b5cd07f0 100644 --- a/ee/i18n/tr.i18n.json +++ b/ee/i18n/tr.i18n.json @@ -1 +1,4 @@ -{ } \ No newline at end of file +{ + "error-canned-response-not-found": "Hazır Yanıt Bulunamadı", + "error-invalid-priority": "Geçersiz öncelik" +} \ No newline at end of file diff --git a/ee/i18n/uk.i18n.json b/ee/i18n/uk.i18n.json index b4a9184ac013..6a5fd995bd91 100644 --- a/ee/i18n/uk.i18n.json +++ b/ee/i18n/uk.i18n.json @@ -1,14 +1,20 @@ { + "error-canned-response-not-found": "Зафіксована відповідь не знайдена", "error-forwarding-department-target-not-allowed": "Пересилання в цільовий відділ не допускається.", + "error-guests-cant-have-other-roles": "Гостьові користувачі не можуть мати іншої ролі.", "error-invalid-priority": "Недійсний пріоритет", "error-max-guests-number-reached": "Ви досягли максимальної кількості відвідувачів, дозволених ліцензією. Зверніться до sale@rocket.chat для отримання нової ліцензії.", "error-max-number-simultaneous-chats-reached": "Досягнуто максимальної кількості одночасних чатів на одного представника.", + "Add_monitor": "Додати монітор", "Available_departments": "Доступні відділи", + "Business_Hour": "Час роботи", + "Business_Hour_Removed": "Час роботи вилучений", "Canned Responses": "Зафіксовані відповіді", "Canned_Response_Removed": "Зафіксована відповідь вилучена", "Canned_Responses_Enable": "Увімкнути зафіксовані відповіді", "Closed_automatically": "Закрито системою автоматично ", "Default_value": "Значення за замовчуванням", + "Edit_Business_Hour": "Редагування час роботи", "Edit_Tag": "Редагувати тег", "Edit_Unit": "Редагувати блок", "Edit_Priority": "Редагувати пріоритет", @@ -16,6 +22,14 @@ "Invalid Canned Response": "Недійсна зафіксована відповідь", "Invalid_Department": "Недійсний відділ", "LDAP_Default_Role_To_User": "Роль користувача за замовчуванням", + "Livechat_Monitors": "Монітори", + "Max_number_of_chats_per_agent": "Макс. кількість одночасних чатів", + "Max_number_of_chats_per_agent_description": "Макс. кількість одночасних чатів, які агенти можуть відвідувати", + "Me": "Я", + "Message_auditing": "Аудит повідомлень", + "Message_auditing_log": "Журнал аудиту повідомлень", + "Monitor_removed": "Монітор видалено", + "Monitors": "Монітори", "New_Tag": "Новий тег", "New_Unit": "Новий блок", "Others": "Інші", diff --git a/ee/i18n/zh-TW.i18n.json b/ee/i18n/zh-TW.i18n.json index ac5a203fba9d..5e0dac76a146 100644 --- a/ee/i18n/zh-TW.i18n.json +++ b/ee/i18n/zh-TW.i18n.json @@ -7,10 +7,14 @@ "error-max-number-simultaneous-chats-reached": "已達到每個代理的最大同時聊天數。", "Add_monitor": "新增監控", "Available_departments": "可用的部門", + "Business_Hour": "營業時間", + "Business_Hour_Removed": "營業時間已移除", "Canned Responses": "罐頭訊息", "Canned_Response_Removed": "罐頭訊息已刪除", "Canned_Responses_Enable": "啟用罐頭訊息", "Closed_automatically": "系統自動關閉", + "Default_value": "預設值", + "Edit_Business_Hour": "編輯營業時間", "Edit_Tag": "編輯標籤", "Edit_Unit": "編輯單位", "Edit_Priority": "編輯優先權", @@ -22,6 +26,7 @@ "Failed_to_add_monitor": "新增監控失敗", "Invalid Canned Response": "無效的罐頭訊息", "Invalid_Department": "無效的部門", + "LDAP_Advanced_Sync": "進階同步", "LDAP_Default_Role_To_User": "給使用者的預設角色", "LDAP_Default_Role_To_User_Description": "如果使用者具有某些未對應的 LDAP 身份,則將套用於使用者的預設 RC 身份。", "LDAP_Enable_LDAP_Roles_To_RC_Roles": "啟用從 LDAP 到 Rocket.Chat 的對應身份", @@ -29,11 +34,22 @@ "LDAP_Query_To_Get_User_Groups_Description": "LDAP 查詢以取得使用者所屬的 LDAP 群組。", "LDAP_Roles_To_Rocket_Chat_Roles": "從 LDAP 到 Rocket.Chat 的對應身份。", "LDAP_Roles_To_Rocket_Chat_Roles_Description": "對象格式的對應身份,其中對象鍵必須是 LDAP 身份,並且對象值必須是 RC 身份群組。例如:{ 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "同步使用者活動狀態", + "LDAP_Sync_User_Active_State_Description": "根據 LDAP 狀態確定應在 Rocket.Chat 上啟用還是停用使用者。 “ pwdAccountLockedTime”屬性將用於確定使用者是否被停用。", + "LDAP_Sync_User_Active_State_Nothing": "不做任何事", + "LDAP_Sync_User_Active_State_Disable": "停用使用者", + "LDAP_Sync_User_Active_State_Both": "啟用和停用使用者", "LDAP_Validate_Roles_For_Each_Login": "驗證每個登入名的對應", "LDAP_Validate_Roles_For_Each_Login_Description": "如果每次登入都要進行驗證(請謹慎使用此設定,因為它將覆寫每次登入中的使用者身份,否則僅在建立使用者時進行驗證)。", + "List_of_departments_to_apply_this_business_hour": "申請該營業時間的部門清單", "List_of_departments_for_forward": "允許轉送的部門列表(可選)", "List_of_departments_for_forward_description": "允許設定可以接收從此部門聊天記錄部門的受限列表", "Livechat_abandoned_rooms_closed_custom_message": "當訪客不動作時自動關閉房間的自訂訊息", + "Livechat_business_hour_type": "營業時間類型(單個或多個)", + "Livechat_custom_fields_options_placeholder": "以逗號分隔的列表,用於選擇預先設定的值。元素之間的空格不被接受。", + "Livechat_custom_fields_public_description": "公共自訂欄位將顯示在外部應用程式中,例如 Livechat 等。", + "Livechat_last_chatted_agent_routing": "首選最終代理", + "Livechat_last_chatted_agent_routing_Description": "如果聊天開始時座席可用,則首選代理設置會將聊天分配給先前與同一訪客進行過交互的座席。", "Livechat_Monitors": "監控", "Livechat_monitors": "即時聊天監控", "Max_number_of_chats_per_agent": "最大同時聊天數", @@ -43,6 +59,7 @@ "Message_auditing_log": "訊息稽核日誌", "Monitor_removed": "監控已移除", "Monitors": "監控", + "New_Business_Hour": "新營業時間", "New_Canned_Response": "新的罐頭訊息", "New_chat_priority": "優先權已更改:__user__將優先權更改為__priority__", "New_Tag": "新的標籤", @@ -53,6 +70,7 @@ "Number_of_most_recent_chats_estimate_wait_time": "最近聊天的次數以計算預估的等待時間", "Number_of_most_recent_chats_estimate_wait_time_description": "此數字定義將用於計算隊列等待時間的最後服務房間數。", "Others": "其他", + "Open_Days": "開放日", "Please_select_visibility": "請選擇可視度", "Priorities": "優先", "Priority": "優先權", diff --git a/ee/i18n/zh.i18n.json b/ee/i18n/zh.i18n.json index 6f31cf5a2e62..ad66cbabc0fd 100644 --- a/ee/i18n/zh.i18n.json +++ b/ee/i18n/zh.i18n.json @@ -1 +1,54 @@ -{ } \ No newline at end of file +{ + "error-canned-response-not-found": "未找到罐装回复", + "error-forwarding-department-target-not-allowed": "未授权重定向目标的权限", + "error-guests-cant-have-other-roles": "来宾用户无法拥有其他角色", + "error-invalid-priority": "无效的优先级", + "error-max-guests-number-reached": "您的来宾用户数已经达到当前许可证的最大值。请联系 sale@rocket.chat 以获取一个新的许可证。", + "Add_monitor": "新增监视器", + "Available_departments": "可用的目标", + "Business_Hour": "营业时间", + "Business_Hour_Removed": "已移除营业时间", + "Canned Responses": "罐装回复", + "Canned_Response_Removed": "已移除罐装回复", + "Canned_Responses_Enable": "启用罐装回复", + "Default_value": "默认值", + "Edit_Business_Hour": "编辑营业时间", + "Edit_Tag": "编辑标签", + "Edit_Priority": "编辑优先级", + "Enterprise_License": "企业许可证", + "Enterprise_License_Description": "如果您的工作区已经注册,且您的许可证由Rock.Chat Cloud提供,那么您无需在这里手动更新许可证。", + "Failed_to_add_monitor": "添加监视器失败", + "Invalid Canned Response": "无效的罐装回复", + "LDAP_Advanced_Sync": "高级同步", + "LDAP_Default_Role_To_User": "用户默认角色", + "LDAP_Default_Role_To_User_Description": "如果用户拥有未映射的 LDAP 角色,则用户将会应用默认的 RC 角色。", + "LDAP_Enable_LDAP_Roles_To_RC_Roles": "启用由 LDAP 到 Rocket.Chat 的角色映射", + "LDAP_Query_To_Get_User_Groups": "LDAP 查询以获得用户组", + "LDAP_Query_To_Get_User_Groups_Description": "LDAP 查询以获得用户所属的LDAP用户组", + "LDAP_Roles_To_Rocket_Chat_Roles": "由 LDAP 到 Rocket.Chat 的角色映射。", + "LDAP_Roles_To_Rocket_Chat_Roles_Description": "在角色映射对象中,其键必须为LDAP角色,其值必须为以RC角色为值的数组。例:{ 'ldapRole': ['rcRole', 'anotherRCRole'] }", + "LDAP_Sync_User_Active_State": "同步用户激活状态", + "LDAP_Sync_User_Active_State_Description": "根据LDAP状态确定用户在Rocket.Chat应该启用还是禁用。其中`pwdAccountLockedTime`属性将会被用于确认用户是否被禁用。", + "LDAP_Sync_User_Active_State_Nothing": "什么也不做", + "LDAP_Sync_User_Active_State_Disable": "禁用用户", + "LDAP_Sync_User_Active_State_Both": "启用和禁用用户", + "LDAP_Validate_Roles_For_Each_Login": "验证每次登录的角色映射关系", + "LDAP_Validate_Roles_For_Each_Login_Description": "如果每次登录都需要验证(请小心使用这个设置,它将会在每次登录时覆盖用户的角色,如果不使用这个选项,则只会在创建用户时进行验证)。", + "Livechat_Monitors": "监视器", + "Monitor_removed": "监视器已移除", + "Monitors": "监视器", + "New_Canned_Response": "新的罐装回复", + "No_Canned_Responses": "无罐装回复", + "Open_Days": "开放日", + "Priorities": "优先级", + "Priority": "优先级", + "Priority_removed": "优先级已移除", + "Role_Mapping": "角色映射", + "Shortcut": "快捷方式", + "Tag_removed": "标签已移除", + "Use_this_response": "使用这个回复", + "view-canned-responses": "查看罐装回复", + "Waiting_queue": "等待队列", + "Waiting_queue_message": "等待消息队列", + "Without_priority": "没有优先级" +} \ No newline at end of file diff --git a/ee/server/index.js b/ee/server/index.js index 0658aa609a40..b7aa74f4c07c 100644 --- a/ee/server/index.js +++ b/ee/server/index.js @@ -6,3 +6,4 @@ import '../app/canned-responses/server/index'; import '../app/engagement-dashboard/server/index'; import '../app/ldap-enterprise/server/index'; import '../app/livechat-enterprise/server/index'; +import '../app/settings/server/index'; diff --git a/imports/personal-access-tokens/client/index.js b/imports/personal-access-tokens/client/index.js deleted file mode 100644 index 621ead8218b0..000000000000 --- a/imports/personal-access-tokens/client/index.js +++ /dev/null @@ -1 +0,0 @@ -import './personalAccessTokens'; diff --git a/imports/personal-access-tokens/client/personalAccessTokens.html b/imports/personal-access-tokens/client/personalAccessTokens.html deleted file mode 100644 index d8a0c164fc76..000000000000 --- a/imports/personal-access-tokens/client/personalAccessTokens.html +++ /dev/null @@ -1,71 +0,0 @@ - diff --git a/imports/personal-access-tokens/client/personalAccessTokens.js b/imports/personal-access-tokens/client/personalAccessTokens.js deleted file mode 100644 index 1e4403b6fe68..000000000000 --- a/imports/personal-access-tokens/client/personalAccessTokens.js +++ /dev/null @@ -1,123 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { ReactiveVar } from 'meteor/reactive-var'; -import { Tracker } from 'meteor/tracker'; -import { Template } from 'meteor/templating'; -import toastr from 'toastr'; -import moment from 'moment'; - -import { t } from '../../../app/utils'; -import { modal, SideNav } from '../../../app/ui-utils'; -import { hasAllPermission } from '../../../app/authorization'; -import './personalAccessTokens.html'; -import { APIClient, handleError } from '../../../app/utils/client'; - -const loadTokens = async (instance) => { - const { tokens } = await APIClient.v1.get('users.getPersonalAccessTokens'); - instance.personalAccessTokens.set(tokens); -}; - -Template.accountTokens.helpers({ - isAllowed() { - return hasAllPermission(['create-personal-access-tokens']); - }, - tokens() { - return Template.instance().personalAccessTokens.get(); - }, - dateFormated(date) { - return moment(date).format('L LT'); - }, - twoFactor(bypassTwoFactor) { - return bypassTwoFactor ? t('Ignore') : t('Require'); - }, -}); - -const showSuccessModal = (token) => { - modal.open({ - title: t('API_Personal_Access_Token_Generated'), - text: t('API_Personal_Access_Token_Generated_Text_Token_s_UserId_s', { token, userId: Meteor.userId() }), - type: 'success', - confirmButtonColor: '#DD6B55', - confirmButtonText: 'Ok', - closeOnConfirm: true, - html: true, - }, () => { - }); -}; - -Template.accountTokens.events({ - 'submit #form-tokens'(e, instance) { - e.preventDefault(); - const tokenName = e.currentTarget.elements.tokenName.value.trim(); - if (tokenName === '') { - return toastr.error(t('Please_fill_a_token_name')); - } - const bypassTwoFactor = $('#bypassTwoFactor').val() === 'true'; - Meteor.call('personalAccessTokens:generateToken', { tokenName, bypassTwoFactor }, (error, token) => { - if (error) { - return handleError(error); - } - showSuccessModal(token); - loadTokens(instance); - instance.find('#tokenName').value = ''; - }); - }, - 'click .remove-personal-access-token'(e, instance) { - modal.open({ - title: t('Are_you_sure'), - text: t('API_Personal_Access_Tokens_Remove_Modal'), - type: 'warning', - showCancelButton: true, - confirmButtonColor: '#DD6B55', - confirmButtonText: t('Yes'), - cancelButtonText: t('Cancel'), - closeOnConfirm: true, - html: false, - }, () => { - Meteor.call('personalAccessTokens:removeToken', { - tokenName: this.name, - }, (error) => { - if (error) { - return handleError(error); - } - loadTokens(instance); - toastr.success(t('Removed')); - }); - }); - }, - 'click .regenerate-personal-access-token'(e, instance) { - modal.open({ - title: t('Are_you_sure'), - text: t('API_Personal_Access_Tokens_Regenerate_Modal'), - type: 'warning', - showCancelButton: true, - confirmButtonColor: '#DD6B55', - confirmButtonText: t('API_Personal_Access_Tokens_Regenerate_It'), - cancelButtonText: t('Cancel'), - closeOnConfirm: true, - html: false, - }, () => { - Meteor.call('personalAccessTokens:regenerateToken', { - tokenName: this.name, - }, (error, token) => { - if (error) { - return handleError(error); - } - loadTokens(instance); - showSuccessModal(token); - }); - }); - }, -}); - -Template.accountTokens.onCreated(function() { - this.personalAccessTokens = new ReactiveVar([]); - - loadTokens(this); -}); - -Template.accountTokens.onRendered(function() { - Tracker.afterFlush(function() { - SideNav.setFlex('accountFlex'); - SideNav.openFlex(); - }); -}); diff --git a/imports/startup/client/index.js b/imports/startup/client/index.js index 90110cf076e2..b246d95d0151 100644 --- a/imports/startup/client/index.js +++ b/imports/startup/client/index.js @@ -1,3 +1,2 @@ import '../../message-read-receipt/client'; -import '../../personal-access-tokens/client'; import './listenActiveUsers'; diff --git a/package-lock.json b/package-lock.json index 3ea0a335600d..2d4f96ad0702 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "Rocket.Chat", - "version": "3.4.2", + "version": "3.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2707,9 +2707,9 @@ } }, "@rocket.chat/apps-engine": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.15.0.tgz", - "integrity": "sha512-gwsHa/zTYMmoSG3PP3sZfmVRDRBmIDacOAdCv1FsgJog89ZBCICeoab3VyYAdOMliV5XoygygduYFtc6rinFHQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.16.0.tgz", + "integrity": "sha512-hUqctTnf2g4aD3zBC3ou9nsLdKvM88m4yz8hfon1xaMEu0KScByiVESOSH0AmzfEDnkUw9DECxhURA9gsrL2KQ==", "requires": { "adm-zip": "^0.4.9", "cryptiles": "^4.1.3", @@ -2733,9 +2733,9 @@ } }, "@rocket.chat/css-in-js": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/css-in-js/-/css-in-js-0.10.0.tgz", - "integrity": "sha512-Zo/18kmiRtuGGzFtCYJz1DGs1+j6MBTKWM/n6+bmgw3ubCuSsG1t12KtJl87BBwVnJwC7W+oxqesM8llUF5Odw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/css-in-js/-/css-in-js-0.13.1.tgz", + "integrity": "sha512-uNgsYE3ZV4Z+FGBsvnxDg763F5NdaUNnAxG58j3c304fY8j+camvly99WtR3onIqOGCi/ixhyYPbkFYF/3rvKw==", "requires": { "@emotion/hash": "^0.8.0", "@emotion/stylis": "^0.8.5" @@ -2751,25 +2751,29 @@ } }, "@rocket.chat/fuselage": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage/-/fuselage-0.10.0.tgz", - "integrity": "sha512-P2LO5g6pQvUfE1Or1AjgFZWV45v+6htGejwRovPtZRbRAngHT9dJcTfDfykjncCEptZi6xBvEh+pkCgcZ1fCng==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage/-/fuselage-0.13.2.tgz", + "integrity": "sha512-BGXYBEsjYGWSx8qx+6Ecr/dZZXEOA8AKkshyEcjP16Sd8h9Ux2Hivm+MIxNHPZv6+6fuZToq5K2megraCFrHcA==", "requires": { - "@rocket.chat/css-in-js": "^0.10.0", - "@rocket.chat/fuselage-tokens": "^0.10.0", + "@rocket.chat/css-in-js": "^0.13.1", + "@rocket.chat/fuselage-tokens": "^0.13.1", "invariant": "^2.2.4", "react-keyed-flatten-children": "^1.2.0" } }, "@rocket.chat/fuselage-hooks": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-hooks/-/fuselage-hooks-0.10.0.tgz", - "integrity": "sha512-oU3MgNakM32yqwXVS7lXnOvYjwNtkOpext1NMsAsirjfvhFz+CwdFEqLgn6uGVohoiR3KvV4xJSN/ZaF5WhRCQ==" + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-hooks/-/fuselage-hooks-0.13.2.tgz", + "integrity": "sha512-vjPgbFuJOmIao8VDuWstDiT+/Z+fmPcoDWYcwRUWeAlSyb47bojwbihYn9AJDFMRgo8Hq3yFz3OigvKeqq1oSA==", + "requires": { + "@rocket.chat/fuselage-tokens": "^0.13.1", + "use-subscription": "^1.4.1" + } }, "@rocket.chat/fuselage-polyfills": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-polyfills/-/fuselage-polyfills-0.10.0.tgz", - "integrity": "sha512-WmWLWXed4vKySWtvDr9umFBcZ7tk0MWL7gFGsDV0tSuQpBjRGW3gfOBkGnvay0DG+UzJbw9pLUWXAbArBNDCNw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-polyfills/-/fuselage-polyfills-0.13.1.tgz", + "integrity": "sha512-wWzQtM3oTRIfo5npIlPuHAYrBvPHepnPLZirWiEZT1uawvJuzs5tVnzAfi9umsGisucjmxXo6VXtjSJzlCgK2Q==", "requires": { "@juggle/resize-observer": "^3.1.2", "clipboard-polyfill": "^2.8.6", @@ -2777,22 +2781,22 @@ } }, "@rocket.chat/fuselage-tokens": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-tokens/-/fuselage-tokens-0.10.0.tgz", - "integrity": "sha512-q7LHbeGHqOt+6g05FNAPkR8hEknxHrhvIp4K4DlLWaPrLCySdPp1lmXZuSO+AoGl69Y/e8BdWmK46K2PAhzwGw==" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-tokens/-/fuselage-tokens-0.13.1.tgz", + "integrity": "sha512-sPV3bWMNnJ44iZ1GJL/zVm/keCAEtUkSUqfrvgFS64OX9s9ChWPVDT9+u+VI1cbSMToThCC6ZrRSp9Ve+ATYhw==" }, "@rocket.chat/fuselage-ui-kit": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-ui-kit/-/fuselage-ui-kit-0.10.0.tgz", - "integrity": "sha512-2wrJjcKUN0fOPUhllMA/+nJkJLlz7GZ5NI+eG2snUjuaEyi8LUWGqdd7Xqx4hZOxm4wG24hFJaxc4WQb4kCO2Q==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage-ui-kit/-/fuselage-ui-kit-0.13.2.tgz", + "integrity": "sha512-wQZyne+9Qs/hYK9zn+wdHSI7cKTEpzXNwaKVpn3wJknOoeWQ/eGa5F0zAObUWryTuY+okYyKFcbV3gLYGTXUBQ==", "requires": { - "@rocket.chat/ui-kit": "^0.10.0" + "@rocket.chat/ui-kit": "^0.13.1" } }, "@rocket.chat/icons": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/icons/-/icons-0.10.0.tgz", - "integrity": "sha512-gtXIIQf8pCLVLcUtd7cbt/OukM9XlnmK9+du4utc5LIvuNHJaaekSFv9Bg3URy41P/8Ss9dc6FmDnlPna4F19g==" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/icons/-/icons-0.13.1.tgz", + "integrity": "sha512-tINZjMjUGxWkV+hfeZra7Jso4iDFSz3kq4u40N/auzdrpbfF3vC77f0NlznSymFIhaS/IKGbtQEh8TYEcMQOEg==" }, "@rocket.chat/livechat": { "version": "1.6.0", @@ -2850,6 +2854,14 @@ } } }, + "@rocket.chat/mp3-encoder": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/mp3-encoder/-/mp3-encoder-0.13.1.tgz", + "integrity": "sha512-qoGDZiMyWNEF/aRT9Rk5P1WrvuxkMhSfUz4vOTC/Sj+qZstDZkZBCrSTw6+hRdpmraMiIahKWtQ8dSqJpRloAA==", + "requires": { + "lamejs": "git+https://github.com/zhuker/lamejs.git" + } + }, "@rocket.chat/sdk": { "version": "1.0.0-alpha.41", "resolved": "https://registry.npmjs.org/@rocket.chat/sdk/-/sdk-1.0.0-alpha.41.tgz", @@ -2893,9 +2905,9 @@ } }, "@rocket.chat/ui-kit": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/ui-kit/-/ui-kit-0.10.0.tgz", - "integrity": "sha512-zCMDsxdmUvKD9zzyskiV8kThIcsAaXvZT1LzFk4yLq2Wh5meTJ+TClgt9Zn3pBdO/2mwdjBueiGc+k+vqNIqRg==" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/ui-kit/-/ui-kit-0.13.1.tgz", + "integrity": "sha512-VP2BvHUA1tmIjjS46UrItoIk78BdV5kLnrFNMzf3v8P5uDQvpkhWBOKWQus8H/lL3wO4ATfgEMuua6JG4aA+Sw==" }, "@samverschueren/stream-to-observable": { "version": "0.3.0", @@ -9444,13 +9456,6 @@ "integrity": "sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==", "requires": { "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" - } } }, "boxen": { @@ -17402,6 +17407,11 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -19420,6 +19430,13 @@ "integrity": "sha512-OMPb86bpVbnKN/2VJw1Ggs1Hw/FNGwEL1QYiNIEHaB5FSLybJ4QD7My5Hm9yDhgpRrRnnOgu0oKeuuABzASeBw==", "dev": true }, + "lamejs": { + "version": "git+https://github.com/zhuker/lamejs.git#564612b5b57336238a5920ba4c301b49f7cb2bab", + "from": "git+https://github.com/zhuker/lamejs.git", + "requires": { + "use-strict": "1.0.1" + } + }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -30673,6 +30690,11 @@ "tslib": "^1.9.3" } }, + "use-strict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/use-strict/-/use-strict-1.0.1.tgz", + "integrity": "sha1-C7gNlPSaSgUZK4Sox9NOlfGn46A=" + }, "use-subscription": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.4.1.tgz", diff --git a/package.json b/package.json index 8809ba729f43..b31d87d2b166 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "3.4.2", + "version": "3.5.1", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" @@ -129,14 +129,15 @@ "@nivo/heatmap": "^0.61.0", "@nivo/line": "^0.61.1", "@nivo/pie": "^0.61.1", - "@rocket.chat/apps-engine": "1.15.0", - "@rocket.chat/css-in-js": "^0.10.0", - "@rocket.chat/fuselage": "^0.10.0", - "@rocket.chat/fuselage-hooks": "^0.10.0", - "@rocket.chat/fuselage-polyfills": "^0.10.0", - "@rocket.chat/fuselage-ui-kit": "^0.10.0", - "@rocket.chat/icons": "^0.10.0", - "@rocket.chat/ui-kit": "^0.10.0", + "@rocket.chat/apps-engine": "1.16.0", + "@rocket.chat/css-in-js": "^0.13.1", + "@rocket.chat/fuselage": "^0.13.2", + "@rocket.chat/fuselage-hooks": "^0.13.2", + "@rocket.chat/fuselage-polyfills": "^0.13.1", + "@rocket.chat/fuselage-ui-kit": "^0.13.2", + "@rocket.chat/icons": "^0.13.1", + "@rocket.chat/mp3-encoder": "^0.13.1", + "@rocket.chat/ui-kit": "^0.13.1", "@slack/client": "^4.8.0", "@types/fibers": "^3.1.0", "@types/underscore.string": "0.0.38", diff --git a/packages/rocketchat-i18n/i18n/af.i18n.json b/packages/rocketchat-i18n/i18n/af.i18n.json index b08c5e2f75e6..f59329e94a18 100644 --- a/packages/rocketchat-i18n/i18n/af.i18n.json +++ b/packages/rocketchat-i18n/i18n/af.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Jy moet gebruik vir die intekeningskripsie.
Jy mag [name], [fname], [lname] vir die volle naam, voornaam of van die gebruiker gebruik.
Jy mag [e-pos] gebruik vir die gebruiker se e-pos.", "Mailing": "Mailing", "Make_Admin": "Maak Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Maak seker dat jy 'n kopie van jou kodes het: __codes__ As jy toegang tot jou verifikasieprogram verloor, kan jy een van hierdie kodes gebruik om aan te meld.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Maak seker dat jy 'n kopie van jou kodes het:", + "Make_sure_you_have_a_copy_of_your_codes_2": "As jy toegang tot jou verifikasieprogram verloor, kan jy een van hierdie kodes gebruik om aan te meld.", "manage-apps": "Bestuur programme", "manage-assets": "Bestuur bates", "manage-assets_description": "Toestemming om die bedienerbates te bestuur", @@ -1901,6 +1902,7 @@ "Office_Hours": "Kantoor ure", "Office_hours_enabled": "Kantoorure geaktiveer", "Office_hours_updated": "Kantoorure is opgedateer", + "RetentionPolicy_ExcludePinned": "Sluit uitgespelde boodskappe uit", "Offline": "op die regte pad", "Offline_DM_Email": "Direkte boodskap E-pos Vak", "Offline_Email_Subject_Description": "U mag die volgende plekhouers gebruik:
  • [Site_Name], [Site_URL], [Gebruiker] en [Kamer] vir die Aansoek Naam, URL, Gebruikersnaam en Kamernaam onderskeidelik.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Van toepassing op kanale", "RetentionPolicy_AppliesToGroups": "Van toepassing op privaat groepe", "RetentionPolicy_AppliesToDMs": "Van toepassing op direkte boodskappe", - "RetentionPolicy_ExcludePinned": "Sluit uitgespelde boodskappe uit", "RetentionPolicy_FilesOnly": "Net verwyder lêers", "RetentionPolicy_FilesOnly_Description": "Slegs lêers sal uitgevee word, die boodskappe self sal in plek bly.", "RetentionPolicy_MaxAge": "Maksimum boodskap ouderdom", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Gebruiker data veld kaart", "SAML_Custom_Immutable_Property_Username": "Gebruikersnaam", "SAML_Custom_Public_Cert": "Publieke Sertifisering", + "SAML_Section_1_User_Interface": "Gebruikerskoppelvlak", "Saturday": "Saterdag", "Save": "Save", "save-others-livechat-room-info": "Stoor ander Livechat-kamerinligting", @@ -2231,7 +2233,7 @@ "Saved": "gered", "Saving": "spaar", "Scan_QR_code": "Gebruik 'n verifikasieprogram soos Google Authenticator, Authy of Duo, scan die QR-kode. Dit sal 'n 6-syfer kode vertoon wat u hieronder moet invoer.", - "Scan_QR_code_alternative_s": "As jy nie die QR-kode kan skandeer nie, kan jy die kode handmatig invoer in plaas daarvan: __code__", + "Scan_QR_code_alternative_s": "As jy nie die QR-kode kan skandeer nie, kan jy die kode handmatig invoer in plaas daarvan:", "Scope": "omvang", "Screen_Share": "Skerm deel", "Script_Enabled": "Skrip geaktiveer", diff --git a/packages/rocketchat-i18n/i18n/ar.i18n.json b/packages/rocketchat-i18n/i18n/ar.i18n.json index 70ac0aab23ba..f514b70ecff4 100644 --- a/packages/rocketchat-i18n/i18n/ar.i18n.json +++ b/packages/rocketchat-i18n/i18n/ar.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "يجب عليك استخدام[unsubscribe] للارتباط إلغاء الاشتراك.
يمكنك استخدام [name]، [fname]، [lname] عن الاسم الكامل للمستخدم، الاسم الأول أو اسم العائلة، على التوالي.
يمكنك استخدام [email] للبريد الإلكتروني الخاص بالمستخدم.", "Mailing": "المراسلات", "Make_Admin": "جعل مدير", - "Make_sure_you_have_a_copy_of_your_codes": "تأكد من أن لديك نسخة من الرموز الخاصة بك: __codes__ إذا فقدت الوصول إلى التطبيق مصادقة الخاص بك، يمكنك استخدام أحد هذه الرموز لتسجيل الدخول.", + "Make_sure_you_have_a_copy_of_your_codes_1": "تأكد من أن لديك نسخة من الرموز الخاصة بك:", + "Make_sure_you_have_a_copy_of_your_codes_2": "إذا فقدت الوصول إلى التطبيق مصادقة الخاص بك، يمكنك استخدام أحد هذه الرموز لتسجيل الدخول.", "manage-apps": "إدارة التطبيقات", "manage-assets": "إدارة الأصول", "manage-assets_description": "إذن لإدارة أصول الملقم", @@ -1901,6 +1902,7 @@ "Office_Hours": "ساعات دوام المكتب", "Office_hours_enabled": "تم تفعيل ساعات الدوام في المكتب", "Office_hours_updated": "تم تحديث ساعات الدوام في المكتب", + "RetentionPolicy_ExcludePinned": "استبعاد الرسائل المثبتة", "Offline": "غير متصل", "Offline_DM_Email": "لقد تم بعث برسالة مباشرة من قبل __user__", "Offline_Email_Subject_Description": "يمكنك استخدام العناصر النائبة التالية:
  • [Site_Name] و [Site_URL] و [وسر] و [روم] لاسم التطبيق وعنوان ورل واسم المستخدم و رومنام على التوالي.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "ينطبق على القنوات", "RetentionPolicy_AppliesToGroups": "ينطبق على المجموعات الخاصة", "RetentionPolicy_AppliesToDMs": "ينطبق على الرسائل المباشرة", - "RetentionPolicy_ExcludePinned": "استبعاد الرسائل المثبتة", "RetentionPolicy_FilesOnly": "فقط حذف الملفات", "RetentionPolicy_FilesOnly_Description": "سيتم حذف الملفات فقط ، وستظل الرسائل نفسها في مكانها.", "RetentionPolicy_MaxAge": "الحد الأقصى لعمر الرسالة", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "العضو بيانات خريطة الميدان", "SAML_Custom_Immutable_Property_Username": "اسم المستخدم", "SAML_Custom_Public_Cert": "محتويات الشهادة العامة", + "SAML_Section_1_User_Interface": "واجهة المستخدم", "Saturday": "السبت", "Save": "حفظ", "save-others-livechat-room-info": "حفظ معلومات غرف الدردشة المباشرة الأخرى", @@ -2231,7 +2233,7 @@ "Saved": "تم الحفظ", "Saving": "جاري الحفظ", "Scan_QR_code": "باستخدام تطبيق المصادقة مثل غوغل أوثنتيكاتور، أوثي أو ديو، مسح رمز الاستجابة السريعة. فإنه سيتم عرض رمز 6 أرقام التي تحتاج إلى إدخال أدناه.", - "Scan_QR_code_alternative_s": "إذا لم تتمكن من مسح رمز الاستجابة السريعة، يمكنك إدخال رمز يدويا بدلا من ذلك: __code__", + "Scan_QR_code_alternative_s": "إذا لم تتمكن من مسح رمز الاستجابة السريعة، يمكنك إدخال رمز يدويا بدلا من ذلك:", "Scope": "نطاق", "Screen_Share": "مشاركة الشاشة", "Script_Enabled": "السيناريو ممكن", diff --git a/packages/rocketchat-i18n/i18n/az.i18n.json b/packages/rocketchat-i18n/i18n/az.i18n.json index cffa996bf8a5..c98726ce9832 100644 --- a/packages/rocketchat-i18n/i18n/az.i18n.json +++ b/packages/rocketchat-i18n/i18n/az.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Siz abunə bağlantısı bağlantısı üçün [abunəlikdən] istifadə etməlisiniz.
Siz istifadəçinin tam adı, soyadı və soyadı üçün [ad], [fname], [lname] istifadə edə bilərsiniz.
İstifadəçinin e-poçtu üçün [email] istifadə edə bilərsiniz.", "Mailing": "Poçt", "Make_Admin": "Admin et", - "Make_sure_you_have_a_copy_of_your_codes": "Kodlarınızın bir kopyası olduğunuzdan əmin olun: __codes__ Əgər təsdiqçi tətbiqinizə girişini itirirsinizsə, daxil olmaq üçün bu kodlardan birini istifadə edə bilərsiniz.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Kodlarınızın bir kopyası olduğunuzdan əmin olun:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Əgər təsdiqçi tətbiqinizə girişini itirirsinizsə, daxil olmaq üçün bu kodlardan birini istifadə edə bilərsiniz.", "manage-apps": "Proqramlar idarə et", "manage-assets": "Aktivləri idarə et", "manage-assets_description": "Server aktivlərini idarə etmək üçün icazə", @@ -1901,6 +1902,7 @@ "Office_Hours": "İş saatları", "Office_hours_enabled": "Ofis saatları aktivləşdi", "Office_hours_updated": "Ofis saatları yeniləndi", + "RetentionPolicy_ExcludePinned": "Səslənən mesajları həddindən kənarlaşdırın", "Offline": "Offline", "Offline_DM_Email": "Direkt Mesaj E-poçt Mövzu", "Offline_Email_Subject_Description": "Aşağıdakı yer tutuculardan istifadə edə bilərsiniz:
  • [Site_Name], [Site_URL], [İstifadəçi] və [İstifadəçi adı], URL, İstifadəçi adı və Roomname üçün [Room].
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Kanallara tətbiq edilir", "RetentionPolicy_AppliesToGroups": "Şəxsi qruplara tətbiq edilir", "RetentionPolicy_AppliesToDMs": "Birbaşa mesajlar üçün tətbiq edilir", - "RetentionPolicy_ExcludePinned": "Səslənən mesajları həddindən kənarlaşdırın", "RetentionPolicy_FilesOnly": "Yalnız faylları silin", "RetentionPolicy_FilesOnly_Description": "Yalnız fayllar silinəcək, mesajlar özləri yerində qalacaqlar.", "RetentionPolicy_MaxAge": "Maksimum mesaj yaşı", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "İstifadəçi Məlumatın Sahəsi xəritəsi", "SAML_Custom_Immutable_Property_Username": "İstifadəçi adı", "SAML_Custom_Public_Cert": "İctimai Cert Contents", + "SAML_Section_1_User_Interface": "İstifadəçi interfeysi", "Saturday": "Şənbə", "Save": "Yadda saxla", "save-others-livechat-room-info": "Digərləri Saxla", @@ -2231,7 +2233,7 @@ "Saved": "Saxlanıldı", "Saving": "Saving", "Scan_QR_code": "Google Authenticator, Authy və ya Duo kimi bir identifikator tətbiqindən QR kodu tarayın. Aşağıda daxil etmək üçün lazım olan 6 rəqəmli kod göstərilir.", - "Scan_QR_code_alternative_s": "QR kodunu tarayamıyorsanız, bunun əvəzinə əl ilə daxil ola bilərsiniz: __code__", + "Scan_QR_code_alternative_s": "QR kodunu tarayamıyorsanız, bunun əvəzinə əl ilə daxil ola bilərsiniz:", "Scope": "Sahə", "Screen_Share": "Screen Share", "Script_Enabled": "Script effektivdir", diff --git a/packages/rocketchat-i18n/i18n/bas-CM.i18n.json b/packages/rocketchat-i18n/i18n/bas-CM.i18n.json index 9e26dfeeb6e6..6f31cf5a2e62 100644 --- a/packages/rocketchat-i18n/i18n/bas-CM.i18n.json +++ b/packages/rocketchat-i18n/i18n/bas-CM.i18n.json @@ -1 +1 @@ -{} \ No newline at end of file +{ } \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/be-BY.i18n.json b/packages/rocketchat-i18n/i18n/be-BY.i18n.json index 37f7a7f8ac22..94f9d3f1dffc 100644 --- a/packages/rocketchat-i18n/i18n/be-BY.i18n.json +++ b/packages/rocketchat-i18n/i18n/be-BY.i18n.json @@ -1689,7 +1689,8 @@ "Mailer_body_tags": "Вы павіненвыкарыстоўваць [адпіскі] для адпіскі спасылкі.
вы можаце выкарыстоўваць [імя], [імя_файла], [LNAME] поўнае імя карыстальніка, імя або прозвішча, адпаведна.
Вы можаце выкарыстоўваць [EMAIL] для электроннай пошты карыстальніка.", "Mailing": "паштовы", "Make_Admin": "зрабіць Адміністратар", - "Make_sure_you_have_a_copy_of_your_codes": "Пераканайцеся, што ў вас ёсць копія вашых кодаў: __codes__ Калі вы страціце доступ да вашага аутентификатору дадаткам, вы можаце выкарыстоўваць адзін з гэтых кодаў, каб увайсці ў сістэме.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Пераканайцеся, што ў вас ёсць копія вашых кодаў:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Калі вы страціце доступ да вашага аутентификатору дадаткам, вы можаце выкарыстоўваць адзін з гэтых кодаў, каб увайсці ў сістэме.", "manage-apps": "кіраванне прыкладаннямі", "manage-assets": "кіраванне актывамі", "manage-assets_description": "Дазвол на кіраванне актывамі сервераў", @@ -1914,6 +1915,7 @@ "Office_Hours": "прыёмныя гадзіны", "Office_hours_enabled": "Гадзіны працы офіса Enabled", "Office_hours_updated": "Гадзіны працы абноўленыя", + "RetentionPolicy_ExcludePinned": "Выключыць ўскладалі паведамлення", "Offline": "Offline", "Offline_DM_Email": "Прамое паведамленне E-mail Тэма", "Offline_Email_Subject_Description": "Вы можаце выкарыстоўваць наступныя запаўняльнікі:
  • [site_name], [site_URL], [User] & [Room] для імя прыкладання, URL, імя карыстальніка і Roomname адпаведна
", @@ -1986,7 +1988,7 @@ "Pinned_a_message": "Замацаваныя паведамленне:", "Pinned_Messages": "замацаваныя паведамлення", "PiwikAdditionalTrackers": "Дадатковыя Piwik Сайты", - "PiwikAdditionalTrackers_Description": "Увядзіце addtitional адрасы вэб-сайтаў Piwik і SiteIDs ў наступным фармаце, калі вы wnat адсочваць адны і тыя ж дадзеныя ў розных вэб-сайтах: [{ \"trackerURL\": \"https: //my.piwik.domain2/\", \"siteId\": 42}, { \"trackerURL\": \"HTTPS: //my.piwik.domain3/\", \"siteId\": 15}]", + "PiwikAdditionalTrackers_Description": "Увядзіце addtitional адрасы вэб-сайтаў Piwik і SiteIDs ў наступным фармаце, калі вы want адсочваць адны і тыя ж дадзеныя ў розных вэб-сайтах: [{ \"trackerURL\": \"https: //my.piwik.domain2/\", \"siteId\": 42}, { \"trackerURL\": \"HTTPS: //my.piwik.domain3/\", \"siteId\": 15}]", "PiwikAnalytics_cookieDomain": "усе субдомены", "PiwikAnalytics_cookieDomain_Description": "наведвальнікаў Адсочванне ва ўсіх субдоменов", "PiwikAnalytics_domains": "Схаваць выходныя спасылкі", @@ -2162,7 +2164,6 @@ "RetentionPolicy_AppliesToChannels": "Ставіцца да каналах", "RetentionPolicy_AppliesToGroups": "Ставіцца да прыватных групам", "RetentionPolicy_AppliesToDMs": "Ўжываецца для накіравання паведамленняў", - "RetentionPolicy_ExcludePinned": "Выключыць ўскладалі паведамлення", "RetentionPolicy_FilesOnly": "Толькі выдаляць файлы", "RetentionPolicy_FilesOnly_Description": "Толькі файлы будуць выдаленыя, паведамленні будуць самі застаюцца на месцы.", "RetentionPolicy_MaxAge": "Максімальны ўзрост паведамлення", @@ -2236,6 +2237,7 @@ "SAML_Custom_user_data_fieldmap": "Дадзеныя карыстальніка Карта Поле", "SAML_Custom_Immutable_Property_Username": "імя карыстальніка", "SAML_Custom_Public_Cert": "Грамадскія Змест Cert", + "SAML_Section_1_User_Interface": "інтэрфейс карыстальніка", "Saturday": "субота", "Save": "захаваць", "save-others-livechat-room-info": "Захаваць Іншая Livechat нумар Інфармацыя", @@ -2246,7 +2248,7 @@ "Saved": "захаваны", "Saving": "эканомія", "Scan_QR_code": "Выкарыстанне прыкладання аутентификатора як Google Authenticator, Authy або Duo, сканаваць QR-код. Ён будзе адлюстроўваць 6-значны код, які вам трэба ўвесці ніжэй.", - "Scan_QR_code_alternative_s": "Калі вы не можаце сканаваць QR-код, вы можаце ўвесці код уручную замест: __code__", + "Scan_QR_code_alternative_s": "Калі вы не можаце сканаваць QR-код, вы можаце ўвесці код уручную замест:", "Scope": "Вобласць", "Screen_Share": "Screen Share", "Script_Enabled": "сцэнар Enabled", diff --git a/packages/rocketchat-i18n/i18n/bg.i18n.json b/packages/rocketchat-i18n/i18n/bg.i18n.json index f4ab9445a413..bc2e0a4644b7 100644 --- a/packages/rocketchat-i18n/i18n/bg.i18n.json +++ b/packages/rocketchat-i18n/i18n/bg.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Вие трябвада използвате [unsubscribe] за връзката за отписване.

Можете да използвате [имейл] за имейла на потребителя.", "Mailing": "Пощенски", "Make_Admin": "Направи Админ", - "Make_sure_you_have_a_copy_of_your_codes": "Уверете се, че имате копие на кодовете си: __codes__ Ако загубите достъп до приложението си за удостоверяване, можете да използвате един от тези кодове, за да влезете.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Уверете се, че имате копие на кодовете си:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ако загубите достъп до приложението си за удостоверяване, можете да използвате един от тези кодове, за да влезете.", "manage-apps": "Управление на приложенията", "manage-assets": "Управление на активи", "manage-assets_description": "Разрешение за управление на активите на сървъра", @@ -1901,6 +1902,7 @@ "Office_Hours": "Официални часове", "Office_hours_enabled": "Официалните часове са активирани", "Office_hours_updated": "Работното време е актуализирано", + "RetentionPolicy_ExcludePinned": "Изключете закачените съобщения", "Offline": "Извън линия", "Offline_DM_Email": "Теми за пряко съобщение по имейл", "Offline_Email_Subject_Description": "Можете да използвате следните заместващи символи:
  • [Site_Name], [Site_URL], [User] и [Room] съответно за името, URL адреса,
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Прилага се за канали", "RetentionPolicy_AppliesToGroups": "Отнася се за частни групи", "RetentionPolicy_AppliesToDMs": "Прилага се за директни съобщения", - "RetentionPolicy_ExcludePinned": "Изключете закачените съобщения", "RetentionPolicy_FilesOnly": "Изтривайте само файлове", "RetentionPolicy_FilesOnly_Description": "Само файловете ще бъдат изтрити, самите съобщения ще останат на мястото си.", "RetentionPolicy_MaxAge": "Максимална възраст на съобщенията", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Карта на поле на потребителски данни", "SAML_Custom_Immutable_Property_Username": "Потребителско име", "SAML_Custom_Public_Cert": "Публично съдържание", + "SAML_Section_1_User_Interface": "Потребителски интерфейс", "Saturday": "събота", "Save": "Запази", "save-others-livechat-room-info": "Запазване на други данни за стая в Livechat", @@ -2231,7 +2233,7 @@ "Saved": "Запазено", "Saving": "Запазване", "Scan_QR_code": "С помощта на приложение за удостоверяване, като Google Authenticator, Authy или Duo, сканирайте кода за бърз достъп. Той ще покаже 6-цифрен код, който трябва да въведете по-долу.", - "Scan_QR_code_alternative_s": "Ако не можете да сканирате QR кода, можете вместо това да въведете код ръчно: __code__", + "Scan_QR_code_alternative_s": "Ако не можете да сканирате QR кода, можете вместо това да въведете код ръчно:", "Scope": "Обхват", "Screen_Share": "Сподели екран", "Script_Enabled": "Сценарият е активиран", diff --git a/packages/rocketchat-i18n/i18n/bs.i18n.json b/packages/rocketchat-i18n/i18n/bs.i18n.json index 47f1c478b08f..fb6bdd96e9f1 100644 --- a/packages/rocketchat-i18n/i18n/bs.i18n.json +++ b/packages/rocketchat-i18n/i18n/bs.i18n.json @@ -1674,7 +1674,8 @@ "Mailer_body_tags": "Morate koristiti [unsubscribe] za otkazivanje pretplate.
Možete koristiti [name], [fname], [lname] za korisnikovo ime i prezime, ime i prezime
 Možete koristiti [email] za e-poštu korisnika.", "Mailing": "Slanje", "Make_Admin": "Učini Administratorom", - "Make_sure_you_have_a_copy_of_your_codes": "Provjerite imate li kopiju svojih kodova: __codes__ Ako izgubite pristup aplikaciji autentifikatora, možete se prijaviti za jedan od ovih kodova.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Provjerite imate li kopiju svojih kodova:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ako izgubite pristup aplikaciji autentifikatora, možete se prijaviti za jedan od ovih kodova.", "manage-apps": "Upravljanje aplikacijama", "manage-assets": "Upravljanje sredstvima", "manage-assets_description": "Dozvola za upravljanje imovinom poslužitelja", @@ -1899,6 +1900,7 @@ "Office_Hours": "Uredovni Sati", "Office_hours_enabled": "Uredovni Sati omogućeno", "Office_hours_updated": "Ažurirani sati", + "RetentionPolicy_ExcludePinned": "Izuzmite prikvačene poruke", "Offline": "Offline", "Offline_DM_Email": "__user__ vas je izravno kontaktirao", "Offline_Email_Subject_Description": "Možete upotrijebiti sljedeće oznake mjesta:
  • [Site_Name], [Site_URL], [User] i [Room] za naziv aplikacije, URL, ime i naziv prostorije.
", @@ -2146,7 +2148,6 @@ "RetentionPolicy_AppliesToChannels": "Odnosi se na kanale", "RetentionPolicy_AppliesToGroups": "Odnosi se na privatne grupe", "RetentionPolicy_AppliesToDMs": "Odnosi se na izravne poruke", - "RetentionPolicy_ExcludePinned": "Izuzmite prikvačene poruke", "RetentionPolicy_FilesOnly": "Samo izbrišite datoteke", "RetentionPolicy_FilesOnly_Description": "Samo će se datoteke izbrisati, poruke će ostati na mjestu.", "RetentionPolicy_MaxAge": "Maksimalna dob poruka", @@ -2219,6 +2220,7 @@ "SAML_Custom_user_data_fieldmap": "Mapa korisničkih podataka", "SAML_Custom_Immutable_Property_Username": "Korisničko ime", "SAML_Custom_Public_Cert": "Sadržaj javnog cert", + "SAML_Section_1_User_Interface": "Korisničko sučelje", "Saturday": "Subota", "Save": "Spremi", "save-others-livechat-room-info": "Spremi druge informacije Livechat Room", @@ -2229,7 +2231,7 @@ "Saved": "Spremljeno", "Saving": "Spremanje", "Scan_QR_code": "Pomoću aplikacije autentifikatora kao što je Google Autentifikator, Authy ili Duo, skeniranje QR koda. On će prikazati šesteroznamenkasti kôd koji morate unijeti u nastavku.", - "Scan_QR_code_alternative_s": "Ako ne možete skenirati QR kod, možete ručno unijeti kôd: __code__", + "Scan_QR_code_alternative_s": "Ako ne možete skenirati QR kod, možete ručno unijeti kôd:", "Scope": "Djelokrug", "Screen_Share": "Podijeli Zaslon", "Script_Enabled": "Skripta Omogućena", diff --git a/packages/rocketchat-i18n/i18n/ca.i18n.json b/packages/rocketchat-i18n/i18n/ca.i18n.json index 57ab43f2c2fa..ea52f9379df0 100644 --- a/packages/rocketchat-i18n/i18n/ca.i18n.json +++ b/packages/rocketchat-i18n/i18n/ca.i18n.json @@ -653,7 +653,6 @@ "Closed_by_visitor": "Tancat pel visitant", "Closing_chat": "Tancant xat", "Cloud": "Cloud", - "Cloud_connect_support": "Si encara no heu rebut cap correu electrònic de registre, assegureu-vos que el vostre correu electrònic s’ha actualitzat anteriorment. Si encara teniu problemes, podeu posar-vos en contacte amb l’assistència a", "Cloud_console": "Cloud Console", "Cloud_what_is_it": "Què és això?", "Cloud_what_is_it_description": "Rocket.Chat Cloud Connect us permet connectar el vostre espai de treball Rocket.Chat amb els vostres serveis en el nostre Cloud.", @@ -1844,7 +1843,8 @@ "Mailer_body_tags": "És necessari utilitzar [unsubscribe] per a l'enllaç d'anul·lació de la subscripció.
És possible utilitzar [name], [fname], [lname] per al nom complet de l'usuari, nom o cognom, respectivament.
També [email] per a l'adreça de correu electrònic de l'usuari.", "Mailing": "Enviament", "Make_Admin": "Fes admin", - "Make_sure_you_have_a_copy_of_your_codes": "Assegura't de tenir una còpia dels teus codis: __codes__ Si perds accés a la teva app d'autenticació, pots utilitzar un d'aquests codis per entrar.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Assegura't de tenir una còpia dels teus codis:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Si perds accés a la teva app d'autenticació, pots utilitzar un d'aquests codis per entrar.", "manage-apps": "Gestioneu les aplicacions", "manage-assets": "Gestionar recursos", "manage-assets_description": "Permís per gestionar els recursos del servidor", @@ -2069,6 +2069,7 @@ "Office_Hours": "Horari d'obertura", "Office_hours_enabled": "Horari d'obertura actiu", "Office_hours_updated": "Horari actualitzat", + "RetentionPolicy_ExcludePinned": "Exclou els missatges fixats", "Offline": "Fora de línia", "Offline_DM_Email": "__user__ us ha enviat un missatge directe", "Offline_Email_Subject_Description": "Podeu utilitzar els marcadors següents:
  • [Site_Name], [Lloc_URL], [User] i [Room] per al nom de l'aplicació, l'URL, el nom d'usuari i el nom de la sala respectivament.
", @@ -2316,7 +2317,6 @@ "RetentionPolicy_AppliesToChannels": "S'aplica als canals", "RetentionPolicy_AppliesToGroups": "S'aplica a grups privats", "RetentionPolicy_AppliesToDMs": "S'aplica als missatges directes", - "RetentionPolicy_ExcludePinned": "Exclou els missatges fixats", "RetentionPolicy_FilesOnly": "Només elimineu fitxers", "RetentionPolicy_FilesOnly_Description": "Només es suprimiran els fitxers, els mateixos missatges es mantindran en el lloc.", "RetentionPolicy_MaxAge": "Edat màxima del missatge", @@ -2389,6 +2389,7 @@ "SAML_Custom_user_data_fieldmap": "Mapatge de camps de dades d'usuari", "SAML_Custom_Immutable_Property_Username": "Nom d'usuari", "SAML_Custom_Public_Cert": "Contingut del certificat públic", + "SAML_Section_1_User_Interface": "Interfície d'usuari", "Saturday": "dissabte", "Save": "Desa", "save-others-livechat-room-info": "Guardar info altres xats en viu", @@ -2399,7 +2400,7 @@ "Saved": "Desat", "Saving": "Desant", "Scan_QR_code": "Fent servir una app d'autenticació com Google Authenticator, Authy o Duo, escanneja el codi QR. Et mostrarà un codi de 6 dígits que has d'entrar aquí a sota.", - "Scan_QR_code_alternative_s": "Si no podeu escanejar el codi QR, podeu introduir el codi manualment: __code__", + "Scan_QR_code_alternative_s": "Si no podeu escanejar el codi QR, podeu introduir el codi manualment:", "Scope": "Abast (scope)", "Screen_Share": "Compartir pantalla", "Script_Enabled": "Script actiu", diff --git a/packages/rocketchat-i18n/i18n/cs.i18n.json b/packages/rocketchat-i18n/i18n/cs.i18n.json index 645efc97c699..bb984400bee2 100644 --- a/packages/rocketchat-i18n/i18n/cs.i18n.json +++ b/packages/rocketchat-i18n/i18n/cs.i18n.json @@ -56,6 +56,17 @@ "Accounts_AvatarExternalProviderUrl_Description": "Například: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "Seznam blokovaných domén", "Accounts_BlockedDomainsList_Description": "Čárkami oddělený seznam blokovaných domén", + "Accounts_Verify_Email_For_External_Accounts": "U externích účtů ověřovat email", + "Block_Multiple_Failed_Logins_Enabled": "Povolit shromažďování informací o přihlášení", + "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "Ukládá IP a jméno uživatele všech pokusů o přihlášení do databáze", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "Povolené IP adresy", + "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "Čárkou oddělený seznam IP adres", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "Čas pro odblokování IP (v minutách)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "Čas pro odblokování uživatele (v minutách)", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "Kolik nepodařených pokusů zablokuje IP adresu", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "Kolik nepodařených pokusů zablokuje uživatele", + "Block_Multiple_Failed_Logins_By_Ip": "Blokovat nezdařené pokusy podle IP", + "Block_Multiple_Failed_Logins_By_User": "Blokovat nezdařené pokusy podle uživatele", "Accounts_BlockedUsernameList": "Zakázaná uživatelská jména", "Accounts_BlockedUsernameList_Description": "čárkou oddělený seznam uživatelských jmen (na velikosti písmen nezáleží)", "Accounts_CustomFields_Description": "Validní JSON obsahující klíče polí s nastavením. Například:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n}", @@ -79,6 +90,11 @@ "Accounts_Enrollment_Email_Subject_Default": "Vítejte na stránkách [Site_Name]", "Accounts_Enrollment_Email": "Úvodní E-mail", "Accounts_Enrollment_Email_Description": "Můžete použít:
  • [name] [fname], [lname] pro celé jméno uživatele, křestní nebo příjmení
  • [email] pro e-mail uživatele
  • [Site_Name] a [Site_URL] pro jméno a URL aplikace.
", + "Login_Logs_Enabled": "Ukládat (do konzole) nezdařené pokusy o přihlášení", + "Login_Logs_ClientIp": "Zobrazit v logu nezdařeného pokusu o přihlášení klientskou IP adresu ", + "Login_Logs_ForwardedForIp": "Zobrazit v logu nezdařeného pokusu o přihlášení přesměrovanou IP adresu", + "Login_Logs_Username": "Zobrazit v logu nezdařeného pokusu o přihlášení uživatelské jméno", + "Login_Logs_UserAgent": "Zobrazit v logu nezdařeného pokusu o přihlášení user agent", "Accounts_ForgetUserSessionOnWindowClose": "Zapomenout session uživatele při zavření okna", "Accounts_Iframe_api_method": "Api Metoda", "Accounts_Iframe_api_url": "Api URL", @@ -86,6 +102,7 @@ "Accounts_iframe_url": "URL iframu", "Accounts_LoginExpiration": "Počet dní od expirace pozvánky", "Accounts_ManuallyApproveNewUsers": "Ručně schvalovat nové uživatele", + "Accounts_OAuth_Apple": "Přihlásit přes Apple", "Accounts_OAuth_Custom_Authorize_Path": "Cesta k autorizaci", "Accounts_OAuth_Custom_Avatar_Field": "Pole avataru", "Accounts_OAuth_Custom_Button_Color": "Barva tlačítka", @@ -299,9 +316,11 @@ "Allow_Invalid_SelfSigned_Certs_Description": "Umožňují použít neplatné/self-signed SSL certifikáty pro ověření odkazů a náhledů.", "Allow_switching_departments": "Povolit uživateli změnit oddělení", "Allow_Marketing_Emails": "Povolit marketingové e-maily", + "Allow_Online_Agents_Outside_Business_Hours": "Povolit operátorům být online mimo pracovní dobu", "Allow_Online_Agents_Outside_Office_Hours": "Povolit online operátory mimo pracovní dobu", "Almost_done": "Téměř hotovo", "Alphabetical": "Abecední", + "Also_send_to_channel": "Také odeslat do místnosti", "Always_open_in_new_window": "Vždy otevírat v novém okně", "Analytics": "Analytika", "Analytics_features_enabled": "Povolené funkce", @@ -315,6 +334,7 @@ "Animals_and_Nature": "Zvířata & Příroda", "Announcement": "Oznámení", "API": "API", + "APIs": "API", "API_Add_Personal_Access_Token": "Přidat nový osobní přístupový token", "API_Allow_Infinite_Count": "Povolit získání všeho", "API_Allow_Infinite_Count_Description": "Měla by volání REST API mít povoleno vrátit všechno v jedné odpovědi?", @@ -579,6 +599,9 @@ "bulk-register-user_description": "Povolení vytvářet uživatele hromadně", "Busiest_day": "Nejrušnější den", "Busiest_time": "Nejrušnější čas", + "Business_Hours": "Otevírací doba", + "Business_hours_enabled": "Otevírací doba povolena", + "Business_hours_updated": "Otevírací doba upravena", "busy": "zaneprázdněný", "Busy": "Zaneprázdněný", "busy_female": "zaneprázdněná", @@ -586,8 +609,10 @@ "busy_male": "zaneprázdněný", "Busy_male": "Zaneprázdněný", "by": "od", + "By_author": "Od __author__", "cache_cleared": "Cache vyčistěna", "call-management": "Správa hovorů", + "Caller": "Volající", "Cancel": "Zrušit", "Canceled": "Zrušeno", "Cancel_message_input": "Zrušit", @@ -655,8 +680,10 @@ "Chatpal_Base_URL_Description": "Návod jak spustit lokální instanci naleznete na githubu. Adresa URL musí být absolutní a odkazovat na zdroj chatpal, např. http://localhost:8983/solr/chatpal.", "Chatpal_Batch_Size": "Velikost dávky indexu", "Chatpal_Batch_Size_Description": "Velikost dávky indexových dokumentů (při bootstrapování)", + "Chatpal_channel_not_joined_yet": "Místnost ještě nepřipojena", "Chatpal_create_key": "Vytvořit klíč", "Chatpal_created_key_successfully": "Klíč API byl úspěšně vytvořen", + "Chatpal_Current_Room_Only": "Stejná místnost", "Chatpal_Default_Result_Type": "Výchozí typ výsledku", "Chatpal_Default_Result_Type_Description": "Definuje, který typ výsledku se zobrazí. Vše znamená, že je k dispozici přehled všech typů.", "Chatpal_Email_Address": "Emailová adresa", @@ -670,6 +697,8 @@ "Chatpal_go_to_user": "Odeslat přímou zprávu", "Chatpal_HTTP_Headers": "HTTP Hlavičky", "Chatpal_HTTP_Headers_Description": "Seznam HTTP hlaviček, každá na vlastní řádek. Formát: jméno:hodnota", + "Chatpal_Include_All_Public_Channels": "Zahrnout všechny veřejné místnosti", + "Chatpal_Include_All_Public_Channels_Description": "Hledat ve všech veřejných místnostech i pokud v nich nejste připojeni.", "Chatpal_Main_Language": "Hlavní jazyk", "Chatpal_Main_Language_Description": "Jazyk, který se nejčastěji používá v konverzacích", "Chatpal_Messages": "Zprávy", @@ -730,6 +759,7 @@ "Closed_At": "Uzavřeno", "Closed_by_visitor": "Ukončeno návštěvníkem", "Closing_chat": "Uzavření místnosti", + "Closing_chat_message": "Zpráva uzavření", "Cloud": "Cloud", "Cloud_Register_manually": "Registrovat ručně", "Cloud_click_here": "Po zkopírování textu přejděte do cloudové konzole - [Klikněte zde](__cloudConsoleUrl__)", @@ -737,7 +767,6 @@ "Cloud_register_offline_helper": "Pracovní prostory lze ručně zaregistrovat, pokud je k nim omezen síťový přístup. Zkopírujte níže uvedený text a dokončete proces pomocí naší cloudové konzole.", "Cloud_register_success": "Váš pracovní prostor byl úspěšně zaregistrován!", "Cloud_register_error": "Při zpracování vašeho požadavku došlo k chybě. Prosím zkuste to znovu později.", - "Cloud_connect_support": "Pokud jste ještě neobdrželi registrační e-mail, ujistěte se, že váš e-mail výše je aktuální. Pokud problémy přetrvávají, můžete kontaktovat podporu na adrese", "Cloud_console": "Cloud přehled", "Cloud_Info": "Informace o Cloudu", "Cloud_what_is_it": "Co je to?", @@ -779,11 +808,13 @@ "Connect": "Připojit", "Connection_Closed": "Připojení bylo uzavřeno", "Connection_Reset": "Obnovit připojení", + "Connection_success": "LDAP připojení úspěšné", "Connectivity_Services": "Služby připojení", "Consulting": "Konzultace", "Consumer_Goods": "Spotřební zboží", "Contains_Security_Fixes": "Obsahuje opravy zabezpečení", "Contact": "Kontakt", + "Contact_Chat_History": "Historie kontaktu", "Content": "Obsah", "Continue": "Pokračovat", "Continuous_sound_notifications_for_new_livechat_room": "Trvalé zvukové oznámení pro novou Omnichannel místnost", @@ -1221,6 +1252,7 @@ "Disabled": "Zakázáno", "Disallow_reacting": "Zakázat reakce", "Disallow_reacting_Description": "Zakáže reakce", + "Discard": "Zahodit", "Disconnect": "Odpojit", "Display_offline_form": "Zobrazit offline formulář", "Display_setting_permissions": "Zobrazovat oprávnění ke změně nastavení", @@ -1372,6 +1404,7 @@ "error-archived-duplicate-name": "Existuje archivovaná místnost s názvem '__room_name__'", "error-avatar-invalid-url": "Neplatná URL avataru: __url__", "error-avatar-url-handling": "Chyba při manipulaci avatarem z URL (__url__) pro __username__", + "error-business-hours-are-closed": "Zavřeno", "error-cannot-delete-app-user": "Odstranění uživatele aplikace není povoleno, odinstalujte příslušnou aplikaci pro odstranění.", "error-cant-invite-for-direct-room": "Do přímé konverzace nelze pozvat uživatele", "error-channels-setdefault-is-same": "Výchozí nastavení kanálu je totožné s nastavením, na které chcete změnit.", @@ -1468,6 +1501,7 @@ "error-token-already-exists": "Token s tímto názvem již existuje", "error-token-does-not-exists": "Token neexistuje", "error-too-many-requests": "Chyba, příliš mnoho požadavků. Prosím zpomalte. Vyčkejte __seconds__ sekund před dalším pokusem.", + "error-transcript-already-requested": "Přepis již byl vyžádán", "error-user-has-no-roles": "Uživatel nemá žádné role", "error-user-is-not-activated": "Uživatel není aktivován", "error-user-is-not-agent": "Uživatel není Omnichannel operátorem", @@ -1483,6 +1517,8 @@ "Error_404": "Chyba: 404 nenalezeno", "Error_changing_password": "Chyba změny hesla", "Error_loading_pages": "Chyba načítání stránek", + "Error_login_blocked_for_ip": "Pro tuto IP adresu je přihlášení dočasně zakázáno", + "Error_login_blocked_for_user": "Pro tohoto uživatele bylo přihlášení dočasně zakázáno", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "Chyba: Rocket.Chat vyžaduje tail oplogu pokud běží na více instancích.", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "Prověřte, že je MongoDB v ReplicaSet módu a proměnná prostředí MONGO_OPLOG_URL je na aplikačním serveru nastavena správně", "Error_sending_livechat_transcript": "Při odesílání přepisu Omnichannel došlo k chybě", @@ -1521,6 +1557,7 @@ "External_Service": "Externí služba", "Facebook_Page": "Facebook stránka", "Failed": "Selhalo", + "Login_Attempts": "Neúspěšné pokusy přihlášení", "Failed_to_activate_invite_token": "Nepodařilo se aktivovat token pozvánky", "Failed_To_Download_Files": "Stahování souborů se nezdařilo", "Failed_to_generate_invite_link": "Nepodařilo se vygenerovat odkaz pozvánky", @@ -1602,6 +1639,8 @@ "FileUpload_MediaTypeWhiteListDescription": "Čárkami oddělený seznam typů souborů. Pokud nechcete omezovat typy, ponechte pole prázdné.", "FileUpload_ProtectFiles": "Chránit nahrané soubory", "FileUpload_ProtectFilesDescription": "Pouze ověření uživatelé budou mít přístup", + "FileUpload_RotateImages": "Při nahrání obrázky otáčet", + "FileUpload_RotateImages_Description": "Může způsobit ztrátu kvality", "FileUpload_S3_Acl": "Acl", "FileUpload_S3_AWSAccessKeyId": "Přístupový klíč", "FileUpload_S3_AWSSecretAccessKey": "Tajný klíč", @@ -1645,6 +1684,7 @@ "Flags": "Vlajky", "Follow_message": "Sledovat zprávu", "Following": "Sledováno", + "Not_Following": "Nesledováno", "Follow_social_profiles": "Sledujte naše sociální profily, forkněte si nás na githubu a sdílejte své myšlenky o rocket.chat app na našem Trello boardu.", "Fonts": "Fonty", "Food_and_Drink": "Jídlo & pití", @@ -1681,6 +1721,14 @@ "Generate_new_key": "Vygenerovat nový klíč", "Generating_key": "Generování klíče", "Get_link": "Získat odkaz", + "get-password-policy-forbidRepeatingCharacters": "Heslo nesmí obsahovat opakující se znaky", + "get-password-policy-forbidRepeatingCharactersCount": "Heslo nesmí obsahovat více než __forbidRepeatingCharactersCount__ opakujících se znaků", + "get-password-policy-maxLength": "Heslo nesmí být delší než __maxLength__ znaků", + "get-password-policy-minLength": "Heslo musí být delší než __minLength__ znaků", + "get-password-policy-mustContainAtLeastOneLowercase": "Heslo musí obsahovat alespoň jedno malé písmeno", + "get-password-policy-mustContainAtLeastOneNumber": "Heslo musí obsahovat alespoň jednu číslici", + "get-password-policy-mustContainAtLeastOneSpecialCharacter": "Heslo musí obsahovat alespoň jeden speciální znak", + "get-password-policy-mustContainAtLeastOneUppercase": "Heslo musí obsahovat alespoň jedno velké písmeno", "Generate_New_Link": "Vytvořit nový odkaz", "github_no_public_email": "Ve svém účtu GitHub nemáte žádný e-mail jako veřejný", "Give_a_unique_name_for_the_custom_oauth": "Zadejte jedinečný název pro vlastní OAuth", @@ -1714,6 +1762,7 @@ "Graphql_Enabled": "GraphQL povoleno", "Graphql_CORS": "GraphQL CORS", "Graphql_Subscription_Port": "GraphQL port odběru", + "Group_by": "Skupina podle", "Group_by_Type": "Skupina podle typu", "Group_discussions": "Skupinové diskuse", "Group_favorites": "Oblíbené skupiny", @@ -1740,7 +1789,7 @@ "Hide_Livechat_Warning": "Opravdu chcete skrýt chat s \"%s\"?", "Hide_Private_Warning": "Jste si jisti, že chcete skrýt diskusi s \"%s\"?", "Hide_roles": "Schovat role", - "Hide_room": "Skrýt místnost", + "Hide_room": "Skrýt ", "Hide_Room_Warning": "Jste si jisti, že chcete skrýt místnost \"%s\"?", "Hide_Unread_Room_Status": "Schovat stav nepřečtených místností", "Hide_usernames": "Skrýt uživatelská jména", @@ -1866,6 +1915,7 @@ "Installed_at": "instalováno v", "Invitation_HTML": "HTML tělo pozvánky", "Instance_Record": "ID Instance", + "Instance": "Instance", "Instructions": "Návod", "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "Pokyny pro Vaše návštěvníky k vyplnění formulář pro odeslání zprávy", "Invitation_HTML_Default": "

Vítá Vás [Site_Name]

Přejděte na [Site_URL] a zkuste to nejlepší open source chat řešení na trhu!

", @@ -2162,6 +2212,8 @@ "LDAP_User_Search_Scope": "Rozsah", "LDAP_Username_Field": "Pole Uživatelského jména", "LDAP_Username_Field_Description": "Které pole budou použity jako *Jméno* pro nové uživatele. Ponechte prázdné pro použítí jména z přihlašovací stránky.
Můžete použít šablony a tagy jako například `#{givenName}.#{sn}`.
Výchozí hodnota je `sAMAccountName`.", + "LDAP_Avatar_Field": "Pole s obrázkem uživatele", + "LDAP_Avatar_Field_Description": "Které pole bude použito pro obrázky uživatelů. Pokud ponecháte prázdné vyzkouší se pole `thumbnailPhoto` případně `jpegPhoto`", "Lead_capture_email_regex": "Regulární výraz pro zachycení Leadu na email", "Lead_capture_phone_regex": "Regulární výraz pro zachycení Leadu na telefon", "leave-c": "Odejít z místností", @@ -2171,7 +2223,7 @@ "Leave_Group_Warning": "Jste si jisti, že chcete opustit skupinu \"%s\"?", "Leave_Livechat_Warning": "Opravdu chcete opustit LiveChat s \"%s\"?", "Leave_Private_Warning": "Jste si jisti, že chcete opustit diskusi s \"%s\"?", - "Leave_room": "Opustit místnost", + "Leave_room": "Opustit", "Leave_Room_Warning": "Jste si jisti, že chcete opustit místnost \"%s\"?", "Leave_the_current_channel": "Opustit aktuální místnost", "Lets_get_you_new_one": "Pojďme si pořídit nový!", @@ -2183,6 +2235,7 @@ "Livechat_Agents": "Operátoři", "Livechat_AllowedDomainsList": "Domény na kterých povolit Livechat", "Livechat_Appearance": "Vzhled Livechatu", + "Livechat_chat_transcript_sent": "Přepis rozhovoru odeslán: __transcript__", "Livechat_Dashboard": "Přehled Omnichannel", "Livechat_DepartmentOfflineMessageToChannel": "Offline zprávy odesílat do místnosti oddělení", "Livechat_enabled": "Omnichannel povolen", @@ -2208,6 +2261,9 @@ "Livechat_Take_Confirm": "Chcete převzít tohoto klienta", "Livechat_title": "LiveChat název", "Livechat_title_color": "LiveChat Barva pozadí názvu", + "Livechat_transcript_already_requested_warning": "Přepis tohoto rozhovoru již byl vyžádán a bude odeslán jakmile konverzace skončí.", + "Livechat_transcript_request_has_been_canceled": "Požadavek na přepis tohoto rozhovoru byl zrušen.", + "Livechat_transcript_has_been_requested": "Přepis rozhovoru byl vyžádán.", "Livechat_transcript_sent": "Přepis Omnichannel byl odeslán", "Livechat_transfer_to_agent": "__from__ přepojil chat __to__", "Livechat_transfer_to_agent_with_a_comment": "__from__ přepojil chat __to__ s komentářem __comment__", @@ -2216,6 +2272,9 @@ "Livechat_transfer_return_to_the_queue": "__from__ vrátil chat do fronty", "Livechat_Triggers": "Spouštěče Omnichannel", "Livechat_Users": "Uživatelé Omnichannel", + "Livechat_user_sent_chat_transcript_to_visitor": "__agent__ odeslal přepis rozhovoru __guest__", + "Livechat_visitor_email_and_transcript_email_do_not_match": "Email návštěvníka a pro přepis se neshodují", + "Livechat_visitor_transcript_request": "__guest__ vyžádal přepis konverzace", "LiveStream & Broadcasting": "LiveStream a vysílání", "Livestream_close": "Zavřít Livestream", "Livestream_enabled": "Livestream povolen", @@ -2249,6 +2308,7 @@ "Log_View_Limit": "Limit zobrazení logu", "Logged_out_of_other_clients_successfully": "Odhlášení z ostatních klientů úspěšné", "Login": "Přihlásit se", + "Login_Logs": "Logy přihlášení", "Login_with": "Přihlášení pomocí %s", "Logistics": "Logistika", "Logout": "Odhlásit se", @@ -2261,6 +2321,7 @@ "mail-messages_description": "Právo odesílat zprávy", "Mail_Message_Invalid_emails": "Vložili jste jeden nebo více neplatných e-mailů: %s", "Mail_Message_Missing_to": "Musíte vybrat jednoho nebo více uživatelů nebo vložit jednu nebo více e-mailových adres oddělených čárkami.", + "Mail_Message_Missing_subject": "Musíte uvést předmět emailu.", "Mail_Message_No_messages_selected_select_all": "Nejsou vybrány žádné zprávy. Chcete vybrat všechny viditelné zprávy?", "Mail_Messages": "Odeslat zprávy", "Mail_Messages_Instructions": "Kliknutím na zprávy vyberte ty, které chcete poslat e-mailem.", @@ -2271,7 +2332,8 @@ "Mailer_body_tags": "Je nutné použít [unsubscribe] pro vložení odkazu na odhlášení.
Můžete také použít [name], [fname], [lname] pro uživatelské jméno, křestí jméno a příjmen.
Nebo [email] pro e-mail uživatele.", "Mailing": "Mailing", "Make_Admin": "Změnit na Správce", - "Make_sure_you_have_a_copy_of_your_codes": "Pečlivě is uschovejte kopii svých kódů: __codes__ Pokud ztratíte přístup ke své autentizační aplikaci, můžete jeden z nich použít k přihlášení.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Pečlivě is uschovejte kopii svých kódů:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Pokud ztratíte přístup ke své autentizační aplikaci, můžete jeden z nich použít k přihlášení.", "manage-apps": "Správa aplikací", "manage-assets": "Spravovat statické zdroje", "manage-assets_description": "Právo upravovat serverové statické soubory", @@ -2400,6 +2462,7 @@ "Message_HideType_subscription_role_removed": "Skrýt zprávy „Role již není definována“", "Message_HideType_room_archived": "Skrýt zprávy „Místnost archivována“", "Message_HideType_room_unarchived": "Skrýt zprávy „Místnost archivována“", + "Message_HideType_room_changed_privacy": "Schovat zprávy o změně typu místnosti", "Hide_System_Messages": "Skrýt systémové zprávy", "Message_Id": "ID zprávy", "Message_Ignored": "Tato zpráva byla ignorována", @@ -2538,12 +2601,14 @@ "No_messages_yet": "Zatím žádné zprávy", "No_pages_yet_Try_hitting_Reload_Pages_button": "Zatím žádné stránky. Zkuste tlačítko \"Znovu načíst stránky\"", "No_pinned_messages": "Žádné zprávy nejsou připnuté", + "No_previous_chat_found": "Předchozí konverzace nenalezena", "No_results_found": "Nebyly nalezeny žádné výsledky", "No_results_found_for": "Žádné výsledky pro výraz:", "No_snippet_messages": "Žádné předvolby", "No_starred_messages": "Žádné zprávy s hvězdičkou", "No_such_command": "Příkaz `__comand__` neexistuje", "No_discussions_yet": "Zatím žádné diskuse", + "No_Discussions_found": "Diskuze nenalezeny", "No_Threads": "Nebyla nalezena žádná vlákna", "No_user_with_username_%s_was_found": "Nebyl nalezen žádný uživatel s uživatelským jménem \"%s\"!", "No_data_found": "Data nanalezena", @@ -2578,6 +2643,7 @@ "Number_of_federated_users": "Počet Federation uživatelů", "Number_of_federated_servers": "Počet federovaných serverů", "Number_of_messages": "Počet zpráv", + "RetentionPolicy_DoNotExcludeDiscussion": "Nevylučovat diskusní zprávy", "OAuth Apps": "Aplikace OAuth", "OAuth_Application": "OAuth Aplikace", "OAuth_Applications": "OAuth Aplikace", @@ -2588,6 +2654,7 @@ "Office_Hours": "Otevírací doba", "Office_hours_enabled": "Otevírací doba povolena", "Office_hours_updated": "Otevírací doba aktualizována", + "RetentionPolicy_ExcludePinned": "Vyloučit připnuté zprávy", "Offline": "Offline", "Offline_DM_Email": "Předmět emailu přímé zprávy", "Offline_Email_Subject_Description": "Můžete použít následující značky:
  • [Site_Name] pro název aplikace, [Site_URL] pro URL aplikace, [User] pro uživatele a [Room] pro místnost
", @@ -2681,7 +2748,7 @@ "Pinned_Messages": "Připnuté zprávy", "pinning-not-allowed": "Připnutí není povoleno", "PiwikAdditionalTrackers": "Dalši Piwik stránky", - "PiwikAdditionalTrackers_Description": "Zde vložte další Piwik stránky a jejich ID v následujícím formátu:\n [ { \"trackerURL\" : \"https://moje.piwik.domena2/\", \"siteId\" : 2 }, { \"trackerURL\" : \"https://moje.piwik.domena3/\", \"siteId\" : 3 } ]", + "PiwikAdditionalTrackers_Description": "Pokud chcete sledovat stejná data i na jiných stránkách vložte zde další Piwik domény a jejich ID v následujícím formátu:\n [{ \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]", "PiwikAnalytics_cookieDomain": "Všechny subdomény", "PiwikAnalytics_cookieDomain_Description": "Sledovat uživatele napříč všemi subdoménami", "PiwikAnalytics_domains": "Skrýt odchozí odkazy", @@ -2885,6 +2952,8 @@ "Request_comment_when_closing_conversation": "Při uzavírání konverzace požádat o komentář", "Request_comment_when_closing_conversation_description": "Pokud je povoleno, operátor musí před uzavřením konverzace zadat komentář.", "Request_tag_before_closing_chat": "Vyžadovat značky před uzavřením konverzace", + "Requested_At": "Vyžádáno", + "Requested_By": "Vyžádal/a", "Require": "Vyžádat", "Require_all_tokens": "Vyžadovat všechny tokeny", "Require_any_token": "Vyžadovat jakýkoliv token", @@ -2903,7 +2972,8 @@ "Retail": "Obchod", "Retention_setting_changed_successfully": "Nastavení zásady uchování bylo úspěšně změněno", "RetentionPolicy": "Zásady uchovávání", - "RetentionPolicy_DoNotExcludeDiscussion": "Nevylučovat diskusní zprávy", + "RetentionPolicy_DoNotPruneDiscussion": "Nepročišťovat zprávy v diskuzi", + "RetentionPolicy_DoNotPruneThreads": "Nepročišťovat zprávy ve vláknech", "RetentionPolicy_RoomWarning": "Zprávy starší než __time__ jsou zde automaticky pročištěny", "RetentionPolicy_RoomWarning_Unpinned": "Nepřipnuté zprávy starší než __time__ jsou zde automaticky pročištěny", "RetentionPolicy_RoomWarning_FilesOnly": "Soubory starší než __time__ jsou zde automaticky pročištěny (zpráv se netýká)", @@ -2913,7 +2983,7 @@ "RetentionPolicy_AppliesToChannels": "Platí pro místnosti", "RetentionPolicy_AppliesToGroups": "Platí pro soukromé skupiny", "RetentionPolicy_AppliesToDMs": "Platí pro přímé zprávy", - "RetentionPolicy_ExcludePinned": "Vyloučit připnuté zprávy", + "RetentionPolicy_DoNotPrunePinned": "Nepročišťovat připnuté zprávy", "RetentionPolicy_FilesOnly": "Smazat pouze soubory", "RetentionPolicy_FilesOnly_Description": "Pouze soubory budou smazány, samotné zprávy zůstanou na místě.", "RetentionPolicy_MaxAge": "Maximální stáří zprávy", @@ -2979,9 +3049,13 @@ "Same_As_Token_Sent_Via": "Stejné jako \"Token odesílány přes\"", "Same_Style_For_Mentions": "Stejný styl pro zmínky", "SAML": "SAML", + "SAML_AuthnContext_Template": "AuthnContext šablona", + "SAML_AuthnContext_Template_Description": "Lze použít jakoukoliv proměnou z AuthnRequest šablony.\n\nPro přidání dalších authn kontextů, rozšiřte __AuthnContextClassRef__ tag and nahraďte __\\_\\_authnContext\\_\\___ proměnnou novým obsahem.", + "SAML_AuthnRequest_Template": "AuthnRequest šablona", + "SAML_AuthnRequest_Template_Description": "Dostupné tyto proměnné:\n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec\n- **\\_\\_instant\\_\\_**: Aktuální timestamp\n- **\\_\\_callbackUrl\\_\\_**: URL Rocket.Chat callback\n- **\\_\\_entryPoint\\_\\_**: Hodnota nastavení __Custom Entry Point__.\n- **\\_\\_issuer\\_\\_**: Hodnota nastavení __Custom Issuer__.\n- **\\_\\_identifierFormatTag\\_\\_**: Obsah __NameID Policy Template__ pokud je nastaven validní __Identifier Format__.\n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení __Identifier Format__.\n- **\\_\\_authnContextTag\\_\\_**: Obsah __AuthnContext Template__ pokud je nastaven validní __Custom Authn Context__.\n- **\\_\\_authnContextComparison\\_\\_**: Hodnota nastavení __Authn Context Comparison__.\n- **\\_\\_authnContext\\_\\_**: Hodnota nastavení __Custom Authn Context__.", "SAML_Custom_Authn_Context": "Vlastní Authn kontext", "SAML_Custom_Authn_Context_Comparison": "Porovnání kontextu Authn", - "SAML_Custom_Authn_Context_description": "Ponechte prázdné pro přeskočení authn kontextu", + "SAML_Custom_Authn_Context_description": "Ponechte prázdné pro vynechání authn kontextu v požadavku.\n\nPro přídání více authn kontextů je přidejte přímo do nastavení __AuthnContext Template__", "SAML_Custom_Cert": "Vlastní Certifikát", "SAML_Custom_Debug": "Zapnout debugování", "SAML_Custom_Entry_point": "Vlastní vstupní bod", @@ -3003,7 +3077,7 @@ "SAML_Custom_signature_validation_type": "Typ validace podpisu", "SAML_Custom_signature_validation_type_description": "Pokud není zadán vlastní certifikát, nastavení je ignorováno", "SAML_Custom_user_data_fieldmap": "Mapa polí uživatelských dat", - "SAML_Custom_user_data_fieldmap_description": "Konfigurovat jak jsou položky uživatelského účtu (např. e-mail) naplněny ze záznamu SAML (jakmile je nalezen)
Například `{\"cn\":\"name\", \"mail\":\"email\"}` zvolí uživatelovo lidsky čitelné jméno z atributu cn a jeho e-mailovou adresu z atributu email.
Dostupné položky v Rocket.Chatu: `name`, `email` and `username`, vše ostatní bude uloženo jako `customFields`.
K získání hodnoty položky můžete také použít regulární výraz, například: `{\"NameID\": { \"field\": \"username\", \"regex\": \"(.*)@.+$\"}, \"email\": \"email\"}`", + "SAML_Custom_user_data_fieldmap_description": "Nastavte jak se uživatelská pole (jako email) přenáší ze záznmů v SAML.\nNapříklad `{\"name\":\"cn\", \"email\":\"mail\"}` vybere uživatelovo jméno z atributu cn a jeho e-mailovou adresu z atributu email.\nDostupné položky v Rocket.Chatu: `name`, `email` a `username`, vše ostatní je uloženo jako `customFields`.\nAtribut který se nemění přiřaďte do klíče '__identifier__' aby byl použit jako jedinečný identifikátor uživatele.\nPoužít můžete také regulární výrazy a šablony. Šablony budou zpracovány jako první krom případů kdy používají výsledky regulárního výrazu.\n```\n{\n \"email\": \"mail\",\n \"username\": {\n \"fieldName\": \"mail\",\n \"regex\": \"(.*)@.+$\",\n \"template\": \"user-__regex__\"\n }. \"name\":{\n \"fieldNames\": [\n \"firstName\",\n \"lastName\"\n ],\n \"template\": \"__firstName__ __lastName__\"\n },\n\"__identifier__\": \"uid\"\n}\n```", "SAML_Custom_Username_Field": "Název pole pro uživatelské jméno", "SAML_Custom_Username_Normalize": "Normalizovat uživatelské jméno", "SAML_Custom_Username_Normalize_None": "Žádná normalizace", @@ -3014,10 +3088,28 @@ "SAML_Custom_Public_Cert": "Obsah veřejného certifikátu", "SAML_Default_User_Role": "Výchozí uživatelská role", "SAML_Default_User_Role_Description": "Můžete uvést více rolí oddělených čárkami.", + "SAML_Identifier_Format": "Formát identifikátoru", + "SAML_Identifier_Format_Description": "Ponechte prázdné pro přeskočení NameID policy z požadavku.", + "SAML_LogoutResponse_Template": "Šablona odpověďi při odhlášení", + "SAML_LogoutRequest_Template": "Šablona odpověďi při odhlášení", + "SAML_LogoutRequest_Template_Description": "Dostupné tyto proměnné:\n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec\n- **\\_\\_instant\\_\\_**: Aktuální timestamp\n- **\\_\\_idpSLORedirectURL\\_\\_**: URL kam přesměrovat IDP Single LogOut.\n- **\\_\\_issuer\\_\\_**: Hodnota nastavení __Custom Issuer__.\n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení __Identifier Format__.\n- **\\_\\_nameID\\_\\_**: Hodnota NameID obdržená z IdP při přihlášení.\n- **\\_\\_sessionIndex\\_\\_**: Hodnota sessionIndex obdržená z IdP při přihlášení.", + "SAML_LogoutResponse_Template_Description": "Dostupné tyto proměnné:\n- **\\_\\_newId\\_\\_**: Náhodně generovaný id řetězec\n- **\\_\\_inResponseToId\\_\\_**: ID požadavku odhlášení z IdP\n- **\\_\\_instant\\_\\_**: Aktuální timestamp\n- **\\_\\_idpSLORedirectURL\\_\\_**: URL kam přesměrovat IDP Single LogOut.\n- **\\_\\_issuer\\_\\_**: Hodnota nastavení __Custom Issuer__.\n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení __Identifier Format__.\n- **\\_\\_nameID\\_\\_**: Hodnota NameID obdržená z IdP při přihlášení.\n- **\\_\\_sessionIndex\\_\\_**: Hodnota sessionIndex obdržená z IdP při přihlášení.", + "SAML_MetadataCertificate_Template": "Šablona certifikátu metadat", + "SAML_Metadata_Template": "Šablona metadat", + "SAML_Metadata_Template_Description": "Dostupné tyto proměnné:\n- **\\_\\_sloLocation\\_\\_**: URL Single LogOut.\n- **\\_\\_issuer\\_\\_**: Hodnota nastavení __Custom Issuer__.\n- **\\_\\_identifierFormat\\_\\_**: Hodnota nastavení __Identifier Format__.\n- **\\_\\_certificateTag\\_\\_**: Pokud je nastaven privátní certifikát, bude obsahovat __Metadata Certificate Template__, jinak ignorováno.\n- **\\_\\_callbackUrl\\_\\_**: URL Rocket.Chat callback", + "SAML_Metadata_Certificate_Template_Description": "Dostupné tyto proměnné:\n- **\\_\\_certificate\\_\\_**: Privátní certifikát pro nastavení šifrování", + "SAML_NameIdPolicy_Template": "Šablona NameID Policy", + "SAML_NameIdPolicy_Template_Description": "Lze použít jakoukoliv proměnnou z Autorizačního požadavku.", "SAML_Role_Attribute_Name": "Název atributu role", "SAML_Role_Attribute_Name_Description": "Pokud je tento atribut nalezen v odpovědi SAML, jeho hodnoty budou použity jako názvy rolí nových uživatelů.", "SAML_Role_Attribute_Sync": "Synchronizovat uživatelské role", "SAML_Role_Attribute_Sync_Description": "Synchronizovat SAML uživatelské role při přihlášení (přepíše lokální uživatelské role)", + "SAML_Section_1_User_Interface": "Uživatelské rozhraní", + "SAML_Section_2_Certificate": "Certifikát", + "SAML_Section_3_Behavior": "Chování", + "SAML_Section_4_Roles": "Role", + "SAML_Section_5_Mapping": "Mapování", + "SAML_Section_6_Advanced": "Pokročilé", "SAML_Allowed_Clock_Drift": "Povolit časový nesoulad oproti poskytovali identity", "SAML_Allowed_Clock_Drift_Description": "Čas poskytovatele identity mohou být napřed oproti systémovému času. Zde lze povolit manuální posun času. Hodnota je udaná počtem milisekund (ms). Tato hodnota je pak připočtena k systémovému času proti kterému se odpověď validuje.", "Saturday": "Sobota", @@ -3032,7 +3124,7 @@ "Saved": "Uloženo", "Saving": "Ukládání", "Scan_QR_code": "V autentizační aplikace jako Google Authenticator, Authy nebo Duo naskenujte QR kód. Aplikace vám poté zobrazí 6-ti místný kód, který zadejte níže.", - "Scan_QR_code_alternative_s": "Pokud nemůžete naskenovat QR kód, můžete jej zadat ručně: __code__", + "Scan_QR_code_alternative_s": "Pokud nemůžete naskenovat QR kód, můžete jej zadat ručně:", "Scope": "Rozsah", "Screen_Lock": "Zámek obrazovky", "Screen_Share": "Sdílení obrazovky", @@ -3042,6 +3134,7 @@ "Search_by_file_name": "Vyhledávání podle názvu souboru", "Search_by_username": "Vyhledávání podle jména", "Search_Channels": "Vyhledávání místností", + "Search_Chat_History": "Prohledat historii chatu", "Search_current_provider_not_active": "Aktuální poskytovatel vyhledávání není aktivní", "Search_Integrations": "Integrace vyhledávání", "Search_message_search_failed": "Požadavek na vyhledávání selhal", @@ -3068,6 +3161,7 @@ "Selected_agents": "Vybraní operátoři", "Selecting_users": "Výběr uživatelů", "send-many-messages": "Odeslat několik zpráv", + "send-omnichannel-chat-transcript": "Odeslat přepis omnichannel konverzace", "Send": "Poslat", "Send_a_message": "Poslat zprávu", "Send_a_test_mail_to_my_user": "Odeslat testovací zprávu na můj mail", @@ -3124,6 +3218,9 @@ "Setup_Wizard": "Průvodce instalací", "Setup_Wizard_Info": "Provedeme vás nastavením prvního administrátora, nastavením údajů o vaši organizaci, registrací serveru pro bezplatné push notifikace a podobně.", "Share_Location_Title": "Sdílet polohu", + "Cannot_share_your_location": "Vaši polohu nelze sdílet", + "You_will_be_asked_for_permissions": "Budete požádáni o povolení", + "The_necessary_browser_permissions_for_location_sharing_are_not_granted": "Požadavek ke sdílení polohy nebyl potvrzen", "Shared_Location": "Sdílená lokalita", "Shared_Secret": "Sdílený kód Secret", "Should_be_a_URL_of_an_image": "Měla by být URL obrázku.", @@ -3137,6 +3234,7 @@ "Show_Avatars": "Zobrazit avatary", "Show_counter": "Zobrazit počítadlo", "Show_email_field": "Zobrazit pole email", + "Show_Message_In_Main_Thread": "Zobrazit zprávy vlákna i v hlavním vlákně", "Show_more": "Zobrazit více", "Show_name_field": "Zobrazit pole jméno", "show_offline_users": "zobrazit offline uživatele", @@ -3441,9 +3539,11 @@ "totp-invalid": "Kód nebo heslo nesouhlasí", "TOTP Invalid [totp-invalid]": "Kód nebo heslo nesouhlasí", "Tourism": "Turistika", + "Transcript": "Přepis konverzace", "Transcript_Enabled": "Zeptat se po skončení chatu, zda uživateli odeslat kopii konverzace", "Transcript_message": "Zpráva kterou zobrazit jako dotaz zda odeslat kopii konverzace", "Transcript_of_your_livechat_conversation": "Přepis vaší Omnichannel konverzace.", + "Transcript_Request": "Vyžádání přepisu", "transfer-livechat-guest": "Přenést hosty na Livechatu", "Translate": "Přeložit", "Translated": "Přeloženo", @@ -3545,6 +3645,7 @@ "Uptime": "Doba od spuštění", "URL": "URL", "URL_room_prefix": "Prefix URL místnosti", + "URL_room_suffix": "Sufix URL místnosti", "Use_Server_configuration": "Použít konfiguraci serveru", "Use_Room_configuration": "Přepíše konfiguraci serveru a použije konfiguraci místnosti", "Use_account_preference": "Použít nastavení účtu", @@ -3675,6 +3776,7 @@ "Verify_your_email": "Ověřte svůj email", "Verify_your_email_for_the_code_we_sent": "Zadejte kód z emailu", "Version": "Verze", + "Version_version": "Verze __version__", "Videos": "Videa", "Video Conference": "Video konference", "Video_Chat_Window": "Video chat", @@ -3841,4 +3943,4 @@ "Your_server_link": "Odkaz na Váš server", "Your_temporary_password_is_password": "Vaše dočasné heslo je [password].", "Your_workspace_is_ready": "Váš prostředí je připraveno k použití 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/cy.i18n.json b/packages/rocketchat-i18n/i18n/cy.i18n.json index c0e7600e3041..38c643aa2436 100644 --- a/packages/rocketchat-i18n/i18n/cy.i18n.json +++ b/packages/rocketchat-i18n/i18n/cy.i18n.json @@ -1673,7 +1673,8 @@ "Mailer_body_tags": "Mae'n rhaid i chi ddefnyddio [dad-danysgrifio] ar gyfer y ddolen dadysgrifio.
Gallwch ddefnyddio [enw], [fname], [lname] ar gyfer enw llawn, enw cyntaf neu enw olaf y defnyddiwr, yn y drefn honno.
Gallwch ddefnyddio [e-bost] ar gyfer e-bost y defnyddiwr.", "Mailing": "Postio", "Make_Admin": "Gwneud Gweinyddol", - "Make_sure_you_have_a_copy_of_your_codes": "Gwnewch yn siŵr bod gennych gopi o'ch codau: __codes__ Os byddwch chi'n colli mynediad i'ch app dilysu, gallwch ddefnyddio un o'r codau hyn i logio i mewn.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Gwnewch yn siŵr bod gennych gopi o'ch codau:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Os byddwch chi'n colli mynediad i'ch app dilysu, gallwch ddefnyddio un o'r codau hyn i logio i mewn.", "manage-apps": "Rheoli Apps", "manage-assets": "Rheoli Asedau", "manage-assets_description": "Caniatâd i reoli asedau'r gweinyddwr", @@ -1898,6 +1899,7 @@ "Office_Hours": "Oriau swyddfa", "Office_hours_enabled": "Oriau Swyddfa Wedi eu Hwyluso", "Office_hours_updated": "Diweddaru oriau swyddfa", + "RetentionPolicy_ExcludePinned": "Eithrio negeseuon wedi'u pinnio", "Offline": "Offline", "Offline_DM_Email": "Pwnc E-bost Neges Uniongyrchol", "Offline_Email_Subject_Description": "Gallwch ddefnyddio'r canlynol o ddeiliaid lle:
  • [Site_Name], [Site_URL], [Defnyddiwr] a [Ystafell] ar gyfer yr Enw Cais, URL, Enw Defnyddiwr a Ffenestri yn y drefn honno
", @@ -2145,7 +2147,6 @@ "RetentionPolicy_AppliesToChannels": "Yn berthnasol i sianeli", "RetentionPolicy_AppliesToGroups": "Yn berthnasol i grwpiau preifat", "RetentionPolicy_AppliesToDMs": "Mae'n berthnasol i negeseuon uniongyrchol", - "RetentionPolicy_ExcludePinned": "Eithrio negeseuon wedi'u pinnio", "RetentionPolicy_FilesOnly": "Dileu ffeiliau yn unig", "RetentionPolicy_FilesOnly_Description": "Dim ond ffeiliau fydd yn cael eu dileu, bydd y negeseuon eu hunain yn aros yn eu lle.", "RetentionPolicy_MaxAge": "Uchafswm oedran neges", @@ -2218,6 +2219,7 @@ "SAML_Custom_user_data_fieldmap": "Map Maes Data Defnyddwyr", "SAML_Custom_Immutable_Property_Username": "Enw Defnyddiwr", "SAML_Custom_Public_Cert": "Cynnwys Tystysgrif Gyhoeddus", + "SAML_Section_1_User_Interface": "Rhyngwyneb Defnyddiwr", "Saturday": "Sadwrn", "Save": "Arbed", "save-others-livechat-room-info": "Cadw Gwybodaeth Ystafelloedd Livechat Eraill", @@ -2228,7 +2230,7 @@ "Saved": "Saved", "Saving": "Arbed", "Scan_QR_code": "Gan ddefnyddio app dilysu fel Google Dilysydd, Authy neu Duo, sganiwch y cod QR. Bydd yn dangos cod 6 digid y mae angen i chi ei nodi isod.", - "Scan_QR_code_alternative_s": "Os na allwch sganio'r cod QR, fe allech chi gofnodi'r cod yn lle hynny: __code__", + "Scan_QR_code_alternative_s": "Os na allwch sganio'r cod QR, fe allech chi gofnodi'r cod yn lle hynny:", "Scope": "Cwmpas", "Screen_Share": "Cyfran Sgrin", "Script_Enabled": "Script Enabled", diff --git a/packages/rocketchat-i18n/i18n/da.i18n.json b/packages/rocketchat-i18n/i18n/da.i18n.json index cc3b665a63ad..271961db8847 100644 --- a/packages/rocketchat-i18n/i18n/da.i18n.json +++ b/packages/rocketchat-i18n/i18n/da.i18n.json @@ -15,6 +15,8 @@ "__username__was_set__role__by__user_by_": "__username__ was set __role__ by __user_by__", "%_of_conversations": "% af samtaler", "A_new_owner_will_be_assigned_automatically_to__count__rooms": "En ny ejer tildeles automatisk til __count__ rum.", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "En ny ejer tildeles automatisk til __roomName__ rum.", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "En ny ejer tildeles automatisk til disse __count__ rum:
__rooms__.", "Accept": "Acceptér", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Acceptér indgående omnikanal-anmodninger, selvom der ikke er online agenter", "Accept_new_livechats_when_agent_is_idle": "Accepter nye anmodninger fra omnikanalen når agenten er ledig", @@ -54,6 +56,17 @@ "Accounts_AvatarExternalProviderUrl_Description": "Eksempel: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "Liste over blokerede domæner", "Accounts_BlockedDomainsList_Description": "Kommasepareret liste over blokerede domæner", + "Accounts_Verify_Email_For_External_Accounts": "Bekræft e-mail for eksterne konti", + "Block_Multiple_Failed_Logins_Enabled": "Aktivér indsamling af login-data", + "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "Gem IP og brugernavn fra log-forsøg i databasen", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "IP whitelist", + "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "Kommasepareret liste over writelisted IP'er", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "Tid før fjernelse af blokering af IP (i minutter)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "Tid før fjernelse af blokering af bruger (i minutter)", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "Antal fejlforsøg før blokering via IP", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "Antal fejlforsøg før blokering af bruger", + "Block_Multiple_Failed_Logins_By_Ip": "Blokering af loginforsøg fejlede via IP", + "Block_Multiple_Failed_Logins_By_User": "Blokering af loginforsøg fejlede via brugernavn", "Accounts_BlockedUsernameList": "Liste over blokerede brugernavne", "Accounts_BlockedUsernameList_Description": "Kommasepareret liste over blokerede brugernavne (der er ikke forskel på store og små bogstaver)", "Accounts_CustomFields_Description": "Skal være gyldigt JSON, hvor nøgler er feltnavne, der indeholder en ordbog med feltindstillinger. Eksempel:
{\n\"role\": {\n\"type\": \"select\",\n\"defaultValue\": \"student\",\n\"options\": [\"lærer\", \"studerende\"],\n\"required\": true,\n\"modifyRecordField\": {\n\"array\": true,\n\"felt\": \"roller\"\n}\n},\n\"twitter\": {\n\"type\": \"text\",\n\"required\": sandt,\n\"minLength\": 2,\n\"maxLength\": 10\n}\n}", @@ -77,6 +90,11 @@ "Accounts_Enrollment_Email_Subject_Default": "Velkommen til [Site_Name]", "Accounts_Enrollment_Email": "Tilmeldings-e-mail", "Accounts_Enrollment_Email_Description": "Du kan bruge følgende pladsholdere:
  • [name], [fname], [lname] for henholdsvis brugerens fulde navn, fornavn og efternavn.
  • [email] for brugerens e-mail.
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavn og URL.
", + "Login_Logs_Enabled": "Antal login-fejlforsøg via konsol", + "Login_Logs_ClientIp": "Vis den loggede klient-IP på fejlede loginforsøg", + "Login_Logs_ForwardedForIp": "Vis den loggede forwardede IP på fejlede loginforsøg", + "Login_Logs_Username": "Vis det loggede brugernavn på fejlede loginforsøg", + "Login_Logs_UserAgent": "Vis den loggede bruger-agent på fejlede loginforsøg", "Accounts_ForgetUserSessionOnWindowClose": "Glem brugersession når vinduet lukkes", "Accounts_Iframe_api_method": "API-metode", "Accounts_Iframe_api_url": "API-URL", @@ -84,6 +102,7 @@ "Accounts_iframe_url": "Iframe-URL", "Accounts_LoginExpiration": "Login-udløb i dage", "Accounts_ManuallyApproveNewUsers": "Nye brugere skal godkendes manuelt", + "Accounts_OAuth_Apple": "Log ind med Apple", "Accounts_OAuth_Custom_Authorize_Path": "Autorisationssti", "Accounts_OAuth_Custom_Avatar_Field": "Avatar felt", "Accounts_OAuth_Custom_Button_Color": "Farve på knap", @@ -297,9 +316,11 @@ "Allow_Invalid_SelfSigned_Certs_Description": "Tillad ugyldige og selvtegnede SSL-certifikater til godkendelse og forhåndsvisning af links.", "Allow_switching_departments": "Tillad besøgende at skifte afdeling", "Allow_Marketing_Emails": "Tillad markedsførings-mails", + "Allow_Online_Agents_Outside_Business_Hours": "Tillad online-agenter udenfor kontortid", "Allow_Online_Agents_Outside_Office_Hours": "Tillad online-agenter uden for kontortid", "Almost_done": "Næsten færdig", "Alphabetical": "Alfabetisk", + "Also_send_to_channel": "Send også til kanal", "Always_open_in_new_window": "Åbn altid i nyt vindue", "Analytics": "Analyse", "Analytics_features_enabled": "Aktiverede funktioner", @@ -313,6 +334,7 @@ "Animals_and_Nature": "Dyr og natur", "Announcement": "Annonceringer", "API": "API", + "APIs": "API'er", "API_Add_Personal_Access_Token": "Tilføj ny personlig adgangs-token", "API_Allow_Infinite_Count": "Tillad at hente alt", "API_Allow_Infinite_Count_Description": "Skal opkald til REST-API'en have lov til at returnere alt i et kald?", @@ -578,6 +600,9 @@ "bulk-register-user_description": "Tilladelse til at oprette brugere i bundter", "Busiest_day": "Travleste dag", "Busiest_time": "Travleste tidspunkt", + "Business_Hours": "Kontortid", + "Business_hours_enabled": "Kontortid slået til", + "Business_hours_updated": "Kontortid opdateret", "busy": "travl", "Busy": "Travl", "busy_female": "travl", @@ -585,8 +610,10 @@ "busy_male": "travl", "Busy_male": "Travl", "by": "ved", + "By_author": "Af __author__", "cache_cleared": "Cache ryddet", "call-management": "Opkaldsadministration", + "Caller": "Caller", "Cancel": "Annullér", "Canceled": "Annulleret", "Cancel_message_input": "Annullér", @@ -645,7 +672,7 @@ "Chatops_Title": "Chatops-panel", "Chatops_Username": "Chatops-brugernavn", "Chatpal_AdminPage": "Chatpal administrationsside", - "Chatpal_All_Results": "Alle", + "Chatpal_All_Results": "Alt", "Chatpal_API_Key": "API nøgle", "Chatpal_API_Key_Description": "Du har endnu ikke en API-nøgle? Få en!", "Chatpal_Backend": "Backend-type", @@ -654,8 +681,10 @@ "Chatpal_Base_URL_Description": "Find en beskrivelse af hvordan du kører en lokal instans på github. Webadressen skal være absolut og pege på chatpal, f.eks. http://localhost:8983/solr/chatpal.", "Chatpal_Batch_Size": "Batch-størrelse på indeks", "Chatpal_Batch_Size_Description": "Batchstørrelsen af indeksdokumenter (ved opstart)", + "Chatpal_channel_not_joined_yet": "Channel endnu ikke tilsluttet", "Chatpal_create_key": "Opret nøgle", "Chatpal_created_key_successfully": "API-Key blev oprettet med succes", + "Chatpal_Current_Room_Only": "Samme rum", "Chatpal_Default_Result_Type": "Standard resultattype", "Chatpal_Default_Result_Type_Description": "Definere hvilken resultattype der vises pr. resultat. Det betyder at der gives et overblik over alle typer.", "Chatpal_Email_Address": "E-mail-adresse", @@ -669,6 +698,8 @@ "Chatpal_go_to_user": "Send direkte besked", "Chatpal_HTTP_Headers": "HTTP-headers", "Chatpal_HTTP_Headers_Description": "Liste over HTTP-headers. En header pr. Linje. Format: navn: værdi", + "Chatpal_Include_All_Public_Channels": "Inkluder alle offentlige kanaler", + "Chatpal_Include_All_Public_Channels_Description": "Søg i alle offentlige kanaler selvom du endu ikke er tilsluttet dem.", "Chatpal_Main_Language": "Hovedsprog", "Chatpal_Main_Language_Description": "Sproget der bruges mest i samtaler", "Chatpal_Messages": "Meddelelser", @@ -718,10 +749,10 @@ "Clients_will_refresh_in_a_few_seconds": "Klienterne opdateres om få sekunder", "close": "luk", "Close": "Luk", - "close-livechat-room": "Luk omnikanal Room", + "close-livechat-room": "Luk omnikanal-rum", "Cloud_workspace_connected_plus_account": "Din instans er nu forbundet til Rocket.Chat Cloud og en konto er tilknyttet.", "close-livechat-room_description": "Tilladelse til at lukke den aktuelle omnikanal-rum", - "close-others-livechat-room": "Luk omnikanal Room", + "close-others-livechat-room": "Luk et andet omnikanal-rum", "Cloud_workspace_connected_without_account": "Din instans er nu forbundet til Rocket.Chat Cloud. Du kan logge ind i Rocket.Chat-skyen og forbinde din instans med din Cloud-konto hvis du har lyst.", "close-others-livechat-room_description": "Tilladelse til at lukke andre omnikanal-rum", "Close_room_description": "Du skal til at lukke denne chat. Er du sikker på, at du vil fortsætte?", @@ -729,18 +760,18 @@ "Closed_At": "Chat lukket ved", "Closed_by_visitor": "Lukket af besøgende", "Closing_chat": "Lukning af chat", + "Closing_chat_message": "Lukker chatbesked", "Cloud": "Cloud", "Cloud_Register_manually": "Registrer manuelt", - "Cloud_click_here": "Efter kopiering af teksten, gå til Cloud Console. [Klik her](__cloudConsoleUrl__)", + "Cloud_click_here": "Gå til Cloud Consol efter kopiering af teksten. [Klik her](__cloudConsoleUrl__)", "Cloud_register_offline_finish_helper": "Efter afslutningen af registreringsprocessen i Cloud Console, skal du præsenteres for noget tekst. Indsæt det her for at afslutte registreringen.", "Cloud_register_offline_helper": "Arbejdsområder kan registreres manuelt, hvis der ikke er netværksadgang eller den er begrænset. Kopier teksten nedenfor og gå til vores Cloud Console for at afslutte processen.", "Cloud_register_success": "Dit arbejdsområde er blevet registreret!", "Cloud_register_error": "Der har været en fejl ved forsøg på at behandle din anmodning. Prøv igen senere.", - "Cloud_connect_support": "Hvis du stadig ikke har modtaget en registrerings-e-mail, skal du sørge for, at din e-mail er opdateret ovenfor. Hvis du stadig har problemer, kan du kontakte support på", "Cloud_console": "Cloud Console", "Cloud_Info": "Cloud Info", - "Cloud_what_is_it": "Hvad er det her?", - "Cloud_what_is_it_description": "Rocket.Chat Cloud-forbindelse lader dig forbinde en Rocket.Chat-instans, som du selv er vært for, til vores sky. Hvis du gør det, kan du administrere dine licenser, regninger og support i Rocket.Chat Cloud.", + "Cloud_what_is_it": "Hvad er dette?", + "Cloud_what_is_it_description": "Rocket.Chat Cloud Connect lader dig forbinde dit Rocket.Chat-instans, som du selv hoster, til vores services som vi stiller til rådighed i vores Cloud.", "Cloud_what_is_it_services_like": "Tjenester som:", "Cloud_what_is_it_additional": "Derudover vil du være i stand til at administrere licenser, fakturering og support fra Rocket.Chat Cloud Console.", "Cloud_workspace_connected": "Dit arbejdsområde er forbundet til Rocket.Chat Cloud. Ved at logge ind på din Rocket.Chat Cloud-konto her, giver det dig mulighed for at interagere med nogle tjenester som f.eks. Marketplace.", @@ -748,62 +779,64 @@ "Cloud_workspace_disconnect": "Hvis du ikke længere ønsker at bruge cloud-tjenesten, kan du afbryde dit arbejdsområde fra Rocket.Chat Cloud.", "Cloud_login_to_cloud": "Log ind i Rocket.Chat Cloud", "Cloud_logout": "Log ud af Rocket.Chat Cloud", - "Cloud_address_to_send_registration_to": "Den e-mailadresse, din Cloud-tilmelding skal sendes til.", + "Cloud_address_to_send_registration_to": "Den e-mailadresse som din Cloud-tilmelding skal sendes til.", "Cloud_update_email": "Opdatér e-mail", "Cloud_resend_email": "Gensend e-mail", - "Cloud_manually_input_token": "Indtast manuelt den token, der fulgte med Cloud-tilmeldingen.", - "Cloud_registration_required": "Tilmelding påkrævet", - "Cloud_registration_required_description": "Under konfigurationen valgte du tilsyneladende ikke at tilmelde din instans.", - "Cloud_registration_required_link_text": "Tryk her for at tilmelde din instans.", - "Cloud_error_in_authenticating": "Fejl i forbindelse med godkendelse", + "Cloud_manually_input_token": "Indtast manuelt det token der blev modtaget i e-mailen med Cloud-registreringen.", + "Cloud_registration_required": "Registrering er påkrævet", + "Cloud_registration_required_description": "Under opsætningen valgte du tilsyneladende ikke at registrere dit instans.", + "Cloud_registration_required_link_text": "Tryk her for at registrere dit instans.", + "Cloud_error_in_authenticating": "Fejl modtaget under godkendelse", "Cloud_error_code": "Kode: __errorCode__", "Cloud_status_page_description": "Hvis en bestemt cloud-service har problemer, kan du tjekke for kendte problemer på vores statusside på", "Cloud_Service_Agree_PrivacyTerms": "Cloud Service Agree PrivacyTerms", "Cloud_troubleshooting": "Fejlfinding", "Collaborative": "Samarbejde", - "Collapse_Embedded_Media_By_Default": "Skjul embedded media som standard", + "Collapse_Embedded_Media_By_Default": "Skjul som standard embedded medie.", "color": "Farve", "Color": "Farve", "Colors": "Farver", - "Commands": "kommandoer", - "Comment_to_leave_on_closing_session": "Kommentere at forlade på afsluttende session", + "Commands": "Kommandoer", + "Comment_to_leave_on_closing_session": "Afslutningskommentar ved afslutning af session", "Common_Access": "Fælles adgang", "Community": "Fællesskab", "Compact": "Kompakt", - "Condensed": "kondenseret", + "Condensed": "Komprimeret", "Completed": "Fuldført", "Computer": "Computer", "Confirm_new_encryption_password": "Bekræft nyt krypteringskodeord", "Confirm_password": "Bekræft dit kodeord", "Connect": "Forbind", "Connection_Closed": "Forbindelse lukket", - "Connection_Reset": "Forbindelsesnulstilling", + "Connection_Reset": "Nulstilning af forbindelse", + "Connection_success": "LDAP-forbindelse lykkedes", "Connectivity_Services": "Connectivity Services", "Consulting": "Rådgivning", "Consumer_Goods": "Forbrugsvarer", "Contains_Security_Fixes": "Indeholder sikkerhedsrettelser", "Contact": "Kontakt", + "Contact_Chat_History": "Kontakt-chathistorik", "Content": "Indhold", "Continue": "Fortsæt", - "Continuous_sound_notifications_for_new_livechat_room": "Fortsatte lydnotifikationer for nye livechat-rum", + "Continuous_sound_notifications_for_new_livechat_room": "Fortsatte lyd-notifikationer for nye omnikanal-rum", "Conversation": "Samtale", "Conversations": "Samtaler", - "Conversation_closed": "Konversation lukket: __comment__.", + "Conversation_closed": "Samtalen lukket: __comment__.", "Conversation_closing_tags": "Afslutnings-tags for samtale", "Conversation_closing_tags_description": "Afslutnings-tags tildeles automatisk til samtaler ved lukning.", "Conversation_finished": "Samtale afsluttet", - "Conversation_finished_message": "Konversation Færdig Besked", + "Conversation_finished_message": "Afslutningstekst for samtale", "Conversation_finished_text": "Afslutningstekst for samtale", "Conversations_per_day": "Samtaler pr. dag", "conversation_with_s": "samtalen med %s", "Convert_Ascii_Emojis": "Konverter ASCII til emoji", - "Copied": "kopieret", + "Copied": "Kopieret", "Copy": "Kopi", "Copy_text": "Kopier tekst", - "Copy_to_clipboard": "Kopier til udklipsholder", - "COPY_TO_CLIPBOARD": "KOPIER TIL UDKLIPSHOLDER", + "Copy_to_clipboard": "Kopiér til udklipsholder", + "COPY_TO_CLIPBOARD": "KOPIÈR TIL UDKLIPSHOLDER", "could-not-access-webdav": "Kunne ikke tilgå WebDAV", - "Count": "Tælle", + "Count": "Antal", "Counters": "Tællere", "Country": "Land", "Country_Afghanistan": "Afghanistan", @@ -874,13 +907,13 @@ "Country_Eritrea": "Eritrea", "Country_Estonia": "Estland", "Country_Ethiopia": "Etiopien", - "Country_Falkland_Islands_Malvinas": "Falklandsøerne (Malvinas)", + "Country_Falkland_Islands_Malvinas": "Falklandsøerne", "Country_Faroe_Islands": "Færøerne", "Country_Fiji": "Fiji", "Country_Finland": "Finland", "Country_France": "Frankrig", - "Country_French_Guiana": "Fransk guyana", - "Country_French_Polynesia": "Fransk polynesien", + "Country_French_Guiana": "Fransk Guyana", + "Country_French_Polynesia": "Fransk Polynesien", "Country_French_Southern_Territories": "Franske sydlige territorier", "Country_Gabon": "Gabon", "Country_Gambia": "Gambia", @@ -906,7 +939,7 @@ "Country_Iceland": "Island", "Country_India": "Indien", "Country_Indonesia": "Indonesien", - "Country_Iran_Islamic_Republic_of": "Iran, Islamic Republic of", + "Country_Iran_Islamic_Republic_of": "Iran", "Country_Iraq": "Irak", "Country_Ireland": "Irland", "Country_Israel": "Israel", @@ -1013,32 +1046,32 @@ "Country_Sweden": "Sverige", "Country_Switzerland": "Schweiz", "Country_Syrian_Arab_Republic": "Syriske Arabiske Republik", - "Country_Taiwan_Province_of_China": "Taiwan, provinsen Kina", + "Country_Taiwan_Province_of_China": "Taiwan", "Country_Tajikistan": "Tadsjikistan", - "Country_Tanzania_United_Republic_of": "Tanzania, United Republic of", + "Country_Tanzania_United_Republic_of": "Tanzania", "Country_Thailand": "Thailand", "Country_Timor_leste": "Østtimor", - "Country_Togo": "At gå", + "Country_Togo": "Togo", "Country_Tokelau": "Tokelau", "Country_Tonga": "Tonga", "Country_Trinidad_and_Tobago": "Trinidad og Tobago", "Country_Tunisia": "Tunesien", - "Country_Turkey": "Kalkun", + "Country_Turkey": "Tyrkiet", "Country_Turkmenistan": "Turkmenistan", "Country_Turks_and_Caicos_Islands": "Turks og Caicosøerne", "Country_Tuvalu": "Tuvalu", "Country_Uganda": "Uganda", "Country_Ukraine": "Ukraine", "Country_United_Arab_Emirates": "Forenede Arabiske Emirater", - "Country_United_Kingdom": "Det Forenede Kongerige", - "Country_United_States": "Forenede Stater", + "Country_United_Kingdom": "Storbritanien", + "Country_United_States": "USA", "Country_United_States_Minor_Outlying_Islands": "De Forenede Staters mindre yderlige øer", "Country_Uruguay": "Uruguay", "Country_Uzbekistan": "Usbekistan", "Country_Vanuatu": "Vanuatu", "Country_Venezuela": "Venezuela", "Country_Viet_Nam": "Vietnam", - "Country_Virgin_Islands_British": "Jomfruøerne, britiske", + "Country_Virgin_Islands_British": "De britiske Jomfruøer", "Country_Virgin_Islands_US": "Virgin Islands, US", "Country_Wallis_and_Futuna": "Wallis og Futuna", "Country_Western_Sahara": "Vestsahara", @@ -1046,11 +1079,11 @@ "Country_Zambia": "Zambia", "Country_Zimbabwe": "Zimbabwe", "Cozy": "Hyggelig", - "Create": "Skabe", + "Create": "Opret", "create-c": "Opret offentlige kanaler", "create-c_description": "Tilladelse til at oprette offentlige kanaler", "create-d": "Opret direkte beskeder", - "create-d_description": "Tilladelse til at starte direkte meddelelser", + "create-d_description": "Tilladelse til at starte direkte beskeder", "create-invite-links": "Opret invitations-links", "create-invite-links_description": "Tilladelse til at oprette invitations-link til kanaler", "create-p": "Opret private kanaler", @@ -1059,20 +1092,20 @@ "create-user": "Opret bruger", "create-user_description": "Tilladelse til at oprette brugere", "Create_A_New_Channel": "Opret en ny kanal", - "Create_new": "Lav ny", + "Create_new": "Opret ny", "Create_unique_rules_for_this_channel": "Opret unikke regler for denne kanal", "Created": "Oprettet", "Created_at": "Oprettet på", "Created_by": " Oprettet af", "Created_as": "Oprettet som", - "Created_at_s_by_s": "Oprettet på %s ved %s", - "Created_at_s_by_s_triggered_by_s": "Oprettet på %s ved %s udløst af %s", - "CRM_Integration": "CRM Integration", + "Created_at_s_by_s": "Oprettet på %s af %s", + "Created_at_s_by_s_triggered_by_s": "Oprettet på %s af %s udløst af %s", + "CRM_Integration": "CRM-integration", "CROWD_Allow_Custom_Username": "Tillad brugerdefineret brugernavn i Rocket.Chat", - "CROWD_Reject_Unauthorized": "Afvis Uautoriseret", + "CROWD_Reject_Unauthorized": "Afvis uautoriseret", "Crowd_Remove_Orphaned_Users": "Fjern efterladte brugere", - "Crowd_sync_interval_Description": "Intervallet mellem synkroniseringer. Eksempel \"hver 24. time\" eller \"på den første dag i ugen\", flere eksempler på [Cron Text Parser] (http://bunkat.github.io/later/parsers.html#text)", - "Current_Chats": "Nuværende Chats", + "Crowd_sync_interval_Description": "Intervallet mellem synkroniseringer. F.eks. \"hver 24. time\" eller \"på den første dag i ugen\". Flere eksempler kan se på [Cron Text Parser] (http://bunkat.github.io/later/parsers.html#text)", + "Current_Chats": "Nuværende chats", "Current_File": "Nuværende fil", "Current_Import_Operation": "Aktuel importhandling", "Current_Status": "Nuværende status", @@ -1092,25 +1125,25 @@ "Custom_Emoji_Updated_Successfully": "Den brugerdefinerede emoji er opdateret", "Custom_Fields": "Brugerdefinerede felter", "Custom_oauth_helper": "Når du konfigurerer din OAuth-leverandør, skal du oplyse en tilbagekalds-url. Brug
%s
.", - "Custom_oauth_unique_name": "Brugerdefineret oauth-unikt navn", + "Custom_oauth_unique_name": "Brugerdefineret unikt oauth-navn", "Custom_Scripts": "Brugerdefinerede scripts", - "Custom_Script_Logged_In": "Brugerdefineret script til logget ind brugere", + "Custom_Script_Logged_In": "Brugerdefineret script til brugere der er logget ind ", "Custom_Script_Logged_In_Description": "Brugerdefineret script der ALTID kører og for ENHVER bruger der er logget ind. (F.eks. hver gang du går ind i chatten og du er logget ind)", - "Custom_Script_Logged_Out": "Brugerdefineret script til logget ud brugere", + "Custom_Script_Logged_Out": "Brugerdefineret script for brugere der er logget ud", "Custom_Script_Logged_Out_Description": "Brugerdefineret script der ALTID kører og for ENHVER bruger der IKKE er logget ind. (F.eks. hver gang du kommer til login-siden)", "Custom_Script_On_Logout": "Brugerdefineret script til Logout Flow", "Custom_Script_On_Logout_Description": "Brugerdefineret script, der KUN kører ved udførslen af Logout-flowet", - "Custom_Sound_Add": "Tilføj tilpasset lyd", + "Custom_Sound_Add": "Tilføj brugerdefineret lyd", "Custom_Sound_Delete_Warning": "Sletning af en lyd kan ikke fortrydes.", "Custom_Sound_Edit": "Tilpas brugerdefineret lyd", "Custom_Sound_Error_Invalid_Sound": "Ugyldig lyd", "Custom_Sound_Error_Name_Already_In_Use": "Det brugerdefinerede lydnavn er allerede i brug.", "Custom_Sound_Has_Been_Deleted": "Den brugerdefinerede lyd er blevet slettet.", "Custom_Sound_Info": "Brugerdefineret lydinfo", - "Custom_Sound_Saved_Successfully": "Brugerdefineret lyd gemmes med succes", + "Custom_Sound_Saved_Successfully": "Brugerdefineret lyd blev gemt", "Custom_Sounds": "Brugerdefinerede lyde", "Custom_Translations": "Brugerdefinerede oversættelser", - "Custom_Translations_Description": "Skal være et gyldigt JSON, hvor nøgler er sprog, der indeholder en ordbog med nøgle og oversættelser. Eksempel:
{\n\"en\": {\n\"Kanaler\": \"Værelser\"\n},\n\"pt\": {\n\"Kanaler\": \"Salas\"\n}\n}", + "Custom_Translations_Description": "Skal være et gyldigt JSON, hvor nøgler er sprog, der indeholder en ordbog med nøgle og oversættelser. F.eks:
{\n \"en\": {\n  \"Channels\": \"Rooms\"\n },\n\"pt\": {\n  \"Channels\": \"Salas\"\n }\n}", "Custom_User_Status": "Tilpasset brugerstatus", "Custom_User_Status_Edit": "Redigér tilpasset brugerstatus", "Custom_User_Status_Add": "Tilføj brugerdefineret brugerstatus", @@ -1122,8 +1155,8 @@ "Custom_User_Status_Info": "Tilpasset brugerstatus-info", "Custom_User_Status_Updated_Successfully": "Brugerdefineret brugerstatus blev tilføjet med succes", "Customize": "Tilpas", - "CustomSoundsFilesystem": "Custom Sounds Filesystem", - "Dashboard": "instrumentbræt", + "CustomSoundsFilesystem": "Filsystem for brugerdefinerede lyde", + "Dashboard": "Dashboard", "Data_processing_consent_text": "Tekst om samtykke til databehandling", "Data_processing_consent_text_description": "Brug denne indstilling til at forklare, at du kan indsamle, gemme og behandle kundens personlige oplysninger under samtalen.", "Date": "Dato", @@ -1131,8 +1164,8 @@ "Date_to": "til", "days": "dage", "Days": "Dage", - "DB_Migration": "Database Migration", - "DB_Migration_Date": "Database Migrationsdato", + "DB_Migration": "Databasemigration", + "DB_Migration_Date": "Databasemigrationsdato", "DDP_Rate_Limit_IP_Enabled": "Begrænsning via IP: Aktiveret", "DDP_Rate_Limit_IP_Requests_Allowed": "Begræns efter IP: anmodninger tilladt", "DDP_Rate_Limit_IP_Interval_Time": "Begræns efter IP: intervaltid", @@ -1148,7 +1181,7 @@ "DDP_Rate_Limit_Connection_By_Method_Enabled": "Begræns efter forbindelse pr. metode: aktiveret", "DDP_Rate_Limit_Connection_By_Method_Requests_Allowed": "Begræns efter forbindelse pr. metode: anmodninger tilladt", "DDP_Rate_Limit_Connection_By_Method_Interval_Time": "Begræns efter forbindelse pr. metode: intervaltid", - "Deactivate": "Deaktiver", + "Deactivate": "Deaktivér", "Decline": "Afslå", "Decode_Key": "Afkodningsnøgle", "Default": "Standard", @@ -1159,72 +1192,73 @@ "delete-d": "Slet direkte meddelelser", "delete-d_description": "Tilladelse til at slette direkte meddelelser", "delete-message": "Slet besked", - "delete-message_description": "Tilladelse til at slette en besked inden for et værelse", + "delete-message_description": "Tilladelse til at slette en besked inden i et rum", "delete-p": "Slet private kanaler", "delete-p_description": "Tilladelse til at slette private kanaler", "delete-user": "Slet bruger", "delete-user_description": "Tilladelse til at slette brugere", "Delete_message": "Slet besked", "Delete_my_account": "Slet min konto", - "Delete_Room_Warning": "Hvis du sletter et værelse, slettes alle meddelelser, der er indsendt i rummet. Dette kan ikke fortrydes.", - "Delete_User_Warning": "Hvis du sletter en bruger, slettes alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", - "Delete_User_Warning_Delete": "Hvis du sletter en bruger, slettes alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", + "Delete_Room_Warning": "Hvis du sletter et rum, slettes alle meddelelser der er opslået i rummet. Dette kan ikke fortrydes.", + "Delete_User_Warning": "Hvis du sletter en bruger, slettes også alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", + "Delete_User_Warning_Delete": "Hvis du sletter en bruger, slettes også alle meddelelser fra den pågældende bruger. Dette kan ikke fortrydes.", "Delete_User_Warning_Keep": "Brugeren slettes, men deres meddelelser forbliver synlige. Dette kan ikke fortrydes.", "Delete_User_Warning_Unlink": "Hvis du sletter en bruger, fjernes brugernavnet fra alle deres meddelelser. Dette kan ikke fortrydes.", "Deleted": "Slettet!", "Department": "Afdeling", "Department_removed": "Afdelingen fjernet", "Departments": "Afdelinger", - "Deployment_ID": "Distributions-id", + "Deployment_ID": "Deployment-ID", "Description": "Beskrivelse", "Desktop": "Desktop", - "Desktop_Notification_Test": "Desktop Notification Test", - "Desktop_Notifications": "Desktop notifikationer", - "Desktop_Notifications_Default_Alert": "Standardmeddelelse til skrivebordsmeddelelser", - "Desktop_Notifications_Disabled": "Desktop notifikationer er deaktiveret. Skift dine browserindstillinger, hvis du har brug for Notifikationer aktiveret.", - "Desktop_Notifications_Duration": "Varighed af skrivebordsmeddelelser", + "Desktop_Notification_Test": "Desktop-notifikationtest", + "Desktop_Notifications": "Desktop-notifikationer", + "Desktop_Notifications_Default_Alert": "Standardmeddelelse til desktop-notifikationer", + "Desktop_Notifications_Disabled": "Desktop-notifikationer er deaktiveret. Skift dine browserindstillinger, hvis du har brug for at notifikationer aktiveret.", + "Desktop_Notifications_Duration": "Varighed af Desktop-notifikationer", "Desktop_Notifications_Duration_Description": "Antal sekunder, som skrivebordsnotifikationer skal vises i. Dette kan påvirke OS X Notification Center. Hvis du vælger 0, bruges browserens standardindstillinger og OS X Notification Center påvirkes ikke.", - "Desktop_Notifications_Enabled": "Desktop Notifications er aktiveret", + "Desktop_Notifications_Enabled": "Desktop-notifikationer er aktiveret", "Desktop_Notifications_Not_Enabled": "Desktop-meddelelser er ikke aktiveret", "Details": "Detaljer", - "Different_Style_For_User_Mentions": "Forskellige stil til bruger nævner", + "Different_Style_For_User_Mentions": "Forskellig style til brugerhenvisninger", "Direct_message_creation_description": "Du er ved at oprette en chat med flere brugere. Tilføj dem du gerne vil tale med, alle på samme sted ved hjælp af direkte beskeder.", "Direct_message_you_have_joined": "Du har sluttet dig til en ny direkte besked med", - "Direct_message_someone": "Direkte besked nogen", + "Direct_message_someone": "Skriv en direkte besked til nogen", "Direct_Message": "Direkte besked", "Direct_Messages": "Direkte meddelelser", "Direct_Reply": "Direkte svar", "Direct_Reply_Advice": "Du kan svare direkte på denne e-mail. Ændre ikke tidligere e-mails i tråden.", - "Direct_Reply_Debug": "Fejlsøg Direkte Svar", - "Direct_Reply_Debug_Description": "[Pas på] Aktivering af debug-tilstand vil vise din 'Almindelig tekstadgangskode' i administrationskonsollen.", - "Direct_Reply_Delete": "Slet opsnappede e-mails", + "Direct_Reply_Debug": "Fejlsøg direkte svar", + "Direct_Reply_Debug_Description": "OBS. Aktivering af debug-mode vil vise din ''Plain Text Password' i administrationskonsollen.", + "Direct_Reply_Delete": "Slet e-mails", "Direct_Reply_Delete_Description": "OBS! Hvis denne indstilling er aktiveret, slettes alle ulæste meddelelser hvilket ikke kan fortrydes. Også dem der ikke er direkte svar. Den konfigurerede e-mail-postkasse vil derfor altid være tom og kan ikke behandles sideløbende af mennesker.", - "Direct_Reply_Enable": "Aktivér Direkte Svar", + "Direct_Reply_Enable": "Aktivér direkte svar", "Direct_Reply_Enable_Description": "[OBS!] Hvis \"Direkte svar\" er aktiveret vil Rocket.Chat kontrollere den konfigurerede e-mail-postkasse. Alle ulæste e-mails hentes, markeres som læst og bliver behandlet. \"Direkte svar\" bør kun blive aktiveret, hvis den anvendte postkasse udelukkende er beregnet til Rocket.Chat og ikke læses/behandles samtidig med mennesker.", - "Direct_Reply_Frequency": "Email Check Frequency", - "Direct_Reply_Frequency_Description": "(i minutter, standard / minimum 2)", - "Direct_Reply_Host": "Direkte svar vært", + "Direct_Reply_Frequency": "Frekvens for tjek af e-mail", + "Direct_Reply_Frequency_Description": "(i minutter, standard/minimum = 2)", + "Direct_Reply_Host": "Svar host direkte", "Direct_Reply_IgnoreTLS": "IgnoreTLS", "Direct_Reply_Password": "Adgangskode", "Direct_Reply_Port": "Direct_Reply_Port", "Direct_Reply_Protocol": "Direkte svarprotokol", "Direct_Reply_Separator": "Separator", - "Direct_Reply_Separator_Description": "[Kun ændres, hvis du ved præcis, hvad du laver, henviser docs]
Afskiller mellem base og tagdel af e-mail", + "Direct_Reply_Separator_Description": "[Ændre kun dette, hvis du ved præcis hvad du laver, refer docs]
Separator mellem base og tag-del af e-mail", "Direct_Reply_Username": "Brugernavn", - "Direct_Reply_Username_Description": "Brug venligst absolut email, tagging er ikke tilladt, det ville være overskrevet", + "Direct_Reply_Username_Description": "Angiv venligst hele emailen. Tagging er ikke tilladt. Det vil blive overskrevet", "Directory": "Vejviser", - "Disable_Facebook_integration": "Deaktiver Facebook integration", - "Disable_Notifications": "Deaktiver notifikationer", - "Disable_two-factor_authentication": "Deaktiver tofaktorgodkendelse", + "Disable_Facebook_integration": "Deaktivér Facebook-integration", + "Disable_Notifications": "Deaktivér notifikationer", + "Disable_two-factor_authentication": "Deaktivér tofaktorgodkendelse", "Disable_two-factor_authentication_email": "Deaktiver to-faktor-godkendelse via e-mail", - "Disabled": "Handicappet", - "Disallow_reacting": "Tillade Reagering", - "Disallow_reacting_Description": "Tillader ikke at reagere", + "Disabled": "Deaktiveret", + "Disallow_reacting": "Tillad ikke Reacting", + "Disallow_reacting_Description": "Tillader ikke Reacting", + "Discard": "Kassér", "Disconnect": "Afbryd", - "Display_offline_form": "Vis offline formular", + "Display_offline_form": "Vis offline-formular", "Display_setting_permissions": "Vis tilladelser til at ændre indstillinger", "Display_chat_permissions": "Vis chat tilladelser", - "Display_unread_counter": "Vis antal ulæste meddelelser", + "Display_unread_counter": "Vis antallet af ulæste meddelelser", "Displays_action_text": "Viser handlingstekst", "Discussion_name": "Diskussionsnavn", "Discussion": "Diskussion", @@ -1238,24 +1272,24 @@ "Discussion_first_message_title": "Din besked", "Discussion_title": "Opret en ny diskussion", "Dont_ask_me_again": "Spørg mig ikke igen!", - "Dont_ask_me_again_list": "Spørg mig ikke igen listen", + "Dont_ask_me_again_list": "'Spørg-mig-ikke-igen-listen'", "Do_not_display_unread_counter": "Vis ikke nogen tæller for denne kanal", "Do_you_want_to_accept": "Vil du acceptere?", "Do_you_want_to_change_to_s_question": "Vil du skifte til %s?", - "Document_Domain": "Dokument Domæne", + "Document_Domain": "Dokument-domæne", "Domain": "Domæne", - "Domain_added": "domæne tilføjet", + "Domain_added": "Domæne tilføjet", "Domain_removed": "Domæne fjernet", - "Domains": "domæner", - "Domains_allowed_to_embed_the_livechat_widget": "Kommasepareret liste over domæner tilladt at integrere livechat-widgeten. Lad være tomt for at tillade alle domæner.", + "Domains": "Domæner", + "Domains_allowed_to_embed_the_livechat_widget": "Kommasepareret liste over domæner som må integrere livechat-widget'en. Lad det være tomt for at tillade alle domæner.", "Downloading_file_from_external_URL": "Downloader fil fra ekstern URL", "Download_Info": "Download Info", - "Download_My_Data": "Download mine data", + "Download_My_Data": "Download mine data (HTML)", "Download_Pending_Files": "Download afventende filer", - "Download_Snippet": "Hent", + "Download_Snippet": "Download", "Do_not_provide_this_code_to_anyone": "Giv ikke denne kode til nogen.", - "Drop_to_upload_file": "Drop for at uploade filen", - "Dry_run": "Tørt løb", + "Drop_to_upload_file": "Fortryd at uploade filen", + "Dry_run": "Testkørsel", "Dry_run_description": "Sender kun en e-mail til samme adresse som i Fra. E-mailen skal tilhøre en gyldig bruger.", "duplicated-account": "Konto-duplet", "Duplicate_archived_channel_name": "Der findes en arkiveret kanal med navnet `#%s '", @@ -1272,6 +1306,9 @@ "E2E_Enabled_Default_PrivateRooms": "Aktivér kryptering for private rum som standard", "E2E_Encryption_Password_Change": "Ændre krypteringskodeord", "E2E_Encryption_Password_Explanation": "Du kan nu oprette krypterede private grupper og direkte beskeder. Du kan også ændre eksisterende private grupper eller direkte beskeder til at være krypteret.

Dette er ende-til-ende-kryptering så nøglen til at kode/afkode dine beskeder gemmes ikke på serveren. Derfor skal du gemme dit kodeord et sikkert sted. Du bliver bedt om at indtaste det på andre enheder hvor du vil bruge ende-til-ende-kryptering på.", + "E2E_password_reveal_text": "Du kan nu oprette krypterede private grupper og direkte beskeder. Du kan også ændre eksisterende private grupper eller direkte beskeder til at være krypteret.

Dette er end-to-end-kryptering, så nøglen til at kryptere/dekryptere dine beskeder gemmes ikke på serveren. Derfor skal du gemme denne kode et sikkert sted. Du bliver bedt om at indtaste det på andre enheder du vil bruge end-to-end-kryptering på. Lær mere her!

Dit kodeord er: %s

Dette er en automatisk genereret kode. Du kan angive en ny kode til din krypteringsnøgle når som helst fra en hvilken som helst browser, hvor du har indtastet den eksisterende kode.
Dette kodeord gemmes kun i denne browser indtil du gemmer koden og afslutter denne meddelelse.", + "E2E_password_request_text": "For at få adgang til dine krypterede private grupper og direkte beskeder, skal du indtaste dit krypteringsadgangskode.
Du skal indtaste denne adgangskode for at kryptere/dekryptere dine meddelelser på hver klient du bruger, da nøglen ikke er gemt på serveren.", + "E2E_Reset_Key_Explanation": "Denne mulighed fjerner din nuværende E2E-nøgle og logger dig ud.
Når du logger ind igen vil Rocket.Chat generere dig en ny nøgle og gendanne din adgang til ethvert krypteret rum der har et eller flere medlemmer online.
På grund af E2E-krypteringens natur, vil Rocket.Chat ikke være i stand til at gendanne adgang til nogen krypterede rum der ikke har noget medlem online.", "Edit": "Rediger", "Edit_User": "Redigér bruger", "Edit_Invite": "Redigér invitation", @@ -1283,45 +1320,46 @@ "edit-other-user-avatar": "Redigér en anden bruger-avatar", "edit-other-user-avatar_description": "Tilladelse til at ændre andre brugere avatar", "edit-other-user-info": "Rediger andre brugeres oplysninger", - "edit-other-user-info_description": "Tilladelse til at ændre anden brugers navn, brugernavn eller e-mail-adresse.", + "edit-other-user-info_description": "Tilladelse til at ændre andre brugeres navne, brugernavne eller e-mail-adresser.", "edit-other-user-password": "Rediger andre brugeres adgangskoder", "edit-other-user-password_description": "Tilladelse til at ændre andre brugeres adgangskoder. Kræver edit-other-user-info-tilladelse.", - "edit-privileged-setting": "Rediger privilegeret indstilling", + "edit-privileged-setting": "Redigér privilegeret indstilling", "edit-privileged-setting_description": "Tilladelse til at redigere indstillinger", - "edit-room": "Rediger værelse", + "edit-room": "Redigér rum", "edit-room_description": "Tilladelse til at redigere et rums navn, emne, type (privat eller offentlig status) og status (aktiv eller arkiveret)", - "edit-room-retention-policy": "Rediger pladsens tilbageholdelsespolitik", - "edit-room-retention-policy_description": "Tilladelse til at redigere et rums retention politik, for automatisk at slette meddelelser i den", - "Edit_Custom_Field": "Rediger brugerdefineret felt", - "Edit_Department": "Rediger afdeling", - "Edit_previous_message": "`%s` - Rediger tidligere besked", - "Edit_Trigger": "Rediger udløseren", + "edit-room-retention-policy": "Redigér rums opbevaringspolitik", + "edit-room-retention-policy_description": "Tilladelse til at redigere et rums opbevaringspolitik - TIl automatisk at slette meddelelser i den", + "Edit_Custom_Field": "Redigér brugerdefineret felt", + "Edit_Department": "Redigér afdeling", + "Edit_previous_message": "'%s' - Redigér tidligere besked", + "Edit_Trigger": "Redigér triggeren", "edited": "redigeret", - "Editing_room": "Redigeringsrum", + "Editing_room": "Redigerer rum", "Editing_user": "Redigerer bruger", "Education": "Uddannelse", "Email": "E-mail", - "Email_address_to_send_offline_messages": "Email adresse for at sende offline meddelelser", - "Email_already_exists": "Emailen eksisterer allerede", - "Email_body": "Email-organ", + "Email_address_to_send_offline_messages": "E-mailadresse til at sende offline meddelelser med", + "Email_already_exists": "E-mailen eksisterer allerede", + "Email_body": "E-mail-brødtekst", "Email_Change_Disabled": "Din Rocket.Chat-administrator har deaktiveret ændring af e-mail", + "Email_Changed_Description": "Du kan bruge følgende felter:
  • [email] til brugerens e-mail.
  • [Site_Name] og [Site_URL] til henholdsvis applikationsnavnet og URL.
", "Email_Changed_Email_Subject": "[Site_Name] - E-mail-adresse er blevet ændret", "Email_changed_section": "E-mail-adressen blev ændret", - "Email_Footer_Description": "Du kan bruge følgende pladsholdere:
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavnet og webadressen.
", + "Email_Footer_Description": "Du kan bruge følgende felter:
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavnet og URL.
", "Email_from": "Fra", "Email_Notifications_Change_Disabled": "Din Rocket.Chat-administrator har slået e-mail-notifikationer fra", - "Email_Header_Description": "Du kan bruge følgende pladsholdere:
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavnet og webadressen.
", - "Email_Notification_Mode": "Offline Email Notifications", - "Email_Notification_Mode_All": "Hver nævnt / DM", - "Email_Notification_Mode_Disabled": "Handicappet", + "Email_Header_Description": "Du kan bruge følgende felter:
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavnet og URL
", + "Email_Notification_Mode": "Offline e-mail-notifikationer", + "Email_Notification_Mode_All": "Hver omtale/DM", + "Email_Notification_Mode_Disabled": "Deaktiveret", "Email_notification_show_message": "Vis meddelelse i e-mail-notifikation", "Email_or_username": "E-mail eller brugernavn", - "Email_Placeholder": "Indtast venligst din email adresse ...", - "Email_Placeholder_any": "Indtast venligst e-mail-adresser ...", + "Email_Placeholder": "Indtast venligst din e-mailadresse...", + "Email_Placeholder_any": "Indtast venligst e-mail-adresser...", "Email_subject": "Emne", "email_style_label": "E-mail-Style", "email_style_description": "Undgå nedarvede valg", - "Email_verified": "Email bekræftet", + "Email_verified": "E-mail bekræftet", "email_plain_text_only": "Send kun tekst-e-mails", "Emails_sent_successfully!": "Det lykkedes at sende e-mailen!", "Emoji": "Emoji", @@ -1329,33 +1367,34 @@ "EmojiCustomFilesystem": "Brugerdefineret emoji-filsystem", "Empty_title": "Tom titel", "Engagement_Dashboard": "Engagement-Dashboard", - "Enable": "Muliggøre", - "Enable_Auto_Away": "Aktivér automatisk væk", - "Enable_Desktop_Notifications": "Aktivér skrivebordsmeddelelser", + "Enable": "Aktivér", + "Enable_Auto_Away": "Aktivér automatisk \"Ikke til stede\"", + "Enable_Desktop_Notifications": "Aktivér skrivebordsnotifikationer", "Enable_inquiry_fetch_by_stream": "Aktivér inguiry-data fra den server der bruger en Stream", "Enable_Svg_Favicon": "Aktivér SVG favicon", - "Enable_two-factor_authentication": "Aktivér tofaktorgodkendelse", + "Enable_two-factor_authentication": "Aktivér tofaktorgodkendelse vi TOTP", "Enable_two-factor_authentication_email": "Aktivér to-faktor-godkendelse via e-mail", "Enabled": "Aktiveret", "Encrypted": "Krypteret", "Encrypted_channel_Description": "End-to-end krypteringskanal. Søgning vil ikke virke med krypterede kanaler and notifikationer vil muligvis ikke vise the beskeden korrekt.", "Encrypted_message": "Krypteret besked", "Encrypted_setting_changed_successfully": "Den krypterede indstilling blev ændret", + "EncryptionKey_Change_Disabled": "Du kan ikke angive en adgangskode til din krypteringsnøgle, fordi din private nøgle ikke forefindes for denne klient. For at angive en ny adgangskode skal du indlæse din private nøgle vha. din eksisterende adgangskode eller bruge en klient hvor nøglen allerede er indlæst.", "Encryption_key_saved_successfully": "Det lykkedes at gemme din krypteringsnøgle.", "End_OTR": "Afslut OTR", "Enter_a_name": "Indtast et navn", "Enter_a_regex": "Indtast en regex", "Enter_a_department_name": "Indtast et afdelingsnavn", - "Enter_a_room_name": "Indtast et værelse navn", + "Enter_a_room_name": "Indtast et rumnavn", "Enter_a_username": "Indtast et brugernavn", "Enter_a_tag": "Indtast et Tag", - "Enter_Alternative": "Alternativ tilstand (send med Enter + Ctrl / Alt / Shift / CMD)", - "Enter_authentication_code": "Indtast autentifikationskode", - "Enter_Behaviour": "Indtast nøgle adfærd", - "Enter_Behaviour_Description": "Dette ændres, hvis indtaste nøglen vil sende en besked eller foretage en linjeskift", + "Enter_Alternative": "Alternativ mode (send med Enter + Ctrl/Alt/Shift/CMD)", + "Enter_authentication_code": "Angiv godkendelseskode", + "Enter_Behaviour": "Indtast nøgle-adfærd", + "Enter_Behaviour_Description": "Dette ændres hvis Enter-tasten sender en besked eller foretager et linjeskift", "Enter_E2E_password_to_decode_your_key": "Indtast E2E-adgangskode for at afkode din nøgle", "Enter_name_here": "Indtast navn her", - "Enter_Normal": "Normal tilstand (send med Enter)", + "Enter_Normal": "Normal mode (send med Enter)", "Enter_to": "Indtast til", "Enter_your_E2E_password": "Indtast din E2E adgangskode", "Enterprise": "Firma", @@ -1366,7 +1405,8 @@ "error-application-not-found": "Programmet blev ikke fundet", "error-archived-duplicate-name": "Der er en arkiveret kanal med navnet '__room_name__'", "error-avatar-invalid-url": "Ugyldig avatar URL: __url__", - "error-avatar-url-handling": "Fejl under håndtering af avatarindstilling fra en URL (__url__) til __username__", + "error-avatar-url-handling": "Fejl under håndtering af avatarindstilling fra en URL (__url__) for __username__", + "error-business-hours-are-closed": "Kontortid er lukket", "error-cannot-delete-app-user": "At slette en app-bruger er ikke tilladt. Afinstallér den tilhørende app for at fjerne den.", "error-cant-invite-for-direct-room": "Kan ikke invitere bruger til direkte rum", "error-channels-setdefault-is-same": "Standardindstillingen for kanaler er den samme som den der ville blive ændret til.", @@ -1379,58 +1419,58 @@ "error-direct-message-file-upload-not-allowed": "Fildeling ikke tilladt i direkte meddelelser", "error-duplicate-channel-name": "Der findes en kanal med navnet '__channel_name__'", "error-edit-permissions-not-allowed": "Redigering af tilladelser er ikke tilladt", - "error-email-domain-blacklisted": "E-mail-domænet er sortlistet", + "error-email-domain-blacklisted": "E-mail-domænet er blacklistet", "error-email-send-failed": "Fejl ved forsøg på at sende e-mail: __message__", "error-essential-app-disabled": "Fejl: En Rocket.Chat-app, der er vigtig for dette er deaktiveret. Kontakt din administrator", "error-password-same-as-current": "Indtast den aktuelle adgangskode", "error-field-unavailable": "__field__ er allerede i brug :(", "error-file-too-large": "Filen er for stor", "error-forwarding-chat-same-department": "Den valgte afdeling og det nuværende afdelings-rum er det samme", - "error-importer-not-defined": "Importøren blev ikke defineret korrekt, det mangler importklassen.", + "error-importer-not-defined": "Importer blev ikke defineret korrekt. Der mangler import-class'en", "error-import-file-extract-error": "Udpakning af importfil fejlede", "error-import-file-is-empty": "Den importerede fil ser ud til at være tom", "error-import-file-missing": "Filen der skal importeres blev ikke fundet på den specificerede sti.", - "error-input-is-not-a-valid-field": "__input__ er ikke gyldigt __field__", - "error-invalid-actionlink": "Ugyldigt handlingslink", + "error-input-is-not-a-valid-field": "__input__ er ikke et gyldigt __field__", + "error-invalid-actionlink": "Ugyldigt action-link", "error-invalid-account": "Ugyldig konto", "error-invalid-arguments": "Ugyldige argumenter", - "error-invalid-asset": "Ugyldigt aktiv", + "error-invalid-asset": "Ugyldigt asset", "error-invalid-channel": "Ugyldig kanal.", "error-invalid-channel-start-with-chars": "Ugyldig kanal. Start med @ eller #", "error-invalid-custom-field": "Ugyldigt brugerdefineret felt", - "error-invalid-custom-field-name": "Ugyldigt brugerdefineret feltnavn. Brug kun bogstaver, tal, bindestreger og understreger.", + "error-invalid-custom-field-name": "Ugyldigt brugerdefineret feltnavn. Brug kun bogstaver, tal, bindestreger og understreg.", "error-invalid-custom-field-value": "Ugyldig værdi for __field__ field", - "error-invalid-date": "Ugyldig dato leveret.", + "error-invalid-date": "Ugyldig dato er angivet.", "error-invalid-description": "Ugyldig beskrivelse", "error-invalid-domain": "Ugyldigt domæne", - "error-invalid-email": "Ugyldig email __email__", - "error-invalid-email-address": "ugyldig emailadresse", + "error-invalid-email": "Ugyldig e-mail: __email__", + "error-invalid-email-address": "ugyldig e-mailadresse", "error-invalid-file-height": "Ugyldig filhøjde", "error-invalid-file-type": "Ugyldig filtype", "error-invalid-file-width": "Ugyldig filbredde", - "error-invalid-from-address": "Du har meddelt en ugyldig FROM-adresse.", + "error-invalid-from-address": "Du har meddelt en ugyldig FRA-adresse.", "error-invalid-inquiry": "Ugyldig anmodning", "error-invalid-integration": "Ugyldig integration", "error-invalid-message": "Ugyldig besked", "error-invalid-method": "Ugyldig metode", "error-invalid-name": "Ugyldigt navn", - "error-invalid-password": "Forkert kodeord", + "error-invalid-password": "Ugyldigt kodeord", "error-invalid-permission": "Ugyldig tilladelse", - "error-invalid-redirectUri": "Ugyldig omdirigeringUri", + "error-invalid-redirectUri": "Ugyldig redirect-Uri", "error-invalid-role": "Ugyldig rolle", - "error-invalid-room": "Ugyldigt værelse", + "error-invalid-room": "Ugyldigt rum", "error-invalid-room-name": "__room_name__ er ikke et gyldigt rumnavn", "error-invalid-room-type": "__type__ er ikke en gyldig værelsestype.", - "error-invalid-settings": "Ugyldige indstillinger leveret", + "error-invalid-settings": "Der er angivet ugyldige indstillinger", "error-invalid-subscription": "Ugyldigt abonnement", - "error-invalid-token": "Ugyldig Token", - "error-invalid-triggerWords": "Ugyldig udløserWords", - "error-invalid-urls": "Ugyldige webadresser", + "error-invalid-token": "Ugyldigt token", + "error-invalid-triggerWords": "Ugyldigt trigger-ord", + "error-invalid-urls": "Ugyldige URL'er", "error-invalid-user": "Ugyldig bruger", "error-invalid-username": "Ugyldigt brugernavn", "error-invalid-value": "Ugyldig gyldig", "error-invalid-webhook-response": "Webhook-URL'en reagerede med en anden status end 200", - "error-message-deleting-blocked": "Beskeden sletter er blokeret", + "error-message-deleting-blocked": "Beskedsletning er blokeret", "error-message-editing-blocked": "Meddelelsesredigering er blokeret", "error-message-size-exceeded": "Meddelelsesstørrelsen overstiger Message_MaxAllowedSize", "error-missing-unsubscribe-link": "Du skal angive linket [unsubscribe].", @@ -1449,12 +1489,12 @@ "error-pinning-message": "Beskeden kunne ikke fastgøres", "error-unpinning-message": "Beskeden kunne ikke frigøres", "error-push-disabled": "Push er deaktiveret", - "error-remove-last-owner": "Dette er den sidste ejer. Indstil en ny ejer, før du fjerner denne.", + "error-remove-last-owner": "Dette er den sidste ejer. Angiv en ny ejer før du fjerner denne.", "error-returning-inquiry": "Fejl ved returnering af forespørgsel til køen", "error-tags-must-be-assigned-before-closing-chat": "Tags skal tildeles før chatten lukkes", - "error-role-in-use": "Kan ikke slette rollen, fordi den er i brug", - "error-role-name-required": "Rolle navn er påkrævet", - "error-room-is-not-closed": "Værelset er ikke lukket", + "error-role-in-use": "Kan ikke slette rollen fordi den er i brug", + "error-role-name-required": "Rollenavn er påkrævet", + "error-room-is-not-closed": "Rummet er ikke lukket", "error-selected-agent-room-agent-are-same": "Den valgte agent og agenten for rummet er den samme", "Error_Site_URL": "Ugyldigt Site_Url", "Error_Site_URL_description": "Opdatér venligst din \"Site_Url\" -indstilling. Se flere oplysninger her ", @@ -1463,31 +1503,34 @@ "error-personal-access-tokens-are-current-disabled": "Personlige adgangstokens er i øjeblikket deaktiveret", "error-token-already-exists": "Et token med dette navn findes allerede", "error-token-does-not-exists": "Token findes ikke", - "error-too-many-requests": "Fejl, for mange anmodninger. Venligst sænk. Du skal vente __sekonds__ sekunder før du prøver igen.", + "error-too-many-requests": "Fejl. For mange anmodninger. Tag det roligt. Du skal vente __seconds__ sekunder før du prøver igen.", + "error-transcript-already-requested": "Transkript allerede anmodet", "error-user-has-no-roles": "Bruger har ingen roller", "error-user-is-not-activated": "Bruger er ikke aktiveret", "error-user-is-not-agent": "Brugeren er ikke en omnikanal-agent", "error-user-is-offline": "Bruger hvis offline", - "error-user-limit-exceeded": "Antallet af brugere, du forsøger at invitere til #kanalenavn, overstiger grænsen angivet af administratoren", + "error-user-limit-exceeded": "Antallet af brugere du forsøger at invitere til #channel_name overstiger grænsen angivet af administratoren", "error-user-not-in-room": "Brugeren er ikke i dette rum", - "error-logged-user-not-in-room": "Du er ikke i rummet `%s`", + "error-logged-user-not-in-room": "Du er ikke i rummet '%s'", "error-user-registration-disabled": "Brugerregistrering er deaktiveret", "error-user-registration-secret": "Brugerregistrering er kun tilladt via hemmelig URL", "error-validating-department-chat-closing-tags": "Mindst en afslutnings-tag er påkrævet når afdelingen kræver tags i forbindelse med afslutningssamtaler.", - "error-you-are-last-owner": "Du er den sidste ejer. Venligst indstil ny ejer før du forlader værelset.", + "error-you-are-last-owner": "Du er den sidste ejer. Angiv en ny ejer før du forlader rummet.", "error-starring-message": "Beskeden kunne ikke blive stjernemarkeret", "Error_404": "Fejl: 404", "Error_changing_password": "Fejl ved ændring af adgangskode", - "Error_loading_pages": "Fejl ved ilægning af sider", - "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "Fejl: Rocket.Chat kræver oplog tailing, når du kører i flere tilfælde", - "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "Sørg for, at din MongoDB er i ReplicaSet-tilstand og MONGO_OPLOG_URL miljøvariabel er defineret korrekt på applikationsserveren", + "Error_loading_pages": "Fejl ved load af sider", + "Error_login_blocked_for_ip": "Login er blevet midlertidigt blokeret til denne IP", + "Error_login_blocked_for_user": "Login er blevet midlertidigt blokeret for denne bruger", + "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "Fejl: Rocket.Chat kræver oplog-tailing når du anvender flere instanser", + "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "Sørg for at din MongoDB er i ReplicaSet-mode og MONGO_OPLOG_URL miljøvariabel er defineret korrekt på applikationsserveren", "Error_sending_livechat_transcript": "Fejl ved afsendelse af omnikanals-afskrift", "Error_sending_livechat_offline_message": "Fejl ved afsendelse af omnikanals off-line-besked", "Errors_and_Warnings": "Fejl og advarsler", "Esc_to": "Esc til", - "Event_Trigger": "Event Trigger", - "Event_Trigger_Description": "Vælg hvilken type begivenhed der udløser denne Outgoing WebHook Integration", - "every_second": "En gang hvert sekund", + "Event_Trigger": "Event-trigger", + "Event_Trigger_Description": "Vælg hvilken type event der udløser denne udgående WebHook-Integration", + "every_second": "Èn gang hvert sekund", "every_10_seconds": "En gang hvert 10. sekund", "every_minute": "En gang hvert minut", "every_5_minutes": "En gang hvert 5. minut", @@ -1497,12 +1540,12 @@ "every_day": "En gang om dagen", "Everyone_can_access_this_channel": "Alle kan få adgang til denne kanal", "Exact": "Præcis", - "Example_s": "Eksempel: %s", + "Example_s": "F.eks: %s", "Example_payload": "Eksempel på data", - "Exclude_Botnames": "Ekskluder Bots", - "Exclude_Botnames_Description": "Udbred ikke meddelelser fra bots, hvis navn svarer til det regulære udtryk ovenfor. Hvis tomt er tomt, vil alle meddelelser fra bots blive spredt.", + "Exclude_Botnames": "Ekskludér Bots", + "Exclude_Botnames_Description": "Udbred ikke meddelelser fra bots, hvis navn svarer til det regulære udtryk ovenfor. Hvis tomt er tomt, vil alle meddelelser fra bots blive udbredt.", "Exclude_pinned": "Ekskluder pinnede meddelelser", - "except_pinned": "(undtagen dem, der er fastgjort)", + "except_pinned": "(undtagen dem der er fastgjort)", "Execute_Synchronization_Now": "Udfør synkronisering nu", "Exit_Full_Screen": "Afslut fuldskærm", "Experimental_Feature_Alert": "Dette er en eksperimentel funktion! Vær opmærksom på, at det kan blive ændret, holde op med at virke eller endda blive fjernet i fremtiden uden nogen meddelelse herom.", @@ -1513,10 +1556,11 @@ "Extended": "Udvidet", "External_Domains": "Eksterne domæner", "External_Users": "Eksterne brugere", - "External_Queue_Service_URL": "Webadresse for ekstern køtjeneste", + "External_Queue_Service_URL": "URL for ekstern kø-service", "External_Service": "Ekstern service", - "Facebook_Page": "Facebook side", + "Facebook_Page": "Facebookside", "Failed": "Mislykkedes", + "Login_Attempts": "Mislykkede loginforsøg", "Failed_to_activate_invite_token": "Kunne ikke aktivere invitationstoken", "Failed_To_Download_Files": "Kunne ikke downloade filer", "Failed_to_generate_invite_link": "Kunne ikke generere invitationslink", @@ -1529,7 +1573,7 @@ "Favorite_Rooms": "Aktivér foretrukne rum", "Favorite": "Favorit", "Favorites": "Foretrukne", - "Feature_Depends_on_Livechat_Visitor_navigation_as_a_message_to_be_enabled": "Denne funktion afhænger af \"Send besøgendes navigationshistorik som en besked\" for at være aktiveret.", + "Feature_Depends_on_Livechat_Visitor_navigation_as_a_message_to_be_enabled": "Denne funktion afhænger af \"Send besøgendes navigationshistorik som en besked\" er aktiveret.", "Features_Enabled": "Funktioner aktiveret", "Federation_Dashboard": "Federation Dashboard", "FEDERATION_Discovery_Method": "Opdagelsesmetode", @@ -1553,84 +1597,86 @@ "FEDERATION_Error_user_is_federated_on_rooms": "Du kan ikke fjerne Federations-brugere der tilhører rum", "Field": "Felt", "Field_removed": "Felt fjernet", - "Field_required": "Felt krævet", + "Field_required": "Felt påkrævet", "File": "Fil", "File_Downloads_Started": "Filoverførsler startet", "Files": "Filer", "File_exceeds_allowed_size_of_bytes": "Filen overstiger den tilladte størrelse på __size__.", - "File_name_Placeholder": "Søg filer ...", - "File_removed_by_automatic_prune": "Fil fjernet ved automatisk beskæring", + "File_name_Placeholder": "Søg filer...", + "File_removed_by_automatic_prune": "Fil fjernet ved automatisk sletning", "File_not_allowed_direct_messages": "Fildeling ikke tilladt i direkte meddelelser.", - "File_removed_by_prune": "Fil fjernet af prune", + "File_removed_by_prune": "Fil fjernet ved sletning", "File_Path": "Filsti", "File_Type": "Filtype", "File_type_is_not_accepted": "Filtype accepteres ikke.", "File_uploaded": "Fil uploadet", "File_uploaded_successfully": "Fil uploadet med succes", "File_URL": "Fil-URL", - "FileUpload": "Fil upload", + "FileUpload": "Fil-upload", "FileUpload_Disabled": "Filoverførsler er deaktiveret.", - "FileUpload_Enabled": "Filoverførsler aktiveret", + "FileUpload_Enabled": "Filoverførsler er aktiveret", "FileUpload_Error": "Filoverførselsfejl", - "FileUpload_Enabled_Direct": "Filoverførsler aktiveret i direkte meddelelser", + "FileUpload_Enabled_Direct": "Filoverførsler er aktiveret i direkte meddelelser", "FileUpload_Enable_json_web_token_for_files": "Aktivér Json Web Tokens-beskyttelse til fil-uploads", "FileUpload_Enable_json_web_token_for_files_description": "Tilføjer en JWT to uploadede fil-URLS", "FileUpload_json_web_token_secret_for_files": "Fil-upload Json Web Token Secret", "FileUpload_json_web_token_secret_for_files_description": "Fil-upload Json Web Token Secret (Bruges til at kunne få adgang til uploadede filer uden godkendelse)", "FileUpload_File_Empty": "Filen er tom", - "FileUpload_FileSystemPath": "Systemvej", + "FileUpload_FileSystemPath": "Systemsti", "FileUpload_GoogleStorage_AccessId": "Google Storage Access-id", - "FileUpload_GoogleStorage_AccessId_Description": "Adgangs-id'et er generelt i et e-mail-format, for eksempel: \"example-test@example.iam.gserviceaccount.com\"", - "FileUpload_GoogleStorage_Bucket": "Google Storage Bucket Name", - "FileUpload_GoogleStorage_Bucket_Description": "Navens navn, som filerne skal uploades til.", - "FileUpload_GoogleStorage_Proxy_Avatars": "Proxy Avatars", - "FileUpload_GoogleStorage_Proxy_Avatars_Description": "Proxy-avatar filoverførsler via din server i stedet for direkte adgang til aktivets webadresse", + "FileUpload_GoogleStorage_AccessId_Description": "Adgangs-id'et er generelt i et e-mail-format. F.eks: \"example-test@example.iam.gserviceaccount.com\"", + "FileUpload_GoogleStorage_Bucket": "Google Storage Bucket-navn", + "FileUpload_GoogleStorage_Bucket_Description": "Navnet på bucket'en som filerne skal uploades til.", + "FileUpload_GoogleStorage_Proxy_Avatars": "Proxy-Avatars", + "FileUpload_GoogleStorage_Proxy_Avatars_Description": "Proxy-avatar filoverførsler via din server i stedet for direkte adgang til aktivets URL", "FileUpload_GoogleStorage_Proxy_Uploads": "Proxy-uploads", "FileUpload_GoogleStorage_Proxy_Uploads_Description": "Proxy upload filoverførsler via din server i stedet for direkte adgang til aktivets URL", "FileUpload_GoogleStorage_Secret": "Google Storage Secret", - "FileUpload_GoogleStorage_Secret_Description": "Følg venligst disse instruktionerog indsæt resultatet her.", - "FileUpload_MaxFileSize": "Maksimal filoverførselsstørrelse (i byte)", + "FileUpload_GoogleStorage_Secret_Description": "Følg venligst disse instruktionerog indsæt resultatet her.", + "FileUpload_MaxFileSize": "Maksimal filoverførselsstørrelse (i bytes)", "FileUpload_MaxFileSizeDescription": "Indstil det til -1 for at fjerne begrænsningen for filstørrelsen.", - "FileUpload_MediaType_NotAccepted": "Medietyper, der ikke accepteres", + "FileUpload_MediaType_NotAccepted": "Medietyper der ikke accepteres", "FileUpload_MediaTypeBlackList": "Blokerede medietyper", "FileUpload_MediaTypeBlackListDescription": "Kommasepareret liste over medietyper. Denne indstilling prioriteres over de accepterede medietyper.", "FileUpload_MediaTypeWhiteList": "Accepterede medietyper", "FileUpload_MediaTypeWhiteListDescription": "Kommasepareret liste over medietyper. Lad det være tomt for at acceptere alle medietyper.", "FileUpload_ProtectFiles": "Beskyt uploadede filer", - "FileUpload_ProtectFilesDescription": "Kun autentiserede brugere får adgang", - "FileUpload_S3_Acl": "aCL", + "FileUpload_ProtectFilesDescription": "Kun autentiserede brugere vil have adgang", + "FileUpload_RotateImages": "Rotér billeder ved upload", + "FileUpload_RotateImages_Description": "Aktivering af denne indstilling kan forårsage tab af billedkvalitet", + "FileUpload_S3_Acl": "Acl", "FileUpload_S3_AWSAccessKeyId": "Adgangstast", "FileUpload_S3_AWSSecretAccessKey": "Secret Key", - "FileUpload_S3_Bucket": "Skovnavn", - "FileUpload_S3_BucketURL": "Bucket URL", - "FileUpload_S3_CDN": "CDN Domain for downloads", - "FileUpload_S3_ForcePathStyle": "Force Path Style", - "FileUpload_S3_Proxy_Avatars": "Proxy Avatars", + "FileUpload_S3_Bucket": "Bucket-navn", + "FileUpload_S3_BucketURL": "Bucket-URL", + "FileUpload_S3_CDN": "CDN-domænde til downloads", + "FileUpload_S3_ForcePathStyle": "Gennemtving Path-Style", + "FileUpload_S3_Proxy_Avatars": "Proxy-Avatars", "FileUpload_S3_Proxy_Avatars_Description": "Proxy-avatar filoverførsler via din server i stedet for direkte adgang til aktivets webadresse", "FileUpload_S3_Proxy_Uploads": "Proxy-uploads", "FileUpload_S3_Proxy_Uploads_Description": "Proxy upload filoverførsler via din server i stedet for direkte adgang til aktivets URL", - "FileUpload_S3_Region": "Område", + "FileUpload_S3_Region": "Region", "FileUpload_S3_SignatureVersion": "Signaturversion", "FileUpload_S3_URLExpiryTimeSpan": "URL-udløbstidspunkt", - "FileUpload_S3_URLExpiryTimeSpan_Description": "Tid efter hvilken Amazon S3 genererede webadresser vil ikke længere være gyldige (i sekunder). Hvis den er indstillet til mindre end 5 sekunder, ignoreres dette felt.", + "FileUpload_S3_URLExpiryTimeSpan_Description": "Tid efter hvilken Amazon S3 genererede webadresser ikke længere vil være gyldige (i sekunder). Hvis den er indstillet til mindre end 5 sekunder, ignoreres dette felt.", "FileUpload_Storage_Type": "Opbevaringstype", - "FileUpload_Webdav_Upload_Folder_Path": "Upload mappepath", - "FileUpload_Webdav_Upload_Folder_Path_Description": "WebDAV-mappebane, som filerne skal uploades til", - "FileUpload_Webdav_Server_URL": "WebDAV Server Access URL", - "Force_Disable_OpLog_For_Cache": "Force Deaktiver OpLog for Cache", + "FileUpload_Webdav_Upload_Folder_Path": "Upload mappesti", + "FileUpload_Webdav_Upload_Folder_Path_Description": "WebDAV-mappesti som filerne skal uploades til", + "FileUpload_Webdav_Server_URL": "WebDAV Server Access-URL", + "Force_Disable_OpLog_For_Cache": "Gennemtving deaktivering af OpLog for Cache", "Force_Screen_Lock": "Tvungen skærmlås", "Force_Screen_Lock_description": "Når det er aktiveret vil du tvinge dine brugere til at bruge en PIN/BIOMETRY/FACEID til at låse appen op.", "Force_Screen_Lock_After": "Tving skærmlåsen efter", "Force_Screen_Lock_After_description": "Tiden i sek. til der igen anmodes om adgangskode efter afslutningen af den seneste session.", - "FileUpload_Webdav_Username": "WebDAV Brugernavn", + "FileUpload_Webdav_Username": "WebDAV-brugernavn", "Force_Disable_OpLog_For_Cache_Description": "Vil ikke bruge OpLog til at synkronisere cache, selvom den er tilgængelig", "FileUpload_Webdav_Password": "WebDAV-adgangskode", - "FileUpload_Webdav_Proxy_Avatars": "Proxy Avatars", - "FileUpload_Webdav_Proxy_Avatars_Description": "Proxy-avatar filoverførsler via din server i stedet for direkte adgang til aktivets webadresse", + "FileUpload_Webdav_Proxy_Avatars": "Proxy-avatars", + "FileUpload_Webdav_Proxy_Avatars_Description": "Proxy-avatar filoverførsler via din server i stedet for direkte adgang til aktivets URL", "FileUpload_Webdav_Proxy_Uploads": "Proxy-uploads", "FileUpload_Webdav_Proxy_Uploads_Description": "Proxy upload filoverførsler via din server i stedet for direkte adgang til aktivets URL", "files": "filer", - "Files_only": "Fjern kun de vedhæftede filer, hold meddelelser", + "Files_only": "Fjern kun de vedhæftede filer. Behold meddelelser", "FileSize_KB": "__fileSize__ KB", "FileSize_MB": "__filSize__ MB", "FileSize_Bytes": "__fileSize__ Bytes", @@ -1641,25 +1687,28 @@ "Flags": "Flag", "Follow_message": "Følg besked", "Following": "Følger", - "Follow_social_profiles": "Følg vores sociale profiler, gaffel os på github og del dine tanker om rocket.chat appen på vores trello bord.", + "Nickname": "Kaldenavn", + "Nickname_Placeholder": "Indtast dit kaldenavn...", + "Not_Following": "Følger ikke", + "Follow_social_profiles": "Følg vores sociale profiler, fork os på github og del dine tanker om rocket.chat appen på vores trello-board.", "Fonts": "Skrifttyper", "Food_and_Drink": "Mad og drikke", "Footer": "Sidefod", - "Footer_Direct_Reply": "Footer Når Direkte svar er aktiveret", - "For_more_details_please_check_our_docs": "For flere detaljer, se vores dokumenter.", - "For_your_security_you_must_enter_your_current_password_to_continue": "For din sikkerhed skal du indtaste din nuværende adgangskode for at fortsætte", - "force-delete-message": "Force Slet Besked", - "force-delete-message_description": "Tilladelse til at slette en meddelelse omgå alle begrænsninger", - "Force_SSL": "Force SSL", + "Footer_Direct_Reply": "Sidefod når direkte svar er aktiveret", + "For_more_details_please_check_our_docs": "Se vores dokumenter for flere detaljer.", + "For_your_security_you_must_enter_your_current_password_to_continue": "For din egen sikkerhed, skal du indtaste din nuværende adgangskode for at fortsætte", + "force-delete-message": "Gennemtving sletning af besked", + "force-delete-message_description": "Tilladelse til at slette en meddelelse omgår alle restriktioner", + "Force_SSL": "Gennemtving SSL", "Force_SSL_Description": "* Forsigtig! * _Force SSL_ skal aldrig bruges med omvendt proxy. Hvis du har en omvendt proxy, skal du gøre omdirigeringen der. Denne mulighed findes til implementeringer som Heroku, der tillader ikke omdirigeringskonfigurationen ved omvendt proxy.", "Force_visitor_to_accept_data_processing_consent": "Tving besøgende til at acceptere samtykke til databehandling", "Force_visitor_to_accept_data_processing_consent_description": "Besøgende har ikke tilladelse til at begynde at chatte uden samtykke.", "Invalid_Export_File": "Den uploadede fil er ikke en gyldig %s-eksportfil.", "Force_visitor_to_accept_data_processing_consent_enabled_alert": "Aftale om databehandling skal være baseret på en gennemsigtig forståelse af grunden til behandlingen. På grund af dette skal du udfylde nedenstående indstilling, som vises for brugerne for at give grundene til indsamling og behandling af dine personlige oplysninger.", - "Forgot_password": "Glemt din adgangskode", + "Forgot_password": "Har du glemt din adgangskode?", "Forgot_Password_Description": "Du kan bruge følgende pladsholdere:
  • [Forgot_Password_Url] til adgangskodegendannelseswebadressen.
  • [navn], [fname], [lname] for brugerens fulde navn, fornavn eller efternavn.
  • [email] for brugerens e-mail.
  • [Site_Name] og [Site_URL] for henholdsvis Applikationsnavn og URL.
", - "Forgot_Password_Email": "Klik på herfor at nulstille din adgangskode.", - "Forgot_Password_Email_Subject": "[Site_Name] - Password Recovery", + "Forgot_Password_Email": "Klik her for at nulstille din adgangskode.", + "Forgot_Password_Email_Subject": "[Site_Name] - Genskabelse af kodeord", "Forgot_password_section": "Glemt kodeord", "Forward": "Frem", "Forward_chat": "Videresend chat", @@ -1669,7 +1718,7 @@ "Frequently_Used": "Ofte brugt", "Friday": "Fredag", "From": "Fra", - "From_Email": "Fra Email", + "From_Email": "Fra e-mail", "From_email_warning": "Advarsel: Feltet Fra er underlagt dine e-mail-serverindstillinger.", "Full_Screen": "Fuldskærm", "Gaming": "Spil", @@ -1677,32 +1726,40 @@ "Generate_new_key": "Generér en ny nøgle", "Generating_key": "Genererer nøgle", "Get_link": "Få link", + "get-password-policy-forbidRepeatingCharacters": "Adgangskoden bør ikke indeholde gentagne tegn", + "get-password-policy-forbidRepeatingCharactersCount": "Adgangskoden bør ikke indeholde mere end __forbidRepeatingCharactersCount__ gentagne tegn", + "get-password-policy-maxLength": "Adgangskoden skal maksimalt være __maxLength__ tegn lang", + "get-password-policy-minLength": "Adgangskoden skal mindst være __maxLength__ tegn lang", + "get-password-policy-mustContainAtLeastOneLowercase": "Adgangskoden skal indeholde mindst et lille bogstav", + "get-password-policy-mustContainAtLeastOneNumber": "Adgangskoden skal indeholde mindst et tal", + "get-password-policy-mustContainAtLeastOneSpecialCharacter": "Adgangskoden skal indeholde mindst én specialtegn", + "get-password-policy-mustContainAtLeastOneUppercase": "Adgangskoden skal indeholde mindst et stort bogstav", "Generate_New_Link": "Generér nyt link", "github_no_public_email": "Du har ikke nogen e-mail som offentlig e-mail i din GitHub-konto", - "Give_a_unique_name_for_the_custom_oauth": "Giv et unikt navn til den brugerdefinerede oauth", - "Give_the_application_a_name_This_will_be_seen_by_your_users": "Giv programmet et navn. Dette vil blive set af dine brugere.", + "Give_a_unique_name_for_the_custom_oauth": "Angiv et unikt navn til den brugerdefinerede oauth", + "Give_the_application_a_name_This_will_be_seen_by_your_users": "Giv applikationen et navn. Dette ses af dine brugere.", "Global": "Global", "Global Policy": "Global politik", - "Global_purge_override_warning": "En global retention politik er på plads. Hvis du forlader \"Overstyr global retention policy\" fra, kan du kun anvende en politik, der er strengere end den globale politik.", + "Global_purge_override_warning": "Der er blevet oprettet en global opbevaringspolitikken. Hvis du lader \"Tilsidesættelse af global opbevaringspolitik\" være slået fra, kan du kun anvende en politik, der er strengere end den globale politik.", "Global_Search": "Global søgning", "Go_to_your_workspace": "Gå til dit arbejdsområde", - "Google_Vision_usage_limit_exceeded": "Brugen af ​​Google Vision er overskredet", + "Google_Vision_usage_limit_exceeded": "Grænsen for anvendelsen af Google Vision er overskredet", "GoogleCloudStorage": "Google Cloud Storage", "GoogleNaturalLanguage_ServiceAccount_Description": "JSON-fil for servicekonto nøgle. Flere oplysninger kan findes [her] (https://cloud.google.com/natural-language/docs/common/auth#set_up_a_service_account)", "GoogleTagManager_id": "Google Tag Manager-id", - "GoogleVision_Block_Adult_Images": "Bloker voksenbilleder", + "GoogleVision_Block_Adult_Images": "Bloker voksen-indhold", "GoogleVision_Block_Adult_Images_Description": "Blokerende voksne billeder virker ikke, når den månedlige grænse er nået", - "GoogleVision_Current_Month_Calls": "Nuværende måned opfordrer", + "GoogleVision_Current_Month_Calls": "Nuværende antal kald om måneden", "GoogleVision_Enable": "Aktivér Google Vision", - "GoogleVision_Max_Monthly_Calls": "Maks. Månedlige opkald", - "GoogleVision_Max_Monthly_Calls_Description": "Brug 0 for ubegrænset", - "GoogleVision_ServiceAccount": "Google Vision Service Konto", - "GoogleVision_ServiceAccount_Description": "Opret en server nøgle (JSON format) og indsæt JSON indhold her", + "GoogleVision_Max_Monthly_Calls": "Maks antal månedlige kald", + "GoogleVision_Max_Monthly_Calls_Description": "Angiv 0 for ubegrænset", + "GoogleVision_ServiceAccount": "Google Vision service-konto", + "GoogleVision_ServiceAccount_Description": "Opret en server-nøgle (JSON format) og indsæt JSON indholdet her", "GoogleVision_Type_Document": "Dokumenttekstdetektion", - "GoogleVision_Type_Faces": "Ansigtsgenkendelse", - "GoogleVision_Type_Labels": "Etiketter Påvisning", - "GoogleVision_Type_Landmarks": "Landemærker Opdagelse", - "GoogleVision_Type_Logos": "Logosøgning", + "GoogleVision_Type_Faces": "Ansigts-genkendelse", + "GoogleVision_Type_Labels": "Labels-genkendelse", + "GoogleVision_Type_Landmarks": "Landemærke-genkendelse", + "GoogleVision_Type_Logos": "Logo-søgning", "GoogleVision_Type_Properties": "Egenskaber (farve) detektion", "GoogleVision_Type_SafeSearch": "SafeSearch Detection", "GoogleVision_Type_Similar": "Søg Lignende billeder", @@ -1710,15 +1767,16 @@ "Graphql_Enabled": "GraphQL aktiveret", "Graphql_CORS": "GraphQL CORS", "Graphql_Subscription_Port": "GraphQL-abonnementsport", + "Group_by": "Gruppér pr.", "Group_by_Type": "Gruppe efter type", "Group_discussions": "Gruppediskussioner", - "Group_favorites": "Gruppefavoritter", + "Group_favorites": "Gruppe-favoritter", "Group_mentions_disabled_x_members": "Gruppebenævnelserne \"@all\" og \"@here\" er blevet deaktiveret for rum med mere end __total__ medlemmer.", "Group_mentions_only": "Gruppen nævner kun", "Grouping": "Gruppering", - "Hash": "Hash", - "Header": "Header", - "Header_and_Footer": "Header og footer", + "Hash": "HASH", + "Header": "Sidehoved", + "Header_and_Footer": "Sidehoved og siddefod", "Healthcare_and_Pharmaceutical": "Sundhedspleje/medicinalindustri", "Here_is_your_authentication_code": "Her er din godkendelseskode:", "Help_Center": "Hjælpecenter", @@ -1736,85 +1794,85 @@ "Hide_Livechat_Warning": "Er du sikker på at du vil skjule chatten med \"%s\"?", "Hide_Private_Warning": "Er du sikker på, at du vil skjule diskussionen med \"%s\"?", "Hide_roles": "Skjul roller", - "Hide_room": "Skjul Værelse", - "Hide_Room_Warning": "Er du sikker på at du vil skjule værelset \"%s\"?", - "Hide_Unread_Room_Status": "Skjul ulæst værelse status", + "Hide_room": "Skjul", + "Hide_Room_Warning": "Er du sikker på, at du vil skjule kanalen \"%s\"?", + "Hide_Unread_Room_Status": "Skjul ulæst rumstatus", "Hide_usernames": "Skjul brugernavne", "Highlights": "Højdepunkter", - "Highlights_How_To": "Hvis du vil blive underrettet, når nogen nævner et ord eller en sætning, skal du tilføje den her. Du kan adskille ord eller sætninger med kommaer. Fremhæv Ord er ikke sagerfølsomme.", - "Highlights_List": "Fremhæv ord", + "Highlights_How_To": "Hvis du vil blive underrettet, når nogen nævner et ord eller en sætning, skal du tilføje det her. Du kan adskille ord eller sætninger med kommaer. De fremhævede ord er ikke case-følsomme.", + "Highlights_List": "Fremhævede ord", "History": "Historie", - "Host": "Vært", + "Host": "Host", "hours": "timer", - "Hours": "timer", - "How_friendly_was_the_chat_agent": "Hvor venlig var chatagenten?", - "How_knowledgeable_was_the_chat_agent": "Hvor vidende var chatagenten?", - "How_long_to_wait_after_agent_goes_offline": "Hvor lang tid at vente efter agent går offline", + "Hours": "Timer", + "How_friendly_was_the_chat_agent": "Hvor venlig var chat-agenten?", + "How_knowledgeable_was_the_chat_agent": "Hvor vidende var chat-agenten?", + "How_long_to_wait_after_agent_goes_offline": "Hvor lang tid der skal ventes efter at en agent bliver offline", "How_long_to_wait_to_consider_visitor_abandonment": "Hvor lang tid der skal ventes for at betragte det som at gæsten har forladt samtalen?", - "How_responsive_was_the_chat_agent": "Hvor lydhør var chatagenten?", + "How_responsive_was_the_chat_agent": "Hvor lydhør var chat-agenten?", "How_satisfied_were_you_with_this_chat": "Hvor tilfreds var du med denne chat?", - "How_to_handle_open_sessions_when_agent_goes_offline": "Sådan håndterer du åbne sessioner, når agent går offline", + "How_to_handle_open_sessions_when_agent_goes_offline": "Sådan håndterer du åbne sessioner, når en agent bliver offline", "I_ll_do_it_later": "Jeg gør det senere", "I_saved_my_password_close_this_message": "Jeg har gemt min adgangskode. Luk denne besked", - "Idle_Time_Limit": "Idle Time Limit", - "Idle_Time_Limit_Description": "Periode indtil status ændres til væk. Værdien skal være i sekunder.", + "Idle_Time_Limit": "Idle tidsbegrænsning", + "Idle_Time_Limit_Description": "Periode indtil status ændres til \"Ikke til stede\". Værdien skal være i sekunder.", "if_they_are_from": "(hvis de er fra %s)", - "If_this_email_is_registered": "Hvis denne email er registreret, sender vi instruktioner om, hvordan du nulstiller din adgangskode. Hvis du ikke modtager en e-mail inden for kort tid, kan du komme tilbage og prøve igen.", - "If_you_are_sure_type_in_your_password": "Hvis du er sikker, indtast dit kodeord:", + "If_this_email_is_registered": "Hvis denne e-mail er registreret, sender vi instruktioner om hvordan du nulstiller din adgangskode. Hvis du ikke modtager en e-mail inden for kort tid, bedes du venligst vende tilbage og prøve igen.", + "If_you_are_sure_type_in_your_password": "Hvis du er sikker, så indtast dit kodeord:", "Members_List": "Medlemsliste", - "If_you_are_sure_type_in_your_username": "Hvis du er sikker, indtast dit brugernavn:", - "If_you_dont_have_one_send_an_email_to_omni_rocketchat_to_get_yours": "Hvis du ikke har en, send en mail til [omni@rocket.chat] (mailto: omni@rocket.chat) for at få din.", + "If_you_are_sure_type_in_your_username": "Hvis du er sikker, så indtast dit brugernavn:", + "If_you_dont_have_one_send_an_email_to_omni_rocketchat_to_get_yours": "Hvis du ikke har en, send en e-mail til [omni@rocket.chat] (mailto: omni@rocket.chat) for at få din.", "If_you_didnt_ask_for_reset_ignore_this_email": "Hvis du ikke bad om nulstilling af din adgangskode, kan du ignorere denne e-mail.", "If_you_didnt_try_to_login_in_your_account_please_ignore_this_email": "Hvis du ikke forsøgte at logge ind på din konto kan du venligst ignorere denne e-mail.", - "Iframe_Integration": "Iframe Integration", + "Iframe_Integration": "Iframe-integration", "Iframe_Integration_receive_enable": "Aktivér modtagelse", - "Iframe_Integration_receive_enable_Description": "Tillad overordnede vindue at sende kommandoer til Rocket.Chat.", - "Iframe_Integration_receive_origin": "Modtag originaler", - "Iframe_Integration_receive_origin_Description": "Oprindelser med protokollens præfiks, adskilt af kommaer, som får lov til at modtage kommandoer, f.eks. 'https: // localhost, http: // localhost', eller * for at tillade modtagelse fra hvor som helst.", - "Iframe_Integration_send_enable": "Aktivér Send", - "Iframe_Integration_send_enable_Description": "Send begivenheder til overordnede vindue", - "Iframe_Integration_send_target_origin": "Send mål oprindelse", - "Iframe_Integration_send_target_origin_Description": "Oprindelse med protokollens præfiks, hvilke kommandoer sendes til f.eks. 'https: // localhost', eller * for at tillade afsendelse til hvor som helst.", + "Iframe_Integration_receive_enable_Description": "Tillad parent window at sende kommandoer til Rocket.Chat.", + "Iframe_Integration_receive_origin": "Modtag Origins", + "Iframe_Integration_receive_origin_Description": "Origins med protokollens præfiks, adskilt af kommaer, som får lov til at modtage kommandoer. F.eks: 'https://localhost, http:// localhost', eller * for at tillade modtagelse fra hvor som helst.", + "Iframe_Integration_send_enable": "Aktivér send", + "Iframe_Integration_send_enable_Description": "Send events til parent window", + "Iframe_Integration_send_target_origin": "Send target-origin", + "Iframe_Integration_send_target_origin_Description": "Origin med protokollens præfiks, såsom hvilke kommandoer, sendes til f.eks. 'https://localhost', eller * for at tillade afsendelse til hvor som helst.", "Iframe_Restrict_Access": "Begræns adgangen i enhver Iframe", "Iframe_Restrict_Access_Description": "Denne indstilling aktiverer/deaktiverer begrænsninger for at indlæse RC i enhver iframe", "Iframe_X_Frame_Options": "Valgmuligheder til X-Frame-indstillinger", "Iframe_X_Frame_Options_Description": "Valgmuligheder til X-Frame-indstillinger (Du kan se alle indstillingerne her: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options#Syntax)", - "Ignore": "Ignorere", + "Ignore": "Ignorér", "Ignored": "Ignoreret", "Images": "Billeder", - "IMAP_intercepter_already_running": "IMAP-interceptet kører allerede", - "IMAP_intercepter_Not_running": "IMAP-intercept Ikke kørende", - "Impersonate_next_agent_from_queue": "Overlejrer næste agent fra kø", - "Impersonate_user": "Impersonere bruger", - "Impersonate_user_description": "Når aktiveret, integreres integration som den bruger, der udløste integration", + "IMAP_intercepter_already_running": "IMAP-intercepter kører allerede", + "IMAP_intercepter_Not_running": "IMAP-intercept kører ikke", + "Impersonate_next_agent_from_queue": "Impersonate næste agent fra køen", + "Impersonate_user": "Impersoner bruger", + "Impersonate_user_description": "Når dette er aktiveret, poster integrationen som den bruger, der udløste integrationen", "Import": "Import", "Import_Type": "Importtype", "Import_New_File": "Importér ny fil", "Import_requested_successfully": "Import blev anmodet med succes", - "Importer_Archived": "arkiverede", - "Importer_CSV_Information": "CSV-importøren kræver et bestemt format. Læs venligst dokumentationen for, hvordan du strukturerer din zip-fil:", - "Importer_done": "Importerer komplet!", - "Importer_finishing": "Afslutning af importen.", - "Importer_From_Description": "Importerer __from__ data i Rocket.Chat.", - "Importer_HipChatEnterprise_BetaWarning": "Vær opmærksom på, at denne import stadig er et igangværende arbejde. Rapporter venligst eventuelle fejl, der opstår i GitHub:", + "Importer_Archived": "Arkiverede", + "Importer_CSV_Information": "CSV-importøren kræver et bestemt format. Læs venligst dokumentationen for hvordan du strukturerer din zip-fil:", + "Importer_done": "Import fuldgørt!", + "Importer_finishing": "Afslutter importen.", + "Importer_From_Description": "Importerer __from__ data til Rocket.Chat.", + "Importer_HipChatEnterprise_BetaWarning": "Vær opmærksom på, at denne import stadig er under udvikling. Rapporter venligst eventuelle fejl der opstår til GitHub:", "Importer_HipChatEnterprise_Information": "Den uploadede fil skal være en dekrypteret tar.gz. Du kan få mere at vide i dokumentationen:", "Importer_import_cancelled": "Import annulleret.", - "Importer_import_failed": "Der opstod en fejl under udførelsen af ​​importen.", + "Importer_import_failed": "Der opstod en fejl under udførelsen af importen.", "Importer_importing_channels": "Importerer kanalerne.", "Importer_importing_files": "Importerer filerne.", "Importer_importing_messages": "Importerer meddelelserne.", - "Importer_importing_started": "Start af importen.", + "Importer_importing_started": "Starter importen.", "Importer_importing_users": "Importerer brugerne.", - "Importer_not_in_progress": "Importøren kører i øjeblikket ikke.", - "Importer_not_setup": "Importøren er ikke konfigureret korrekt, da den ikke returnerede nogen data.", + "Importer_not_in_progress": "Importen kører ikke i øjeblikket.", + "Importer_not_setup": "Importen er ikke konfigureret korrekt, da den ikke returnerede nogle data.", "Importer_Prepare_Restart_Import": "Genstart import", - "Importer_Prepare_Start_Import": "Start Importer", - "Importer_Prepare_Uncheck_Archived_Channels": "Fjern markeringen af ​​arkiverede kanaler", - "Importer_Prepare_Uncheck_Deleted_Users": "Fjern markeringen af ​​slettede brugere", - "Importer_progress_error": "Det lykkedes ikke at få fremskridt for importen.", - "Importer_setup_error": "Der opstod en fejl under konfigurationen af ​​importøren.", - "Importer_Slack_Users_CSV_Information": "Filen uploades skal være Slack's Users eksportfil, som er en CSV-fil. Se her for mere information:", - "Importer_Source_File": "Source File Selection", + "Importer_Prepare_Start_Import": "Start import", + "Importer_Prepare_Uncheck_Archived_Channels": "Fjern markeringen af arkiverede kanaler", + "Importer_Prepare_Uncheck_Deleted_Users": "Fjern markeringen af slettede brugere", + "Importer_progress_error": "Det lykkedes ikke at indhente status for importen.", + "Importer_setup_error": "Der opstod en fejl under konfigurationen af importen.", + "Importer_Slack_Users_CSV_Information": "Filen det blev uploadet skal være Slack's Users eksportfil, som er en CSV-fil. Se her for mere information:", + "Importer_Source_File": "Valg af kildefil", "importer_status_new": "Ikke startet", "importer_status_uploading": "Uploader fil", "importer_status_downloading_file": "Downloader fil", @@ -1842,41 +1900,42 @@ "Importing_users": "Importerer brugere", "Inclusive": "Inklusive", "In_progress": "I gang", - "Incoming_Livechats": "Indkommende Livechats", + "Incoming_Livechats": "Chat i kø", "Incoming_WebHook": "Indkommende WebHook", "Include_Offline_Agents": "Inkludér offline-agenter", "Industry": "Industri", "Info": "Info", - "initials_avatar": "Initials Avatar", + "initials_avatar": "Initialer for Avatar", "inline_code": "inline-kode", "Install": "Installér", "Marketplace_view_marketplace": "Se Marketplace", - "Install_Extension": "Installer forlængelse", - "Install_FxOs": "Installer Rocket.Chat på din Firefox", - "Install_FxOs_done": "Store! Du kan nu bruge Rocket.Chat via ikonet på din startskærm. Hav det sjovt med Rocket.Chat!", - "Install_FxOs_error": "Beklager, det fungerede ikke som det var til hensigt! Følgende fejl opstod:", - "Install_FxOs_follow_instructions": "Bekræft appinstallationen på din enhed (tryk på \"Install\", når du bliver bedt om det).", + "Install_Extension": "Installations extension", + "Install_FxOs": "Installer Rocket.Chat i din Firefox", + "Install_FxOs_done": "Godt! Du kan nu bruge Rocket.Chat via ikonet på din startskærm. Hav det sjovt med Rocket.Chat!", + "Install_FxOs_error": "Beklager, men det fungerede ikke efter hensigten! Følgende fejl opstod:", + "Install_FxOs_follow_instructions": "Bekræft app-installationen på din enhed (tryk på \"Install\", når du bliver bedt om det).", "Install_package": "Installer pakke", "Installation": "Installation", "Installed": "Installeret", "Installed_at": "Installeret på", - "Invitation_HTML": "Invitation HTML", - "Instance_Record": "Instance Record", + "Invitation_HTML": "Invitations-HTML", + "Instance_Record": "Instans-post", + "Instance": "Instans", "Instructions": "Instruktioner", - "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "Instruktioner til din besøgende udfyld formularen for at sende en besked", + "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "Instruktioner til din besøgende: Udfyld formularen for at sende en besked", "Invitation_HTML_Default": "

Du er blevet inviteret til [Site_Name]

Gå til [Site_URL] og prøv den bedste open source chat-løsning, der er tilgængelig i dag!

", "Insurance": "Forsikring", "Integration_added": "Integration er blevet tilføjet", "Integration_Advanced_Settings": "Avancerede indstillinger", "Integration_disabled": "Integration er deaktiveret", - "Integration_History_Cleared": "Integrationshistorik afklaret succesfuldt", - "Integration_Incoming_WebHook": "Indkommende WebHook Integration", + "Integration_History_Cleared": "Integrationshistorik blev slettet", + "Integration_Incoming_WebHook": "Indkommende WebHook-integration", "Integration_New": "Ny integration", - "Integration_Outgoing_WebHook": "Udgående WebHook Integration", + "Integration_Outgoing_WebHook": "Udgående WebHook-integration", "Integration_Delete_Warning": "Sletning af en integration kan ikke fortrydes.", "Webhook_Details": "WebHook-detaljer", - "Integration_Outgoing_WebHook_History": "Udgående WebHook Integration History", - "Integration_Outgoing_WebHook_History_Data_Passed_To_Trigger": "Data bestået til integration", + "Integration_Outgoing_WebHook_History": "Udgående WebHook-integrations-historik", + "Integration_Outgoing_WebHook_History_Data_Passed_To_Trigger": "Data sendt til integration", "Integration_Outgoing_WebHook_History_Data_Passed_To_URL": "Data sendt til URL", "Integration_Outgoing_WebHook_History_Error_Stacktrace": "Fejl Stacktrace", "Integration_Outgoing_WebHook_History_Http_Response": "HTTP-respons", @@ -1887,7 +1946,7 @@ "Integration_Outgoing_WebHook_History_Time_Triggered": "Time Integration Triggered", "Integration_Outgoing_WebHook_History_Trigger_Step": "Sidste Trigger Trin", "Integration_Outgoing_WebHook_No_History": "Denne udgående webhook-integration har endnu ikke registreret nogen historie.", - "Integration_Retry_Count": "Prøv igen", + "Integration_Retry_Count": "Antal forsøgt", "Integration_Retry_Count_Description": "Hvor mange gange skal integrationen prøves, hvis opkaldet til url fejler?", "Integration_Retry_Delay": "Prøv igen forsinkelsen", "Integration_Retry_Delay_Description": "Hvilken forsinkelsesalgoritme skal man bruge igen? 10 ^ xeller 2 ^ xeller x * 2", @@ -1902,9 +1961,9 @@ "Integrations_for_all_channels": "Indtast all_public_channels for at lytte på alle offentlige kanaler, all_private_groups for at lytte på alle private grupper, og all_direct_messages for at lytte til alle direkte beskeder.", "Integrations_Outgoing_Type_FileUploaded": "Fil uploadet", "Integrations_Outgoing_Type_RoomArchived": "Værelset arkiveret", - "Integrations_Outgoing_Type_RoomCreated": "Værelse skabt (offentlig og privat)", - "Integrations_Outgoing_Type_RoomJoined": "Bruger Tilsluttet Værelse", - "Integrations_Outgoing_Type_RoomLeft": "Bruger Venstre Værelse", + "Integrations_Outgoing_Type_RoomCreated": "Rum oprettet (offentligt og privat)", + "Integrations_Outgoing_Type_RoomJoined": "Bruger tilsluttede sig rummet", + "Integrations_Outgoing_Type_RoomLeft": "Bruger forlod rummet", "Integrations_Outgoing_Type_SendMessage": "Besked sendt", "Integrations_Outgoing_Type_UserCreated": "Bruger oprettet", "InternalHubot": "Intern Hubot", @@ -1933,7 +1992,7 @@ "Invisible": "Usynlig", "Invitation": "Invitation", "Invitation_Email_Description": "Du kan bruge følgende pladsholdere:
  • [email] for modtagerens e-mail.
  • [Site_Name] og [Site_URL] for henholdsvis Applikationsnavn og URL.
", - "Invitation_Subject": "Invitation Subject", + "Invitation_Subject": "Invitations-emne", "Invitation_Subject_Default": "Du er blevet inviteret til [Site_Name]", "Invite_Link": "Invitationslink", "Invite_user_to_join_channel": "Inviter en bruger til at deltage i denne kanal", @@ -1966,27 +2025,40 @@ "IssueLinks_Incompatible": "Advarsel: aktiver ikke dette og 'Hex Color Preview' på samme tid.", "IssueLinks_LinkTemplate": "Skabelon til udgave links", "IssueLinks_LinkTemplate_Description": "Skabelon til udgave links; %s erstattes af udstedelsesnummeret.", + "Items_per_page:": "Enheder pr. side:", "It_works": "Det virker", "italic": "Kursiv", "italics": "kursiv", + "Mobex_sms_gateway_address": "Mobex SMS Gateway-adresse", + "Mobex_sms_gateway_address_desc": "IP eller host for din Mobex-tjeneste med specificeret port. F.eks. 'Http: //192.168.1.1: 1401' eller 'https: //www.example.com: 1401'", "Mobex_sms_gateway_from_number": "Fra", "Mobex_sms_gateway_from_number_desc": "Oprindelig adresse/telefonnummer når du sender en ny SMS til Livechat-klient", + "Mobex_sms_gateway_from_numbers_list": "Liste over numre hvor der kan sendes en SMS fra", + "Mobex_sms_gateway_from_numbers_list_desc": "Kommasepareret liste over numre der skal bruges til at sende helt nye meddelelser, f.eks. 123456789, 123456788, 123456888", "Mobex_sms_gateway_password": "Adgangskode", + "Mobex_sms_gateway_restful_address": "Mobex SMS REST API-adresse", + "Mobex_sms_gateway_restful_address_desc": "IP eller host for dit Mobex REST API. F.eks. 'Http: //192.168.1.1: 8080' eller 'https: //www.example.com: 8080'", "Mobex_sms_gateway_username": "Brugernavn", + "Most_popular_channels_top_5": "Mest populære kanaler (Top 5)", "Jitsi_Chrome_Extension": "Chrome-udvidelses-id", + "Jitsi_Enabled_TokenAuth": "Aktivér JWT-autorisation", + "Jitsi_Application_ID": "Applikations-ID (iss)", + "Jitsi_Application_Secret": "Applikations-kode", "Jitsi_Enable_Channels": "Aktivér i kanaler", + "Jitsi_Limit_Token_To_Room": "Begræns token til Jitsi-rum", "Job_Title": "Jobtitel", - "join": "Tilslutte", + "join": "Tilslut", "join-without-join-code": "Tilmeld dig uden at deltage kode", "join-without-join-code_description": "Tilladelse til at omgå adgangskoden i kanaler med adgangskode aktiveret", "Join_audio_call": "Deltag i lydopkald", - "Join_Chat": "Tilmeld dig Chat", + "Join_Chat": "Tilmeld dig chat", "Join_default_channels": "Tilmeld dig standardkanaler", - "Join_the_Community": "Deltag i Fællesskabet", + "Join_the_Community": "Deltag i community", "Join_the_given_channel": "Deltag i den givne kanal", "Join_video_call": "Deltag i videoopkald", - "Joined": "Nye", - "Jump": "Hoppe", + "Joined": "Tilsluttede", + "Joined_at": "Tilsluttet ved ", + "Jump": "Gå", "Jump_to_first_unread": "Gå til første ulæste", "Jump_to_message": "Gå til besked", "Jump_to_recent_messages": "Gå til de seneste meddelelser", @@ -1999,7 +2071,7 @@ "Katex_Parenthesis_Syntax_Description": "Tillad brug af \\ [katex block \\] og \\ (inline katex \\) syntaxer", "Keep_default_user_settings": "Hold standardindstillingerne", "Keyboard_Shortcuts_Edit_Previous_Message": "Rediger tidligere besked", - "Keyboard_Shortcuts_Keys_1": "Ctrl+ p", + "Keyboard_Shortcuts_Keys_1": "Command (eller Ctrl) + p ELLER Command (eller Ctrl) + k", "Keyboard_Shortcuts_Keys_2": "Pil op", "Keyboard_Shortcuts_Keys_3": "Kommando(eller Alt) + Venstrepil", "Keyboard_Shortcuts_Keys_4": "Kommando(eller Alt) + Pil op", @@ -2016,13 +2088,28 @@ "Knowledge_Base": "Vidensbase", "Label": "Etiket", "Language": "Sprog", + "Language_Dutch": "Hollandsk", + "Language_English": "Engelsk", + "Language_French": "Fransk", + "Language_German": "Tysk", + "Language_Italian": "Italiensk", "Language_Not_set": "Ingen specifik", + "Language_Polish": "Polsk", + "Language_Portuguese": "Portugisisk", + "Language_Russian": "Russisk", + "Language_Spanish": "Spansk", "Language_Version": "Engelsk version", + "Last_active": "Sidste aktivitet", "Last_login": "Sidste login", "Last_Message_At": "Sidste besked på", "Last_seen": "Sidst set", "Last_token_part": "Sidste token-del", "Last_Message": "Sidste besked", + "Last_Status": "Sidste status", + "Last_Updated": "Sidst opdateret", + "Last_7_days": "Sidste 7 dage", + "Last_30_days": "Sidste 30 dage", + "Last_90_days": "Sidste 90 dage", "Launched_successfully": "Startet", "Layout": "Layout", "Layout_Home_Body": "Hjemmekroppen", @@ -2032,6 +2119,7 @@ "Layout_Sidenav_Footer": "Side Navigation Footer", "Layout_Sidenav_Footer_description": "Footer størrelse er 260 x 70px", "Layout_Terms_of_Service": "Servicevilkår", + "Layout_Legal_Notice": "Juridisk meddelelse", "LDAP": "LDAP", "LDAP_Authentication": "Muliggøre", "LDAP_Authentication_Password": "Adgangskode", @@ -2096,11 +2184,28 @@ "LDAP_Sync_User_Data_Description": "Hold brugerdata synkroniseret med serveren på ** login ** eller på ** baggrunds synkronisering ** (fx: navn, email).", "LDAP_Sync_User_Data_FieldMap": "Brugerdata Field Map", "LDAP_Sync_User_Data_FieldMap_Description": "Konfigurer, hvordan brugerkonto felter (som e-mail) er befolket fra en post i LDAP (en gang fundet).
Som eksempel kan '{\"cn\": \"navn\", \"mail\": \"email\"} `vælge en persons menneskelige læsbare navn fra cn-attributten og deres e-mail fra postattributtet. Derudover er det muligt at bruge variabler, for eksempel: `{\" # {givenName} # {sn} \":\" navn \",\" mail \":\" email \"}` bruger en kombination af brugerens fornavn og efternavn til rocket chat `name`-feltet.
Fås i felterne i Rocket.Chat:` name`, `email` og` customFields`.", + "LDAP_Sync_User_Data_Groups": "Synkroniser LDAP-grupper", "manage-integrations": "Administrer integrationer", + "LDAP_Sync_User_Data_Groups_AutoChannels": "Automatisk synkronisering af LDAP-grupper til kanaler", "manage-integrations_description": "Tilladelse til at administrere serverintegrationerne", "LDAP_Sync_User_Data_Groups_AutoChannels_Admin": "Channel Admin", + "LDAP_Sync_User_Data_Groups_AutoChannels_Admin_Description": "Når der automatisk oprettes kanaler, der ikke findes under en synkronisering, bliver denne bruger automatisk administrator for kanalen.", + "LDAP_Sync_User_Data_Groups_AutoChannels_Description": "Aktivér denne funktion for automatisk at tilføje brugere til en kanal baseret på deres LDAP-gruppe. Hvis du også gerne vil fjerne brugere fra en kanal, kan du se indstillingen nedenfor vedrørende automatisk fjernelse af brugere.", "manage-own-integrations": "Administrer egne integrationer", + "LDAP_Sync_User_Data_Groups_AutoChannelsMap": "LDAP-gruppe kanaloversigt", "manage-own-integrations_description": "Tilladelse til at give brugerne mulighed for at oprette og redigere deres egen integration eller webhooks", + "LDAP_Sync_User_Data_Groups_AutoChannelsMap_Default": "// Automatisk synkronisering af LDAP-grupper til kanaler ovenfor", + "LDAP_Sync_User_Data_Groups_AutoChannelsMap_Description": "Kortlæg LDAP-grupper til Rocket.Chat-kanaler.
. F.eks. tilføjer '{\"employee\":\"general\"}' enhver bruger i LDAP-gruppe-medarbejderen til den generelle kanal.", + "LDAP_Sync_User_Data_Groups_AutoRemove": "Fjern automatisk brugerroller", + "LDAP_Sync_User_Data_Groups_AutoRemove_Description": "** OBS **: Aktivering af dette fjerner automatisk brugere fra en rolle, hvis de ikke er tildelt i LDAP! Dette fjerner kun roller automatisk der er indstillet under brugerdata-gruppeoversigten nedenfor.", + "LDAP_Sync_User_Data_Groups_BaseDN": "LDAP Group BaseDN", + "LDAP_Sync_User_Data_Groups_BaseDN_Description": "LDAP BaseDN til at slå brugere op med.", + "LDAP_Sync_User_Data_Groups_Enforce_AutoChannels": "Fjern automatisk brugere fra kanaler", + "LDAP_Sync_User_Data_Groups_Enforce_AutoChannels_Description": "** OBS **: Aktivering af dette fjerner alle brugere i en kanal, der ikke har den tilsvarende LDAP-gruppe! Aktivér kun dette hvis du ved hvad du laver.", + "LDAP_Sync_User_Data_Groups_Filter": "Brugergruppefilter", + "LDAP_Sync_User_Data_Groups_Filter_Description": "LDAP-søgefilteret der bruges til at kontrollere om en bruger er i en gruppe.", + "LDAP_Sync_User_Data_GroupsMap": "Brugerdata-gruppeoversigt", + "LDAP_Sync_User_Data_GroupsMap_Description": "Relatér LDAP-grupper til Rocket.Chat-brugerroller
F.eks. vil '{\"rocket-admin\":\"admin\", \"tech-support\":\"support\"}' relatere rocket-admin-LDAP-gruppen til Rockets \"admin\" -rolle.", "LDAP_Test_Connection": "Testforbindelse", "LDAP_Timeout": "Timeout (ms)", "LDAP_Timeout_Description": "Hvor mange mileseconds venter på et søgeresultat, før du returnerer en fejl", @@ -2113,11 +2218,14 @@ "LDAP_User_Search_Scope": "Anvendelsesområde", "LDAP_Username_Field": "Brugernavn felt", "LDAP_Username_Field_Description": "Hvilket felt vil blive brugt som * brugernavn * til nye brugere. Lad være tom for at bruge brugernavnet informeret på login side.
Du kan også bruge skabeloner, som `# {givenName}. # {Sn}`.
Standardværdien er `sAMAccountName`.", + "LDAP_Avatar_Field": "Bruger-Avatar-felt", + "LDAP_Avatar_Field_Description": "Hvilket felt der vil blive brugt som *avatar* for brugere. Lad det være tomt for at bruge 'thumbnailPhoto' først og dernæst 'jpegPhoto'.", "Lead_capture_email_regex": "Lead capture email regex", "Lead_capture_phone_regex": "Lead capture phone regex", "leave-c": "Forlad kanaler", "leave-p": "Forlad private grupper", "Leave": "Forlad", + "Leave_a_comment": "Skriv en kommentar", "Leave_Group_Warning": "Er du sikker på, at du vil forlade gruppen \"%s\"?", "Leave_Livechat_Warning": "Er du sikker på at du vil forlade Omnichannel'en med \"%s\"?", "Leave_Private_Warning": "Er du sikker på at du vil forlade diskussionen med \"%s\"?", @@ -2133,6 +2241,7 @@ "Livechat_Agents": "Agenter", "Livechat_AllowedDomainsList": "Livechat Tilladte Domæner", "Livechat_Appearance": "Livechat-udseende", + "Livechat_chat_transcript_sent": "Chat-transkript sendt: __transcript__", "Livechat_Dashboard": "Livechat Dashboard", "Livechat_DepartmentOfflineMessageToChannel": "Send denne afdelings Livechat offline-meddelelser til en kanal", "Livechat_enabled": "Livechat aktiveret", @@ -2153,14 +2262,25 @@ "Livechat_Queue": "Omnikanal-kø", "Livechat_registration_form": "Tilmeldingsblanket", "Livechat_registration_form_message": "Tilmeldingsformular-besked", - "Livechat_room_count": "Omnikanal Room tæller", + "Livechat_room_count": "Omnikanal rum-tæller", "Livechat_Routing_Method": "Omnikanals routing-metode", "Livechat_Take_Confirm": "Vil du tage denne klient?", "Livechat_title": "Livechat Titel", "Livechat_title_color": "Livechat Titel Baggrundsfarve", + "Livechat_transcript_already_requested_warning": "En kopi af denne chat er allerede anmodet og vil blive sendt så snart samtalen slutter.", + "Livechat_transcript_request_has_been_canceled": "Anmodningen om chat-kopien er blevet annulleret.", + "Livechat_transcript_has_been_requested": "Der er ønsket en kopi af chatten.", "Livechat_transcript_sent": "Omnikanal-afskrift sendt", + "Livechat_transfer_to_agent": "__from__ overførte chatten til __to__", + "Livechat_transfer_to_agent_with_a_comment": "__from__ overførte chatten til __to__ med kommentaren: __comment__", + "Livechat_transfer_to_department": "__from__ overførte chatten til afdeling __to__", + "Livechat_transfer_to_department_with_a_comment": "__from__ overførte chatten til afdelingen __to__ med kommentaren: __comment__", + "Livechat_transfer_return_to_the_queue": "__from__ returnerede chatten til køen", "Livechat_Triggers": "Livechat-triggers", "Livechat_Users": "Livechat-brugere", + "Livechat_user_sent_chat_transcript_to_visitor": "__agent__ sendte chat-kopien til __guest__", + "Livechat_visitor_email_and_transcript_email_do_not_match": "Den besøgendes e-mail og kopiens e-mail stemmer ikke overens", + "Livechat_visitor_transcript_request": "__guest__ anmodede chat-kopien", "LiveStream & Broadcasting": "Livestream og udsendelse", "Livestream_close": "Luk Livestream", "Livestream_enabled": "Livestream aktiveret", @@ -2171,6 +2291,7 @@ "Livestream_switch_to_room": "Skift til nuværende rums livestreaming", "Livestream_url": "Livestream source url", "Livestream_url_incorrect": "Livestream url er forkert", + "Load_Balancing": "Load-balancering", "Load_more": "Indlæs flere", "Loading...": "Indlæser ...", "Loading_more_from_history": "Indlæser mere fra historien", @@ -2179,6 +2300,8 @@ "Local_Password": "Lokalt kodeord", "Localization": "Lokalisering", "Location": "Placering", + "Local_Time": "Lokal tid", + "Local_Time_time": "Lokal tid: __time__", "Log_Exceptions_to_Channel_Description": "En kanal, der vil modtage alle indfangede undtagelser. Lad være tom for at ignorere undtagelser.", "Log_Exceptions_to_Channel": "Log undtagelser fra Channel", "Log_File": "Vis fil og linje", @@ -2193,6 +2316,7 @@ "Log_View_Limit": "Log View Limit", "Logged_out_of_other_clients_successfully": "Logget ud af andre klienter med succes", "Login": "Logon", + "Login_Logs": "Login-logs", "Login_with": "Log ind med%s", "Logistics": "Logistik", "Logout": "Log af", @@ -2205,26 +2329,44 @@ "mail-messages_description": "Tilladelse til at bruge indstillingerne for mailbeskeder", "Mail_Message_Invalid_emails": "Du har angivet en eller flere ugyldige e-mails:%s", "Mail_Message_Missing_to": "Du skal vælge en eller flere brugere eller give en eller flere e-mailadresser, adskilt af kommaer.", + "Mail_Message_Missing_subject": "Du skal angive et e-mail-emne", "Mail_Message_No_messages_selected_select_all": "Du har ikke valgt nogen meddelelser", "Mail_Messages": "Mail Beskeder", "Mail_Messages_Instructions": "Vælg hvilke meddelelser du vil sende via e-mail ved at klikke på meddelelserne", "Room_uploaded_file_list": "Filliste", + "Room_updated_successfully": "Rummet blev succesfuldt opdateret", "Mail_Messages_Subject": "Her er en udvalgt del af%s meddelelser", "Mailer": "Mailer", "Mailer_body_tags": "Du skal bruge [unsubscribe] til abonnementet.
Du kan muligvis bruge [navn], [fname], [lname] for brugerens fulde navn, fornavn eller efternavn.
Du kan bruge [email] til brugerens e-mail.", "Mailing": "mailing", "Make_Admin": "Gør Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Sørg for, at du har en kopi af dine koder: __codes__ Hvis du mister adgangen til din autentificeringsapp, kan du bruge en af ​​disse koder til at logge ind.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Sørg for, at du har en kopi af dine koder:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Hvis du mister adgangen til din autentificeringsapp, kan du bruge en af ​​disse koder til at logge ind.", "manage-apps": "Administrer apps", "manage-assets": "Administrer aktiver", "manage-assets_description": "Tilladelse til at administrere serveraktiverne", "manage-cloud_description": "Administrer Cloud", "manage-emoji": "Administrer emojier", "manage-emoji_description": "Tilladelse til at styre server emojis", + "manage-outgoing-integrations": "Administrer udgående integrationer", + "manage-incoming-integrations": "Administrer indgående integrationer", + "manage-outgoing-integrations_description": "Tilladelse til at administrere serverens udgående integrationer", + "manage-incoming-integrations_description": "Tilladelse til at administrere serverens indgående integrationer", + "manage-livechat-agents": "Administrer omnikanal-agenter", + "manage-livechat-departments": "Administrer omnikanal-afdelinger", + "manage-livechat-managers": "Administrer omnichannel-administratorer", "manage-oauth-apps": "Administrer Oauth Apps", "manage-oauth-apps_description": "Tilladelse til at administrere serveren Oauth apps", + "manage-own-outgoing-integrations": "Administrer egne udgående integrationer", + "manage-own-incoming-integrations": "Administrer egne indgående integrationer", + "manage-own-outgoing-integrations_description": "Tilladelse til at give brugerne mulighed for at oprette og redigere deres egen udgående integration eller webhooks", + "manage-own-incoming-integrations_description": "Tilladelse til at give brugerne mulighed for at oprette og redigere deres egen indgående integration eller webhooks", + "manage-selected-settings": "Ændre nogle indstillinger", + "manage-selected-settings_description": "Tilladelse til at ændre indstillinger hvis ændring der eksplicit er givet tilladelse til", "manage-sounds": "Administrer lyde", "manage-sounds_description": "Tilladelse til at styre serverlyden", + "manage-user-status": "Administrer brugerstatus", + "manage-user-status_description": "Tilladelse til at administrere serverens brugerdefinerede bruger-status", "Manage_Apps": "Administrer apps", "Manage_the_App": "Administrer appen", "Managers": "Ledere", @@ -2232,6 +2374,7 @@ "Manager_removed": "Manager fjernet", "Managing_assets": "Administrerende aktiver", "Managing_integrations": "Administrere integrationer", + "Manual_Selection": "Manuelt valg", "Manufacturing": "Produktion", "MapView_Enabled": "Aktivér Mapview", "MapView_Enabled_Description": "Aktivering af kortvisning vil vise en placeringsdeleknap til venstre for chatinputfeltet.", @@ -2240,6 +2383,8 @@ "Mark_all_as_read": "Markér alle beskeder (i alle kanaler) som læst", "Mark_as_read": "Marker som læst", "Mark_as_unread": "Marker som ulæst", + "Mark_read": "Marker som læst", + "Mark_unread": "Marker som ulæst", "Markdown_Headers": "Tillad Markdown-overskrifter i meddelelser", "Markdown_Marked_Breaks": "Aktivér markerede pauser", "Markdown_Marked_GFM": "Aktivér markeret GFM", @@ -2251,8 +2396,14 @@ "Markdown_SupportSchemesForLink": "Markdown Support Schemes for Link", "Markdown_SupportSchemesForLink_Description": "Kommasepareret liste over tilladte ordninger", "Max_length_is": "Maks længde er%s", + "Max_number_incoming_livechats_displayed": "Maks antal enheder der vises i køen", + "Max_number_incoming_livechats_displayed_description": "(Valgfrit) Maks antal enheder der vises i den indkommende omnikanal-kø.", + "Max_number_of_uses": "Maks antal brugere", + "Maximum": "Maksimum", + "Maximum_number_of_guests_reached": "Maksimalt antal gæster nået", "Media": "Medier", "Medium": "Medium", + "Members": "Medlemmer", "mention-all": "Nævne alt", "mention-all_description": "Tilladelse til at bruge @all mention", "mention-here": "Nævne her", @@ -2262,6 +2413,7 @@ "Mentions_only": "Kun mentioner", "Merge_Channels": "Flette kanaler", "Message_AllowBadWordsFilter": "Tillad besked om dårlig ordfiltrering", + "Message_AllowConvertLongMessagesToAttachment": "Tillad konvertering af lange beskeder til vedhæftning", "Message_AllowDeleting": "Tillad besked sletning", "Message_AllowDeleting_BlockDeleteInMinutes": "Bloker besked sletter efter (n) minutter", "Message_AllowDeleting_BlockDeleteInMinutes_Description": "0 deaktiverer blokering", @@ -2274,6 +2426,7 @@ "Message_AllowSnippeting": "Tillad beskedudskæring", "Message_AllowStarring": "Tillad besked Starring", "Message_AllowUnrecognizedSlashCommand": "Tillad ikke anerkendte slash kommandoer", + "Message_Already_Sent": "Denne meddelelse er allerede sendt og behandles af serveren", "Message_AlwaysSearchRegExp": "Søg altid med RegExp", "Message_AlwaysSearchRegExp_Description": "Vi anbefaler at sætte 'True', hvis dit sprog ikke understøttes på Søgning i MongoDB-tekst.", "Message_Attachments": "Meddelelsesvedhæftninger", @@ -2285,6 +2438,7 @@ "Message_AudioRecorderEnabled_Description": "Kræver 'audio / mp3'-filer for at være en accepteret medietype inden for' File Upload'-indstillinger.", "Message_BadWordsFilterList": "Tilføj dårlige ord til blacklisten", "Message_BadWordsFilterListDescription": "Tilføj Liste over Kommasepareret liste over dårlige ord til at filtrere", + "MessageBox_view_mode": "MessageBox-visningstilstand", "message_counter": "__counter__ meddelelse", "message_counter_plural": "__counter__ meddelelser", "Message_DateFormat": "Datoformat", @@ -2308,6 +2462,17 @@ "Message_HideType_ru": "Skjul \"User Removed\" meddelelser", "Message_HideType_uj": "Skjul \"User Join\" beskeder", "Message_HideType_ul": "Skjul \"User Leave\" -meddelelser", + "Message_HideType_r": "Skjul beskeder om \"Navneændring af rum\"", + "Message_HideType_ut": "Skjul beskeder om \"Bruger tilsluttet samtale\"", + "Message_HideType_wm": "Skjul beskeder om \"Velkommen\"", + "Message_HideType_rm": "Skjul beskeder om \"Besked fjernet\"", + "Message_HideType_subscription_role_added": "Skjul beskeder om \"Rollen ændret\"", + "Message_HideType_subscription_role_removed": "Skjul beskeder om \"Rolle er ikke længere defineret\"", + "Message_HideType_room_archived": "Skjul beskeder om \"Rum arkiveret\"", + "Message_HideType_room_unarchived": "Skjul beskeder om \"Arkivering af rum fjernet\"", + "Message_HideType_room_changed_privacy": "Skjul beskeder om \"Rumtype ændret\"", + "Hide_System_Messages": "Skjul systemmeddelelser", + "Message_Id": "Meddelelses-Id", "Message_Ignored": "Denne meddelelse blev ignoreret", "Message_info": "Besked info", "Message_KeepHistory": "Gem pr. Meddelelse om redigering af historik", @@ -2324,11 +2489,13 @@ "Message_ShowEditedStatus": "Vis redigeret status", "Message_ShowFormattingTips": "Vis formateringstips", "Message_starring": "Meddelelse med hovedrollen", + "Message_Time": "Tid for besked", "Message_TimeAndDateFormat": "Tid og datoformat", "Message_TimeAndDateFormat_Description": "Se også: Moment.js", "Message_TimeFormat": "Tidsformat", "Message_TimeFormat_Description": "Se også: Moment.js", "Message_too_long": "Besked for lang", + "Message_too_long_as_an_attachment_question": "Beskeden er for lang. Send det i stedet som en vedhæftning?", "Message_UserId": "User-Id", "Message_VideoRecorderEnabled": "Videooptager aktiveret", "Message_VideoRecorderEnabledDescription": "Kræver 'video / webm'-filer for at være en accepteret medietype inden for' Filopload '-indstillinger.", @@ -2406,6 +2573,7 @@ "New_Department": "Ny afdeling", "New_discussion": "Ny diskussion", "New_discussion_name": "Et meningsfuldt navn på diskussionsrummet", + "New_discussion_first_message": "Almindeligvis starter en samtale med et spørgsmål som \"Hvordan uploader jeg et billede?\"", "New_integration": "Ny integration", "New_line_message_compose_input": "`%s` - Ny linje i meddelelsen komponerer input", "New_Livechat_offline_message_has_been_sent": "En ny Livechat-offline-meddelelse er sendt", @@ -2418,7 +2586,7 @@ "Confirm_New_Password_Placeholder": "Indtast venligst nyt kodeord ...", "New_encryption_password": "Nyt krypteringskodeord", "New_role": "Ny rolle", - "New_Room_Notification": "New Room Notification", + "New_Room_Notification": "Nyt rum-notifikation", "New_Trigger": "Ny Trigger", "New_version_available_(s)": "Ny version tilgængelig (%s)", "New_videocall_request": "Ny videoopkaldsanmodning", @@ -2441,12 +2609,14 @@ "No_messages_yet": "Ingen beskeder endnu", "No_pages_yet_Try_hitting_Reload_Pages_button": "Ingen sider endnu. Prøv at trykke på \"Reload Pages\" -knappen.", "No_pinned_messages": "Ingen spærrede meddelelser", + "No_previous_chat_found": "Der blev ikke fundet nogen tidligere chat", "No_results_found": "Ingen resultater fundet", "No_results_found_for": "Ingen resultater fundet for:", "No_snippet_messages": "Ingen uddrag", "No_starred_messages": "Ingen stjernemarkerede meddelelser", "No_such_command": "Ingen sådan kommando: `/ __command__`", "No_discussions_yet": "Der er endnu ingen diskussioner", + "No_Discussions_found": "Der blev ikke fundet nogen diskussioner", "No_Threads": "Ingen tråde fundet", "No_user_with_username_%s_was_found": "Ingen bruger med brugernavn \"%s\" blev fundet!", "No_data_found": "Ingen data fundet", @@ -2465,6 +2635,8 @@ "Nothing_found": "Intet fundet", "Not_Imported_Messages_Title": "Følgende meddelelser blev ikke importeret", "Notification_Desktop_Default_For": "Vis skrivebordsmeddelelser for", + "Notification_RequireInteraction": "Kræv interaktion for at afvise skrivebordsmeddelelse", + "Notification_RequireInteraction_Description": "Fungerer kun med Chrome-browserversioner > 50. Anvend bruger-parameteren requiredInteraction til at vise skrivebordsmeddelelsen til ubestemt tid indtil brugeren interagerer med den.", "Notification_Mobile_Default_For": "Skub mobile meddelelser til", "Notifications": "Meddelelser", "Notifications_Max_Room_Members": "Medlemmer af Max Room før deaktivere alle meddelelsesmeddelelser", @@ -2477,7 +2649,9 @@ "Num_Agents": "# Agenter", "Number_of_events": "Antal events", "Number_of_federated_users": "Antal Federations-brugere", + "Number_of_federated_servers": "Antal federerede servere", "Number_of_messages": "Antal beskeder", + "RetentionPolicy_DoNotExcludeDiscussion": "Ekskluder ikke samtalemeddelelser", "OAuth Apps": "OAuth-apps", "OAuth_Application": "OAuth Application", "OAuth_Applications": "OAuth Applications", @@ -2488,12 +2662,15 @@ "Office_Hours": "Arbejdstid", "Office_hours_enabled": "Kontortimer aktiveret", "Office_hours_updated": "Kontortid opdateret", + "RetentionPolicy_ExcludePinned": "Ekskluder pinnede meddelelser", "Offline": "Offline", "Offline_DM_Email": "Direkte besked Email Emne", "Offline_Email_Subject_Description": "Du kan bruge følgende pladsholdere:
  • [Site_Name], [Site_URL], [Bruger] og [Room] for henholdsvis Applikationsnavn, URL, Brugernavn og Rumnavn.
", "Offline_form": "Offline formular", "Offline_form_unavailable_message": "Offline Form Unavailable Besked", "Offline_Link_Message": "GÅ TIL MEDDELELSE", + "Offline_Message": "Offline-besked", + "Offline_Message_Use_DeepLink": "Brug Deep-Link-URL format", "Offline_Mention_All_Email": "Angiv alt e-mail-emne", "Offline_Mention_Email": "Angiv e-mail-emne", "Offline_message": "Offline besked", @@ -2502,12 +2679,18 @@ "Old Colors": "Gamle farver", "Old Colors (minor)": "Gamle farver (mindre)", "Older_than": "Ældre end", + "Omnichannel_External_Frame": "Ekstern frame", + "Omnichannel_External_Frame_Enabled": "Ekstern frame aktiveret", + "Omnichannel_External_Frame_URL": "Ekstern frame-URL", + "Omnichannel_External_Frame_Encryption_JWK": "Krypteringsnøgle (JWK)", + "Omnichannel_External_Frame_Encryption_JWK_Description": "Hvis en nøgle forefindes, vil brugerens token krypteres og eksterne systemer skal dekryptere data'en for at tilgå token", "On": "På", "Online": "Online", "online": "online", "Only_authorized_users_can_write_new_messages": "Kun autoriserede brugere kan skrive nye beskeder", "Only_from_users": "Beskær kun indhold fra disse brugere (lad være tom for at beskære alles indhold)", "Only_On_Desktop": "Desktop mode (kun sendes med indtastning på skrivebordet)", + "Only_works_with_chrome_version_greater_50": "Virker kun med Chrome-browserversioner > 50", "Only_you_can_see_this_message": "Kun du kan se denne besked", "Oops!": "Ups", "Oops_page_not_found": "Ups, side ikke fundet", @@ -2551,6 +2734,8 @@ "Parent_channel_doesnt_exist": "Channel eksisterer ikke.", "Password": "Adgangskode", "Password_Change_Disabled": "Din Rocket.Chat-administrator har deaktiveret ændring af adgangskoder", + "Password_Changed_Description": "Du kan bruge følgende felter:
  • [password] til den midlertidige adgangskode.
  • [navn], [fname], [lname] til henholdsvis brugerens fulde navn, fornavn eller efternavn.
  • [e-mail] til brugerens e-mail.
  • [Site_Name] og [Site_URL] for henholdsvis applikationsnavn og URL.
", + "Password_Changed_Email_Subject": "[Site_Name] - Adgangskode ændret", "Password_changed_section": "Adgangskode ændret", "Password_changed_successfully": "Password ændret med succes", "Passwords_do_not_match": "Kodeordene er ikke ens", @@ -2572,7 +2757,7 @@ "Pinned_Messages": "Pinned Messages", "pinning-not-allowed": "Fastgørelse er ikke tilladt", "PiwikAdditionalTrackers": "Yderligere Piwik Sites", - "PiwikAdditionalTrackers_Description": "Indtast tilføjede Piwik-webadresser og SiteIDs i følgende format, hvis du vil spore de samme data på forskellige websteder: [{\"trackerURL\": \"https: //my.piwik.domain2/\", \"siteId\": 42}, {\"trackerURL\": \"https: //my.piwik.domain3/\", \"siteId\": 15}]", + "PiwikAdditionalTrackers_Description": "Indtast yderligere Piwik-URL'er og SiteID'er i følgende format, hvis du vil tracke de samme data på forskellige websteder: [\n{ \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 },{ \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 }]", "PiwikAnalytics_cookieDomain": "Alle underdomæner", "PiwikAnalytics_cookieDomain_Description": "Spor besøgende over alle underdomæner", "PiwikAnalytics_domains": "Skjul udgående links", @@ -2582,6 +2767,7 @@ "PiwikAnalytics_siteId_Description": "Webstedet id til brug for at identificere dette websted. Eksempel: 17", "PiwikAnalytics_url_Description": "Den url, hvor Piwik er bosiddende, skal du sørge for at inkludere den efterfølgende skråstreg. Eksempel: //piwik.rocket.chat/", "Placeholder_for_email_or_username_login_field": "Stedholder for Email eller Brugernavn Login Field", + "Placeholder_for_password_login_confirm_field": "Bekræft feltet for login-kodekord", "Placeholder_for_password_login_field": "Stedholder for Password Login Field", "Please_add_a_comment": "Tilføj venligst en kommentar", "Please_add_a_comment_to_close_the_room": "Vær venlig at tilføje en kommentar for at lukke værelset", @@ -2615,6 +2801,11 @@ "Post_to_s_as_s": "Send til %s som %s", "Preferences": "Indstillinger", "Preferences_saved": "Indstillinger gemt", + "Preparing_data_for_import_process": "Forbereder data til importproces", + "Preparing_list_of_channels": "Forbereder liste over kanaler", + "Preparing_list_of_messages": "Forbereder liste over meddelelser", + "Preparing_list_of_users": "Forbereder liste over brugere", + "Presence": "Tilstedeværelse", "preview-c-room": "Forhåndsvisning af offentlig kanal", "preview-c-room_description": "Tilladelse til at se indholdet af en offentlig kanal, inden den tiltræder", "Previous_month": "Forrige måned", @@ -2623,6 +2814,8 @@ "Privacy_Policy": "Fortrolighedspolitik", "Private": "Privat", "Private_Channel": "Privat kanal", + "Private_Channels": "Private kanaler", + "Private_Chats": "Private chats", "Private_Group": "Privat gruppe", "Private_Groups": "Private grupper", "Private_Groups_list": "Liste over private grupper", @@ -2633,6 +2826,10 @@ "Profile_picture": "Profilbillede", "Profile_saved_successfully": "Profilen er gemt korrekt", "Prometheus": "Prometheus", + "Prometheus_Reset_Interval": "Nulstil interval (ms)", + "Prometheus_Garbage_Collector": "Collect NodeJS GC", + "Prometheus_Garbage_Collector_Alert": "Genstart kræves for at deaktivere", + "Prometheus_API_User_Agent": "API: Track User Agent", "Protocol": "Protokol", "Prune": "Prune", "Prune_finished": "Prune færdig", @@ -2644,12 +2841,17 @@ "Prune_Warning_between": "Dette vil slette alle %s i %s mellem %s og %s.", "Pruning_messages": "Beskæring beskeder ...", "Pruning_files": "Beskæring af filer ...", + "message_pruned": "besked slettet", "messages_pruned": "beskeder beskåret", + "file_pruned": "fil slettet", "files_pruned": "filer beskåret", "Public": "Offentlig", "Public_Channel": "Public Channel", + "Public_Channels": "Offentlige kanaler", "Public_Community": "Offentlige Fællesskab", "Public_Relations": "PR", + "Public_URL": "Offentlig URL", + "Purchased": "Købt", "Push": "Skubbe", "Push_Setting_Requires_Restart_Alert": "Hvis du ændrer denne værdi, skal Rocket.Chat genstartes.", "Push_apn_cert": "APN Cert", @@ -2661,14 +2863,18 @@ "Push_enable": "Muliggøre", "Push_enable_gateway": "Aktivér Gateway", "Push_gateway": "Gateway", + "Push_gateway_description": "Flere linjer kan bruges til at specificere flere gateways", "Push_gcm_api_key": "GCM API-nøgle", "Push_gcm_project_number": "GCM Projektnummer", "Push_production": "Produktion", "Push_show_message": "Vis besked i meddelelse", "Push_show_username_room": "Vis kanal / gruppe / brugernavn i underretning", "Push_test_push": "Prøve", + "Purchase_for_free": "Kan købes gratis", + "Purchase_for_price": "Køb for $%", "Query": "Forespørgsel", "Query_description": "Yderligere betingelser for at bestemme, hvilke brugere der skal sende e-mailen til. Afmeldte brugere fjernes automatisk fra forespørgslen. Det skal være et gyldigt JSON. Eksempel: \"{\" createdAt \": {\" $ gt \": {\" $ date \":\" 2015-01-01T00: 00: 00.000Z \"}}}\"", + "Query_is_not_valid_JSON": "Forespørgsel er ikke gyldig JSON", "Queue": "Kø", "quote": "citere", "Quote": "Citere", @@ -2690,6 +2896,7 @@ "Reason_To_Join": "Årsag til at deltage", "Receive_alerts": "Modtag advarsler", "Receive_Group_Mentions": "Modtag @all og @here nævner", + "Recent_Import_History": "Seneste importhistorik", "Record": "Optage", "Redirect_URI": "Omdirigere URI", "Refresh": "Opdatér", @@ -2697,6 +2904,7 @@ "Refresh_oauth_services": "Opdater OAuth Services", "Refresh_your_page_after_install_to_enable_screen_sharing": "Opdater din side efter installation for at aktivere skærmdeling", "Regenerate_codes": "Regenerere koder", + "Regexp_validation": "Validering ved regular expression", "Register": "Tilmeld en ny konto", "Register_Server": "Registrer server", "Register_Server_Info": "Brug de forkonfigurerede gateways og proxies leveret af Rocket.Chat Technologies Corp.", @@ -2710,6 +2918,8 @@ "Register_Server_Standalone_Service_Providers": "Opret konti hos tjenesteudbydere", "Register_Server_Standalone_Update_Settings": "Opdater de forudkonfigurerede indstillinger", "Register_Server_Standalone_Own_Certificates": "Genkompil mobile apps med dine egne certifikater", + "Register_Server_Registered_I_Agree": "Jeg er enig med", + "Register_Server_Terms_Alert": "Du bedes acceptere betingelserne for at afslutte registreringen", "Registration": "Registrering", "Registration_Succeeded": "Registrering lykkedes", "Registration_via_Admin": "Registrering via Admin", @@ -2721,7 +2931,7 @@ "Remove": "Fjerne", "remove-closed-livechat-rooms": "Fjern lukkede omnikanal-rum", "remove-user": "Fjern Bruger", - "remove-user_description": "Tilladelse til at fjerne en bruger fra et værelse", + "remove-user_description": "Tilladelse til at fjerne en bruger fra et rum", "Remove_Admin": "Fjern Admin", "Remove_as_leader": "Fjern som leder", "reset-other-user-e2e-key": "Nulstil den anden brugers E2E-nøgle", @@ -2733,13 +2943,26 @@ "Remove_someone_from_room": "Fjern en person fra rummet", "Removed": "fjernet", "Removed_User": "Fjernet bruger", + "Replied_on": "Besvarede den", "Reply": "Svar", + "Replay": "Gentag", + "reply_counter": "__counter__ svar", + "reply_counter_plural": "__counter__ svar", + "Replies": "Svar", + "Reply_in_thread": "Besvar i tråd", + "Reply_in_direct_message": "Besvar i direkte meddelelse", "ReplyTo": "Svar til", + "Report": "Rapport", "Report_Abuse": "Anmeld misbrug", "Report_exclamation_mark": "Rapport!", "Report_sent": "Rapport sendt", "Report_this_message_question_mark": "Rapportér denne besked?", "Reporting": "Rapportering", + "Request_comment_when_closing_conversation": "Anmod om kommentar når samtalen afsluttes", + "Request_comment_when_closing_conversation_description": "Hvis det er aktiveres, skal agenten angive en kommentar inden samtalen afsluttes.", + "Request_tag_before_closing_chat": "Anmod om tag(s) før samtalen afsluttes", + "Requested_At": "Anmodet kl", + "Requested_By": "Anmodet af", "Require": "Kræv", "Require_all_tokens": "Kræv alle tokens", "Require_any_token": "Kræver ethvert tegn", @@ -2751,11 +2974,14 @@ "Reset_section_settings": "Nulstil sektionsindstillinger", "Reset_Connection": "Nulstil forbindelse", "Responding": "Svar", + "Response_description_pre": "Hvis brugeren ønsker at sende et svar tilbage i kanalen, skal følgende JSON returneres som del af svarets Body:", "Restart": "Genstart", "Restart_the_server": "Genstart serveren", "Retail": "Retail", - "Retention_setting_changed_successfully": "Retention policy setting blev ændret", - "RetentionPolicy": "Retention Policy", + "Retention_setting_changed_successfully": "Opsætningen af opbevaringspolitikken blev ændret", + "RetentionPolicy": "Opbevaringspolitikken", + "RetentionPolicy_DoNotPruneDiscussion": "Slet ikke diskussionsmeddelelser", + "RetentionPolicy_DoNotPruneThreads": "Slet ikke tråde", "RetentionPolicy_RoomWarning": "Meddelelser ældre end __time__ beskæres automatisk her", "RetentionPolicy_RoomWarning_Unpinned": "Unpinned meddelelser ældre end __time__ beskæres automatisk her", "RetentionPolicy_RoomWarning_FilesOnly": "Filer ældre end __time__ beskæres automatisk her (meddelelserne forbliver intakte)", @@ -2765,7 +2991,7 @@ "RetentionPolicy_AppliesToChannels": "Gælder for kanaler", "RetentionPolicy_AppliesToGroups": "Gælder for private grupper", "RetentionPolicy_AppliesToDMs": "Gælder for direkte meddelelser", - "RetentionPolicy_ExcludePinned": "Ekskluder pinnede meddelelser", + "RetentionPolicy_DoNotPrunePinned": "Slet ikke fastgjorte beskeder", "RetentionPolicy_FilesOnly": "Slet kun filer", "RetentionPolicy_FilesOnly_Description": "Kun filer slettes, meddelelserne selv forbliver på plads.", "RetentionPolicy_MaxAge": "Maksimal meddelelsesalder", @@ -2774,19 +3000,22 @@ "RetentionPolicy_MaxAge_DMs": "Maksimal meddelelsesalder i direkte beskeder", "RetentionPolicy_MaxAge_Description": "Beskær alle meddelelser, der er ældre end denne værdi, om dage", "RetentionPolicy_Precision": "Timer Precision", - "RetentionPolicy_Precision_Description": "Hvor ofte skal beskæringstimeren løbe. Indstilling af dette til en mere præcis værdi gør kanaler med hurtige tilbageholdelsestimer bedre, men kan koste ekstra forarbejdningskraft på store lokalsamfund.", + "RetentionPolicy_Precision_Description": "Hvor ofte sletnings-timeren skal køre. Indstilling af dette til en mere præcis værdi gør kanaler med hurtige opbevarings-timere bedre, men kan koste ekstra procestid på store communities.", "RetentionPolicyRoom_Enabled": "Beskær automatisk gamle beskeder", "RetentionPolicyRoom_ExcludePinned": "Ekskluder pinnede meddelelser", "RetentionPolicyRoom_FilesOnly": "Beskær kun filer, hold meddelelser", "RetentionPolicyRoom_MaxAge": "Maksimal meddelelsesalder i dage (standard: __max__)", - "RetentionPolicyRoom_OverrideGlobal": "Overstyr global retention politik", - "RetentionPolicyRoom_ReadTheDocs": "OBS! justering af disse indstillinger uden den yderste omhu, kan slette al meddelelseshistorik. Læs venligst dokumentationen før du aktiverer funktionen her.", + "RetentionPolicyRoom_OverrideGlobal": "Tilsidesæt global opbevaringspolitik", + "RetentionPolicyRoom_ReadTheDocs": "OBS! Justering af disse indstillinger uden den yderste omhyggelighed kan slette al meddelelseshistorik. Læs venligst dokumentationen før du aktiverer funktionen her.", "Retry_Count": "Prøv igen", + "Return_to_home": "Vend tilbage til home", + "Return_to_previous_page": "Vend tilbage til forrige side", "Robot_Instructions_File_Content": "Indhold af robots.txt-fil", + "Rocket_Chat_Alert": "Rocket.Chat Alert", "Role": "Rolle", "Role_Editing": "Rollredigering", "Role_removed": "Rolle fjernet", - "Room": "Værelse", + "Room": "Rum", "Room_announcement_changed_successfully": "Værelsesmeddelelsen er ændret", "Room_archivation_state": "Tilstand", "Room_archivation_state_false": "Aktiv", @@ -2802,20 +3031,22 @@ "Room_has_been_deleted": "Værelset er blevet slettet", "Room_has_been_unarchived": "Værelset er blevet arkiveret", "Room_Info": "Info om rummet", - "room_is_blocked": "Dette værelse er blokeret", - "room_is_read_only": "Dette værelse er kun læst", - "room_name": "værelse navn", + "room_is_blocked": "Dette rum er blokeret", + "room_is_read_only": "Dette rum er skrivebeskyttet", + "room_name": "navn på rum", "Room_name_changed": "Rumnavnet er ændret til: __room_name__af __user_by__", "Room_name_changed_successfully": "Rumnavnet er ændret", - "Room_not_found": "Værelse ikke fundet", + "Room_not_found": "Rum ikke fundet", "Room_password_changed_successfully": "Værelsesadgangskode er ændret", "Room_tokenpass_config_changed_successfully": "Room tokenpass-konfigurationen er blevet ændret", "Room_topic_changed_successfully": "Værelsesemne er ændret", "Room_type_changed_successfully": "Værelsestype er ændret", "Room_type_of_default_rooms_cant_be_changed": "Dette er et standardrum, og typen kan ikke ændres. Kontakt venligst din administrator.", - "Room_unarchived": "Værelse unarchived", + "Room_unarchived": "Rummet er ikke længere arkiveret", "Room_uploaded_file_list_empty": "Ingen tilgængelige filer.", "Rooms": "Rum", + "Routing": "Routing", + "Run_only_once_for_each_visitor": "Kør kun én gang for hver besøgende", "run-import": "Kør import", "run-import_description": "Tilladelse til at køre importørerne", "run-migration": "Kør migrering", @@ -2826,9 +3057,19 @@ "Same_As_Token_Sent_Via": "Samme som \"Token Send Via\"", "Same_Style_For_Mentions": "Samme stil til navne", "SAML": "SAML", + "SAML_AuthnContext_Template": "AuthnContext-skabelon", + "SAML_AuthnContext_Template_Description": "Du kan bruge en hvilken som helst variabel fra AuthnRequest-skabelonen her.\n\nFor at tilføje yderligere authn-indhold, skal du duplikere __AuthnContextClassRef__-tagget og erstatte __\\_\\_authnContext\\_\\ ___ variablen med den nye kontekst.", + "SAML_AuthnRequest_Template": "AuthnRequest-skabelon", + "SAML_AuthnRequest_Template_Description": "Følgende variabler er tilgængelige:\n- **\\_\\ _newId\\_\\_**: Tilfældigt genereret id-streng\n- **\\_\\ _instant\\_\\_**: Aktuel tidsstempel\n- **\\_\\ _callbackUrl\\_\\_**: The Rocket.Chat callback-URL.\n- **\\ _ \\ _ entryPoint \\ _ \\ _**: Værdien af indstillingen __Custom Entry Point__.\n- **\\_\\_Issuer\\_\\_**: Værdien af indstillingen __Custom Issuer__.\n- ** \\_\\_identifikatorFormatTag\\_\\ _**: Indholdet af __NameID-politikskabelonen__, hvis et gyldigt __Identifier-format__ er konfigureret.\n- **\\_\\_identifikatorFormat\\_\\_**: Værdien af indstillingen __Identifier Format__.\n- **\\_\\_authnContextTag\\_\\_**: Indholdet af __AuthnContext-skabelonen__, hvis en gyldig __Custom Authn Context__ er konfigureret.\n- **\\_\\_authnContextComparison\\_\\_**: Værdien af indstillingen __Authn Context Comparison__\n - **\\_\\_authnContext\\_\\_**: Værdien af indstillingen __Custom Authn Context__.", + "SAML_Custom_Authn_Context": "Brugerdefineret Authn-kontekst", + "SAML_Custom_Authn_Context_Comparison": "Sammenligning af Authn-kontekst", + "SAML_Custom_Authn_Context_description": "Lad dette være tomt for at udelade authn-konteksten fra anmodningen.\n\nFor at tilføje flere authn-kontekst, skal du tilføje yderligere direkte til indstillingen __AuthnContext Template__.", "SAML_Custom_Cert": "Brugerdefineret certifikat", + "SAML_Custom_Debug": "Aktivér fejlfinding", "SAML_Custom_Entry_point": "Brugerdefineret indtastningspunkt", "SAML_Custom_Generate_Username": "Generer brugernavn", + "SAML_Custom_name_overwrite": "Overskriv brugerens fulde navn (brug idp-attribut)", + "SAML_Custom_mail_overwrite": "Overskriv bruger-e-mail (brug idp-attribut)", "SAML_Custom_IDP_SLO_Redirect_URL": "IDP SLO omdirigeringswebadresse", "SAML_Custom_Issuer": "Brugerdefineret udsteder", "SAML_Custom_Logout_Behaviour": "Logout Adfærd", @@ -2836,9 +3077,49 @@ "SAML_Custom_Logout_Behaviour_Terminate_SAML_Session": "Afslut SAML-session", "SAML_Custom_Private_Key": "Privat nøgleindhold", "SAML_Custom_Provider": "Tilpasset udbyder", + "SAML_Custom_EMail_Field": "E-mail feltnavn", + "SAML_Custom_signature_validation_all": "Valider alle signaturer", + "SAML_Custom_signature_validation_assertion": "Valider Assertion-signatur", + "SAML_Custom_signature_validation_either": "Valider Either-signatur", + "SAML_Custom_signature_validation_response": "Valider Response-signatur", + "SAML_Custom_signature_validation_type": "Signatur-valideringstype", + "SAML_Custom_signature_validation_type_description": "Denne indstilling ignorerea hvis der ikke findes noget tilpasset certifikat.", "SAML_Custom_user_data_fieldmap": "Brugerdata Field Map", + "SAML_Custom_user_data_fieldmap_description": "Konfigurér hvordan brugerkontofelter (som e-mail) er udfyldt fra en post i SAML (når den findes). F.eks. vil '{\"name\":\"cn\", \"email\":\"mail\"}' vælge en persons menneskelige læsbare navn fra cn-attributten og deres e-mail fra email-attributten.\nTilgængelige felter i Rocket.Chat er: 'name', 'email' og 'username'. Alt andet gemmes som 'customFileds'.\nTildel navnet på en uforanderlig attribut til '__identifier__'-nøglen for at bruge det som en bruger-identifikation.\nDu kan også anvende regexes og skabeloner.\nSkabeloner vil blive behandlet først medmindre de refererer resultatet af regex.\n'''\n{\n \"email\": \"mail\",\n \"username\": {\n \"fieldName\": \"mail\",\n \"regex\": \"(.*)@.+$\",\n \"template\": \"user-__regex__\"\n }\n'\n \"name\":\n{\n \"fieldNames\": [\n \"firstName\",\n \"lastName\"\n ],\n \"template\": \"__firstName__ __lastName__\"\n }\n'\n \"__identifier__\": \"uid\"\n}'''", + "SAML_Custom_Username_Field": "Brugernavns feltnavn", + "SAML_Custom_Username_Normalize": "Normaliser brugernavn", + "SAML_Custom_Username_Normalize_None": "Ingen normalisering", + "SAML_Custom_Username_Normalize_Lowercase": "Til små bogstaver", + "SAML_Custom_Immutable_Property": "Uforanderligt feltnavn", "SAML_Custom_Immutable_Property_Username": "Brugernavn", + "SAML_Custom_Immutable_Property_EMail": "E-mail", "SAML_Custom_Public_Cert": "Offentligt certificeret indhold", + "SAML_Default_User_Role": "Standard brugerrolle", + "SAML_Default_User_Role_Description": "Du kan specificere flere roller ved at adskille dem med kommaer.", + "SAML_Identifier_Format": "Identificer format", + "SAML_Identifier_Format_Description": "Lad dette være tomt for at udelade NameID-politikken fra anmodningen.", + "SAML_LogoutResponse_Template": "Logout-svar-skabelon", + "SAML_LogoutRequest_Template": "Logout-anmodnings-skabelon", + "SAML_LogoutRequest_Template_Description": "Følgende variable er tilgængelige:\n- **\\_\\_newId\\_\\_**: Tilfældig genereret id-streng\n- **\\_\\_instant\\_\\_**: Aktuelt tidsstempel\n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP'en til den enkelte logout-URL der skal omdirigeres til.\n- **\\_\\_issuer\\_\\_**: Værdien af __Custom Issuer__ indstillingen.\n- **\\_\\_identifierFormat\\_\\_**: Værdien af __Identifier Format__ indstillingen.\n- **\\_\\_nameID\\_\\_**: NameID'et modtaget fra IdP'en da brugeren loggede ind.\n- **\\_\\_sessionIndex\\_\\_**: Sessions-indekset modtaget fra IdP'en da brugeren loggede ind.", + "SAML_LogoutResponse_Template_Description": "Følgende variable er tilgængelige:\n- **\\_\\_newId\\_\\_**: Tilfældig genereret id-streng\n- **\\_\\_inResponseToId\\_\\_**: ID'et til den logout-anmodning modtaget fra IdP'en.\n- **\\_\\_instant\\_\\_**: Aktuelt tidsstempel\n- **\\_\\_idpSLORedirectURL\\_\\_**: IDP'en til den enkelte logout-URL der skal omdirigeres til\n.- **\\_\\_issuer\\_\\_**: Værdien af __Custom Issuer__ indstillingen.\n- **\\_\\_identifierFormat\\_\\_**: Værdien af __Identifier Format__ indstillingen.\n- **\\_\\_nameID\\_\\_**: NameID'et modtaget fra IdP-Logout-anmodningen.\n- **\\_\\_sessionIndex\\_\\_**: Sessions-indekset modtaget fra IdP-Logout-anmodningen.", + "SAML_MetadataCertificate_Template": "Certifikat-skabelon for metadata", + "SAML_Metadata_Template": "Skabelon for metadata", + "SAML_Metadata_Template_Description": "Følgende variabler er tilgængelige:\n- **\\_\\_sloLocation\\_\\_**: Rocket.Chat-log-ud-URL.\n- **\\_\\_issuer\\_\\_**: Værdien af indstillingen __Custom Issuer__.\n- **\\_\\_identifierFormat\\_\\_**: Værdien af indstillingen __Identifier Format__.\n- **\\_\\_certificateTag\\_\\_**: Hvis et privat certifikat er konfigureret, vil dette indeholde __Metadata Certificate Template__, ellers ignoreres det.\n- **\\_\\_callbackUrl\\_\\_**: Rocket.Chat callback-URL.", + "SAML_Metadata_Certificate_Template_Description": "Følgende variabler er tilgængelige: \n- **\\_\\_certificate\\_\\_**: Det private certifikat til erklærings-kryptering.", + "SAML_NameIdPolicy_Template": "NameID-politik-skabelon", + "SAML_NameIdPolicy_Template_Description": "Du kan bruge en hvilken som helst variabel fra skabelonen Authorize Request her.", + "SAML_Role_Attribute_Name": "Rolleattributs navn", + "SAML_Role_Attribute_Name_Description": "Hvis denne attribut findes på SAML-svaret, bruges dens værdier som rollenavne for nye brugere.", + "SAML_Role_Attribute_Sync": "Synkroniser brugerroller", + "SAML_Role_Attribute_Sync_Description": "Synkroniser SAML-brugerroller ved login (overskriver lokale brugerroller).", + "SAML_Section_1_User_Interface": "Brugergrænseflade", + "SAML_Section_2_Certificate": "Certifikat", + "SAML_Section_3_Behavior": "Opførsel", + "SAML_Section_4_Roles": "Roller", + "SAML_Section_5_Mapping": "Mapping", + "SAML_Section_6_Advanced": "Avancere", + "SAML_Allowed_Clock_Drift": "Tillad tids-afvigelse fra identiets-udbyderen", + "SAML_Allowed_Clock_Drift_Description": "Tiden fra identitets-udbyderen vil mulighvis afvige ved at være lidt foran dit systemur. Du kan tillade en smule afvigelse. Værdien skal angives i millisekunder (ms). Den angivne værdi tilføjes til nuværende tid hvorefter svaret valideres.", "Saturday": "lørdag", "Save": "Gem", "save-others-livechat-room-info": "Gem andre Livechat Room Info", @@ -2846,25 +3127,33 @@ "Save_changes": "Gem ændringer", "Save_Mobile_Bandwidth": "Gem mobil båndbredde", "Save_to_enable_this_action": "Gem for at aktivere denne handling", + "Save_To_Webdav": "Gem til WebDAV", + "Save_your_encryption_password": "Gem din krypteringsadgangskode", "Saved": "Gemt", "Saving": "Lagring", "Scan_QR_code": "Brug en autentiseringsapp som Google Authenticator, Authy eller Duo, scan QR-koden. Det vil vise en 6-cifret kode, som du skal indtaste nedenfor.", - "Scan_QR_code_alternative_s": "Hvis du ikke kan scanne QR-koden, kan du indtaste kode manuelt i stedet: __code__", + "Scan_QR_code_alternative_s": "Hvis du ikke kan scanne QR-koden, kan du indtaste kode manuelt i stedet:", "Scope": "Anvendelsesområde", + "Screen_Lock": "Skærmlås", "Screen_Share": "Screen Share", "Script_Enabled": "Script aktiveret", "Search": "Søg", + "Search_Apps": "Søg i apps", "Search_by_file_name": "Søg efter filnavn", "Search_by_username": "Søg efter brugernavn", "Search_Channels": "Søg kanaler", + "Search_Chat_History": "Søg i chathistorik", "Search_current_provider_not_active": "Nuværende Søgeudbyder er ikke aktiv", + "Search_Integrations": "Søg i Integrationer", "Search_message_search_failed": "Søgeanmodningen mislykkedes", "Search_Messages": "Søg i beskeder", "Search_Page_Size": "Sidestørrelse", "Search_Private_Groups": "Søg Private Grupper", "Search_Provider": "Søgeudbyder", "Search_Users": "Søg brugere", + "Search_Rooms": "Søg i rum", "seconds": "sekunder", + "See_full_profile": "Se hele profilen", "Secret_token": "Secret Token", "Security": "Sikkerhed", "Select_a_department": "Vælg en afdeling", @@ -2875,9 +3164,13 @@ "Select_file": "Vælg fil", "Select_role": "Vælg en rolle", "Select_service_to_login": "Vælg en tjeneste for at logge ind for at indlæse dit billede eller uploade et direkte fra din computer", + "Select_tag": "Vælg et tag", "Select_user": "Vælg bruger", "Select_users": "Vælg brugere", "Selected_agents": "Udvalgte agenter", + "Selecting_users": "Vælge brugere", + "send-many-messages": "Send mange meddelelser", + "send-omnichannel-chat-transcript": "Send kopi af omnikanals samtale", "Send": "Send", "Send_a_message": "Send en besked", "Send_a_test_mail_to_my_user": "Send en test mail til min bruger", @@ -2889,8 +3182,13 @@ "Send_invitation_email_error": "Du har ikke angivet nogen gyldig email adresse.", "Send_invitation_email_info": "Du kan sende flere e-mail-invitationer på én gang.", "Send_invitation_email_success": "Du har sendt en invitation til e-mail til følgende adresser:", + "Send_me_the_code_again": "Send mig koden igen", "Send_request_on_agent_message": "Send anmodning om Agent Messages", "Send_request_on_chat_close": "Send anmodning om chat Luk", + "Send_request_on_chat_queued": "Send anmodning for Chat i kø", + "Send_request_on_chat_start": "Send anmodning for Chat-start", + "Send_request_on_chat_taken": "Send anmodning ved chat-overtagelse", + "Send_request_on_forwarding": "Send anmodning ved videresendelse", "Send_request_on_lead_capture": "Send anmodning om blyoptagelse", "Send_request_on_offline_messages": "Send anmodning om offline meddelelser", "Send_request_on_visitor_message": "Send anmodning om besøgsmeddelelser", @@ -2901,20 +3199,27 @@ "Send_your_JSON_payloads_to_this_URL": "Send dine JSON nyttelast til denne URL.", "Sending": "Sender ...", "Sent_an_attachment": "Sendt en vedhæftet fil", + "Sent_from": "Sendt fra", + "Separate_multiple_words_with_commas": "Adskill flere ord med kommaer", "Served_By": "Betjent af", + "Server_File_Path": "Server-fil-sti", + "Server_Folder_Path": "Server-mappe-sti", "Server_Info": "Server Info", "Server_Type": "Server Type", "Service": "Service", "Service_account_key": "Tjenesten konto nøgle", + "set-leader": "Vælg som leder", "set-moderator": "Indstil Moderator", "set-moderator_description": "Tilladelse til at indstille andre brugere som moderator for en kanal", "set-owner": "Sæt ejer", "set-owner_description": "Tilladelse til at indstille andre brugere som ejer af en kanal", + "Set_random_password_and_send_by_email": "Vælg tilfældig adgangskode og send via e-mail", "set-react-when-readonly": "Set React When ReadOnly", "set-react-when-readonly_description": "Tilladelse til at indstille evnen til at reagere på meddelelser i en skrivebeskyttet kanal", "set-readonly": "Indstil ReadOnly", "set-readonly_description": "Tilladelse til at indstille en kanal til at læse kun kanal", "Set_as_leader": "Sæt som leder", + "Set_as_favorite": "Sæt som favorit", "Set_as_moderator": "Indstil som moderator", "Set_as_owner": "Sæt som ejer", "Settings": "Indstillinger", @@ -2922,23 +3227,32 @@ "Setup_Wizard": "Opsætningsguide", "Setup_Wizard_Info": "Vi vil guide dig igennem opsætningen af ​​din første admin bruger, konfigurere din organisation og registrere din server for at modtage gratis push notifikationer og mere.", "Share_Location_Title": "Del placering?", + "Cannot_share_your_location": "Kan ikke dele din placering...", + "You_will_be_asked_for_permissions": "Du bliver bedt om tilladelser", + "The_necessary_browser_permissions_for_location_sharing_are_not_granted": "De nødvendige browser-tilladelser for placerings-deling blev ikke givet", "Shared_Location": "Fælles placering", + "Shared_Secret": "Shared Secret", "Should_be_a_URL_of_an_image": "Skal være en webadresse for et billede.", "Should_exists_a_user_with_this_username": "Brugeren skal allerede eksistere.", "Show_Setup_Wizard": "Vis installationsguiden", + "UI_Show_top_navbar_embedded_layout": "Vis øverste navigationsbar i integreret layout", + "Layout_Show_Home_Button": "Vis \"Home-knap\"", "Show_agent_email": "Vis agent email", + "Show_agent_info": "Vis agentoplysninger", "Show_all": "Vis alt", "Show_Avatars": "Vis avatars", "Show_counter": "Vis tæller", "Show_email_field": "Vis e-mail-feltet", + "Show_Message_In_Main_Thread": "Vis trådmeddelelser i hovedtråden", "Show_more": "Vis mere", "Show_name_field": "Vis navn felt", "show_offline_users": "Vis offline brugere", "Show_on_registration_page": "Vis på registreringsside", "Show_only_online": "Vis kun online", + "Show_on_offline_page": "Vis på off-line side", "Show_preregistration_form": "Vis forudregistreringsformular", "Show_queue_list_to_all_agents": "Vis køliste til alle agenter", - "Show_room_counter_on_sidebar": "Vis værelse tæller på sidebar", + "Show_room_counter_on_sidebar": "Vis rum-tælleren i sidepanelet", "Show_the_keyboard_shortcut_list": "Vis genvejslisten til tastaturet", "Showing_archived_results": "

Viser %s arkiverede resultater

", "Showing_online_users": "Viser: __total_showing__, Online: __online__, Ialt: __total__ brugere", @@ -2953,6 +3267,8 @@ "Size": "Størrelse", "Skip": "Springe", "Slack_Users": "Slack's Users CSV", + "SlackBridge_APIToken": "API Tokens", + "SlackBridge_APIToken_Description": "Du kan konfigurere flere slack-servere ved at tilføje en API-token pr. linje.", "SlackBridge_error": "SlackBridge fik en fejl under import af dine meddelelser på%s:%s", "SlackBridge_finish": "SlackBridge er færdig med at importere meddelelserne på%s. Venligst genindlæs for at se alle meddelelser.", "SlackBridge_Out_All": "SlackBridge Out All", @@ -2967,6 +3283,8 @@ "Slash_Shrug_Description": "Viser ¯ \\ _ (ツ) _ / ¯ efter din besked", "Slash_Tableflip_Description": "Viser (╯ ° □ °) ╯ (┻━┻", "Slash_TableUnflip_Description": "Viser ── ノ (゜ - ゜ ノ)", + "Slash_Status_Description": "Angiv din statusmeddelelse", + "Slash_Status_Params": "Statusmeddelelse", "Slash_Topic_Description": "Indstil emne", "Slash_Topic_Params": "Emne besked", "Smarsh_Email": "Smarsh Email", @@ -2977,7 +3295,11 @@ "Smarsh_Interval_Description": "Hvor lang tid der skal vente, før du sender chats (skal du have 'Fra Email' udfyldt under Email -> SMTP).", "Smarsh_MissingEmail_Email": "Manglende Email", "Smarsh_MissingEmail_Email_Description": "E-mailen, der skal vises for en brugerkonto, når deres emailadresse mangler, sker normalt med bot-konti.", + "Smarsh_Timezone": "Smarsh-tidszone", + "Timezone": "Tidszone", "Smileys_and_People": "Smileys & People", + "SMS_Default_Omnichannel_Department": "Afdeling for omnikanal (standard)", + "SMS_Default_Omnichannel_Department_Description": "Hvis det angives, vil alle nye indgående chats, der er startet med denne integration, blive dirigeret til denne afdeling.", "SMS_Enabled": "SMS aktiveret", "SMTP": "SMTP", "SMTP_Host": "SMTP-vært", @@ -2994,26 +3316,33 @@ "Social_Network": "Socialt netværk", "Sorry_page_you_requested_does_not_exist_or_was_deleted": "Beklager, siden du anmodede om, findes ikke eller blev slettet!", "Sort": "Sortere", + "Sort_By": "Sortér efter", "Sort_by_activity": "Sorter efter aktivitet", "Sound": "Sund", "Sound_File_mp3": "Lydfil (mp3)", "SSL": "SSL", + "Star": "Stjerne", "Star_Message": "Stjerne besked", "Starred_Messages": "Stjernede meddelelser", "Start": "Start", "Start_audio_call": "Start lydopkald", "Start_Chat": "Start Chat", + "start-discussion_description": "Start diskussion", + "start-discussion-other-user_description": "Start diskussion", "Start_of_conversation": "Start af samtale", "Start_OTR": "Start OTR", "Start_video_call": "Start videoopkald", "Start_video_conference": "Start videokonference?", "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s": "Start med %sfor bruger eller %sfor kanal. Fx: %seller %s", "Started_a_video_call": "Startede et videoopkald", + "Started": "Startet", "Started_At": "Startet på", "Statistics": "Statistik", "Statistics_reporting": "Send statistik til Rocket.Chat", "Statistics_reporting_Description": "Ved at sende dine statistikker hjælper du os med at identificere, hvor mange forekomster af Rocket.Chat der anvendes, samt hvor godt systemet fungerer, så vi kan forbedre det yderligere. Bare rolig, da ingen brugeroplysninger er sendt, og al information, vi modtager, holdes fortroligt.", + "Stats_Active_Guests": "Aktiverede gæster", "Stats_Active_Users": "Aktive brugere", + "Stats_App_Users": "Rocket.Chat-app-brugere", "Stats_Avg_Channel_Users": "Gennemsnitlige kanalbrugere", "Stats_Avg_Private_Group_Users": "Gennemsnitlig Privat Gruppe Brugere", "Stats_Away_Users": "Væk brugere", @@ -3021,36 +3350,60 @@ "Stats_Non_Active_Users": "Inaktive brugere", "Stats_Offline_Users": "Offline brugere", "Stats_Online_Users": "Online brugere", + "Stats_Total_Active_Apps": "I alt aktive apps", + "Stats_Total_Active_Incoming_Integrations": "I alt aktive indgående integrationer", + "Stats_Total_Active_Outgoing_Integrations": "I alt aktive udgående integrationer", + "Stats_Total_Connected_Users": "I alt tilsluttede brugere", "Stats_Total_Channels": "Samlede kanaler", "Stats_Total_Direct_Messages": "Direkte besked-rum i alt", + "Stats_Total_Incoming_Integrations": "I alt indgående integrationer", + "Stats_Total_Installed_Apps": "I alt installerede apps", + "Stats_Total_Integrations": "Integrationer i alt", + "Stats_Total_Integrations_With_Script_Enabled": "Integrationer i alt med script aktiveret", "Stats_Total_Livechat_Rooms": "Omnikanaler-rum i alt", "Stats_Total_Messages": "Samlede meddelelser", "Stats_Total_Messages_Channel": "Samlede meddelelser i kanaler", "Stats_Total_Messages_Direct": "Samlet antal beskeder i direkte beskeder", "Stats_Total_Messages_Livechat": "Samlet antal beskeder i Livechats", "Stats_Total_Messages_PrivateGroup": "Samlede meddelelser i private grupper", + "Stats_Total_Outgoing_Integrations": "I alt udgående integrationer", "Stats_Total_Private_Groups": "I alt private grupper", "Stats_Total_Rooms": "Rum i alt", "Stats_Total_Users": "Samlede brugere", + "Stats_Total_Uploads": "I alt uploads", + "Stats_Total_Uploads_Size": "I alt uploads størrelse", "Status": "Status", + "StatusMessage": "Statusmeddelelse", + "StatusMessage_Change_Disabled": "Din Rocket.Chat-administrator har deaktiveret ændringer af statusmeddelelser", + "StatusMessage_Changed_Successfully": "Statusmeddelelsen blev ændret.", + "StatusMessage_Placeholder": "Hvad laver du lige nu?", + "StatusMessage_Too_Long": "Statusmeddelelsen skal være kortere end 120 tegn.", "Step": "Trin", "Stop_Recording": "Stop optagelse", "Store_Last_Message": "Gem sidste besked", - "Store_Last_Message_Sent_per_Room": "Gem sidste besked sendt på hvert værelse.", + "Store_Last_Message_Sent_per_Room": "Gem sidste besked sendt i hvert rum.", "Stream_Cast": "Stream Cast", "Stream_Cast_Address": "Stream Cast-adresse", "Stream_Cast_Address_Description": "IP eller vært på din Rocket.Chat Central Stream Cast. F.eks. `192.168.1.1: 3000` eller` localhost: 4000`", "strike": "gennemstreget", + "Style": "Stil", "Subject": "Emne", "Submit": "Indsend", "Success": "Succes", "Success_message": "Succesmeddelelse", + "Successfully_downloaded_file_from_external_URL_should_start_preparing_soon": "Forberedelsen af downloadet fil fra ekstern URL starter snart", "Sunday": "Søndag", "Support": "Support", + "Support_Cordova_App": "Supportér Cordova-app", + "Support_Cordova_App_Alert": "Denne funktion er forældet og fjernes ved næste større udgivelse", + "Support_Cordova_App_Description": "Tillad den gamle mobil-app, der er baseret på Cordova-teknologi, at få adgang til serveren, der muliggør CORS for nogle API'er", "Survey": "Undersøgelse", "Survey_instructions": "Vurder hvert spørgsmål efter din tilfredshed, 1 hvilket betyder at du er helt utilfreds og 5 betyder, at du er helt tilfreds.", "Symbols": "Symboler", + "Sync": "Synkronisér", + "Sync / Import": "Synkronisér / Importér", "Sync_in_progress": "Synkronisering i gang", + "Sync_Interval": "Synkroniseringsinterval", "Sync_success": "Sync succes", "Sync_Users": "Synkroniser brugere", "System_messages": "Systemmeddelelser", @@ -3058,25 +3411,34 @@ "Take_it": "Tag det!", "TargetRoom": "Målrum", "TargetRoom_Description": "Værelset hvor der sendes beskeder, som er et resultat af, at denne begivenhed bliver fyret. Kun et målrum er tilladt, og det må eksistere.", + "Target user not allowed to receive messages": "Brugeren har ikke tilladelse til at modtage meddelelser", "Team": "Hold", "Technology_Provider": "Teknologi udbyder", "Technology_Services": "Teknologitjenester", "Telecom": "Telecom", + "Terms": "Vilkår", "Test_Connection": "Testforbindelse", "Test_Desktop_Notifications": "Test skrivebordsbeskeder", + "Texts": "Tekster", "Thank_you_exclamation_mark": "Tak!", "Thank_you_for_your_feedback": "Tak for din feedback", "The_application_name_is_required": "Ansøgningsnavnet er påkrævet", "The_channel_name_is_required": "Kanalnavnet er påkrævet", "The_emails_are_being_sent": "E-mailsne bliver sendt.", + "The_empty_room__roomName__will_be_removed_automatically": "Det tomme rum __ roomName __ fjernes automatisk.", "The_field_is_required": "Feltet%s er påkrævet.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Billedforstørrelsen fungerer ikke, fordi vi ikke kan opdage ImageMagick eller GraphicsMagick installeret på din server.", + "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Meddelelsen er en diskussion og du vil derfor ikke kunne gendanne meddelelserne!", + "The_peer__peer__does_not_exist": "Peer'en __ peer __ findes ikke.", "The_redirectUri_is_required": "RedirectUri er påkrævet", + "The_selected_user_is_not_an_agent": "Den valgte bruger er ikke en agent", "The_server_will_restart_in_s_seconds": "Serveren genstartes i%s sekunder", "The_setting_s_is_configured_to_s_and_you_are_accessing_from_s": "Indstillingen %s er konfigureret til %s, og du får adgang fra %s!", "The_user_will_be_removed_from_s": "Brugeren vil blive fjernet fra%s", + "The_user_s_will_be_removed_from_role_s": "Brugeren %s fjernes fra rolle %s", "The_user_wont_be_able_to_type_in_s": "Brugeren kan ikke skrive i %s", "Theme": "Tema", + "theme-color-attention-color": "Farve for opmærksomhed", "theme-color-component-color": "Komponent Farve", "theme-color-content-background-color": "Indhold Baggrundsfarve", "theme-color-custom-scrollbar-color": "Brugerdefineret rullestangsfarve", @@ -3089,12 +3451,20 @@ "theme-color-primary-font-color": "Primær skrifttype farve", "theme-color-rc-color-alert": "Alert", "theme-color-rc-color-alert-light": "Alert Light", + "theme-color-rc-color-alert-message-primary": "Primær alarmmeddelelse", + "theme-color-rc-color-alert-message-primary-background": "Primær baggrund for alarmmeddelelse", + "theme-color-rc-color-alert-message-secondary": "Sekundær alarmmeddelelse", + "theme-color-rc-color-alert-message-secondary-background": "Sekundær baggrund for alarmmeddelelse", + "theme-color-rc-color-alert-message-warning": "Advarsels-alarmmeddelelse", + "theme-color-rc-color-alert-message-warning-background": "Baggrund for advarsels-alarmmeddelelse", "theme-color-rc-color-button-primary": "Primær knap", "theme-color-rc-color-button-primary-light": "Knappen Primærlys", "theme-color-rc-color-content": "Indhold", "theme-color-rc-color-error": "Fejl", "theme-color-rc-color-error-light": "Fejl lys", + "theme-color-rc-color-link-active": "Link aktivt", "theme-color-rc-color-primary": "Primær", + "theme-color-rc-color-primary-background": "Primær baggrund", "theme-color-rc-color-primary-dark": "Primær mørk", "theme-color-rc-color-primary-darkest": "Primær mørkeste", "theme-color-rc-color-primary-light": "Primærlys", @@ -3125,24 +3495,37 @@ "There_are_no_applications": "Ingen oAuth-applikationer er blevet tilføjet endnu.", "There_are_no_applications_installed": "Der er i øjeblikket ingen Rocket.Chat-programmer installeret.", "There_are_no_integrations": "Der er ingen integrationer", + "There_are_no_personal_access_tokens_created_yet": "Der er endnu ikke oprettet nogen tokens til personlig adgang.", "There_are_no_users_in_this_role": "Der er ingen brugere i denne rolle.", + "There_is_one_or_more_apps_in_an_invalid_state_Click_here_to_review": "Der er en eller flere apps i en ugyldig tilstand. Klik her for at gennemgå.", "This_conversation_is_already_closed": "Denne samtale er allerede lukket.", "This_email_has_already_been_used_and_has_not_been_verified__Please_change_your_password": "Denne email er allerede blevet brugt og er ikke blevet bekræftet. Venligst skift adgangskode.", "This_is_a_desktop_notification": "Dette er en desktop besked", "This_is_a_push_test_messsage": "Dette er en push test besked", - "This_room_has_been_archived_by__username_": "Dette værelse er blevet arkiveret af __username__", - "This_room_has_been_unarchived_by__username_": "Dette værelse er blevet arkiveret af __username__", + "This_message_was_rejected_by__peer__peer": "Denne meddelelse blev afvist af __ peer __ peer.", + "This_month": "Denne måned", + "This_room_has_been_archived_by__username_": "Dette rum er blevet arkiveret af __username__", + "This_room_has_been_unarchived_by__username_": "Dette rum er blevet flyttet fra arkiveret til ikke-arkiveret af __username__", + "thread": "tråd", + "Threads": "Tråde", + "Thread_message": "Kommenteret for *__username__'s* besked: _ __msg__ _", + "This_agent_was_already_selected": "Denne agent var allerede valgt", + "This_week": "Denne uge", "Thursday": "torsdag", "Time_in_seconds": "Tid i sekunder", + "Timeouts": "Timeout", "Title": "Titel", "Title_bar_color": "Titel bar farve", "Title_bar_color_offline": "Titellinjefarve offline", "Title_offline": "Titel offline", + "To": "Til", + "Today": "I dag", "To_additional_emails": "Til yderligere e-mails", "To_install_RocketChat_Livechat_in_your_website_copy_paste_this_code_above_the_last_body_tag_on_your_site": "For at installere Rocket.Chat Livechat på dit websted, kopier & Indsæt denne kode ovenover det sidste < / body > tag på dit websted.", "to_see_more_details_on_how_to_integrate": "at se flere detaljer om integration.", "To_users": "Til brugere", "Toggle_original_translated": "Skift originalt / oversat", + "Token": "Token", "Token_Access": "Token Access", "Token_Controlled_Access": "Token kontrolleret adgang", "Token_required": "Token kræves", @@ -3156,13 +3539,23 @@ "Tokens_Required_Input_Error": "Ugyldige typede tokens.", "Tokens_Required_Input_Placeholder": "Tokens aktivnavne", "Topic": "Emne", + "Total": "I alt", + "Total_abandoned_chats": "Forladte chats i alt", + "Total_conversations": "Samtaler i alt", "Total_Discussions": "Samlede antal diskussioner", "Total_messages": "Samlede meddelelser", + "Total_Threads": "Tråde i alt", + "Total_visitors": "Besøgende i alt", + "totp-invalid": "Kode eller adgangskode er ugyldig", + "TOTP Invalid [totp-invalid]": "Kode eller adgangskode er ugyldig", "Tourism": "Turisme", + "Transcript": "Kopi", "Transcript_Enabled": "Spørg besøgende, hvis de gerne vil have en transskription efter chat lukket", "Transcript_message": "Meddelelse at vise, når du spørger om transskription", "Transcript_of_your_livechat_conversation": "Udskrift af din livechat samtale.", + "Transcript_Request": "Anmodning om kopi", "transfer-livechat-guest": "Overfør Livechat-gæster", + "Translate": "Oversæt", "Translated": "oversat", "Translations": "Oversættelser", "Travel_and_Places": "Rejse & Steder", @@ -3170,17 +3563,35 @@ "Trigger_Words": "Trigger Words", "Triggers": "triggers", "True": "Sandt", + "Troubleshoot": "Fejlsøg", + "Troubleshoot_Description": "Disse indstillinger skal kun aktiveres med vejledning af Rocket.Chat-udviklings- eller supportteams. Rør ikke ved dem, hvis du ikke ved, hvad du laver!", "Troubleshoot_Disable_Notifications": "Deaktiver notifikationer", + "Troubleshoot_Disable_Notifications_Alert": "Denne indstilling deaktiverer alarmsystemet fuldstændigt. Lyde, skrivebordsunderretninger, mobilunderretninger og e-mails stopper!", + "Troubleshoot_Disable_Presence_Broadcast": "Slå broadcast af tilstedeværelse fra", + "Troubleshoot_Disable_Presence_Broadcast_Alert": "Denne indstilling forhindrer alle instancer fra at sende statusændringerne for brugerne til deres klienter, hvilket gør, at alle brugere vil have deres status vedr. tilstedeværelse fra de blev loadet i starten!", + "Troubleshoot_Disable_Instance_Broadcast": "Slå broadcast af instans fra", + "Troubleshoot_Disable_Instance_Broadcast_Alert": "Denne indstilling forhindrer Rocket.Chat-instanser fra at sende events til de andre instanser hvilket kan forårsage synkroniseringsproblemer og fejl!", + "Troubleshoot_Disable_Sessions_Monitor": "Deaktivér sessions-monitor", + "Troubleshoot_Disable_Sessions_Monitor_Alert": "Denne indstilling stopper behandlingen af brugersessioner og får statistikkerne til at stoppe med at virke korrekt!", "Troubleshoot_Disable_Livechat_Activity_Monitor": "Deaktivér Livechat Activity Monitor", "Troubleshoot_Disable_Livechat_Activity_Monitor_Alert": "Denne indstilling stopper behandlingen af Livechat-besøgendes sessioner, hvilket afholder statistikkerne fra at fungere korrekt!", + "Troubleshoot_Disable_Statistics_Generator": "Deaktivér statistik-generator", + "Troubleshoot_Disable_Statistics_Generator_Alert": "Denne indstilling stopper behandlingen af alle statistikker, hvilket gør at informationssiden forældes, indtil nogen klikker på opdateringsknappen og kan også forårsage andre manglende oplysninger rundt omkring i systemet!", + "Troubleshoot_Disable_Data_Exporter_Processor": "Deaktivér data-eksport-processor", + "Troubleshoot_Disable_Data_Exporter_Processor_Alert": "Denne indstilling stopper behandlingen af alle eksportanmodninger fra brugere, så de vil ikke modtage linket for at downloade deres data!", + "Troubleshoot_Disable_Workspace_Sync": "Deaktivér synkronisering af Workspace", + "Troubleshoot_Disable_Workspace_Sync_Alert": "Denne indstilling stopper synkroniseringen af denne server med Rocket.Chat's cloud og kan forårsage problemer med marketplace og enteprise-licenser!", "Tuesday": "tirsdag", "Turn_OFF": "Sluk", "Turn_ON": "Tænde for", + "Two Factor Authentication": "To-faktor-godkendelse", "Two-factor_authentication": "Tofaktorgodkendelse", + "Two-factor_authentication_email": "To-faktor-godkendelse via e-mail", "Two-factor_authentication_disabled": "Tofaktorgodkendelse er deaktiveret", "Two-factor_authentication_enabled": "Tofaktorgodkendelse er aktiveret", "Two-factor_authentication_is_currently_disabled": "Tofaktorgodkendelse er ikke aktiveret", "Two-factor_authentication_native_mobile_app_warning": "ADVARSEL: Når du har aktiveret dette, kan du ikke logge ind på de indbyggede mobilapps (Rocket.Chat +) ved hjælp af dit kodeord, indtil de implementerer 2FA.", + "Two-factor_authentication_email_is_currently_disabled": "To-faktor-godkendelse via e-mail er i øjeblikket deaktiveret", "Type": "Type", "Type_your_email": "Indtast din email", "Type_your_job_title": "Indtast din jobtitel", @@ -3198,16 +3609,26 @@ "UI_Unread_Counter_Style": "Ulæst tæller stil", "UI_Use_Name_Avatar": "Brug Fuldt navn Initials til at generere Default Avatar", "UI_Use_Real_Name": "Brug virkeligt navn", + "unable-to-get-file": "Kan ikke hente fil", "Unarchive": "Annuller arkivering", "unarchive-room": "Unarchive Room", "unarchive-room_description": "Tilladelse til at ophæve kanaler", + "Unavailable": "Utilgængelig", "Unblock_User": "Fjern blokering af bruger", + "Uncheck_All": "Fjern alle markeringer", + "Undefined": "Udefineret", + "Unfavorite": "Fjern som favorit", + "Unfollow_message": "Følg ikke meddelelse", "Unignore": "Ignorer ikke længere", "Uninstall": "Afinstaller", + "Unknown_Import_State": "Ukendt import-status", + "Unlimited": "Ubegrænset", "Unmute_someone_in_room": "Sluk for en person i rummet", "Unmute_user": "Sluk for brugeren", "Unnamed": "unavngiven", + "Unpin": "Frigør", "Unpin_Message": "Unpin Message", + "unpinning-not-allowed": "Unpinning er ikke tilladt", "Unread": "Ulæst", "Unread_Count": "Antal ulæste", "Unread_Count_DM": "Ulæst tælle til direkte beskeder", @@ -3217,17 +3638,26 @@ "Unread_Rooms_Mode": "Ulæste rum-tilstand", "Unread_Tray_Icon_Alert": "Uread Tray Icon Alert", "Unstar_Message": "Fjern stjerne", + "Update": "Opdatér", + "Update_LatestAvailableVersion": "Opdatér den seneste tilgængelige version", + "Update_to_version": "Opdatér til __version__", "Update_your_RocketChat": "Opdater din Rocket.Chat", "Updated_at": "Opdateret kl", + "Upload": "Upload", + "Upload_app": "Upload-app", "Upload_file_description": "Filbeskrivelse", "Upload_file_name": "Filnavn", "Upload_file_question": "Upload fil?", "Upload_Folder_Path": "Upload mappepath", "Upload_user_avatar": "Upload avatar", + "Upload_From": "Upload fra __name__", "Uploading_file": "Uploader fil ...", "Uptime": "Uptime", "URL": "URL", "URL_room_prefix": "URL-præfiks", + "URL_room_suffix": "URL-rum-suffiks", + "Use_Server_configuration": "Brug serverkonfiguration", + "Use_Room_configuration": "Overskriv serverkonfigurationen og brug rumkonfiguration", "Use_account_preference": "Brug konto præference", "Use_Emojis": "Brug Emojis", "Use_Global_Settings": "Brug globale indstillinger", @@ -3240,6 +3670,10 @@ "Use_url_for_avatar": "Brug URL til avatar", "Use_User_Preferences_or_Global_Settings": "Brug Brugerindstillinger eller Globale indstillinger", "User": "Bruger", + "Users_and_rooms": "Brugere og rum", + "User Search": "Brugersøgning", + "User_created_successfully!": "Det lykkedes at oprette bruger!", + "User Search (Group Validation)": "Brugersøgning (Gruppevalidering)", "user-generate-access-token": "User Generate Access Token", "user-generate-access-token_description": "Tilladelse for brugere at generere adgangstokener", "User__username__is_now_a_leader_of__room_name_": "Bruger __username__ er nu leder af __room_name__", @@ -3254,6 +3688,7 @@ "User_and_group_mentions_only": "Kun for brugere og grupper, der har nævnt mig", "User_default": "Brugerstandard", "User_doesnt_exist": "Der findes ingen bruger med navnet `@%s`.", + "User_e2e_key_was_reset": "Bruger-E2E-nøgle blev nulstillet.", "User_has_been_activated": "Bruger er blevet aktiveret", "User_has_been_deactivated": "Bruger er blevet deaktiveret", "User_has_been_deleted": "Bruger er blevet slettet", @@ -3268,6 +3703,7 @@ "User_is_now_an_admin": "Bruger er nu en administrator", "User_is_unblocked": "Brugeren er blokeret", "User_joined_channel": "Har sluttet sig til kanalen.", + "User_joined_conversation": "Har sluttet sig til samtalen", "User_joined_channel_female": "Har sluttet sig til kanalen.", "User_joined_channel_male": "Har sluttet sig til kanalen.", "User_left": "Har forladt kanalen.", @@ -3288,8 +3724,11 @@ "User_sent_a_message_to_you": "__username__ sendte dig en besked", "user_sent_an_attachment": "__user__ sendte en vedhæftet fil", "User_Settings": "Brugerindstillinger", + "User_started_a_new_conversation": "__username__ startede en ny samtale", "User_unmuted_by": "Bruger __user_unmuted__ustyret af __user_by__.", "User_unmuted_in_room": "Bruger ubemærket i rummet", + "User__username__unmuted_in_room__roomName__": "Bruger __username__ har lyden slået til i rum __roomName__", + "User__username__muted_in_room__roomName__": "Bruger __username__ har lyden slået fra i rum __roomName__", "User_updated_successfully": "Bruger opdateret med succes", "User_uploaded_a_file_on_channel": "__username__ uploadede en fil på __channel__", "User_uploaded_a_file_to_you": "__username__ sendte dig en fil", @@ -3302,11 +3741,12 @@ "UserData_ProcessingFrequency": "Behandlingsfrekvens (minutter)", "UserDataDownload": "Download af brugerdata", "UserDataDownload_CompletedRequestExisted_Text": "Din datafil er allerede genereret. Tjek din e-mail-konto for download linket.", + "UserDataDownload_CompletedRequestExistedWithLink_Text": "Din datafil var allerede blevet genereret. Klik her for at downloade det.", "UserDataDownload_EmailBody": "Din datafil er nu klar til download. Klik på herfor at downloade det.", "UserDataDownload_EmailSubject": "Din datafil er klar til download", "UserDataDownload_Requested": "Download fil anmodet", - "UserDataDownload_Requested_Text": "Din datafil vil blive genereret. Et link til at downloade det vil blive sendt til din email-adresse, når du er klar.", - "UserDataDownload_RequestExisted_Text": "Din datafil genereres allerede. Et link til at downloade det vil blive sendt til din email-adresse, når du er klar.", + "UserDataDownload_Requested_Text": "Din datafil vil blive genereret. Et link til at downloade det sendes til din e-mail-adresse, når det er klart. Der er __pending_operations__ i kø der vil blive behandlet inden da.", + "UserDataDownload_RequestExisted_Text": "Din datafil er allerede ved at blive genereret. Et link til at downloade det sendes til din e-mail-adresse, når det er klart. Der er __pending_operations__ i kø der vil blive behandlet inden da.", "Username": "Brugernavn", "Username_already_exist": "Brugernavnet eksisterer allerede. Prøv venligst et andet brugernavn.", "Username_and_message_must_not_be_empty": "Brugernavn og besked må ikke være tomme.", @@ -3324,18 +3764,32 @@ "Username_wants_to_start_otr_Do_you_want_to_accept": "__username__ ønsker at starte OTR. Vil du acceptere?", "Users": "Brugere", "Users_added": "Brugerne er blevet tilføjet", + "Users_by_time_of_day": "Brugere på tidspunktet i løbet af dagen", "Users_in_role": "Brugere i rolle", + "Users must use Two Factor Authentication": "Brugere skal anvende to-faktor-godkendelse", + "Leave_the_description_field_blank_if_you_dont_want_to_show_the_role": "Lad beskrivelsesfeltet være tomt, hvis du ikke vil vise rollen", + "Uses": "Brugere", + "Uses_left": "Tilbageværende brugere", "UTF8_Names_Slugify": "UTF8 Navne Slugify", "UTF8_Names_Validation": "UTF8 navne validering", "UTF8_Names_Validation_Description": "RegExp, der bruges til at validere brugernavne og kanalnavne", + "Validation": "Validering", + "Value_messages": "__value_ meddelelser", + "Value_users": "__value__ brugere", "Validate_email_address": "Valider e-mail-adresse", + "Verification_email_body": "Klik på knappen nedenfor for at bekræfte din e-mail-adresse.", "Verification": "Verifikation", "Verification_Description": "Du kan bruge følgende pladsholdere:
  • [Verification_Url] for verifikationswebadressen.
  • [navn], [fname], [lname] for brugerens fulde navn, fornavn eller efternavn.
  • [email] for brugerens e-mail.
  • [Site_Name] og [Site_URL] for henholdsvis Applikationsnavn og URL.
", "Verification_email_sent": "Bekræftelses-email sendt", "Verification_Email_Subject": "[Site_Name] - Bekræft din konto", "Verified": "Bekræftet", + "Not_verified": "Ikke bekræftet", "Verify": "Verificere", + "Verify_your_email": "Bekræft din e-mail", + "Verify_your_email_for_the_code_we_sent": "Bekræft din e-mail med den kode vi har tilsendt", "Version": "Version", + "Version_version": "Version __version__", + "Videos": "Videoer", "Video Conference": "Video konference", "Video_Chat_Window": "Videochat", "Video_Conference": "Video konference", @@ -3353,12 +3807,17 @@ "view-history_description": "Tilladelse til at se kanalhistorikken", "view-join-code": "View Tilmeld Kode", "view-join-code_description": "Tilladelse til at se kanalens adgangskode", - "view-joined-room": "Se Tilsluttet Værelse", + "view-joined-room": "Se det tilsluttede rum", "view-joined-room_description": "Tilladelse til at se de tilsluttede kanaler", "view-l-room": "Se omnikanal-rum", "view-l-room_description": "Tilladelse til at se livechat-kanaler", + "view-livechat-analytics": "Se omnikanal-analyse", + "view-livechat-room-closed-by-another-agent": "Se omnikanal-rum lukket af en anden agent", + "view-livechat-room-closed-same-department": "Se omnikanal-rum er lukket af en anden agent i samme afdeling", + "view-livechat-departments": "Se afdelinger for omnikanaler", "view-livechat-manager": "Se Livechat Manager", "view-livechat-manager_description": "Tilladelse til at se andre livechat-ledere", + "view-livechat-queue": "Se omnikanal-kø", "view-livechat-rooms": "Se omnikanal-rum", "view-livechat-rooms_description": "Tilladelse til at se andre livechat kanaler", "view-logs": "Se logfiler", @@ -3366,7 +3825,8 @@ "view-other-user-channels": "Se andre brugerkanaler", "view-other-user-channels_description": "Tilladelse til at se kanaler ejet af andre brugere", "view-outside-room": "Se udvendige rum", - "view-p-room": "Se privat værelse", + "view-outside-room_description": "Tilladelse til at se brugere uden for det aktuelle rum", + "view-p-room": "Se det private rum", "view-p-room_description": "Tilladelse til at se private kanaler", "view-privileged-setting": "Se privilegeret indstilling", "view-privileged-setting_description": "Tilladelse til visning af indstillinger", @@ -3379,19 +3839,32 @@ "View_All": "Se alle medlemmer", "View_Logs": "Se logfiler", "View_mode": "Visning", + "View_original": "Se oprindelig", "Viewing_room_administration": "Viser rum-administrationen", + "View_the_Logs_for": "Se logfilerne for: \"__name__\"", "Visibility": "Sigtbarhed", "Visible": "Synlig", + "Visit_Site_Url_and_try_the_best_open_source_chat_solution_available_today": "Besøg __Site_URL__ og prøv den bedste open source chatløsning der er tilgængelig i dag!", "Visitor": "Besøgende", + "Visitor_Email": "Besøgendes e-mail", "Visitor_Info": "Besøgsinformation", + "Visitor_Name": "Besøgendea navn", + "Visitor_Name_Placeholder": "Indtast et besøgsnavn...", "Visitor_Navigation": "Visitor Navigation", "Visitor_page_URL": "URL for besøgende side", "Visitor_time_on_site": "Besøgende tid på stedet", "Wait_activation_warning": "Før du kan logge ind, skal din konto manuelt aktiveres af en administrator.", + "Warning": "Advarsel", "Warnings": "Advarsler", "We_are_offline_Sorry_for_the_inconvenience": "Vi er offline. Beklager ulejligheden.", "We_have_sent_password_email": "Vi har sendt dig en email med instruktioner om nulstilling af adgangskode. Hvis du ikke modtager en e-mail inden for kort tid, kan du komme tilbage og prøve igen.", "We_have_sent_registration_email": "Vi har sendt dig en email for at bekræfte din registrering. Hvis du ikke modtager en e-mail inden for kort tid, kan du komme tilbage og prøve igen.", + "Webdav Integration": "Webdav-integration", + "WebDAV_Accounts": "WebDAV-konti", + "Webdav_add_new_account": "Tilføj ny WebDAV-konto", + "webdav-account-saved": "WebDAV-konto er gemt", + "webdav-account-updated": "WebDAV-konto opdateret", + "Webdav_Integration_Enabled": "Webdav-integration aktiveret", "Webdav_Server_URL": "WebDAV Server Access URL", "Webdav_Username": "WebDAV Brugernavn", "Webdav_Password": "WebDAV-adgangskode", @@ -3410,15 +3883,22 @@ "Website": "Websted", "Wednesday": "onsdag", "Welcome": "Velkommen %s.", + "Welcome_to": "Velkommen til __Site_Name__", "Welcome_to_the": "Velkommen til", + "Where_are_the_messages_being_sent?": "Hvortil sendes meddelelserne?", + "When_is_the_chat_busier?": "Hvornår er denne chat travlest?", + "When_a_line_starts_with_one_of_there_words_post_to_the_URLs_below": "Når en linje starter med et af disse ord, skal der skrives til URL(erne) nedenfor", "Why_do_you_want_to_report_question_mark": "Hvorfor vil du rapportere?", "will_be_able_to": "vil være i stand til", + "Will_be_available_here_after_saving": "Vil være tilgængelig her efter at det er blevet gemt.", "Worldwide": "I hele verden", "Would_you_like_to_return_the_inquiry": "Vil du gerne returnere forespørgslen?", "Yes": "Ja", + "Yesterday": "I går", "Yes_archive_it": "Ja, arkiver det!", "Yes_clear_all": "Ja, ryd alle!", "Yes_delete_it": "Ja, slet det!", + "Yes_deactivate_it": "Ja. Deaktivér det!", "Yes_hide_it": "Ja, skjul det!", "Yes_leave_it": "Ja, lad det være!", "Yes_mute_user": "Ja, stum bruger!", @@ -3428,13 +3908,15 @@ "yesterday": "i går", "You": "Du", "you_are_in_preview_mode_of": "Du er i preview-tilstand af kanal # __room_name__", + "you_are_in_preview_mode_of_incoming_livechat": "Du er i preview-tilstand for denne chat", "You_are_logged_in_as": "Du er logget ind som", "You_are_not_authorized_to_view_this_page": "Du er ikke autoriseret til at se denne side.", "You_can_change_a_different_avatar_too": "Du kan tilsidesætte avataren, der bruges til at sende fra denne integration.", - "You_can_search_using_RegExp_eg": "Du kan søge ved hjælp af RegExp. f.eks. /^text$/i", + "You_can_close_this_window_now": "Du kan lukke dette vindue nu.", + "You_can_search_using_RegExp_eg": "Du kan søge ved hjælp af RegExp. F.eks. ^text$/i", "You_can_use_an_emoji_as_avatar": "Du kan også bruge en emoji som avatar.", "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "Du kan bruge webhooks til nemt at integrere livechat med din CRM.", - "You_cant_leave_a_livechat_room_Please_use_the_close_button": "Du kan ikke forlade et livechat-værelse. Brug venligst tasten Luk.", + "You_cant_leave_a_livechat_room_Please_use_the_close_button": "Du kan ikke forlade et omnikanal-rum. Brug venligst tasten Luk.", "You_have_been_muted": "Du er blevet dæmpet og kan ikke tale i dette rum", "You_have_n_codes_remaining": "Du har __number__ koder tilbage.", "You_have_not_verified_your_email": "Du har ikke bekræftet din email.", @@ -3448,19 +3930,29 @@ "You_need_to_type_in_your_username_in_order_to_do_this": "Du skal indtaste dit brugernavn for at kunne gøre dette!", "You_need_to_verifiy_your_email_address_to_get_notications": "Du skal bekræfte din e-mail-adresse for at få beskeder", "You_need_to_write_something": "Du skal skrive noget!", + "You_reached_the_maximum_number_of_guest_users_allowed_by_your_license": "Du nåede det maksimale antal gæstebrugere der er tilladt med din licens.", "You_should_inform_one_url_at_least": "Du skal definere mindst en webadresse.", "You_should_name_it_to_easily_manage_your_integrations": "Du skal nævne det for nemt at styre dine integrationer.", "You_will_not_be_able_to_recover": "Du kan ikke gendanne denne besked!", "You_will_not_be_able_to_recover_file": "Du kan ikke gendanne denne fil!", "You_wont_receive_email_notifications_because_you_have_not_verified_your_email": "Du modtager ikke e-mail-meddelelser, fordi du ikke har bekræftet din e-mail.", + "Your_email_address_has_changed": "Din e-mail-adresse er blevet ændret.", "Your_email_has_been_queued_for_sending": "Din e-mail har været i kø for at sende", "Your_entry_has_been_deleted": "Din indtastning er blevet slettet.", "Your_file_has_been_deleted": "Din fil er blevet slettet.", + "Your_invite_link_will_expire_after__usesLeft__uses": "Dit invitations-link udløber efter __usesLeft__ gange.", + "Your_invite_link_will_expire_on__date__or_after__usesLeft__uses": "Dit invitations-link udløber den __date__ eller efter __usesLeft__ gange.", + "Your_invite_link_will_expire_on__date__": "Dit invitations-link udløber den __date__.", + "Your_invite_link_will_never_expire": "Dit invitations-link udløber aldrig.", "Your_mail_was_sent_to_s": "Din mail blev sendt til%s", "your_message": "din besked", "your_message_optional": "din besked (valgfri)", + "Your_new_email_is_email": "Din nye e-mail-adresse er [email].", "Your_password_is_wrong": "Dit kodeord er forkert!", + "Your_password_was_changed_by_an_admin": "Din adgangskode blev ændret af en administrator.", "Your_push_was_sent_to_s_devices": "Dit skub blev sendt til%s-enheder", + "Your_question": "Dit spørgsmål", "Your_server_link": "Din server link", + "Your_temporary_password_is_password": "Din midlertidige adgangskode er [password].", "Your_workspace_is_ready": "Dit arbejdsområde er klar til brug 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/de-AT.i18n.json b/packages/rocketchat-i18n/i18n/de-AT.i18n.json index a7594ce85834..524d1bd88180 100644 --- a/packages/rocketchat-i18n/i18n/de-AT.i18n.json +++ b/packages/rocketchat-i18n/i18n/de-AT.i18n.json @@ -1682,7 +1682,8 @@ "Mailer_body_tags": "Sie müssen [unsubscribe] verwenden, um einen Link zum Abmelden aus dem Verteiler zur Verfügung zu stellen.
Sie können [name] für den Vor- und Nachnamen, [fname] für den Vornamen oder [lname] für den Nachnamen des Benutzers verwenden.
Ebenfalls können Sie [email] verwenden, um die E-Mail-Adresse des Benutzers anzugeben.", "Mailing": "Mailing", "Make_Admin": "Benutzer zum Admin ernennen", - "Make_sure_you_have_a_copy_of_your_codes": "Stellen Sie sicher, dass Sie eine Kopie Ihrer Codes haben: __codes__ Wenn Sie den Zugriff auf Ihre Authentifikator-App verlieren, können Sie sich mit einem dieser Codes anmelden.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Stellen Sie sicher, dass Sie eine Kopie Ihrer Codes haben:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Wenn Sie den Zugriff auf Ihre Authentifikator-App verlieren, können Sie sich mit einem dieser Codes anmelden.", "manage-apps": "Apps verwalten", "manage-assets": "Vermögenswerte verwalten", "manage-assets_description": "Berechtigung zum Verwalten der Server-Assets", @@ -1898,6 +1899,7 @@ "Notify_all_in_this_room": "Alle Benutzer in diesem Raum benachrichtigen", "Num_Agents": "# Agents", "Number_of_messages": "Anzahl der Nachrichten", + "RetentionPolicy_DoNotExcludeDiscussion": "Diskussionen einschließen", "OAuth_Application": "OAuth-Anwendung", "OAuth_Applications": "OAuth-Anwendungen", "Objects": "Objekte", @@ -1907,6 +1909,7 @@ "Office_Hours": "Geschäftszeiten", "Office_hours_enabled": "Bürozeiten aktiviert", "Office_hours_updated": "Bürozeiten aktualisiert", + "RetentionPolicy_ExcludePinned": "Pinned-Nachrichten ausschließen", "Offline": "Offline", "Offline_DM_Email": "Private Nachricht von __user__ erhalten.", "Offline_Email_Subject_Description": "Sie können die folgenden Platzhalter verwenden:
  • [Site_Name], [Site_URL], [Benutzer] & [Raum] für den Anwendungsnamen, die URL, den Benutzernamen und den Raumnamen.
", @@ -2145,7 +2148,6 @@ "Retail": "Verkauf", "Retention_setting_changed_successfully": "Die Einstellung für die Aufbewahrungsrichtlinie wurde erfolgreich geändert", "RetentionPolicy": "Aufbewahrungsrichtlinie", - "RetentionPolicy_DoNotExcludeDiscussion": "Diskussionen einschließen", "RetentionPolicy_RoomWarning": "Nachrichten, die älter als __time__ sind, werden hier automatisch gelöscht", "RetentionPolicy_RoomWarning_Unpinned": "Nicht gepinnte Nachrichten, die älter als __time__ sind, werden hier automatisch bereinigt", "RetentionPolicy_RoomWarning_FilesOnly": "Dateien älter als __time__ werden hier automatisch bereinigt (Nachrichten bleiben erhalten)", @@ -2155,7 +2157,6 @@ "RetentionPolicy_AppliesToChannels": "Gilt für Kanäle", "RetentionPolicy_AppliesToGroups": "Gilt für private Gruppen", "RetentionPolicy_AppliesToDMs": "Gilt für direkte Nachrichten", - "RetentionPolicy_ExcludePinned": "Pinned-Nachrichten ausschließen", "RetentionPolicy_FilesOnly": "Löschen Sie nur Dateien", "RetentionPolicy_FilesOnly_Description": "Nur Dateien werden gelöscht, die Nachrichten selbst bleiben bestehen.", "RetentionPolicy_MaxAge": "Maximales Nachrichtenalter", @@ -2228,6 +2229,7 @@ "SAML_Custom_user_data_fieldmap": "Nutzerdaten-Feldkarte", "SAML_Custom_Immutable_Property_Username": "Nutzername", "SAML_Custom_Public_Cert": "Öffentliche Cert-Inhalte", + "SAML_Section_1_User_Interface": "Benutzeroberfläche", "Saturday": "Samstag", "Save": "Speichern", "save-others-livechat-room-info": "Rette andere Livechat Zimmer Info", @@ -2238,7 +2240,7 @@ "Saved": "Gespeichert", "Saving": "Speichern", "Scan_QR_code": "Mit einer Authenticator-App wie Google Authenticator, Authy oder Duo scannen Sie den QR-Code. Es wird ein 6-stelliger Code angezeigt, den Sie unten eingeben müssen.", - "Scan_QR_code_alternative_s": "Wenn Sie den QR-Code nicht scannen können, können Sie stattdessen den Code manuell eingeben: __code__", + "Scan_QR_code_alternative_s": "Wenn Sie den QR-Code nicht scannen können, können Sie stattdessen den Code manuell eingeben:", "Scope": "Umfang", "Screen_Share": "Bildschirmübertragung", "Script_Enabled": "Das Script ist aktiviert.", @@ -2849,4 +2851,4 @@ "Your_push_was_sent_to_s_devices": "Die Push-Nachricht wurde an %s Geräte gesendet.", "Your_server_link": "Ihre Serververbindung", "Your_workspace_is_ready": "Ihr Arbeitsbereich ist einsatzbereit 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/de-IN.i18n.json b/packages/rocketchat-i18n/i18n/de-IN.i18n.json index 12e4a13f8640..a26a18249449 100644 --- a/packages/rocketchat-i18n/i18n/de-IN.i18n.json +++ b/packages/rocketchat-i18n/i18n/de-IN.i18n.json @@ -609,7 +609,6 @@ "Closed_by_visitor": "Durch Besucher geschlossen", "Closing_chat": "Schließe Chat", "Cloud": "Cloud", - "Cloud_connect_support": "Wenn Du noch immer keine Registrierungs-E-Mail erhalten haben, überprüfe bitte die o. g. Adresse. Wenn es dann immer noch Probleme gibt, erreichst Du unseren Support unter", "Cloud_console": "Cloud Console", "Cloud_what_is_it": "Was ist das?", "Cloud_what_is_it_description": "Mit Rocket.Chat Cloud Connect kannst Du Deinen selbst gehosteten Rocket.Chat Workspace mit unserer Cloud verbinden. Auf diese Weise kannst Du Deine Lizenzen, Abrechnung und Support in der Rocket.Chat Cloud verwalten. ", @@ -1929,7 +1928,8 @@ "Mailer_body_tags": "Du musst [unsubscribe] verwenden, um einen Link zum Abmelden aus dem Verteiler zur Verfügung zu stellen.
Du kannst [name] für den vollständigen Namen, [fname] für den Vornamen oder [lname] für den Nachnamen des Benutzers verwenden.
Ebenfalls kannst Du [email] verwenden, um die E-Mail-Adresse des Benutzers anzugeben.", "Mailing": "Mailing", "Make_Admin": "Benutzer zum Admin ernennen", - "Make_sure_you_have_a_copy_of_your_codes": "Bitte stelle sicher, dass Du eine Kopie Deiner Codes besitzt: __codes__ . Wenn Du den Zugriff auf Deine Authentifizierungs-App verlierst, kannst Du Dich mit Hilfe eines dieser Codes erneut anmelden.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Bitte stelle sicher, dass Du eine Kopie Deiner Codes besitzt:", + "Make_sure_you_have_a_copy_of_your_codes_2": ". Wenn Du den Zugriff auf Deine Authentifizierungs-App verlierst, kannst Du Dich mit Hilfe eines dieser Codes erneut anmelden.", "manage-apps": "Apps verwalten", "manage-assets": "Assets verwalten", "manage-assets_description": "Berechtigung, Assets (Stylesheets, Bilder, weitere Dateien) auf dem Server zu verwalten", @@ -2559,7 +2559,7 @@ "Saved": "Gespeichert", "Saving": "Speichern", "Scan_QR_code": "Scanne den QR-Code mit einer Authenticator-App (wie Google Authenticator, Authy oder Duo). Danach wird ein sechsstelliger Code angezeigt, den Du unten eingeben kannst.", - "Scan_QR_code_alternative_s": "Wenn Du den QR-code nicht einscannen kannst, kannst Du ihn alternativ manuell eingeben: __code__", + "Scan_QR_code_alternative_s": "Wenn Du den QR-code nicht einscannen kannst, kannst Du ihn alternativ manuell eingeben:", "Scope": "Umfang", "Screen_Share": "Bildschirmübertragung", "Script_Enabled": "Das Script wurde aktiviert", diff --git a/packages/rocketchat-i18n/i18n/de.i18n.json b/packages/rocketchat-i18n/i18n/de.i18n.json index 10a1f603f446..32e6a42df98d 100644 --- a/packages/rocketchat-i18n/i18n/de.i18n.json +++ b/packages/rocketchat-i18n/i18n/de.i18n.json @@ -666,7 +666,6 @@ "Cloud_register_offline_helper": "Arbeitsbereiche können manuell registriert werden, wenn ein Airgap besteht oder der Netzwerkzugriff eingeschränkt ist. Kopieren Sie den folgenden Text und rufen Sie unsere Cloud-Konsole auf, um den Vorgang abzuschließen.", "Cloud_register_success": "Ihr Arbeitsbereich wurde erfolgreich registriert!", "Cloud_register_error": "Beim Verarbeiten Ihrer Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.", - "Cloud_connect_support": "Wenn Sie noch immer keine Registrierungs-E-Mail erhalten haben, überprüfen Sie bitte die o. g. Adresse. Wenn es dann immer noch Probleme gibt, erreichen Sie unseren Support unter", "Cloud_console": "Cloud Console", "Cloud_Info": "Cloud-Informationen", "Cloud_what_is_it": "Was ist das?", @@ -2108,7 +2107,8 @@ "Mailer_body_tags": "Sie müssen [unsubscribe] verwenden, um einen Link zum Abmelden aus dem Verteiler zur Verfügung zu stellen.
Sie können [name] für den vollständigen Namen, [fname] für den Vornamen oder [lname] für den Nachnamen des Benutzers verwenden.
Ebenfalls können Sie [email] verwenden, um die E-Mail-Adresse des Benutzers anzugeben.", "Mailing": "Mailing", "Make_Admin": "Benutzer zum Admin ernennen", - "Make_sure_you_have_a_copy_of_your_codes": "Stellen Sie sicher, dass Sie eine Kopie Ihrer Codes besitzen: __codes__ . Wenn Sie den Zugriff auf Ihre Authentifizierungs-App verlieden, können Sie sich mit Hilfe eines dieser Codes erneut anmelden.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Stellen Sie sicher, dass Sie eine Kopie Ihrer Codes besitzen:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Wenn Sie den Zugriff auf Ihre Authentifizierungs-App verlieden, können Sie sich mit Hilfe eines dieser Codes erneut anmelden.", "manage-apps": "Apps verwalten", "manage-assets": "Assets verwalten", "manage-assets_description": "Berechtigung, Assets (Stylesheets, Bilder, weitere Dateien) auf dem Server zu verwalten", @@ -2401,6 +2401,7 @@ "Number_of_federated_users": "Anzahl föderierter Benutzer", "Number_of_federated_servers": "Anzahl der verbundenen Server", "Number_of_messages": "Nachrichtenanzahl", + "RetentionPolicy_DoNotExcludeDiscussion": "Diskussionen einschließen", "OAuth Apps": "OAuth-Apps", "OAuth_Application": "OAuth-Anwendung", "OAuth_Applications": "OAuth-Anwendungen", @@ -2411,6 +2412,7 @@ "Office_Hours": "Bürozeiten", "Office_hours_enabled": "Bürozeiten aktiviert", "Office_hours_updated": "Bürozeiten aktualisiert", + "RetentionPolicy_ExcludePinned": "Angeheftete Nachrichten ausschließen", "Offline": "Offline", "Offline_DM_Email": "Du hast eine private Nachricht von __user__ erhalten.", "Offline_Email_Subject_Description": "Sie können die folgenden Platzhalter verwenden:
  • [Site_Name], [Site_URL], [User] & [Room] für den Anwendungsnamen, URL, Benutzernamen und Raumnamen.
", @@ -2699,7 +2701,6 @@ "Retail": "Handel", "Retention_setting_changed_successfully": "Die Einstellung für die Aufbewahrungsrichtlinie wurde erfolgreich geändert", "RetentionPolicy": "Aufbewahrungsrichtlinie", - "RetentionPolicy_DoNotExcludeDiscussion": "Diskussionen einschließen", "RetentionPolicy_RoomWarning": "Nachrichten, die älter als __time__ sind, werden hier automatisch gelöscht", "RetentionPolicy_RoomWarning_Unpinned": "Nicht gepinnte Nachrichten, die älter als __time__ sind, werden hier automatisch bereinigt", "RetentionPolicy_RoomWarning_FilesOnly": "Dateien älter als __time__ werden hier automatisch bereinigt (Nachrichten bleiben erhalten)", @@ -2709,7 +2710,6 @@ "RetentionPolicy_AppliesToChannels": "Gilt für Kanäle", "RetentionPolicy_AppliesToGroups": "Gilt für private Gruppen", "RetentionPolicy_AppliesToDMs": "Gilt für direkte Nachrichten", - "RetentionPolicy_ExcludePinned": "Angeheftete Nachrichten ausschließen", "RetentionPolicy_FilesOnly": "Löschen Sie nur Dateien", "RetentionPolicy_FilesOnly_Description": "Nur Dateien werden gelöscht, die Nachrichten selbst bleiben bestehen.", "RetentionPolicy_MaxAge": "Maximales Nachrichtenalter", @@ -2807,6 +2807,7 @@ "SAML_Role_Attribute_Name_Description": "Wenn dieses Attribut in der SAML-Antwort gefunden wird, werden seine Werte als Rollennamen für neue Benutzer verwendet.", "SAML_Role_Attribute_Sync": "Benutzerrollen synchronisieren", "SAML_Role_Attribute_Sync_Description": "Synchronisiere Benutzerrollen beim Login (Überschreibt lokale Benutzerrollen).", + "SAML_Section_1_User_Interface": "User Interface", "SAML_Allowed_Clock_Drift": "Erlaubte Zeitabweichung zum Identity Provider", "SAML_Allowed_Clock_Drift_Description": "Die Uhrzeit des Identitätsproviders kann minimal vor der eigenen Systemzeit liegen. Um eine geringe Abweichung der Zeiten zu berücksichtigen, kann eine Zeitabweichung definiert werden. Der Wert muss in einer Anzahl von Millisekunden (ms) angegeben werden. Der angegebene Wert wird zur aktuellen Zeit, zu der die Antwort validiert wird, addiert.", "Saturday": "Samstag", @@ -2821,7 +2822,7 @@ "Saved": "Gespeichert", "Saving": "Speichern", "Scan_QR_code": "Scannen Sie den QR-Code mit einer Authenticator-App (wie Google Authenticator, Authy oder Duo). Danach wird ein sechsstelliger Code angezeigt, den Sie unten eingeben müssen.", - "Scan_QR_code_alternative_s": "Wenn Sie den QR-code nicht einscannen können, können Sie ihn alternativ manuell eingeben: __code__", + "Scan_QR_code_alternative_s": "Wenn Sie den QR-code nicht einscannen können, können Sie ihn alternativ manuell eingeben:", "Scope": "Umfang", "Screen_Share": "Bildschirmübertragung", "Script_Enabled": "Das Script wurde aktiviert", @@ -3561,4 +3562,4 @@ "Your_server_link": "Ihre Serververbindung", "Your_temporary_password_is_password": "Ihr temporäres Passwort lautet [password].", "Your_workspace_is_ready": "Ihr Arbeitsbereich ist einsatzbereit 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/el.i18n.json b/packages/rocketchat-i18n/i18n/el.i18n.json index 6e99f4b93470..7d69896f9132 100644 --- a/packages/rocketchat-i18n/i18n/el.i18n.json +++ b/packages/rocketchat-i18n/i18n/el.i18n.json @@ -1682,7 +1682,8 @@ "Mailer_body_tags": "Θα πρέπει να χρησιμοποιήσετε [unsubscribe] για το διαγραφής σύνδεσμο.
Μπορείτε να χρησιμοποιήσετε το [name], [fname], [lname] για το πλήρες όνομα του χρήστη, το όνομα ή το επώνυμο, αντίστοιχα.
Μπορείτε να χρησιμοποιήσετε το [email] για το ηλεκτρονικό ταχυδρομείο του χρήστη.", "Mailing": "Ταχυδρομικός", "Make_Admin": "Κάντε Διαχειριστή", - "Make_sure_you_have_a_copy_of_your_codes": "Βεβαιωθείτε ότι έχετε ένα αντίγραφο των κωδικών σας: __codes__ Εάν χάσετε την πρόσβαση στην εφαρμογή authenticator, μπορείτε να χρησιμοποιήσετε έναν από αυτούς τους κωδικούς για να συνδεθείτε.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Βεβαιωθείτε ότι έχετε ένα αντίγραφο των κωδικών σας:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Εάν χάσετε την πρόσβαση στην εφαρμογή authenticator, μπορείτε να χρησιμοποιήσετε έναν από αυτούς τους κωδικούς για να συνδεθείτε.", "manage-apps": "Διαχείριση εφαρμογών", "manage-assets": "Διαχείριση περιουσιακών στοιχείων", "manage-assets_description": "Άδεια διαχείρισης των πόρων του διακομιστή", @@ -1907,6 +1908,7 @@ "Office_Hours": "Ωρες γραφείου", "Office_hours_enabled": "Ώρες γραφείου είναι ενεργοποιημένες", "Office_hours_updated": "Οι ώρες λειτουργίας του γραφείου ενημερώνονται", + "RetentionPolicy_ExcludePinned": "Εξαιρούνται τα καρφιτσωμένα μηνύματα", "Offline": "offline", "Offline_DM_Email": "Σας έχουν άμεση ειδοποιήται από __user__", "Offline_Email_Subject_Description": "Μπορείτε να χρησιμοποιήσετε τις ακόλουθες αντικαταστάσεις:
  • [Site_Name], [Site_URL], [User] & [Room] για το Όνομα της Εφαρμογής, το URL, το όνομα χρήστη και το όνομα του δωματίου αντίστοιχα
", @@ -2154,7 +2156,6 @@ "RetentionPolicy_AppliesToChannels": "Ισχύει για κανάλια", "RetentionPolicy_AppliesToGroups": "Ισχύει για ιδιωτικές ομάδες", "RetentionPolicy_AppliesToDMs": "Ισχύει για απευθείας μηνύματα", - "RetentionPolicy_ExcludePinned": "Εξαιρούνται τα καρφιτσωμένα μηνύματα", "RetentionPolicy_FilesOnly": "Διαγράψτε μόνο τα αρχεία", "RetentionPolicy_FilesOnly_Description": "Μόνο τα αρχεία θα διαγραφούν, τα ίδια τα μηνύματα θα παραμείνουν στη θέση τους.", "RetentionPolicy_MaxAge": "Μέγιστη ηλικία μηνύματος", @@ -2227,6 +2228,7 @@ "SAML_Custom_user_data_fieldmap": "Πεδίου δεδομένων χρήστη Χάρτης", "SAML_Custom_Immutable_Property_Username": "Όνομα Χρήστη", "SAML_Custom_Public_Cert": "Δημόσια Περιεχόμενο Cert", + "SAML_Section_1_User_Interface": "Διασύνδεση χρήστη", "Saturday": "Σάββατο", "Save": "Αποθήκευση", "save-others-livechat-room-info": "Αποθήκευση άλλων πληροφοριών δωματίων Livechat", @@ -2237,7 +2239,7 @@ "Saved": "Αποθηκεύτηκε", "Saving": "Οικονομία", "Scan_QR_code": "Χρησιμοποιώντας μια εφαρμογή ελέγχου ταυτότητας, όπως το Google Authenticator, Authy ή Duo, σαρώστε τον κώδικα QR. Θα εμφανίσει έναν 6ψήφιο κωδικό που θα πρέπει να εισάγετε παρακάτω.", - "Scan_QR_code_alternative_s": "Αν δεν μπορείτε να σαρώσετε τον κώδικα QR, μπορείτε να εισαγάγετε κώδικα με μη αυτόματο τρόπο: __code__", + "Scan_QR_code_alternative_s": "Αν δεν μπορείτε να σαρώσετε τον κώδικα QR, μπορείτε να εισαγάγετε κώδικα με μη αυτόματο τρόπο:", "Scope": "Έκταση", "Screen_Share": "οθόνη Share", "Script_Enabled": "script Enabled", diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index b7c21fd9b23b..bc9c04447c8a 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -102,6 +102,7 @@ "Accounts_iframe_url": "Iframe URL", "Accounts_LoginExpiration": "Login Expiration in Days", "Accounts_ManuallyApproveNewUsers": "Manually Approve New Users", + "Accounts_OAuth_Apple": "Sign in with Apple", "Accounts_OAuth_Custom_Authorize_Path": "Authorize Path", "Accounts_OAuth_Custom_Avatar_Field": "Avatar field", "Accounts_OAuth_Custom_Button_Color": "Button Color", @@ -244,6 +245,7 @@ "Accounts_UseDNSDomainCheck": "Use DNS Domain Check", "Accounts_UserAddedEmailSubject_Default": "You have been added to [Site_Name]", "Accounts_UserAddedEmail_Description": "You may use the following placeholders:
  • [name], [fname], [lname] for the user's full name, first name or last name, respectively.
  • [email] for the user's email.
  • [password] for the user's password.
  • [Site_Name] and [Site_URL] for the Application Name and URL respectively.
", + "Action_required": "Action required", "Activate": "Activate", "Active_users": "Active users", "Daily_Active_Users": "Daily Active Users", @@ -762,13 +764,12 @@ "Closing_chat": "Closing chat", "Closing_chat_message": "Closing chat message", "Cloud": "Cloud", - "Cloud_Register_manually": "Register Manually", + "Cloud_Register_manually": "Register Offline", "Cloud_click_here": "After copy the text, go to [cloud console (click here)](__cloudConsoleUrl__).", "Cloud_register_offline_finish_helper": "After completing the registration process in the Cloud Console you should be presented with some text. Please paste it here to finish the registration.", "Cloud_register_offline_helper": "Workspaces can be manually registered if airgapped or network access is restricted. Copy the text below and go to our Cloud Console to complete the process.", "Cloud_register_success": "Your workspace has been successfully registered!", "Cloud_register_error": "There has been an error trying to process your request. Please try again later.", - "Cloud_connect_support": "If you still haven't received a registration email please make sure your email is updated above. If you still have issues you can contact support at", "Cloud_console": "Cloud Console", "Cloud_Info": "Cloud Info", "Cloud_what_is_it": "What is this?", @@ -783,14 +784,17 @@ "Cloud_address_to_send_registration_to": "The address to send your Cloud registration email to.", "Cloud_update_email": "Update Email", "Cloud_resend_email": "Resend Email", - "Cloud_manually_input_token": "Manually enter the token received from the Cloud Registration Email.", + "Cloud_manually_input_token": "Enter the token received from the Cloud Console.", "Cloud_registration_required": "Registration Required", "Cloud_registration_required_description": "Looks like during setup you didn't chose to register your workspace.", "Cloud_registration_required_link_text": "Click here to register your workspace.", "Cloud_error_in_authenticating": "Error received while authenticating", "Cloud_error_code": "Code: __errorCode__", "Cloud_status_page_description": "If a particular Cloud Service is having issues you can check for known issues on our status page at", - "Cloud_Service_Agree_PrivacyTerms": "Cloud Service Agree PrivacyTerms", + "Cloud_Service_Agree_PrivacyTerms": "Cloud Service Privacy Terms Agreement", + "Cloud_Service_Agree_PrivacyTerms_Login_Disabled_Warning": "You should accept the cloud privacy terms (Setup Wizard > Cloud Info > Cloud Service Privacy Terms Agreement) to connect to your cloud workspace", + "Cloud_Service_Agree_PrivacyTerms_Description": "I agree with the Terms & Privacy Policy", + "Cloud_token_instructions": "To Register your workspace go to Cloud Console. Login or Create an account and click register self-managed. Paste the token provided below", "Cloud_troubleshooting": "Troubleshooting", "Collaborative": "Collaborative", "Collapse_Embedded_Media_By_Default": "Collapse Embedded Media by Default", @@ -810,7 +814,7 @@ "Connect": "Connect", "Connection_Closed": "Connection closed", "Connection_Reset": "Connection reset", - "Connection_success":"LDAP Connection Successful", + "Connection_success": "LDAP Connection Successful", "Connectivity_Services": "Connectivity Services", "Consulting": "Consulting", "Consumer_Goods": "Consumer Goods", @@ -1694,7 +1698,10 @@ "Flags": "Flags", "Follow_message": "Follow Message", "Following": "Following", + "Nickname": "Nickname", + "Nickname_Placeholder": "Enter your nickname...", "Not_Following": "Not Following", + "Not_in_channel": "Not in channel", "Follow_social_profiles": "Follow our social profiles, fork us on github and share your thoughts about the rocket.chat app on our trello board.", "Fonts": "Fonts", "Food_and_Drink": "Food & Drink", @@ -1772,6 +1779,7 @@ "Graphql_Enabled": "GraphQL Enabled", "Graphql_CORS": "GraphQL CORS", "Graphql_Subscription_Port": "GraphQL Subscription Port", + "Group_by": "Group by", "Group_by_Type": "Group by Type", "Group_discussions": "Group discussions", "Group_favorites": "Group favorites", @@ -2305,6 +2313,8 @@ "Local_Password": "Local Password", "Localization": "Localization", "Location": "Location", + "Local_Time": "Local Time", + "Local_Time_time": "Local Time: __time__", "Log_Exceptions_to_Channel_Description": "A channel that will receive all captured exceptions. Leave empty to ignore exceptions.", "Log_Exceptions_to_Channel": "Log Exceptions to Channel", "Log_File": "Show File and Line", @@ -2343,7 +2353,8 @@ "Mailer_body_tags": "You must use [unsubscribe] for the unsubscription link.
You may use [name], [fname], [lname] for the user's full name, first name or last name, respectively.
You may use [email] for the user's email.", "Mailing": "Mailing", "Make_Admin": "Make Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Make sure you have a copy of your codes: __codes__ If you lose access to your authenticator app, you can use one of these codes to log in.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Make sure you have a copy of your codes:", + "Make_sure_you_have_a_copy_of_your_codes_2": "If you lose access to your authenticator app, you can use one of these codes to log in.", "manage-apps": "Manage Apps", "manage-assets": "Manage Assets", "manage-assets_description": "Permission to manage the server assets", @@ -2623,6 +2634,7 @@ "No_starred_messages": "No starred messages", "No_such_command": "No such command: `/__command__`", "No_discussions_yet": "No discussions yet", + "No_Discussions_found": "No discussions found", "No_Threads": "No threads found", "No_user_with_username_%s_was_found": "No user with username \"%s\" was found!", "No_data_found": "No data found", @@ -2657,6 +2669,8 @@ "Number_of_federated_users": "Number of federated users", "Number_of_federated_servers": "Number of federated servers", "Number_of_messages": "Number of messages", + "Number_of_users_autocomplete_suggestions": "Number of users' autocomplete suggestions", + "RetentionPolicy DoNotExcludeDiscussion": "Do not exclude discussion messages", "OAuth Apps": "OAuth Apps", "OAuth_Application": "OAuth Application", "OAuth_Applications": "OAuth Applications", @@ -2667,6 +2681,7 @@ "Office_Hours": "Office Hours", "Office_hours_enabled": "Office Hours Enabled", "Office_hours_updated": "Office hours updated", + "RetentionPolicy_ExcludePinned": "Exclude pinned messages", "Offline": "Offline", "Offline_DM_Email": "Direct Message Email Subject", "Offline_Email_Subject_Description": "You may use the following placeholders:
  • [Site_Name], [Site_URL], [User] & [Room] for the Application Name, URL, Username & Roomname respectively.
", @@ -2761,7 +2776,7 @@ "Pinned_Messages": "Pinned Messages", "pinning-not-allowed": "Pinning is not allowed", "PiwikAdditionalTrackers": "Additional Piwik Sites", - "PiwikAdditionalTrackers_Description": "Enter addtitional Piwik website URLs and SiteIDs in the following format, if you wnat to track the same data into different websites: [ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]", + "PiwikAdditionalTrackers_Description": "Enter addtitional Piwik website URLs and SiteIDs in the following format, if you want to track the same data into different websites: [ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]", "PiwikAnalytics_cookieDomain": "All Subdomains", "PiwikAnalytics_cookieDomain_Description": "Track visitors across all subdomains", "PiwikAnalytics_domains": "Hide Outgoing Links", @@ -2866,11 +2881,13 @@ "Push_apn_passphrase": "APN Passphrase", "Push_enable": "Enable", "Push_enable_gateway": "Enable Gateway", + "Push_enable_gateway_Description": "You need to accept to register your server (Setup Wizard > Organization Info > Register Server) and our privacy terms (Setup Wizard > Could Info > Cloud Service Privacy Terms Agreement) to enabled this setting and use our gateway", "Push_gateway": "Gateway", "Push_gateway_description": "Multiple lines can be used to specify multiple gateways", "Push_gcm_api_key": "GCM API Key", "Push_gcm_project_number": "GCM Project Number", "Push_production": "Production", + "Push_request_content_from_server": "Fetch full message content from the server on receipt", "Push_show_message": "Show Message in Notification", "Push_show_username_room": "Show Channel/Group/Username in Notification", "Push_test_push": "Test", @@ -2985,8 +3002,8 @@ "Retail": "Retail", "Retention_setting_changed_successfully": "Retention policy setting changed successfully", "RetentionPolicy": "Retention Policy", - "RetentionPolicy_DoNotExcludeDiscussion": "Do not exclude discussion messages", - "RetentionPolicy_DoNotExcludeThreads": "Do not exclude Threads", + "RetentionPolicy_DoNotPruneDiscussion": "Do not prune discussion messages", + "RetentionPolicy_DoNotPruneThreads": "Do not prune Threads", "RetentionPolicy_RoomWarning": "Messages older than __time__ are automatically pruned here", "RetentionPolicy_RoomWarning_Unpinned": "Unpinned messages older than __time__ are automatically pruned here", "RetentionPolicy_RoomWarning_FilesOnly": "Files older than __time__ are automatically pruned here (messages stay intact)", @@ -2996,7 +3013,7 @@ "RetentionPolicy_AppliesToChannels": "Applies to channels", "RetentionPolicy_AppliesToGroups": "Applies to private groups", "RetentionPolicy_AppliesToDMs": "Applies to direct messages", - "RetentionPolicy_ExcludePinned": "Exclude pinned messages", + "RetentionPolicy_DoNotPrunePinned": "Do not prune pinned messages", "RetentionPolicy_FilesOnly": "Only delete files", "RetentionPolicy_FilesOnly_Description": "Only files will be deleted, the messages themselves will stay in place.", "RetentionPolicy_MaxAge": "Maximum message age", @@ -3137,7 +3154,7 @@ "Saved": "Saved", "Saving": "Saving", "Scan_QR_code": "Using an authenticator app like Google Authenticator, Authy or Duo, scan the QR code. It will display a 6 digit code which you need to enter below.", - "Scan_QR_code_alternative_s": "If you can't scan the QR code, you may enter code manually instead: __code__", + "Scan_QR_code_alternative_s": "If you can't scan the QR code, you may enter code manually instead:", "Scope": "Scope", "Screen_Lock": "Screen Lock", "Screen_Share": "Screen Share", @@ -3158,6 +3175,7 @@ "Search_Users": "Search Users", "Search_Rooms": "Search Rooms", "seconds": "seconds", + "See_full_profile": "See full profile", "Secret_token": "Secret Token", "Security": "Security", "Select_a_department": "Select a department", @@ -3231,6 +3249,9 @@ "Setup_Wizard": "Setup Wizard", "Setup_Wizard_Info": "We'll guide you through setting up your first admin user, configuring your organisation and registering your server to receive free push notifications and more.", "Share_Location_Title": "Share Location?", + "Cannot_share_your_location": "Cannot share your location...", + "You_will_be_asked_for_permissions": "You will be asked for permissions", + "The_necessary_browser_permissions_for_location_sharing_are_not_granted": "The necessary browser permissions for location sharing are not granted", "Shared_Location": "Shared Location", "Shared_Secret": "Shared Secret", "Should_be_a_URL_of_an_image": "Should be a URL of an image.", @@ -3400,6 +3421,7 @@ "Support_Cordova_App_Description": "Allow the old mobile app, based on Cordova technology, to access the server enabling CORS for some APIs", "Survey": "Survey", "Survey_instructions": "Rate each question according to your satisfaction, 1 meaning you are completely unsatisfied and 5 meaning you are completely satisfied.", + "Suggestion_from_recent_messages": "Suggestion from recent messages", "Symbols": "Symbols", "Sync": "Sync", "Sync / Import": "Sync / Import", @@ -3431,6 +3453,7 @@ "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "The image resize will not work because we can not detect ImageMagick or GraphicsMagick installed on your server.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "The message is a discussion you will not be able to recover the messages!", "The_peer__peer__does_not_exist": "The peer __peer__ does not exist.", + "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "The mobile notifications were disabled to all users, go to \"Admin > Push\" to enable the Push Gateway again", "The_redirectUri_is_required": "The redirectUri is required", "The_selected_user_is_not_an_agent": "The selected user is not an agent", "The_server_will_restart_in_s_seconds": "The server will restart in %s seconds", @@ -3654,6 +3677,7 @@ "Unstar_Message": "Remove Star", "Update": "Update", "Update_LatestAvailableVersion": "Update Latest Available Version", + "Update_EnableChecker": "Enable the Update Checker", "Update_to_version": "Update to __version__", "Update_your_RocketChat": "Update your Rocket.Chat", "Updated_at": "Updated at", @@ -3741,6 +3765,8 @@ "User_started_a_new_conversation": "__username__ started a new conversation", "User_unmuted_by": "User __user_unmuted__ unmuted by __user_by__.", "User_unmuted_in_room": "User unmuted in room", + "User__username__unmuted_in_room__roomName__": "User __username__ unmuted in room __roomName__", + "User__username__muted_in_room__roomName__": "User __username__ muted in room __roomName__", "User_updated_successfully": "User updated successfully", "User_uploaded_a_file_on_channel": "__username__ uploaded a file on __channel__", "User_uploaded_a_file_to_you": "__username__ sent you a file", @@ -3929,6 +3955,7 @@ "You_can_use_an_emoji_as_avatar": "You can also use an emoji as an avatar.", "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "You can use webhooks to easily integrate Omnichannel with your CRM.", "You_cant_leave_a_livechat_room_Please_use_the_close_button": "You can't leave a omnichannel room. Please, use the close button.", + "You_have_a_new_message": "You have a new message", "You_have_been_muted": "You have been muted and cannot speak in this room", "You_have_n_codes_remaining": "You have __number__ codes remaining.", "You_have_not_verified_your_email": "You have not verified your email.", diff --git a/packages/rocketchat-i18n/i18n/eo.i18n.json b/packages/rocketchat-i18n/i18n/eo.i18n.json index 3a9c5066a945..367ae6379908 100644 --- a/packages/rocketchat-i18n/i18n/eo.i18n.json +++ b/packages/rocketchat-i18n/i18n/eo.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Vi devas uzu [unsubscribe] por la unsubscription link.
Vi povas uzi [nomo], [fname], [lname] por la nomo, plena nomo aŭ familinomo, respektive.
Vi povas uzi [retpoŝton] por la retpoŝto de la uzanto.", "Mailing": "Sendilo", "Make_Admin": "Faru Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Certigu, ke vi havas kopion de viaj kodoj: __codes__ Se vi perdos aliron al via aŭtentika apliko, vi povas uzi unu el ĉi tiuj kodoj por ensaluti.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Certigu, ke vi havas kopion de viaj kodoj:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Se vi perdos aliron al via aŭtentika apliko, vi povas uzi unu el ĉi tiuj kodoj por ensaluti.", "manage-apps": "Administri Apps", "manage-assets": "Administri Aktivojn", "manage-assets_description": "Permeso por administri la servajn aktivojn", @@ -1901,6 +1902,7 @@ "Office_Hours": "Oficejo Horoj", "Office_hours_enabled": "Oficejo Horoj Enabled", "Office_hours_updated": "Horaj horoj ĝisdatigitaj", + "RetentionPolicy_ExcludePinned": "Ekskludi kovritajn mesaĝojn", "Offline": "Senkonekta", "Offline_DM_Email": "Rekta Mesaĝo Retpoŝto Temo", "Offline_Email_Subject_Description": "Vi povas uzi la sekvajn anstataŭaĵojn:
  • [Site_Name], [Site_URL], [Uzanto] & [Ĉambro] por la Aplika Nomo, URL, Uzantnomo kaj Ĉambro respektive.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Aplikas al kanaloj", "RetentionPolicy_AppliesToGroups": "Aplikas al privataj grupoj", "RetentionPolicy_AppliesToDMs": "Aplikas direkti mesaĝojn", - "RetentionPolicy_ExcludePinned": "Ekskludi kovritajn mesaĝojn", "RetentionPolicy_FilesOnly": "Nur forigi dosierojn", "RetentionPolicy_FilesOnly_Description": "Nur dosieroj estos forigitaj, la mesaĝoj mem restos en loko.", "RetentionPolicy_MaxAge": "Maksimuma mesaĝo", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Mapo de Kampoj de Uzanto Datumoj", "SAML_Custom_Immutable_Property_Username": "Uzulnomo", "SAML_Custom_Public_Cert": "Publika Certa Enhavo", + "SAML_Section_1_User_Interface": "Uzanto-interfaco", "Saturday": "Sabato", "Save": "Savi", "save-others-livechat-room-info": "Konservu aliajn salutnajn ĉambrojn", @@ -2231,7 +2233,7 @@ "Saved": "Savita", "Saving": "Ŝparado", "Scan_QR_code": "Uzante aŭtentikigilon kiel Google Authenticator, Authy aŭ Duo, skani la QR-kodon. Ĝi montros 6-cifer-kodon, kiun vi devas eniri sube.", - "Scan_QR_code_alternative_s": "Se vi ne povas scani la QR-kodon, vi eble enmetu la kodon permane anstataŭe: __code__", + "Scan_QR_code_alternative_s": "Se vi ne povas scani la QR-kodon, vi eble enmetu la kodon permane anstataŭe:", "Scope": "Amplekso", "Screen_Share": "Ekrano Kunhavigi", "Script_Enabled": "Skripto Enabled", diff --git a/packages/rocketchat-i18n/i18n/es.i18n.json b/packages/rocketchat-i18n/i18n/es.i18n.json index 6331a77b4462..99732082151c 100644 --- a/packages/rocketchat-i18n/i18n/es.i18n.json +++ b/packages/rocketchat-i18n/i18n/es.i18n.json @@ -9,9 +9,14 @@ "2_Erros_Information_and_Debug": "2 - Errores, Información y Depuración ", "@username": "@usuario", "@username_message": "@usuario ", + "__count__empty_rooms_will_be_removed_automatically": "__count__ salas vacías serán eliminadas automáticamente.", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "__count__ salas vacías serán eliminadas automáticamente:
__rooms__.", "__username__is_no_longer__role__defined_by__user_by_": "__username__ ya no es __role__ (por __user_by__)", "__username__was_set__role__by__user_by_": "__username__ fue establecido __role__ (por __user_by__)", "%_of_conversations": "% de conversaciones", + "A_new_owner_will_be_assigned_automatically_to__count__rooms": "Un nuevo propietario será asignado automáticamente a __count__ salas.", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "Un nuevo propietario será asignado automáticamente a la sala __roomName__.", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "Un nuevo propietario será asignado automáticamente a __count__ salas.
__rooms__.", "Accept": "Aceptar", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Aceptar solicitudes entrantes de chat en vivo aunque no haya agentes en línea", "Accept_new_livechats_when_agent_is_idle": "Aceptar nuevas solicitudes de chat en vivo cuando el agente esté inactivo", @@ -51,6 +56,17 @@ "Accounts_AvatarExternalProviderUrl_Description": "Ejemplo: `https://acme.com/api/v1/ {username}`", "Accounts_BlockedDomainsList": "Lista de dominios bloqueados", "Accounts_BlockedDomainsList_Description": "Lista de dominios bloqueados separada por comas", + "Accounts_Verify_Email_For_External_Accounts": "Verificar el correo electrónico para las cuentas externas", + "Block_Multiple_Failed_Logins_Enabled": "Habilitar la recopilación de datos de inicio de sesión", + "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "Almacena la IP y el nombre de usuario de los intentos de acceso a una colección en la base de datos", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "Lista blanca de IP", + "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "Lista separada por comas de IP permitidas", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "Tiempo para desbloquear la IP (En minutos)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "Tiempo para desbloquear al usuario (en minutos)", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "¿Cuántos intentos fallidos hasta el bloqueo por IP?", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "¿Cuántos intentos fallidos por parte del usuario hasta el bloqueo?", + "Block_Multiple_Failed_Logins_By_Ip": "Bloquear los intentos fallidos de acceso por IP", + "Block_Multiple_Failed_Logins_By_User": "Bloquear los intentos fallidos de acceso por nombre de usuario", "Accounts_BlockedUsernameList": "Lista de nombres de usuario bloqueados", "Accounts_BlockedUsernameList_Description": "Lista de nombres de usuarios bloqueados separada por comas (no distingue mayúsculas y minúsculas)", "Accounts_CustomFields_Description": "Debe ser un JSON válido, donde las llaves son los nombres de los campos que contienen las opciones de los campos. Example:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n} ", @@ -74,6 +90,11 @@ "Accounts_Enrollment_Email_Subject_Default": "Bienvenido a [Site_Name]", "Accounts_Enrollment_Email": "Correo Electrónico de Inscripción ", "Accounts_Enrollment_Email_Description": "Puedes utilizar los siguientes marcadores:
  • [name], [fname], [lname] para el nombre completo, nombre o apellidos, respectivamente.
  • [email] para el correo electrónico del usuario
  • [Site_Name] y [Site_URL] para el nombre del sitio web y la URL, respectivamente.
", + "Login_Logs_Enabled": "Mostrar (en consola) intentos fallidos de inicio de sesion", + "Login_Logs_ClientIp": "Mostrar la IP del cliente en los registros de intentos de acceso fallidos", + "Login_Logs_ForwardedForIp": "Mostrar la IP reenviada en los registros de intentos de acceso fallidos", + "Login_Logs_Username": "Mostrar el nombre de usuario en los registros de intentos de acceso fallidos", + "Login_Logs_UserAgent": "Mostrar UserAgent en los registros de intentos de acceso fallidos", "Accounts_ForgetUserSessionOnWindowClose": "Olvidar la sesión de usuario al cerrar la ventana", "Accounts_Iframe_api_method": "Método API", "Accounts_Iframe_api_url": "URL de la API", @@ -228,8 +249,12 @@ "Daily_Active_Users": "Usuarios activos diarios", "Weekly_Active_Users": "Usuarios activos semanales", "Monthly_Active_Users": "Usuarios activos mensuales", + "DAU_value": "DAU __valor__", + "WAU_value": "WAU __value__", + "MAU_value": "MAU __value__", "Activity": "Actividad", "Add": "Agregar", + "Add_custom_emoji": "Añadir emoji personalizado", "add-oauth-service": "Agregar Servicio Oauth", "add-oauth-service_description": "Permiso para agregar un nuevo servicio OAuth", "add-user": "Añadir Usuario", @@ -268,6 +293,7 @@ "Agent_Info": "Información de agente", "Agents": "Agentes", "Agent_added": "Agente agregado", + "Agent_Name_Placeholder": "Por favor, introduzca el nombre de un agente...", "Agent_removed": "Agente eliminado", "Alerts": "Alertas", "Alias": "Alias", @@ -289,9 +315,11 @@ "Allow_Invalid_SelfSigned_Certs_Description": "Permitir certificados SSL autofirmados e invalidos para validación de enlaces y vistas previas.", "Allow_switching_departments": "Permitir al visitante cambiar de departamentos", "Allow_Marketing_Emails": "Permitir correos electrónicos de marketing", + "Allow_Online_Agents_Outside_Business_Hours": "Permitir a los agentes en línea fuera del horario de oficina", "Allow_Online_Agents_Outside_Office_Hours": "Permitir agentes en línea fuera del horario de oficina", "Almost_done": "Casi listo", "Alphabetical": "Alfabético", + "Also_send_to_channel": "También enviar al canal", "Always_open_in_new_window": "Abrir siempre en una nueva ventana", "Analytics": "Analíticas", "Analytics_features_enabled": "Características habilitadas", @@ -305,6 +333,7 @@ "Animals_and_Nature": "Animales y Naturaleza", "Announcement": "Anuncio", "API": "API", + "APIs": "APIs", "API_Add_Personal_Access_Token": "Añadir nuevo token de acceso personal", "API_Allow_Infinite_Count": "Permitir obtener todo", "API_Allow_Infinite_Count_Description": "¿Debería permitirse que las llamadas a la API REST devuelvan todo en una sola llamada?", @@ -383,12 +412,15 @@ "App_user_not_allowed_to_login": "Los usuarios de la aplicación no pueden acceder directamente.", "Appearance": "Apariencia", "Application_added": "Aplicación añadida", + "Application_delete_warning": "¡No podrá recuperar esta aplicación!", "Application_Name": "Nombre de la aplicación", "Application_updated": "Aplicación actualizada", "Apply": "Aplicar", "Apply_and_refresh_all_clients": "Aplicar y refrescar todos los clientes", "Apps": "Aplicaciones", "Apps_Engine_Version": "Versión de Motor de Aplicaciones", + "Apps_Essential_Alert": "Esta aplicación es esencial para los siguientes eventos:", + "Apps_Essential_Disclaimer": "Los eventos enumerados arriba serán interrumpidos si esta aplicación está desactivada. Si quieres que Rocket.Chat funcione sin la funcionalidad de esta aplicación, tienes que desinstalarla", "Apps_Framework_Development_Mode": "Habilitar el modo de desarrollo", "Apps_Framework_Development_Mode_Description": "El modo de desarrollo permite la instalación de aplicaciones que no son del Marketplace de Rocket.Chat.", "Apps_Framework_enabled": "Habilitar el marco de aplicaciones", @@ -397,6 +429,10 @@ "Apps_Game_Center_enabled": "Habilitar el Centro de Juegos", "Apps_Game_Center_Play_Game_Together": "@here ¡__name__ juguemos juntos!", "Apps_Game_Center_Invite_Friends": "Invita a tus amigos a unirse", + "Apps_Interface_IPreMessageSentPrevent": "Evento que ocurre antes de que se envíe un mensaje", + "Apps_Interface_IPreMessageSentExtend": "Evento que ocurre antes de que se envíe un mensaje", + "Apps_Interface_IPreMessageSentModify": "Evento que ocurre antes de que se envíe un mensaje", + "Apps_Interface_IPostMessageSent": "Evento que ocurre después de que se envía un mensaje", "Apps_Marketplace_Deactivate_App_Prompt": "¿Realmente quieres deshabilitar esta aplicación?", "Apps_Marketplace_Modify_App_Subscription": "Modificar suscripción", "Apps_Marketplace_Uninstall_App_Prompt": "¿Quieres realmente desinstalar esta aplicación?", @@ -407,6 +443,7 @@ "Apps_Marketplace_pricingPlan_monthly": "__price__ / mes", "Apps_Marketplace_pricingPlan_monthly_perUser": "__price__ / mes por usuario", "Apps_Marketplace_pricingPlan_yearly": "__price__ / año", + "Apps_Marketplace_pricingPlan_startingAt_yearly": "a partir de __precio__ / año", "Apps_Marketplace_pricingPlan_yearly_perUser": "__price__ / año por usuario", "Apps_Settings": "Configuración de la aplicación", "Apps_User_Already_Exists": "El nombre de usuario \"__username__\" ya está en uso. Renombre o elimine el usuario que lo utiliza para instalar esta aplicación", @@ -689,7 +726,6 @@ "Cloud_register_offline_helper": "Los espacios de trabajo pueden registrarse manualmente si el acceso a la red está restringido. Copia el texto de abajo y ve a nuestra Cloud Console para completar el proceso.", "Cloud_register_success": "¡Su espacio de trabajo ha sido registrado correctamente!", "Cloud_register_error": "Ha habido un error al tratar de procesar su solicitud. Por favor, inténtelo de nuevo más tarde.", - "Cloud_connect_support": "Si todavía no has recibido un correo electrónico de registro, por favor asegúrate de que tu correo electrónico esté actualizado. Si todavía tienes problemas, puedes contactar con el soporte en", "Cloud_what_is_it": "¿Que es esto?", "Cloud_what_is_it_description": "Rocket.Chat Cloud Connect le permite conectar su espacio de trabajo Rocket.Chat con los servicios que ofrecemos en nuestra nube.", "Cloud_what_is_it_services_like": "Servicios como:", @@ -1218,7 +1254,7 @@ "E2E_Encryption_Password_Change": "Cambiar la contraseña de cifrado", "E2E_Encryption_Password_Explanation": "Ahora puede crear grupos privados codificados y mensajes directos. También puede cambiar los grupos privados o mensajes directos existentes a cifrados.

Esto es cifrado de extremo a extremo, así que la clave para cifrar/descifrar tus mensajes no se guardará en el servidor. Por esa razón necesitas guardar tu contraseña en un lugar seguro. Se te pedirá que la introduzcas en otros dispositivos en los que desees utilizar la encriptación de E2E.", "E2E_password_reveal_text": "Ahora puede crear grupos privados codificados y mensajes directos. También puedes cambiar los grupos privados o mensajes directos existentes a cifrados.

Esto es cifrado de extremo a extremo, así que la clave para cifrar/descifrar tus mensajes no se guardará en el servidor. Por esa razón necesitas almacenar esta contraseña en un lugar seguro. Se te pedirá que la introduzcas en otros dispositivos en los que desees utilizar cifrado E2E. ¡Aprende más aquí!

Tu contraseña es: %s

Esta es una contraseña autogenerada, puedes configurar una nueva contraseña para tu clave de cifrado en cualquier momento desde cualquier navegador en el que hayas introducido la contraseña existente.
Esta contraseña sólo se almacena en este navegador hasta que guardes la contraseña y desestimes este mensaje.", - "E2E_password_request_text": "Para acceder a sus grupos privados cifrados y a los mensajes directos, introduzca su contraseña de cifrado. Necesitas introducir esta contraseña para cifrar/descifrar tus mensajes en cada cliente que utilices, ya que la clave no se almacena en el servidor.", + "E2E_password_request_text": "Para acceder a sus grupos privados cifrados y a los mensajes directos, introduzca su contraseña de cifrado.
Necesitas introducir esta contraseña para cifrar/descifrar tus mensajes en cada cliente que utilices, ya que la clave no se almacena en el servidor.", "E2E_Reset_Key_Explanation": "Esta opción eliminará su clave E2E actual y le desconectará.
Cuando vuelva a iniciar sesión, Rocket.Chat le generará una nueva clave y restaurará su acceso a cualquier sala cifrada que tenga uno o más miembros en línea.
Debido a la naturaleza del cifrado E2E, Rocket.Chat no podrá restaurar el acceso a ninguna sala cifrada que no tenga ningún miembro en línea.", "Edit": "Editar", "Edit_Invite": "Editar invitación", @@ -2158,7 +2194,8 @@ "Mailer_body_tags": "Debe utilizar [unsubscribe] para el enlace de anulación de la suscripción.
Es posible utilizar [name], [fname], [lname] para el nombre completo del usuario, nombre o apellido, respectivamente.
Es posible utilizar [email] para el correo electrónico del usuario.", "Mailing": "Envío", "Make_Admin": "Hacer Administrador", - "Make_sure_you_have_a_copy_of_your_codes": "Asegúrese de tener una copia de sus códigos: __codes__ Si pierde el acceso a su aplicación de autentificación, puede usar uno de estos códigos para iniciar sesión.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Asegúrese de tener una copia de sus códigos:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Si pierde el acceso a su aplicación de autentificación, puede usar uno de estos códigos para iniciar sesión.", "manage-apps": "Administrar aplicaciones", "manage-assets": "Administrar activos", "manage-assets_description": "Permiso para administrar los activos del servidor", @@ -2398,6 +2435,7 @@ "Office_Hours": "Horas de oficina", "Office_hours_enabled": "Horario de oficina habilitado", "Office_hours_updated": "Horario de oficina actualizado", + "RetentionPolicy_ExcludePinned": "Excluir mensajes fijados", "Offline": "Desconectado", "Offline_DM_Email": "Se le ha contactado directamente por __user__", "Offline_Email_Subject_Description": "Puede usar los siguientes marcadores de posición:
  • [Site_Name], [Site_URL], [User] y [Room] para el nombre de la aplicación, la URL, el nombre de usuario y el nombre de la habitación, respectivamente.
", @@ -2650,7 +2688,6 @@ "RetentionPolicy_AppliesToChannels": "Se aplica a los canales", "RetentionPolicy_AppliesToGroups": "Se aplica a grupos privados", "RetentionPolicy_AppliesToDMs": "Se aplica a mensajes directos", - "RetentionPolicy_ExcludePinned": "Excluir mensajes fijados", "RetentionPolicy_FilesOnly": "Solo eliminar archivos", "RetentionPolicy_FilesOnly_Description": "Solo se eliminarán los archivos, los mensajes se mantendrán en su lugar.", "RetentionPolicy_MaxAge": "Edad máxima del mensaje", @@ -2723,6 +2760,7 @@ "SAML_Custom_user_data_fieldmap": "Mapa de Campos de Datos de Usuario", "SAML_Custom_Immutable_Property_Username": "Nombre de usuario", "SAML_Custom_Public_Cert": "Contenido del certificado público", + "SAML_Section_1_User_Interface": "Interfaz de usuario", "Saturday": "Sábado", "Save": "Guardar", "save-others-livechat-room-info": "Guardar otros Livechat Información de la habitación", @@ -2733,7 +2771,7 @@ "Saved": "Guardado", "Saving": "Guardando", "Scan_QR_code": "Con una aplicación autenticadora como Google Authenticator, Authy o Duo, escanee el código QR. Mostrará un código de 6 dígitos que debe ingresar a continuación.", - "Scan_QR_code_alternative_s": "Si no puede escanear el código QR, puede ingresar el código manualmente en su lugar: __code__", + "Scan_QR_code_alternative_s": "Si no puede escanear el código QR, puede ingresar el código manualmente en su lugar:", "Scope": "Alcance", "Screen_Share": "Compartir Pantalla", "Script_Enabled": "Script Habilitado", diff --git a/packages/rocketchat-i18n/i18n/fa.i18n.json b/packages/rocketchat-i18n/i18n/fa.i18n.json index c5db48f3e940..8dcd7de4f57e 100644 --- a/packages/rocketchat-i18n/i18n/fa.i18n.json +++ b/packages/rocketchat-i18n/i18n/fa.i18n.json @@ -666,7 +666,6 @@ "Cloud_register_offline_helper": "در صورت محدود بودن دسترسی به شبکه ، می توان مکان های کاری را به صورت دستی ثبت کرد. متن را کپی کنید و برای تکمیل مراحل به کنسول Cloud ما بروید.", "Cloud_register_success": "فضای کاری شما با موفقیت ثبت شده است!", "Cloud_register_error": "هنگام پردازش درخواست شما خطایی رخ داده است. لطفا بعدا دوباره امتحان کنید.", - "Cloud_connect_support": "اگر هنوز ایمیل ثبت نام دریافت نکردید ، لطفاً اطمینان حاصل کنید که ایمیل شما در بالا به روز شده است. اگر هنوز مشکل دارید می توانید با پشتیبانی تماس بگیرید", "Cloud_console": "کنسول Cloud", "Cloud_Info": "اطلاعات Cloud", "Cloud_what_is_it": "این چیه؟", @@ -1891,7 +1890,8 @@ "Mailer_body_tags": "شما باید [unsubscribe] برای لینک لغو عضویت استفاده کنید.
شما ممکن است [name]، [fname] برای نام کامل کاربر، نام اول یا نام خانوادگی، به ترتیب استفاده کنید، [lname].
ممکن است [email] برای ایمیل کاربر استفاده کنید.", "Mailing": "ایمیل کردن", "Make_Admin": "مدیر کردن", - "Make_sure_you_have_a_copy_of_your_codes": "اطمینان حاصل کنید که یک کپی از کدهای خود دارید: __codes__ اگر شما دسترسی به برنامه تأییدی هویتان را از دست بدهید، می توانید از یکی از این کدها برای ورود به سیستم استفاده کنید.", + "Make_sure_you_have_a_copy_of_your_codes_1": "اطمینان حاصل کنید که یک کپی از کدهای خود دارید:", + "Make_sure_you_have_a_copy_of_your_codes_2": "اگر شما دسترسی به برنامه تأییدی هویتان را از دست بدهید، می توانید از یکی از این کدها برای ورود به سیستم استفاده کنید.", "manage-apps": "مدیریت برنامه ها", "manage-assets": "مدیریت دارایی ها", "manage-assets_description": "مجوز مدیریت دارایی های سرور", @@ -2110,6 +2110,7 @@ "Notify_all_in_this_room": "به اطلاع همه در این اتاق", "Num_Agents": "# نمایندگی", "Number_of_messages": "تعداد پیام ها", + "RetentionPolicy_DoNotExcludeDiscussion": "پیام های بحث را از مطالعه خارج نکنید", "OAuth_Application": "OAuth تأیید نرم افزار", "OAuth_Applications": "نرم افزار OAuth تأیید", "Objects": "اشیاء", @@ -2119,6 +2120,7 @@ "Office_Hours": "ساعات اداری", "Office_hours_enabled": "ساعت اداری فعال شده است", "Office_hours_updated": "ساعت اداری به روز شد", + "RetentionPolicy_ExcludePinned": "پیام های پین شده را حذف کنید", "Offline": "آفلاین", "Offline_DM_Email": "شما مستقیم توسط __user__ پیام ارسال شده است", "Offline_Email_Subject_Description": "می‌توانید از مکان نماهای زیر استفاده کنید:
  • [Site_Name] و [Site_URL] به ترتیب برای نام و آدرس برنامه.
", @@ -2359,7 +2361,6 @@ "Retail": "جزئی", "Retention_setting_changed_successfully": "تنظیم سیاست حفظ حفظ شده با موفقیت تغییر کرد", "RetentionPolicy": "سیاست نگهداری", - "RetentionPolicy_DoNotExcludeDiscussion": "پیام های بحث را از مطالعه خارج نکنید", "RetentionPolicy_RoomWarning": "پیام های قدیمی تر از%s به طور خودکار در اینجا بریده می شوند", "RetentionPolicy_RoomWarning_Unpinned": "پیغامهای غیر مسدود شده قدیمیتر از%s به صورت خودکار در اینجا برچیده میشوند", "RetentionPolicy_RoomWarning_FilesOnly": "فایلهای قدیمیتر از%s به صورت خودکار در اینجا کپی میشوند (پیامها باقی میمانند)", @@ -2369,7 +2370,6 @@ "RetentionPolicy_AppliesToChannels": "به کانال ها اعمال می شود", "RetentionPolicy_AppliesToGroups": "اعمال به گروه های خصوصی", "RetentionPolicy_AppliesToDMs": "به پیام های مستقیم اعمال می شود", - "RetentionPolicy_ExcludePinned": "پیام های پین شده را حذف کنید", "RetentionPolicy_FilesOnly": "فقط فایلها را حذف کنید", "RetentionPolicy_FilesOnly_Description": "فقط فایل ها حذف خواهند شد، پیام های خود را در جای خود قرار می دهند.", "RetentionPolicy_MaxAge": "حداکثر سن پیام", @@ -2442,6 +2442,7 @@ "SAML_Custom_user_data_fieldmap": "کاربر داده نقشه درست", "SAML_Custom_Immutable_Property_Username": "نام کاربری", "SAML_Custom_Public_Cert": "مطالب عمومی Cert", + "SAML_Section_1_User_Interface": "رابط کاربری", "Saturday": "شنبه", "Save": "ذخیره", "save-others-livechat-room-info": "سایر اطلاعات Livechat را ذخیره کنید", @@ -2452,7 +2453,7 @@ "Saved": "ذخیره شد", "Saving": "در حال ذخیره سازی", "Scan_QR_code": "با استفاده از برنامه تأیید هویت مانند Google Authenticator، Authy یا Duo، کد QR را اسکن کنید. این یک کد 6 رقمی است که شما باید زیر را وارد کنید.", - "Scan_QR_code_alternative_s": "اگر نمیتوانید کد QR را اسکن کنید، میتوانید کد را به صورت دستی وارد کنید: __code__", + "Scan_QR_code_alternative_s": "اگر نمیتوانید کد QR را اسکن کنید، میتوانید کد را به صورت دستی وارد کنید:", "Scope": "محدوده", "Screen_Share": "صفحه نمایش به اشتراک", "Script_Enabled": "اسکریپت فعال", diff --git a/packages/rocketchat-i18n/i18n/fi.i18n.json b/packages/rocketchat-i18n/i18n/fi.i18n.json index e8f208ebf916..6e6885f9430d 100644 --- a/packages/rocketchat-i18n/i18n/fi.i18n.json +++ b/packages/rocketchat-i18n/i18n/fi.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Sinun tulee käyttää [unsubscribe] postituslistalta poistumislinkkinä.
Voit käyttää [name], [fname], [lname] käyttäjän koko nimen, etunimen tai sukunimen paikalla.
Voit käyttää [email] käyttäjän sähköpostin paikalla.", "Mailing": "Sähköpostitus", "Make_Admin": "Tee ylläpitäjäksi", - "Make_sure_you_have_a_copy_of_your_codes": "Varmista, että sinulla on kopio koodeistasi: __codes__ Jos menetät pääsyn autentikointisovellukseen, voit kirjautua sisään yhdellä näistä koodeista.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Varmista, että sinulla on kopio koodeistasi:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Jos menetät pääsyn autentikointisovellukseen, voit kirjautua sisään yhdellä näistä koodeista.", "manage-apps": "Hallinnoi sovelluksia", "manage-assets": "Hallitse omaisuutta", "manage-assets_description": "Käyttöoikeus hallita palvelimen varoja", @@ -1901,6 +1902,7 @@ "Office_Hours": "Työaika", "Office_hours_enabled": "Toimistotunnit sallittu", "Office_hours_updated": "Päivystysaika", + "RetentionPolicy_ExcludePinned": "Sulje kiinnitetyt viestit", "Offline": "Offline", "Offline_DM_Email": "__user__ lähetti sinulle yksityisviestin", "Offline_Email_Subject_Description": "Voit käyttää seuraavia paikkamerkkejä:
  • [Sivuston nimi], [Sivusto_URL], [Käyttäjä] ja [Room]
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Koskee kanavia", "RetentionPolicy_AppliesToGroups": "Koskee yksityisiä ryhmiä", "RetentionPolicy_AppliesToDMs": "Koskee suoria viestejä", - "RetentionPolicy_ExcludePinned": "Sulje kiinnitetyt viestit", "RetentionPolicy_FilesOnly": "Vain tiedostojen poistaminen", "RetentionPolicy_FilesOnly_Description": "Vain tiedostot poistetaan, viestit pysyvät paikallaan.", "RetentionPolicy_MaxAge": "Viestin enimmäisikä", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Käyttäjätietojen kohdistus", "SAML_Custom_Immutable_Property_Username": "Käyttäjätunnus", "SAML_Custom_Public_Cert": "Julkisen sisällön sisältö", + "SAML_Section_1_User_Interface": "Käyttöliittymä", "Saturday": "Lauantai", "Save": "Tallenna", "save-others-livechat-room-info": "Tallenna muut Livechat-huoneilmoitukset", @@ -2231,7 +2233,7 @@ "Saved": "Tallennettu", "Saving": "Tallennetaan", "Scan_QR_code": "Skannaa QR-koodi käyttämällä autentikointisovellusta, kuten Google Authenticator, Authy tai Duo. Se näyttää 6-numeroisen koodin, jonka haluat syöttää alla.", - "Scan_QR_code_alternative_s": "Jos et pysty skannaamaan QR-koodia, voit syöttää koodin manuaalisesti sen sijaan: __code__", + "Scan_QR_code_alternative_s": "Jos et pysty skannaamaan QR-koodia, voit syöttää koodin manuaalisesti sen sijaan:", "Scope": "Laajuus", "Screen_Share": "Näytön jakaminen", "Script_Enabled": "Skripti käytössä", diff --git a/packages/rocketchat-i18n/i18n/fr.i18n.json b/packages/rocketchat-i18n/i18n/fr.i18n.json index 173f6d82b544..e429a4854b06 100644 --- a/packages/rocketchat-i18n/i18n/fr.i18n.json +++ b/packages/rocketchat-i18n/i18n/fr.i18n.json @@ -1831,7 +1831,8 @@ "Mailer_body_tags": "Vous devez utiliser [unsubscribe] pour le lien de désinscription.
Vous pouvez utiliser respectivement [name], [fname], [lname] pour le nom complet de l'utilisateur, le prénom et le nom de famille.
Vous pouvez utiliser [email] pour l'adresse e-mail de l'utilisateur.", "Mailing": "E-mailing", "Make_Admin": "Promouvoir administrateur", - "Make_sure_you_have_a_copy_of_your_codes": "Assurez-vous d'avoir une copie de vos codes: __codes__ Si vous perdez l'accès à votre application d'authentification, vous pouvez utiliser l'un de ces codes pour vous connecter.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Assurez-vous d'avoir une copie de vos codes:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Si vous perdez l'accès à votre application d'authentification, vous pouvez utiliser l'un de ces codes pour vous connecter.", "manage-apps": "Gérer les applications", "manage-assets": "Gérer les actifs", "manage-assets_description": "Autorisation de gérer les actifs du serveur", @@ -2082,6 +2083,7 @@ "Office_Hours": "Heures de bureau", "Office_hours_enabled": "Heures de bureau activées", "Office_hours_updated": "Heures de bureau modifiées", + "RetentionPolicy_ExcludePinned": "Exclure les messages épinglés", "Offline": "Hors ligne", "Offline_DM_Email": "Vous avez reçu des messages privés de __user__", "Offline_Email_Subject_Description": "Vous pouvez utiliser les espaces réservés suivants:
  • [Site_Name], [Site_URL], [User] & [Room] pour le nom de l'application, l'URL, le nom d'utilisateur et le nom du salon, respectivement.
", @@ -2360,7 +2362,6 @@ "RetentionPolicy_AppliesToChannels": "S'applique aux canaux", "RetentionPolicy_AppliesToGroups": "S'applique aux groupes privés", "RetentionPolicy_AppliesToDMs": "S'applique aux messages directs", - "RetentionPolicy_ExcludePinned": "Exclure les messages épinglés", "RetentionPolicy_FilesOnly": "Supprimer uniquement les fichiers", "RetentionPolicy_FilesOnly_Description": "Seuls les fichiers seront supprimés, les messages eux-mêmes resteront en place.", "RetentionPolicy_MaxAge": "Âge maximal du message", @@ -2434,6 +2435,7 @@ "SAML_Custom_Immutable_Property_Username": "Nom d'utilisateur", "SAML_Custom_Immutable_Property_EMail": "Email", "SAML_Custom_Public_Cert": "Contenu du certificat public", + "SAML_Section_1_User_Interface": "Interface utilisateur", "Saturday": "Samedi", "Save": "Enregistrer", "save-others-livechat-room-info": "Enregistrer les autres Livechat Room Info", @@ -2444,7 +2446,7 @@ "Saved": "Enregistré", "Saving": "Enregistrement en cours", "Scan_QR_code": "En utilisant une application d'authentification comme Google Authenticator, Authy ou Duo, scannez le code QR. Il affichera un code à 6 chiffres que vous devrez entrer ci-dessous.", - "Scan_QR_code_alternative_s": "Si vous ne pouvez pas scanner le code QR, vous pouvez entrer le code manuellement à la place: __code__", + "Scan_QR_code_alternative_s": "Si vous ne pouvez pas scanner le code QR, vous pouvez entrer le code manuellement à la place:", "Scope": "Portée", "Screen_Share": "Partage d'Écran", "Script_Enabled": "Script activé", @@ -3097,4 +3099,4 @@ "Your_question": "Votre question", "Your_server_link": "Le lien de votre serveur", "Your_workspace_is_ready": "Votre espace de travail est prêt à l'emploi 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/he.i18n.json b/packages/rocketchat-i18n/i18n/he.i18n.json index 5efb251a958e..96416dbb6314 100644 --- a/packages/rocketchat-i18n/i18n/he.i18n.json +++ b/packages/rocketchat-i18n/i18n/he.i18n.json @@ -19,6 +19,7 @@ "Accessing_permissions": "הרשאות גישה", "Account_SID": "חשבון SID", "Accounts": "חשבונות", + "Accounts_Admin_Email_Approval_Needed_Subject_Default": "משתמש חדש נרשם וצריך אישור", "Accounts_AllowDeleteOwnAccount": "אפשר למשתמשים למחוק את החשבון לבד", "Accounts_AllowedDomainsList": "רשימת דומיינים מאופשרים", "Accounts_AllowedDomainsList_Description": "רשימת הדומיינים המאושרים מופרדים בפסיק", @@ -29,12 +30,14 @@ "Accounts_AllowUserProfileChange": "אפשר למשתמש לשנות את הפרופיל", "Accounts_AvatarResize": "שנה את גודל תמונת הפרופיל", "Accounts_AvatarSize": "גודל תמונת הפרופיל", + "Accounts_AvatarExternalProviderUrl_Description": "לדוגמה: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "רשימת דומיינים חסומים", "Accounts_BlockedDomainsList_Description": "רשימה מופרדת בפסיקים של דומיינים חסומים", "Accounts_BlockedUsernameList": "רשימת משתמש חסום", "Accounts_BlockedUsernameList_Description": "רשימה מופרדת בפסיקים של שמות משתמש חסומים (תלוי רישיות)", "Accounts_Default_User_Preferences_desktopNotifications": "נוטיפיקציות דסקטופ דפולטיות", "Accounts_denyUnverifiedEmail": "מנע מיילים לא מאומתים", + "Accounts_Email_Activated_Subject": "החשבון הופעל", "Accounts_EmailVerification": "אימות דוא״ל", "Accounts_EmailVerification_Description": "בדוק שיש לך הגדרות SMTP נכונות כדי להשתמש בתכונה זו", "Accounts_Enrollment_Email_Subject_Default": "ברוכים הבאים ל[Site_name]", @@ -101,16 +104,16 @@ "Accounts_OAuth_Wordpress_secret": "סיסמת WordPress", "Accounts_OAuth_Wordpress_server_type_custom": "מִנְהָג", "Accounts_OAuth_Wordpress_token_path": "נתיב האסימון", - "Accounts_PasswordReset": "איפוס ססמה", + "Accounts_PasswordReset": "איפוס סיסמה", "Accounts_Registration_AuthenticationServices_Enabled": "הרשמה עם שירותי הזדהות", "Accounts_RegistrationForm": "טופס הרשמה", "Accounts_RegistrationForm_Disabled": "מבוטל", "Accounts_RegistrationForm_LinkReplacementText": "טקסט החלפה של לינק טופס הרישום", - "Accounts_RegistrationForm_Public": "ציבורי", - "Accounts_RegistrationForm_Secret_URL": "כתובת סודית", + "Accounts_RegistrationForm_Public": "פומבי", + "Accounts_RegistrationForm_Secret_URL": "כתובת URL סודית", "Accounts_RegistrationForm_SecretURL": "סיסמת כתובת טופס הרישום", "Accounts_RegistrationForm_SecretURL_Description": "אתה חייב לספק מחרוזת אקראית שתתווסף לכתובת הרישום שלך. לדוגמה:https://open.rocket.chat/register/[secret_hash]", - "Accounts_RequireNameForSignUp": "נדרש שם לרישום", + "Accounts_RequireNameForSignUp": "דרוש שם להרשמה", "Accounts_ShowFormLogin": "טופס מבוסס צג כניסה", "Accounts_UseDefaultBlockedDomainsList": "השתמש בברירת מחדל רשימת Domains חסימה", "Accounts_UseDNSDomainCheck": "הסימון השתמש דומיין DNS", @@ -196,6 +199,7 @@ "Attachment_File_Uploaded": "קובץ הועלה", "Audio": "אודיו", "Audio_message": "הודעה קולית", + "Audio_Notifications_Value": "צליל ברירת מחדל להודעה", "Auth_Token": "אימות אסימון", "Author": "מבחר", "Authorization_URL": "כתובת אתר הרשאה", @@ -218,17 +222,17 @@ "Avatar_url_invalid_or_error": "הכתובת שסופקה לא תקינה או לא נגישה. אנא נסה שנית עם כתובת אחרת.", "away": "לא נמצא", "Away": "לא נמצא", - "away_female": "לא נמצאת", - "Away_female": "לא נמצאת", + "away_female": "לא נמצא", + "Away_female": "לא נמצא", "away_male": "לא נמצא", "Away_male": "לא נמצא", "Back": "חזרה", - "Back_to_applications": "חזרה יישומים", + "Back_to_applications": "חזרה ליישומים", "Back_to_chat": "חזור לשיחה", "Back_to_integrations": "חזרה לאינטגרציות", - "Back_to_login": "חזרה לכניסה", + "Back_to_login": "חזרה לעמוד ההתחברות", "Back_to_permissions": "חזרה להרשאות", - "ban-user": "חסום משתמש", + "ban-user": "החרם משתמש", "Block_User": "חסום משתמש", "Blockchain": "בלוקצ'יין", "Body": "גוּף", @@ -236,10 +240,11 @@ "Branch": "ענף", "Broadcast_channel": "Channel הפצה", "Broadcast_channel_Description": "רק משתמשים מורשים יוכלו לכתוב הודעות, אבל שאר המשתמשים יכולים להגיב", + "Browser_does_not_support_video_element": "הדפדפן שלך לא תומך בוידאו", "busy": "עסוק", "Busy": "עסוק", - "busy_female": "עסוקה", - "Busy_female": "עסוקה", + "busy_female": "עסוק", + "Busy_female": "עסוק", "busy_male": "עסוק", "Busy_male": "עסוק", "by": "על ידי", @@ -910,11 +915,12 @@ "New_integration": "שילוב חדש", "New_line_message_compose_input": "`%s` - שורה חדשה בשדה כתיבת הודעה", "New_logs": "יומנים חדשים", - "New_Message_Notification": "התרעת הודעה חדשה", + "New_Message_Notification": "התראת הודעה חדשה", "New_messages": "הודעות חדשות", "New_password": "ססמה חדשה", "New_role": "תפקיד חדש", - "New_Room_Notification": "הודעת חדר חדשה", + "New_Room_Notification": "הודעת קבוצה חדשה", + "New_videocall_request": "בקשה לשיחת וידאו חדשה", "No_channel_with_name_%s_was_found": "לא נמצא ערוץ עם השם \"%s\"!", "No_channels_yet": "אינך חבר באף ערוץ עד כה.", "No_direct_messages_yet": "לא התחלת אף שיחה עד כה.", @@ -952,6 +958,7 @@ "Off": "לא פועל", "Off_the_record_conversation": "שיחה לא לציטוט", "Off_the_record_conversation_is_not_available_for_your_browser_or_device": "שיחה לא לציטוט אינה זמינה בדפדפן או במכשיר שלך.", + "RetentionPolicy_ExcludePinned": "התעלם מהודעות מוצמדות", "Offline": "מנותק", "Offline_DM_Email": "קבלת הודעות במשך ישיר על ידי __user__", "Offline_form": "טופס מנותק", @@ -1043,8 +1050,8 @@ "Push_gcm_api_key": "מפתח API של GCM", "Push_gcm_project_number": "מספר פרויקט ב-GCM", "Push_production": "סביבת ייצור", - "Push_show_message": "הצג הודעה בהודעה", - "Push_show_username_room": "ערוץ הצג / קבוצה / username בהודעה", + "Push_show_message": "הצג הודעה בהתראה", + "Push_show_username_room": "הצג / קבוצה פומבית / קבוצה פרטית / שם משתמש בהתראה", "Push_test_push": "בדיקה", "Query": "שאילתה", "Query_description": "תנאים נוספים לקביעה אשר למשתמשים לשלוח את הודעת הדוא\"ל. למשתמשים לא רשומים יוסרו באופן אוטומטי את השאילתה. זה חייב להיות JSON תקף. דוגמה: \"{\" createdAt \": {\" $ gt \": {\" תאריך $ \":\" 2015-01-01T00: 00: 00.000Z \"}}}\"", @@ -1082,7 +1089,6 @@ "Restart": "הפעלה מחדש", "Restart_the_server": "אתחול השרת", "RetentionPolicy_Enabled": "מופעל", - "RetentionPolicy_ExcludePinned": "התעלם מהודעות מוצמדות", "RetentionPolicyRoom_ExcludePinned": "התעלם מהודעות מוצמדות", "Role": "תפקיד", "Role_Editing": "עריכת תפקידים", @@ -1206,6 +1212,7 @@ "Start_video_call": "התחל שיחת וידאו", "Start_video_conference": "התחל שיחת ווידאו", "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s": "התחל עם %s עבור משתמש או %s עבור הערוץ. לדוגמא: %s או %s", + "Started_a_video_call": "התחיל/ה שיחת וידאו", "Started_At": "התחיל ב", "Statistics": "סטטיסטיקה", "Statistics_reporting": "שלח סטטיסטיקות כדי Rocket.Chat", @@ -1394,7 +1401,9 @@ "Verification_email_sent": "נשלחה הודעת דוא״ל לאימות", "Verified": "מְאוּמָת", "Version": "גרסה", + "Video Conference": "ועידת וידאו ", "Video_Chat_Window": "צ'אט וידאו", + "Video_Conference": "ועידת וידאו", "View_All": "הצגת הכול", "View_Logs": "יומנים", "View_mode": "מצב תצוגה", @@ -1433,7 +1442,7 @@ "You_are_logged_in_as": "אתה מחובר בשם", "You_are_not_authorized_to_view_this_page": "אין לך הרשאה לצפות בדף זה", "You_can_change_a_different_avatar_too": "באפשרותך לעקוף את הגלגול נהג לפרסם מאינטגרציה זה.", - "You_can_search_using_RegExp_eg": "תוכל לבצע חיפוש באמצעות RegExp. לְמָשָׁל", + "You_can_search_using_RegExp_eg": "את/ה יכול/ה לחפש באמצעות Regular Expression . כלומר /^text$/i", "You_can_use_an_emoji_as_avatar": "אתה יכול גם להשתמש אמוג'י כתמונה אישית.", "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "אתה יכול להשתמש webhooks לשלב LiveChat בקלות עם CRM שלך.", "You_cant_leave_a_livechat_room_Please_use_the_close_button": "אתה לא יכול להשאיר בחדר LiveChat. אנא, השתמש בלחצן הסגירה.", diff --git a/packages/rocketchat-i18n/i18n/hr.i18n.json b/packages/rocketchat-i18n/i18n/hr.i18n.json index bd5e3698d619..f4e91ef30fbb 100644 --- a/packages/rocketchat-i18n/i18n/hr.i18n.json +++ b/packages/rocketchat-i18n/i18n/hr.i18n.json @@ -1808,7 +1808,8 @@ "Mailer_body_tags": "Morate koristiti [unsubscribe] za otkazivanje pretplate.
Možete koristiti [name], [fname], [lname] za korisnikovo ime i prezime, ime i prezime
 Možete koristiti [email] za e-poštu korisnika.", "Mailing": "Slanje", "Make_Admin": "Učini Administratorom", - "Make_sure_you_have_a_copy_of_your_codes": "Provjerite imate li kopiju svojih kodova: __codes__ Ako izgubite pristup aplikaciji autentifikatora, možete se prijaviti za jedan od ovih kodova.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Provjerite imate li kopiju svojih kodova:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ako izgubite pristup aplikaciji autentifikatora, možete se prijaviti za jedan od ovih kodova.", "manage-apps": "Upravljanje aplikacijama", "manage-assets": "Upravljanje sredstvima", "manage-assets_description": "Dozvola za upravljanje imovinom poslužitelja", @@ -2033,6 +2034,7 @@ "Office_Hours": "Uredovni Sati", "Office_hours_enabled": "Uredovni Sati omogućeno", "Office_hours_updated": "Ažurirani sati", + "RetentionPolicy_ExcludePinned": "Izuzmite prikvačene poruke", "Offline": "Offline", "Offline_DM_Email": "__user__ vas je izravno kontaktirao", "Offline_Email_Subject_Description": "Možete upotrijebiti sljedeće oznake mjesta:
  • [Site_Name], [Site_URL], [User] i [Room] za naziv aplikacije, URL, ime i naziv prostorije.
", @@ -2280,7 +2282,6 @@ "RetentionPolicy_AppliesToChannels": "Odnosi se na kanale", "RetentionPolicy_AppliesToGroups": "Odnosi se na privatne grupe", "RetentionPolicy_AppliesToDMs": "Odnosi se na izravne poruke", - "RetentionPolicy_ExcludePinned": "Izuzmite prikvačene poruke", "RetentionPolicy_FilesOnly": "Samo izbrišite datoteke", "RetentionPolicy_FilesOnly_Description": "Samo će se datoteke izbrisati, poruke će ostati na mjestu.", "RetentionPolicy_MaxAge": "Maksimalna dob poruka", @@ -2353,6 +2354,7 @@ "SAML_Custom_user_data_fieldmap": "Mapa korisničkih podataka", "SAML_Custom_Immutable_Property_Username": "Korisničko ime", "SAML_Custom_Public_Cert": "Sadržaj javnog cert", + "SAML_Section_1_User_Interface": "Korisničko sučelje", "Saturday": "Subota", "Save": "Spremi", "save-others-livechat-room-info": "Spremi druge informacije Livechat Room", @@ -2363,7 +2365,7 @@ "Saved": "Spremljeno", "Saving": "Spremanje", "Scan_QR_code": "Pomoću aplikacije autentifikatora kao što je Google Autentifikator, Authy ili Duo, skeniranje QR koda. On će prikazati šesteroznamenkasti kôd koji morate unijeti u nastavku.", - "Scan_QR_code_alternative_s": "Ako ne možete skenirati QR kod, možete ručno unijeti kôd: __code__", + "Scan_QR_code_alternative_s": "Ako ne možete skenirati QR kod, možete ručno unijeti kôd:", "Scope": "Djelokrug", "Screen_Share": "Podijeli Zaslon", "Script_Enabled": "Skripta Omogućena", diff --git a/packages/rocketchat-i18n/i18n/hu.i18n.json b/packages/rocketchat-i18n/i18n/hu.i18n.json index 44771f71a15a..92cf48a6406b 100644 --- a/packages/rocketchat-i18n/i18n/hu.i18n.json +++ b/packages/rocketchat-i18n/i18n/hu.i18n.json @@ -1974,7 +1974,8 @@ "Mailer_body_tags": "Ki kell használni [unsubscribe] a leiratkozás linkre.
Lehet használni [name], [fname], [lname] a felhasználó teljes nevét, keresztnevét vagy vezetéknevét, ill.
Lehet használni [email] A felhasználó e-mail.", "Mailing": "Levelezési", "Make_Admin": "Tedd Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Győződjön meg róla, hogy másolata van a kódjainak: __codes__ Ha elveszti hozzáférését a hitelesítő alkalmazásához, használhatja az egyik kódot a bejelentkezéshez.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Győződjön meg róla, hogy másolata van a kódjainak:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ha elveszti hozzáférését a hitelesítő alkalmazásához, használhatja az egyik kódot a bejelentkezéshez.", "manage-apps": "Alkalmazások kezelése", "manage-assets": "Eszközök kezelése", "manage-assets_description": "Engedély a kiszolgálói eszközök kezelésére", @@ -2232,6 +2233,7 @@ "Num_Agents": "# Ügynök", "Number_of_events": "Események száma", "Number_of_messages": "Üzenetek száma", + "RetentionPolicy_DoNotExcludeDiscussion": "Ne zárja ki a beszélgetési üzeneteket", "OAuth Apps": "OAuth alkalmazások", "OAuth_Application": "OAuth Application", "OAuth_Applications": "OAuth alkalmazások", @@ -2242,6 +2244,7 @@ "Office_Hours": "Munkaidő", "Office_hours_enabled": "Az Office Hours engedélyezve van", "Office_hours_updated": "Nyitvatartási idő frissítve", + "RetentionPolicy_ExcludePinned": "A rögzített üzenetek kizárása", "Offline": "Offline", "Offline_DM_Email": "Közvetlen üzenet e-mail tárgya", "Offline_Email_Subject_Description": "Az alkalmazás nevét, URL-jét, felhasználónevét és a helyiségnevet a
  • [Site_Name], [Site_URL], [Felhasználó] és [Room] használhatja.
", @@ -2518,7 +2521,6 @@ "Retail": "Kiskereskedelem", "Retention_setting_changed_successfully": "A megőrzési politika beállítása sikeresen megváltozott", "RetentionPolicy": "Megőrzési szabályzat", - "RetentionPolicy_DoNotExcludeDiscussion": "Ne zárja ki a beszélgetési üzeneteket", "RetentionPolicy_RoomWarning": "A (z) __time__nél régebbi üzenetek itt automatikusan metszenek", "RetentionPolicy_RoomWarning_Unpinned": "A __time__-nál régebbi, letiltott üzenetek itt automatikusan metszenek", "RetentionPolicy_RoomWarning_FilesOnly": "A (z) __time__nél régebbi fájlok itt automatikusan metszenek (az üzenetek érintetlen maradnak)", @@ -2528,7 +2530,6 @@ "RetentionPolicy_AppliesToChannels": "Csatornákra vonatkozik", "RetentionPolicy_AppliesToGroups": "Magáncsoportokra vonatkozik", "RetentionPolicy_AppliesToDMs": "Közvetlen üzenetekre vonatkozik", - "RetentionPolicy_ExcludePinned": "A rögzített üzenetek kizárása", "RetentionPolicy_FilesOnly": "Csak fájlok törlése", "RetentionPolicy_FilesOnly_Description": "Csak a fájlok lesznek törölve, az üzenetek maguk maradnak a helyükön.", "RetentionPolicy_MaxAge": "A maximális üzenet kora", @@ -2619,6 +2620,7 @@ "SAML_Default_User_Role": "Alapértelmezett felhasználói szerepkör", "SAML_Default_User_Role_Description": "Több szerepkört is megadhat, vesszővel elválasztva.", "SAML_Role_Attribute_Name": "Szerepkör attribútum neve", + "SAML_Section_1_User_Interface": "Felhasználói felület", "Saturday": "szombat", "Save": "Mentés", "save-others-livechat-room-info": "Mások mentése a Livechat szobapiacon", @@ -2631,7 +2633,7 @@ "Saved": "Mentett", "Saving": "Megtakarítás", "Scan_QR_code": "A hitelesítő alkalmazás, például a Google Hitelesítő, az Authy vagy a Duo használatával beolvashatja a QR-kódot. Megjelenik egy 6 jegyű kód, amelyet alább kell megadnia.", - "Scan_QR_code_alternative_s": "Ha nem tudja beolvasni a QR-kódot, manuálisan írhatja be a kódot: __code__", + "Scan_QR_code_alternative_s": "Ha nem tudja beolvasni a QR-kódot, manuálisan írhatja be a kódot:", "Scope": "Alkalmazási kör", "Screen_Share": "képernyő megosztása", "Script_Enabled": "Script engedélyezve", diff --git a/packages/rocketchat-i18n/i18n/id.i18n.json b/packages/rocketchat-i18n/i18n/id.i18n.json index aa250901bc78..abd98a8a1d70 100644 --- a/packages/rocketchat-i18n/i18n/id.i18n.json +++ b/packages/rocketchat-i18n/i18n/id.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Anda harus menggunakan [unsubscribe] untuk berhenti link berlangganan.
Anda dapat menggunakan [nama], [fname], [lname] untuk nama lengkap pengguna, nama pertama atau nama belakang, masing-masing.
Anda dapat menggunakan [email] untuk email pengguna.", "Mailing": "Mailing", "Make_Admin": "Jadikan Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Pastikan Anda memiliki salinan kode Anda: __codes__ Jika Anda kehilangan akses ke aplikasi authenticator Anda, Anda dapat menggunakan salah satu kode ini untuk login.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Pastikan Anda memiliki salinan kode Anda:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Jika Anda kehilangan akses ke aplikasi authenticator Anda, Anda dapat menggunakan salah satu kode ini untuk login.", "manage-apps": "Kelola Aplikasi", "manage-assets": "Mengelola Aset", "manage-assets_description": "Izin mengelola aset server", @@ -1910,6 +1911,7 @@ "Office_Hours": "Jam kerja", "Office_hours_enabled": "Jam Kerja Diaktifkan", "Office_hours_updated": "Jam kantor diperbarui", + "RetentionPolicy_ExcludePinned": "Kecualikan pesan yang disematkan", "Offline": "Offline", "Offline_DM_Email": "Anda telah langsung mengirim pesan oleh __user__", "Offline_Email_Subject_Description": "Anda dapat menggunakan pemegang tempat berikut ini:
  • [Site_Name], [Site_URL], [Pengguna] & [Kamar] untuk Nama Aplikasi, URL, Nama Pengguna & Kamar Nama masing-masing.
", @@ -2157,7 +2159,6 @@ "RetentionPolicy_AppliesToChannels": "Berlaku untuk saluran", "RetentionPolicy_AppliesToGroups": "Berlaku untuk grup pribadi", "RetentionPolicy_AppliesToDMs": "Berlaku untuk mengarahkan pesan", - "RetentionPolicy_ExcludePinned": "Kecualikan pesan yang disematkan", "RetentionPolicy_FilesOnly": "Hanya hapus file", "RetentionPolicy_FilesOnly_Description": "Hanya file yang akan dihapus, pesan itu sendiri akan tetap di tempatnya.", "RetentionPolicy_MaxAge": "Umur pesan maksimum", @@ -2230,6 +2231,7 @@ "SAML_Custom_user_data_fieldmap": "Peta Kolom Data User", "SAML_Custom_Immutable_Property_Username": "Nama pengguna", "SAML_Custom_Public_Cert": "Isi Cert Publik", + "SAML_Section_1_User_Interface": "Antarmuka pengguna", "Saturday": "Sabtu", "Save": "Simpan", "save-others-livechat-room-info": "Simpan Informasi Kamar Livechat Lainnya", @@ -2240,7 +2242,7 @@ "Saved": "disimpan", "Saving": "Penghematan", "Scan_QR_code": "Menggunakan aplikasi authenticator seperti Google Authenticator, Authy atau Duo, pindai kode QR. Ini akan menampilkan kode 6 digit yang perlu Anda masukkan di bawah ini.", - "Scan_QR_code_alternative_s": "Jika Anda tidak dapat memindai kode QR, Anda dapat memasukkan kode secara manual sebagai gantinya: __code__", + "Scan_QR_code_alternative_s": "Jika Anda tidak dapat memindai kode QR, Anda dapat memasukkan kode secara manual sebagai gantinya:", "Scope": "Cakupan", "Screen_Share": "layar Share", "Script_Enabled": "Script Diaktifkan", diff --git a/packages/rocketchat-i18n/i18n/it.i18n.json b/packages/rocketchat-i18n/i18n/it.i18n.json index 55ade80a1e52..080e43db8838 100644 --- a/packages/rocketchat-i18n/i18n/it.i18n.json +++ b/packages/rocketchat-i18n/i18n/it.i18n.json @@ -1693,7 +1693,8 @@ "Mailer_body_tags": "È necessario utilizzare il tag [unsubscribe] per il link di cancellazione.
 È possibile utilizzare [name], [fname], [lname] rispettivamente per il nome completo dell'utente, nome o cognome.
 È possibile utilizzare [email] per l'indirizzo email dell'utente.", "Mailing": "Mailing", "Make_Admin": "Rendi Amministratore", - "Make_sure_you_have_a_copy_of_your_codes": "Assicurati di avere una copia dei tuoi codici: __codes__ Se perdi l'accesso alla tua app di autenticazione, puoi utilizzare uno di questi codici per accedere.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Assicurati di avere una copia dei tuoi codici:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Se perdi l'accesso alla tua app di autenticazione, puoi utilizzare uno di questi codici per accedere.", "manage-apps": "Gestisci app", "manage-assets": "Gestisci risorse", "manage-assets_description": "Autorizzazione a gestire le risorse del server", @@ -1933,6 +1934,7 @@ "Office_Hours": "Ore d'ufficio", "Office_hours_enabled": "Orario ufficio attivo", "Office_hours_updated": "Orari di ufficio aggiornati", + "RetentionPolicy_ExcludePinned": "Escludere i messaggi aggiunti", "Offline": "Offline", "Offline_DM_Email": "Hai ricevuto un messaggio diretto da __user__", "Offline_Email_Subject_Description": "Puoi utilizzare i seguenti segnaposti:
  • [Nome sito], [Site_URL], [Utente] e [Sala] rispettivamente per Nome applicazione, URL, Nome utente e Nome stanza.
", @@ -2184,7 +2186,6 @@ "RetentionPolicy_AppliesToChannels": "Si applica ai canali", "RetentionPolicy_AppliesToGroups": "Si applica a gruppi privati", "RetentionPolicy_AppliesToDMs": "Si applica per dirigere i messaggi", - "RetentionPolicy_ExcludePinned": "Escludere i messaggi aggiunti", "RetentionPolicy_FilesOnly": "Elimina solo i file", "RetentionPolicy_FilesOnly_Description": "Verranno eliminati solo i file, i messaggi rimarranno al loro posto.", "RetentionPolicy_MaxAge": "Età massima del messaggio", @@ -2257,6 +2258,7 @@ "SAML_Custom_user_data_fieldmap": "Campo Utente Dati Mappa", "SAML_Custom_Immutable_Property_Username": "Nome utente", "SAML_Custom_Public_Cert": "Public cert contents", + "SAML_Section_1_User_Interface": "Interfaccia utente", "Saturday": "Sabato", "Save": "Salva", "save-others-livechat-room-info": "Salva gli altri Livechat Room Info", @@ -2267,7 +2269,7 @@ "Saved": "Salvato", "Saving": "Salvataggio", "Scan_QR_code": "Usare un'app di autenticazione come Google Authenticator, Authy o Duo, scannerizza il codice QR. Mostrerà un codice di 6 cifre che dovrai inserire qui sotto.", - "Scan_QR_code_alternative_s": "Se non riesci a scansionare il codice QR, puoi inserire il codice manualmente: __code__", + "Scan_QR_code_alternative_s": "Se non riesci a scansionare il codice QR, puoi inserire il codice manualmente:", "Scope": "Scope", "Screen_Share": "Condividi Schermo", "Script_Enabled": "Abilita Script ", diff --git a/packages/rocketchat-i18n/i18n/ja.i18n.json b/packages/rocketchat-i18n/i18n/ja.i18n.json index a71e4116675d..5549def80fc3 100644 --- a/packages/rocketchat-i18n/i18n/ja.i18n.json +++ b/packages/rocketchat-i18n/i18n/ja.i18n.json @@ -56,6 +56,17 @@ "Accounts_AvatarExternalProviderUrl_Description": "例: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "ブロックされたドメイン一覧", "Accounts_BlockedDomainsList_Description": "カンマ区切りのブロックされたドメイン一覧", + "Accounts_Verify_Email_For_External_Accounts": "外部アカウントのメールアドレスを確認する", + "Block_Multiple_Failed_Logins_Enabled": "ログインデータの収集を有効にする", + "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "ログイン試行のIPとユーザー名をデータベースのコレクションに保存します", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "IPホワイトリスト", + "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "ホワイトリストIPのコンマ区切りリスト", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "IPのブロックを解除する時間(分)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "ユーザーのブロックを解除する時間(分)", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "IPでブロックするまでに失敗した試行の数", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "ユーザーでブロックされるまでに失敗した試行の数", + "Block_Multiple_Failed_Logins_By_Ip": "失敗したログイン試行をIPでブロック", + "Block_Multiple_Failed_Logins_By_User": "失敗したログイン試行をユーザー名でブロック", "Accounts_BlockedUsernameList": "ブロックされたユーザー名一覧", "Accounts_BlockedUsernameList_Description": "ブロックされたユーザー名のカンマ区切りリスト (大文字と小文字を区別しません)", "Accounts_CustomFields_Description": "キーはフィールド設定の辞書を含むフィールド名となっている、有効なJSONでなければなりません。例:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n}", @@ -79,6 +90,11 @@ "Accounts_Enrollment_Email_Subject_Default": "[Site_Name]へようこそ", "Accounts_Enrollment_Email": "登録メール", "Accounts_Enrollment_Email_Description": "下記のプレースホルダを用いることができます。
  • フルネーム: [name], ファーストネーム: [fname], ラストネーム: [lname]
  • ユーザーのメールアドレス: [email]
  • アプリ名: [Site_Name], URL: [Site_URL]
", + "Login_Logs_Enabled": "ログ(コンソール上)の失敗したログイン試行", + "Login_Logs_ClientIp": "ログイン試行失敗のログにクライアントIPを表示する", + "Login_Logs_ForwardedForIp": "失敗したログイン試行ログに転送IPを表示する", + "Login_Logs_Username": "失敗したログイン試行ログにユーザー名を表示する", + "Login_Logs_UserAgent": "失敗したログイン試行ログにUserAgentを表示する", "Accounts_ForgetUserSessionOnWindowClose": "ウィンドウを閉じる時にユーザーセッションを破棄する", "Accounts_Iframe_api_method": "APIメソッド", "Accounts_Iframe_api_url": "API URL", @@ -299,9 +315,11 @@ "Allow_Invalid_SelfSigned_Certs_Description": "リンク検証とプレビューに不正な自己署名証明書を許可する。", "Allow_switching_departments": "ビジターの部署の切り替えを許可する", "Allow_Marketing_Emails": "マーケティング電子メールを許可する", + "Allow_Online_Agents_Outside_Business_Hours": "営業時間外のオンラインエージェントを許可する", "Allow_Online_Agents_Outside_Office_Hours": "営業時間外にオンラインエージェントを許可する", "Almost_done": "まもなく終わります", "Alphabetical": "アルファベット順", + "Also_send_to_channel": "チャンネルにも送信", "Always_open_in_new_window": "新しいウィンドウで常に開く", "Analytics": "アナリティクス", "Analytics_features_enabled": "有効な機能", @@ -314,6 +332,7 @@ "Animals_and_Nature": "動物と自然", "Announcement": "アナウンス", "API": "API", + "APIs": "API", "API_Add_Personal_Access_Token": "新しいパーソナルアクセストークンを追加する", "API_Allow_Infinite_Count": "すべてを取得することを許可する", "API_Allow_Infinite_Count_Description": "1回の呼び出しですべてを返すことをREST APIの呼び出しに許可する必要がありますか?", @@ -410,13 +429,18 @@ "Apps_Game_Center_Play_Game_Together": "@here __name__を一緒に遊ぼう!", "Apps_Game_Center_Invite_Friends": "友達を招待する", "Apps_Interface_IPreMessageSentPrevent": "メッセージが送信される前に発生するイベント", + "Apps_Interface_IPreMessageSentExtend": "メッセージが送信される前に発生するイベント", + "Apps_Interface_IPreMessageSentModify": "メッセージが送信される前に発生するイベント", "Apps_Interface_IPostMessageSent": "メッセージが送信された後に発生するイベント", "Apps_Interface_IPreMessageDeletePrevent": "メッセージが削除される前に発生するイベント", "Apps_Interface_IPostMessageDeleted": "メッセージが削除された後に発生するイベント", "Apps_Interface_IPreMessageUpdatedPrevent": "メッセージが更新される前に発生するイベント", + "Apps_Interface_IPreMessageUpdatedExtend": "メッセージが更新される前に発生するイベント", + "Apps_Interface_IPreMessageUpdatedModify": "メッセージが更新される前に発生するイベント", "Apps_Interface_IPostMessageUpdated": "メッセージが更新された後に発生するイベント", "Apps_Interface_IPreRoomCreatePrevent": "部屋が作成される前に発生するイベント", "Apps_Interface_IPreRoomCreateExtend": "部屋が作成される前に発生するイベント", + "Apps_Interface_IPreRoomCreateModify": "部屋が作成される前に発生するイベント", "Apps_Interface_IPostRoomCreate": "部屋が作成された後に発生するイベント", "Apps_Interface_IPreRoomDeletePrevent": "部屋が削除される前に発生するイベント", "Apps_Interface_IPostRoomDeleted": "部屋が削除された後に発生するイベント", @@ -574,6 +598,9 @@ "bulk-register-user_description": "ユーザーを一括で登録する権限", "Busiest_day": "最も忙しい日", "Busiest_time": "最も忙しい時間", + "Business_Hours": "営業時間", + "Business_hours_enabled": "営業時間は有効", + "Business_hours_updated": "営業時間を更新しました", "busy": "取り込み中", "Busy": "取り込み中", "busy_female": "取り込み中", @@ -581,8 +608,10 @@ "busy_male": "取り込み中", "Busy_male": "取り込み中", "by": "by", + "By_author": "__author__ による", "cache_cleared": "キャッシュがクリアされました", "call-management": "通話管理", + "Caller": "発信者", "Cancel": "キャンセル", "Canceled": "キャンセルしました", "Cancel_message_input": "キャンセル", @@ -650,8 +679,10 @@ "Chatpal_Base_URL_Description": "Github でローカルインスタンスを実行する方法を見つけましょう。URLは絶対URLで chatpal コアを指し示さなければなりません。例: http://localhost:8983/solr/chatpal", "Chatpal_Batch_Size": "索引バッチサイズ", "Chatpal_Batch_Size_Description": "索引文書のバッチ・サイズ (ブートストラップ時)", + "Chatpal_channel_not_joined_yet": "Channelはまだ参加していません", "Chatpal_create_key": "キーを作成", "Chatpal_created_key_successfully": "APIキーが正常に作成されました", + "Chatpal_Current_Room_Only": "同じ部屋", "Chatpal_Default_Result_Type": "デフォルトの結果タイプ", "Chatpal_Default_Result_Type_Description": "結果によって表示される結果タイプを定義します。すべては、すべてのタイプの概要が提供されることを意味します。", "Chatpal_Email_Address": "電子メールアドレス", @@ -665,6 +696,8 @@ "Chatpal_go_to_user": "ダイレクトメッセージを送信する", "Chatpal_HTTP_Headers": "Httpヘッダー", "Chatpal_HTTP_Headers_Description": "HTTPヘッダーのリスト。1行に1つのヘッダー。フォーマット: 名前: 値", + "Chatpal_Include_All_Public_Channels": "すべての公開チャンネルを含める", + "Chatpal_Include_All_Public_Channels_Description": "まだ参加していない場合でも、すべてのパブリックチャネルを検索します。", "Chatpal_Main_Language": "主な言語", "Chatpal_Main_Language_Description": "会話で最も使用される言語", "Chatpal_Messages": "メッセージ", @@ -725,6 +758,7 @@ "Closed_At": "閉じた日時", "Closed_by_visitor": "訪問者によって閉鎖される", "Closing_chat": "閉じるチャット", + "Closing_chat_message": "チャットメッセージを閉じています", "Cloud": "クラウド", "Cloud_Register_manually": "手動で登録する", "Cloud_click_here": "テキストをコピーしたら、クラウドコンソールに移動します。 [ここをクリック](__cloudConsoleUrl__)", @@ -732,7 +766,6 @@ "Cloud_register_offline_helper": "エアギャップまたはネットワークアクセスが制限されている場合、ワークスペースを手動で登録できます。以下のテキストをコピーし、クラウドコンソールに移動してプロセスを完了します。", "Cloud_register_success": "ワークスペースが正常に登録されました!", "Cloud_register_error": "リクエストの処理中にエラーが発生しました。後でもう一度やり直してください。", - "Cloud_connect_support": "まだ登録メールが届いていない場合は、上記のメールアドレスを必ず更新してください。それでも問題が解決しない場合は、サポートに連絡することができます。", "Cloud_console": "クラウドコンソール", "Cloud_Info": "クラウド情報", "Cloud_what_is_it": "これは何?", @@ -774,11 +807,13 @@ "Connect": "接続", "Connection_Closed": "接続が閉じられました", "Connection_Reset": "接続がリセットしました", + "Connection_success": "LDAP接続に成功しました", "Connectivity_Services": "接続サービス", "Consulting": "コンサルティング", "Consumer_Goods": "消費財", "Contains_Security_Fixes": "セキュリティ修正が含まれています", "Contact": "コンタクト", + "Contact_Chat_History": "チャット履歴への問い合わせ", "Content": "コンテンツ", "Continue": "次へ", "Continuous_sound_notifications_for_new_livechat_room": "新しいライブチャットルームの継続的な音声通知", @@ -1216,6 +1251,7 @@ "Disabled": "無効", "Disallow_reacting": "反応しない", "Disallow_reacting_Description": "反応しない", + "Discard": "破棄", "Disconnect": "切断", "Display_offline_form": "オフラインフォームの表示", "Display_setting_permissions": "設定を変更する権限を表示する", @@ -1368,6 +1404,7 @@ "error-archived-duplicate-name": "名前が `__room_name__` のアーカイブされたチャンネルがあります", "error-avatar-invalid-url": "無効なアバターURL: __url__", "error-avatar-url-handling": "__username__のURL (__url__) からアバターの設定を処理中にエラー", + "error-business-hours-are-closed": "営業時間は休業", "error-cannot-delete-app-user": "アプリユーザーの削除は許可されていません。対応するアプリをアンインストールして削除してください。", "error-cant-invite-for-direct-room": "ユーザーをダイレクトルームに招待できません", "error-channels-setdefault-is-same": "チャンネルのデフォルト設定は、変更するものと同じです。", @@ -1465,6 +1502,7 @@ "error-token-already-exists": "この名前のトークンは既に存在します", "error-token-does-not-exists": "トークンが存在しません", "error-too-many-requests": "エラー、リクエストが多すぎます。減速してください。あなたは再試行する前に__seconds__秒を待たなければなりません。", + "error-transcript-already-requested": "トランスクリプトはすでに要求されています", "error-user-has-no-roles": "ユーザーには役割はありません", "error-user-is-not-activated": "ユーザーは有効ではありません", "error-user-is-not-agent": "ユーザーはLivechatエージェントではありません", @@ -1480,6 +1518,8 @@ "Error_404": "エラー404", "Error_changing_password": "パスワード変更中に問題が発生しました", "Error_loading_pages": "ページの読み込み中のエラー", + "Error_login_blocked_for_ip": "このIPのログインは一時的にブロックされています", + "Error_login_blocked_for_user": "このユーザーのログインは一時的にブロックされています", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "エラー:Rocket.Chatは、複数のインスタンスで実行しているときにoplog tailingが必要です", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "MongoDBがReplicaSetモードで、MONGO_OPLOG_URL環境変数がアプリケーションサーバー上で正しく定義されていることを確認してください", "Error_sending_livechat_transcript": "Livechatトランスクリプトを送信中にエラーが発生しました", @@ -1518,6 +1558,7 @@ "External_Service": "外部サービス", "Facebook_Page": "Facebookのページ", "Failed": "失敗しました", + "Login_Attempts": "失敗したログイン試行", "Failed_to_activate_invite_token": "招待トークンを有効にできませんでした", "Failed_To_Download_Files": "ファイルをダウンロードできませんでした", "Failed_to_generate_invite_link": "招待リンクを生成できませんでした", @@ -1599,6 +1640,8 @@ "FileUpload_MediaTypeWhiteListDescription": "カンマ区切りのメディア種類一覧。すべての受け付ける場合は、空に設定", "FileUpload_ProtectFiles": "アップロードされたファイルを保護する", "FileUpload_ProtectFilesDescription": "認証されたユーザーのみアクセスできます", + "FileUpload_RotateImages": "アップロード時に画像を回転", + "FileUpload_RotateImages_Description": "この設定を有効にすると、画質が低下する可能性があります", "FileUpload_S3_Acl": "Amazon S3 ACL", "FileUpload_S3_AWSAccessKeyId": "Amazon S3 AWSAccessKeyId", "FileUpload_S3_AWSSecretAccessKey": "Amazon S3 AWSSecretAccessKey", @@ -1642,6 +1685,7 @@ "Flags": "国旗", "Follow_message": "メッセージをフォロー", "Following": "フォローしています", + "Not_Following": "フォローしていません", "Follow_social_profiles": "私たちのソーシャルプロファイルをフォローしたり、GitHubでフォークしたり、私たちのTrelloのボード上でRocket.Chatアプリについてのあなたの考えを共有しましょう。", "Fonts": "フォント", "Food_and_Drink": "食べ物と飲み物", @@ -1678,6 +1722,14 @@ "Generate_new_key": "新しいキーを生成する", "Generating_key": "キーを生成しています", "Get_link": "リンクを取得", + "get-password-policy-forbidRepeatingCharacters": "パスワードには繰り返し文字を含めないでください", + "get-password-policy-forbidRepeatingCharactersCount": "パスワードに __forbidRepeatingCharactersCount__ 回を超える繰り返し文字を含めることはできません", + "get-password-policy-maxLength": "パスワードは __maxLength__ 文字以内にする必要があります", + "get-password-policy-minLength": "パスワードは __minLength__ 文字以上にする必要があります", + "get-password-policy-mustContainAtLeastOneLowercase": "パスワードには少なくとも1つの小文字を含める必要があります", + "get-password-policy-mustContainAtLeastOneNumber": "パスワードには少なくとも1つの数字を含める必要があります", + "get-password-policy-mustContainAtLeastOneSpecialCharacter": "パスワードには少なくとも1つの特殊文字を含める必要があります", + "get-password-policy-mustContainAtLeastOneUppercase": "パスワードには少なくとも1つの大文字を含める必要があります", "Generate_New_Link": "新しいリンクを生成", "github_no_public_email": "あなたのGitHubアカウントはパブリックメールなメールアドレスを持っていません", "Give_a_unique_name_for_the_custom_oauth": "カスタム OAuth の一意な名前を入力してください", @@ -1863,6 +1915,7 @@ "Installed_at": "インストール日時", "Invitation_HTML": "招待メールのHTML本文", "Instance_Record": "インスタンスレコード", + "Instance": "インスタンス", "Instructions": "指示", "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "あなたの訪問者への指示メッセージを送信するためのフォームを埋めます", "Invitation_HTML_Default": "

あなたは[Site_Name]に招待されました

[Site_URL]に移動し、今日利用可能な最高のオープンソースのチャットソリューションを試してみてください!

", @@ -2160,6 +2213,8 @@ "LDAP_User_Search_Scope": "範囲", "LDAP_Username_Field": "ユーザー名フィールド", "LDAP_Username_Field_Description": "どのフィールドを新しいユーザーの *ユーザー名* として使用するのか。ログインページのユーザー名を利用する場合は、空にしてください。
テンプレートタグとして `#{givenName}.#{sn}` といった記述も使用できます。
既定値は、 `sAMAccountName` です", + "LDAP_Avatar_Field": "ユーザーアバターフィールド", + "LDAP_Avatar_Field_Description": "ユーザーの *アバター* として使用されるフィールド。最初に `thumbnailPhoto` を使用し、フォールバックとして `jpegPhoto` を使用するには、空のままにします。", "Lead_capture_email_regex": "リードキャプチャ電子メールの正規表現", "Lead_capture_phone_regex": "リードキャプチャ電話の正規表現", "leave-c": "チャンネルを退出する", @@ -2181,6 +2236,7 @@ "Livechat_Agents": "担当者", "Livechat_AllowedDomainsList": "ライブチャット可能なドメイン", "Livechat_Appearance": "Livechatの外観", + "Livechat_chat_transcript_sent": "送信されたチャット記録: __transcript__", "Livechat_Dashboard": "ライブチャット ダッシュボード", "Livechat_DepartmentOfflineMessageToChannel": "この部門のLivechatオフラインメッセージをチャンネルに送信する", "Livechat_enabled": "ライブチャットを有効にする", @@ -2206,6 +2262,9 @@ "Livechat_Take_Confirm": "このクライアントを利用したいですか?", "Livechat_title": "ライブチャットのタイトル", "Livechat_title_color": "ライブチャットタイトル 背景色", + "Livechat_transcript_already_requested_warning": "このチャットの記録はすでにリクエストされており、会話が終了するとすぐに送信されます。", + "Livechat_transcript_request_has_been_canceled": "チャットのトランスクリプト要求がキャンセルされました。", + "Livechat_transcript_has_been_requested": "チャットのトランスクリプトが要求されました。", "Livechat_transcript_sent": "Livechatトランスクリプトが送信されました", "Livechat_transfer_to_agent": "__from__ がチャットを __to__ に転送しました", "Livechat_transfer_to_agent_with_a_comment": "__from__ がチャットを __to__ にコメント付きで転送しました: __comment__", @@ -2214,6 +2273,9 @@ "Livechat_transfer_return_to_the_queue": "__from__ はチャットをキューに戻しました", "Livechat_Triggers": "Livechatトリガー", "Livechat_Users": "ライブチャット 担当者", + "Livechat_user_sent_chat_transcript_to_visitor": "__agent__ がチャットのトランスクリプトを __guest__ に送信しました", + "Livechat_visitor_email_and_transcript_email_do_not_match": "訪問者のメールとトランスクリプトのメールが一致しません", + "Livechat_visitor_transcript_request": "__guest__ がチャットのトランスクリプトを要求しました", "LiveStream & Broadcasting": "ライブストリーム & ブロードキャスト", "Livestream_close": "ライブストリームを閉じる", "Livestream_enabled": "ライブストリームを有効にする", @@ -2247,6 +2309,7 @@ "Log_View_Limit": "ログ表示数", "Logged_out_of_other_clients_successfully": "他のクライアントを正常にログアウトさせました", "Login": "ログイン", + "Login_Logs": "ログインログ", "Login_with": "%s でログイン", "Logistics": "ロジスティクス", "Logout": "ログアウト", @@ -2259,6 +2322,7 @@ "mail-messages_description": "メールメッセージオプションを使用する権限", "Mail_Message_Invalid_emails": "ひとつ、またはいくつかの無効なメールアドレスが入力されました: %s", "Mail_Message_Missing_to": "ひとつ、またはさらにユーザーを選択するか、メールアドレスをカンマ区切りで入力してください。", + "Mail_Message_Missing_subject": "メールの件名を入力する必要があります。", "Mail_Message_No_messages_selected_select_all": "何もメッセージを選択しませんでした", "Mail_Messages": "メッセージをメール", "Mail_Messages_Instructions": "メールで送信したいメッセージをクリックして選択してください", @@ -2269,7 +2333,8 @@ "Mailer_body_tags": "[unsubscribe] を購読解除のリンクとして使わなければなりません
ユーザーのフルネームに [name], [fname], [lname] を使用できます。姓 または 名 にも対応しています。
メールアドレスには、 [email] を使用できます。", "Mailing": "郵送", "Make_Admin": "管理者に設定", - "Make_sure_you_have_a_copy_of_your_codes": "あなたのコードのコピーを持っていることを確認してください: __codes__あなたがオーセンティケーターアプリにアクセスできない場合は、これらのコードの1つを使ってログインすることができます。", + "Make_sure_you_have_a_copy_of_your_codes_1": "あなたのコードのコピーを持っていることを確認してください:", + "Make_sure_you_have_a_copy_of_your_codes_2": "あなたがオーセンティケーターアプリにアクセスできない場合は、これらのコードの1つを使ってログインすることができます。", "manage-apps": "Appsの管理", "manage-assets": "アセットの管理", "manage-assets_description": "アセットを管理する権限", @@ -2398,6 +2463,7 @@ "Message_HideType_subscription_role_removed": "「役割が定義されていません」メッセージを非表示", "Message_HideType_room_archived": "「ルームをアーカイブしました」メッセージを非表示", "Message_HideType_room_unarchived": "「ルームをアーカイブ解除しました」メッセージを非表示", + "Message_HideType_room_changed_privacy": "「ルームタイプを変更しました」メッセージを非表示", "Hide_System_Messages": "システムメッセージを非表示", "Message_Id": "メッセージID", "Message_Ignored": "このメッセージは無視されました", @@ -2536,6 +2602,7 @@ "No_messages_yet": "メッセージはまだありません", "No_pages_yet_Try_hitting_Reload_Pages_button": "ページはまだありません。 \"Reload Page\"ボタンを押してみてください。", "No_pinned_messages": "ピン留めされたメッセージはありません", + "No_previous_chat_found": "以前のチャットは見つかりませんでした", "No_results_found": "メッセージは、見つかりませんでした", "No_results_found_for": "次の検索結果はありません: ", "No_snippet_messages": "スニペットなし", @@ -2576,6 +2643,7 @@ "Number_of_federated_users": "フェデレーションユーザーの数", "Number_of_federated_servers": "フェデレーションサーバーの数", "Number_of_messages": "メッセージ数", + "RetentionPolicy_DoNotExcludeDiscussion": "ディスカッションメッセージを除外しない", "OAuth Apps": "OAuth アプリケーション", "OAuth_Application": "OAuth アプリケーション", "OAuth_Applications": "OAuth アプリケーション", @@ -2586,6 +2654,7 @@ "Office_Hours": "営業時間", "Office_hours_enabled": "営業時間を有効にする", "Office_hours_updated": "営業時間が更新されました", + "RetentionPolicy_ExcludePinned": "ピン留めされたメッセージを除外する", "Offline": "オフライン", "Offline_DM_Email": "__user__からダイレクトメッセージが届いています", "Offline_Email_Subject_Description": "下記のプレースホルダを用いることができます。
  • アプリ名: [Site_Name], URL: [Site_URL], ユーザー名: [User], ルーム名: [Room]
", @@ -2884,6 +2953,8 @@ "Request_comment_when_closing_conversation": "会話を閉じるときにコメントを要求する", "Request_comment_when_closing_conversation_description": "有効にした場合、エージェントは会話を閉じる前にコメントを設定する必要があります。", "Request_tag_before_closing_chat": "会話を閉じる前にタグを要求する", + "Requested_At": "要求された場所", + "Requested_By": "要求された:", "Require": "必要", "Require_all_tokens": "すべてのトークンを要求する", "Require_any_token": "任意のトークンを要求する", @@ -2902,7 +2973,6 @@ "Retail": "小売り", "Retention_setting_changed_successfully": "保持ポリシーの設定が正常に変更されました", "RetentionPolicy": "保持ポリシー", - "RetentionPolicy_DoNotExcludeDiscussion": "ディスカッションメッセージを除外しない", "RetentionPolicy_RoomWarning": "__time__経過した古いメッセージは自動的に整理されます", "RetentionPolicy_RoomWarning_Unpinned": "__time__経過したピン留めしていない古いメッセージは自動的に整理されます", "RetentionPolicy_RoomWarning_FilesOnly": "__time__経過した古いファイルは自動的に整理されます (メッセージはそのまま残ります)", @@ -2912,7 +2982,6 @@ "RetentionPolicy_AppliesToChannels": "チャンネルに適用する", "RetentionPolicy_AppliesToGroups": "プライベートグループに適用する", "RetentionPolicy_AppliesToDMs": "ダイレクトメッセージに適用する", - "RetentionPolicy_ExcludePinned": "ピン留めされたメッセージを除外する", "RetentionPolicy_FilesOnly": "ファイルのみを削除する", "RetentionPolicy_FilesOnly_Description": "ファイルのみが削除され、メッセージ自体はそのまま残ります。", "RetentionPolicy_MaxAge": "メッセージ保持日数", @@ -2978,6 +3047,10 @@ "Same_As_Token_Sent_Via": "「Token Sent Via」と同じ", "Same_Style_For_Mentions": "メンションと同じスタイル", "SAML": "SAML", + "SAML_AuthnContext_Template": "AuthnContextテンプレート", + "SAML_AuthnContext_Template_Description": "ここでは、AuthnRequestテンプレートの任意の変数を使用できます。追加のauthnコンテキストを追加するには、__AuthnContextClassRef__ タグを複製し、__\\_\\_authnContext\\_\\___ 変数を新しいコンテキストに置き換えます。", + "SAML_AuthnRequest_Template": "AuthnRequestテンプレート", + "SAML_AuthnRequest_Template_Description": "次の変数を使用できます。\n- **\\_\\_newId\\_\\_**:ランダムに生成されたID文字列\n- **\\_\\_instant\\_\\_**:現在のタイムスタンプ\n- **\\_\\_callbackUrl\\_\\_**:Rocket.ChatコールバックURL\n- **\\_\\_entryPoint\\_\\_**:__Custom Entry Point__ 設定の値\n- **\\_\\_issuer\\_\\_**:__Custom Issuer__ 設定の値\n- **\\_\\_identifierFormatTag\\_\\_**:有効な __Identifier Format__ が構成されている場合の __NameID Policy Template__ の内容\n- **\\_\\_identifierFormat\\_\\_**:__Identifier Format__ 設定の値\n- **\\_\\_authnContextTag\\_\\_**:有効な __Custom Authn Context__ が構成されている場合の __AuthnContext Template__ の内容\n- **\\_\\_authnContextComparison\\_\\_**:__Authn Context Comparison__ 設定の値\n- **\\_\\_authnContext\\_\\_**:__Custom Authn Context__ 設定の値", "SAML_Custom_Authn_Context": "カスタム認証コンテキスト", "SAML_Custom_Authn_Context_Comparison": "認証コンテキストの比較", "SAML_Custom_Authn_Context_description": "リクエストから authn コンテキストを除外するには、これを空のままにします。", @@ -3013,10 +3086,24 @@ "SAML_Custom_Public_Cert": "公開証明書の内容", "SAML_Default_User_Role": "デフォルトのユーザー役割", "SAML_Default_User_Role_Description": "複数の役割をコンマで区切って指定できます。", + "SAML_Identifier_Format": "識別子の形式", + "SAML_Identifier_Format_Description": "リクエストからNameIDポリシーを除外するには、これを空のままにします。", + "SAML_LogoutResponse_Template": "ログアウト応答テンプレート", + "SAML_LogoutRequest_Template": "ログアウトリクエストテンプレート", + "SAML_MetadataCertificate_Template": "メタデータ証明書テンプレート", + "SAML_Metadata_Template": "メタデータテンプレート", + "SAML_NameIdPolicy_Template": "NameIDポリシーテンプレート", + "SAML_NameIdPolicy_Template_Description": "ここでは、Authorize Request Templateの任意の変数を使用できます。", "SAML_Role_Attribute_Name": "ロール属性名", "SAML_Role_Attribute_Name_Description": "この属性がSAMLレスポンスで見つかった場合、その値は新しいユーザーのロール名として使用されます。", "SAML_Role_Attribute_Sync": "ユーザーロールの同期", "SAML_Role_Attribute_Sync_Description": "ログイン時にSAMLユーザーロールを同期します(ローカルユーザーロールを上書きします)。", + "SAML_Section_1_User_Interface": "ユーザーインターフェース", + "SAML_Section_2_Certificate": "証明書", + "SAML_Section_3_Behavior": "動作", + "SAML_Section_4_Roles": "役割", + "SAML_Section_5_Mapping": "マッピング", + "SAML_Section_6_Advanced": "高度な", "SAML_Allowed_Clock_Drift": "アイデンティティプロバイダーからのクロックドリフトを許可", "SAML_Allowed_Clock_Drift_Description": "アイデンティティプロバイダーのクロックは、システムクロックよりわずかに進んでいる場合があります。少量のクロックドリフトを許容できます。その値は、ミリ秒(ms)単位で指定する必要があります。指定された値は、応答が検証される現在の時刻に追加されます。", "Saturday": "土曜日", @@ -3031,7 +3118,7 @@ "Saved": "保存しました", "Saving": "保存しています", "Scan_QR_code": "Google Authenticator、Authy、Duoなどのオーセンティケーターアプリを使用して、QRコードをスキャンします。下に入力する必要がある6桁のコードが表示されます。", - "Scan_QR_code_alternative_s": "QRコードをスキャンできない場合は、代わりに手動でコードを入力することができます: __code__", + "Scan_QR_code_alternative_s": "QRコードをスキャンできない場合は、代わりに手動でコードを入力することができます:", "Scope": "範囲", "Screen_Lock": "画面ロック", "Screen_Share": "画面共有", @@ -3041,6 +3128,7 @@ "Search_by_file_name": "ファイル名で検索", "Search_by_username": "ユーザー名で検索", "Search_Channels": "チャンネルを検索", + "Search_Chat_History": "チャットの履歴を検索", "Search_current_provider_not_active": "現在の検索プロバイダーがアクティブではありません", "Search_Integrations": "検索統合", "Search_message_search_failed": "検索リクエストに失敗しました", @@ -3067,6 +3155,7 @@ "Selected_agents": "選択された担当者", "Selecting_users": "ユーザーを選択中", "send-many-messages": "大量のメッセージ送信", + "send-omnichannel-chat-transcript": "オムニチャネルの会話のトランスクリプトを送信する", "Send": "送信", "Send_a_message": "メッセージを送信", "Send_a_test_mail_to_my_user": "メールのテストをマイユーザーへ送信", @@ -3136,6 +3225,7 @@ "Show_Avatars": "アバターを表示する", "Show_counter": "カウンターを表示する", "Show_email_field": "メールフィールドを表示する", + "Show_Message_In_Main_Thread": "メインスレッドにスレッドメッセージを表示する", "Show_more": "さらに表示", "Show_name_field": "名前フィールドを表示", "show_offline_users": "オフラインユーザーを表示する", @@ -3441,9 +3531,11 @@ "totp-invalid": "コードまたはパスワードが無効です", "TOTP Invalid [totp-invalid]": "コードまたはパスワードが無効です", "Tourism": "観光", + "Transcript": "トランスクリプト", "Transcript_Enabled": "チャットが終了した後に彼らがトランスクリプトを好きになるかどうかを訪問者に尋ねる", "Transcript_message": "トランスクリプトについて質問するときに表示するメッセージ", "Transcript_of_your_livechat_conversation": "あなたのライブチャットの会話の成績。", + "Transcript_Request": "トランスクリプトを要求", "transfer-livechat-guest": "ライブチャットゲストを転送する", "Translate": "翻訳", "Translated": "翻訳された", @@ -3545,6 +3637,7 @@ "Uptime": "稼働時間", "URL": "URL", "URL_room_prefix": "URLルームプレフィックス", + "URL_room_suffix": "URLルームサフィックス", "Use_Server_configuration": "サーバー構成を使用する", "Use_Room_configuration": "サーバー構成を上書きし、ルーム構成を使用します", "Use_account_preference": "アカウント設定を使用する", @@ -3675,6 +3768,7 @@ "Verify_your_email": "あなたの電子メールを確認します", "Verify_your_email_for_the_code_we_sent": "送信したコードのメールを確認します", "Version": "バージョン", + "Version_version": "バージョン __version__", "Videos": "ビデオ", "Video Conference": "ビデオ会議", "Video_Chat_Window": "ビデオチャット", diff --git a/packages/rocketchat-i18n/i18n/ka-GE.i18n.json b/packages/rocketchat-i18n/i18n/ka-GE.i18n.json index 5f3ca8aae23c..d343ada0b122 100644 --- a/packages/rocketchat-i18n/i18n/ka-GE.i18n.json +++ b/packages/rocketchat-i18n/i18n/ka-GE.i18n.json @@ -305,7 +305,7 @@ "Analytics_Google": "Google ანალიტიკა", "Analytics_Google_id": "Tracking ID", "and": "და", - "And_more": "და __ სიგრძე__ მეტი", + "And_more": "და __length__ მეტი", "Animals_and_Nature": "ბუნება და ცხოველები", "Announcement": "განცხადებები", "API": "API", @@ -596,16 +596,16 @@ "Changing_email": "ელ.ფოსტის შეცვლა", "channel": "არხი", "Channel": "არხი", - "Channel_already_exist": "არხი `#% s` უკვე არსებობს", + "Channel_already_exist": "არხი `#%s` უკვე არსებობს", "Channel_already_exist_static": "არხი უკვე არსებობს", - "Channel_already_Unarchived": "არხი სახელით`#% s` უკვე ამოარქივებულია", - "Channel_Archived": "არხი სახელით `#% s`დაარქივებულია", - "Channel_created": "არხი `#% s` შეიქმნა", - "Channel_doesnt_exist": "არხი `#% s` არ არსებობს", + "Channel_already_Unarchived": "არხი სახელით`#%s` უკვე ამოარქივებულია", + "Channel_Archived": "არხი სახელით `#%s`დაარქივებულია", + "Channel_created": "არხი `#%s` შეიქმნა", + "Channel_doesnt_exist": "არხი `#%s` არ არსებობს", "Channel_name": "არხის სახელი", "Channel_Name_Placeholder": "გთხოვთ შეიყვანეთ არხის სახელი", "Channel_to_listen_on": "მოსასმენი არხი", - "Channel_Unarchived": "არხი სახელით `#% s` წარმატებით ამოარქივდა", + "Channel_Unarchived": "არხი სახელით `#%s` წარმატებით ამოარქივდა", "Channels": "არხები", "Channels_are_where_your_team_communicate": "არხი არის ის, სადაც თქვენი გუნდი დაუკავშირდება ერთმანეთს", "Channels_list": "ღია არხების სია", @@ -653,8 +653,8 @@ "Chatpal_one_search_result": "ნაპოვნია 1 შედეგი", "Chatpal_Rooms": "ოთახები", "Chatpal_run_search": "ძიება", - "Chatpal_search_page_of": "% s-ის გვერდი % s", - "Chatpal_search_results": "ნაპოვნია % s შედეგი", + "Chatpal_search_page_of": "%s-ის გვერდი %s", + "Chatpal_search_results": "ნაპოვნია %sშედეგი", "Chatpal_Search_Results": "ძიების შედეგი", "Chatpal_Suggestion_Enabled": "შემოთავაზებები ჩართულია", "Chatpal_TAC_read": "წავიკითხე წესები და პირობები", @@ -710,7 +710,6 @@ "Cloud_register_offline_helper": "სამუშაო ადგილების ხელით რეგისტრაცია შესაძლებელია, თუ ქსელზე წვდომა შეზღუდულია. დააკოპირეთ ქვემოთ მოყვანილი ტექსტი და გადადით ჩვენს Cloud Console- ში პროცესის დასრულების მიზნით.", "Cloud_register_success": "თქვენი სამუშაო ადგილი წარმატებით დარეგისტრირდა!", "Cloud_register_error": "მოხდა შეცდომა თქვენი მოთხოვნის დამუშავებისას. გთხოვთ სცადოთ მოგვიანებით.", - "Cloud_connect_support": "თუ თქვენ ჯერ კიდევ არ მიგიღიათ რეგისტრაციის ელექტრონული ფოსტა, დარწმუნდით, რომ თქვენი ელ.ფოსტა სწორად გაქვთ მითითებული. თუ მაინც გაქვთ პრობლემები, შეგიძლიათ დაუკავშირდეთ დახმარებას", "Cloud_console": "Cloud კონსოლი", "Cloud_Info": "Cloud ინფორმაცია", "Cloud_what_is_it": "რა არის ეს?", @@ -730,7 +729,7 @@ "Cloud_registration_required_description": "როგორც ჩანს, შექმნის დროს არ დაგირეგისტრირებიათ თქვენი სამუშაო ადგილი.", "Cloud_registration_required_link_text": "დააჭირეთ აქ, თქვენი სამუშაო ადგილის დასარეგისტრირებლად.", "Cloud_error_in_authenticating": "შეცდომა ავტორიზაციის დროს", - "Cloud_error_code": "კოდი: __შეცდომის კოდი__", + "Cloud_error_code": "კოდი: __errorCode__", "Cloud_status_page_description": "თუ კონკრეტულ Cloud სერვისს პრობლემები აქვს, შეგიძლიათ შეამოწმოთ ცნობილი თემები ჩვენს სტატუსის გვერდზე", "Cloud_Service_Agree_PrivacyTerms": "Cloud მომსახურება ვეთანხმები კონფიდენციალურობის წესებს", "Cloud_troubleshooting": "დიაგნოსტიკა", @@ -762,7 +761,7 @@ "Continuous_sound_notifications_for_new_livechat_room": "უწყვეტი ხმის შეტყობინებები ახალი მრავალარხიანი ოთახისთვის", "Conversation": "საუბარი", "Conversations": "საუბრები", - "Conversation_closed": "საუბარი დაიხურა:__კომენტარი__", + "Conversation_closed": "საუბარი დაიხურა: __comment__", "Conversation_closing_tags": "საუბრის დახურვის ტეგები", "Conversation_closing_tags_description": "დახურვისას ტეგების ავტომატურად გადაეცემა საუბრებს.", "Conversation_finished": "საუბარი დასრულდა", @@ -1039,8 +1038,8 @@ "Created_at": "შექმნილია -ზე", "Created_by": "შექმნილია -მიერ", "Created_as": "შექმნილია როგორც", - "Created_at_s_by_s": "შექმნილია % s ზე % s -ის მიერ", - "Created_at_s_by_s_triggered_by_s": "შექმნილია % s -ზე % s -ის მიერ ამოქმედებულია % s -ის მიერ", + "Created_at_s_by_s": "შექმნილია %s ზე %s-ის მიერ", + "Created_at_s_by_s_triggered_by_s": "შექმნილია %s-ზე %s-ის მიერ ამოქმედებულია %s-ის მიერ", "CRM_Integration": "CRM ინტეგრაცია", "CROWD_Allow_Custom_Username": "ნება დართეთ პერსონალურ სახელებს Rocket.Chat-ში", "CROWD_Reject_Unauthorized": "არავტორიზებულის უარყოფა", @@ -1065,7 +1064,7 @@ "Custom_Emoji_Info": "მორგებუოი სმაილის ინფორმაცია", "Custom_Emoji_Updated_Successfully": "მორგებული სმაილი განახლდა", "Custom_Fields": "მორგებული ველები", - "Custom_oauth_helper": "OAuth– ის პროვაიდერის შექმნისას, თქვენ უნდა აცნობოთ უკუკავშირის მისამართს. გამოიყენეთ
% s 
.", + "Custom_oauth_helper": "OAuth– ის პროვაიდერის შექმნისას, თქვენ უნდა აცნობოთ უკუკავშირის მისამართს. გამოიყენეთ
%s
.", "Custom_oauth_unique_name": "უნიკალური oauth სახელი", "Custom_Scripts": "პერსონალური სკრიპტები", "Custom_Script_Logged_In": "პირადი სკრიპტი ავტორიზებული მომხმარებლებისთვის", @@ -1207,7 +1206,7 @@ "Discussion_target_channel_description": "მონიშნეთ არხი რომელიც დაკავშირებულია თქვენთვის საინტერესოო საკითხთან", "Discussion_target_channel_prefix": "თქვენ ქმნით განხილვას -ში", "Discussion_target_channel": "ჯგუფის მშობელი არხი", - "discussion-created": "__შეტყობინება__", + "discussion-created": "__message__", "Discussion_description": "გეხმარებათ სიახლეებზე თვალის დევნებაში. განხილვის შექმნით თქვენ მიერ არჩეული არხის ქვე-არხი იქმნება და ორივე არის მილინკული", "Discussion_first_message_title": "თქვენი შეტყობინება", "Discussion_title": "ახალი განხილვის შექმნა", @@ -1215,7 +1214,7 @@ "Dont_ask_me_again_list": "აღარ მკითხო-ს სია", "Do_not_display_unread_counter": "არ მიჩვენო ამ არხის არც ერთი მთვლელი", "Do_you_want_to_accept": "გსურთ მიიღოთ?", - "Do_you_want_to_change_to_s_question": "გსურთ შეცვალოთ % s ?", + "Do_you_want_to_change_to_s_question": "გსურთ შეცვალოთ %s?", "Document_Domain": "დოკუმენტის დომენი", "Domain": "დომენი", "Domain_added": "დომენი დაემატა", @@ -1271,7 +1270,7 @@ "edit-room-retention-policy_description": "ოთახის შენარჩუნების წესების შეცვლის უფლება, ოთახში მესიჯების ავტომატურად წასაშლელად", "Edit_Custom_Field": "მორგებული ველების შეცვლა", "Edit_Department": "განუოფილების რედაქტირება", - "Edit_previous_message": "`% s` - წინა შეტყობინების რედაქტირება", + "Edit_previous_message": "`%s` - წინა შეტყობინების რედაქტირება", "Edit_Trigger": "შეცვალეთ ტრიგერი", "edited": "რედაქტირებულია", "Editing_room": "ოთახის რედაქტირება", @@ -1339,12 +1338,12 @@ "Enter_your_E2E_password": "შეიყვანეთ თქვენი E2E პაროლი", "Entertainment": "გართობა", "Error": "შეცდომა", - "error-action-not-allowed": "__მოქმედება__ არ არის დაშვებული", + "error-action-not-allowed": "__action__ არ არის დაშვებული", "error-agent-offline": "აგენტი გასულია", "error-application-not-found": "აპლიკაცია ვერ მოიძებნა", "error-archived-duplicate-name": "დაარქივებული არხი სახელით 'ოთახის სახელი' არსებობს", "error-avatar-invalid-url": "არასწორი ავატარის __ URL__", - "error-avatar-url-handling": "შეცდომა __მომხმარებლის სახელი__ -ის ავატარის დაყენების დროს URL (__url__) -დან", + "error-avatar-url-handling": "შეცდომა __username__ -ის ავატარის დაყენების დროს URL (__url__) -დან", "error-cant-invite-for-direct-room": "მომხმარებლების პირდაპირ ოთახში მოწვევა შეუძლებელია", "error-channels-setdefault-is-same": "თქვენ მიერ შერჩეული პარამეტრები ემთხვევა დეფაულტ პარამეტრებს", "error-channels-setdefault-missing-default-param": "საჭიროა დეფაულტ bodyParam", @@ -1354,20 +1353,20 @@ "error-delete-protected-role": "დაცული როლის წაშლა შეუძლებელია", "error-department-not-found": "განყოფილება ვერ მოიძებნა", "error-direct-message-file-upload-not-allowed": "ფაილების გაზიარება პირდაპირ შეტყობინებებში არ არის დაშვებული", - "error-duplicate-channel-name": "არხი სახელით __არხის სახელი__ არსებობს", + "error-duplicate-channel-name": "არხი სახელით __channel_name__ არსებობს", "error-edit-permissions-not-allowed": "ნებართვების ცვლილება არ არის დაშვებული", "error-email-domain-blacklisted": "ელ.ფოსტის დომენი შავ სიაშია", - "error-email-send-failed": "შეცდომა მეილის გაგზავნისას: __შეტყობინება__", + "error-email-send-failed": "შეცდომა მეილის გაგზავნისას: __message__", "error-essential-app-disabled": "შეცდომა: Rocket.Chat-ის აპლიკაცია რომელიც აუცილებელია ამ მოქმედებისთვის გამორთულია. დაუკავშირდით თქვენ ადმინისტრატორს", "error-password-same-as-current": "შეყვანილი პაროლი იგივეა, რაც მიმდინარე პაროლი", - "error-field-unavailable": "__ველი__ უკვე გამოყენებულია", + "error-field-unavailable": "__field__ უკვე გამოყენებულია", "error-file-too-large": "ფაილი ძალიან დიდია", "error-forwarding-chat-same-department": "შერჩეული განყოფილება და ოთახების ამჟამინდელი განყოფილება იგივეა", "error-importer-not-defined": "იმპორტიორი სწორად არ იყო განსაზღვრული, მას აკლია იმპორტის კლასი", "error-import-file-extract-error": "იმპორტის ფაილის ამოღება ვერ მოხერხდა.", "error-import-file-is-empty": "იმპორტირებული ფაილი, როგორც ჩანს, ცარიელია.", "error-import-file-missing": "დასაიმპორტებელი ფაილი ვერ მოიძებნა მითითებულ დირექტორიაში", - "error-input-is-not-a-valid-field": "არასწორი __ინფუთი__ __ველი__", + "error-input-is-not-a-valid-field": "არასწორი __input__ __field__", "error-invalid-actionlink": "არასწორი ბმული", "error-invalid-account": "არასწორი ანგარიში", "error-invalid-arguments": "არასწორი არგუმენტები", @@ -1380,7 +1379,7 @@ "error-invalid-date": "მოწოდებული თარიღი არასწორია", "error-invalid-description": "არასწორი აღწერა", "error-invalid-domain": "არასწორი დომენი", - "error-invalid-email": "არასწორი ელ.ფოსტა __ ფოსტა__", + "error-invalid-email": "არასწორი ელ.ფოსტა __email__", "error-invalid-email-address": "არასწორი ელ.ფოსტის მისამართი", "error-invalid-file-height": "ფაილის არასწორი სიმაღლე", "error-invalid-file-type": "არასწორი ფაილის ტიპი", @@ -1395,8 +1394,8 @@ "error-invalid-redirectUri": "არასწორი გადამისამართება", "error-invalid-role": "არასწორი როლი", "error-invalid-room": "არასწორი ოთახი", - "error-invalid-room-name": " __ ოთახის სახელი__ არ არის სწორი სახელი", - "error-invalid-room-type": " __ ტიპი__ არ არის სწორი ოთახის ტიპი", + "error-invalid-room-name": "__room_name__ არ არის სწორი სახელი", + "error-invalid-room-type": "__type__ არ არის სწორი ოთახის ტიპი", "error-invalid-settings": "მოწოდებული პარამეტრები არასწორია", "error-invalid-subscription": "არასწორი გამოწერა", "error-invalid-token": "არასწორი ნიშანი(token)", @@ -1432,19 +1431,19 @@ "error-selected-agent-room-agent-are-same": "არჩეული აგენტი და ოთახის აგენტი იგივეა", "Error_Site_URL": "ვებგვერდის მისამართი არასწორია", "Error_Site_URL_description": "გთხოვთ, განაახლოთ თქვენი \"Site_Url\" პარამეტრები, იხილეთ მეტი ინფორმაცია აქ ", - "error-the-field-is-required": "ველი __ველი__ აუცილებელია.", + "error-the-field-is-required": "ველი __field__ აუცილებელია.", "error-this-is-not-a-livechat-room": "ეს არ არის მრავალარხიანი ოთახი", "error-personal-access-tokens-are-current-disabled": "პირადი წვდომის ნიშნები(token) ამჟამად გამორთულია", "error-token-already-exists": "ამ სახელით ნიშანი(token) უკვე არსებობს", "error-token-does-not-exists": "ნიშანი (token) არ არსებობს", - "error-too-many-requests": "შეცდომა, ძალიან ბევრი მოთხოვნაა. გთხოვთ შეანელეთ. თქვენ უნდა დაელოდოთ __ წამი__ წამის განმავლობაში. შემდეგ შეგიძლიათ ხელახლა სცადოთ", + "error-too-many-requests": "შეცდომა, ძალიან ბევრი მოთხოვნაა. გთხოვთ შეანელეთ. თქვენ უნდა დაელოდოთ __seconds__ წამის განმავლობაში. შემდეგ შეგიძლიათ ხელახლა სცადოთ", "error-user-has-no-roles": "მომხმარებელს არ აქვს როლები", "error-user-is-not-activated": "მომხმარებელი არ არის გააქტიურებული", "error-user-is-not-agent": "მომხმარებელი არ არის მრავალარხიანი აგენტი", "error-user-is-offline": "მომხმარებელი არ არის ხაზზე", "error-user-limit-exceeded": "მოწვეული მომხმარებლების რაოდენობა აჭარბებს ლიმიტს", "error-user-not-in-room": "მომხმარებელი არ არის ამ ოთახში", - "error-logged-user-not-in-room": "თქვენ არ ხართ `% s` ოთახში ", + "error-logged-user-not-in-room": "თქვენ არ ხართ `%s` ოთახში ", "error-user-registration-disabled": "მომხმარებელთა რეგისტრაცია გამორთულია", "error-user-registration-secret": "მომხმარებლის რეგისტრაცია დასაშვებია მხოლოდ საიდუმლო URL- ის საშუალებით", "error-validating-department-chat-closing-tags": "მინიმუმ ერთი დახურვის ტეგი არის საჭირო, როდესაც განყოფილება მოითხოვს ტეგებს საუბრების დასრულებას.", @@ -1470,7 +1469,7 @@ "every_day": "დღეში ერთხელ", "Everyone_can_access_this_channel": "ყველას შეუძლია ამ არხზე წვდომა", "Exact": "ზუსტი", - "Example_s": "მაგალითი: % s ", + "Example_s": "მაგალითი: %s", "Example_payload": "მაგალითი", "Exclude_Botnames": "გამორიცხეთ ბოტები", "Exclude_Botnames_Description": "არ გაავრცელოთ შეტყობინებები ბოტებისგან, რომელთა სახელი ემთხვევააბამება ზემოთ მოცემულ რეგულარულ გამოთქმას. თუ ცარიელი დარჩა, ბოტების ყველა მესიჯი გავრცელდება.", @@ -1530,7 +1529,7 @@ "File": "ფაილი", "File_Downloads_Started": "ფაილების ჩამოტვირთვა დაიწყო", "Files": "ფაილები", - "File_exceeds_allowed_size_of_bytes": "ფაილი აღემატება ნებადართულ ზომას __ ზომ__.", + "File_exceeds_allowed_size_of_bytes": "ფაილი აღემატება ნებადართულ ზომას __size__.", "File_name_Placeholder": "ფაილების ძებნა ...", "File_removed_by_automatic_prune": "ფაილი ამოღებულია ავტომატური კორექტორის მიერ", "File_not_allowed_direct_messages": "ფაილების გაზიარება პირდაპირ შეტყობინებებში არ არის დაშვებული", @@ -1601,9 +1600,9 @@ "FileUpload_Webdav_Proxy_Uploads_Description": "პროქსი ავატარის ფაილების გადაცემა თქვენს სერვერზე, ობიექტის URL– ზე პირდაპირი წვდომის ნაცვლად", "files": "ფაილები", "Files_only": "მოაცილეთ ფხოლოდ თანდართული ფაილები, შეტყობინებები დათოვეთ", - "FileSize_KB": "__ფაილის ზომა__ კილობაიტი", - "FileSize_MB": "__ფაილის ზომა__ მეგაბაიტი", - "FileSize_Bytes": "__ფაილის ზომა__ ბაიტი", + "FileSize_KB": "__fileSize__ კილობაიტი", + "FileSize_MB": "__fileSize__ მეგაბაიტი", + "FileSize_Bytes": "__fileSize__ ბაიტი", "Filter": "ფილტრი", "Financial_Services": "ფინანსური მომსახურება", "First_Channel_After_Login": "პირველი არხი ავტორიზაციის შემდეგ", @@ -1624,7 +1623,7 @@ "Force_SSL_Description": "ფრთხილად! იძულებითი SSL არასოდეს არ უნდა იქნას გამოყენებული რევერს პროქსისთან. თუ გაქვთ რევერს პროქსი მასში უნდა გააკეთოთ გადამისამართება.ეს ვარიანტი არსებობს Heroku-ს მსგავსი შემთხვევებისთვის, რომელთაც არ გააჩნიათ გადამისამართება რევერს პროქსისთვის.", "Force_visitor_to_accept_data_processing_consent": "მომხმარებლის იძულება მონაცემთა დამუშავების თანხმობაზე", "Force_visitor_to_accept_data_processing_consent_description": "სტუმრებს არ აქვთ უფლება დაიწყონ ჩატი თანხმობის გარეშე.", - "Invalid_Export_File": "ატვირთული ფაილი არ არის ვარგისი% s საექსპორტო ფაილი.", + "Invalid_Export_File": "ატვირთული ფაილი არ არის ვარგისი%sსაექსპორტო ფაილი.", "Force_visitor_to_accept_data_processing_consent_enabled_alert": "შეთანხმება მონაცემთა დამუშავების შესახებ უნდა ეფუძნებოდეს დამუშავების მიზეზის გაცნობიერებას. ამიტომ თქვენ უნდა შეავსოთ კონფიგურაცია, რომელსაც ნახავს მომხმარებელი და გაიგებს მიზეზს თუ რატომ არის აუცილებელი პერსონალური ინფორმაციის შეგროვება და დამუშავება", "Forgot_password": "დაგავიწყდათ პაროლი?", "Forgot_Password_Description": "თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ველები:
  • [Forgot_Password_Url] პაროლის აღსადგენი ბმული.
  • [name], [fname], [lname] მომხმარებლის სრული სახელის, სახელის და გვარისთვის.
  • [email] ელ.ფოსტისთვის
  • [Site_Name] და [Site_URL] აპლიკაციის სახელი და ბმულისთვის.
", @@ -1701,12 +1700,12 @@ "Hide_Avatars_Sidebar": "დამალეთ ავატარები გვერდით ბარში", "Hide_counter": "მთვლელის დამალვა", "Hide_flextab": "დამალეთ გვერდითა ბარი კლიკით", - "Hide_Group_Warning": "დარწმუნებული ხართ, რომ გსურთ \"% s\" ჯგუფის დამალვა?", - "Hide_Livechat_Warning": "დარწმუნებული ხართ, რომ გსურთ \"% s\"-თან ჩატის დამალვა?", - "Hide_Private_Warning": "დარწმუნებული ხართ, რომ გსურთ \"% s\"-თან დისკუსიის დამალვა?", + "Hide_Group_Warning": "დარწმუნებული ხართ, რომ გსურთ \"%s\" ჯგუფის დამალვა?", + "Hide_Livechat_Warning": "დარწმუნებული ხართ, რომ გსურთ \"%s\"-თან ჩატის დამალვა?", + "Hide_Private_Warning": "დარწმუნებული ხართ, რომ გსურთ \"%s\"-თან დისკუსიის დამალვა?", "Hide_roles": "როლების დამალვა", "Hide_room": "ოთახის დამალვა", - "Hide_Room_Warning": "დარწმუნებული ხართ, რომ გსურთ \"% s\" ოთახის დამალვა?", + "Hide_Room_Warning": "დარწმუნებული ხართ, რომ გსურთ \"%s\" ოთახის დამალვა?", "Hide_Unread_Room_Status": "ოთახის წაუკითხავი სტატუსის დამალვა", "Hide_usernames": "მომხმარებლის სახელების დამალვა", "Highlights": "ჰაილაითები", @@ -1727,7 +1726,7 @@ "I_saved_my_password_close_this_message": "ჩემი პაროლი შევინახე, დახურეთ ეს მესიჯი", "Idle_Time_Limit": "უქმი დროის ლიმიტი", "Idle_Time_Limit_Description": "დროის ხანგრძლივობა რის შემდეგაც სტატუსი შეიცვლება \"გასულია\"-დ. მნიშვნელობა შეიყვანეთ წამებში", - "if_they_are_from": "(თუ ისინი% s- დან არიან)", + "if_they_are_from": "(თუ ისინი%s- დან არიან)", "If_this_email_is_registered": "თუ ეს ელ.ფოსტა დარეგისტრირებულია, ჩვენ გამოგიგზავნით ინსტრუქციას, თუ როგორ შეგიძლიათ თქვენი პაროლის გადატვირთვა. თუ მალევე არ მიიღებთ მეილს გთხოვთ სცადოთ ხელახლა.", "If_you_are_sure_type_in_your_password": "თუ დარწმუნებული ხართ ჩაწერეთ თქვენი პაროლი:", "Members_List": "წევრთა სია", @@ -1764,7 +1763,6 @@ "Importer_CSV_Information": "CSV იმპორტიორი მოითხოვს სპეციფიკურ ფორმატს, გთხოვთ წაიკითხოთ დოკუმენტაცია, თუ როგორ უნდა ჩამოაყალიბოთ თქვენი zip ფაილი:", "Importer_done": "იმპორტი დასრულებულია!", "Importer_finishing": "იმპორტი სრულდება", - "Importer_From_Description": "მონაცემებს აიმპორტებს ___-დან Rocket.Chat-ში", "Importer_HipChatEnterprise_BetaWarning": "გთხოვთ გაითვალისწინოთ, რომ ეს იმპორტი კვლავ შემუშავების პროცესშია\n გთხოვთ, აცნობეთ შეცდომების შესახებ GitHub– ში:", "Importer_HipChatEnterprise_Information": "ატვირთული ფაილი უნდა იყოს გაშიფრული tar.gz, დამატებითი ინფორმაციისთვის წაიკითხეთ დოკუმენტაცია:", "Importer_import_cancelled": "იმპორტი გაუქმდა.", @@ -1889,13 +1887,13 @@ "Invalid_username": "შეყვანილი მომხმარებლის სახელი არასწორია", "Invalid_Import_File_Type": "დასაიმპორტებელი ფაილის ტიპი არასწორია", "Invalid_name": "სახელი არ უნდა იყოს ცარიელი", - "Invalid_notification_setting_s": "შეტყობინებების არასწორი პარამეტრი:% s", + "Invalid_notification_setting_s": "შეტყობინებების არასწორი პარამეტრი: %s", "Invalid_or_expired_invite_token": "არასწორი ან ვადაგასული მოწვევის ტოკენი", "Invalid_pass": "პაროლი არ უნდა იყოს ცარიელი", "Invalid_reason": "შეერთების მიზეზი არ უნდა იყოს ცარიელი", - "Invalid_room_name": "% s არ არის სწორი ოთახის სახელი", + "Invalid_room_name": "%s არ არის სწორი ოთახის სახელი", "Invalid_secret_URL_message": "მოწოდებული URL არასწორია.", - "Invalid_setting_s": "არასწორი პარამეტრი:% s", + "Invalid_setting_s": "არასწორი პარამეტრი: %s", "Invalid_two_factor_code": "არასწორია ორი ფაქტორის კოდი", "invisible": "უხილავი", "Invisible": "უხილავი", @@ -2120,11 +2118,11 @@ "leave-p": "დატოვე პირადი ჯგუფები", "Leave": "დატოვე", "Leave_a_comment": "დატოვე კომენტარი", - "Leave_Group_Warning": "დარწმუნებული ხართ, რომ გსურთ დატოვოთ ჯგუფი \"% s\"?", - "Leave_Livechat_Warning": "დარწმუნებული ხართ, რომ გსურთ Omnichannel- ის დატოვება \"% s\" - ით?", + "Leave_Group_Warning": "დარწმუნებული ხართ, რომ გსურთ დატოვოთ ჯგუფი \"%s\"?", + "Leave_Livechat_Warning": "დარწმუნებული ხართ, რომ გსურთ Omnichannel- ის დატოვება \"%s\" - ით?", "Leave_Private_Warning": "დარწმუნებული ხართ, რომ გსურთ დატოვოთ განხილვა \"%s\"-ით?", "Leave_room": "ოთახის დატოვება", - "Leave_Room_Warning": "დარწმუნებული ხართ, რომ გსურთ დატოვოთ ოთახი \"% s\"?", + "Leave_Room_Warning": "დარწმუნებული ხართ, რომ გსურთ დატოვოთ ოთახი \"%s\"?", "Leave_the_current_channel": "დატოვეთ მიმდინარე არხი", "Lets_get_you_new_one": "მიიღეთ ახალი!", "line": "ხაზი", @@ -2161,11 +2159,11 @@ "Livechat_title": "Livechat სათაური", "Livechat_title_color": "Livechat სათაური ფონის ფერი", "Livechat_transcript_sent": "Omnichannel– ის ტრანსკრიფცია გაგზავნილია", - "Livechat_transfer_to_agent": "__დან__ ცატი გადაიგზავნა __თან__", - "Livechat_transfer_to_agent_with_a_comment": "__დან__ ცატი გადაიგზავნა __თან__ კომენტარით: __კომენტარი__", - "Livechat_transfer_to_department": "__დან__ ჩატი გადაეგზავნა დეპარტამენტს __თან__", - "Livechat_transfer_to_department_with_a_comment": "__დან__ ჩატი გადაიგზავნა __თან__ კომენტარით: __კომენტარი__", - "Livechat_transfer_return_to_the_queue": "__დან__ ჩატი დაბრუნდა რიგში", + "Livechat_transfer_to_agent": "__from__ ცატი გადაიგზავნა __to__", + "Livechat_transfer_to_agent_with_a_comment": "__from__ ცატი გადაიგზავნა __to__ კომენტარით: __comment__", + "Livechat_transfer_to_department": "__from__ ჩატი გადაეგზავნა დეპარტამენტს __to__", + "Livechat_transfer_to_department_with_a_comment": "__from__ ჩატი გადაიგზავნა __to__ კომენტარით: __comment__", + "Livechat_transfer_return_to_the_queue": "__from__ ჩატი დაბრუნდა რიგში", "Livechat_Triggers": "Livechat ტრიგერები", "Livechat_Users": "Omnichannel მომხმარებლები", "LiveStream & Broadcasting": "LiveStream და მაუწყებლობა", @@ -2200,7 +2198,7 @@ "Log_View_Limit": "ლოგის ხედვის ზღვარი", "Logged_out_of_other_clients_successfully": "სხვა კლიენტებთან წარმატებით გამოვიდა", "Login": "შესვლა", - "Login_with": "შესვლა% s- ით", + "Login_with": "შესვლა%s- ით", "Logistics": "ლოგისტიკა", "Logout": "გამოსვლა", "Logout_Others": "გამოსვლა სხვა შესული ადგილებიდან", @@ -2210,7 +2208,7 @@ "Logs": "ლოგები", "mail-messages": "ფოსტის შეტყობინებები", "mail-messages_description": "საფოსტო გზავნილების ვარიანტის გამოყენების ნებართვა", - "Mail_Message_Invalid_emails": "თქვენ წარმოადგინეთ ერთი ან მეტი არასწორი ელ.ფოსტა:% s", + "Mail_Message_Invalid_emails": "თქვენ წარმოადგინეთ ერთი ან მეტი არასწორი ელ.ფოსტა: %s", "Mail_Message_Missing_to": "თქვენ უნდა აირჩიოთ ერთი ან მეტი მომხმარებელი ან წარმოადგინოთ ერთი ან მეტი ელექტრონული ფოსტის მისამართი, ერთმანეთისაგან ძიმით გამოყოფილი.", "Mail_Message_No_messages_selected_select_all": "თქვენ არ აგირჩევიათ შეტყობინებები", "Mail_Messages": "ფოსტის შეტყობინებები", @@ -2222,7 +2220,8 @@ "Mailer_body_tags": "თქვენ უნდა გამოიყენოთ [გაუქმება] გამოწერის ბმულზე. [Html1] შეგიძლიათ გამოიყენოთ [სახელი], [სახელი], [გვარი] მომხმარებლის სახელი, გვარი ან გვარი, შესაბამისად. [Html2 თქვენ შეგიძლიათ გამოიყენოთ [ელ.ფოსტა] მომხმარებლის ელ.ფოსტისთვის.", "Mailing": "ფოსტა", "Make_Admin": "ადმინის შექმნა", - "Make_sure_you_have_a_copy_of_your_codes": "დარწმუნდით, რომ თქვენ გაქვთ თქვენი კოდების ასლი: __კოდები__ თუ დაკარგავთ თქვენს ავტორიზატორის აპს,შესასვლელად შეგიძლიათ გამოიყენოთ ამ კოდებიდან ერთი-ერთი.", + "Make_sure_you_have_a_copy_of_your_codes_1": "დარწმუნდით, რომ თქვენ გაქვთ თქვენი კოდების ასლი:", + "Make_sure_you_have_a_copy_of_your_codes_2": "თუ დაკარგავთ თქვენს ავტორიზატორის აპს,შესასვლელად შეგიძლიათ გამოიყენოთ ამ კოდებიდან ერთი-ერთი.", "manage-apps": "პროგრამების მართვა", "manage-assets": "აქტივების მართვა", "manage-assets_description": "სერვერის აქტივების მართვის ნებართვა", @@ -2316,8 +2315,8 @@ "Message_BadWordsFilterList": "დაამატეთ უხამსი სიტყვები შავ სიაში", "Message_BadWordsFilterListDescription": "დაამატეთ მძიმით გამოყოფილი უხამსი სიტყვების სია ფილტრს", "MessageBox_view_mode": "შეტყობინებების ყუთის ნახვის რეჟიმი", - "message_counter": "__მთვლელი__ შეტყობინება", - "message_counter_plural": "__მთვლელი__ შეტყობინებები", + "message_counter": "__counter__ შეტყობინება", + "message_counter_plural": "__counter__ შეტყობინებები", "Message_DateFormat": "თარიღის ფორმატი", "Message_DateFormat_Description": "აგრეთვე იხილეთ:
Moment.js ", "Message_deleting_blocked": "ეს შეტყობინება აღარ შეიძლება წაიშალოს", @@ -2395,7 +2394,7 @@ "meteor_status_waiting": "სერვერთან კავშირის მოლოდინი", "meteor_status_offline": "ოფლაინ რეჟიმი", "meteor_status_reconnect_in": "კიდევ სცადე 1 წამის შემდეგ...", - "meteor_status_reconnect_in_plural": "კიდვ სცადე __რაოდენობა__ წამში...", + "meteor_status_reconnect_in_plural": "კიდვ სცადე __count__ წამში...", "meteor_status_try_now_waiting": "სცადე ახლა", "meteor_status_try_now_offline": "ისევ დაკავშირება", "Min_length_is": "მინიმალური სიგრძე არის %s", @@ -2416,8 +2415,8 @@ "More_direct_messages": "მეტი პირდაპირი შეტყობინებები", "More_groups": "მეტი პირადი ჯგუფები", "More_unreads": "მეტი წაუკითხავები", - "Move_beginning_message": "`% s` - გადადით წერილის დასაწყისში", - "Move_end_message": "`% s` - გადადით წერილის ბოლოში", + "Move_beginning_message": "`%s` - გადადით წერილის დასაწყისში", + "Move_end_message": "`%s` - გადადით წერილის ბოლოში", "multi": "მრავალი", "multi_line": "მრავალ ხაზი", "mute-user": "მომხმარებლის უხმო რეჟიმში გადაყვანა", @@ -2443,14 +2442,14 @@ "New_users": "ახალი მომხმარებლები", "New_Application": "ახალი აპლიკაცია", "New_chat_in_queue": "ახალი ჩატი რიგში", - "New_chat_transfer": "ახალი ჩატის ტრანსფერი __ტრანსფერი__", + "New_chat_transfer": "ახალი ჩატის ტრანსფერი __transfer__", "New_Custom_Field": "ახალი პერსონალური ველი", "New_Department": "ახალი განყოილება", "New_discussion": "ახალი განხილვა", "New_discussion_name": "შინაარსობრივი სახელი განხილვის ოთახისთვის", "New_discussion_first_message": "ჩვეულებრივ განხილვა იწყება კითხვით, მაგ: \"როგორ ავტვირთო სურათი?\"", "New_integration": "ახალი ინტეგრაცია", - "New_line_message_compose_input": "`% s` - ახალი ხაზი შეტყობინების შექმნის შესასვლელზე", + "New_line_message_compose_input": "`%s` - ახალი ხაზი შეტყობინების შექმნის შესასვლელზე", "New_Livechat_offline_message_has_been_sent": "ახალი Livechat ოფლაინ შეტყობინება გაიგზავნა", "New_logs": "ახალი ლოგები", "New_Message_Notification": "ახალი მესიჯის შეტყობინება", @@ -2463,14 +2462,14 @@ "New_role": "ახალი როლი", "New_Room_Notification": "ახალი ოთახის შეტყობინება", "New_Trigger": "ახალი ტრიგერი", - "New_version_available_(s)": "ახალი ვერსია ხელმისაწვდომია (% s)", + "New_version_available_(s)": "ახალი ვერსია ხელმისაწვდომია (%s)", "New_videocall_request": "ახალი ვიდეო ზარის მოთხოვნა", - "New_visitor_navigation": "ახალი ნავიგაცია: __ისტორია__", + "New_visitor_navigation": "ახალი ნავიგაცია: __history__", "Newer_than": "უფრო ახალი ვიდრე", "Newer_than_may_not_exceed_Older_than": "\"უფრო ახალი ვიდრე\" შეიძლება არ აჭარბებდეს \"უფრო ძველი ვიდრე\" -ს", "No_Limit": "ულიმიტო", "No_available_agents_to_transfer": "არ არის ხელმისაწვდომი აგენტები გადასაცემად", - "No_channel_with_name_%s_was_found": "არცერთი არხი არ ყოფილა სახელწოდებით \"% s\" !", + "No_channel_with_name_%s_was_found": "არცერთი არხი არ ყოფილა სახელწოდებით \"%s\" !", "No_channels_yet": "თქვენ ჯერ არ ხართ არც ერთი არხის წევრი", "No_direct_messages_yet": "პირდაპირი შეტყობინებები არ არის.", "No_emojis_found": "emoji ვერ მოიძებნა", @@ -2487,10 +2486,10 @@ "No_results_found": "შედეგები არ მოიძებნა", "No_results_found_for": "შედეგი არ მოიძებნა:", "No_starred_messages": "ვარსკვლავით მონიშნული შეტყობინებები არ არის", - "No_such_command": "ასეთი ბრძანება არ არის: `/ __ ბრძანება__`", + "No_such_command": "ასეთი ბრძანება არ არის: `/__command__`", "No_discussions_yet": "ჯერჯერობით განხილვები არ არის", "No_Threads": "თრედები ვერ მოიძებნა", - "No_user_with_username_%s_was_found": "მომხმარებლის სახელით \"% s\" ვერ მოიძებნა!", + "No_user_with_username_%s_was_found": "მომხმარებლის სახელით \"%s\" ვერ მოიძებნა!", "No_data_found": "მონაცემი ვერ მოიძებნა", "Nobody_available": "არავინ არ არის ხელმისაწვდომი", "Node_version": "Node ვერსია", @@ -2523,6 +2522,7 @@ "Number_of_federated_users": "ფედერალური მომხმარებლების რაოდენობა", "Number_of_federated_servers": "ფედერალური სერვერების რაოდენობა", "Number_of_messages": "შეტყობინებების რაოდენობა", + "RetentionPolicy_DoNotExcludeDiscussion": "ნუ გამორიცხავთ განხილვის შეტყობინებებს", "OAuth Apps": "OAuth პროგრამები", "OAuth_Application": "OAuth აპლიკაცია", "OAuth_Applications": "OAuth აპლიკაციები", @@ -2533,6 +2533,7 @@ "Office_Hours": "სამუშაო საათები", "Office_hours_enabled": "სამუშაო საათები ჩართულია", "Office_hours_updated": "სამუშაო საათები განახლებულია", + "RetentionPolicy_ExcludePinned": "მიმაგრებული შეტყობინებების გამორიცხვა", "Offline": "ოფლაინ რეჟიმი", "Offline_Email_Subject_Description": "თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ველები:
  • [საიტის სახელი], [საიტის ლინკი], [მომხმარებელი] & [ოთახი] განაცხადის სახელის, ლინკი, მომხმარებლის და ოთახის სახელის შესაბამისად.
", "Offline_form": "ოფლაინ ფორმა", @@ -2562,7 +2563,7 @@ "Oops!": "უპს", "Oops_page_not_found": "უპს, გვერდი ვერ მოიძებნა", "Open": "გახსნა", - "Open_channel_user_search": "`% s` - გახსენით არხი / მომხმარებლის ძებნა", + "Open_channel_user_search": "`%s` - გახსენით არხი / მომხმარებლის ძებნა", "Open_Livechats": "ჩეთები მიმდინარეობს", "Open_your_authentication_app_and_enter_the_code": "გახსენით თქვენი ავთენტიფიკაციის პროგრამა და შეიყვანეთ კოდი. თქვენ ასევე შეგიძლიათ გამოიყენოთ ერთი სარეზერვო კოდი.", "Opened": "გაიხსნა", @@ -2782,8 +2783,8 @@ "Removed_User": "მომხმარებელი მოცილებულია", "Reply": "პასუხი", "Replay": "გამეორება", - "reply_counter": "__მთვლელი__ პასუხი", - "reply_counter_plural": "__მთვლელი__ პასუხობს", + "reply_counter": "__counter__ პასუხი", + "reply_counter_plural": "__counter__ პასუხობს", "Replies": "პასუხობს", "Reply_in_thread": "პასუხი თრედში", "Reply_in_direct_message": "პასუხი პირდაპირ შეტყობინებებში", @@ -2810,16 +2811,14 @@ "Retail": "საცალო", "Retention_setting_changed_successfully": "შენახვის წესები წარმატებით შეიცვალა", "RetentionPolicy": "შენახვის წესები", - "RetentionPolicy_DoNotExcludeDiscussion": "ნუ გამორიცხავთ განხილვის შეტყობინებებს", - "RetentionPolicy_RoomWarning": "__დრო__– ზე ძველი შეტყობინებები ავტომატურად აქ-შეინახება", - "RetentionPolicy_RoomWarning_Unpinned": "__დრო__– ზე ძველი განპინული შეტყობინებები ავტომატურად შეინახება აქ", - "RetentionPolicy_RoomWarning_FilesOnly": "__დრო__– ზე ძველი ფაილები ავტომატურად აქ ინახება(შეტყობინებები არ დაზიანდება)", - "RetentionPolicy_RoomWarning_UnpinnedFilesOnly": "__დრო__– ზე ძველი განპინული ფაილები ავტომატურად აქ ინახება(შეტყობინებები არ დაზიანდება)", + "RetentionPolicy_RoomWarning": "__time__– ზე ძველი შეტყობინებები ავტომატურად აქ-შეინახება", + "RetentionPolicy_RoomWarning_Unpinned": "__time__– ზე ძველი განპინული შეტყობინებები ავტომატურად შეინახება აქ", + "RetentionPolicy_RoomWarning_FilesOnly": "__time__– ზე ძველი ფაილები ავტომატურად აქ ინახება(შეტყობინებები არ დაზიანდება)", + "RetentionPolicy_RoomWarning_UnpinnedFilesOnly": "__time__– ზე ძველი განპინული ფაილები ავტომატურად აქ ინახება(შეტყობინებები არ დაზიანდება)", "RetentionPolicy_Enabled": "ჩართული", "RetentionPolicy_AppliesToChannels": "ვრცელდება არხებზე", "RetentionPolicy_AppliesToGroups": "ვრცელდება კერძო ჯგუფებზე", "RetentionPolicy_AppliesToDMs": "ვრცელდება პირდაპირ შეტყობინებებზე", - "RetentionPolicy_ExcludePinned": "მიმაგრებული შეტყობინებების გამორიცხვა", "RetentionPolicy_FilesOnly": "მხოლოდ ფაილების წაშლა", "RetentionPolicy_FilesOnly_Description": "წაიშლება მხოლოდ ფაილები,შეტყობინებები დარჩება ადგილზე", "RetentionPolicy_MaxAge": "შეტყობინების მაქსიმალური ასაკი", @@ -2828,7 +2827,7 @@ "RetentionPolicy_MaxAge_DMs": "პირდაპირ შეტყობინებებში შეტყობინების მაქსიმალური ასაკი", "RetentionPolicy_Precision": "ტაიმერის სიზუსტე", "RetentionPolicyRoom_ExcludePinned": "მიმაგრებული შეტყობინებების გამორიცხვა", - "RetentionPolicyRoom_MaxAge": "შეტყობინების მაქსიმალური ასაკი დღეებში(დეფაულტი:__მაქსიმალური__)", + "RetentionPolicyRoom_MaxAge": "შეტყობინების მაქსიმალური ასაკი დღეებში(დეფაულტი:___max__)", "RetentionPolicyRoom_OverrideGlobal": "გადახედეთ გლობალური შენახვის წესებს", "RetentionPolicyRoom_ReadTheDocs": "ფრთხილად! ამ პარამეტრების შეცვლისას იყავით ძალიან ფრთხილად. არასწორმა მოქმედებამ შეიძლება შეტყობინებების ისტორიის სრული განადგურება გამოიწვიოს.აქ რაიმის შეცვლამდე გაეცანით დოკუმენტაციას", "Retry_Count": "ხელახლა დათვლა", @@ -2844,10 +2843,10 @@ "Room_archivation_state_false": "აქტიური", "Room_archivation_state_true": "დაარქივებულია", "Room_archived": "ოთახი დაარქივებულია", - "room_changed_announcement": "ოთახის განცხადება შეიცვალა __ოთახის განცხადება__-ით,__მომხმარებელი__-ის მიერ", - "room_changed_description": "ოთახის აღწერა შეიცვალა: __ ოთახის აღწერა__ __ მომხმარებელი__-ის მიერ ", - "room_changed_privacy": "ოთახის ტიპი შეიცვალა: __ოთახის ტიპი__-ზე , __მომხმარებელი__-ის მიერ", - "room_changed_topic": "ოთახის თემა შეიცვალა: __ ოთახის თემა __-ით __ მომხმარებელი __-ის მიერ ", + "room_changed_announcement": "ოთახის განცხადება შეიცვალა __room_announcement__,__username__-ის მიერ", + "room_changed_description": "ოთახის აღწერა შეიცვალა: __room_description__ __ მომხმარებელი__-ის მიერ ", + "room_changed_privacy": "ოთახის ტიპი შეიცვალა: __room_type__, __username__-ის მიერ", + "room_changed_topic": "ოთახის თემა შეიცვალა: __room_topic__ __user_by__", "Room_default_change_to_private_will_be_default_no_more": "ეს არის დეფაულტ არხი და პირად ჯგუფად გადაკეთების შემთხვევაში აღარ იქნება დეფაულტ არხი.გსურთ გაგრძელება?", "Room_description_changed_successfully": "ოთახის აღწერა წარმატებით შეიცვალა", "Room_has_been_archived": "ოთახი დაარქივებულია", @@ -2857,7 +2856,7 @@ "room_is_blocked": "ოთახი დაბლოკილია", "room_is_read_only": "ოთახი არის მხოლოდ წაკითხვის უფლებით", "room_name": "ოთახის სახელი", - "Room_name_changed": "ოთახის სახელი შეიცვალა: __ოთახის სახელი__-ით __მომხმარებელი__-ის მიერ", + "Room_name_changed": "ოთახის სახელი შეიცვალა: __room_name__-ით __username__-ის მიერ", "Room_name_changed_successfully": "ოთახის სახელი წარმატებით შეიცვალა", "Room_not_found": "ოთახი ვერ მოიძებნა", "Room_password_changed_successfully": "ოთახის პაროლი წარმატებით შეიცვალა", @@ -2913,6 +2912,7 @@ "SAML_Role_Attribute_Name_Description": "თუ ეს ატრიბუტი დაფიქსირდა SAML-ის პასუხად მისი მნიშვნელობა იქნება გამოყენებული როლის სახელად ახალი მომხმარებლებისთვის", "SAML_Role_Attribute_Sync": "მომხმარებლის როლების სინქრონიზაცია", "SAML_Role_Attribute_Sync_Description": "შესვლისას SAML მომხმარებლის როლების სინქრონიზაცია(გადაეწერება ადგილობრივი მომხმარებლის როლებს)", + "SAML_Section_1_User_Interface": "მომხმარებლის ინტერფეისი", "SAML_Allowed_Clock_Drift": "პირადობის წარმომდგენისგან დროის დასაშვები ცდომილება", "SAML_Allowed_Clock_Drift_Description": "პირადობის წარმომდგენის საათი შეიძლება მცირედით უსწრებდეს თქვენი სისტემის საათს. თქვენ შეგიძლიათ დაუშვათ მცირედი აცდენა დროში. აცდენის მნიშვნელობა მითითებული უნდა იყოს მილიწამებში. მოწოდებული მნიშვნელობა ემატება მიმდინარე დროს და პასუხი ამ დროში დამოწმდება.", "Saturday": "შაბათი", @@ -2927,7 +2927,7 @@ "Saved": "შენახულია", "Saving": "შენახვა", "Scan_QR_code": "ავთენტიფიკატორის აპის გამოყენებით, როგორიცაა Google Authenticator, Authy ან Duo, გამოიყენეთ QR კოდი. იგი აჩვენებს 6 ციფრიან კოდს, რომელიც ქვემოთ უნდა შეიყვანოთ.", - "Scan_QR_code_alternative_s": "თუ QR კოდს ვერ ასკანირებთ კოდის ხელით შეყვანა შეგიძლიათ:__კოდი__", + "Scan_QR_code_alternative_s": "თუ QR კოდს ვერ ასკანირებთ კოდის ხელით შეყვანა შეგიძლიათ:", "Scope": "სფერო", "Screen_Lock": "ეკრანის დაბლოკვა", "Screen_Share": "ეკრანის გაზიარება", @@ -3096,7 +3096,7 @@ "Snippet_Added": "შექმნილია %s -ზე", "Snippet_Messages": "Snippet შეტყობინებები", "Snippet_name": "Snippet სახელი", - "Snippeted_a_message": "შექმნილია Snippet __Snippet ლინკი__", + "Snippeted_a_message": "შექმნილია Snippet __snippetLink__", "Social_Network": "სოციალური ქსელი", "Sorry_page_you_requested_does_not_exist_or_was_deleted": "უკაცრავად, თქვენს მიერ მოთხოვნილი გვერდი არ არსებობს ან წაიშალა!", "Sort": "დალაგება", @@ -3117,7 +3117,7 @@ "Start_OTR": "OTR დაწყება", "Start_video_call": "ვიდეო ზარის დაწყება", "Start_video_conference": "დავიწყო ვიდეო კონფერენცია?", - "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s": "დაიწყეთ % s მომხმარებლისთვის ან % s არხისთვის. მაგ: % s ან % s ", + "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s": "დაიწყეთ %s მომხმარებლისთვის ან %s არხისთვის. მაგ: %s ან %s", "Started_a_video_call": "ვიდეო ზარი დაიწყო", "Started": "დაწყებულია", "Started_At": "დაიწყო __-ზე", @@ -3204,14 +3204,14 @@ "The_application_name_is_required": "აუცილებელია აპლიკაციის სახელი", "The_channel_name_is_required": "საჭიროა არხის სახელი", "The_emails_are_being_sent": "ელ.ფოსტა იგზავნება.", - "The_empty_room__roomName__will_be_removed_automatically": "ცარიელი ოთახი __ ოთახის სახელი __ ავტომატურად მოიხსნება.", + "The_empty_room__roomName__will_be_removed_automatically": "ცარიელი ოთახი __room_name__ ავტომატურად მოიხსნება.", "The_field_is_required": "ველი %s აუცილებელია.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "სურათის ზომის შეცვლა არ იმუშავებს, რადგან ჩვენ ვერ ვპოულობთ თქვენს სერვერზე დაყენებულ ImageMagick ან GraphicsMagick-ს.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "შეტყობინება არის განხილვა და თქვენ ვერ შეძლებთ შეტყობინებების აღდგენას", "The_redirectUri_is_required": "გადამისამართების ლინკია საჭირო", "The_selected_user_is_not_an_agent": "არჩეული მომხმარებელი არ არის აგენტი", "The_server_will_restart_in_s_seconds": "სერვერი გადაიტვირთება %s წამში", - "The_setting_s_is_configured_to_s_and_you_are_accessing_from_s": "პარამეტრი % s კონფიგურებულია % s და თქვენ გაქვთ წვდომა % s -დან!", + "The_setting_s_is_configured_to_s_and_you_are_accessing_from_s": "პარამეტრი %s კონფიგურებულია %s და თქვენ გაქვთ წვდომა %s-დან!", "The_user_will_be_removed_from_s": "მომხმარებელი წაიშლება %s- დან", "The_user_s_will_be_removed_from_role_s": "მომხმარებლის %s ამოღებული იქნება %s როლიდან", "The_user_wont_be_able_to_type_in_s": "მომხმარებელი ვერ შეძლებს %s-ში დაწერას", @@ -3282,8 +3282,8 @@ "This_is_a_push_test_messsage": "ეს არის push სატესტო შეტყობინება", "This_message_was_rejected_by__peer__peer": "ეს შეტყობინება უარყო __ peer___ peer-მა.", "This_month": "ეს თვე", - "This_room_has_been_archived_by__username_": "ეს ოთახი დაარქივდა __მომხმარებლის სახელი__-ის მიერ", - "This_room_has_been_unarchived_by__username_": "ეს ოთახი ამოარქივდა __მომხმარებლის სახელი__-ის მიერ", + "This_room_has_been_archived_by__username_": "ეს ოთახი დაარქივდა __username__-ის მიერ", + "This_room_has_been_unarchived_by__username_": "ეს ოთახი ამოარქივდა __username__-ის მიერ", "Thread_message": "კომენტარი გააკეთა * __ მომხმარებლის __ ის გზავნილზე: _ __msg__ _", "This_agent_was_already_selected": "ეს აგენტი უკვე შეირჩა", "This_week": "ეს კვირა", @@ -3405,7 +3405,7 @@ "Unstar_Message": "ვარსკვლავის მოცილება", "Update": "განახლება", "Update_LatestAvailableVersion": "განახლება უახლეს ხელმისაწვდომ ვერსიამდე", - "Update_to_version": "განახლება --ვერსია__-მდე", + "Update_to_version": "განახლება __version__", "Update_your_RocketChat": "განაახლეთ თქვენი Rocket.Chat", "Updated_at": "განახლებულია __-ზე", "Upload": "ატვირთვა", @@ -3415,7 +3415,7 @@ "Upload_file_question": "გსურთ ატვირთოთ ფაილი?", "Upload_Folder_Path": "საქაღალდის გზის ატვირთვა", "Upload_user_avatar": "ავატარის ატვირთვა", - "Upload_From": "ატვირთვა __სახელი__-დან", + "Upload_From": "ატვირთვა __name__", "Uploading_file": "ფაილი იტვირთება", "Uptime": "მუშაობის დრო", "URL": "ლინკი", @@ -3436,14 +3436,251 @@ "User Search": "მომხმარებლის ძებნა", "User_created_successfully!": "მომხმარებელი წარმატებით შექმნა!", "User Search (Group Validation)": "მომხმარებლის ძებნა (ჯგუფის ვალიდაცია)", + "user-generate-access-token_description": "მომხმარებლისთვის წვდომის ტოკენის გენერირების უფლება", + "User__username__is_now_a_leader_of__room_name_": "მომხმარებელი __username__ ახლა ლიდერია __room_name__", + "User__username__is_now_a_moderator_of__room_name_": "მომხმარებელი __username__ __room_name__-ის ახლა მოდერატორია", + "User__username__is_now_a_owner_of__room_name_": "მომხმარებელი __username__ __room_name__-ის მფლობელი", + "User__username__removed_from__room_name__leaders": "მომხმარებელი __username__ ამოღებულია__room_name__ლიდერებიდან", + "User__username__removed_from__room_name__moderators": "მომხმარებელი __username__ ამოღებულია __room_name__ მოდერატორებიდან", + "User__username__removed_from__room_name__owners": "მომხმარებელი __username__ ამოღებულია __room_name__ მფლობელებიდან", + "User_added": "მომხმარებელი დაემატა", + "User_added_by": "მომხმარებელი __user_added__ დაემატა __user_by__.", + "User_added_successfully": "მომხმარებელი წარმატებით დაემატა", + "User_and_group_mentions_only": "მომხმარებლის და ჯგუფის ხსენებები მხოლოდ", + "User_default": "მომხმარებლის დეფაულტი", + "User_doesnt_exist": "მომხმარებელი სახელით `@%s` არ არსებობს", + "User_e2e_key_was_reset": "მომხმარებლის E2E გასაღები წარმატებით გადაიტვირთა", + "User_has_been_activated": "მომხმარებელი გააქტიურდა", + "User_has_been_deactivated": "მომხმარებელი გამოირთო", + "User_has_been_deleted": "მომხმარებელი წაიშალა", + "User_has_been_ignored": "მომხმარებელი დაიგნორდა", + "User_has_been_muted_in_s": "მომხმარებელი %s-ში გადაყვანილია უხმო რეჟიმზე", + "User_has_been_removed_from_s": "მომხმარებელი ამოღებულია %s- დან", + "User_has_been_unignored": "მომხმარებელი აღარ არის უგულებელყოფილი", + "User_Info": "მომხმარებლის ინფორმაცია", + "User_Interface": "მომხმარებლის ინტერფეისი", + "User_is_blocked": "მომხმარებელი დაბლოკილია", + "User_is_no_longer_an_admin": "მომხმარებელი აღარ არის ადმინისტრატორი", + "User_is_now_an_admin": "მომხმარებელი არის ადმინი", + "User_is_unblocked": "მომხმარებელი განბლოკილია", + "User_joined_channel": "შეუერთდა არხს.", + "User_joined_conversation": "ჩაერთო საუბარში", + "User_joined_channel_female": "შეუერთდა არხს.", + "User_joined_channel_male": "შეუერთდა არხს.", + "User_left": "დატოვა არხი.", + "User_left_female": "დატოვა არხი.", + "User_left_male": "დატოვა არხი.", + "User_logged_out": "მომხმარებელი გასულია", + "User_management": "მომხმარებლის მენეჯმენტი", + "User_mentions_only": "მხოლოდ მომხმარებლის ხსენებები", + "User_muted": "მომხმარებელი უხმო რეჟიმშია", + "User_muted_by": "მომხმარებელი __user_muted__ გადაყვანილია უხმო რეჟიმზე __user_by__.", + "User_not_found": "მომხმარებელი არ მოიძებნა", + "User_not_found_or_incorrect_password": "მომხმარებელი ვერ მოიძებნა ან პაროლია არასწორი ", + "User_or_channel_name": "მომხმარებლის ან არხის სახელი", + "User_Presence": "მომხმარებლის დასწრება", + "User_removed": "მომხმარებელი მოცილებულია", + "User_removed_by": "მომხმარებელი __user_removed__ __user_by__.", + "User_sent_a_message_on_channel": "__username__ შეტყობინების გაგზავნა __channel__", + "User_sent_a_message_to_you": "__username__ გამოგიგზავნათ შეტყობინება", + "user_sent_an_attachment": "__username__– მა გაგზავნა დანართი", + "User_Settings": "მომხმარებლის პარამეტრები", + "User_started_a_new_conversation": "__username__– მა დაიწყო ახალი საუბარი", + "User_unmuted_by": "მომხმარებელი __user_unmuted__ __user_by__.", + "User_unmuted_in_room": "ოთახში მომხმარებელს მეხსნა უხმო რეჟიმი", + "User_updated_successfully": "მომხმარებელი წარმატებით განახლდა", + "User_uploaded_a_file_on_channel": "__username__ ატვირთა ფაილი __channel__", + "User_uploaded_a_file_to_you": "__username__ გამოგიგზავნათ ფაილი", + "User_uploaded_file": "ფაილი აიტვირთა", + "User_uploaded_image": "სურათი აიტვირთა", + "UserData_EnableDownload": "დართეთ მომხმარებლის მონაცემების გადმოწერის ნება", + "UserData_FileSystemPath": "სისტემის Path (ექსპორტირებული ფაილები)", + "UserData_FileSystemZipPath": "სისტემის Path (კომპრესირებული ფაილი)", + "UserData_MessageLimitPerRequest": "შეტყობინებების ლიმიტი მოთხოვნაზე", + "UserData_ProcessingFrequency": "დამუშავების სიხშირე (წუთები)", + "UserDataDownload": "მომხმარებლის მონაცემების გადმოწერა", + "UserDataDownload_CompletedRequestExisted_Text": "თქვენი მონაცემების ფაილი უკვე გენერირებულია. შეამოწმეთ გადმოსატვირთი ბმული თქვენს ელ.ფოსტაზე.", + "UserDataDownload_CompletedRequestExistedWithLink_Text": "თქვენი მონაცემების ფაილი უკვე გენერირებულია. დააჭირეთ აქ , რომ გადმოწეროთ.", + "UserDataDownload_EmailBody": "თქვენი მონაცემების ფაილი ახლა მზად არის გადმოსაწერად. დააჭირეთ აქ , რომ გადმოწეროთ.", + "UserDataDownload_EmailSubject": "თქვენი მონაცემების ფაილი მზად არის გადმოსაწერად", + "UserDataDownload_Requested": "ჩამოტვირთეთ მოთხოვნილი ფაილი ", + "UserDataDownload_Requested_Text": "თქვენი მონაცემების ფაილი გენერირდება. როდესაც ფაილი მზად იქნება გადმოსაწერი ლინკი გაიგზავნება თქვენს ელ.ფოსტაზე. არსებობს __ დაპაუზებული ოპერაციები__ რიგში მდომ ოპერაციები რომლებიც თქვენს ოპერაციებამდეა გასაშვები.", + "UserDataDownload_RequestExisted_Text": "თქვენი მონაცემების ფაილი უკვე გენერირდება. მისი ჩამოტვირთვა გადმოტვირთვის ბმულზე გადაგზავნის თქვენი ელ.ფოსტის მისამართს, როდესაც ის მზად არის. არსებობს __ pending_operations __ რიგის ოპერაციები, რომლებიც თქვენს წინაშეა გასაშვები.", "Username": "მომხმარებლის სახელი", + "Username_already_exist": "სახელი უკვე არსებობს. გთხოვთ, სცადოთ სხვა სახელი.", + "Username_and_message_must_not_be_empty": "სახელი და შეტყობინება არ უნდა იყოს ცარიელი.", + "Username_cant_be_empty": "მომხმარებლის სახელი არ შეიძლება იყოს ცარიელი", + "Username_Change_Disabled": "თქვენმა Rocket.Chat ადმინისტრატორმა გათიშვა სახელების შეცვლა", + "Username_denied_the_OTR_session": "__username__– მა უარყო OTR– ს სესია", + "Username_description": "სახელი გამოიყენება იმისათვის, რომ სხვებს მისცეთ უფლება, რომ გახსენონ შეტყობინებებში.", + "Username_doesnt_exist": "მომხმარებლის სახელი \"%s\" არ არსებობს.", + "Username_ended_the_OTR_session": "__username__-მა დაასრულა OTR სესია", + "Username_invalid": "%s არ არის სწორი სახელი,
გამოიყენეთ მხოლოდ ასოები, რიცხვები, წერტილები, ტირეები და ქვედა ხაზები", + "Username_is_already_in_here": "`@%s` უკვე აქ არის.", + "Username_is_not_in_this_room": "მომხმარებელი `#%s` არ არის ამ ოთახში.", + "Username_Placeholder": "გთხოვთ, შეიყვანოთ მომხმარებლის სახელი ...", + "Username_title": "მომხმარებლის სახელის რეგისტრაცია", + "Username_wants_to_start_otr_Do_you_want_to_accept": "__username__ სურს OTR-ის დაწყება. გსურთ მიიღოთ?", "Users": "მომხმარებლები", + "Users_added": "მომხმარებლები დაემატა", + "Users_by_time_of_day": "მომხმარებლები დღის დროის მიხედვით", + "Users_in_role": "მომხმარებლები როლში", + "Users must use Two Factor Authentication": "მომხმარებლებმა უნდა გამოიყენონ ორ ფაქტორიანი ავთენტიფიკაცია", + "Leave_the_description_field_blank_if_you_dont_want_to_show_the_role": "დატოვეთ აღწერილობის ველი ცარიელი, თუ არ გსურთ როლის ჩვენება", + "Uses": "იყენებს", + "Uses_left": "იყენებს მარცხნივ", + "UTF8_Names_Slugify": "UTF8 სახელების Slugify", + "UTF8_Names_Validation": "UTF8 სახელების დამოწმება", + "UTF8_Names_Validation_Description": "RegExp, რომელიც გამოყენებული იქნება მომხმარებლის სახელების და არხების სახელების დამოწმებისთვის", + "Validation": "დამოწმება", + "Value_messages": "__value__ შეტყობინებები", + "Value_users": "__value__ მომხმარებლები", + "Validate_email_address": "ელ.ფოსტის მისამართების დამოწმება", + "Verification_email_body": "გთხოვთ, დააჭირეთ ქვემოთ მოცემულ ღილაკს თქვენი ელ.ფოსტის მისამართის დასადასტურებლად.", + "Verification": "ვერიფიკაცია", + "Verification_Description": "თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ველები:
  • [Verification_Url] გადამოწმების URL– სთვის. [Html2e]
  • [name], [fname], [lname] მომხმარებლის სრული სახელი, სახელი ან გვარი, შესაბამისად.
  • [email] მომხმარებლის ელ.ფოსტისთვის.
  • [Site_Name] და [Site_URL] განაცხადის სახელისა და URL- ის შესაბამისად.
", + "Verification_email_sent": "ვერიფიკაციის ელ.ფოსტა გაიგზავნა", + "Verification_Email_Subject": "[ვებ გვერდის სახელი] - ელ.ფოსტის მისამართის გადამოწმება", + "Verified": "გადამოწმებულია", + "Not_verified": "გადაუმოწმებელია", + "Verify": "დამოწმება", + "Verify_your_email": "დაამოწმეთ თქვენი ელ. ფოსტა", + "Verify_your_email_for_the_code_we_sent": "გადაამოწმეთ თქვენი ელ.ფოსტა ჩვენს მიერ გაგზავნილი კოდისთვის", + "Version": "ვერსია", + "Version_version": "ვერსია __version__", + "Videos": "ვიდეოები", + "Video Conference": "ვიდეო კონფერენცია", + "Video_Chat_Window": "ვიდეო ჩატი", + "Video_Conference": "ვიდეო კონფერენცია", + "Video_message": "ვიდეო შეტყობინება", + "Videocall_declined": "ვიდეო ზარი უარყოფილია", + "Videocall_enabled": "ვიდეო ზარი ჩართულია", + "view-broadcast-member-list": "წევრების სია იხილეთ სამაუწყებლო ოთახში", + "view-c-room": "იხილეტ საჯარო არხი", + "view-c-room_description": "საჯარო არხების ნახვის უფლება", + "view-d-room": "იხილეთ პირდაპირი შეტყობინებები", + "view-d-room_description": "პირდაპირი შეტყობინებების ნახვის უფლება", + "view-full-other-user-info": "იხილეთ სხვა მომხმარებლის დრული ინფორმაცია", + "view-full-other-user-info_description": "სხვა მომხმარებლების სრული პროფილის ნახვის ნებართვა, მათ შორის ანგარიშის შექმნის თარიღის, ბოლო შესვლის და ა.შ.", + "view-history": "ისტორიის ნახვა", + "view-history_description": "არხის ისტორიის ნახვის ნებართვა", + "view-join-code": "იხილეთ გაწევრიანების კოდი", + "view-join-code_description": "არხში გაწევრიანების კოდის ნახვის ნებართვა", + "view-joined-room": "ნახეთ შეერთებული ოთახი", + "view-joined-room_description": "ახლანდელი შეერთებული არხების ნახვის უფლება", + "view-l-room": "იხილეთ Omnichannel ოთახები", + "view-l-room_description": "ნებართვა Omnichannel ოთახების სანახავად ", + "view-livechat-analytics": "იხილეთ Omnichannel ანალიტიკა", + "view-livechat-room-closed-by-another-agent": "იხილეთ სხვა აგენტის მიერ დახურული Omnichannel ოთახები ", + "view-livechat-room-closed-same-department": "იხილეთ იმავე განყოფილებაში სხვა აგენტის მიერ დახურული Omnichannel ოთახები ", + "view-livechat-departments": "იხილეთ Omnichannel განყოფილებები", + "view-livechat-manager": "Omnichannel– ის მენეჯერის ნახვა", + "view-livechat-manager_description": "Omnichannel– ის სხვა მენეჯერების ნახვის ნებართვა", + "view-livechat-queue": "იხილეთ Omnichannel-ის რიგი", + "view-livechat-rooms": "Omnichannel ოთახების ნახვა", + "view-livechat-rooms_description": "სხვა Omnichannel ოთახების ნახვის უფლება", + "view-logs": "ლოგების ნახვა", + "view-logs_description": "სერვერის ლოგების ნახვის ნებართვა", + "view-other-user-channels": "სხვა მომხმარებლების არხების ნახვა", + "view-other-user-channels_description": "სხვა მომხმარებლების საკუთრებაში არსებული არხების ნახვის უფლება", + "view-outside-room": "ოთახის გარეთ ნახვა", + "view-outside-room_description": "მომხმარებლების მიმდინარე ოთახის გარეთ ნახვის უფლება", + "view-p-room": "პირადი ოთახის ნახვა", + "view-p-room_description": "პირადი არხების ნახვის ნებართვა", + "view-privileged-setting": "იხილეთ პრივილეგირებული პარამეტრები", + "view-privileged-setting_description": "პარამეტრების ნახვის ნებართვა", + "view-room-administration": "იხილეთ ოთახის ადმინისტრაცია", + "view-room-administration_description": "საჯარო, პირადი და პირდაპირი შეტყობინებების სტატისტიკის ნახვის ნებართვა. არ შეიცავს საუბრების ან არქივების ნახვის შესაძლებლობას", + "view-statistics": "სტატისტიკის ნახვა", + "view-statistics_description": "სისტემის სტატისტიკის ნახვის ნებართვა, როგორიცაა შესული მომხმარებლების რაოდენობა, ოთახების რაოდენობა, ოპერაციული სისტემის ინფორმაცია", + "view-user-administration": "მომხმარებლის ადმინისტრირების ნახვა", + "view-user-administration_description": "ნებართვა ნაწილობრივ, მხოლოდ წაკითხვის უფლებით შემოსული მომხმარებლების სიის ნახვა. ამ უფლებით მომხმარებლის ანგარიშის ინფორმაცია არ არის ხელმისაწვდომი", + "View_All": "იხილეთ ყველა წევრი", + "View_Logs": "ლოგების ნახვა", + "View_mode": "ნახვის რეჟიმი", + "View_original": "ორიგინალის ნახვა", + "Viewing_room_administration": "ოთახის ადმინისტრირების ნახვა", + "View_the_Logs_for": "იხილეთ ლოგები: __name__", + "Visibility": "ხილვადობა", + "Visible": "ხილული", + "Visit_Site_Url_and_try_the_best_open_source_chat_solution_available_today": "ეწვიეთ __Site_URL__ და გამოსცადეთ საუკეთესო ოფენ სორს გადაწყვეტილება დღეისთვის!", + "Visitor": "სტუმარი", + "Visitor_Email": "სტუმრის ელ.ფოსტა", + "Visitor_Info": "სტუმრის ინფორმაცია", + "Visitor_Name": "სტუმრის სახელი", + "Visitor_Name_Placeholder": "გთხოვთ, შეიყვანოთ სტუმრის სახელი ...", + "Visitor_Navigation": "ვიზიტორთა ნავიგაცია", + "Visitor_page_URL": "ვიზიტორის გვერდის URL", + "Visitor_time_on_site": "ვიზიტის დრო საიტზე", + "Wait_activation_warning": "სანამ შეხვალთ, თქვენი ანგარიში ხელით უნდა გააქტიურდეს ადმინისტრატორის მიერ.", + "Warning": "გაფრთხილება", + "Warnings": "გაფრთხილებები", + "We_are_offline_Sorry_for_the_inconvenience": "ჩვენ არ ვართ ხაზზე.ბოდიშს გიხდით უხერხულობისთვის", + "We_have_sent_password_email": "ჩვენ გამოგიგზავნეთ ელ.წერილი პაროლის გადატვირთვის ინსტრუქციებით. თუ ცოტა ხანში ელ.წერილს არ მიიღებთ, გთხოვთ სცადოთ ხელახლა.", + "We_have_sent_registration_email": "ჩვენ გამოგიგზავნეთ ელ.წერილი თქვენი რეგისტრაციის დასადასტურებლად. თუ ცოტა ხანში ელ.წერილს არ მიიღებთ, გთხოვთ სცადოთ ხელახლა.", + "Webdav Integration": "Webdav ინტეგრაცია", + "WebDAV_Accounts": "WebDAV ანგარიშები", + "Webdav_add_new_account": "დაამატეთ ახალი WebDAV ანგარიში", + "webdav-account-saved": "WebDAV ანგარიში შენახულია", + "webdav-account-updated": "WebDAV ანგარიში განახლებულია", + "Webdav_Integration_Enabled": "Webdav ინტეგრაცია ჩართულია", "Webdav_Server_URL": "WebDAV სერვერზე წვდომის URL", "Webdav_Username": "WebDAV მომხმარებლის სახელი", "Webdav_Password": "WebDAV პაროლი", + "Webhook_URL": "Webhook URL", + "Webhooks": "Webhook-ები", + "WebRTC_direct_audio_call_from_%s": "პირდაპირი აუდიო ზარი %s- გან", + "WebRTC_direct_video_call_from_%s": "პირდაპირი ვიდეო ზარი %s- გან", "WebRTC_Enable_Channel": "ჩართეთ საჯარო არხებისთვის", "WebRTC_Enable_Direct": "ჩართეთ პირდაპირი შეტყობინებებისთვის", "WebRTC_Enable_Private": "ჩართეთ პირადი არხებისთვის", + "WebRTC_group_audio_call_from_%s": "ჯგუფური აუდიო ზარი %s- გან", + "WebRTC_group_video_call_from_%s": "ჯგუფური ვიდეო ზარი %s- გან", + "WebRTC_monitor_call_from_%s": "თვალყური ადევნეთ ზარს %s- გან", + "WebRTC_Servers": "სერვერების STUN/TURN", + "WebRTC_Servers_Description": "STUN და TURN სერვერების სია, რომლებიც დაშორებულია მძიმით. [Html0] სახელი, პაროლი და პორტი დაიშვება ფორმატში `მომხმარებლის სახელი: პაროლი @ stun: host: port` ან` მომხმარებლის სახელი: პაროლი@turn:host:port", + "Website": "ვებგვერდი", + "Wednesday": "ოთხშაბათი", + "Welcome": "მოგესალმებით %s.", + "Welcome_to": "მოგესალმებით __Site_Name__ -ზე", + "Where_are_the_messages_being_sent?": "სად იგზავნება შეტყობინებები?", + "When_is_the_chat_busier?": "როდის არის ჩატი უფრო დაკავებული?", + "When_a_line_starts_with_one_of_there_words_post_to_the_URLs_below": "როდესაც სტრიქონი იწყება ამ ერთ – ერთი სიტყვით, განათავსეთ ქვემოთ მოცემულ URL– თან", + "Why_do_you_want_to_report_question_mark": "რატომ გსურთ რეპორტი?", + "will_be_able_to": "შეძლებს", + "Will_be_available_here_after_saving": "შენახვის შემდეგ ხელმისაწვდომი იქნება აქ", + "Worldwide": "მსოფლიო", + "Would_you_like_to_return_the_inquiry": "გსურთ მოთხოვნის დაბრუნება?", + "Yes": "დიახ", + "Yesterday": "გუშინ", + "Yes_archive_it": "დიახ, დაარქივეთ ეს!", + "Yes_clear_all": "დიახ, გაასუფთავეთ ყველაფერი!", + "Yes_delete_it": "დიახ, წაშალეთ!", + "Yes_deactivate_it": "დიახ, გამორთეთ ეს!", + "Yes_hide_it": "დიახ, დამალე!", + "Yes_leave_it": "დიახ, დატოვეთ!", + "Yes_mute_user": "დიახ გადაიყვანეთ მომხმარებელი უხმო რეჟიმზე!", + "Yes_prune_them": "დიახ შეკვეცეთ ისინი!", + "Yes_remove_user": "დიახ, წაშალეთ მომხმარებელი!", + "Yes_unarchive_it": "დიახ, ამოაარქივეთ ეს!", + "yesterday": "გუშინ", + "You": "შენ", + "you_are_in_preview_mode_of": "თქვენ ხართ არხის #__room_name__-ის გადახედვის რეჟიმში", + "you_are_in_preview_mode_of_incoming_livechat": "თქვენ ხართ ამ ჩატის გადახედვის რეჟიმში", + "You_are_logged_in_as": "თქვენ ხართ შესული როგორც", + "You_are_not_authorized_to_view_this_page": "თქვენ არ გაქვთ ამ გვერდის ნახვის უფლება.", + "You_can_change_a_different_avatar_too": "თქვენ შეგიძლიათ ამ ინტეგრაციიდან დაპოსტვისთვის გამოყენებული ავატარის შეცვლა", + "You_can_close_this_window_now": "თქვენ შეგიძლიათ ამ ფანჯრის დახურვა ახლა", + "You_can_search_using_RegExp_eg": "შეგიძლიათ მოძებნოთ რეგულარული გამოხატვა -ის გამოყენებით. მაგ. / ^ ტექსტი $ / i ", + "You_can_use_an_emoji_as_avatar": "თქვენ ასევე შეგიძლიათ გამოიყენოთ emoji, ავატარად.", + "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "შეგიძლიათ გამოიყენოთ webhook-ები, რომ ადვილად მოხდეს Omnichannel– ის თქვენს CRM– თან ინტეგრირება.", + "You_cant_leave_a_livechat_room_Please_use_the_close_button": "თქვენ არ შეგიძლიათ დატოვოთ omnichannel ოთახი. გთხოვთ, გამოიყენოთ დახურვის ღილაკი.", + "You_have_been_muted": "თქვენ შეიძლება გადაყვანილი ხართ უხმო რეჟიმზე და არ შეგიძლიათ ამ ოთახში საუბარი", + "You_have_n_codes_remaining": "თქვენ გაქვთ დარჩენილი __number__ კოდები.", + "You_have_not_verified_your_email": "თქვენ არ გაქვთ დადასტურებული ელ.ფოსტა", + "You_have_successfully_unsubscribed": "თქვენ წარმატებით ამოეწერეთ ჩვენი საფოსტო სიიდან", + "You_have_to_set_an_API_token_first_in_order_to_use_the_integration": "თქვენ უნდა დააყენოთ API ტოკენი, რათა გამოიყენოთ ინტეგრაცია.", + "You_must_join_to_view_messages_in_this_channel": "თქვენ უნდა შეუერთდეთ ამ არხს შეტყობინებების სანახავად", "your_message": "თქვენი შეტყობინება", "your_message_optional": "თქვენი შეტყობინება (დამატებით)", "Your_new_email_is_email": "თქვენი ახალი ელ-ფოსტის მისამართი არის [email]", @@ -3453,4 +3690,4 @@ "Your_server_link": "თქვენი სერვერის მისამართი", "Your_temporary_password_is_password": "თქვენი დროებითი პაროლია არის [password]", "Your_workspace_is_ready": "თქვენი სამუშაო გარემო მზად არის სამუშაოდ 🎉" -} \ No newline at end of file +} diff --git a/packages/rocketchat-i18n/i18n/km.i18n.json b/packages/rocketchat-i18n/i18n/km.i18n.json index 8046c0ec5a5f..186c2026f998 100644 --- a/packages/rocketchat-i18n/i18n/km.i18n.json +++ b/packages/rocketchat-i18n/i18n/km.i18n.json @@ -9,8 +9,13 @@ "2_Erros_Information_and_Debug": "2 - កំហុស, ព័ត៌មាន និងស្វែងរកកំហុស", "@username": "@ឈ្មោះ​អ្នកប្រើប្រាស់", "@username_message": "@ ឈ្មោះអ្នកប្រើ ", + "__count__empty_rooms_will_be_removed_automatically": "ចំនួនបន្ទប់ដែលនៅសល់នឹងត្រូវលុបចោលដោយស្វ័យប្រវត្តិ។", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "__count__ នឹងត្រូវលុបចោលដោយស្វ័យប្រវត្តិ៖
__rooms__ ។", "__username__is_no_longer__role__defined_by__user_by_": "__username__ មិនមាន __role__by __user_by__", "__username__was_set__role__by__user_by_": "__username__ ត្រូវបានកំណត់តួនាទីជា __role__ ដោយ __user_by__", + "A_new_owner_will_be_assigned_automatically_to__count__rooms": "ម្ចាស់ថ្មីនឹងត្រូវបានចាត់តាំងដោយស្វ័យប្រវត្តិទៅបន្ទប់ __count__ ។", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "ម្ចាស់ថ្មីនឹងត្រូវបានចាត់តាំងដោយស្វ័យប្រវត្តិទៅក្នុងបន្ទប់ __roomName__ ។", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "ម្ចាស់ថ្មីនឹងត្រូវបានចាត់ចែងដោយស្វ័យប្រវត្តិទៅបន្ទប់ទាំងនោះ __count__ បន្ទប់៖
__rooms__ ។", "Accept": "ទទួលយក", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "ទទួលយកសំណើ livechat មកដល់ទោះបីជាគ្មានភ្នាក់ងារអនឡាញក៏ដោយ", "Accept_new_livechats_when_agent_is_idle": "ទទួលយកការស្នើសុំ Livechat ថ្មីនៅពេលភ្នាក់ងារទំនេរ", @@ -656,7 +661,6 @@ "Cloud_Register_manually": "ចុះឈ្មោះដោយដៃ", "Cloud_click_here": "បន្ទាប់ពីចម្លងអត្ថបទសូមចូលទៅកាន់កុងសូលក្លោដ។ [ចុច​ទីនេះ](__cloudConsoleUrl__)", "Cloud_register_success": "កន្លែងការងាររបស់អ្នកត្រូវបានចុះឈ្មោះដោយជោគជ័យ!", - "Cloud_connect_support": "ប្រសិនបើអ្នកនៅតែមិនទាន់បានទទួលអ៊ីមែលចុះឈ្មោះសូមប្រាកដថាអ៊ីមែលរបស់អ្នកត្រូវបានធ្វើបច្ចុប្បន្នភាពខាងលើ។ ប្រសិនបើអ្នកនៅតែមានបញ្ហាអ្នកអាចទាក់ទងការគាំទ្រ។", "Cloud_console": "Cloud Console", "Cloud_Info": "ព័ត៌មានពពក", "Cloud_what_is_it": "តើ​នេះ​ជា​អ្វី?", @@ -1944,7 +1948,8 @@ "Mailer_body_tags": "អ្នកត្រូវប្រើប្រាស់ [unsubcribe] សម្រាប់ដកដំណភ្ជាប់ជាវជាប្រចាំ។
អ្នកប្រហែលជាត្រូវប្រើប្រាស់ [name], [fname], [lname] ធ្វើជាឈ្មោះពេញរបស់អ្នកប្រើប្រាស់។
អ្នកប្រហែលជាប្រើ [email] ធ្វើជាអ៊ីមែលរបស់អ្នកប្រើប្រាស់។", "Mailing": "សំបុត្ររួម", "Make_Admin": "ឲ្យ​ធ្វើ​អ្នក​គ្រប់​គ្រង", - "Make_sure_you_have_a_copy_of_your_codes": "ត្រូវប្រាកដថាអ្នកមានច្បាប់ចម្លងកូដរបស់អ្នក: __codes__ ប្រសិនបើអ្នកបាត់បង់សិទ្ធិចូលប្រើកម្មវិធីផ្ទៀងផ្ទាត់របស់អ្នកអ្នកអាចប្រើលេខកូដណាមួយក្នុងចំណោមកូដទាំងនេះដើម្បីចូលបាន។", + "Make_sure_you_have_a_copy_of_your_codes_1": "ត្រូវប្រាកដថាអ្នកមានច្បាប់ចម្លងកូដរបស់អ្នក:", + "Make_sure_you_have_a_copy_of_your_codes_2": "ប្រសិនបើអ្នកបាត់បង់សិទ្ធិចូលប្រើកម្មវិធីផ្ទៀងផ្ទាត់របស់អ្នកអ្នកអាចប្រើលេខកូដណាមួយក្នុងចំណោមកូដទាំងនេះដើម្បីចូលបាន។", "manage-apps": "គ្រប់គ្រងកម្មវិធី", "manage-assets": "គ្រប់គ្រងទ្រព្យសម្បត្តិ", "manage-assets_description": "ការអនុញ្ញាតគ្រប់គ្រងទ្រព្យសម្បត្តិម៉ាស៊ីនមេ", @@ -2178,6 +2183,7 @@ "Office_Hours": "ម៉ោងធ្វើការ", "Office_hours_enabled": "ម៉ោងការិយាល័យបានប្រើ", "Office_hours_updated": "ម៉ោងការិយាល័យបានធ្វើបច្ចុប្បន្នភាព", + "RetentionPolicy_ExcludePinned": "មិនរាប់បញ្ចូលសារដែលបានបញ្ចូល", "Offline": "ក្រៅបណ្តាញ", "Offline_DM_Email": "អ្នកត្រូវបាន messaged ដោយផ្ទាល់ដោយ __user__", "Offline_Email_Subject_Description": "អ្នកអាចប្រើកន្លែងដាក់ដូចតទៅនេះ:
  • [Site_Name], [Site_URL], [អ្នកប្រើ] & [បន្ទប់] សម្រាប់ឈ្មោះកម្មវិធី URL ឈ្មោះអ្នកប្រើនិងឈ្មោះរបស់វា
", @@ -2434,7 +2440,6 @@ "RetentionPolicy_AppliesToChannels": "អនុវត្តទៅឆានែល", "RetentionPolicy_AppliesToGroups": "អនុវត្តចំពោះក្រុមឯកជន", "RetentionPolicy_AppliesToDMs": "អនុវត្តទៅសារដោយផ្ទាល់", - "RetentionPolicy_ExcludePinned": "មិនរាប់បញ្ចូលសារដែលបានបញ្ចូល", "RetentionPolicy_FilesOnly": "លុបតែឯកសារ", "RetentionPolicy_FilesOnly_Description": "មានតែឯកសារប៉ុណ្ណោះដែលនឹងត្រូវលុបចោលសាររបស់ពួកគេនឹងនៅតែបន្ត។", "RetentionPolicy_MaxAge": "អាយុសារអតិបរមា", @@ -2510,6 +2515,7 @@ "SAML_Custom_user_data_fieldmap": "ចំណុចចងភ្ជាប់ទិន្នន័យអ្នកប្រើប្រាស់", "SAML_Custom_Immutable_Property_Username": "ឈ្មោះ​អ្នកប្រើប្រាស់", "SAML_Custom_Public_Cert": "មាតិកាសាធារណៈសាធារណៈ", + "SAML_Section_1_User_Interface": "ចំណុចប្រទាក់អ្នកប្រើ", "Saturday": "ថ្ងៃសៅរ៍", "Save": "រក្សាទុក", "save-others-livechat-room-info": "រក្សាទុកព័ត៌មានផ្សេងទៀតរបស់ Livechat បន្ទប់", @@ -2522,7 +2528,7 @@ "Saved": "ដែលបានរក្សាទុក", "Saving": "កំពុងរក្សាទុក", "Scan_QR_code": "ប្រើកម្មវិធីផ្ទៀងផ្ទាត់ដូចជា Google Authenticator, Authy ឬ Duo, ស្កេនកូដ QR ។ វានឹងបង្ហាញលេខកូដ 6 ខ្ទង់ដែលអ្នកត្រូវការបញ្ចូលខាងក្រោម។", - "Scan_QR_code_alternative_s": "ប្រសិនបើអ្នកមិនអាចស្កេនកូដ QR អ្នកអាចបញ្ចូលលេខកូដដោយដៃជំនួស __code__", + "Scan_QR_code_alternative_s": "ប្រសិនបើអ្នកមិនអាចស្កេនកូដ QR អ្នកអាចបញ្ចូលលេខកូដដោយដៃជំនួស", "Scope": "វិសាលភាព", "Screen_Share": "អេក្រង់ចែករំលែក", "Script_Enabled": "ស្គ្រីបបានអនុញ្ញាត", diff --git a/packages/rocketchat-i18n/i18n/ko.i18n.json b/packages/rocketchat-i18n/i18n/ko.i18n.json index 35f4275ce729..7c2ef96ffd70 100644 --- a/packages/rocketchat-i18n/i18n/ko.i18n.json +++ b/packages/rocketchat-i18n/i18n/ko.i18n.json @@ -1864,7 +1864,8 @@ "Mailer_body_tags": "구독해지를 위해 [unsubscribe]를 반드시 사용합니다.
[name] - 전체이름(성+이름), [lname] - 성, [fname] - 이름을 사용할 수 있습니다.
사용자의 이메일을 [email]로 사용할 수 있습니다.", "Mailing": "메일링", "Make_Admin": "관리자 권한 부여", - "Make_sure_you_have_a_copy_of_your_codes": "다음 코드를 기록해 두십시오: __codes__ 인증앱에 액세스 할 수 없으면 이 코드를 사용하여 로그인하십시오.", + "Make_sure_you_have_a_copy_of_your_codes_1": "다음 코드를 기록해 두십시오:", + "Make_sure_you_have_a_copy_of_your_codes_2": "인증앱에 액세스 할 수 없으면 이 코드를 사용하여 로그인하십시오.", "manage-apps": "Apps 관리", "manage-assets": "에셋 관리", "manage-assets_description": "서버 에셋을 관리 할 수 있는 권한", @@ -2111,6 +2112,7 @@ "Office_Hours": "업무시간", "Office_hours_enabled": "업무시간 설정하기", "Office_hours_updated": "업무시간 업데이트", + "RetentionPolicy_ExcludePinned": "고정된 메시지 제외", "Offline": "오프라인", "Offline_DM_Email": "개인 대화 이메일 제목", "Offline_Email_Subject_Description": "다음의 지시어를 사용할 수 있습니다:
  • 어플리케이션 이름 [Site_Name] / 사이트 URL [Site_URL] / 사용자 이름 [User] / 채팅방 이름 [Room]
", @@ -2386,7 +2388,6 @@ "RetentionPolicy_AppliesToChannels": "공개 대화방에 적용", "RetentionPolicy_AppliesToGroups": "비공개 대화방에 적용", "RetentionPolicy_AppliesToDMs": "개인 대화방에 적용", - "RetentionPolicy_ExcludePinned": "고정된 메시지 제외", "RetentionPolicy_FilesOnly": "파일만 삭제", "RetentionPolicy_FilesOnly_Description": "파일만 삭제되며 메시지 자체는 그대로 유지됩니다.", "RetentionPolicy_MaxAge": "최대 메시지 수명", @@ -2466,6 +2467,7 @@ "SAML_Custom_user_data_fieldmap": "사용자 데이터 필드 맵", "SAML_Custom_Immutable_Property_Username": "사용자명", "SAML_Custom_Public_Cert": "사용자 정의 공개 인증서", + "SAML_Section_1_User_Interface": "사용자 인터페이스", "Saturday": "토요일", "Save": "저장", "save-others-livechat-room-info": "다른 사용자의 Livechat 대화방 정보 저장", @@ -2478,7 +2480,7 @@ "Saved": "저장됨", "Saving": "저장 중", "Scan_QR_code": "Google OTP, Authy 또는 Duo와 같은 인증 프로그램을 사용하여 QR 코드를 스캔하세요. 아래에 입력해야하는 6자리 코드가 표시됩니다.", - "Scan_QR_code_alternative_s": "QR 코드를 스캔 할 수 없는 경우 수동으로 코드를 입력할 수 있습니다: __code__", + "Scan_QR_code_alternative_s": "QR 코드를 스캔 할 수 없는 경우 수동으로 코드를 입력할 수 있습니다:", "Scope": "범위", "Screen_Share": "화면 공유", "Script_Enabled": "스크립트 사용", diff --git a/packages/rocketchat-i18n/i18n/ku.i18n.json b/packages/rocketchat-i18n/i18n/ku.i18n.json index 919788dbbdcb..a1b0a5c8f26f 100644 --- a/packages/rocketchat-i18n/i18n/ku.i18n.json +++ b/packages/rocketchat-i18n/i18n/ku.i18n.json @@ -1675,7 +1675,8 @@ "Mailer_body_tags": "Tu divê [unsubscribe] ji bo link unsubscription bi kar tînin.
Dibe ku tu [name], [fname] ji bo navê bikarhêner, nav an paşnav, bi rêzê ve bi kar tînin, [lname].
Dibe ku tu [email] ji bo email bikarhêner bi kar tînin.", "Mailing": "Mailing", "Make_Admin": "Make Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Bawer bikin ku we kopiyek kodiyên we hene: __codes__ Ger hûn bi destnîşankirina anketa we ya xwe winda bikî, hûn dikarin ji van kodê bikar bînin ku têkeve log-in.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Bawer bikin ku we kopiyek kodiyên we hene:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ger hûn bi destnîşankirina anketa we ya xwe winda bikî, hûn dikarin ji van kodê bikar bînin ku têkeve log-in.", "manage-apps": "Rêveberên îdare bikin", "manage-assets": "Asset Manage", "manage-assets_description": "Destûra birêvebirina malperên serverê", @@ -1900,6 +1901,7 @@ "Office_Hours": "Wextên Saetan", "Office_hours_enabled": "Navendên Karûbarên Hilbijartinê", "Office_hours_updated": "Roja betalî", + "RetentionPolicy_ExcludePinned": "Peyamên pinned", "Offline": "Ne girêdayî", "Offline_DM_Email": "Te direct by __user__ messaged dîtin", "Offline_Email_Subject_Description": "Hûn dikarin liverên jêrîn bikar bînin:
  • [Site_Name], [Site_URL], [Bikarhêner] & [Room] ji bo navê Name, URL, Navê Username û RoomName.
", @@ -2147,7 +2149,6 @@ "RetentionPolicy_AppliesToChannels": "Li ser kanalên xwe ye", "RetentionPolicy_AppliesToGroups": "Li komên taybetî", "RetentionPolicy_AppliesToDMs": "Li peyamên yekser peyda dike", - "RetentionPolicy_ExcludePinned": "Peyamên pinned", "RetentionPolicy_FilesOnly": "Tenê pelan jêbirin", "RetentionPolicy_FilesOnly_Description": "Tenê pelên wê jêbirin, peyamên xwe dê di cih de bimînin.", "RetentionPolicy_MaxAge": "Mesajê herî mezintir", @@ -2220,6 +2221,7 @@ "SAML_Custom_user_data_fieldmap": "Bikarhêner Data Map Field", "SAML_Custom_Immutable_Property_Username": "Navê bikarhêner", "SAML_Custom_Public_Cert": "Contents of Certificate of Public", + "SAML_Section_1_User_Interface": "Interface", "Saturday": "Şemî", "Save": "پاشەکەوت", "save-others-livechat-room-info": "Hinek Dinştin Kûrek Kişandin Livechat", @@ -2230,7 +2232,7 @@ "Saved": "xilas", "Saving": "Saving", "Scan_QR_code": "Bikaranîna an authenticator-ê wekî Google Authenticator, Destpêk an Duo bikar bîne, ji kodê QR-ê diaxive. Ew ê koda 6 kesan nîşan dide ku hûn hewce bike ku jêrîn.", - "Scan_QR_code_alternative_s": "Heke hûn nikarin kodê QR code scan nekin, hûn dikarin bi rêvebira kodê di nav xwe de binivîse: __code__", + "Scan_QR_code_alternative_s": "Heke hûn nikarin kodê QR code scan nekin, hûn dikarin bi rêvebira kodê di nav xwe de binivîse:", "Scope": "di çarçoveya", "Screen_Share": "screen Share", "Script_Enabled": "script çalake", diff --git a/packages/rocketchat-i18n/i18n/lo.i18n.json b/packages/rocketchat-i18n/i18n/lo.i18n.json index 207ee49a56d6..6a357affa270 100644 --- a/packages/rocketchat-i18n/i18n/lo.i18n.json +++ b/packages/rocketchat-i18n/i18n/lo.i18n.json @@ -1675,7 +1675,8 @@ "Mailer_body_tags": "ທ່ານຕ້ອງການນໍາໃຊ້ [unsubscribe] ສໍາລັບການເຊື່ອມຕໍ່ unsubscription.
ທ່ານອາດຈະນໍາໃຊ້ [name], [fname], [lname] ສໍາລັບຊື່ເຕັມຂອງຜູ້ໃຊ້ໄດ້, ຊື່ທໍາອິດຫຼືຊື່ສຸດທ້າຍ, ຕາມລໍາດັບ.
ທ່ານອາດຈະນໍາໃຊ້ [email] ສໍາລັບອີເມລຂອງຜູ້ໃຊ້ໄດ້.", "Mailing": "ທາງໄປສະນີ", "Make_Admin": "ເຮັດໃຫ້ Admin", - "Make_sure_you_have_a_copy_of_your_codes": "ໃຫ້ແນ່ໃຈວ່າທ່ານມີສໍາເນົາລະຫັດຂອງທ່ານ: __codes__ ຖ້າທ່ານສູນເສຍການເຂົ້າເຖິງ app authenticator ຂອງທ່ານ, ທ່ານສາມາດໃຊ້ລະຫັດໃດຫນຶ່ງທີ່ຈະເຂົ້າສູ່ລະບົບ.", + "Make_sure_you_have_a_copy_of_your_codes_1": "ໃຫ້ແນ່ໃຈວ່າທ່ານມີສໍາເນົາລະຫັດຂອງທ່ານ:", + "Make_sure_you_have_a_copy_of_your_codes_2": "ຖ້າທ່ານສູນເສຍການເຂົ້າເຖິງ app authenticator ຂອງທ່ານ, ທ່ານສາມາດໃຊ້ລະຫັດໃດຫນຶ່ງທີ່ຈະເຂົ້າສູ່ລະບົບ.", "manage-apps": "Manage Apps", "manage-assets": "ຈັດການຊັບສິນ", "manage-assets_description": "ການອະນຸຍາດໃນການຄຸ້ມຄອງຊັບສິນຂອງເຄື່ອງແມ່ຂ່າຍ", @@ -1900,6 +1901,7 @@ "Office_Hours": "ເວລາເຮັດວຽກ", "Office_hours_enabled": "Office Hours Enabled", "Office_hours_updated": "ຊົ່ວໂມງເຮັດວຽກຂອງຫ້ອງການ", + "RetentionPolicy_ExcludePinned": "ຍົກເວັ້ນຂໍ້ຄວາມທີ່ມີ PINned", "Offline": "ອອຟໄລ", "Offline_DM_Email": "ທ່ານໄດ້ຮັບການ messaged ໂດຍກົງໂດຍ __user__", "Offline_Email_Subject_Description": "ທ່ານສາມາດນໍາໃຊ້ບ່ອນວາງສະແດງດັ່ງຕໍ່ໄປນີ້:
  • [Site_Name], [Site_URL], [User] & [Room] ສໍາລັບຊື່ແອັບພລິເຄຊັນ, URL, ຊື່ຜູ້ໃຊ້ແລະຊື່ຫ້ອງການ.
", @@ -2147,7 +2149,6 @@ "RetentionPolicy_AppliesToChannels": "ນໍາໃຊ້ກັບຊ່ອງທາງ", "RetentionPolicy_AppliesToGroups": "ນໍາໃຊ້ກັບກຸ່ມເອກະຊົນ", "RetentionPolicy_AppliesToDMs": "ໃຊ້ກັບຂໍ້ຄວາມໂດຍກົງ", - "RetentionPolicy_ExcludePinned": "ຍົກເວັ້ນຂໍ້ຄວາມທີ່ມີ PINned", "RetentionPolicy_FilesOnly": "ພຽງແຕ່ລຶບໄຟລ໌", "RetentionPolicy_FilesOnly_Description": "ໄຟລ໌ພຽງແຕ່ຈະຖືກລຶບ, ຂໍ້ຄວາມຂອງເຂົາເຈົ້າເອງຈະຢູ່ໃນສະຖານທີ່.", "RetentionPolicy_MaxAge": "Age message ສູງສຸດ", @@ -2220,6 +2221,7 @@ "SAML_Custom_user_data_fieldmap": "ຜູ້ໃຊ້ຂໍ້ມູນພາກສະຫນາມແຜນທີ່", "SAML_Custom_Immutable_Property_Username": "ຊື່ຜູ້ໃຊ້", "SAML_Custom_Public_Cert": "Contents Public Cert", + "SAML_Section_1_User_Interface": "User Interface", "Saturday": "ວັນເສົາ", "Save": "ບັນທຶກ", "save-others-livechat-room-info": "ບັນທຶກຂໍ້ມູນອື່ນ ໆ Livechat Room Info", @@ -2230,7 +2232,7 @@ "Saved": "ບັນທຶກໄວ້", "Saving": "ຝາກປະຢັດ", "Scan_QR_code": "ການນໍາໃຊ້ app authenticator ເຊັ່ນ Google Authenticator, Authy ຫຼື Duo, scan ລະຫັດ QR. ມັນຈະສະແດງລະຫັດທີ່ມີ 6 ຕົວເລກທີ່ທ່ານຈໍາເປັນຕ້ອງເຂົ້າໄປຂ້າງລຸ່ມນີ້.", - "Scan_QR_code_alternative_s": "ຖ້າທ່ານບໍ່ສາມາດສະແກນລະຫັດ QR, ທ່ານອາດໃສ່ລະຫັດດ້ວຍຕົນເອງແທນ: __code__", + "Scan_QR_code_alternative_s": "ຖ້າທ່ານບໍ່ສາມາດສະແກນລະຫັດ QR, ທ່ານອາດໃສ່ລະຫັດດ້ວຍຕົນເອງແທນ:", "Scope": "ຂອບເຂດ", "Screen_Share": "ຫນ້າຈໍ Share", "Script_Enabled": "script ເປີດໃຊ້ວຽກ", diff --git a/packages/rocketchat-i18n/i18n/lt.i18n.json b/packages/rocketchat-i18n/i18n/lt.i18n.json index 8eba2c2a2e06..7e898b696287 100644 --- a/packages/rocketchat-i18n/i18n/lt.i18n.json +++ b/packages/rocketchat-i18n/i18n/lt.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Jūs privalote naudoti [unsubscribe], jei norite atsisakyti prenumeratos nuorodos.
Galite naudoti [name], [fname], [lname] atitinkamai vartotojo vardą, pavardę arba pavardę.
Galite naudoti [el.] Naudotojo el. Paštą.", "Mailing": "Pašto siuntimas", "Make_Admin": "Padaryk administratorių", - "Make_sure_you_have_a_copy_of_your_codes": "Įsitikinkite, kad turite savo kodų kopiją: __codes__ Jei prarasite prieigą prie jūsų autentifikavimo programos, galite prisijungti naudodami vieną iš šių kodų.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Įsitikinkite, kad turite savo kodų kopiją:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Jei prarasite prieigą prie jūsų autentifikavimo programos, galite prisijungti naudodami vieną iš šių kodų.", "manage-apps": "Valdykite programas", "manage-assets": "Valdyti turtus", "manage-assets_description": "Leidimas tvarkyti serverio turtą", @@ -1901,6 +1902,7 @@ "Office_Hours": "Darbo laikas", "Office_hours_enabled": "Darbo valandos įjungtos", "Office_hours_updated": "Darbo valandos atnaujintos", + "RetentionPolicy_ExcludePinned": "Išskirti prisegtus pranešimus", "Offline": "Neprisijungęs", "Offline_DM_Email": "Tiesioginio pranešimo el. Pašto tema", "Offline_Email_Subject_Description": "Galite naudoti šiuos vietoj žodžius:
  • [Site_Name], [Site_URL], [naudotojas] ir [Kambarys] pagal programos pavadinimą, URL, vartotojo vardą ir kambario pavadinimą.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Taikoma kanalams", "RetentionPolicy_AppliesToGroups": "Taikoma privačioms grupėms", "RetentionPolicy_AppliesToDMs": "Taikoma tiesioginiams pranešimams", - "RetentionPolicy_ExcludePinned": "Išskirti prisegtus pranešimus", "RetentionPolicy_FilesOnly": "Ištrinti tik failus", "RetentionPolicy_FilesOnly_Description": "Tik failai bus ištrinti, o pačios žinutės išliks.", "RetentionPolicy_MaxAge": "Maksimalus pranešimo amžius", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Vartotojo duomenų lauko žemėlapis", "SAML_Custom_Immutable_Property_Username": "Vartotojo vardas", "SAML_Custom_Public_Cert": "Viešojo rašto turinys", + "SAML_Section_1_User_Interface": "Vartotojo sąsaja", "Saturday": "Šeštadienis", "Save": "Sutaupyti", "save-others-livechat-room-info": "Išsaugokite kitus \"Livechat\" kambario duomenis", @@ -2231,7 +2233,7 @@ "Saved": "Išsaugotas", "Saving": "Taupymas", "Scan_QR_code": "Naudodami autentifikavimo programą, pvz., \"Google Authenticator\", \"Authy\" arba \"Duo\", nuskaitykite QR kodą. Bus rodomas 6 skaitmenų kodas, kurį turėsite įvesti žemiau.", - "Scan_QR_code_alternative_s": "Jei negalite nuskaityti QR kodo, galite vietoje jo įvesti kodą: __code__", + "Scan_QR_code_alternative_s": "Jei negalite nuskaityti QR kodo, galite vietoje jo įvesti kodą:", "Scope": "Taikymo sritis", "Screen_Share": "Ekrano dalis", "Script_Enabled": "Scenarijus įjungtas", diff --git a/packages/rocketchat-i18n/i18n/lv.i18n.json b/packages/rocketchat-i18n/i18n/lv.i18n.json index 544e49068fd1..c71e3c428177 100644 --- a/packages/rocketchat-i18n/i18n/lv.i18n.json +++ b/packages/rocketchat-i18n/i18n/lv.i18n.json @@ -1680,7 +1680,8 @@ "Mailer_body_tags": "Jums ir jāizmanto [atcelt abonementu] abonementa atsaukuma saitei.
Jūs varat lietot [vārds], [fname], [lname] attiecīgi lietotāja pilnu vārdu, vārdu vai uzvārdu.
Varat izmantot [e-pastu] lietotāja e-pastam.", "Mailing": "Sūta", "Make_Admin": "Iecelt par adminu", - "Make_sure_you_have_a_copy_of_your_codes": "Pārliecinieties, ka jums ir jūsu kodu kopija: kodi Ja jūs zaudējat piekļuvi jūsu autentifikācijas lietotnei, varat izmantot vienu no šiem kodiem, lai pieteiktos.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Pārliecinieties, ka jums ir jūsu kodu kopija:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ja jūs zaudējat piekļuvi jūsu autentifikācijas lietotnei, varat izmantot vienu no šiem kodiem, lai pieteiktos.", "manage-apps": "Pārvaldīt lietotnes", "manage-assets": "Pārvaldīt aktīvus", "manage-assets_description": "Atļauja pārvaldīt servera aktīvus", @@ -1905,6 +1906,7 @@ "Office_Hours": "Darba laiks", "Office_hours_enabled": "Darba laiks ir iespējots", "Office_hours_updated": "Darba laiks ir atjaunināts", + "RetentionPolicy_ExcludePinned": "Izslēgt piespraustos ziņojumus", "Offline": "Bezsaistē", "Offline_DM_Email": "Ziņojuma e-pasta tēma", "Offline_Email_Subject_Description": "Varat izmantot tālāk norādītos aizstājējus:
  • [Site_Name], [Site_URL], [Lietotājs] un [Room] Lietotnes nosaukums, URL, Lietotājvārds un attiecīgi istabas nosaukums.
", @@ -2152,7 +2154,6 @@ "RetentionPolicy_AppliesToChannels": "Attiecas uz kanāliem", "RetentionPolicy_AppliesToGroups": "Attiecas uz privātām grupām", "RetentionPolicy_AppliesToDMs": "Attiecas uz tiešajiem ziņojumiem", - "RetentionPolicy_ExcludePinned": "Izslēgt piespraustos ziņojumus", "RetentionPolicy_FilesOnly": "Dzēst tikai failus", "RetentionPolicy_FilesOnly_Description": "Tiks dzēsti tikai faili, paši ziņojumi paliks.", "RetentionPolicy_MaxAge": "Maksimālais ziņojumu vecums", @@ -2225,6 +2226,7 @@ "SAML_Custom_user_data_fieldmap": "Lietotāja datu lauka karte", "SAML_Custom_Immutable_Property_Username": "Lietotājvārds", "SAML_Custom_Public_Cert": "Publiskā sertifikāta saturs", + "SAML_Section_1_User_Interface": "Lietotāja interfeiss", "Saturday": "Sestdiena", "Save": "Saglabāt", "save-others-livechat-room-info": "Saglabāt citiem Livechat istabas informāciju", @@ -2235,7 +2237,7 @@ "Saved": "Saglabāts", "Saving": "Saglabā", "Scan_QR_code": "Izmantojot autentifikācijas lietotni, piemēram, Google Authenticator, Authy vai Duo, noskenējiet QR kodu. Tajā parādīsies 6 ciparu kods, kas jums jāievada zemāk.", - "Scan_QR_code_alternative_s": "Ja jūs nevarat noskenēt QR kodu, jūs varat ievadīt kodu manuāli vietā: __kods__", + "Scan_QR_code_alternative_s": "Ja jūs nevarat noskenēt QR kodu, jūs varat ievadīt kodu manuāli vietā:", "Scope": "Darbības joma", "Screen_Share": "Ekrāna kopīgošana", "Script_Enabled": "Skripts ir iespējots", diff --git a/packages/rocketchat-i18n/i18n/mn.i18n.json b/packages/rocketchat-i18n/i18n/mn.i18n.json index 726327dad225..a735c6861174 100644 --- a/packages/rocketchat-i18n/i18n/mn.i18n.json +++ b/packages/rocketchat-i18n/i18n/mn.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Та ашиглах ёстой [b] захиалгын холбоосын холбоосыг [бүртгэлээс хасах] ашиглах ёстой.
Та [нэр], [fname], [lname] хэрэглэгчийн бүтэн нэр, эхний нэр эсвэл овог нэрийг ашиглана.
Та хэрэглэгчийн имэйлд зориулж [имэйл] ашиглаж болно.", "Mailing": "Захидал", "Make_Admin": "Админ хийх", - "Make_sure_you_have_a_copy_of_your_codes": "Та өөрийн кодын хуулбар байгаа эсэхийг шалгана уу: __codes__ Хэрэв та өөрийн тань аппликэшн програмд ​​хандалт хийхээ больсон бол та эдгээр кодын аль нэгийг ашиглаж болно.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Та өөрийн кодын хуулбар байгаа эсэхийг шалгана уу:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Хэрэв та өөрийн тань аппликэшн програмд ​​хандалт хийхээ больсон бол та эдгээр кодын аль нэгийг ашиглаж болно.", "manage-apps": "Апп-г удирдах боломжтой", "manage-assets": "Активыг удирдах", "manage-assets_description": "Серверийн активыг удирдах зөвшөөрөл", @@ -1901,6 +1902,7 @@ "Office_Hours": "Ажлын цаг", "Office_hours_enabled": "Оффисын цаг идэвхжсэн", "Office_hours_updated": "Ажлын цаг шинэчлэгдсэн", + "RetentionPolicy_ExcludePinned": "Тэмдэглэсэн зурвасуудыг хасна уу", "Offline": "Офлайн", "Offline_DM_Email": "Шууд мессеж И-мэйл хаяг", "Offline_Email_Subject_Description": "Та дараах нэршлийн газруудыг ашиглаж болно:
  • [Site_Name], [Site_URL], [Хэрэглэгчийн] & [Room] нь Application Name, URL, Username, Roomname-г тус тусад нь хэрэглэж болно.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Суваг ашиглах", "RetentionPolicy_AppliesToGroups": "Хувийн бүлгүүдэд хэрэглэнэ", "RetentionPolicy_AppliesToDMs": "Мессежийг ашиглахад ашигладаг", - "RetentionPolicy_ExcludePinned": "Тэмдэглэсэн зурвасуудыг хасна уу", "RetentionPolicy_FilesOnly": "Зөвхөн файлуудыг устгах", "RetentionPolicy_FilesOnly_Description": "Зөвхөн файлууд устах болно, мэдээнүүд нь өөрөө биелэгдэх болно.", "RetentionPolicy_MaxAge": "Мессежний хамгийн их нас", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "Хэрэглэгчийн өгөгдлийн хээрийн газрын зураг", "SAML_Custom_Immutable_Property_Username": "Хэрэглэгчийн нэр", "SAML_Custom_Public_Cert": "Нийтийн гэрчилгээний агуулга", + "SAML_Section_1_User_Interface": "Хэрэглэгчийн интерфэйс", "Saturday": "Бямба", "Save": "Хадгалах", "save-others-livechat-room-info": "Бусад Livechat Өрөөний мэдээллийг ав", @@ -2231,7 +2233,7 @@ "Saved": "Хадгалсан", "Saving": "Хадгалж байна", "Scan_QR_code": "Google Authenticator, Authy эсвэл Duo зэрэг таниулгагч аппликейшн ашиглан QR кодыг хайна уу. Энэ нь доорх 6 оронтой кодыг харуулах болно.", - "Scan_QR_code_alternative_s": "Хэрэв та QR кодыг скан хийж чадахгүй бол дараах кодыг гараар оруулж болно: __code__", + "Scan_QR_code_alternative_s": "Хэрэв та QR кодыг скан хийж чадахгүй бол дараах кодыг гараар оруулж болно:", "Scope": "Хамрах хүрээ", "Screen_Share": "Дэлгэцийн хуваалцах", "Script_Enabled": "Скриптийг идэвхжүүлсэн", diff --git a/packages/rocketchat-i18n/i18n/ms-MY.i18n.json b/packages/rocketchat-i18n/i18n/ms-MY.i18n.json index c7b839d6b156..b1499fdcb5e1 100644 --- a/packages/rocketchat-i18n/i18n/ms-MY.i18n.json +++ b/packages/rocketchat-i18n/i18n/ms-MY.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Anda mesti menggunakan [unsubscribe] untuk pautan langganan.
Anda boleh menggunakan [nama], [fname], [lname] bagi nama penuh pengguna, nama pertama atau nama akhir, masing-masing.
Anda boleh menggunakan [email] untuk e-mel pengguna.", "Mailing": "Mailing", "Make_Admin": "Lantik Pentadbir", - "Make_sure_you_have_a_copy_of_your_codes": "Pastikan anda mempunyai salinan kod anda: __codes__ Jika anda kehilangan akses ke aplikasi pengesah anda, anda boleh menggunakan salah satu daripada kod ini untuk log masuk.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Pastikan anda mempunyai salinan kod anda:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Jika anda kehilangan akses ke aplikasi pengesah anda, anda boleh menggunakan salah satu daripada kod ini untuk log masuk.", "manage-apps": "Urus Apl", "manage-assets": "Urus Aset", "manage-assets_description": "Kebenaran untuk menguruskan aset pelayan", @@ -1910,6 +1911,7 @@ "Office_Hours": "Waktu pejabat", "Office_hours_enabled": "Waktu Pejabat Dihidupkan", "Office_hours_updated": "Waktu pejabat dikemas kini", + "RetentionPolicy_ExcludePinned": "Kecualikan mesej yang disematkan", "Offline": "offline", "Offline_DM_Email": "Anda telah menghantar mesej langsung oleh __user__", "Offline_Email_Subject_Description": "Anda boleh menggunakan pemegang tempat berikut:
  • [Site_Name], [Site_URL], [Pengguna] & [Bilik] masing-masing.
", @@ -2157,7 +2159,6 @@ "RetentionPolicy_AppliesToChannels": "Terpakai kepada saluran", "RetentionPolicy_AppliesToGroups": "Terpakai kepada kumpulan swasta", "RetentionPolicy_AppliesToDMs": "Terpakai untuk mengarahkan mesej", - "RetentionPolicy_ExcludePinned": "Kecualikan mesej yang disematkan", "RetentionPolicy_FilesOnly": "Hanya padamkan fail", "RetentionPolicy_FilesOnly_Description": "Hanya fail yang akan dipadam, mesej itu sendiri akan kekal di tempat.", "RetentionPolicy_MaxAge": "Umur mesej maksimum", @@ -2230,6 +2231,7 @@ "SAML_Custom_user_data_fieldmap": "Pengguna Data Field Peta", "SAML_Custom_Immutable_Property_Username": "Nama pengguna", "SAML_Custom_Public_Cert": "Kandungan Sijil Awam", + "SAML_Section_1_User_Interface": "Antaramuka pengguna", "Saturday": "Sabtu", "Save": "Simpan", "save-others-livechat-room-info": "Simpan Lain-lain Maklumat Bilik Livechat", @@ -2240,7 +2242,7 @@ "Saved": "disimpan", "Saving": "Menyelamatkan", "Scan_QR_code": "Menggunakan aplikasi pengeset seperti Google Authenticator, Authy atau Duo, imbas kod QR. Ia akan memaparkan kod 6 digit yang anda perlu masukkan di bawah.", - "Scan_QR_code_alternative_s": "Jika anda tidak dapat mengimbas kod QR, anda boleh memasukkan kod secara manual sebaliknya: __code__", + "Scan_QR_code_alternative_s": "Jika anda tidak dapat mengimbas kod QR, anda boleh memasukkan kod secara manual sebaliknya:", "Scope": "Skop", "Screen_Share": "skrin Kongsi", "Script_Enabled": "Script Didayakan", diff --git a/packages/rocketchat-i18n/i18n/nl.i18n.json b/packages/rocketchat-i18n/i18n/nl.i18n.json index 83a507b88b45..ebdd2a279b6b 100644 --- a/packages/rocketchat-i18n/i18n/nl.i18n.json +++ b/packages/rocketchat-i18n/i18n/nl.i18n.json @@ -609,7 +609,6 @@ "Closed_by_visitor": "Gesloten door bezoeker", "Closing_chat": "closing-chat", "Cloud": "Cloud", - "Cloud_connect_support": "Als u nog steeds geen registratie-e-mail heeft ontvangen, zorg er dan voor dat uw e-mail hierboven is bijgewerkt. Als u nog steeds problemen ondervindt, kunt u contact opnemen met ondersteuning op", "Cloud_console": "Cloud Console", "Cloud_what_is_it": "Wat is dit?", "Cloud_what_is_it_description": "Met Rocket.Chat Cloud Connect kunt u uw door uzelf gehoste Rocket.Chat-werkruimte verbinden met services die we in onze cloud aanbieden.", @@ -1804,7 +1803,8 @@ "Mailer_body_tags": "Je moet [unsubscribe] gebruiken voor een unsubscribe link.
Je kunt [name], [fname], [lname] gebruiken voor een gebruikers volledige naam, voorname of achtername.
Je kunt [email] gebruiken voor het email adres van de gebruiker.", "Mailing": "Mailing", "Make_Admin": "Maak Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Zorg ervoor dat u een kopie van uw codes hebt: __codes__ Als u de toegang tot uw authenticator-app verliest, kunt u een van deze codes gebruiken om u aan te melden.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Zorg ervoor dat u een kopie van uw codes hebt:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Als u de toegang tot uw authenticator-app verliest, kunt u een van deze codes gebruiken om u aan te melden.", "manage-apps": "Apps beheren", "manage-assets": "Beheer activa", "manage-assets_description": "Toestemming om de serveractiva te beheren", @@ -2042,6 +2042,7 @@ "Office_Hours": "Kantoortijden", "Office_hours_enabled": "Kantooruren ingeschakeld", "Office_hours_updated": "Kantooruren bijgewerkt", + "RetentionPolicy_ExcludePinned": "Sluit vastgezette berichten uit", "Offline": "offline", "Offline_DM_Email": "Je hebt direct zijn messaged door __user__", "Offline_Email_Subject_Description": "U kunt de volgende tijdelijke aanduidingen gebruiken:
  • [Site_Name], [Site_URL], [User] en [Room] voor respectievelijk de app-naam, URL, gebruikersnaam en roomname.
", @@ -2305,7 +2306,6 @@ "RetentionPolicy_AppliesToChannels": "Geldt voor kanalen", "RetentionPolicy_AppliesToGroups": "Geldt voor privégroepen", "RetentionPolicy_AppliesToDMs": "Geldt voor directe berichten", - "RetentionPolicy_ExcludePinned": "Sluit vastgezette berichten uit", "RetentionPolicy_FilesOnly": "Alleen bestanden verwijderen", "RetentionPolicy_FilesOnly_Description": "Alleen bestanden worden verwijderd, de berichten zelf blijven op hun plaats.", "RetentionPolicy_MaxAge": "Maximale berichtleeftijd", @@ -2382,6 +2382,7 @@ "SAML_Custom_user_data_fieldmap": "User Data Field Map", "SAML_Custom_Immutable_Property_Username": "Gebruikersnaam", "SAML_Custom_Public_Cert": "Public Cert Contents", + "SAML_Section_1_User_Interface": "Gebruikersomgeving", "Saturday": "Zaterdag", "Save": "Bewaren", "save-others-livechat-room-info": "Sla anderen op Livechat Room Info", @@ -2394,7 +2395,7 @@ "Saved": "Opgeslagen", "Saving": "Opslaan", "Scan_QR_code": "Gebruik de authenticator-app zoals Google Authenticator, Authy of Duo om de QR-code te scannen. Het toont een 6-cijferige code die je hieronder moet invoeren.", - "Scan_QR_code_alternative_s": "Als u de QR-code niet kunt scannen, kunt u in plaats daarvan de code handmatig invoeren: __code__", + "Scan_QR_code_alternative_s": "Als u de QR-code niet kunt scannen, kunt u in plaats daarvan de code handmatig invoeren:", "Scope": "strekking", "Screen_Share": "Scherm delen", "Script_Enabled": "script Ingeschakeld", diff --git a/packages/rocketchat-i18n/i18n/no.i18n.json b/packages/rocketchat-i18n/i18n/no.i18n.json index e6cae8e54ce9..938fee9f97b9 100644 --- a/packages/rocketchat-i18n/i18n/no.i18n.json +++ b/packages/rocketchat-i18n/i18n/no.i18n.json @@ -1749,7 +1749,8 @@ "Mailer_body_tags": "Du bruke [unsubscribe] for unsubscription linken.
Du kan bruke [navn], [fname], [lname] for brukerens fulle navn, fornavn eller etternavn.
Du kan bruke [e-post] for brukerens e-post.", "Mailing": "mailing", "Make_Admin": "Gjør admin", - "Make_sure_you_have_a_copy_of_your_codes": "Kontroller at du har en kopi av kodene dine: __codes__ Hvis du mister tilgang til autentiseringsprogrammet, kan du bruke en av disse kodene for å logge inn.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Kontroller at du har en kopi av kodene dine:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Hvis du mister tilgang til autentiseringsprogrammet, kan du bruke en av disse kodene for å logge inn.", "manage-apps": "Administrer apper", "manage-assets": "Administrer eiendeler", "manage-assets_description": "Tillatelse til å administrere serverenes eiendeler", @@ -1977,6 +1978,7 @@ "Office_Hours": "Kontortid", "Office_hours_enabled": "Kontortimer aktivert", "Office_hours_updated": "Kontortid oppdatert", + "RetentionPolicy_ExcludePinned": "Ekskluder pinnede meldinger", "Offline": "offline", "Offline_DM_Email": "Direkte e-post-emne", "Offline_Email_Subject_Description": "Du kan bruke følgende plassholdere:
  • [Site_Name], [Site_URL], [User] og [Room] for henholdsvis søknadens navn, URL, brukernavn og romnavn.
", @@ -2224,7 +2226,6 @@ "RetentionPolicy_AppliesToChannels": "Gjelder kanaler", "RetentionPolicy_AppliesToGroups": "Gjelder for private grupper", "RetentionPolicy_AppliesToDMs": "Gjelder direkte meldinger", - "RetentionPolicy_ExcludePinned": "Ekskluder pinnede meldinger", "RetentionPolicy_FilesOnly": "Bare slett filer", "RetentionPolicy_FilesOnly_Description": "Bare filer vil bli slettet, meldingene selv vil forbli på plass.", "RetentionPolicy_MaxAge": "Maksimal meldingsalder", @@ -2297,6 +2298,7 @@ "SAML_Custom_user_data_fieldmap": "Brukerdatafeltkart", "SAML_Custom_Immutable_Property_Username": "Brukernavn", "SAML_Custom_Public_Cert": "Offentlig sertifisering", + "SAML_Section_1_User_Interface": "Brukergrensesnitt", "Saturday": "lørdag", "Save": "Lagre", "save-others-livechat-room-info": "Lagre andre Livechat Room Info", @@ -2307,7 +2309,7 @@ "Saved": "lagret", "Saving": "besparende", "Scan_QR_code": "Bruk en autentiseringsapp som Google Authenticator, Authy eller Duo, skann QR-koden. Det vil vise en 6-sifret kode som du må skrive inn nedenfor.", - "Scan_QR_code_alternative_s": "Hvis du ikke kan skanne QR-koden, kan du skrive inn kode manuelt i stedet: __code__", + "Scan_QR_code_alternative_s": "Hvis du ikke kan skanne QR-koden, kan du skrive inn kode manuelt i stedet:", "Scope": "omfang", "Screen_Share": "Skjermdel", "Script_Enabled": "Skript aktivert", diff --git a/packages/rocketchat-i18n/i18n/pl.i18n.json b/packages/rocketchat-i18n/i18n/pl.i18n.json index 8affb91817d9..72e786f03f90 100644 --- a/packages/rocketchat-i18n/i18n/pl.i18n.json +++ b/packages/rocketchat-i18n/i18n/pl.i18n.json @@ -9,9 +9,14 @@ "2_Erros_Information_and_Debug": "2 - Błędy, Informacje i debugowanie", "@username": "@nazwa_użytkownika", "@username_message": "@nazwa_użytkownika ", + "__count__empty_rooms_will_be_removed_automatically": "__count__ pustych pokoi zostanie automatycznie usuniętych.", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "__count__ pustych pokoi zostanie automatycznie usuniętych:
__rooms__.", "__username__is_no_longer__role__defined_by__user_by_": "__username__ nie jest już __role__ przez __user_by__", "__username__was_set__role__by__user_by_": "__username__ ustalono __role__ przez __user_by__", "%_of_conversations": "% konwersacji", + "A_new_owner_will_be_assigned_automatically_to__count__rooms": "Właściciel zostanie automatycznie przypisany do __count__ pokoi.", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "Nowy właściciel zostanie automatycznie przypisany do pokoju o nazwie __roomName__", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "Nowy właściciel zostanie automatyczne przypisany do tych __count__ pokoi:
__rooms__.", "Accept": "Akceptuj", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Akceptuj przychodzące zaproszenia do livechat nawet gdy brak agentów online", "Accept_new_livechats_when_agent_is_idle": "Akceptuj nowe żądania livechat, gdy agent jest bezczynny", @@ -209,6 +214,7 @@ "Accounts_ShowFormLogin": "Pokaż domyślny formularz logowania", "Accounts_TwoFactorAuthentication_By_Email_Enabled": "Włącz uwierzytelnienie dwuskładnikowe przez e-mail", "Accounts_TwoFactorAuthentication_By_Email_Enabled_Description": "Użytkownicy z potwierdzonym adresem e-mail i włączoną opcją na stronie swojego profilu otrzymają wiadomość e-mail z tymczasowym kodem do autoryzacji akcji, takich jak logowanie, zapisywanie profilu, itp.", + "Accounts_TwoFactorAuthentication_By_Email_Auto_Opt_In": "Uruchom automatycznie autoryzację dwustopniową dla nowych użytkowników", "Accounts_TwoFactorAuthentication_By_Email_Auto_Opt_In_Description": "Nowi użytkownicy będą mieć dwuskładnikowe uwierzytelnianie przez email domyślnie włączone. Mogą je wyłączyć na swojej stronie profilu.", "Accounts_TwoFactorAuthentication_By_Email_Code_Expiration": "Czas wygaśnięcia kodu wysłanego przez email w sekundach", "Accounts_TwoFactorAuthentication_Enabled": "Włącz uwierzytelnianie dwuetapowe", @@ -651,6 +657,7 @@ "Chatpal_Batch_Size_Description": "Rozmiar wsadu dokumentów indeksowych (przy ładowaniu początkowym)", "Chatpal_create_key": "Utwórz klucz", "Chatpal_created_key_successfully": "Klucz API został pomyślnie utworzony", + "Chatpal_Current_Room_Only": "Ten sam pokój", "Chatpal_Default_Result_Type": "Domyślny typ wyniku", "Chatpal_Default_Result_Type_Description": "Określa, który typ wyniku jest pokazywany przez wynik. Wszystko oznacza, że ​​zapewniony jest przegląd dla wszystkich typów.", "Chatpal_Email_Address": "Adres email", @@ -674,8 +681,8 @@ "Chatpal_one_search_result": "Znaleziono 1 wynik", "Chatpal_Rooms": "Pokoje", "Chatpal_run_search": "Szukaj", - "Chatpal_search_page_of": "Strona%s z%s", - "Chatpal_search_results": "Znaleziono wyniki%s", + "Chatpal_search_page_of": "Strona%s z %s", + "Chatpal_search_results": "Znaleziono %s wyników", "Chatpal_Search_Results": "Wyniki wyszukiwania", "Chatpal_Suggestion_Enabled": "Sugestie włączone", "Chatpal_TAC_read": "Przeczytałem warunki i zasady", @@ -710,7 +717,7 @@ "Click_to_load": "Kliknij, aby załadować", "Client_ID": "Client ID", "Client_Secret": "Client Secret", - "Clients_will_refresh_in_a_few_seconds": "Klienci będą odświeżeni w ciągu kilku sekund", + "Clients_will_refresh_in_a_few_seconds": "Klienci zostaną odświeżeni w ciągu kilku sekund", "close": "zamknij", "Close": "Zamknij", "close-livechat-room": "Zamknij pokój Livechat", @@ -731,7 +738,6 @@ "Cloud_register_offline_helper": "Workspace może być zarejestrowany manualnie jeśli nie ma dostępu do sieci. Przekopiuj poniższy tekst i przejdź do Cloud Console aby zakończyć proces.", "Cloud_register_success": "Twój workspace został pomyślnie zarejestrowany.", "Cloud_register_error": "Nastąpił błąd przy próbie przetworzenia Twojego żądania. Proszę spróbować ponownie później.", - "Cloud_connect_support": "Jeśli nadal nie otrzymałeś e-maila rejestracyjnego, upewnij się, że Twój e-mail został zaktualizowany powyżej. Jeśli nadal masz problemy, możesz skontaktować się z pomocą techniczną pod adresem", "Cloud_console": "Konsola w chmurze", "Cloud_Info": "Chmura", "Cloud_what_is_it": "Co to jest?", @@ -1041,7 +1047,7 @@ "Country_Zambia": "Zambia", "Country_Zimbabwe": "Zimbabwe", "Cozy": "Wygodny", - "Create": "Stwórz", + "Create": "Utwórz", "create-c": "Utwórz kanały publiczne", "create-c_description": "Zezwolenie na tworzenie kanałów publicznych", "create-d": "Twórz bezpośrednie wiadomości", @@ -1170,7 +1176,7 @@ "Department": "Departament", "Department_removed": "Oddział usunięty", "Departments": "Oddziały", - "Deployment_ID": "Deployment ID", + "Deployment_ID": "ID wdrożenia", "Description": "Opis", "Desktop": "Pulpit", "Desktop_Notification_Test": "Test powiadomienia na ekranie", @@ -1592,6 +1598,8 @@ "FileUpload_MaxFileSize": "Maksymalny rozmiar przesłanego pliku (w bajtach)", "FileUpload_MaxFileSizeDescription": "Ustaw wartość na -1, aby usunąć ograniczenie wielkości pliku.", "FileUpload_MediaType_NotAccepted": "Typy mediów nie są akceptowane", + "FileUpload_MediaTypeBlackList": "Zablokowane rodzaje mediów", + "FileUpload_MediaTypeBlackListDescription": "Lista rodzajów mediów oddzielona przecinkami. To ustawienie jest nadrzędne dla ustawienia Akceptowane typy mediów", "FileUpload_MediaTypeWhiteList": "Dozwolone typy plików", "FileUpload_MediaTypeWhiteListDescription": "Typy plików, oddzielone przecinkami. Pozostaw puste, by akceptować wszystkie.", "FileUpload_ProtectFiles": "Ochrona przesłanych plików", @@ -1677,7 +1685,7 @@ "Get_link": "Skopiuj link", "Generate_New_Link": "Wygeneruj nowy link", "github_no_public_email": "Nie posiadasz publicznego konta e-mail przypisanego do swojego profilu GitHub.", - "Give_a_unique_name_for_the_custom_oauth": "Podaj unikalną nazwę dla własnego serwisu OAuth", + "Give_a_unique_name_for_the_custom_oauth": "Podaj unikalną nazwę dla własnego OAuth", "Give_the_application_a_name_This_will_be_seen_by_your_users": "Nadaj aplikacji nazwę. Będzie ona widoczna dla użytkowników.", "Global": "Światowy", "Global Policy": "Reguły globalne", @@ -1793,7 +1801,7 @@ "Importer_CSV_Information": "Importer CSV wymaga określonego formatu, zapoznaj się z dokumentacją dotyczącą struktury pliku ZIP:", "Importer_done": "Importowanie zakończone!", "Importer_finishing": "Kończąc się na import.", - "Importer_From_Description": "Import __from__ 's dane do Rocket.Chat.", + "Importer_From_Description": "Import danych __from__ 's do Rocket.Chat.", "Importer_HipChatEnterprise_BetaWarning": "Należy pamiętać, że ten import jest nadal w toku, zgłoś wszelkie błędy występujące w GitHub:", "Importer_HipChatEnterprise_Information": "Przesłany plik musi być odszyfrowanym tar.gz. Aby uzyskać więcej informacji, przeczytaj dokumentację:", "Importer_import_cancelled": "Importowanie anulowane.", @@ -2131,12 +2139,14 @@ "LDAP_Sync_User_Data_Groups_AutoChannels_Admin_Description": "Kiedy kanały są automatycznie tworzone ponieważ nie istnieją podczas synchronizacji, użytkownik ten automatycznie staje się administratorem kanału.", "LDAP_Sync_User_Data_Groups_AutoChannels_Description": "Włączenie tej funkcji umożliwia automatyczne dodawanie użytkowników do kanału w oparciu o ich grupę LDAP. Jeśli chcesz także usunąć użytkowników z kanału, zobacz poniższą opcję dotyczącą automatycznego usuwania użytkowników.", "manage-own-integrations": "Zarządzaj własnymi integracjami", + "LDAP_Sync_User_Data_Groups_AutoChannelsMap": "Mapa grup LDAP kanału Channel", "manage-own-integrations_description": "Zezwolenie na zezwolenie użytkownikom na tworzenie i edytowanie własnej integracji lub webhooków", "LDAP_Sync_User_Data_Groups_AutoChannelsMap_Default": "// Włączyć Auto Sync LDAP Groups do Channels powyżej", "LDAP_Sync_User_Data_Groups_AutoChannelsMap_Description": "Mapuj grupy LDAP do kanałów Rocket.Chat.
Jako przykład, `{\"employee\":\"general\"}` doda dowolnego użytkownika w grupie LDAP employee, do ogólnego kanału.", "LDAP_Sync_User_Data_Groups_AutoRemove": "Automatyczne usuwanie roli użytkownika", "LDAP_Sync_User_Data_Groups_AutoRemove_Description": "**Uwaga** Włączenie tego spowoduje automatyczne usunięcie użytkowników z roli, jeśli nie są oni przypisani w LDAP! Spowoduje to automatyczne usunięcie tylko tych ról, które są ustawione dla user data group map poniżej.", "LDAP_Sync_User_Data_Groups_BaseDN": "LDAP Group BaseDN", + "LDAP_Sync_User_Data_Groups_BaseDN_Description": "LDAP BaseDN do wyszukiwania użytkowników.", "LDAP_Sync_User_Data_Groups_Enforce_AutoChannels": "Automatyczne usuwanie użytkowników z kanałów", "LDAP_Sync_User_Data_Groups_Enforce_AutoChannels_Description": "**Uwaga** Włączenie tej funkcji spowoduje usunięcie wszystkich użytkowników z kanału, który nie posiada odpowiadającej im grupy LDAP! Włączaj to tylko wtedy, gdy wiesz, co robisz.", "LDAP_Sync_User_Data_Groups_Filter": "Filtr grupy użytkowników", @@ -2203,6 +2213,10 @@ "Livechat_title_color": "Kolor tła nagłówka Livechat", "Livechat_transcript_sent": "Wysłano transkrypcję Livechat", "Livechat_transfer_to_agent": "__from__ przekazany chat do __to__", + "Livechat_transfer_to_agent_with_a_comment": "__from__ przeniósł czat do __to__ z komentarzem: __comment__", + "Livechat_transfer_to_department": "__from__ przeniósł czat do departamentu __to__", + "Livechat_transfer_to_department_with_a_comment": "__from__ przeniósł czat do departamentu __to__ z komentarzem: __comment__", + "Livechat_transfer_return_to_the_queue": "__from__ przywrócił czat do kolejki", "Livechat_Triggers": "Livechat Triggers", "Livechat_Users": "Użytkownicy Livechat`a", "LiveStream & Broadcasting": "LiveStream & Broadcasting", @@ -2260,7 +2274,8 @@ "Mailer_body_tags": "Musisz użyć znacznika [unsubscribe] aby zawrzeć w treści odnośnik do rezygnacji z subskrypcji.
Możesz użyć znaczników [name], [fname], [lname] by wstawić odpowiednio pełną nazwę użytkownika, jego imię, nazwisko.
Możesz użyć znacznika [email] by wstawić adres email użytkownika.", "Mailing": "Mailing", "Make_Admin": "Przydziel Admina", - "Make_sure_you_have_a_copy_of_your_codes": "Upewnij się, że masz kopię kodów: __codes__ Jeśli utracisz dostęp do aplikacji uwierzytelniającej, możesz zalogować się przy użyciu jednego z tych kodów.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Upewnij się, że masz kopię kodów:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Jeśli utracisz dostęp do aplikacji uwierzytelniającej, możesz zalogować się przy użyciu jednego z tych kodów.", "manage-apps": "Zarządzać aplikacjami", "manage-assets": "Zarządzaj aktywami", "manage-assets_description": "Zezwolenie na zarządzanie zasobami serwera", @@ -2389,6 +2404,7 @@ "Message_HideType_subscription_role_removed": "Ukryj wiadomość \"Rola już nie ma definicji\"", "Message_HideType_room_archived": "Ukryj wiadomości \"Room Archived\"", "Message_HideType_room_unarchived": "Ukryj wiadomości \"Room Unarchived\"", + "Message_HideType_room_changed_privacy": "Ukryj wiadomości \"Typ Room został zmienony\"", "Hide_System_Messages": "Ukryj wiadomości systemowe", "Message_Id": "ID wiadomości", "Message_Ignored": "Ta wiadomość została zignorowana", @@ -2446,7 +2462,7 @@ "minute": "minuta", "minutes": "minut", "Mobile": "Powiadomnienia mobilne", - "Mobile_Notifications_Default_Alert": "Domyślne powiadomnienia mobilne", + "Mobile_Notifications_Default_Alert": "Domyślne powiadomienia mobilne", "Monday": "Poniedziałek", "Mongo_version": "Wersja bazy Mongo", "Mongo_storageEngine": "Silnik Mongo", @@ -2523,7 +2539,7 @@ "No_groups_yet": "Nie masz prywatnych grup.", "No_integration_found": "Nie znaleziono integracji za pomocą podanego identyfikatora.", "No_livechats": "Nie masz żadnych livechatów.", - "No_mentions_found": "Nie znaleziono wzmianek o tobie", + "No_mentions_found": "Nie znaleziono wzmianek", "No_messages_yet": "Brak wiadomości", "No_pages_yet_Try_hitting_Reload_Pages_button": "Brak jeszcze stron. Spróbuj nacisnąć przycisk \"Załaduj ponownie strony\".", "No_pinned_messages": "Brak przypiętych wiadomości", @@ -2567,6 +2583,7 @@ "Number_of_federated_users": "Liczba użytkowników Federation", "Number_of_federated_servers": "Liczba serwerów w Federation", "Number_of_messages": "Ilość wiadomości", + "RetentionPolicy_DoNotExcludeDiscussion": "Nie wykluczaj wiadomości w dyskusjach", "OAuth Apps": "Aplikacje OAuth", "OAuth_Application": "Aplikacja OAuth", "OAuth_Applications": "Aplikacje OAuth", @@ -2577,6 +2594,7 @@ "Office_Hours": "Godziny pracy", "Office_hours_enabled": "Godziny urzędowania włączone", "Office_hours_updated": "Godziny pracy zostały zaktualizowane", + "RetentionPolicy_ExcludePinned": "Wyklucz podpięte wiadomości", "Offline": "Offline", "Offline_DM_Email": "Dostałeś nową wiadomość bezpośrednią od __user__", "Offline_Email_Subject_Description": "Możesz użyć następujących symboli zastępczych:
  • [Nazwa witryny], [Site_URL], [User] i [Room] odpowiednio dla nazwy aplikacji, adresu URL, nazwy użytkownika i nazwy pokoju.
", @@ -2629,7 +2647,7 @@ "Original": "Oryginalny", "OS_Arch": "Architektura systemu", "OS_Cpus": "Ilość procesorów", - "OS_Freemem": "Ilość wolnej pamięci", + "OS_Freemem": "Ilość wolnej pamięci systemu", "OS_Loadavg": "Średnie obciążenie systemu", "OS_Platform": "Platforma systemu", "OS_Release": "Wydanie systemu", @@ -2671,7 +2689,7 @@ "Pinned_Messages": "Przypięte wiadomości", "pinning-not-allowed": "Przypinanie niedozwolone", "PiwikAdditionalTrackers": "Dodatkowe witryny Piwik", - "PiwikAdditionalTrackers_Description": "Wprowadź dodatkowe adresy URL stron internetowych Piwik i SiteID w następującym formacie, jeśli chcesz śledzić te same dane w różnych witrynach: [{trackerURL \":\" https: //my.piwik.domain2/ \",\" siteId \": 42}, {\"trackerURL\": \"https: //my.piwik.domain3/\", \"siteId\": 15}]", + "PiwikAdditionalTrackers_Description": "Wprowadź dodatkowe adresy URL stron internetowych Piwik i SiteID w następującym formacie, jeśli chcesz śledzić te same dane w różnych witrynach: [{ \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }{ \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 }, ]", "PiwikAnalytics_cookieDomain": "Wszystkie subdomeny", "PiwikAnalytics_cookieDomain_Description": "Śledź odwiedzających we wszystkich subdomenach", "PiwikAnalytics_domains": "Ukryj wychodzące linki", @@ -2892,7 +2910,6 @@ "Retail": "Sprzedaż", "Retention_setting_changed_successfully": "Zmieniono ustawienie zasad przechowywania", "RetentionPolicy": "Zasady przechowywania", - "RetentionPolicy_DoNotExcludeDiscussion": "Nie wykluczaj wiadomości w dyskusjach", "RetentionPolicy_RoomWarning": "Wiadomości starsze niż __time__ są tutaj automatycznie przycinane", "RetentionPolicy_RoomWarning_Unpinned": "Odpinane wiadomości starsze niż __time__ są tutaj automatycznie przycinane", "RetentionPolicy_RoomWarning_FilesOnly": "Pliki starsze niż __time__ są automatycznie przycinane tutaj (wiadomości pozostają nienaruszone)", @@ -2902,7 +2919,6 @@ "RetentionPolicy_AppliesToChannels": "Dotyczy kanałów", "RetentionPolicy_AppliesToGroups": "Dotyczy grup prywatnych", "RetentionPolicy_AppliesToDMs": "Dotyczy bezpośrednich wiadomości", - "RetentionPolicy_ExcludePinned": "Wyklucz podpięte wiadomości", "RetentionPolicy_FilesOnly": "Usuwaj tylko pliki", "RetentionPolicy_FilesOnly_Description": "Tylko pliki zostaną usunięte, same wiadomości pozostaną na swoim miejscu.", "RetentionPolicy_MaxAge": "Maksymalny wiek wiadomości", @@ -2970,7 +2986,7 @@ "SAML": "SAML", "SAML_Custom_Authn_Context": "Custom Authn Context", "SAML_Custom_Authn_Context_Comparison": "Authn Context Comparison", - "SAML_Custom_Authn_Context_description": "Pozostaw to puste, aby pominąć kontekst authn z request'a.", + "SAML_Custom_Authn_Context_description": "Pozostaw to puste, aby pominąć kontekst authn z request'a.\n\nBy dodawać wiele kontekstów authn, dodaj dodatkowe bezpośrednio do ustawienia __AuthnContext Template__ setting.", "SAML_Custom_Cert": "Własny certyfikat", "SAML_Custom_Debug": "Włącz debugowanie", "SAML_Custom_Entry_point": "Niestandardowy punkt wejścia", @@ -2988,7 +3004,7 @@ "SAML_Custom_signature_validation_all": "Weryfikacja wszystkich podpisów", "SAML_Custom_signature_validation_type_description": "To ustawienie będzie zignorowane jeżeli został dostarczony niestandardowy certyfikat.", "SAML_Custom_user_data_fieldmap": "Mapa pól użytkownika", - "SAML_Custom_user_data_fieldmap_description": "Skonfiguruj w jaki sposób pola konta użytkownika (np. e-mail) są przenoszone z rekordu w SAML (raz znalezionego).
Jako przykład, `{\"cn\":\"name\", \"mail\":\"email\"}` wybierze czytelne dla człowieka imię z atrybutu cn, a ich email z atrybutu mail.
Dostępne pola w Rocket.Chat: `name`, `email` i `username`, wszystko inne zostanie zapisane jako `customFields`.
Możesz także użyć regexu, aby uzyskać wartość pola, jak ta: `{\"NameID\": { \"field\": \"username\", \"regex\": \"(.*)@.+$\"}, \"email\": ``\"email\"}`", + "SAML_Custom_user_data_fieldmap_description": "Skonfiguruj w jaki sposób pola konta użytkownika (np. e-mail) są przenoszone z rekordu w SAML (raz znalezionego). Na przykład, `{\"name\":\"cn\", \"email\":\"mail\"}` wybierze czytelne dla człowieka imię z atrybutu cn, a ich email z atrybutu mail. Dostępne pola w Rocket.Chat: `name`, `email` i `username`, wszystko inne zostanie zapisane jako `customFields`. \nPrzypisz nazwę do stałego atrybutu '__identifier__' by użyć ją jako identyfikator użytkownika.\nMożesz także użyć wyrażenia regularnego i szablonu. Szablony będą przetwarzanie jako pierwszej, za wyjątkiem sytuacji gdy odwołują się do wyniku wyrażenia regularnego.\n```\n{\n \"email\": \"mail\",\n \"username\": {\n \"fieldName\": \"mail\",\n \"regex\": \"(.*)@.+$\",\n \"template\": \"user-__regex__\"\n }'\n\"name\": {\n \"fieldNames\": [\n \"firstName\",\n \"lastName\"\n ],\n \"template\": \"__firstName__ __lastName__\"\n },\"__identifier__\": \"uid\"\n}```\n", "SAML_Custom_Username_Field": "Nazwa pola nazwy użytkownika", "SAML_Custom_Username_Normalize": "Normalizuj nazwę użytkownika", "SAML_Custom_Username_Normalize_None": "Bez normalizacji", @@ -3003,6 +3019,7 @@ "SAML_Role_Attribute_Name_Description": "Jeśli ten atrybut zostanie znaleziony w odpowiedzi SAML, jego wartości zostaną użyte jako nazwy ról dla nowych użytkowników.", "SAML_Role_Attribute_Sync": "Synchronizuj role użytkownika", "SAML_Role_Attribute_Sync_Description": "Synchronizacja ról użytkowników SAML przy logowaniu (nadpisuje role użytkowników lokalnych).", + "SAML_Section_1_User_Interface": "Interfejs użytkownika", "SAML_Allowed_Clock_Drift": "Dozwolony dryft zegara od dostawcy usług tożsamości", "SAML_Allowed_Clock_Drift_Description": "Zegar dostawcy usług tożsamości może dryfować nieco przed zegarami systemu. Możesz pozwolić na niewielki dryft zegara. Jego wartość musi być podana w kilku milisekundach (ms). Podana wartość jest dodawana do aktualnego czasu, w którym odpowiedź jest zatwierdzana.", "Saturday": "Sobota", @@ -3017,7 +3034,7 @@ "Saved": "Zapisano", "Saving": "Zapisywanie", "Scan_QR_code": "Za pomocą aplikacji uwierzytelniającej, takiej jak Google Authenticator, Authy lub Duo, zeskanuj kod QR. Wyświetli 6-cyfrowy kod, który musisz wprowadzić poniżej.", - "Scan_QR_code_alternative_s": "Jeśli nie możesz zeskanować kodu QR, możesz wpisać kod ręcznie: __code__", + "Scan_QR_code_alternative_s": "Jeśli nie możesz zeskanować kodu QR, możesz wpisać kod ręcznie:", "Scope": "Zakres", "Screen_Lock": "Blokada ekranu", "Screen_Share": "Współdzielenie ekranu", @@ -3827,4 +3844,4 @@ "Your_server_link": "Twój link do serwera", "Your_temporary_password_is_password": "Twoje tymczasowe hasło to [hasło].", "Your_workspace_is_ready": "Twój obszar roboczy jest gotowy do użycia 🎉" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json index 4f134e124f4d..e84b96a68613 100644 --- a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json +++ b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json @@ -55,12 +55,12 @@ "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "Salva IP e username das tentativas de login em uma coleção no banco de dados", "Block_Multiple_Failed_Logins_Ip_Whitelist": "Lista de IPs para não verificar", "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "Lista de IPs separados por vírgula", - "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "Tempo para desbloquear o Usuário (Em Minutos)", "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "Tempo para desbloquear o IP (Em Minutos)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "Tempo para desbloquear o Usuário (Em Minutos)", "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "Quantas tentativas falhas até bloquear por IP", "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "Quantas tentativas falhas até bloquear por Usuário", - "Block_Multiple_Failed_Logins_By_User": "Bloquear tentativas falhas de login por Usuário", "Block_Multiple_Failed_Logins_By_Ip": "Bloquear tentativas falhas de login por IP", + "Block_Multiple_Failed_Logins_By_User": "Bloquear tentativas falhas de login por Usuário", "Accounts_BlockedUsernameList": "Lista de Nomes de Usuário Bloqueados", "Accounts_BlockedUsernameList_Description": "Lista de nomes de usuários bloqueados, separada por vírgulas (não diferencia maiúsculas)", "Accounts_CustomFields_Description": "Deve ser um JSON válido onde as chaves são os nomes de campos contendo um dicionário de configuração de campos. Exemplo:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n} ", @@ -84,7 +84,6 @@ "Accounts_Enrollment_Email_Subject_Default": "Bem-vindo ao [Site_Name]", "Accounts_Enrollment_Email": "E-mail de Inscrição", "Accounts_Enrollment_Email_Description": "Você pode usar os seguintes placeholders:
  • [name], [fname], [lname] para o nome completo do usuário, primeiro nome ou sobrenome, respectivamente.
  • [email] para o e-mail do usuário.
  • [Site_Name] e [Site_URL] para o Nome da Aplicação e URL, respectivamente.
", - "Login_Logs": "Registrar tentativas login", "Login_Logs_Enabled": "Registrar(no console) tentativas falhas de login", "Login_Logs_ClientIp": "Mostrar o IP do cliente nos registros de tentativas falhas de login", "Login_Logs_ForwardedForIp": "Mostrar o 'ForwardedFor' IP nos logs de tentativas falhas de login", @@ -97,6 +96,7 @@ "Accounts_iframe_url": "URL do Iframe", "Accounts_LoginExpiration": "Expiração do Login em Dias", "Accounts_ManuallyApproveNewUsers": "Aprovar Manualmente novos Usuários", + "Accounts_OAuth_Apple": "Iniciar sessão com a Apple", "Accounts_OAuth_Custom_Authorize_Path": "Path de Autorização", "Accounts_OAuth_Custom_Avatar_Field": "Avatar", "Accounts_OAuth_Custom_Button_Color": "Cor do Botão", @@ -701,7 +701,6 @@ "Cloud_Register_manually": "Registre manualmente", "Cloud_register_success": "A sua área de trabalho foi registrada com sucesso!", "Cloud_register_error": "Houve um erro ao processar sua solicitação. Por favor tente novamente mais tarde. ", - "Cloud_connect_support": "Se você ainda não recebeu um e-mail de registro, verifique se o seu e-mail está atualizado acima. Se você ainda tiver problemas, entre em contato com o suporte em", "Cloud_what_is_it": "O que é isso?", "Cloud_what_is_it_description": "O Rocket.Chat Cloud Connect permite que você conecte seu workspace Rocket.Chat auto-hospedado à nossa nuvem. Fazer isso permite que você gerencie suas licenças, Faturamento e Suporte no Rocket.Chat Cloud.", "Cloud_what_is_it_services_like": "Serviços como:", @@ -1524,6 +1523,8 @@ "Flags": "Bandeiras", "Follow_message": "Seguir Mensagem", "Following": "Seguindo", + "Nickname": "Apelido", + "Nickname_Placeholder": "Digite seu apelido...", "Follow_social_profiles": "Siga-nos nas redes sociais, faça fork no github e compartilhe suas ideias sobre o app rocket.chat em nosso trello.", "Fonts": "Fontes", "Food_and_Drink": "Comida & Bebida", @@ -2065,6 +2066,7 @@ "Log_View_Limit": "Limite de Visualização de Log", "Logged_out_of_other_clients_successfully": "Desconectado de outros clientes com sucesso", "Login": "Entrar", + "Login_Logs": "Registrar tentativas login", "Login_with": "Login com %s", "Logistics": "Logística", "Logout": "Sair", @@ -2076,8 +2078,8 @@ "mail-messages": "Mensagens de Correio", "mail-messages_description": "Permissão para usar a opção de mensagens", "Mail_Message_Invalid_emails": "Você forneceu um ou mais e-mails inválidos: %s", - "Mail_Message_Missing_subject": "Você deve informar um assunto para o e-mail.", "Mail_Message_Missing_to": "Você deve selecionar um ou mais usuários ou fornecer um ou mais endereços de e-mail, separados por vírgulas.", + "Mail_Message_Missing_subject": "Você deve informar um assunto para o e-mail.", "Mail_Message_No_messages_selected_select_all": "Você não selecionou nenhuma mensagem", "Mail_Messages": "Mensagens de E-mail", "Mail_Messages_Instructions": "Escolher as mensagens que deseja enviar via e-mail, clicando nas mensagens", @@ -2087,7 +2089,8 @@ "Mailer_body_tags": "Você deve usar [unsubscribe] como link para desinscrever-se.
Você pode usar [name], [fname], [lname] para utilizar o nome completo, primeiro nome ou último nome, respectivamente.
Você pode usar [email] para o email do usuário.", "Mailing": "Mailing", "Make_Admin": "Tornar Administrador", - "Make_sure_you_have_a_copy_of_your_codes": "Certifique-se de ter uma cópia dos seus códigos: __codes__ Se você perder o acesso ao seu aplicativo de autenticação, você pode usar um desses códigos para fazer login.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Certifique-se de ter uma cópia dos seus códigos:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Se você perder o acesso ao seu aplicativo de autenticação, você pode usar um desses códigos para fazer login.", "manage-apps": "Gerenciar aplicativos", "manage-assets": "Gerenciar Recursos", "manage-assets_description": "Permissão para gerenciar os recursos do servidor", @@ -2324,6 +2327,7 @@ "No_discussions_yet": "Ainda sem discussões", "No_Threads": "Nenhuma thread encontrada", "No_user_with_username_%s_was_found": "Nenhum usuário com nome de usuário \"%s\" foi encontrado!", + "Not_in_channel": "Não está no canal", "Nobody_available": "Ninguém disponível", "Node_version": "Versão do Node", "None": "Nada", @@ -2348,6 +2352,8 @@ "Notify_all_in_this_room": "Notificar todos nesta sala", "Num_Agents": "# Agentes", "Number_of_messages": "Número de mensagens", + "Number_of_users_autocomplete_suggestions": "Número de sugestões para autocomplete de usuários", + "RetentionPolicy_DoNotExcludeDiscussion": "Não exclua mensagens de discussões", "OAuth Apps": "Apps OAuth", "OAuth_Application": "Aplicação OAuth", "OAuth_Applications": "Aplicações OAuth", @@ -2358,6 +2364,7 @@ "Office_Hours": "Horas de escritório", "Office_hours_enabled": "Horas de escritório ativadas", "Office_hours_updated": "Horário de funcionamento atualizado", + "RetentionPolicy_ExcludePinned": "Excluir mensagens fixas", "Offline": "Offline", "Offline_DM_Email": "Você recebeu uma mensagem direta de __user__", "Offline_Email_Subject_Description": "Você pode usar os seguintes placeholders:
  • [Site_Name], [Site_URL], [Usuário] e [Sala] para o Nome da Aplicação, URL, Nome de Usuário e Sala, respectivamente.
", @@ -2648,7 +2655,6 @@ "Retail": "Retalho", "Retention_setting_changed_successfully": "A configuração da política de retenção foi alterada com sucesso", "RetentionPolicy": "Política de retenção", - "RetentionPolicy_DoNotExcludeDiscussion": "Não exclua mensagens de discussões", "RetentionPolicy_RoomWarning": "Mensagens mais antigas que __time__ são automaticamente removidas aqui", "RetentionPolicy_RoomWarning_Unpinned": "Mensagens soltas mais antigas que __time__ são automaticamente removidas aqui", "RetentionPolicy_RoomWarning_FilesOnly": "Arquivos mais antigos que __time__ são removidos automaticamente aqui (as mensagens permanecem intactas)", @@ -2658,7 +2664,6 @@ "RetentionPolicy_AppliesToChannels": "Aplica-se a canais", "RetentionPolicy_AppliesToGroups": "Aplica-se a grupos privados", "RetentionPolicy_AppliesToDMs": "Aplica-se a direcionar mensagens", - "RetentionPolicy_ExcludePinned": "Excluir mensagens fixas", "RetentionPolicy_FilesOnly": "Apenas excluir arquivos", "RetentionPolicy_FilesOnly_Description": "Apenas arquivos serão excluídos, as mensagens permanecerão no lugar.", "RetentionPolicy_MaxAge": "A idade máxima da mensagem", @@ -2738,6 +2743,7 @@ "SAML_Custom_user_data_fieldmap": "Mapeamento de campos do usuário", "SAML_Custom_Immutable_Property_Username": "Nome de Usuário", "SAML_Custom_Public_Cert": "Conteúdo do Círculo Público", + "SAML_Section_1_User_Interface": "Interface de usuário", "Saturday": "sábado", "Save": "Salvar", "save-others-livechat-room-info": "Salve outras informações de sala de Omnichannel", @@ -2750,7 +2756,7 @@ "Saved": "Salvo", "Saving": "Salvando", "Scan_QR_code": "Usando um aplicativo autenticador como o Google Authenticator, Authy ou Duo, analise o código QR. Ele exibirá um código de 6 dígitos que você precisa inserir abaixo.", - "Scan_QR_code_alternative_s": "Se você não pode digitalizar o código QR, pode digitar o código manualmente em vez disso: __code__", + "Scan_QR_code_alternative_s": "Se você não pode digitalizar o código QR, pode digitar o código manualmente em vez disso:", "Scope": "Escopo", "Screen_Lock": "Bloqueio de Tela", "Screen_Share": "Compartilhamento de Tela", @@ -2760,7 +2766,6 @@ "Search_by_file_name": "Pesquisar por nome de arquivo", "Search_by_username": "Busca por nome de usuário", "Search_Channels": "Pesquisar Canais", - "Search_Chats": "Pesquisar Histórico Bate-Papos", "Search_current_provider_not_active": "Provedor de pesquisa atual não está ativo", "Search_message_search_failed": "Falha na solicitação de pesquisa", "Search_Messages": "Pesquisar Mensagens", @@ -2977,6 +2982,7 @@ "Support": "Apoio", "Survey": "Pesquisa", "Survey_instructions": "Classifique cada questão de acordo com a sua satisfação, 1 significa que você está completamente insatisfeito e 5 significa que você está completamente satisfeito.", + "Suggestion_from_recent_messages": "Sugestão das mensagens recentes", "Symbols": "Símbolos", "Sync": "Sincronizar", "Sync / Import": "Sincronizar / Importar", @@ -3444,6 +3450,7 @@ "You_can_use_an_emoji_as_avatar": "Você também pode usar um emoji como um avatar.", "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "Você pode usar webhooks para integrar facilmente o Omnichannel com seu CRM.", "You_cant_leave_a_livechat_room_Please_use_the_close_button": "Você não pode sair de uma sala de omnichannel. Por favor, use o botão de fechar sala.", + "You_have_a_new_message": "Nova mensagem", "You_have_been_muted": "Você foi silenciado e não pode falar nesta sala", "You_have_n_codes_remaining": "Você tem __number__ codes restantes.", "You_have_not_verified_your_email": "Você ainda não verificou o seu e-mail.", diff --git a/packages/rocketchat-i18n/i18n/pt.i18n.json b/packages/rocketchat-i18n/i18n/pt.i18n.json index 14d34ff64964..a578cea74576 100644 --- a/packages/rocketchat-i18n/i18n/pt.i18n.json +++ b/packages/rocketchat-i18n/i18n/pt.i18n.json @@ -637,7 +637,6 @@ "Closed_by_visitor": "Encerrado pelo convidado", "Closing_chat": "A encerrar chat", "Cloud": "Nuvem", - "Cloud_connect_support": "Se ainda não recebeu um e-mail de registo, verifique se o seu e-mail está atualizado acima. Se ainda tiver problemas, entre em contacto com o suporte em", "Cloud_console": "Cloud Console", "Cloud_what_is_it": "O que é isto?", "Cloud_what_is_it_description": "O Rocket.Chat Cloud Connect permite que se conecte ao seu espaço de trabalho Rocket.Chat auto-hospedado na nossa nuvem. Fazer isto permite que gerencie as suas licenças, facturação e Suporte no Rocket.Chat Cloud.", @@ -1952,7 +1951,8 @@ "Mailer_body_tags": "Deve usar [unsubscribe] como link para cancelar a subscrição.
Pode usar [name], [fname], [lname] para utilizar o nome completo, primeiro nome ou último nome, respectivamente.
Pode usar [email] para o email do utilizador.", "Mailing": "Correio", "Make_Admin": "Tornar Administrador", - "Make_sure_you_have_a_copy_of_your_codes": "Certifique-se de ter uma cópia dos seus códigos: __codes__ Se perder o acesso à sua aplicação de autenticação, pode usar um destes códigos para fazer login.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Certifique-se de ter uma cópia dos seus códigos:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Se perder o acesso à sua aplicação de autenticação, pode usar um destes códigos para fazer login.", "manage-apps": "Gerir aplicações ", "manage-assets": "Gestor de Activos", "manage-assets_description": "Permissão para gerir os activos do servidor", @@ -2187,6 +2187,7 @@ "Num_Agents": "# Agentes", "Number_of_events": "Número de eventos", "Number_of_messages": "Número de mensagens", + "RetentionPolicy_DoNotExcludeDiscussion": "Não apague mensagens de discussões", "OAuth Apps": "Aplicativos OAuth", "OAuth_Application": "Aplicação OAuth", "OAuth_Applications": "Aplicações OAuth", @@ -2197,6 +2198,7 @@ "Office_Hours": "Horas de escritório", "Office_hours_enabled": "Horas de escritório ativadas", "Office_hours_updated": "Horário de funcionamento atualizado", + "RetentionPolicy_ExcludePinned": "Excluir mensagens fixas", "Offline": "Offline", "Offline_DM_Email": "Recebeu uma mensagem direta de __user__", "Offline_Email_Subject_Description": "Pode usar os seguintes espaços reservados:
  • [Site_Name], [Site_URL], [User] e [Room] para o Nome da aplicação, URL, Nome de utilizador e Nome do Quarto, respectivamente.
", @@ -2469,7 +2471,6 @@ "Retail": "Retalho", "Retention_setting_changed_successfully": "A configuração da política de retenção foi alterada com sucesso", "RetentionPolicy": "Política de retenção", - "RetentionPolicy_DoNotExcludeDiscussion": "Não apague mensagens de discussões", "RetentionPolicy_RoomWarning": "Mensagens mais antigas que __time__ são automaticamente removidas aqui", "RetentionPolicy_RoomWarning_Unpinned": "Mensagens soltas mais antigas que __time__ são automaticamente removidas aqui", "RetentionPolicy_RoomWarning_FilesOnly": "Arquivos mais antigos que __time__ são removidos automaticamente aqui (as mensagens permanecem intactas)", @@ -2479,7 +2480,6 @@ "RetentionPolicy_AppliesToChannels": "Aplica-se a canais", "RetentionPolicy_AppliesToGroups": "Aplica-se a grupos privados", "RetentionPolicy_AppliesToDMs": "Aplica-se a direccionar mensagens", - "RetentionPolicy_ExcludePinned": "Excluir mensagens fixas", "RetentionPolicy_FilesOnly": "Apenas apagar arquivos", "RetentionPolicy_FilesOnly_Description": "Apenas arquivos serão excluídos, as mensagens permanecerão no lugar.", "RetentionPolicy_MaxAge": "A idade máxima da mensagem", @@ -2558,6 +2558,7 @@ "SAML_Custom_user_data_fieldmap": "Mapeamento de campos do utilizador", "SAML_Custom_Immutable_Property_Username": "Nome de utilizador", "SAML_Custom_Public_Cert": "Conteúdo do Círculo Público", + "SAML_Section_1_User_Interface": "Interface de utilizador", "Saturday": "Sábado", "Save": "Salvar", "save-others-livechat-room-info": "Salve outros serviços Livechat Room", @@ -2570,7 +2571,7 @@ "Saved": "Guardado", "Saving": "A guardar", "Scan_QR_code": "Usando um aplicativo autenticador como o Google Authenticator, Authy ou Duo, analise o código QR. Ele exibirá um código de 6 dígitos que você precisa inserir abaixo.", - "Scan_QR_code_alternative_s": "Se você não pode digitalizar o código QR, pode digitar o código manualmente em vez disso: __code__", + "Scan_QR_code_alternative_s": "Se você não pode digitalizar o código QR, pode digitar o código manualmente em vez disso:", "Scope": "Escopo", "Screen_Share": "Partilha de Ecrã", "Script_Enabled": "Script activo", diff --git a/packages/rocketchat-i18n/i18n/ro.i18n.json b/packages/rocketchat-i18n/i18n/ro.i18n.json index 21be4c52eb00..eac8e0b01a47 100644 --- a/packages/rocketchat-i18n/i18n/ro.i18n.json +++ b/packages/rocketchat-i18n/i18n/ro.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Trebuie să folosiți [unsubscribe] pentru link-ul de unsuscribe.
Puteți utiliza [name], [fname], [lname] pentru numele întreg, prenume respectiv nume.
Puteți folosi [email] pentru e-mailul utilizatorului.", "Mailing": "Mailing", "Make_Admin": "Fă utilizator de tip Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Asigurați-vă că aveți o copie a codurilor: __codes__ Dacă pierdeți accesul la aplicația dvs. de autentificare, puteți utiliza unul dintre aceste coduri pentru a vă conecta.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Asigurați-vă că aveți o copie a codurilor:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Dacă pierdeți accesul la aplicația dvs. de autentificare, puteți utiliza unul dintre aceste coduri pentru a vă conecta.", "manage-apps": "Gestionați aplicațiile", "manage-assets": "Gestionați active", "manage-assets_description": "Permisiunea de a gestiona activele serverului", @@ -1901,6 +1902,7 @@ "Office_Hours": "Ore de birou", "Office_hours_enabled": "Orele de birou sunt activate", "Office_hours_updated": "Ore de lucru actualizate", + "RetentionPolicy_ExcludePinned": "Excludeți mesajele fixate", "Offline": "Deconectat", "Offline_DM_Email": "Ai fost messaged directe de __user__", "Offline_Email_Subject_Description": "Puteți utiliza următorii substituenți:
  • [Site_Name], [Site_URL], [Utilizator] și [Cameră]
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Se aplică la canale", "RetentionPolicy_AppliesToGroups": "Se aplică grupurilor private", "RetentionPolicy_AppliesToDMs": "Se aplică pentru mesaje directe", - "RetentionPolicy_ExcludePinned": "Excludeți mesajele fixate", "RetentionPolicy_FilesOnly": "Ștergeți numai fișierele", "RetentionPolicy_FilesOnly_Description": "Numai fișierele vor fi șterse, mesajele în sine rămân în vigoare.", "RetentionPolicy_MaxAge": "Vârsta maximă a mesajului", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "User Data Field Map", "SAML_Custom_Immutable_Property_Username": "Utilizator", "SAML_Custom_Public_Cert": "Conținut public", + "SAML_Section_1_User_Interface": "Interfața cu utilizatorul", "Saturday": "Sâmbătă", "Save": "Salvează", "save-others-livechat-room-info": "Salvează alte informații livechat despre cameră", @@ -2231,7 +2233,7 @@ "Saved": "Salvat", "Saving": "Salvare...", "Scan_QR_code": "Folosind o aplicație de autentificare precum Google Authenticator, Authy sau Duo, scanați codul QR. Acesta va afișa un cod de 6 cifre pe care trebuie să-l introduceți mai jos.", - "Scan_QR_code_alternative_s": "Dacă nu puteți scana codul QR, este posibil să introduceți manual codul în schimb: __code__", + "Scan_QR_code_alternative_s": "Dacă nu puteți scana codul QR, este posibil să introduceți manual codul în schimb:", "Scope": "domeniu", "Screen_Share": "Partajare ecran", "Script_Enabled": "script-ul activat", diff --git a/packages/rocketchat-i18n/i18n/ru.i18n.json b/packages/rocketchat-i18n/i18n/ru.i18n.json index 92858293274b..6beb748ab674 100644 --- a/packages/rocketchat-i18n/i18n/ru.i18n.json +++ b/packages/rocketchat-i18n/i18n/ru.i18n.json @@ -667,7 +667,6 @@ "Cloud_register_offline_helper": "Рабочие места могут быть зарегистрированы вручную, если доступ в сеть ограничен. Скопируйте текст ниже и перейдите в нашу Cloud Console, чтобы завершить процесс.", "Cloud_register_success": "Ваше рабочее место успешно зарегистрировано!", "Cloud_register_error": "Произошла ошибка при попытке обработать ваш запрос. Пожалуйста, попробуйте позже.", - "Cloud_connect_support": "Если Вы все еще не получили регистрационное электронное письмо, пожалуйста, удостоверьтесь, что Ваша электронная почта обновлена выше. Если у Вас все еще есть проблемы, вы можете связаться с поддержкой по адресу", "Cloud_console": "Облачная Консоль", "Cloud_Info": "Информация об облаке", "Cloud_what_is_it": "Что это?", @@ -2090,7 +2089,8 @@ "Mailer_body_tags": "Вам необходимо использовать [unsubscribe] как ссылку для отписки.
Вы можете использовать [name], [fname] и [lname] в качестве полного имени пользователя, имени или фамилии.
Вы можете использовать [email] для адреса электронной почты пользователя.", "Mailing": "Рассылка", "Make_Admin": "Сделать администратором", - "Make_sure_you_have_a_copy_of_your_codes": "Убедитесь, что у вас есть копия ваших кодов: __codes__ Если вы потеряете доступ к своему приложению аутентификации, вы можете использовать один из этих кодов для входа в систему.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Убедитесь, что у вас есть копия ваших кодов:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Если вы потеряете доступ к своему приложению аутентификации, вы можете использовать один из этих кодов для входа в систему.", "manage-apps": "Управление приложениями", "manage-assets": "Управлять ресурсами", "manage-assets_description": "Разрешение на управление ресурсами сервера", @@ -2384,6 +2384,7 @@ "Number_of_federated_users": "Количество федеративных пользователей", "Number_of_federated_servers": "Количество федеративных серверов", "Number_of_messages": "Количество сообщений", + "RetentionPolicy_DoNotExcludeDiscussion": "Не исключать сообщения обсуждений", "OAuth Apps": "Приложения OAuth", "OAuth_Application": "Приложение OAuth", "OAuth_Applications": "Приложения OAuth", @@ -2394,6 +2395,7 @@ "Office_Hours": "Рабочие часы", "Office_hours_enabled": "Рабочие часы включены", "Office_hours_updated": "Рабочие часы обновлены", + "RetentionPolicy_ExcludePinned": "Исключить закрепленные сообщения", "Offline": "Не в сети", "Offline_DM_Email": "Тема письма Email для личных сообщений", "Offline_Email_Subject_Description": "Вы можете использовать следующие заполнители:
  • [Site_Name], [Site_URL], [Пользователь] и [Комната] для имени приложения, URL-адреса, имени пользователя и номера соответственно.
", @@ -2683,7 +2685,6 @@ "Retail": "Розничная торговля", "Retention_setting_changed_successfully": "Настройки политики хранения изменились успешно", "RetentionPolicy": "Политика удержания", - "RetentionPolicy_DoNotExcludeDiscussion": "Не исключать сообщения обсуждений", "RetentionPolicy_RoomWarning": "Сообщения в этой комнате удаляются через __time__.", "RetentionPolicy_RoomWarning_Unpinned": "Незакрепленные сообщения в этой комнате удаляются через __time__.", "RetentionPolicy_RoomWarning_FilesOnly": "Файлы старше __time__ в этой комнате автоматически удаляются. (сообщения остаются незатронутыми)", @@ -2693,7 +2694,6 @@ "RetentionPolicy_AppliesToChannels": "Применяется к открытым каналам", "RetentionPolicy_AppliesToGroups": "Применяется к закрытым каналам", "RetentionPolicy_AppliesToDMs": "Применяется к личным сообщениям", - "RetentionPolicy_ExcludePinned": "Исключить закрепленные сообщения", "RetentionPolicy_FilesOnly": "Удалить только файлы", "RetentionPolicy_FilesOnly_Description": "Удаляются только файлы, сами сообщения остаются на месте.", "RetentionPolicy_MaxAge": "Максимальное время жизни сообщений", @@ -2789,6 +2789,7 @@ "SAML_Default_User_Role_Description": "Вы можете указать несколько ролей, разделяя их запятыми.", "SAML_Role_Attribute_Name": "Имя атрибута роли", "SAML_Role_Attribute_Name_Description": "Если этот атрибут найден в ответе SAML, его значения будут использоваться в качестве имен ролей для новых пользователей.", + "SAML_Section_1_User_Interface": "Пользовательский интерфейс", "Saturday": "Суббота", "Save": "Сохранить", "save-others-livechat-room-info": "Сохранить информацию о других комнатах Livechat", @@ -2801,7 +2802,7 @@ "Saved": "Сохранено", "Saving": "Сохранение", "Scan_QR_code": "Используйте приложения авторизаторы, такие как Google Authenticator, Authy или Duo, для того, чтобы отсканировать QR-код. Вам будет показан 6-значный код, который вы должны ввести ниже.", - "Scan_QR_code_alternative_s": "Если вы не можете отсканировать QR код, вы можете ввести код вручную: __code__", + "Scan_QR_code_alternative_s": "Если вы не можете отсканировать QR код, вы можете ввести код вручную:", "Scope": "Область", "Screen_Share": "Демонстрация экрана", "Script_Enabled": "Использовать скрипт", diff --git a/packages/rocketchat-i18n/i18n/sk-SK.i18n.json b/packages/rocketchat-i18n/i18n/sk-SK.i18n.json index be4d1045d4ae..54195b997383 100644 --- a/packages/rocketchat-i18n/i18n/sk-SK.i18n.json +++ b/packages/rocketchat-i18n/i18n/sk-SK.i18n.json @@ -1677,7 +1677,8 @@ "Mailer_body_tags": "Je nutné použiť [unsubscribe] pre vloženie odkazu na odhlásenie.
Môžete tiež použiť [name], [fname], [lname] pre používateľské meno, krstné meno a priezvisko.
Môžete použiť [email] pre e-mail používateľa.", "Mailing": "mailing", "Make_Admin": "Vytvorte správcu", - "Make_sure_you_have_a_copy_of_your_codes": "Uistite sa, že máte kópiu kódov: __codes__ Ak stratíte prístup k vašej autentifikačnej aplikácii, môžete sa prihlásiť pomocou jedného z týchto kódov.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Uistite sa, že máte kópiu kódov:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ak stratíte prístup k vašej autentifikačnej aplikácii, môžete sa prihlásiť pomocou jedného z týchto kódov.", "manage-apps": "Správa Apps", "manage-assets": "Správa majetku", "manage-assets_description": "Povolenie na správu aktív servera", @@ -1902,6 +1903,7 @@ "Office_Hours": "Úradné hodiny", "Office_hours_enabled": "Úradné hodiny povolené", "Office_hours_updated": "Aktualizované pracovné hodiny", + "RetentionPolicy_ExcludePinned": "Vylúčte pripnuté správy", "Offline": "offline", "Offline_DM_Email": "Predmet správy elektronickej pošty", "Offline_Email_Subject_Description": "Môžete použiť nasledujúce zástupné symboly:
  • [Site_Name] pre názov aplikácie, [Site_URL] pre URL aplikácie, [User] pre používateľa a [Room] pre miestnosť.
", @@ -2149,7 +2151,6 @@ "RetentionPolicy_AppliesToChannels": "Platí pre kanály", "RetentionPolicy_AppliesToGroups": "Platí pre súkromné ​​skupiny", "RetentionPolicy_AppliesToDMs": "Platí pre priame správy", - "RetentionPolicy_ExcludePinned": "Vylúčte pripnuté správy", "RetentionPolicy_FilesOnly": "Odstráňte iba súbory", "RetentionPolicy_FilesOnly_Description": "Iba súbory budú vymazané, samotné správy zostanú na mieste.", "RetentionPolicy_MaxAge": "Maximálny vek správy", @@ -2222,6 +2223,7 @@ "SAML_Custom_user_data_fieldmap": "Mapová mapa používateľských údajov", "SAML_Custom_Immutable_Property_Username": "Používateľské meno", "SAML_Custom_Public_Cert": "Obsah verejného obsahu", + "SAML_Section_1_User_Interface": "Používateľské rozhranie", "Saturday": "sobota", "Save": "uložiť", "save-others-livechat-room-info": "Uložiť ostatné Informácie o miestnosti v miestnosti Livechat", @@ -2232,7 +2234,7 @@ "Saved": "uložený", "Saving": "sporenia", "Scan_QR_code": "Pomocou aplikácie autentifikátora, ako je Google Authenticator, Authy alebo Duo, vyhľadajte kód QR. Zobrazí sa 6-ciferný kód, ktorý musíte zadať nižšie.", - "Scan_QR_code_alternative_s": "Ak nemôžete skenovať kód QR, môžete namiesto toho zadávať kód ručne: __code__", + "Scan_QR_code_alternative_s": "Ak nemôžete skenovať kód QR, môžete namiesto toho zadávať kód ručne:", "Scope": "Rozsah", "Screen_Share": "Podiel obrazovky", "Script_Enabled": "Skript Povolený", diff --git a/packages/rocketchat-i18n/i18n/sl-SI.i18n.json b/packages/rocketchat-i18n/i18n/sl-SI.i18n.json index 4d402a37dbed..c350fbeb354d 100644 --- a/packages/rocketchat-i18n/i18n/sl-SI.i18n.json +++ b/packages/rocketchat-i18n/i18n/sl-SI.i18n.json @@ -1674,7 +1674,8 @@ "Mailer_body_tags": "Če želite dostopati do povezave za odpoved naročnine, morate uporabiti možnost [unsubscribe].
Za uporabnikovo polno ime, ime ali priimek lahko posamezno uporabite možnosti [name], [fname], [lname].
Za uporabnikov e-naslov lahko uporabite možnost [email].", "Mailing": "Pošiljanje", "Make_Admin": "Nastavi za administratorja", - "Make_sure_you_have_a_copy_of_your_codes": "Zagotovite, da imate kopijo svojih kod: __codes__. Če izgubite dostop do aplikacije za preverjanje pristnosti, lahko za prijavo uporabite eno izmed teh kod.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Zagotovite, da imate kopijo svojih kod:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Če izgubite dostop do aplikacije za preverjanje pristnosti, lahko za prijavo uporabite eno izmed teh kod.", "manage-apps": "Upravljaj z aplikacijami", "manage-assets": "Upravljaj s sredstvi", "manage-assets_description": "Dovoljenje za upravljanje strežniških sredstev", @@ -1899,6 +1900,7 @@ "Office_Hours": "Delovni čas", "Office_hours_enabled": "Delovni čas omogočen", "Office_hours_updated": "Delovni čas posodobljen", + "RetentionPolicy_ExcludePinned": "Izključi prepovedana sporočila", "Offline": "Nedosegljiv", "Offline_DM_Email": "Zadeva neposrednega sporočila", "Offline_Email_Subject_Description": "Uporabite lahko naslednje označbe mest:
  • [Site_Name], [Site_URL], [User] & [Room] za ime aplikacije, URL, uporabniško ime in ime sobe.
", @@ -2146,7 +2148,6 @@ "RetentionPolicy_AppliesToChannels": "Velja za kanale", "RetentionPolicy_AppliesToGroups": "Velja za zasebne skupine", "RetentionPolicy_AppliesToDMs": "Velja za neposredna sporočila", - "RetentionPolicy_ExcludePinned": "Izključi prepovedana sporočila", "RetentionPolicy_FilesOnly": "Izbrišite le datoteke", "RetentionPolicy_FilesOnly_Description": "Samo datoteke bodo izbrisane, sporočila bodo ostala na mestu.", "RetentionPolicy_MaxAge": "Najvišja starost sporočila", @@ -2219,6 +2220,7 @@ "SAML_Custom_user_data_fieldmap": "Polje uporabniških podatkov", "SAML_Custom_Immutable_Property_Username": "Uporabniško ime", "SAML_Custom_Public_Cert": "Javni ključ", + "SAML_Section_1_User_Interface": "Uporabniški vmesnik", "Saturday": "Sobota", "Save": "Shrani", "save-others-livechat-room-info": "Shrani druge informacije Livechat sobe", @@ -2229,7 +2231,7 @@ "Saved": "Shranjeno", "Saving": "Shranjevanje", "Scan_QR_code": "Skenirajte kodo QR z uporabo aplikacije za preverjanje pristnosti, kot so Google Authenticator, Authy ali Duo. Prikazal bo 6-mestno kodo, ki jo morate vnesti spodaj.", - "Scan_QR_code_alternative_s": "Če ne morete skenirati kode QR, lahko namesto tega vnesete kodo: __code__", + "Scan_QR_code_alternative_s": "Če ne morete skenirati kode QR, lahko namesto tega vnesete kodo:", "Scope": "Obseg", "Screen_Share": "Delitev zaslona", "Script_Enabled": "Skript je omogočen", diff --git a/packages/rocketchat-i18n/i18n/sq.i18n.json b/packages/rocketchat-i18n/i18n/sq.i18n.json index 7b8ff8bdc014..a09a39e4655e 100644 --- a/packages/rocketchat-i18n/i18n/sq.i18n.json +++ b/packages/rocketchat-i18n/i18n/sq.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "Ju duhet të përdorni [unsubscribe] për lidhjen Çabonimi.
Ju mund të përdorni [name], [fname], [lname] për emrin e plotë të përdoruesit, emrin e parë ose emrin e fundit, respektivisht.
Ju mund të përdorni [email] për email të përdoruesit.", "Mailing": "mailing", "Make_Admin": "Bëjeni Admin", - "Make_sure_you_have_a_copy_of_your_codes": "Sigurohuni që keni një kopje të kodeve tuaja: __codes__ Nëse e humbni aksesin në aplikacionin tuaj të autentifikuesit, mund të përdorni një nga këto kodet për tu identifikuar.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Sigurohuni që keni një kopje të kodeve tuaja:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Nëse e humbni aksesin në aplikacionin tuaj të autentifikuesit, mund të përdorni një nga këto kodet për tu identifikuar.", "manage-apps": "Menaxho Apps", "manage-assets": "Menaxho pasuritë", "manage-assets_description": "Leja për të menaxhuar asetet e serverit", @@ -1901,6 +1902,7 @@ "Office_Hours": "Orari zyrtar", "Office_hours_enabled": "Orari i Zyrave të Aktivizuara", "Office_hours_updated": "Përditësimi i orëve të punës", + "RetentionPolicy_ExcludePinned": "Përjashto mesazhet e mbështetura", "Offline": "në linjë", "Offline_DM_Email": "Ju keni qenë mesazhi direkt nga __user__", "Offline_Email_Subject_Description": "Ju mund të përdorni vendet e mëposhtme të rezervuara:
  • [Site_Name], [Site_URL], [Përdoruesi] dhe [Salla] për emrin e aplikacionit, URL, emërimin dhe Roomname.
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Zbatohet tek kanalet", "RetentionPolicy_AppliesToGroups": "Zbatohet për grupe private", "RetentionPolicy_AppliesToDMs": "Zbatohet në mesazhet direkte", - "RetentionPolicy_ExcludePinned": "Përjashto mesazhet e mbështetura", "RetentionPolicy_FilesOnly": "Vetëm fshini skedarët", "RetentionPolicy_FilesOnly_Description": "Vetëm skedarët do të fshihen, vetë mesazhet do të qëndrojnë në vend.", "RetentionPolicy_MaxAge": "Mosha maksimale e mesazhit", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "User Data Map Field", "SAML_Custom_Immutable_Property_Username": "Emri i përdoruesit", "SAML_Custom_Public_Cert": "Përmbajtja e Cert Publik", + "SAML_Section_1_User_Interface": "Ndërfaqja e përdoruesit", "Saturday": "e shtunë", "Save": "Ruaj", "save-others-livechat-room-info": "Ruaj të tjerët Info Livechat Room", @@ -2231,7 +2233,7 @@ "Saved": "Saved", "Saving": "kursim", "Scan_QR_code": "Përdorimi i një aplikacioni autentifikues si Google Authenticator, Authy ose Duo, skanoni kodin QR. Do të shfaqet një kod me 6 shifra të cilat duhet të futni më poshtë.", - "Scan_QR_code_alternative_s": "Nëse nuk mund të skanoni kodin QR, mund të futni kodin manualisht: __code__", + "Scan_QR_code_alternative_s": "Nëse nuk mund të skanoni kodin QR, mund të futni kodin manualisht:", "Scope": "fushë", "Screen_Share": "Screen Share", "Script_Enabled": "script aktivizuar", diff --git a/packages/rocketchat-i18n/i18n/sr.i18n.json b/packages/rocketchat-i18n/i18n/sr.i18n.json index fc03f3f5928c..8fe31b1d946b 100644 --- a/packages/rocketchat-i18n/i18n/sr.i18n.json +++ b/packages/rocketchat-i18n/i18n/sr.i18n.json @@ -1407,7 +1407,8 @@ "Mail_Messages": "Поруке е-поште", "Mail_Messages_Instructions": "Изабрати које поруке желите да пошаљете путем е-маила тако што ћете кликнути поруке", "Room_uploaded_file_list": "files лист", - "Make_sure_you_have_a_copy_of_your_codes": "Проверите да ли имате копију својих кодова: __кодови__ Ако изгубите приступ вашој апликацији за аутентификацију, можете да користите један од ових шифара за пријављивање.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Проверите да ли имате копију својих кодова:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Ако изгубите приступ вашој апликацији за аутентификацију, можете да користите један од ових шифара за пријављивање.", "manage-apps": "Управљај апликацијама", "manage-assets": "Управљање имовином", "manage-assets_description": "Дозвола за управљање имовином сервера", @@ -1623,6 +1624,7 @@ "Office_Hours": "Радно време", "Office_hours_enabled": "Радно време је омогућено", "Office_hours_updated": "Радно време је ажурирано", + "RetentionPolicy_ExcludePinned": "Искључите закачене поруке", "Offline": "оффлине", "Offline_DM_Email": "Сте били директно поручио је __user__", "Offline_Email_Subject_Description": "Можете користити следеће држаче:
  • [Сите_Наме], [Сите_УРЛ], [Корисник] и [Соба] за име апликације, УРЛ, корисничко име и име собе, респективно.
", @@ -1856,7 +1858,6 @@ "RetentionPolicy_AppliesToChannels": "Примењује се на канале", "RetentionPolicy_AppliesToGroups": "Примјењује се на приватне групе", "RetentionPolicy_AppliesToDMs": "Примењује се на директне поруке", - "RetentionPolicy_ExcludePinned": "Искључите закачене поруке", "RetentionPolicy_FilesOnly": "Избришите само датотеке", "RetentionPolicy_FilesOnly_Description": "Само датотеке ће бити избрисане, саме поруке ће остати на месту.", "RetentionPolicy_MaxAge": "Максимална старост поруке", @@ -1929,6 +1930,7 @@ "SAML_Custom_user_data_fieldmap": "Корисник поља података Карта", "SAML_Custom_Immutable_Property_Username": "Корисничко име", "SAML_Custom_Public_Cert": "Публиц Церт Цонтентс", + "SAML_Section_1_User_Interface": "Кориснички интерфејс", "Saturday": "Субота", "Save": "Сачувај", "save-others-livechat-room-info": "Сачувај друге Ливецхат Роом Инфо", @@ -1939,7 +1941,7 @@ "Saved": "saved", "Saving": "Уштеда", "Scan_QR_code": "Користећи апликацију за аутентикацију као што су Гоогле Аутхентицатор, Аутхи или Дуо, скенирајте КР код. Приказаће вам 6-цифрени код који морате унети испод.", - "Scan_QR_code_alternative_s": "Ако не можете скенирати КР код, можете ручно уносити код: __цоде__", + "Scan_QR_code_alternative_s": "Ако не можете скенирати КР код, можете ручно уносити код:", "Scope": "обим", "Screen_Share": "екран Подели", "Script_Enabled": "сцрипт Омогућено", diff --git a/packages/rocketchat-i18n/i18n/sv.i18n.json b/packages/rocketchat-i18n/i18n/sv.i18n.json index fc269fe19ce8..234b2f53e0ff 100644 --- a/packages/rocketchat-i18n/i18n/sv.i18n.json +++ b/packages/rocketchat-i18n/i18n/sv.i18n.json @@ -1747,7 +1747,8 @@ "Mailer_body_tags": "Du måste använda [unsubscribe] för prenumeration länken.
Du kan använda [name], [fname], [lname] för användarens fullständiga namn, förnamn eller efternamn, respektive.
Du kan använda [email] för användarens e-post.", "Mailing": "Mailing", "Make_Admin": "Gör till administratör", - "Make_sure_you_have_a_copy_of_your_codes": "Se till att du har en kopia av dina koder: __codes__ Om du förlorar åtkomst till din autentiseringsapp kan du använda en av dessa koder för att logga in.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Se till att du har en kopia av dina koder:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Om du förlorar åtkomst till din autentiseringsapp kan du använda en av dessa koder för att logga in.", "manage-apps": "Hantera Apps", "manage-assets": "Hantera tillgångar", "manage-assets_description": "Tillstånd att hantera serverns tillgångar", @@ -1974,6 +1975,7 @@ "Office_Hours": "Kontorstider", "Office_hours_enabled": "Kontortimmar aktiverade", "Office_hours_updated": "Kontortid uppdaterad", + "RetentionPolicy_ExcludePinned": "Exkludera fasta meddelanden", "Offline": "Offline", "Offline_DM_Email": "Du har fått ett meddelande av __user__", "Offline_Email_Subject_Description": "Du kan använda följande platsinnehavare:
  • [Site_Name], [Site_URL], [User] och [Room] för respektive programnamn, URL, Användarnamn och Rumnamn.
", @@ -2229,7 +2231,6 @@ "RetentionPolicy_AppliesToChannels": "Gäller kanaler", "RetentionPolicy_AppliesToGroups": "Gäller privata grupper", "RetentionPolicy_AppliesToDMs": "Gäller direktmeddelanden", - "RetentionPolicy_ExcludePinned": "Exkludera fasta meddelanden", "RetentionPolicy_FilesOnly": "Ta bara bort filer", "RetentionPolicy_FilesOnly_Description": "Endast filer kommer att raderas, meddelandena själva kommer att stanna kvar.", "RetentionPolicy_MaxAge": "Maximal meddelandeålder", @@ -2304,6 +2305,7 @@ "SAML_Custom_user_data_fieldmap": "Användardatafält Karta", "SAML_Custom_Immutable_Property_Username": "Användarnamn", "SAML_Custom_Public_Cert": "Certifikat för allmän certifiering", + "SAML_Section_1_User_Interface": "Användargränssnitt", "Saturday": "lördag", "Save": "Spara", "save-others-livechat-room-info": "Spara andra Livechat Room Info", @@ -2315,7 +2317,7 @@ "Saved": "Sparad", "Saving": "Sparar", "Scan_QR_code": "Använd en autentiseringsapp som Google Authenticator, Authy eller Duo, skanna QR-koden. Det kommer att visa en 6-siffrig kod som du måste ange nedan.", - "Scan_QR_code_alternative_s": "Om du inte kan skanna QR-koden kan du ange kod manuellt istället: __code__", + "Scan_QR_code_alternative_s": "Om du inte kan skanna QR-koden kan du ange kod manuellt istället:", "Scope": "Omfattning", "Screen_Share": "Skärmdelning", "Script_Enabled": "Skript Aktiverat", diff --git a/packages/rocketchat-i18n/i18n/ta-IN.i18n.json b/packages/rocketchat-i18n/i18n/ta-IN.i18n.json index 1fea40f39706..a75f09ff3912 100644 --- a/packages/rocketchat-i18n/i18n/ta-IN.i18n.json +++ b/packages/rocketchat-i18n/i18n/ta-IN.i18n.json @@ -1676,7 +1676,8 @@ "Mailer_body_tags": "நீங்கள் சந்தா இணைப்பு [unsubscribe] பயன்படுத்த வேண்டும்.
முறையே பயனர் முழு பெயர், முதல் பெயர் அல்லது கடைசி பெயரை நீங்கள் [name], [fname], பயன்படுத்தலாம் [lname].
நீங்கள் பயனர் மின்னஞ்சல் ஐந்து [email] பயன்படுத்தலாம்.", "Mailing": "அஞ்சல்", "Make_Admin": "நிர்வாகம் செய்ய", - "Make_sure_you_have_a_copy_of_your_codes": "உங்கள் குறியீடுகளின் நகலை வைத்திருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்: __codes__ உங்கள் அங்கீகார பயன்பாட்டிற்கு அணுகலை இழந்தால், உள்நுழைய இந்த குறியீடுகளில் ஒன்றை நீங்கள் பயன்படுத்தலாம்.", + "Make_sure_you_have_a_copy_of_your_codes_1": "உங்கள் குறியீடுகளின் நகலை வைத்திருப்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்:", + "Make_sure_you_have_a_copy_of_your_codes_2": "உங்கள் அங்கீகார பயன்பாட்டிற்கு அணுகலை இழந்தால், உள்நுழைய இந்த குறியீடுகளில் ஒன்றை நீங்கள் பயன்படுத்தலாம்.", "manage-apps": "பயன்பாடுகளை நிர்வகி", "manage-assets": "சொத்துகளை நிர்வகி", "manage-assets_description": "சர்வர் சொத்துகளை நிர்வகிக்க அனுமதி", @@ -1901,6 +1902,7 @@ "Office_Hours": "அலுவலக நேரம்", "Office_hours_enabled": "அலுவலகம் மணி இயக்கப்பட்டது", "Office_hours_updated": "அலுவலக நேரம் புதுப்பிக்கப்பட்டது", + "RetentionPolicy_ExcludePinned": "பின் செய்திகளை விலக்கவும்", "Offline": "ஆஃப்லைன்", "Offline_DM_Email": "நீங்கள் நேரடி __user__ மூலம் குறுஞ்செய்தி வருகின்றன", "Offline_Email_Subject_Description": "நீங்கள் பின்வரும் பெட்டிகளைப் பயன்படுத்தலாம்:
  • விண்ணப்பப் பெயர், URL, பயனர்பெயர் & அறை பெயரை முறையே [Site_Name], [Site_URL], [பயனர்] & அறை].
", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "சேனல்களுக்கு பொருந்தும்", "RetentionPolicy_AppliesToGroups": "தனியார் குழுக்களுக்கு பொருந்தும்", "RetentionPolicy_AppliesToDMs": "நேரடி செய்திகளுக்கு பொருந்தும்", - "RetentionPolicy_ExcludePinned": "பின் செய்திகளை விலக்கவும்", "RetentionPolicy_FilesOnly": "கோப்புகளை மட்டும் நீக்கு", "RetentionPolicy_FilesOnly_Description": "கோப்புகள் மட்டுமே நீக்கப்படும், செய்திகளும் தங்குதலுடன் இருக்கும்.", "RetentionPolicy_MaxAge": "அதிகபட்ச செய்தி வயது", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "பயனர் தகவல்கள் களம் வரைபடம்", "SAML_Custom_Immutable_Property_Username": "பயனர் பெயர்", "SAML_Custom_Public_Cert": "பொது சான்றிதழ்", + "SAML_Section_1_User_Interface": "பயனர் இடைமுகம்", "Saturday": "சனிக்கிழமை", "Save": "சேமி", "save-others-livechat-room-info": "மற்றவர்கள் Livechat அறை தகவல் சேமிக்க", @@ -2231,7 +2233,7 @@ "Saved": "சேமித்த", "Saving": "சேமிப்பு", "Scan_QR_code": "Google Authenticator, Authy அல்லது Duo போன்ற authenticator பயன்பாட்டைப் பயன்படுத்தி, QR குறியீட்டை ஸ்கேன் செய்யவும். இது கீழே உள்ளிட வேண்டிய 6 இலக்க குறியீட்டைக் காட்டுகிறது.", - "Scan_QR_code_alternative_s": "நீங்கள் QR குறியீட்டை ஸ்கேன் செய்ய இயலாவிட்டால், நீங்கள் அதற்கு பதிலாக கைமுறையாக குறியீட்டை உள்ளிடலாம்: __code__", + "Scan_QR_code_alternative_s": "நீங்கள் QR குறியீட்டை ஸ்கேன் செய்ய இயலாவிட்டால், நீங்கள் அதற்கு பதிலாக கைமுறையாக குறியீட்டை உள்ளிடலாம்:", "Scope": "நோக்கம்", "Screen_Share": "திரையில் பகிர்ந்து", "Script_Enabled": "ஸ்கிரிப்ட்", diff --git a/packages/rocketchat-i18n/i18n/th-TH.i18n.json b/packages/rocketchat-i18n/i18n/th-TH.i18n.json index e178784f1bce..55a04d7153a2 100644 --- a/packages/rocketchat-i18n/i18n/th-TH.i18n.json +++ b/packages/rocketchat-i18n/i18n/th-TH.i18n.json @@ -1675,7 +1675,8 @@ "Mailer_body_tags": "คุณ ต้องใช้ [ยกเลิกการบอกรับเป็นสมาชิก] สำหรับลิงก์ยกเลิกการสมัคร
คุณสามารถใช้ [name], [fname], [lname] ตามลำดับเพื่อชื่อเต็มของผู้ใช้ชื่อหรือนามสกุลตามลำดับ
คุณสามารถใช้ [email] สำหรับอีเมลของผู้ใช้", "Mailing": "จดหมาย", "Make_Admin": "ทำให้ผู้ดูแลระบบ", - "Make_sure_you_have_a_copy_of_your_codes": "ตรวจสอบให้แน่ใจว่าคุณมีสำเนาของรหัส: __codes__ หากคุณสูญเสียสิทธิ์การเข้าถึงแอพพลิเคชั่น authenticator ของคุณคุณสามารถใช้รหัสเหล่านี้เพื่อเข้าสู่ระบบได้", + "Make_sure_you_have_a_copy_of_your_codes_1": "ตรวจสอบให้แน่ใจว่าคุณมีสำเนาของรหัส:", + "Make_sure_you_have_a_copy_of_your_codes_2": "หากคุณสูญเสียสิทธิ์การเข้าถึงแอพพลิเคชั่น authenticator ของคุณคุณสามารถใช้รหัสเหล่านี้เพื่อเข้าสู่ระบบได้", "manage-apps": "จัดการแอป", "manage-assets": "จัดการเนื้อหา", "manage-assets_description": "สิทธิ์ในการจัดการสินทรัพย์เซิร์ฟเวอร์", @@ -1900,6 +1901,7 @@ "Office_Hours": "เวลาทำการ", "Office_hours_enabled": "เปิดใช้งาน Office Hours แล้ว", "Office_hours_updated": "อัปเดตชั่วโมงทำงานแล้ว", + "RetentionPolicy_ExcludePinned": "ไม่รวมข้อความตรึง", "Offline": "ออฟไลน์", "Offline_DM_Email": "หัวข้ออีเมลข้อความโดยตรง", "Offline_Email_Subject_Description": "คุณสามารถใช้ตัวยึดตำแหน่งต่อไปนี้:
  • [Site_Name], [Site_URL], [ผู้ใช้] และ [Room] สำหรับชื่อแอ็พพลิเคชัน URL ชื่อผู้ใช้และชื่อห้องตามลำดับ
", @@ -2147,7 +2149,6 @@ "RetentionPolicy_AppliesToChannels": "ใช้กับช่อง", "RetentionPolicy_AppliesToGroups": "ใช้กับกลุ่มส่วนตัว", "RetentionPolicy_AppliesToDMs": "ใช้กับข้อความโดยตรง", - "RetentionPolicy_ExcludePinned": "ไม่รวมข้อความตรึง", "RetentionPolicy_FilesOnly": "ลบเฉพาะไฟล์เท่านั้น", "RetentionPolicy_FilesOnly_Description": "ระบบจะลบเฉพาะไฟล์เท่านั้นข้อความจะอยู่ในสถานที่", "RetentionPolicy_MaxAge": "อายุข้อความสูงสุด", @@ -2220,6 +2221,7 @@ "SAML_Custom_user_data_fieldmap": "แผนที่ช่องข้อมูลผู้ใช้", "SAML_Custom_Immutable_Property_Username": "ชื่อผู้ใช้", "SAML_Custom_Public_Cert": "เนื้อหาของใบรับรองสาธารณะ", + "SAML_Section_1_User_Interface": "หน้าจอผู้ใช้", "Saturday": "วันเสาร์", "Save": "ประหยัด", "save-others-livechat-room-info": "บันทึกข้อมูลอื่น ๆ ของ Livechat", @@ -2230,7 +2232,7 @@ "Saved": "ที่บันทึกไว้", "Saving": "ประหยัด", "Scan_QR_code": "การใช้แอปพลิเคชัน authenticator เช่น Google Authenticator, Authy หรือ Duo จะสแกนโค้ด QR รหัสนี้จะแสดงรหัส 6 หลักซึ่งคุณต้องป้อนด้านล่าง", - "Scan_QR_code_alternative_s": "หากคุณไม่สามารถสแกนโค้ด QR ได้คุณอาจป้อนรหัสด้วยตนเองแทน: __code__", + "Scan_QR_code_alternative_s": "หากคุณไม่สามารถสแกนโค้ด QR ได้คุณอาจป้อนรหัสด้วยตนเองแทน:", "Scope": "ขอบเขต", "Screen_Share": "แบ่งปันหน้าจอ", "Script_Enabled": "เปิดใช้สคริปต์แล้ว", diff --git a/packages/rocketchat-i18n/i18n/tr.i18n.json b/packages/rocketchat-i18n/i18n/tr.i18n.json index e88a9f6043d1..e17000c3b2b0 100644 --- a/packages/rocketchat-i18n/i18n/tr.i18n.json +++ b/packages/rocketchat-i18n/i18n/tr.i18n.json @@ -989,7 +989,7 @@ "Custom_Sound_Saved_Successfully": "Özel ses başarıyla kaydedildi", "Custom_Sounds": "Özel Sesler", "Custom_Translations": "Özel Çeviriler", - "Custom_Translations_Description": "Anahtarların bir anahtar sözcük ve çeviriler içeren diller olduğu geçerli bir JSON olmalıdır. Örnek:
{  \"en\": {   \"Channels\": \"Rooms\"  },\n \"pt\": {   \"Channels\": \"Salas\"  }\n}", + "Custom_Translations_Description": "Anahtarların bir anahtar sözcük ve çeviriler içeren diller olduğu geçerli bir JSON olmalıdır. Örnek:
{\n \"en\": {\n  \"Channels\": \"Rooms\"\n }\n\"pt\":{\n  \"Channels\": \"Salas\"\n }\n}", "Custom_User_Status": "Özel Kullanıcı Durumu", "Custom_User_Status_Add": "Özel Kullanıcı Durumu Ekle", "Custom_User_Status_Added_Successfully": "Özel Kullanıcı Durumu Başarıyla Eklendi", @@ -1065,6 +1065,7 @@ "Desktop_Notifications_Not_Enabled": "Masaüstü Bildirimleri Devre Dışı", "Details": "Ayrıntılar", "Different_Style_For_User_Mentions": "Kullanıcılar için farklı stil", + "Direct_message_you_have_joined": "Yeni bir doğrudan mesaja katıldınız", "Direct_message_someone": "Birine doğrudan ileti gönder", "Direct_Messages": "Doğrudan İletiler", "Direct_Reply": "Doğrudan Yanıt", @@ -1218,6 +1219,7 @@ "Entertainment": "Eğlence", "Error": "Hata", "error-action-not-allowed": "__action__ izin verilmiyor", + "error-agent-offline": "Operatör çevrimdışı ise", "error-application-not-found": "Uygulama bulunamadı", "error-archived-duplicate-name": "Adı '__room_name__' ile arşivlenmiş bir kanal var", "error-avatar-invalid-url": "Geçersiz avatar URL'si: __url__", @@ -1753,6 +1755,7 @@ "Join_the_given_channel": "Verilen kanala katıl", "Join_video_call": "Video görüşmesine katılın", "Joined": "Katılım", + "Joined_at": "Katıldı", "Jump": "Şuraya atla", "Jump_to_first_unread": "Okunmamış ilk iletiye git", "Jump_to_message": "İletiye git", @@ -1981,7 +1984,8 @@ "Mailer_body_tags": "Abonelikten çıkma bağlantısı için [unsubscribe] kullanmak zorundasınız.
Kullanıcının ad-soyadı, adı veya soyadı için sırasıyla [name], [fname] veya [lname] kullanabilirsiniz.
Kullanıcının e-postası için [email] kullanabilirsiniz.", "Mailing": "Posta gönderiliyor", "Make_Admin": "Yönetici Yap", - "Make_sure_you_have_a_copy_of_your_codes": "Kodlarınızın bir kopyasını aldığınızdan emin olun: __codes__ Doğrulayıcı uygulamanıza erişimi kaybederseniz, oturum açmak için bu kodlardan birini kullanabilirsiniz.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Kodlarınızın bir kopyasını aldığınızdan emin olun:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Doğrulayıcı uygulamanıza erişimi kaybederseniz, oturum açmak için bu kodlardan birini kullanabilirsiniz.", "manage-apps": "Uygulamaları yönet", "manage-assets": "Varlıkları Yönetin", "manage-assets_description": "Sunucu varlıklarını yönetme izni", @@ -2236,6 +2240,7 @@ "Number_of_events": "Etkinlik sayısı", "Number_of_federated_users": "Federe kullanıcı sayısı", "Number_of_messages": "İleti sayısı", + "RetentionPolicy_DoNotExcludeDiscussion": "Tartışma iletileri dışarıda tutulmasın", "OAuth Apps": "OAuth Uygulamaları", "OAuth_Application": "OAuth Uygulaması", "OAuth_Applications": "OAuth Uygulamaları", @@ -2246,15 +2251,17 @@ "Office_Hours": "Çalışma saatleri", "Office_hours_enabled": "Çalışma Saatleri Etkin", "Office_hours_updated": "Ofis saatleri güncellendi", + "RetentionPolicy_ExcludePinned": "Sabitlenmiş iletileri dışında tut", "Offline": "Çevrimdışı", "Offline_DM_Email": "Doğrudan İleti E-Posta Konusu", "Offline_Email_Subject_Description": "Aşağıdaki yer tutucuları kulanabilirsiniz:
  • Uygulama adı, URL, kullanıcı adı ve oda adı için, sırasıyla [Site_Name], [Site_URL], [User] ve [Room].
", "Offline_form": "Çevrimdışı formu", "Offline_form_unavailable_message": "Çevrimdışı Formu Kullanılamıyor İletisi", "Offline_Link_Message": "İLETİYE GİT", + "Offline_Message": "Çevrimdışı Mesaj", "Offline_Mention_All_Email": "Tüm E-postaları Konuyla İlgili Anlat", "Offline_Mention_Email": "#__room__ içinde __user__ sizden bahsetti", - "Offline_message": "Çevrimdışı iletisi", + "Offline_message": "Çevrimdışı mesaj", "Offline_success_message": "Çevrimdışı Başarı İletisi", "Offline_unavailable": "Çevrimdışı kullanılamıyor", "Old Colors": "Eski Renkler", @@ -2327,7 +2334,7 @@ "Pinned_a_message": "Sabitlenen ileti:", "Pinned_Messages": "Sabitlenmiş İletiler", "PiwikAdditionalTrackers": "Ek Piwik Siteleri", - "PiwikAdditionalTrackers_Description": "Aynı veriyi farklı web sitelerine izlemek istiyorsanız: [{\"trackerURL\": \"https: //my.piwik.domain2/\", \"siteId\": 42}, eklenti Piwik web sitesi URL'lerini ve SiteID'lerini aşağıdaki biçimde girin: {\"trackerURL\": \"https: //my.piwik.domain3/\", \"siteId\": 15}]", + "PiwikAdditionalTrackers_Description": "Aynı veriyi farklı web sitelerine izlemek istiyorsanız: [ { \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]\n", "PiwikAnalytics_cookieDomain": "Tüm Alt Alanlar", "PiwikAnalytics_cookieDomain_Description": "Ziyaretçileri tüm alt alanlar arasında izleme", "PiwikAnalytics_domains": "Giden Bağlantıları Gizle", @@ -2524,7 +2531,6 @@ "Retail": "Perakende", "Retention_setting_changed_successfully": "Saklama politikası ayarı başarıyla değiştirildi", "RetentionPolicy": "Alıkoyma politikası", - "RetentionPolicy_DoNotExcludeDiscussion": "Tartışma iletileri dışarıda tutulmasın", "RetentionPolicy_RoomWarning": "__time__'den eski mesajlar otomatik olarak budanır", "RetentionPolicy_RoomWarning_Unpinned": "__time__'den eski sabit olmayan iletiler burada otomatik olarak budanır", "RetentionPolicy_RoomWarning_FilesOnly": "__time__'den eski dosyalar otomatik olarak budanır (mesajlar bozulmadan kalır)", @@ -2534,7 +2540,6 @@ "RetentionPolicy_AppliesToChannels": "Kanallara uygulanır", "RetentionPolicy_AppliesToGroups": "Özel gruplara uygulanır", "RetentionPolicy_AppliesToDMs": "Doğrudan iletilere uygulanır", - "RetentionPolicy_ExcludePinned": "Sabitlenmiş iletileri dışında tut", "RetentionPolicy_FilesOnly": "Sadece dosyaları sil", "RetentionPolicy_FilesOnly_Description": "Sadece dosyalar silinecek, mesajların kendisi yerinde kalacaktır.", "RetentionPolicy_MaxAge": "Maksimum ileti yaşı", @@ -2614,6 +2619,7 @@ "SAML_Custom_user_data_fieldmap": "Kullanıcı Veri Alanı Haritası", "SAML_Custom_Immutable_Property_Username": "Kullanıcı Adı", "SAML_Custom_Public_Cert": "Genel Sertifika İçeriği", + "SAML_Section_1_User_Interface": "Kullanıcı Arayüzü", "Saturday": "Cumartesi", "Save": "Kaydet", "save-others-livechat-room-info": "Diğerlerini Kaydedin Livechat Oda Bilgileri", @@ -2626,7 +2632,7 @@ "Saved": "Kaydedildi", "Saving": "Kaydediliyor", "Scan_QR_code": "Google Authenticator, Authy veya Duo gibi bir kimlik doğrulayıcı uygulaması kullanarak QR kodunu tarayın. Aşağıda girmeniz gereken 6 basamaklı bir kod görüntüler.", - "Scan_QR_code_alternative_s": "QR kodunu tarayamazsanız, bunun yerine el ile kodu girebilirsiniz: __code__", + "Scan_QR_code_alternative_s": "QR kodunu tarayamazsanız, bunun yerine el ile kodu girebilirsiniz:", "Scope": "Kapsam", "Screen_Share": "Ekran Paylaşımı", "Script_Enabled": "Betik Etkin", @@ -2762,6 +2768,7 @@ "Smarsh_MissingEmail_Email": "Eksik E-posta", "Smarsh_MissingEmail_Email_Description": "E-posta adresleri eksik olduğunda bir kullanıcı hesabı için gösterilecek e-posta genellikle bot hesaplarıyla olur.", "Smarsh_Timezone": "Smarsh Saat Dilimi", + "Timezone": "Saat dilimi", "Smileys_and_People": "İfadeler ve İnsanlar", "SMS_Enabled": "SMS Etkin", "SMTP": "SMTP", diff --git a/packages/rocketchat-i18n/i18n/uk.i18n.json b/packages/rocketchat-i18n/i18n/uk.i18n.json index 5f781930e5c8..af99e279a580 100644 --- a/packages/rocketchat-i18n/i18n/uk.i18n.json +++ b/packages/rocketchat-i18n/i18n/uk.i18n.json @@ -9,9 +9,13 @@ "2_Erros_Information_and_Debug": "2 - Помилки, інформація та налагодження", "@username": "@логін", "@username_message": "@логін ", + "__count__empty_rooms_will_be_removed_automatically": "__count__ порожні кімнати буде видалено автоматично.", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "__count__ порожні кімнати будуть видалені автоматично:
__rooms__.", "__username__is_no_longer__role__defined_by__user_by_": "__username__ більше не __role__, за рішенням __user_by__", "__username__was_set__role__by__user_by_": "__username__ був встановлений __role__ за рішенням __user_by__", "%_of_conversations": "% розмов", + "A_new_owner_will_be_assigned_automatically_to__count__rooms": "Новий власник буде призначений автоматично до __count__ кімнат.", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "Новий власник буде призначений автоматично до кімнати __roomName__.", "Accept": "Погоджуюсь", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "Приймати запити із livechat, навіть коли немає підключених співробітників", "Accept_new_livechats_when_agent_is_idle": "Приймати нові запити livechat, коли представник не активний ", @@ -51,6 +55,8 @@ "Accounts_AvatarExternalProviderUrl_Description": "Приклад: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "Перелік заблокованих доменів", "Accounts_BlockedDomainsList_Description": "Перелік заблокованих доменів, розділених комою", + "Accounts_Verify_Email_For_External_Accounts": "Перевірте електронну пошту для зовнішніх облікових записів", + "Block_Multiple_Failed_Logins_Enabled": "Увімкнути збирання даних входу в систему", "Accounts_BlockedUsernameList": "Перелік заблокованих користувачів", "Accounts_BlockedUsernameList_Description": "Перелік заблокованих імен користувачів (без урахування регістру), розділених комами ", "Accounts_CustomFields_Description": "Очікується правильний JSON-об'єкт, в якому ключ - це назва поля, а його зміст - словник із налаштуваннями цього поля. Приклад:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n} ", @@ -69,7 +75,7 @@ "Accounts_Email_Deactivated": "[ім'я]

Ваш обліковий запис було вимкнено.

", "Accounts_Enrollment_Email_Default": "

Ласкаво просимо до [Site_Name]

Перейтдіть до [Site_URL] та спробуйте найкращий чат з відкритим вихідним кодом на сьогоднішній день!

", "Accounts_Email_Deactivated_Subject": "Обліковий запис деактивовано", - "Accounts_EmailVerification": "Підтвердження електронної пошти", + "Accounts_EmailVerification": "Дозволити вхід лише перевіреним користувачам", "Accounts_EmailVerification_Description": "Переконайтеся, що у вас є правильні налаштування SMTP, щоб використовувати цю функцію", "Accounts_Enrollment_Email_Subject_Default": "Ласкаво просимо до [Site_Name]", "Accounts_Enrollment_Email": "Електронна пошта для реєстрації", @@ -177,11 +183,11 @@ "Accounts_Password_Policy_ForbidRepeatingCharacters": "Заборонити повторювані символи", "Accounts_Password_Policy_ForbidRepeatingCharacters_Description": "Забезпечує, що паролі не містять один і той же символ, який повторюється поруч один з одним.", "Accounts_Password_Policy_ForbidRepeatingCharactersCount": "Максимальна кількість повторюваних символів", - "Accounts_Password_Policy_ForbidRepeatingCharactersCount_Description": "Кількість разів, коли символ може повторюватися, перш ніж він не допускається.", + "Accounts_Password_Policy_ForbidRepeatingCharactersCount_Description": "Дозволена кількість разів, яку символ може повторюватися. ", "Accounts_Password_Policy_MaxLength": "Максимальна довжина", "Accounts_Password_Policy_MaxLength_Description": "Забезпечує, що паролі не містять більше цієї кількості символів. Використовуйте `-1` для відключення.", "Accounts_Password_Policy_MinLength": "Мінімальна довжина", - "Accounts_Password_Policy_MinLength_Description": "Забезпечує, щоб паролі мали принаймні таку кількість символів. Використовуйте `-1` для відключення.", + "Accounts_Password_Policy_MinLength_Description": "Забезпечує, щоб паролі повинні мати принаймні таку кількість символів. Використовуйте `-1` для відключення.", "Accounts_PasswordReset": "Скидання пароля", "Accounts_Registration_AuthenticationServices_Default_Roles": "Ролі за замовчуванням для сервісів авторизації", "Accounts_Registration_AuthenticationServices_Default_Roles_Description": "Ролі за замовчуванням (розділені комою), які будуть призначені користувачам, зареєстрованим через сервіси авторизації", @@ -209,15 +215,15 @@ "Accounts_ShowFormLogin": "Показати форму входу за замовчуванням", "Accounts_TwoFactorAuthentication_By_Email_Enabled": "Увімкніть двофакторну автентифікацію електронною поштою", "Accounts_TwoFactorAuthentication_By_Email_Enabled_Description": "Користувачі із підтвердженою електронною поштою та включеною опцією у своєму профілі, отримають електронний лист із тимчасовим кодом для авторизації певних дій, таких як вхід, збереження профілю тощо.", - "Accounts_TwoFactorAuthentication_By_Email_Auto_Opt_In": "Автоматично вибирайте нових користувачів для двох факторів за допомогою електронної пошти", + "Accounts_TwoFactorAuthentication_By_Email_Auto_Opt_In": "Автоматично вибирайте нових користувачів для двофакторної авторизації за допомогою електронної пошти", "Accounts_TwoFactorAuthentication_Enabled": "Увімкнути двофакторну автентифікацію через TOTP", "Accounts_TwoFactorAuthentication_MaxDelta": "Максимальна дельта", - "Accounts_UserAddedEmail_Default": "

Ласкаво просимо до [Site_Name]

Перейти до [Site_URL] і спробувати краще рішення чату з відкритим вихідним кодом на сьогоднішній день!

Ви можете увійти в систему, використовуючи адресу електронної пошти: [email] і пароль: [password]. Можливо, вам буде потрібно змінити його після першого входу в систему.", - "Accounts_TwoFactorAuthentication_MaxDelta_Description": "Максимальна дельта визначає, скільки токенів дійсні в будь-який момент часу. Токени генеруються кожні 30 секунд і діють для (30 * максимальної дельти) секунд.
Приклад: якщо максимальна дельта дорівнює 10, кожен токен може бути використаний до 300 секунд до або після позначки часу. Це корисно, коли годинник клієнта не синхронізовано з сервером належним чином.", + "Accounts_UserAddedEmail_Default": "

Ласкаво просимо до [Site_Name]

Перейти до [Site_URL] і спробувати краще рішення чату з відкритим вихідним кодом на сьогоднішній день!

Ви можете увійти в систему, використовуючи адресу електронної пошти: [email] і пароль: [password]. Можливо, вам буде потрібно змінити його після першого входу в систему.", + "Accounts_TwoFactorAuthentication_MaxDelta_Description": "Максимальна дельта визначає, скільки токенів дійсні в будь-який момент часу. Токени генеруються кожні 30 секунд і діють для (30 * максимальної дельти) секунд.
Приклад: якщо максимальна дельта дорівнює 10, кожен токен може бути використаний до 300 секунд перед або після позначки часу. Це корисно, коли годинник клієнта не синхронізовано з сервером належним чином.", "Accounts_UseDefaultBlockedDomainsList": "Використовувати за замовчуванням список заблокованих доменів", "Accounts_UseDNSDomainCheck": "Використовувати DNS перевірку домену", "Accounts_UserAddedEmailSubject_Default": "Ви були додані до [Site_Name]", - "Accounts_UserAddedEmail_Description": "Ви можете використовувати наступні наповнювачі:

  • [name], [fname], [lname] повне ім'я користувача, ім'я або прізвище, відповідно.
  • [email] для електронної пошти користувача.
  • [password] для пароля користувача.
  • [Site_Name] і [Site_URL] для імені додатки і URL відповідно.
", + "Accounts_UserAddedEmail_Description": "Ви можете використовувати наступні наповнювачі:
  • [name], [fname], [lname] для повного ім'я користувача, ім'я або прізвище, відповідно.
  • [email] для електронної пошти користувача.
  • [password] для пароля користувача.
  • [Site_Name] і [Site_URL] назви програми і URL-адреси відповідно.
", "Activate": "Активувати", "Activity": "Активність", "Add": "Додати", @@ -229,13 +235,13 @@ "add-user-to-any-p-room": "Додати користувача до будь-якого приватного каналу", "add-user-to-any-p-room_description": "Дозвіл на додавання користувача до будь-якого приватного каналу", "add-user-to-joined-room": "Додавання користувача до будь-якого доступного каналу", - "add-user-to-joined-room_description": "Дозвіл на додавання користувача до щойно приєднаного каналу", + "add-user-to-joined-room_description": "Дозвіл на додавання користувача до вже приєднаного каналу", "add-user_description": "Дозвіл додавати нових користувачів серверу через сторінку управління користувачами", "Add_agent": "Додати представника", "Add_custom_oauth": "Додати користувацький OAuth", "Add_Domain": "Додати домен", "Add_files_from": "Додати файли з ", - "add-livechat-department-agents": "Додати агенти Livechat до відділів", + "add-livechat-department-agents": "Додайте Omnichannel представників до відділів", "Add_manager": "Додати менеджера", "Add_Role": "Додати роль", "Add_user": "Додати користувача", @@ -246,14 +252,14 @@ "Adding_user": "Додавання користувача", "Additional_emails": "Додаткові електронні адреси", "Additional_Feedback": "Додатковий зворотній зв'язок", - "additional_integrations_Bots": "Якщо ви шукаєте, як інтегрувати свій власний бот, то шукайте не більше, ніж наш адаптер Hubot. https://github.com/RocketChat/hubot-rocketchat", + "additional_integrations_Bots": "Якщо ви шукаєте, як інтегрувати свій власний бот, то шукайте не більше, ніж наш адаптер Hubot. https://github.com/RocketChat/hubot-rocketchat", "additional_integrations_Zapier": "Ви хочете інтегрувати інше програмне забезпечення та програми з Rocket.Chat, але у вас немає часу вручну зробити це? Тоді ми пропонуємо використовувати Zapier, який ми повністю підтримуємо. Докладніше про це читайте в нашій документації. https://rocket.chat/docs/administrator-guides/integrations/zapier/using-zaps/", "Admin_disabled_encryption": "Ваш адміністратор не ввімкнув шифрування E2E.", "Admin_Info": "Інформація адміністратора", "Administration": "Адміністрування", "Adult_images_are_not_allowed": "Картинки із змістом для дорослих заборонені", "Advocacy": "Адвокація", - "After_OAuth2_authentication_users_will_be_redirected_to_this_URL": "Після аутентифікації oauth2, користувачі будуть перенаправлятися на цей URL", + "After_OAuth2_authentication_users_will_be_redirected_to_this_URL": "Після аутентифікації OAuth2 користувачі будуть перенаправлені на URL-адресу в цьому списку. Ви можете додати одну URL-адресу на рядок.", "Agent": "Представник", "Agent_Info": "Інформація про представника", "Agents": "Агенти", @@ -266,32 +272,32 @@ "Alias_Set": "Налаштування псевдоніму", "Aliases": "Псевдоніми", "All": "Всі", - "All_added_tokens_will_be_required_by_the_user": "Всі доданіі токени мають бути обов'язковими для користувача", + "All_added_tokens_will_be_required_by_the_user": "Всі додані токени мають бути обов'язковими для користувача", "All_channels": "Всі канали", "All_closed_chats_have_been_removed": "Всі закриті чати були видалені", "All_logs": "Всі журнали", "All_messages": "Всі повідомлення", "All_users": "Всі користувачі", - "All_users_in_the_channel_can_write_new_messages": "Всі користувачі каналу можуть добавляти повідомлення", + "All_users_in_the_channel_can_write_new_messages": "Всі користувачі каналу можуть писати повідомлення", "Allow_collect_and_store_HTTP_header_informations": "Дозволено збирати та зберігати інформацію заголовка HTTP", "Allow_collect_and_store_HTTP_header_informations_description": "Цей параметр визначає, чи дозволено Livechat зберігати інформацію, зібрану з даних заголовка HTTP, таких як IP-адреса, User-Agent тощо.", "Allow_Invalid_SelfSigned_Certs": "Дозволити недійсні самопідписані сертифікати", "Allow_Invalid_SelfSigned_Certs_Description": "Дозволити недійсні і самопідписані SSL сертифікати, для перевірки посилань і попередніх переглядів.", - "Allow_switching_departments": "Дозволити відвідувачу змінувати відділ", + "Allow_switching_departments": "Дозволити відвідувачу змінити відділи", "Allow_Marketing_Emails": "Дозволити маркетингові електронні листи", - "Allow_Online_Agents_Outside_Office_Hours": "Дозволити онлайн-агенти поза межами робочого часу", + "Allow_Online_Agents_Outside_Office_Hours": "Дозволити онлайн представників поза межами робочого часу", "Almost_done": "Майже зроблено", "Alphabetical": "В алфавітному порядку", - "Always_open_in_new_window": "Дозволити відкривати у новому вікні", + "Always_open_in_new_window": "Завжди відкривати у новому вікні", "Analytics": "Аналітика", "Analytics_features_enabled": "Увімкнені функції", - "Analytics_features_messages_Description": "Відстежує власні події, пов’язані з діями, які користувач виконує над повідомленнями.", - "Analytics_features_rooms_Description": "Відстежує власні події, пов’язані з діями на каналі чи групі (створювати, залишати, видаляти).", - "Analytics_features_users_Description": "Відстежує власні події, пов’язані з діями, пов'язаними з користувачами (час скидання пароля, зміни зображення профілю, тощо).", + "Analytics_features_messages_Description": "Відстежує користувацькі події, пов’язані з діями користувач виконує над повідомленнями.", + "Analytics_features_rooms_Description": "Відстежує користувацькі події, пов’язані з діями на каналі чи групі (створити, покинути, видалити).", + "Analytics_features_users_Description": "Відстежує користувацькі події, пов’язані з діями з користувачами (час скидання пароля, зміни зображення профілю, тощо).", "Analytics_Google": "Google Analytics", "Analytics_Google_id": "Ідентифікатор відстежування", "and": "і", - "And_more": "And __length__ more", + "And_more": "І ще __length__ ", "Animals_and_Nature": "Тварини і Природа", "Announcement": "Оголошення", "API": "API", @@ -299,36 +305,36 @@ "API_Allow_Infinite_Count": "Дозволити отримувати все", "API_Allow_Infinite_Count_Description": "Чи варто дозволити виклики до REST API повертати все в одному виклику?", "API_Analytics": "Аналітика", - "api-bypass-rate-limit": "Обмеження швидкості для API REST", + "api-bypass-rate-limit": "Обмеження швидкості для REST API ", "API_CORS_Origin": "CORS Origin", "API_Default_Count": "Підрахунок за замовчуванням", - "API_Default_Count_Description": "Підрахунок за замовчуванням для результатів API REST, якщо споживач не надав жодного.", + "API_Default_Count_Description": "Кількість результатів REST API за замовчуванням, якщо споживач не надав жодного.", "API_Drupal_URL": "URL-адреса сервера Drupal", "API_Drupal_URL_Description": "Приклад: https://domain.com (без кінцевої риски)", "API_Embed": "Вставляти попередні перегляди посилань", "API_Embed_Description": "Чи увімкнено попередній перегляд вбудованих посилань, коли користувач публікує посилання на веб-сайт.", - "API_Embed_UserAgent": "Вставити заявку на користувача агента", - "API_EmbedCacheExpirationDays": "Вставити кеш-закінчення днів", - "API_EmbedDisabledFor": "Відключити Код для користувачів", - "API_EmbedDisabledFor_Description": "Розділених комами список імен користувачів", + "API_Embed_UserAgent": "Вставити заявку на агента користувача ", + "API_EmbedCacheExpirationDays": "Вставити термін дії кешу (днів)", + "API_EmbedDisabledFor": "Відключити вбудовування для користувачів", + "API_EmbedDisabledFor_Description": "Розділений комами список імен користувачів, яким вимкнуто попередній перегляд посилань", "API_EmbedIgnoredHosts": "Вставити ігноровані хости", "API_EmbedIgnoredHosts_Description": "Розділений комами список хостів або CIDR адрес, наприклад. локальний, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", "API_EmbedSafePorts": "Безпечні порти", - "API_EmbedSafePorts_Description": "Розділених комами список портів, дозволених для перегляду.", + "API_EmbedSafePorts_Description": "Розділених комами список портів, дозволених для попереднього перегляду.", "API_Enable_CORS": "Увімкнути CORS", "API_Enable_Direct_Message_History_EndPoint": "Увімкнути кінцеву точку історії прямих повідомлень", - "API_Enable_Direct_Message_History_EndPoint_Description": "Вмикає `/api/v1/ im.history.otherers ', що дозволяє переглядати прямі повідомлення, надіслані іншими користувачами, які не є частиною абонента, що викликає.", + "API_Enable_Direct_Message_History_EndPoint_Description": "Вмикає `/api/v1/ im.history.otherers', що дозволяє переглядати прямі повідомлення, надіслані іншими користувачами, в яких не бере учать користувач, що викликає.", "API_Enable_Rate_Limiter": "Увімкнути обмеження швидкості", "API_Enable_Rate_Limiter_Dev": "Увімкнути обмеження швидкості при розробці", "API_Enable_Rate_Limiter_Dev_Description": "Чи слід обмежувати кількість викликів до кінцевих точок у середовищі розробки?", - "API_Enable_Rate_Limiter_Limit_Calls_Default": "Кількість викликів за замовчуванням для обмеження швидкості", + "API_Enable_Rate_Limiter_Limit_Calls_Default": "Кількість викликів за замовчуванням для обмеження викликів", "API_Enable_Rate_Limiter_Limit_Calls_Default_Description": "Кількість викликів за замовчуванням для кожної кінцевої точки API REST, дозволених протягом часового діапазону, визначеного нижче", "API_Enable_Rate_Limiter_Limit_Time_Default": "Ліміт часу для обмеження швидкості за замовчуванням (в мс)", - "API_Enable_Rate_Limiter_Limit_Time_Default_Description": "Тайм-аут за замовчуванням для обмеження кількості дзвінків у кожній кінцевій точці API REST (в мс)", - "API_Enable_Personal_Access_Tokens": "Увімкнути токени собистого доступу до API REST", + "API_Enable_Rate_Limiter_Limit_Time_Default_Description": "Тайм-аут за замовчуванням для обмеження кількості викликів у кожній кінцевій точці API REST (в мс)", + "API_Enable_Personal_Access_Tokens": "Увімкнути токени особистого доступу до API REST", "API_Enable_Personal_Access_Tokens_Description": "Увімкніть персональні токени для використання з API REST", "API_Enable_Shields": "Увімкнути Бейджі", - "API_Enable_Shields_Description": "Увімкнути бейджі доступні за адресою `/ api / v1 / shield.svg`", + "API_Enable_Shields_Description": "Увімкнути бейджі доступні за адресою `/api/v1/shield.svg`", "API_GitHub_Enterprise_URL": "URL-адреса сервера", "API_GitHub_Enterprise_URL_Description": "Приклад: http://domain.com (без слешу в кінці )", "API_Gitlab_URL": "URL GitLab", @@ -336,75 +342,75 @@ "API_Personal_Access_Tokens_To_REST_API": "Особисті токени до REST API", "API_Personal_Access_Tokens_Remove_Modal": "Ви впевнені, що хочете видалити цей токен?", "API_Personal_Access_Token_Generated": "Токен особистого доступу успішно створений", - "API_Personal_Access_Token_Generated_Text_Token_s_UserId_s": "Будь ласка, зберігайте токен безпечно, оскільки ви більше не зможете переглядати його.
Токен: __token__
Ваш Id користувача: __userId__", + "API_Personal_Access_Token_Generated_Text_Token_s_UserId_s": "Будь ласка, обережно збережіть токен, оскільки ви більше не зможете переглядати його.
Токен: __token__
Ваш Id користувача: __userId__", "API_Personal_Access_Tokens_Regenerate_Modal": "Якщо ви втратили або забули токен, його можна відновити, але пам’ятайте, що всі програми, які використовують цей токен, повинні бути оновлені", - "API_Personal_Access_Tokens_Regenerate_It": "Відновити токен", + "API_Personal_Access_Tokens_Regenerate_It": "Перестворити токен", "API_Shield_Types": "Типи бейджів", - "API_Shield_Types_Description": "Список типів бейджів для включення, розділених комами, обирати з \"online\", \"channel\" або \"*\" для всіх", + "API_Shield_Types_Description": "Список включених типів бейджів, розділених комами, оберайте з \"online\", \"channel\" або \"*\" для всіх", "API_Token": "API Токен", "API_Tokenpass_URL": "URL-адреса сервера Tokenpass", - "API_Tokenpass_URL_Description": "Приклад: https://domain.com (без слешу наприкінці)", + "API_Tokenpass_URL_Description": "Приклад: https://domain.com (без кінцевої риски)", "API_Upper_Count_Limit": "Максимальна кількість записів", - "API_Upper_Count_Limit_Description": "Яка максимальна кількість записів, які повинен відновити API REST (якщо не обмежений)?", + "API_Upper_Count_Limit_Description": "Яка максимальна кількість записів, які повинен повернути REST API (якщо без обмежень)?", "API_User_Limit": "Ліміт користувача для додавання всіх користувачів до каналу", "API_Wordpress_URL": "WordPress URL", "Apiai_Key": "Ключ Api.ai", "Apiai_Language": "Api.ai Мова", "App_author_homepage": "домашня сторінка автора", - "App_Details": "Деталі додатка", - "App_Information": "Інформація про додаток", - "App_Installation": "Встановлення додатка", + "App_Details": "Деталі застосунку", + "App_Information": "Інформація про застосунок", + "App_Installation": "Встановлення застосунку", "App_status_auto_enabled": "Увімкнено", "App_status_compiler_error_disabled": "Вимкнено: помилка компілятора", - "App_status_constructed": "Побудовано", + "App_status_constructed": "Побудований", "App_status_disabled": "Вимкнено", - "App_status_error_disabled": "Вимкнено: невичерпна помилка", + "App_status_error_disabled": "Вимкнено: невідома помилка", "App_status_initialized": "Ініціалізовано", "App_status_invalid_license_disabled": "Вимкнено: Недійсна ліцензія", "App_status_invalid_settings_disabled": "Вимкнено: потрібна конфігурація", "App_status_manually_disabled": "Вимкнено: вручну", "App_status_manually_enabled": "Увімкнено", "App_status_unknown": "Невідомий", - "App_support_url": "підтримка url", + "App_support_url": "url підтримки", "App_Url_to_Install_From": "Встановити з URL-адреси", "App_Url_to_Install_From_File": "Встановити з файлу", "App_user_not_allowed_to_login": "Користувачам застосунків не дозволяється безпосередньо входити в систему.", - "Appearance": "зовнішній вигляд", - "Application_added": "Додаток доданий", - "Application_Name": "ім'я програми", - "Application_updated": "Додаток оновлений", + "Appearance": "Зовнішній вигляд", + "Application_added": "Застосунок доданий", + "Application_Name": "Назва застосунку", + "Application_updated": "Застосунок оновлений", "Apply": "Застосувати", - "Apply_and_refresh_all_clients": "Застосувати і оновити для всих клієнтів", - "Apps": "Додатки", - "Apps_Engine_Version": "Версія ядра додатку", + "Apply_and_refresh_all_clients": "Застосувати і оновити для всіх клієнтів", + "Apps": "Застосунки", + "Apps_Engine_Version": "Версія ядра застосунків", "Apps_Framework_Development_Mode": "Увімкнути режим розробки", "Apps_Framework_Development_Mode_Description": "Режим розробки дозволяє встановлювати додатки не з Rocket.Chat's Marketplace.", - "Apps_Framework_enabled": "Увімкнено Framework додатку", + "Apps_Framework_enabled": "Увімкнути App Framework", "Apps_Game_Center": "Ігровий центр", "Apps_Game_Center_Back": "Повернутися до ігрового центру", - "Apps_Marketplace_Deactivate_App_Prompt": "Ви дійсно хочете вимкнути цей додаток?", + "Apps_Marketplace_Deactivate_App_Prompt": "Ви дійсно хочете вимкнути цей застосунок?", "Apps_Marketplace_Modify_App_Subscription": "Змінити підписку", "Apps_Marketplace_Uninstall_App_Prompt": "Ви дійсно хочете видалити цей додаток?", "Apps_Marketplace_Uninstall_Subscribed_App_Anyway": "Видалити в будь-якому разі", "Apps_Marketplace_Uninstall_Subscribed_App_Prompt": "Цей додаток (програма) має активну підписку, і видалення не скасує її. Якщо ви хочете це зробити, будь-ласка, змініть підписку перед видаленням.", - "Apps_Marketplace_Login_Required_Title": "Потрібен логін Marketplace", + "Apps_Marketplace_Login_Required_Title": "Потрібен вхід для Marketplace", "Apps_Marketplace_Login_Required_Description": "Придбання програм із Rocket.Chat Marketplace вимагає реєстрації та входу в систему.", "Apps_Marketplace_pricingPlan_monthly": "__price__ /на місяць ", - "Apps_Marketplace_pricingPlan_monthly_perUser": "__price__ / на місяць на користувача", + "Apps_Marketplace_pricingPlan_monthly_perUser": "__price__ / на місяць за користувача", "Apps_Marketplace_pricingPlan_yearly": "__price___ / на рік", - "Apps_Marketplace_pricingPlan_yearly_perUser": "__price__ / на рік на користувача", + "Apps_Marketplace_pricingPlan_yearly_perUser": "__price__ / на рік за користувача", "Apps_Settings": "Налаштування програми", "Apps_User_Already_Exists": "Ім'я користувача\"__username__\" вже використовується. Для встановлення застосунку перейменуйте або видаліть користувача, котрий використовує це ім'я", - "Apps_WhatIsIt": "Додатки: які вони?", - "Apps_WhatIsIt_paragraph1": "Нова іконка в адміністративній зоні! Що це означає і які додатки?", - "Apps_WhatIsIt_paragraph2": "По перше, програми в цьому контексті не стосуються мобільних програм. Насправді, краще замислюватися про них з точки зору плагінів або розширених інтеграцій.", + "Apps_WhatIsIt": "Додатки: що це таке?", + "Apps_WhatIsIt_paragraph1": "Нова іконка в зоні адміністрування! Що це означає і що таке застосунки?", + "Apps_WhatIsIt_paragraph2": "По-перше, застосунки в цьому контексті не стосуються мобільних програм. Насправді, краще думати про них з точки зору плагінів або розширених інтеграцій.", "Apps_WhatIsIt_paragraph3": "По-друге, вони - це динамічні сценарії або пакунки, які дозволять вам налаштувати ваш екземпляр Rocket.Chat без необхідності розгортати кодовий база. Але майте на увазі, що це новий набір функцій, і тому він може бути не стабільним на 100% . Крім того, ми все ще розробляємо набір функцій, тому на цей момент часу не можна користуватися всіма можливостями. Щоб отримати додаткові відомості про початок розробки додатка, перейдіть тут, щоб прочитати:", "Apps_WhatIsIt_paragraph4": "Але, якщо сказати, якщо ви зацікавлені в тому, щоб увімкнути цю функцію та спробувати її, натисніть тут, щоб включити систему Apps.", - "Archive": "архів", + "Archive": "Архівувати ", "archive-room": "Архівувати кімнату", "archive-room_description": "Дозвіл на архівування кімнати", - "are_also_typing": "досі друкужться", - "are_typing": "друкує", + "are_also_typing": "також друкує…", + "are_typing": "друкує…", "Are_you_sure": "Ви впевнені?", "Are_you_sure_you_want_to_delete_your_account": "Ви впевнені, що хочете видалити свій обліковий запис?", "Are_you_sure_you_want_to_disable_Facebook_integration": "Ви впевнені що бажаєте відключити інтеграцію із Facebook?", @@ -412,12 +418,12 @@ "Assets": "Активи", "assign-admin-role": "Призначити роль Адміністратора", "assign-admin-role_description": "Дозвіл на призначення ролі Адміністратора іншим користувачам", - "Assign_admin": "Призначення адмністратора", - "Assign_new_conversations_to_bot_agent": "Призначте нові діалоги співробітнику-боту", + "Assign_admin": "Призначений адміністратор ", + "Assign_new_conversations_to_bot_agent": "Призначте нові бесіди представнику-боту", "Assign_new_conversations_to_bot_agent_description": "Система маршрутизації буде намагатися знайти агента-бота, перш ніж звертатися до нової розмови з агентом-людиною.", "assign-roles": "Призначення ролей", "at": "в", - "At_least_one_added_token_is_required_by_the_user": "Потрібно добавити токен для користувача", + "At_least_one_added_token_is_required_by_the_user": "Принаймні один доданий маркер потрібен користувачеві", "AtlassianCrowd": "Atlassian Crowd", "Attachment_File_Uploaded": "Файл завантажено", "Attribute_handling": "Опрацювання атрибутів", @@ -425,25 +431,25 @@ "Audios": "Аудіозаписи", "Audio_message": "Аудіоповідомлення", "Audio_Notification_Value_Description": "Може бути будь-який користувацький звук або один зі стандартних: beep, chelle, ding, droplet, highbell, seasons", - "Audio_Notifications_Default_Alert": "Стандартне звукові сповіщення", + "Audio_Notifications_Default_Alert": "Стандартне звукове сповіщення", "Audio_Notifications_Value": "Аудіосповіщення повідомлень за замовчуванням", "Auth_Token": "Токен авторизації", "Authentication": "Аутентифікація", "Author": "Автор", - "Author_Information": "Автор інформації", + "Author_Information": "Інформація про автора", "Authorization_URL": "URL авторизації", "Authorize": "Авторизувати", "auto-translate": "Автоматичний переклад", - "auto-translate_description": "Дозвіл на використання автоматичного перекладу", + "auto-translate_description": "Дозвіл на використання інструменту для автоматичного перекладу", "Auto_Load_Images": "Автозавантаження зображень", - "AutoLinker": "Auto Linker", - "AutoLinker_Email": "Автовиділення E-mail", - "AutoLinker_Phone": "Телефон AutoLinker ", - "AutoLinker_Phone_Description": "Автоматично пов'язані номери телефонів. наприклад, `(123) 456-7890`", - "AutoLinker_StripPrefix": "Aвтоприховування префіксів", - "AutoLinker_StripPrefix_Description": "Короткий вигляд. наприклад https://rocket.chat => rocket.chat", - "AutoLinker_Urls_Scheme": "Авдовиділяти схеми : //Url", - "AutoLinker_Urls_TLD": "Автовидляти TLD URL-адреси", + "AutoLinker": "Автовиділення ", + "AutoLinker_Email": "Виділяти E-mail", + "AutoLinker_Phone": "Виділяти Телефон ", + "AutoLinker_Phone_Description": "Автоматично виділяти номери телефонів. наприклад, `(123) 456-7890`", + "AutoLinker_StripPrefix": "Виділяти Strip Prefix", + "AutoLinker_StripPrefix_Description": "Скорочувати вигляд, наприклад https://rocket.chat => rocket.chat", + "AutoLinker_Urls_Scheme": "Авдовиділяти Scheme:// URLs", + "AutoLinker_Urls_TLD": "Автовиділяти TLD URL-адреси", "AutoLinker_Urls_www": "Автовиділення 'www' URL-адреси", "AutoLinker_UrlsRegExp": "Автовиділення URL регулярних виражень", "Automatic_Translation": "Автоматичний переклад", @@ -455,15 +461,15 @@ "AutoTranslate_Change_Language_Description": "Зміна мови автоматичного перекладу не перекладає попередні повідомлення.", "AutoTranslate_DeepL": "DeepL", "AutoTranslate_Enabled": "Увімкнути автоматичний переклад", - "AutoTranslate_Enabled_Description": "Увімкнення автоматичного перекладу дозволить користувачам з доступом до автоматичного перекладу автоматично перекладати всі повідомлення на вибрану мову. Може братися додаткова плата", + "AutoTranslate_Enabled_Description": "Увімкнення автоматичного перекладу дозволить користувачам з доступом до автоматичного перекладу перекладати всі повідомлення на вибрану мову. Може стягуватись додаткова плата.", "AutoTranslate_Google": "Google", "AutoTranslate_Microsoft": "Microsoft", - "AutoTranslate_Microsoft_API_Key": "Ocp-Apim-підписка-ключ", + "AutoTranslate_Microsoft_API_Key": "Ocp-Apim-Subscription-Key", "AutoTranslate_ServiceProvider": "Постачальник послуг", "Available": "Доступний", "Available_agents": "Доступні агенти", "Avatar": "Аватар", - "Avatar_changed_successfully": "ааватар успішно змінений", + "Avatar_changed_successfully": "Аватар успішно змінений", "Avatar_URL": "URL аватару", "Avatar_url_invalid_or_error": "URL-адреса є недійсною або недоступна. Будь ласка, спробуйте ще раз, але з іншого URL.", "Avg_chat_duration": "Середня тривалість чату", @@ -482,46 +488,46 @@ "away_male": "відійшов", "Away_male": "Відійшов", "Back": "Назад", - "Back_to_applications": "Назад до додатків", + "Back_to_applications": "Назад до застосунків", "Back_to_chat": "Повернутися до чату", "Back_to_imports": "Повернутися до імпорту", - "Back_to_integration_detail": "Повернутися до деталі інтеграції", - "Back_to_integrations": "Повернутися до інтеграції", + "Back_to_integration_detail": "Повернутися до деталей інтеграції", + "Back_to_integrations": "Повернутися до інтеграцій", "Back_to_login": "Повернутися до сторінки входу", - "Back_to_Manage_Apps": "Повернутися до керування додатками", + "Back_to_Manage_Apps": "Повернутися до керування застосунками", "Back_to_permissions": "Повернутися до дозволів", "Back_to_room": "Повернутися до кімнати", "Backup_codes": "Коди резервного копіювання", - "ban-user": "Заборонити користувача", + "ban-user": "Забанити користувача", "ban-user_description": "Дозвіл на блокування користувачів каналу", "Beta_feature_Depends_on_Video_Conference_to_be_enabled": "Бета-функція. Залежить від включення відеоконференції.", "Better": "Краще", - "Best_first_response_time": "Кращий перший час відповіді", + "Best_first_response_time": "Кращий час першої відповіді", "Block_User": "Заблокувати користувача", - "Blockchain": "Блокхейн", + "Blockchain": "Блокчейн", "Blockstack_Auth_Description": "Опис Auth", - "Blockstack_ButtonLabelText": "Текст кнопки", + "Blockstack_ButtonLabelText": "Текст мітки кнопки", "Blockstack_Generate_Username": "Згенерувати логін", "Body": "Тіло", "bold": "напівжирний", - "bot_request": "Bot запит", + "bot_request": "Запит бота", "BotHelpers_userFields": "Поля користувача", - "BotHelpers_userFields_Description": "CSV користувацьких полів, до яких можна отримати доступ до допоміжних методів ботів.", + "BotHelpers_userFields_Description": "CSV полів користувачів, до яких можна отримати доступ допоміжними методами ботів.", "Bots": "Боти", "Branch": "Гілка", - "Broadcast_channel": "Трансляція каналу", + "Broadcast_channel": "Канал трансляції", "Broadcast_channel_Description": "Тільки авторизовані користувачі можуть писати нові повідомлення, але інші користувачі зможуть відповісти", - "Broadcast_Connected_Instances": "Трансляція пов'язаних випадків", + "Broadcast_Connected_Instances": "Трансляція підключених інстансів", "Broadcasting_api_key": "Ключ API трансляції", "Broadcasting_client_id": "Client ID трансляції", - "Broadcasting_client_secret": "Client Secret трансляці", - "Broadcasting_enabled": "Трансяцію ввімкнено", - "Broadcasting_media_server_url": "URL-адреса транслюючого мультимедійного серверу", + "Broadcasting_client_secret": "Client Secret трансляції", + "Broadcasting_enabled": "Трансляцію ввімкнено", + "Broadcasting_media_server_url": "URL-адреса мультимедійного серверу з трансляцією", "Browse_Files": "Перегляд файлів", "Browser_does_not_support_audio_element": "Ваш браузер не підтримує звуковий елемент.", "Browser_does_not_support_video_element": "Ваш веб-переглядач не підтримує відео елемент.", "Bugsnag_api_key": "Ключ Bugsnag API", - "Build_Environment": "Побудова середовища", + "Build_Environment": "Середовище збірки", "bulk-register-user": "Масове створення каналів", "bulk-register-user_description": "Дозвіл на масове створення каналів", "Busiest_day": "Зайнятий день", @@ -545,16 +551,16 @@ "CAS_base_url_Description": "Базова URL-адреса зовнішньої служби SSO, наприклад: https: //sso.example.undef/sso/", "CAS_button_color": "Колір фону кнопки входу", "CAS_button_label_color": "Колір тексту кнопки входу", - "CAS_button_label_text": "Кнопка входу в ярлик", + "CAS_button_label_text": "Мітка кнопки входу", "CAS_enabled": "Увімкнено", - "CAS_Login_Layout": "Схема входу в CAS", + "CAS_Login_Layout": "Стиль входу в CAS", "CAS_login_url": "URL-адреса входу в SSO", "CAS_login_url_Description": "URL-адреса для входу зовнішньої служби SSO, наприклад: https: //sso.example.undef/sso/login", - "CAS_popup_height": "Висота підйому входу", - "CAS_popup_width": "Вхідний спливаюча ширина", + "CAS_popup_height": "Висота виринаючого вікна входу", + "CAS_popup_width": "Ширина спливаючого вікна входу", "CAS_Sync_User_Data_Enabled": "Завжди синхронізувати дані користувача", "CAS_Sync_User_Data_Enabled_Description": "Завжди вхід у систему завжди синхронізувати зовнішні дані користувача CAS з доступними атрибутами. Примітка. Атрибути завжди синхронізуються після створення облікового запису.", - "CAS_Sync_User_Data_FieldMap": "Карта атрибутів", + "CAS_Sync_User_Data_FieldMap": "Атрибути карти", "CAS_Sync_User_Data_FieldMap_Description": "Використовуйте цей вхід JSON для побудови внутрішніх атрибутів (key) з зовнішніх атрибутів (value). Імена зовнішніх атрибутів, закріплені за допомогою '%', будуть інтерпольовані у рядках значень.
Наприклад, {\"email\":\"%email%\", \"name\":\"%firstname%, %lastname%\"}``

Карта атрибутів завжди інтерполюється. У CAS 1.0 доступний лише атрибут `username`. Доступні внутрішні атрибути: ім'я користувача, ім'я, електронна адреса, кімнати; кімнати - це список, розділений комами, для приєднання при створенні користувача, наприклад: {\"rooms\": \"%team%,%department%\"} створені користувачі CAS приєднаються до їхньої команди та каналу відділу.", "CAS_trust_username": "Ім'я користувача Trust CAS", "CAS_trust_username_description": "Якщо ввімкнено, Rocket.Chat буде довіряти тому, що будь-яке ім’я користувача CAS належить тому ж користувачеві на Rocket.Chat.
Це може знадобитися, якщо користувач перейменований на CAS, але може також дозволити людям взяти під контроль Rocket.Chat акаунти шляхом перейменування власних користувачів CAS.", @@ -562,7 +568,7 @@ "CAS_version_Description": "Використовуйте лише підтримувану версію CAS, яка підтримується службою CAS SSO.", "Categories": "Категорії", "CDN_PREFIX": "CDN Префікс", - "CDN_PREFIX_ALL": "Використовувати CDN префікс для всіх активів", + "CDN_PREFIX_ALL": "Використовувати CDN префікс для всіх активів", "CDN_JSCSS_PREFIX": "Префікс CDN для JS/CSS", "Certificates_and_Keys": "Сертифікати та ключі", "Change_Room_Type": "Зміна типу кімнати", @@ -584,58 +590,58 @@ "Channels_list": "Список публічних каналів", "Chat_button": "Копка чату", "Chat_closed": "Чат закритий", - "Chat_closed_by_agent": "Чат закритий агентом", + "Chat_closed_by_agent": "Чат закритий представником", "Chat_closed_successfully": "Чат успішно закритий", "Chat_Now": "Розпочати бесіду", "Chat_window": "Вікно чату", - "Chatops_Enabled": "Ввімкнути Chatops", - "Chatops_Title": "Chatops панель", - "Chatops_Username": "Chatops Ім'я користувача", - "Chatpal_AdminPage": "Chatpal Admin Page", - "Chatpal_All_Results": "всі", + "Chatops_Enabled": "Увімкнути Chatops", + "Chatops_Title": "Панель Chatops ", + "Chatops_Username": "Ім'я користувача Chatops ", + "Chatpal_AdminPage": "Сторінка адміністрування Chatpal", + "Chatpal_All_Results": "Всі", "Chatpal_API_Key": "Ключ API", - "Chatpal_API_Key_Description": "Ви ще не маєте ключ API ? Отримати! ", - "Chatpal_Backend": "Тип заставки", - "Chatpal_Backend_Description": "Виберіть, якщо ви хочете використовувати Chatpal як Сервіс або як On-Site Installation", - "Chatpal_Base_URL": "Базовий URL", - "Chatpal_Base_URL_Description": "Знайдіть опис способу запуску локального примірника на github. URL-адреса повинна бути абсолютною та вказувати на ядро chatpal, наприклад, http: // localhost: 8983 / solr / chatpal.", + "Chatpal_API_Key_Description": "Ви ще не маєте ключ API ? Отримайте його!", + "Chatpal_Backend": "Тип бекенду", + "Chatpal_Backend_Description": "Виберіть, якщо ви хочете використовувати Chatpal як сервіс або встановити On-Site ", + "Chatpal_Base_URL": "Базова URL-адреса", + "Chatpal_Base_URL_Description": "Знайдіть опис способу запуску локального екземпляруна github. URL-адреса повинна бути абсолютною та вказувати на ядро chatpal, наприклад, http://localhost:8983/solr/chatpal.", "Chatpal_Batch_Size": "Індексний розмір партії", - "Chatpal_Batch_Size_Description": "Розмір партії індексних документів (при завантаженні)", + "Chatpal_Batch_Size_Description": "Розмір партії індексних документів (при початковому завантаженні)", "Chatpal_create_key": "Створити ключ", "Chatpal_created_key_successfully": "API-ключ успішно створений", "Chatpal_Default_Result_Type": "Тип результату за замовчуванням", "Chatpal_Default_Result_Type_Description": "Визначає, який тип результату відображається результатом. Все це означає, що надано огляд для всіх типів.", "Chatpal_Email_Address": "Адреса електронної пошти", - "Chatpal_ERROR_Email_must_be_set": "Електронна пошта повинна бути встановлена", + "Chatpal_ERROR_Email_must_be_set": "Необхідно встановити електронну пошту", "Chatpal_ERROR_Email_must_be_valid": "Електронна пошта повинна бути дійсною", - "Chatpal_ERROR_TAC_must_be_checked": "Умови та умови повинні бути перевірені", + "Chatpal_ERROR_TAC_must_be_checked": "Маєте прийняти правила та умови", "Chatpal_ERROR_username_already_exists": "Ім'я користувача вже існує", - "Chatpal_Get_more_information_about_chatpal_on_our_website": "Отримайте більше інформації про Chatpal на http://chatpal.io!", + "Chatpal_Get_more_information_about_chatpal_on_our_website": "Отримайте більше інформації про Chatpal на http://chatpal.io!", "Chatpal_go_to_message": "Перейти", "Chatpal_go_to_room": "Перейти", "Chatpal_go_to_user": "Надіслати особисте повідомлення", - "Chatpal_HTTP_Headers": "Http Headers", + "Chatpal_HTTP_Headers": "HTTP заголовки", "Chatpal_HTTP_Headers_Description": "Список заголовків HTTP, один заголовок на рядок. Формат: ім'я: значення", "Chatpal_Main_Language": "Основна мова", "Chatpal_Main_Language_Description": "Мова, яка найчастіше використовується в бесідах", - "Chatpal_Messages": "повідомлення", - "Chatpal_Messages_Only": "повідомлення", - "Chatpal_More": "більше", + "Chatpal_Messages": "Повідомлення", + "Chatpal_Messages_Only": "Повідомлення", + "Chatpal_More": "Більше", "Chatpal_No_Results": "Немає результатів", "Chatpal_no_search_results": "Немає результату", "Chatpal_one_search_result": "Знайдено 1 результат", - "Chatpal_Rooms": "кімнати", + "Chatpal_Rooms": "Кімнати", "Chatpal_run_search": "Пошук", "Chatpal_search_page_of": "Сторінка %s з %s", "Chatpal_search_results": "Знайдено %s результатів", "Chatpal_Search_Results": "Результати пошуку", - "Chatpal_Suggestion_Enabled": "Поради увімкнено", - "Chatpal_TAC_read": "Я прочитав умови", + "Chatpal_Suggestion_Enabled": "Пропозиції ввімкнено", + "Chatpal_TAC_read": "Я прочитав правила та умови", "Chatpal_Terms_and_Conditions": "Правила та умови", - "Chatpal_Timeout_Size": "Тайм-аут індексу", + "Chatpal_Timeout_Size": "Час очікування індексу", "Chatpal_Timeout_Size_Description": "Час між двома індексними вікнами в мс (при завантаженні)", "Chatpal_Users": "Користувачі", - "Chatpal_Welcome": "Насолоджуйся своїм пошуком!", + "Chatpal_Welcome": "Приємного пошуку!", "Chatpal_Window_Size": "Розмір вікна індексу", "Chatpal_Window_Size_Description": "Розмір вікна індексу в годинах (при завантаженні)", "Check_Progress": "Перевірити прогрес", @@ -644,13 +650,13 @@ "Choose_the_alias_that_will_appear_before_the_username_in_messages": "Виберіть псевдонім, який буде відображатися перед ім'ям користувача в повідомленнях.", "Choose_the_username_that_this_integration_will_post_as": "Виберіть ім'я користувача, від якого будуть відправлятися повідомлення в цій інтеграції", "clean-channel-history": "Очистити історію каналу", - "clean-channel-history_description": "Дозвіл очищення історії від каналів", + "clean-channel-history_description": "Дозвіл на очищення історії з каналів", "Clean_Usernames": "Очистити імена користувачів", - "clear": "Ясно", - "Clear_all_unreads_question": "Вилучити всі непрочитані?", + "clear": "Очистити", + "Clear_all_unreads_question": "Очистити всі непрочитані?", "clear_cache_now": "Очистити кеш зараз", "Clear_filters": "Очистити фільтри", - "clear_history": "Чиста історія", + "clear_history": "Очистити історію", "Click_here": "Натисніть тут", "Click_here_for_more_info": "Натисніть тут, щоб отримати додаткову інформацію", "Click_here_to_enter_your_encryption_password": "Натисніть тут, щоб ввести пароль шифрування", @@ -658,29 +664,28 @@ "Click_the_messages_you_would_like_to_send_by_email": "Натисніть повідомлення, які ви хочете надіслати електронною поштою", "Click_to_join": "Натисніть, щоб приєднатися!", "Click_to_load": "Натисніть, щоб завантажити", - "Client_ID": "ідентифікатор клієнта", - "Client_Secret": "секрет клієнта ", + "Client_ID": "Ідентифікатор клієнта", + "Client_Secret": "Client Secret", "Clients_will_refresh_in_a_few_seconds": "Клієнти будуть оновлені протягом декількох секунд", "close": "закрити", "Close": "Закрити", - "close-livechat-room": "Закрити Livechat кімнату", - "Cloud_workspace_connected_plus_account": "Ваша робоча область тепер підключена до Rocket.Chat Cloud з пов’язаним обліковии записом.", + "close-livechat-room": "Закрити Omnichannel Room", + "Cloud_workspace_connected_plus_account": "Ваша робоча область тепер підключена до Rocket.Chat Cloud і пов’язаним обліковим записом.", "close-livechat-room_description": "Дозвіл закрити поточний канал LiveChat", - "close-others-livechat-room": "Закрити Livechat кімнату", + "close-others-livechat-room": "Закрити кімнату Omnichannel", "Cloud_workspace_connected_without_account": "Тепер ваша робоча область підключена до Rocket.Chat Cloud. Якщо ви хочете, ви можете увійти до Rocket.Chat Cloud і пов’язати робочу область зі своїм обліковим записом у Cloud.", - "close-others-livechat-room_description": "Дозвіл закрити інші канали LiveChat", - "Closed": "закрито", + "close-others-livechat-room_description": "Дозвіл закривати інші кімнати Omnichannel", + "Closed": "Закрито", "Closed_At": "Закрито о", "Closed_by_visitor": "Закрито відвідувачем", - "Closing_chat": "закриття чату", + "Closing_chat": "Закрити чат", "Cloud": "Хмара", "Cloud_Register_manually": "Реєстрація вручну", - "Cloud_click_here": "Після копіювання тексту перейдіть до хмарної консолі. [Натисніть тут](__cloudConsoleUrl__)", - "Cloud_register_offline_finish_helper": "ПІсля завершення процедури реєстрації у Cloud Console ви маєте побачити текст. Вставте цей текст сюди, щоб закінчити реєстрацію.", + "Cloud_click_here": "Після копіювання тексту перейдіть до Cloud Console. [Натисніть тут](__cloudConsoleUrl__)", + "Cloud_register_offline_finish_helper": "Після завершення процедури реєстрації у Cloud Console ви маєте побачити текст. Вставте цей текст сюди, щоб закінчити реєстрацію.", "Cloud_register_offline_helper": "Якщо ваш доступ до мережі обмежено або застосовується фізична ізоляція мережі, робочі простори можна зареєструвати вручну. Скопіюйте текст, що його наведено нижче, та перейдіть до нашої консолі Cloud Console, щоб завершити процес.", "Cloud_register_success": "Ваша робоча область успішно зареєстрована!", "Cloud_register_error": "Під час обробки вашого запиту сталася помилка. Будь ласка, спробуйте пізніше.", - "Cloud_connect_support": "Якщо ви все ще не отримали електронний лист, будь ласка, переконайтеся, що ваша електронна адреса була оновлена вище. Якщо у вас все ще виникають проблеми, ви можете зв’язатися із службою підтримки", "Cloud_console": "Хмарна консоль", "Cloud_Info": "Інформація про хмару", "Cloud_what_is_it": "Що це?", @@ -693,9 +698,9 @@ "Cloud_login_to_cloud": "Увійти до Rocket.Chat Cloud", "Cloud_logout": "Вихід з Rocket.Chat Cloud", "Cloud_address_to_send_registration_to": "Адреса, на яку потрібно надіслати електронний лист для реєстрації у хмарі", - "Cloud_update_email": "Оновлення електронної пошти", + "Cloud_update_email": "Оновити електронну пошту", "Cloud_resend_email": "Повторно надіслати лист", - "Cloud_manually_input_token": "Вучну ввести токен, отриманий з електонної пошти при реєстрації у хмарі.", + "Cloud_manually_input_token": "Вручну ввести токен, отриманий з електронної пошти при реєстрації у хмарі.", "Cloud_registration_required": "Потрібна реєстрація", "Cloud_registration_required_description": "Схоже, що під час налаштування ви не вибрали реєстрацію робочої області.", "Cloud_registration_required_link_text": "Натисніть тут, щоб зареєструвати робочу область.", @@ -712,14 +717,14 @@ "Commands": "Команди", "Comment_to_leave_on_closing_session": "Залишити коментар при закритті сесії", "Common_Access": "Загальний доступ", - "Community": "Співтовариство", + "Community": "Товариство", "Compact": "Компактний", "Condensed": "Стиснутий", "Completed": "Завершено", "Computer": "Комп'ютер", - "Confirm_new_encryption_password": "Підтвердьте новий пароль", - "Confirm_password": "Підтвердіть ваш пароль", - "Connect": "Підключити", + "Confirm_new_encryption_password": "Змінити пароль шифрування", + "Confirm_password": "Підтвердити новий пароль", + "Connect": "Підключення", "Connection_Closed": "З'єднання закрито", "Connection_Reset": "З'єднання скинуто", "Connectivity_Services": "Послуги з підключення", @@ -958,7 +963,7 @@ "Country_Taiwan_Province_of_China": "Тайвань, провінція Китаю", "Country_Tajikistan": "Таджикистан", "Country_Tanzania_United_Republic_of": "Танзанія, Об'єднана Республіка", - "Country_Thailand": "Тайланд", + "Country_Thailand": "Таїланд", "Country_Timor_leste": "Тимор-Лешті", "Country_Togo": "Того", "Country_Tokelau": "Токелау", @@ -987,7 +992,7 @@ "Country_Yemen": "Ємен", "Country_Zambia": "Замбія", "Country_Zimbabwe": "Зімбабве", - "Cozy": "Зручний", + "Cozy": "Затишний", "Create": "Cтворити", "create-c": "Створювати загальнодоступні канали", "create-c_description": "Дозвіл на створення загальнодоступних каналів", @@ -998,12 +1003,12 @@ "create-p": "Створення приватних каналів", "create-p_description": "Дозвіл на створення приватних каналів", "create-personal-access-tokens": "Створення токенів доступу", - "create-user": "Створення користувача", + "create-user": "Створити користувача", "create-user_description": "Дозвіл на створення користувачів", "Create_A_New_Channel": "Створити новий канал", "Create_new": "Створити новий", "Create_unique_rules_for_this_channel": "Створіть унікальні правила для цього каналу", - "Created_at": "Зареєстрований", + "Created_at": "Створено о ", "Created_at_s_by_s": "Створено %s %s", "Created_at_s_by_s_triggered_by_s": "Створено на %sна %s, яке запускається %s", "CRM_Integration": "Інтеграція з CRM", @@ -1023,23 +1028,23 @@ "Custom_Emoji_Add": "Додати новий смайлик", "Custom_Emoji_Added_Successfully": "Користувацький смайлик додано успішно", "Custom_Emoji_Delete_Warning": "Видалення смайлика не може бути скасовано.", - "Custom_Emoji_Error_Invalid_Emoji": "Невірний смайлик", - "Custom_Emoji_Error_Name_Or_Alias_Already_In_Use": "Спеціальна смайли або одна з її псевдонімів вже використовується.", - "Custom_Emoji_Has_Been_Deleted": "Настроюваний смайлик був видалиний", - "Custom_Emoji_Info": "Спеціальна інформація про смайл", + "Custom_Emoji_Error_Invalid_Emoji": "Недійсний смайлик", + "Custom_Emoji_Error_Name_Or_Alias_Already_In_Use": "Користувацькі смайли або один із його псевдонімів вже використовуються.", + "Custom_Emoji_Has_Been_Deleted": "Користувацький смайлик видалено.", + "Custom_Emoji_Info": "Інформація про користувацький смайл", "Custom_Emoji_Updated_Successfully": "Користувацькі смайли успішно оновлено", "Custom_Fields": "Користувацькі поля", - "Custom_oauth_helper": "При налаштуванні OAuth постачальника, ви повинні будете повідомити який буде зворотній URL для використання
 %s 
,", - "Custom_oauth_unique_name": "Призначене для користувача OAuth унікальне ім'я", + "Custom_oauth_helper": "При налаштуванні OAuth постачальника, ви повинні будете повідомити який буде зворотній URL для використання
%s
.", + "Custom_oauth_unique_name": "Власне унікальне ім'я oauth", "Custom_Scripts": "Користувацькі скрипти", - "Custom_Script_Logged_In": "Користувацький скрипт для зареєстрованих користувачів", - "Custom_Script_Logged_In_Description": "Спеціальний скрипт, який ЗАВЖДИ буде спрацьвувати для БУДЬ-ЯКОГО користувача, який увійшов у систему, (наприклад, щоразу, коли ви входите в чат і ви входите в систему)", - "Custom_Script_Logged_Out": "Користувацький скрипт виходу із системи", + "Custom_Script_Logged_In": "Користувацький скрипт для авторизованих користувачів", + "Custom_Script_Logged_In_Description": "Користувацький скрипт, який ЗАВЖДИ буде спрацьовувати для БУДЬ-ЯКОГО користувача, який увійшов у систему, (наприклад, щоразу, коли ви входите в чат і ви входите в систему)", + "Custom_Script_Logged_Out": "Спеціальний сценарій для користувачів, які вийшли з системи", "Custom_Script_Logged_Out_Description": "Спеціальний скрипт, який завжди буде запускатися та для будь-якого користувача, який НЕ увійшов у систему, (наприклад. щоразу, коли ви переходите на сторінку входу)", "Custom_Script_On_Logout": "Користувацький скрипт виходу", - "Custom_Script_On_Logout_Description": "Спеціальний скрипт, який працюватиме ТІЛЬКО під час виходу", + "Custom_Script_On_Logout_Description": "Спеціальний скрипт, який працюватиме ТІЛЬКИ під час виходу", "Custom_Sound_Add": "Додати власний звук", - "Custom_Sound_Delete_Warning": "Видалення звуку не можна скасувати.", + "Custom_Sound_Delete_Warning": "Видалення звуку не можна відмінити.", "Custom_Sound_Error_Invalid_Sound": "Недійсний звук", "Custom_Sound_Error_Name_Already_In_Use": "Користувацька назва звуку вже використовується.", "Custom_Sound_Has_Been_Deleted": "Користувацькиц звук було видалено.", @@ -1392,7 +1397,7 @@ "error-too-many-requests": "Помилка, занадто багато запитів. Будь ласка сповільнитися. Ви повинні почекати __seconds__ секунд, перш ніж знову спробувати.", "error-user-has-no-roles": "Користувач не має ролей", "error-user-is-not-activated": "Користувача не активовано", - "error-user-is-not-agent": "Користувач не є співробітником Livechat", + "error-user-is-not-agent": "Користувач не є агентом Livechat", "error-user-is-offline": "Якщо користувач не в мережі", "error-user-limit-exceeded": "Кількість користувачів, які ви намагаєтесь запросити до #channel_name, перевищує встановлений адміністратором ліміт", "error-user-not-in-room": "Користувачв немає в цій кімнаті", @@ -1826,7 +1831,7 @@ "Invalid_name": "Ім'я має бути заповненим", "Invalid_notification_setting_s": "Неприпустима настройка сповіщення: %s", "Invalid_or_expired_invite_token": "Маркер запрошення недійсний або термін його дії закінчився", - "Invalid_pass": "Пароль не має бути пустим", + "Invalid_pass": "Пароль не повинен бути порожнім", "Invalid_reason": "Причина для приєднання не може бути порожньою", "Invalid_room_name": " %s не є дійсним номером імені", "Invalid_secret_URL_message": "URL є недійсною.", @@ -2125,7 +2130,8 @@ "Mailer_body_tags": "Ви повинні використовувати [unsubscribe] для відписку посилання.
Ви можете використовувати [name], [fname], [lname] повне ім'я користувача, ім'я або прізвище, відповідно.
Ви можете використовувати [email] для електронної пошти користувача.", "Mailing": "Поштовий", "Make_Admin": "зробити Адміністратор", - "Make_sure_you_have_a_copy_of_your_codes": "Переконайтеся, що у вас є копії ваших кодів: __codes__ Якщо ви втратите доступ до вашого додатка автентифікатора, ви можете використовувати один із цих кодів для входу.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Переконайтеся, що у вас є копії ваших кодів:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Якщо ви втратите доступ до вашого додатка автентифікатора, ви можете використовувати один із цих кодів для входу.", "manage-apps": "Управління додатками", "manage-assets": "Керування активами", "manage-assets_description": "Дозвіл керувати ресурсами сервера", @@ -2367,6 +2373,7 @@ "Notify_all_in_this_room": "Повідомте все в цій кімнаті", "Num_Agents": "# Агенти", "Number_of_messages": "кількість повідомлень", + "RetentionPolicy_DoNotExcludeDiscussion": "Не виключати повідомлення з обговорення", "OAuth_Application": "OAuth Застосування", "OAuth_Applications": "OAuth Додатки", "Objects": "об'єкти", @@ -2376,6 +2383,7 @@ "Office_Hours": "Робочий час", "Office_hours_enabled": "Час роботи включений", "Office_hours_updated": "Офіційні години оновлено", + "RetentionPolicy_ExcludePinned": "Виключити закріплені повідомлення", "Offline": "Offline", "Offline_DM_Email": "Ви були прямим шляхом __user__ обмінювалися повідомленнями", "Offline_Email_Subject_Description": "
  • Ви можете використовувати наступні заповнювачі:
    • [Ім'я Сайту], [Site_URL], [Користувач] і [Room] для імені програми, URL-адреси, імені користувача та кімнати.
    ", @@ -2453,7 +2461,7 @@ "Pinned_a_message": "Закріплені повідомлення:", "Pinned_Messages": "закріплені повідомлення", "PiwikAdditionalTrackers": "Додаткові сайти сайту Piwik", - "PiwikAdditionalTrackers_Description": "Введіть додаткові URL-адреси веб-сайтів Piwik та SiteID у наступному форматі, якщо ви хочете відслідковувати однакові дані на різних веб-сайтах: [{\"trackerURL\": \"https: //my.piwik.domain2/\", \"siteId\": 42}, {\"trackerURL\": \"https: //my.piwik.domain3/\", \"siteId\": 15}]", + "PiwikAdditionalTrackers_Description": "Введіть додаткові URL-адреси SiteID веб-сайтів Piwik у наступному форматі, якщо ви хочете відстежувати однакові дані на різних сайтах: [{ \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 }, { \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 } ]", "PiwikAnalytics_cookieDomain": "Всі піддомены", "PiwikAnalytics_cookieDomain_Description": "Відстежуйте відвідувачів по всіх субдоменах", "PiwikAnalytics_domains": "Сховати вихідні посилання", @@ -2627,7 +2635,6 @@ "Retail": "Роздрібна торгівля", "Retention_setting_changed_successfully": "Налаштування політики збереження успішно змінено", "RetentionPolicy": "Політика збереження", - "RetentionPolicy_DoNotExcludeDiscussion": "Не виключати повідомлення з обговорення", "RetentionPolicy_RoomWarning": "Повідомлення, що перевищують __time__, автоматично скорочуються тут", "RetentionPolicy_RoomWarning_Unpinned": "Відкріплені повідомлення старші за __time__ автоматично обрізаються тут", "RetentionPolicy_RoomWarning_FilesOnly": "Файли старіші ніж __time__ автоматично обрізаються тут (повідомлення залишаються недоторканими)", @@ -2637,7 +2644,6 @@ "RetentionPolicy_AppliesToChannels": "Застосовується до каналів", "RetentionPolicy_AppliesToGroups": "Застосовується до приватних груп", "RetentionPolicy_AppliesToDMs": "Застосовується до прямих повідомлень", - "RetentionPolicy_ExcludePinned": "Виключити закріплені повідомлення", "RetentionPolicy_FilesOnly": "Видаляти лише файли", "RetentionPolicy_FilesOnly_Description": "Тільки файли будуть видалені, самі повідомлення залишиться на місці.", "RetentionPolicy_MaxAge": "Максимальний вік повідомлення", @@ -2711,6 +2717,7 @@ "SAML_Custom_Immutable_Property_Username": "Ім'я користувача", "SAML_Custom_Public_Cert": "Публічний зміст курсу", "SAML_Default_User_Role_Description": "Можете вказати декілька ролей, розділених комами.", + "SAML_Section_1_User_Interface": "Користувацький інтерфейс", "Saturday": "субота", "Save": "Зберегти", "save-others-livechat-room-info": "Зберегти іншу інформацію про номер Livechat", @@ -2721,7 +2728,7 @@ "Saved": "збережено", "Saving": "економія", "Scan_QR_code": "Використовуючи програму автентифікатора, як Google Authenticator, Authy або Duo, скануйте QR-код. Він покаже 6-значний код, який потрібно ввести нижче.", - "Scan_QR_code_alternative_s": "Якщо ви не можете сканувати QR-код, ви можете ввести код замість нього: __code__", + "Scan_QR_code_alternative_s": "Якщо ви не можете сканувати QR-код, ви можете ввести код замість нього:", "Scope": "Область застосування", "Screen_Share": "екран Поділитися", "Script_Enabled": "сценарій Включено", @@ -2953,7 +2960,7 @@ "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Зміни розміру зображення не буде працювати, тому що ми не можемо виявити ImageMagick або GraphicsMagick встановлений на вашому сервері.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Повідомлення - це обговорення яке ви не зможете відновити!", "The_redirectUri_is_required": "RedirectUri потрібно", - "The_selected_user_is_not_an_agent": "Обраний користувач не є співробітником", + "The_selected_user_is_not_an_agent": "Обраний користувач не є агентом", "The_server_will_restart_in_s_seconds": "Сервер буде перезавантажений через %s секунд", "The_setting_s_is_configured_to_s_and_you_are_accessing_from_s": "Параметр %s налаштований на %s , і ви звертаєтеся з %s!", "The_user_will_be_removed_from_s": "Користувач буде видалений з %s", @@ -3186,21 +3193,21 @@ "User_sent_a_message_on_channel": "__username__надіслало повідомлення на __channel__", "User_sent_a_message_to_you": "__username__надіслав вам повідомлення", "user_sent_an_attachment": "__user__ надіслав вкладення", - "User_Settings": "налаштування користувача", - "User_unmuted_by": "__user_unmuted__ Користувача заглушені по __user_by__.", + "User_Settings": "Налаштування користувача", + "User_unmuted_by": "Користувач __user_unmuted__ перестав був заглушеним завдяки __user_by__.", "User_unmuted_in_room": "Користувач перестав бути заглушені в кімнаті", "User_updated_successfully": "Користувач успішно оновлений", - "User_uploaded_a_file_on_channel": "__username__завантажив файл на __channel__", + "User_uploaded_a_file_on_channel": "__username__завантажив файл у __channel__", "User_uploaded_a_file_to_you": "__username__надіслав вам файл", - "User_uploaded_file": "Завантажено файл", + "User_uploaded_file": "Файл завантажено", "User_uploaded_image": "Завантажено зображення", "UserData_EnableDownload": "Увімкнути завантаження даних користувача", - "UserData_FileSystemPath": "Шлях системи (експортовані файли)", - "UserData_FileSystemZipPath": "Шлях системи (стиснутий файл)", - "UserData_MessageLimitPerRequest": "Ліміт повідомлень за запитом", - "UserData_ProcessingFrequency": "Обробка частоти (хвилини)", + "UserData_FileSystemPath": "Системний шлях (експортовані файли)", + "UserData_FileSystemZipPath": "Системний шлях (стислий файл)", + "UserData_MessageLimitPerRequest": "Обмеження повідомлення на запит", + "UserData_ProcessingFrequency": "Частота обробки (хвилини)", "UserDataDownload": "Завантаження даних користувача", - "UserDataDownload_CompletedRequestExisted_Text": "Ваш файл даних вже був створений. Перевірте свою електронну адресу для посилання на завантаження.", + "UserDataDownload_CompletedRequestExisted_Text": "Ваш файл даних вже створений. Перевірте свою електронну адресу для отримання посилання на завантаження.", "UserDataDownload_EmailBody": "Ваш файл даних вже готовий до завантаження. Натисніть тут, щоб завантажити його.", "UserDataDownload_EmailSubject": "Ваш файл даних готовий до завантаження", "UserDataDownload_Requested": "Завантажте потрібний файл", @@ -3209,24 +3216,24 @@ "Username": "Ім'я користувача", "Username_already_exist": "Ім'я користувача вже існує. Будь ласка, спробуйте інше ім'я користувача.", "Username_and_message_must_not_be_empty": "Ім'я користувача і повідомлення не повинно бути порожнім.", - "Username_cant_be_empty": "Ім'я має бути заповненим", - "Username_Change_Disabled": "Ваш Rocket.Chat адміністратор відключив зміна імен користувачів", - "Username_denied_the_OTR_session": "__username__ заперечував сесію OTR", - "Username_description": "Ім'я користувача використовується, щоб дозволити іншим про вас в повідомленнях.", + "Username_cant_be_empty": "Ім'я користувача не може бути порожнім", + "Username_Change_Disabled": "Ваш адміністратор Rocket.Chat відключив зміну імен користувачів", + "Username_denied_the_OTR_session": "__username__ відхилив сеанс OTR", + "Username_description": "Ім'я користувача використовується, щоб дозволити іншим згадувати вас в повідомленнях.", "Username_doesnt_exist": "Ім'я користувача `%s` не існує.", - "Username_ended_the_OTR_session": "__username__ завершив сесію OTR", + "Username_ended_the_OTR_session": "__username__ закінчив сеанс OTR", "Username_invalid": "%s не дійсне ім'я користувача,
    використовувати тільки букви, цифри, крапки і тире", "Username_is_already_in_here": "`@%s` вже тут.", "Username_is_not_in_this_room": "Користувач `#%s` не в цій кімнаті.", "Username_Placeholder": "Будь ласка, введіть імена користувачів ...", - "Username_title": "Реєстрація користувача", - "Username_wants_to_start_otr_Do_you_want_to_accept": "__username__ хоче почати отр. Ви хочете взяти?", - "Users": "користувачів", - "Users_added": "Користувачів додано", - "Users_in_role": "Користувачі в ролі", + "Username_title": "Зареєструйте ім’я користувача", + "Username_wants_to_start_otr_Do_you_want_to_accept": "__username__ хоче почати OTR. Ви хочете прийняти?", + "Users": "Користувачі", + "Users_added": "Користувачі додані", + "Users_in_role": "Користувачі з роллю", "Users must use Two Factor Authentication": "Користувачі повинні використовувати двофакторну автентифікацію", "Leave_the_description_field_blank_if_you_dont_want_to_show_the_role": "Залиште поле опису порожнім, якщо ви не хочете показувати роль", - "Uses": "Використання", + "Uses": "Використовує", "UTF8_Names_Slugify": "UTF8 Імена Slugify", "UTF8_Names_Validation": "UTF8 Імена Validation", "UTF8_Names_Validation_Description": "Не допускати спеціальних символів і пробілів. Ви можете використовувати - _ і. але не в кінці імені", @@ -3334,26 +3341,26 @@ "Yes_archive_it": "Так, архівуйте це!", "Yes_clear_all": "Так, зрозуміло, все!", "Yes_delete_it": "Так, видалити!", - "Yes_hide_it": "Так, це приховати!", + "Yes_hide_it": "Так, приховати це!", "Yes_leave_it": "Так, залишити!", "Yes_mute_user": "Так, приглушити користувача!", "Yes_prune_them": "Так, обріжте їх!", "Yes_remove_user": "Так, видалити користувача!", - "Yes_unarchive_it": "Так, архівувати це!", + "Yes_unarchive_it": "Так, архівуйте це!", "yesterday": "вчора", "You": "Ви", "you_are_in_preview_mode_of": "Ви перебуваєте в режимі попереднього перегляду каналу # __room_name__", "you_are_in_preview_mode_of_incoming_livechat": "Ви знаходитесь в режимі попереднього перегляду цього вхідного livechat", "You_are_logged_in_as": "Ви увійшли як", "You_are_not_authorized_to_view_this_page": "Ви не авторизовані для перегляду цієї сторінки.", - "You_can_change_a_different_avatar_too": "Ви можете змінити аватар використовуваний для відправки від цієї інтеграції.", + "You_can_change_a_different_avatar_too": "Ви можете змінити аватар використовуваний для публікації з цієї інтеграції.", "You_can_close_this_window_now": "Можете зараз закрити вікно", "You_can_search_using_RegExp_eg": "Ви можете здійснювати пошук, використовуючиРегулярний вираз наприклад, /^text$/i", - "You_can_use_an_emoji_as_avatar": "Ви можете також використовувати смайлик в якості аватара.", - "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "Ви можете використовувати webhooks легко інтегрувати з LiveChat CRM.", + "You_can_use_an_emoji_as_avatar": "Ви можете також використовувати смайлик як аватар.", + "You_can_use_webhooks_to_easily_integrate_livechat_with_your_CRM": "Ви можете використовувати webhooks, щоб легко інтегрувати Omnichannel у свій CRM.", "You_cant_leave_a_livechat_room_Please_use_the_close_button": "Ви не можете залишити Livechat кімнату. Будь ласка, використовуйте кнопку закрити.", - "You_have_been_muted": "Ви були відключені і не можуть говорити в цій кімнаті", - "You_have_n_codes_remaining": "Ви залишили __number__ коди.", + "You_have_been_muted": "Вам відключи мікрофон і ви не можете говорити в цій кімнаті", + "You_have_n_codes_remaining": "У вас залишилося __number__ кодів.", "You_have_not_verified_your_email": "Ви не підтвердили свою електронну пошту.", "You_have_successfully_unsubscribed": "Ви успішно відписалися від нашого списку поштових повідомлень ", "You_have_to_set_an_API_token_first_in_order_to_use_the_integration": "Перш за все, ви повинні встановити токен API, щоб використовувати інтеграцію.", @@ -3370,8 +3377,8 @@ "You_will_not_be_able_to_recover": "Ви не зможете відновити це повідомлення!", "You_will_not_be_able_to_recover_file": "Ви не зможете відновити цей файл!", "You_wont_receive_email_notifications_because_you_have_not_verified_your_email": "Ви не будете отримувати повідомлення по електронній пошті, тому що ви не підтвердили вашу електронну пошту.", - "Your_email_has_been_queued_for_sending": "Ваша електронна адреса був поставлений в чергу для відправки", - "Your_entry_has_been_deleted": "Ваш запис був видалений.", + "Your_email_has_been_queued_for_sending": "Ваша електронна адреса був поставлений в чергу для надсилання", + "Your_entry_has_been_deleted": "Ваш запис видалено.", "Your_file_has_been_deleted": "Ваш файл був видалений.", "Your_invite_link_will_never_expire": "Посилання на ваше запрошення не має терміну дії.", "Your_mail_was_sent_to_s": "Ваш лист було відправлено до %s", diff --git a/packages/rocketchat-i18n/i18n/vi-VN.i18n.json b/packages/rocketchat-i18n/i18n/vi-VN.i18n.json index ea5ac5f0cb1d..45a6c869a831 100644 --- a/packages/rocketchat-i18n/i18n/vi-VN.i18n.json +++ b/packages/rocketchat-i18n/i18n/vi-VN.i18n.json @@ -1667,7 +1667,8 @@ "Mailer_body_tags": "Bạn phải sử dụng [hủy đăng ký] đối với liên kết bỏ đăng ký.
    Bạn có thể sử dụng [name], [fname], [lname] cho tên, họ hoặc họ của người dùng, tương ứng.
    Bạn có thể sử dụng [email] cho email của người dùng.", "Mailing": "gửi thư", "Make_Admin": "Quản trị", - "Make_sure_you_have_a_copy_of_your_codes": "Đảm bảo bạn có một bản sao của mã của bạn: __codes__ Nếu bạn mất quyền truy cập vào ứng dụng xác thực của mình, bạn có thể sử dụng một trong các mã này để đăng nhập.", + "Make_sure_you_have_a_copy_of_your_codes_1": "Đảm bảo bạn có một bản sao của mã của bạn:", + "Make_sure_you_have_a_copy_of_your_codes_2": "Nếu bạn mất quyền truy cập vào ứng dụng xác thực của mình, bạn có thể sử dụng một trong các mã này để đăng nhập.", "manage-apps": "Quản lý ứng dụng", "manage-assets": "Quản lý tài sản", "manage-assets_description": "Cho phép quản lý tài sản máy chủ", @@ -1901,6 +1902,7 @@ "Office_Hours": "Giờ hành chính", "Office_hours_enabled": "Bật giờ làm việc", "Office_hours_updated": "Giờ làm việc được cập nhật", + "RetentionPolicy_ExcludePinned": "Loại trừ các thư đã ghim", "Offline": "Ngoại tuyến", "Offline_DM_Email": "Tiêu đề Email khi nhận tin nhắn trực tiếp", "Offline_Email_Subject_Description": "Bạn có thể sử dụng các placeholder sau:
    • [Site_Name], [Site_URL], [User] & [Room] cho Tên Ứng dụng, URL, Tên Người dùng & Tên phòng.
    ", @@ -2148,7 +2150,6 @@ "RetentionPolicy_AppliesToChannels": "Áp dụng cho kênh", "RetentionPolicy_AppliesToGroups": "Áp dụng cho nhóm riêng tư", "RetentionPolicy_AppliesToDMs": "Áp dụng cho tin nhắn trực tiếp", - "RetentionPolicy_ExcludePinned": "Loại trừ các thư đã ghim", "RetentionPolicy_FilesOnly": "Chỉ xóa tệp", "RetentionPolicy_FilesOnly_Description": "Chỉ các tệp sẽ bị xóa, bản thân thư sẽ vẫn được giữ nguyên.", "RetentionPolicy_MaxAge": "Độ tuổi tin nhắn tối đa", @@ -2221,6 +2222,7 @@ "SAML_Custom_user_data_fieldmap": "FieldMap dữ liệu người dùng", "SAML_Custom_Immutable_Property_Username": "Tên đăng nhập", "SAML_Custom_Public_Cert": "Nội dung Cert Contents", + "SAML_Section_1_User_Interface": "Giao diện người dùng", "Saturday": "ngày thứ bảy", "Save": "Lưu", "save-others-livechat-room-info": "Lưu thông tin khác Livechat Thông tin về phòng", @@ -2231,7 +2233,7 @@ "Saved": "Đã lưu", "Saving": "Đang lưu", "Scan_QR_code": "Sử dụng một ứng dụng xác thực như Google Authenticator, Authy hoặc Duo, quét mã QR. Nó sẽ hiển thị một mã 6 chữ số mà bạn cần nhập vào bên dưới.", - "Scan_QR_code_alternative_s": "Nếu bạn không thể quét mã QR, bạn có thể nhập mã thủ công thay vì: __code__", + "Scan_QR_code_alternative_s": "Nếu bạn không thể quét mã QR, bạn có thể nhập mã thủ công thay vì:", "Scope": "Phạm vi", "Screen_Share": "Chia sẻ Màn hình", "Script_Enabled": "Bật mã", diff --git a/packages/rocketchat-i18n/i18n/zh-HK.i18n.json b/packages/rocketchat-i18n/i18n/zh-HK.i18n.json index 7afbf7351a28..60e3d34189e0 100644 --- a/packages/rocketchat-i18n/i18n/zh-HK.i18n.json +++ b/packages/rocketchat-i18n/i18n/zh-HK.i18n.json @@ -3,9 +3,9 @@ "500": "內部伺服器錯誤", "#channel": "#頻道", "0_Errors_Only": "0 - 仅错误", - "12_Hour": "12小时时钟", + "12_Hour": "12小時制", "1_Errors_and_Information": "1 - 错误和信息", - "24_Hour": "24小时时钟", + "24_Hour": "24小时制", "2_Erros_Information_and_Debug": "2 - 错误,信息和调试", "@username": "@使用者", "@username_message": "@使用者 ", @@ -1699,7 +1699,8 @@ "Mailer_body_tags": "必须对取消订阅链接使用[取消订阅]。
    您可以分别为用户的全名,名字或姓氏使用[name],[fname],[lname]。
    您可以将[email]用于用户的电子邮件。", "Mailing": "邮件", "Make_Admin": "设置为管理员", - "Make_sure_you_have_a_copy_of_your_codes": "请确保您有一份代码副本:__codes__如果您无法访问您的身份验证器应用程序,则可以使用其中一个代码登录。", + "Make_sure_you_have_a_copy_of_your_codes_1": "请确保您有一份代码副本:", + "Make_sure_you_have_a_copy_of_your_codes_2": "如果您无法访问您的身份验证器应用程序,则可以使用其中一个代码登录。", "manage-apps": "管理应用", "manage-assets": "管理资产", "manage-assets_description": "管理服务器资产的权限", @@ -1928,6 +1929,7 @@ "Office_Hours": "工作时间", "Office_hours_enabled": "办公时间已启用", "Office_hours_updated": "办公时间更新", + "RetentionPolicy_ExcludePinned": "排除固定消息", "Offline": "离线", "Offline_DM_Email": "直接留言邮件主题", "Offline_Email_Subject_Description": "您可以使用以下占位符:
    • [Site_Name],[Site_URL],[User]&[Room]
    ", @@ -2175,7 +2177,6 @@ "RetentionPolicy_AppliesToChannels": "适用于频道", "RetentionPolicy_AppliesToGroups": "适用于私人团体", "RetentionPolicy_AppliesToDMs": "适用于直接消息", - "RetentionPolicy_ExcludePinned": "排除固定消息", "RetentionPolicy_FilesOnly": "只删除文件", "RetentionPolicy_FilesOnly_Description": "只删除文件,邮件本身将保留在原位。", "RetentionPolicy_MaxAge": "最大邮件年龄", @@ -2249,6 +2250,7 @@ "SAML_Custom_user_data_fieldmap": "用户数据字段映射", "SAML_Custom_Immutable_Property_Username": "用户名", "SAML_Custom_Public_Cert": "公共证书内容", + "SAML_Section_1_User_Interface": "用户界面", "Saturday": "星期六", "Save": "保存", "save-others-livechat-room-info": "保存其他实时聊天室信息", @@ -2259,7 +2261,7 @@ "Saved": "保存", "Saving": "保存", "Scan_QR_code": "使用Google身份验证器,Authy或Duo等身份验证器应用扫描QR码。它将显示一个6位数的代码,您需要在下面输入。", - "Scan_QR_code_alternative_s": "如果您无法扫描QR码,则可以手动输入代码:__code__", + "Scan_QR_code_alternative_s": "如果您无法扫描QR码,则可以手动输入代码:", "Scope": "范围", "Screen_Share": "屏幕分享", "Script_Enabled": "脚本已启用", diff --git a/packages/rocketchat-i18n/i18n/zh-TW.i18n.json b/packages/rocketchat-i18n/i18n/zh-TW.i18n.json index 7fa7be4c28af..788641a2d807 100644 --- a/packages/rocketchat-i18n/i18n/zh-TW.i18n.json +++ b/packages/rocketchat-i18n/i18n/zh-TW.i18n.json @@ -9,9 +9,14 @@ "2_Erros_Information_and_Debug": "2 - 錯誤、訊息與除錯", "@username": "@使用者名稱", "@username_message": "@使用者名稱 ", + "__count__empty_rooms_will_be_removed_automatically": "__count__ 空的房間將會自動移除。", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "__count__ 空的房間將會自動移除:
    __rooms__。", "__username__is_no_longer__role__defined_by__user_by_": "__username__不再是__role__,由__user_by__", "__username__was_set__role__by__user_by_": "__user_by__設定__username__為__role__的身份", "%_of_conversations": "% 的會話", + "A_new_owner_will_be_assigned_automatically_to__count__rooms": "新的所有者將自動分配給 __count__ 個房間。", + "A_new_owner_will_be_assigned_automatically_to_the__roomName__room": "新所有者將自動分配給 __roomName__ 房間。", + "A_new_owner_will_be_assigned_automatically_to_those__count__rooms__rooms__": "新所有者將自動分配給這些__count__個房間:
    __rooms__。", "Accept": "接受", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "在沒有線上客服時,仍接受線上即時聊天的請求", "Accept_new_livechats_when_agent_is_idle": "當代理閒置時允許新的即時聊天需求", @@ -51,6 +56,17 @@ "Accounts_AvatarExternalProviderUrl_Description": "例如: `https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "封鎖網域列表", "Accounts_BlockedDomainsList_Description": "以逗號分隔的網域黑名單", + "Accounts_Verify_Email_For_External_Accounts": "驗證外部帳號的電子郵件", + "Block_Multiple_Failed_Logins_Enabled": "啟用在資料裡面收集日誌", + "Block_Multiple_Failed_Logins_Enable_Collect_Login_data_Description": "將日誌裡面儲存的 IP 和使用者名稱試著整合到資料庫上", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "IP 白名單列表", + "Block_Multiple_Failed_Logins_Ip_Whitelist_Description": "以逗號分隔的 IP 白名單列表", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_Ip_In_Minutes": "解鎖 IP 的時間 (分鐘)", + "Block_Multiple_Failed_Logins_Time_To_Unblock_By_User_In_Minutes": "解鎖使用者的時間 (分鐘)", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_By_Ip": "封鎖 IP 要多少次失敗", + "Block_Multiple_Failed_Logins_Attempts_Until_Block_by_User": "封鎖使用者要多少次失敗", + "Block_Multiple_Failed_Logins_By_Ip": "封鎖登入失敗的 IP", + "Block_Multiple_Failed_Logins_By_User": "封鎖登入失敗的使用者", "Accounts_BlockedUsernameList": "使用者黑名單", "Accounts_BlockedUsernameList_Description": "被封鎖的使用者名稱(逗號分隔,不分大小寫)", "Accounts_CustomFields_Description": "應該是有效的JSON,其中鍵是包含字段設置字典的字段名稱。例如:
    {\n“角色”:{\n“type”:“select”,\n“defaultValue”:“學生”,\n“選項”:[“老師”,“學生”],\n“required”:是的,\n“modifyRecordField”:{\n“數組”:是的,\n“字段”:“角色”\n}\n},\n“推特”: {\n“type”:“text”,\n“required”:是的,\n“minLength”:2,\n“maxLength”:10\n}\n}", @@ -74,6 +90,11 @@ "Accounts_Enrollment_Email_Subject_Default": "歡迎來到 [Site_Name]", "Accounts_Enrollment_Email": "註冊電子郵件", "Accounts_Enrollment_Email_Description": "您可以使用以下的佔位符:
    • [name], [fname], [lname] 分別為使用者的全名,名字或姓。
    • [email] 為使用者電子郵件。
    • [Site_Name] 和 [Site_URL] 分別為應用程式名稱及網址。
    ", + "Login_Logs_Enabled": "嘗試登入(在控制台上)失敗的次數", + "Login_Logs_ClientIp": "在嘗試登入失敗的日誌中顯示客戶端 IP", + "Login_Logs_ForwardedForIp": "在嘗試登入失敗的日誌中顯示轉發 IP", + "Login_Logs_Username": "在嘗試登入失敗的日誌中顯示使用者名稱", + "Login_Logs_UserAgent": "在嘗試登入失敗的日誌中顯示使用者代理", "Accounts_ForgetUserSessionOnWindowClose": "在視窗關閉時忘記使用者 Session", "Accounts_Iframe_api_method": "API 方法", "Accounts_Iframe_api_url": "API 網址", @@ -81,6 +102,7 @@ "Accounts_iframe_url": "iframe 網址", "Accounts_LoginExpiration": "登入過期天數", "Accounts_ManuallyApproveNewUsers": "手動審核新使用者", + "Accounts_OAuth_Apple": "使用 Apple 登入", "Accounts_OAuth_Custom_Authorize_Path": "授權路徑", "Accounts_OAuth_Custom_Avatar_Field": "大頭貼欄位", "Accounts_OAuth_Custom_Button_Color": "按鈕顏色", @@ -233,6 +255,7 @@ "MAU_value": "MAU __value__", "Activity": "活動記錄", "Add": "新增", + "Add_custom_emoji": "新增自訂表情符號", "add-oauth-service": "新增 Oauth 服務", "add-oauth-service_description": "允許添加新的Oauth服務", "add-user": "增加使用者", @@ -271,6 +294,7 @@ "Agent_Info": "代理人資訊", "Agents": "代理", "Agent_added": "線上客服已新增", + "Agent_Name_Placeholder": "請輸入代理名稱...", "Agent_removed": "線上客服已刪除", "Alerts": "警報", "Alias": "別名", @@ -292,9 +316,11 @@ "Allow_Invalid_SelfSigned_Certs_Description": "允許使用無效的和自簽署的 SSL 憑證的連結驗證和預覽。", "Allow_switching_departments": "允許訪客切換部門", "Allow_Marketing_Emails": "允許營銷電子郵件", + "Allow_Online_Agents_Outside_Business_Hours": "允許在營業時間以外的線上代理", "Allow_Online_Agents_Outside_Office_Hours": "允許下班時間的線上客服", "Almost_done": "快要完成", "Alphabetical": "按英文字母順序", + "Also_send_to_channel": "同時發送到頻道", "Always_open_in_new_window": "始終在新視窗中打開", "Analytics": "分析", "Analytics_features_enabled": "已啟用的功能", @@ -308,6 +334,7 @@ "Animals_and_Nature": "動物與自然", "Announcement": "公告", "API": "API", + "APIs": "APIs", "API_Add_Personal_Access_Token": "新增個人存取 Token", "API_Allow_Infinite_Count": "允許取得所有", "API_Allow_Infinite_Count_Description": "是否允許調用REST API在一次調用中返回所有內容?", @@ -386,12 +413,15 @@ "App_user_not_allowed_to_login": "應用程式使用者不允許直接登入。", "Appearance": "外觀", "Application_added": "應用程式已新增", + "Application_delete_warning": "您將無法恢復該應用程式!", "Application_Name": "應用程式名稱", "Application_updated": "應用程式已更新", "Apply": "應用", "Apply_and_refresh_all_clients": "套用並重新整理所有客戶端", "Apps": "應用程式", "Apps_Engine_Version": "應用程式引擎版本", + "Apps_Essential_Alert": "對於以下事件,此應用程式必不可少:", + "Apps_Essential_Disclaimer": "如果停用此應用程式,則上面列出的事件將被中斷。如果您希望 Rocket.Chat 在沒有此應用程式功能的情況下正常工作,則需要將其反安裝", "Apps_Framework_Development_Mode": "啟用開發模式", "Apps_Framework_Development_Mode_Description": "開發模式允許安裝從非 Rocket.Chat 商店的應用程式。", "Apps_Framework_enabled": "啟用應用程式框架", @@ -400,6 +430,26 @@ "Apps_Game_Center_enabled": "啟用遊戲中心", "Apps_Game_Center_Play_Game_Together": "@here 讓我們一起玩__name__吧!", "Apps_Game_Center_Invite_Friends": "邀請您的朋友加入", + "Apps_Interface_IPreMessageSentPrevent": "事件發生在發送郵件之前", + "Apps_Interface_IPreMessageSentExtend": "事件發生在發送郵件之前", + "Apps_Interface_IPreMessageSentModify": "事件發生在發送郵件之前", + "Apps_Interface_IPostMessageSent": "事件發生在發送郵件之後", + "Apps_Interface_IPreMessageDeletePrevent": "事件發生在發送郵件刪除之前", + "Apps_Interface_IPostMessageDeleted": "事件發生在發送郵件刪除之後", + "Apps_Interface_IPreMessageUpdatedPrevent": "事件發生在發送郵件更新之前", + "Apps_Interface_IPreMessageUpdatedExtend": "事件發生在發送郵件更新之前", + "Apps_Interface_IPreMessageUpdatedModify": "事件發生在發送郵件更新之前", + "Apps_Interface_IPostMessageUpdated": "事件發生在發送郵件更新之後", + "Apps_Interface_IPreRoomCreatePrevent": "事件發生在房間建立之前", + "Apps_Interface_IPreRoomCreateExtend": "事件發生在房間建立之前", + "Apps_Interface_IPreRoomCreateModify": "事件發生在房間建立之前", + "Apps_Interface_IPostRoomCreate": "事件發生在房間建立之後", + "Apps_Interface_IPreRoomDeletePrevent": "事件發生在房間刪除之前", + "Apps_Interface_IPostRoomDeleted": "事件發生在房間刪除之後", + "Apps_Interface_IPreRoomUserJoined": "事件發生在使用者加入房間 (私人群組,公用群組) 之前", + "Apps_Interface_IPostRoomUserJoined": "事件發生在使用者加入房間 (私人群組,公用群組) 之後", + "Apps_Interface_IPostExternalComponentOpened": "事件發生在外部元件已開啟之後", + "Apps_Interface_IPostExternalComponentClosed": "事件發生在外部元件已關閉之後", "Apps_Marketplace_Deactivate_App_Prompt": "是否確定要停用此應用程式?", "Apps_Marketplace_Modify_App_Subscription": "修改訂閱", "Apps_Marketplace_Uninstall_App_Prompt": "是否確定要反安裝此應用程式?", @@ -408,9 +458,13 @@ "Apps_Marketplace_Login_Required_Title": "商店必須要登入", "Apps_Marketplace_Login_Required_Description": "從 Rocket.Chat 商店購買應用程式必須註冊您的工作區域並登入進去。", "Apps_Marketplace_pricingPlan_monthly": "__price__ / 月", + "Apps_Marketplace_pricingPlan_startingAt_monthly": "每月__price__起", "Apps_Marketplace_pricingPlan_monthly_perUser": "每個使用者__price__ / 月", + "Apps_Marketplace_pricingPlan_startingAt_monthly_perUser": "每位使用者每月__price__美元起", "Apps_Marketplace_pricingPlan_yearly": "__price__ / 年", + "Apps_Marketplace_pricingPlan_startingAt_yearly": "每年__price__起", "Apps_Marketplace_pricingPlan_yearly_perUser": "每個使用者__price__ / 年", + "Apps_Marketplace_pricingPlan_startingAt_yearly_perUser": "每位使用者每年__price__美元起", "Apps_Settings": "應用程式的設定", "Apps_User_Already_Exists": "使用者名稱 \"__username__\" 已經在使用。更名或移除使用它來安裝這個應用程式的使用者", "Apps_WhatIsIt": "應用程式:它們是什麼?", @@ -546,6 +600,9 @@ "bulk-register-user_description": "允許批次建立使用者", "Busiest_day": "最忙的日子", "Busiest_time": "最忙的時間", + "Business_Hours": "營業時間", + "Business_hours_enabled": "營業時間已啟用", + "Business_hours_updated": "營業時間已更新", "busy": "忙碌", "Busy": "忙碌", "busy_female": "忙碌", @@ -553,8 +610,10 @@ "busy_male": "忙碌", "Busy_male": "忙碌", "by": "通過", + "By_author": "由__author__", "cache_cleared": "快取已清除", "call-management": "通話管理", + "Caller": "呼叫者", "Cancel": "取消", "Canceled": "已取消", "Cancel_message_input": "取消", @@ -622,8 +681,10 @@ "Chatpal_Base_URL_Description": "尋找如何在github 上執行本機範本的說明。 網址必須是absolue並指向chatpal核心,例如http://localhost:8983/solr/chatpal。", "Chatpal_Batch_Size": "索引批次大小", "Chatpal_Batch_Size_Description": "索引文件的批次大小(在引導時)", + "Chatpal_channel_not_joined_yet": "Channel 尚未加入", "Chatpal_create_key": "建立金鑰", "Chatpal_created_key_successfully": "API 金鑰建立成功", + "Chatpal_Current_Room_Only": "同一個房間", "Chatpal_Default_Result_Type": "預設結果類型", "Chatpal_Default_Result_Type_Description": "定義結果顯示哪個結果類型。所有這一切意味著提供了所有類型的概述。", "Chatpal_Email_Address": "電子郵件地址", @@ -637,6 +698,8 @@ "Chatpal_go_to_user": "發送直接訊息", "Chatpal_HTTP_Headers": "HTTP 表頭", "Chatpal_HTTP_Headers_Description": "HTTP 表頭列表,每行一個表頭。格式: 名稱:值", + "Chatpal_Include_All_Public_Channels": "包括所有公用的 Channel", + "Chatpal_Include_All_Public_Channels_Description": "在所有公用頻道中進行搜尋,即使您尚未加入。", "Chatpal_Main_Language": "主要語言", "Chatpal_Main_Language_Description": "在對話中最常用的語言", "Chatpal_Messages": "訊息", @@ -697,6 +760,7 @@ "Closed_At": "已關閉於", "Closed_by_visitor": "由訪客關閉", "Closing_chat": "關閉聊天中", + "Closing_chat_message": "關閉聊天中", "Cloud": "雲端", "Cloud_Register_manually": "手動註冊", "Cloud_click_here": "在複製完文字後,到雲端控制介面。[點這裡](__cloudConsoleUrl__)", @@ -704,7 +768,6 @@ "Cloud_register_offline_helper": "如果存在間隙或網路存取受到限制,則可以手動註冊工作區。複製下面的文字,然後轉到我們的雲端控制介面以完成該過程。", "Cloud_register_success": "您的工作區已成功註冊!", "Cloud_register_error": "嘗試處理您的請求時出錯。請稍後再試。", - "Cloud_connect_support": "假如您仍沒有收到註冊電子郵件請確認您的電子郵件已更新。假如您仍有問題您可以連絡支援在", "Cloud_console": "雲端控制台", "Cloud_Info": "雲端資訊", "Cloud_what_is_it": "這是什麼?", @@ -746,11 +809,13 @@ "Connect": "連線", "Connection_Closed": "連接關閉", "Connection_Reset": "連線重置", + "Connection_success": "LDAP 連接成功", "Connectivity_Services": "連線的服務", "Consulting": "諮詢", "Consumer_Goods": "消費品", "Contains_Security_Fixes": "包含安全修復程序", "Contact": "聯絡人", + "Contact_Chat_History": "聯絡人聊天記錄", "Content": "內容", "Continue": "繼續", "Continuous_sound_notifications_for_new_livechat_room": "新的即時聊天室的連續聲音通知", @@ -1031,11 +1096,14 @@ "Create_unique_rules_for_this_channel": "為此頻道建立獨特的規則", "Created": "已建立", "Created_at": "建立於", + "Created_by": "建立於", + "Created_as": "建立為", "Created_at_s_by_s": "%s%s所建立", "Created_at_s_by_s_triggered_by_s": "由%s觸發,由%s創建於%s", "CRM_Integration": "CRM 整合", "CROWD_Allow_Custom_Username": "允許自訂使用者名稱在 Rocket.Chat", "CROWD_Reject_Unauthorized": "拒絕未經授權", + "Crowd_Remove_Orphaned_Users": "刪除孤立的使用者", "Crowd_sync_interval_Description": "同步之間的時間間隔。例如“每24小時”或“每週的第一天”,在[Cron Text Parser](http://bunkat.github.io/later/parsers.html#text)上的更多示例,", "Current_Chats": "目前聊天", "Current_File": "目前檔案", @@ -1067,6 +1135,7 @@ "Custom_Script_On_Logout_Description": "自訂腳本只會執行在登出流程", "Custom_Sound_Add": "新增自訂音效", "Custom_Sound_Delete_Warning": "刪除音效後無法復原。", + "Custom_Sound_Edit": "編輯自訂聲音", "Custom_Sound_Error_Invalid_Sound": "無效的音效", "Custom_Sound_Error_Name_Already_In_Use": "該自訂音效名稱已被使用。", "Custom_Sound_Has_Been_Deleted": "自訂音效已刪除。", @@ -1184,6 +1253,7 @@ "Disabled": "已停用", "Disallow_reacting": "不允許反應", "Disallow_reacting_Description": "不允許反應", + "Discard": "丟棄", "Disconnect": "中斷連線", "Display_offline_form": "顯示為離線", "Display_setting_permissions": "顯示權限來變更設定", @@ -1336,6 +1406,7 @@ "error-archived-duplicate-name": "已有一個名為「'__room_name__'」的封存中通道", "error-avatar-invalid-url": "無效的大頭貼網址:__url__", "error-avatar-url-handling": "錯誤從__username__一個 URL(__url__)辦理大頭貼設定", + "error-business-hours-are-closed": "營業時間已關閉", "error-cannot-delete-app-user": "禁止刪除應用程式使用者,請反安裝相關應用程式來移除它。", "error-cant-invite-for-direct-room": "無法邀請使用者進入私訊", "error-channels-setdefault-is-same": "頻道的預設設定與變更的頻道相同。", @@ -1350,6 +1421,8 @@ "error-edit-permissions-not-allowed": "不允許編輯權限", "error-email-domain-blacklisted": "電子郵件網域被禁用", "error-email-send-failed": "嘗試發送電子郵件時出錯:__message__", + "error-essential-app-disabled": "錯誤:對此停用的 Rocket.Chat 應用已被停用。請與您的管理員聯繫", + "error-password-same-as-current": "輸入的密碼與目前密碼相同", "error-field-unavailable": "__field__已被使用了 :(", "error-file-too-large": "檔案太大", "error-forwarding-chat-same-department": "所選部門與當前房間部門相同", @@ -1395,6 +1468,7 @@ "error-invalid-urls": "無效網址", "error-invalid-user": "無效使用者", "error-invalid-username": "無效的使用者名稱", + "error-invalid-value": "無效有效", "error-invalid-webhook-response": "webhook 網址以200以外的狀態響應", "error-message-deleting-blocked": "訊息刪除已停用", "error-message-editing-blocked": "訊息編輯已停用", @@ -1429,6 +1503,7 @@ "error-token-already-exists": "這個名稱的 Token 已存在", "error-token-does-not-exists": "Token 不存在", "error-too-many-requests": "錯誤,太多的請求。請稍等一下。重試前必須等待__seconds__秒。", + "error-transcript-already-requested": "Transcript 已被要求", "error-user-has-no-roles": "使用者沒有角色", "error-user-is-not-activated": "使用者尚未啟用", "error-user-is-not-agent": "使用者不是即時聊天代理", @@ -1444,6 +1519,8 @@ "Error_404": "錯誤:404", "Error_changing_password": "密碼變更失敗", "Error_loading_pages": "加載頁面時出錯", + "Error_login_blocked_for_ip": "這個 IP 的登入已被暫時禁止", + "Error_login_blocked_for_user": "這個使用者的登入已被暫時禁止", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances": "錯誤:Rocket.Chat在多個實例中運行時需要oplog拖尾", "Error_RocketChat_requires_oplog_tailing_when_running_in_multiple_instances_details": "請確保您的MongoDB處於ReplicaSet模式,並且MONGO_OPLOG_URL環境變量已在應用程序服務器上正確定義", "Error_sending_livechat_transcript": "傳送即時聊天副本失敗", @@ -1463,6 +1540,7 @@ "Everyone_can_access_this_channel": "所有人皆可存取此頻道", "Exact": "準確", "Example_s": "例如: %s", + "Example_payload": "範本 payload", "Exclude_Botnames": "排除機器人", "Exclude_Botnames_Description": "請勿傳播名稱與上述正規表示法匹配的機器人的訊息。如果留空,所有來自機器人的訊息將被傳播。", "Exclude_pinned": "排除固定消息", @@ -1481,6 +1559,7 @@ "External_Service": "外部服務", "Facebook_Page": "Facebook 頁面", "Failed": "失敗", + "Login_Attempts": "嘗試登入失敗", "Failed_to_activate_invite_token": "無法啟動邀請 token", "Failed_To_Download_Files": "下載檔案失敗", "Failed_to_generate_invite_link": "無法產生邀請連接", @@ -1556,10 +1635,14 @@ "FileUpload_MaxFileSize": "最大上傳檔案大小 (以bytes為單位)", "FileUpload_MaxFileSizeDescription": "將其設置為-1以刪除檔案大小限制。", "FileUpload_MediaType_NotAccepted": "不接受此媒體類型", + "FileUpload_MediaTypeBlackList": "封鎖的媒體類型", + "FileUpload_MediaTypeBlackListDescription": "用逗號來分隔媒體類型列表。此設定優先於允許的媒體類型。", "FileUpload_MediaTypeWhiteList": "可接受的媒體類型", "FileUpload_MediaTypeWhiteListDescription": "可接受的檔案類型以逗點分隔列表。留空表示接受所有檔案類型。", "FileUpload_ProtectFiles": "保護上傳的檔案", "FileUpload_ProtectFilesDescription": "只有經過身份驗證的使用者才能存取", + "FileUpload_RotateImages": "在上傳時旋轉圖片", + "FileUpload_RotateImages_Description": "啟用此設定可能會導致圖片畫素降低", "FileUpload_S3_Acl": "Amazon S3的ACL", "FileUpload_S3_AWSAccessKeyId": "Amazon S3的AWSAccessKeyId", "FileUpload_S3_AWSSecretAccessKey": "Amazon S3的AWSSecretAccessKey", @@ -1603,6 +1686,9 @@ "Flags": "旗標", "Follow_message": "追蹤訊息", "Following": "追蹤中", + "Nickname": "暱稱", + "Nickname_Placeholder": "輸入你的暱稱...", + "Not_Following": "沒有正在追蹤的", "Follow_social_profiles": "按照我們的社交檔案,在github上分享我們,並在我們的trello板上分享您對rocket.chat app的看法。", "Fonts": "字體", "Food_and_Drink": "食物和飲料", @@ -1639,6 +1725,14 @@ "Generate_new_key": "產生新的金鑰", "Generating_key": "產生金鑰中", "Get_link": "取得連結", + "get-password-policy-forbidRepeatingCharacters": "密碼不應包含重複字元", + "get-password-policy-forbidRepeatingCharactersCount": "密碼中不得包含 __forbidRepeatingCharactersCount__ 個重複字元", + "get-password-policy-maxLength": "密碼長度不得超過 __maxLength__ 個字元", + "get-password-policy-minLength": "密碼長度不得少於 __minLength__ 個字元", + "get-password-policy-mustContainAtLeastOneLowercase": "密碼至少應包含一個小寫字母", + "get-password-policy-mustContainAtLeastOneNumber": "密碼應至少包含一個數字", + "get-password-policy-mustContainAtLeastOneSpecialCharacter": "密碼應至少包含一個特殊字符", + "get-password-policy-mustContainAtLeastOneUppercase": "密碼應至少包含一個大寫字母", "Generate_New_Link": "產生新的連接", "github_no_public_email": "您沒有設置任何電子郵件作為公共電子郵件地址,在你的Github帳戶上", "Give_a_unique_name_for_the_custom_oauth": "為自訂 OAuth 設定一個獨一無二的名稱", @@ -1672,6 +1766,7 @@ "Graphql_Enabled": "GraphQL 已啟用", "Graphql_CORS": "GraphQL CORS", "Graphql_Subscription_Port": "GraphQL 訂閱連接埠", + "Group_by": "由群組", "Group_by_Type": "按類型分組", "Group_discussions": "群組論壇", "Group_favorites": "最愛群組", @@ -1698,7 +1793,7 @@ "Hide_Livechat_Warning": "您確定要隱藏 “%s” 的即時聊天嗎?", "Hide_Private_Warning": "您確定您要隱藏用 “%s” 的討論?", "Hide_roles": "隱藏角色", - "Hide_room": "隱藏 Room", + "Hide_room": "隱藏", "Hide_Room_Warning": "您確定您要隱藏的房間 “%s” 嗎?", "Hide_Unread_Room_Status": "隱藏未讀房間狀態", "Hide_usernames": "隱藏使用者名稱", @@ -1824,6 +1919,7 @@ "Installed_at": "安裝在", "Invitation_HTML": "邀請郵件 HTML", "Instance_Record": "實例記錄", + "Instance": "實例", "Instructions": "說明", "Instructions_to_your_visitor_fill_the_form_to_send_a_message": "說明你的訪客填寫表格發送郵件", "Invitation_HTML_Default": "

    您已被邀請[Site_Name]

    轉到[Site_URL],並嘗試了當今最先進的開源聊天解決方案!

    ", @@ -1835,6 +1931,8 @@ "Integration_Incoming_WebHook": "傳入的 WebHook 整合", "Integration_New": "新的整合", "Integration_Outgoing_WebHook": "傳出的 WebHook 整合", + "Integration_Delete_Warning": "刪除整合無法復原。", + "Webhook_Details": "WebHook 詳細資料", "Integration_Outgoing_WebHook_History": "即將離任的WebHook集成歷史", "Integration_Outgoing_WebHook_History_Data_Passed_To_Trigger": "數據通過集成", "Integration_Outgoing_WebHook_History_Data_Passed_To_URL": "數據傳遞到URL", @@ -2119,6 +2217,8 @@ "LDAP_User_Search_Scope": "範圍", "LDAP_Username_Field": "使用者名稱欄位", "LDAP_Username_Field_Description": "這將被用於為*使用者名稱*為新使用者。留空使用的使用者名告知登錄頁面上。
    您可以使用模板標籤太像`#{givenName}.#{sn}`。
    預設值是`sAMAccountName`。", + "LDAP_Avatar_Field": "使用者大頭貼欄位", + "LDAP_Avatar_Field_Description": "這個欄位將用作使用者的*大頭貼*。保持空白以首先使用`thumbnailPhoto`和`jpegPhoto`作為後備。", "Lead_capture_email_regex": "最先抓取電子郵件正規表示法", "Lead_capture_phone_regex": "最先抓取手機號碼正規表示法", "leave-c": "保留 Channel", @@ -2128,8 +2228,8 @@ "Leave_Group_Warning": "你確定你要離開組 “%s” 嗎?", "Leave_Livechat_Warning": "你確定要離開 “%s” 的即時聊天嗎?", "Leave_Private_Warning": "你確定要離開 “%s” 的討論?", - "Leave_room": "離開聊天室", - "Leave_Room_Warning": "您確定要離開房間 “%s” 嗎?", + "Leave_room": "離開", + "Leave_Room_Warning": "您確定要離開頻道 “%s” 嗎?", "Leave_the_current_channel": "離開目前頻道", "Lets_get_you_new_one": "來取得新的!", "line": "行", @@ -2140,6 +2240,7 @@ "Livechat_Agents": "代理", "Livechat_AllowedDomainsList": "已允許的即時聊天網域", "Livechat_Appearance": "即時通訊介面", + "Livechat_chat_transcript_sent": "發送的聊天記錄:__ transcript__", "Livechat_Dashboard": "即時聊天儀表板", "Livechat_DepartmentOfflineMessageToChannel": "發送該部門的即時聊天離線訊息至頻道", "Livechat_enabled": "即時聊天已啟用", @@ -2165,6 +2266,9 @@ "Livechat_Take_Confirm": "你想帶這個客戶嗎?", "Livechat_title": "即時聊天標題", "Livechat_title_color": "即時聊天標題背景顏色", + "Livechat_transcript_already_requested_warning": "聊天記錄已被要求,對話結束後將立即發送。", + "Livechat_transcript_request_has_been_canceled": "聊天記錄請求已被取消。", + "Livechat_transcript_has_been_requested": "已要求聊天記錄。", "Livechat_transcript_sent": "即時聊天副本傳送", "Livechat_transfer_to_agent": "__from__ 將聊天轉移到 __to__", "Livechat_transfer_to_agent_with_a_comment": "__from__將聊天轉移到__to__並發表了評論:__comment__", @@ -2173,6 +2277,9 @@ "Livechat_transfer_return_to_the_queue": "__from__ 將聊天轉回到佇列", "Livechat_Triggers": "觸發即時聊天", "Livechat_Users": "ID登錄用戶", + "Livechat_user_sent_chat_transcript_to_visitor": "__agent__ 已將聊天記錄發送給 __guest__", + "Livechat_visitor_email_and_transcript_email_do_not_match": "訪客的電子郵件和紀錄的電子郵件不符合", + "Livechat_visitor_transcript_request": "__guest__ 請求了聊天記錄", "LiveStream & Broadcasting": "即時串流 & 廣撥", "Livestream_close": "關閉Livestream", "Livestream_enabled": "即時串流已開啟", @@ -2192,6 +2299,8 @@ "Local_Password": "本機密碼", "Localization": "本土化", "Location": "位置", + "Local_Time": "當地時間", + "Local_Time_time": "當地時間: __time__", "Log_Exceptions_to_Channel_Description": "一個將接收所有捕獲的異常的通道。留空以忽略異常。", "Log_Exceptions_to_Channel": "將通道記錄異常", "Log_File": "顯示檔案和行數", @@ -2206,6 +2315,7 @@ "Log_View_Limit": "日誌檢視限制", "Logged_out_of_other_clients_successfully": "登出其他客戶端成功", "Login": "登入", + "Login_Logs": "登入日誌", "Login_with": "使用%s登入", "Logistics": "後勤", "Logout": "登出", @@ -2218,6 +2328,7 @@ "mail-messages_description": "允許使用郵件消息選項", "Mail_Message_Invalid_emails": "您提供一個或多個無效的電子郵件:%s", "Mail_Message_Missing_to": "您必須選擇一個或多個使用者或提供一個或多個電子郵件地址,以逗號分隔。", + "Mail_Message_Missing_subject": "您必須提供一個電子郵件主旨。", "Mail_Message_No_messages_selected_select_all": "您還沒有選擇任何消息", "Mail_Messages": "郵件訊息", "Mail_Messages_Instructions": "通過點擊訊息選擇您要通過電子郵件發送哪些訊息", @@ -2228,7 +2339,8 @@ "Mailer_body_tags": "您必須使用[unsubscribe]的退訂連接。
    您可以使用[name],[fname],[lname]為使用者的全名,名字或姓氏,分別。
    您可以使用[email]為使用者的電子郵件。", "Mailing": "郵件", "Make_Admin": "設為管理員", - "Make_sure_you_have_a_copy_of_your_codes": "請確保您有一份代碼副本:__codes__如果您無法訪問您的身份驗證器應用程序,則可以使用其中一個代碼登錄。", + "Make_sure_you_have_a_copy_of_your_codes_1": "請確保您有一份代碼副本:", + "Make_sure_you_have_a_copy_of_your_codes_2": "如果您無法訪問您的身份驗證器應用程序,則可以使用其中一個代碼登錄。", "manage-apps": "管理應用", "manage-assets": "管理資產", "manage-assets_description": "管理服務器資產的權限", @@ -2357,6 +2469,7 @@ "Message_HideType_subscription_role_removed": "隱藏“不再定義的角色”的訊息", "Message_HideType_room_archived": "隱藏“ Room 已封存”的訊息", "Message_HideType_room_unarchived": "隱藏“ Room 未封存”的訊息", + "Message_HideType_room_changed_privacy": "隱藏 \" Room 類型已更改” 訊息", "Hide_System_Messages": "隱藏系統訊息", "Message_Id": "訊息 ID", "Message_Ignored": "此訊息被忽略", @@ -2482,7 +2595,7 @@ "No_Limit": "沒有限制", "No_available_agents_to_transfer": "沒有可用的代理進行傳輸", "No_channel_with_name_%s_was_found": "沒有此頻道 \"%s\" !", - "No_channels_yet": "您尚未加入此頻道。", + "No_channels_yet": "您尚未加入任何頻道。", "No_direct_messages_yet": "您還没有開始任何聊天。", "No_emojis_found": "沒找到表情符號", "No_Encryption": "無加密", @@ -2495,12 +2608,14 @@ "No_messages_yet": "沒有訊息", "No_pages_yet_Try_hitting_Reload_Pages_button": "還沒有頁面。嘗試點擊“重新載入頁面”按鈕。", "No_pinned_messages": "未釘選訊息", + "No_previous_chat_found": "找不到先前的聊天記錄", "No_results_found": "未有找到結果", "No_results_found_for": "未找到結果:", "No_snippet_messages": "沒有片段", "No_starred_messages": "無最愛的訊息", "No_such_command": "沒有這樣的命令:`/ __command__`", "No_discussions_yet": "沒有討論", + "No_Discussions_found": "找不到論壇", "No_Threads": "沒找到討論串", "No_user_with_username_%s_was_found": "沒有此使用者 \"%s\" !", "No_data_found": "沒有找到資料", @@ -2535,6 +2650,7 @@ "Number_of_federated_users": "聯盟使用者數量", "Number_of_federated_servers": "聯盟伺服器數量", "Number_of_messages": "訊息數", + "RetentionPolicy_DoNotExcludeDiscussion": "不要排除論壇訊息", "OAuth Apps": "OAuth 應用程式", "OAuth_Application": "OAuth 應用程式", "OAuth_Applications": "OAuth 應用程式", @@ -2545,6 +2661,7 @@ "Office_Hours": "工作時間", "Office_hours_enabled": "辦公時間已啟用", "Office_hours_updated": "辦公時間更新", + "RetentionPolicy_ExcludePinned": "排除釘選消息", "Offline": "離線", "Offline_DM_Email": "直接訊息的郵件主旨", "Offline_Email_Subject_Description": "您可以分別使用以下佔位符:
    • [Site_Name],[Site_URL],[User]&[Room]。
    ", @@ -2649,6 +2766,7 @@ "PiwikAnalytics_siteId_Description": "該網站 ID 用於標識此站點。例如:17", "PiwikAnalytics_url_Description": "Piwik 所在的網址,請務必包含尾部斜線。例如://piwik.rocket.chat/", "Placeholder_for_email_or_username_login_field": "佔位符電子郵件或使用者登入欄位", + "Placeholder_for_password_login_confirm_field": "在密碼登入欄位中確認佔位符", "Placeholder_for_password_login_field": "佔位符密碼登入欄位", "Please_add_a_comment": "請增加評論", "Please_add_a_comment_to_close_the_room": "請增加關閉房間的評論", @@ -2677,6 +2795,7 @@ "post-readonly": "發佈唯讀", "post-readonly_description": "允許以唯讀頻道發布訊息", "Post_as": "張貼在", + "Post_to": "發佈到", "Post_to_Channel": "張貼到 Channel", "Post_to_s_as_s": "張貼到%s %s ", "Preferences": "偏好設定", @@ -2825,6 +2944,7 @@ "Removed_User": "已移除使用者", "Replied_on": "回覆在", "Reply": "回覆", + "Replay": "重播", "reply_counter": "__counter__ 回覆", "reply_counter_plural": "__counter__ 回覆", "Replies": "回覆", @@ -2839,6 +2959,8 @@ "Reporting": "報告", "Request_comment_when_closing_conversation": "當關閉對話時需要評論", "Request_comment_when_closing_conversation_description": "假如啟用,此代理將必須在對話關閉前進行評論。", + "Requested_At": "要求於", + "Requested_By": "被要求", "Require": "必須", "Require_all_tokens": "要求所有 tokens", "Require_any_token": "需要任何 token", @@ -2849,12 +2971,16 @@ "Reset_password": "重設密碼", "Reset_section_settings": "重設部分設定", "Reset_Connection": "重設連接", + "Responding": "回應", + "Response_description_pre": "如果處理程序希望將回應發送回頻道,則應回到以下 JSON 作為回應的主體:", + "Response_description_post": "空的正文或具有空的文字屬性的正文將被忽略。非200回應將被重試合理次數。將使用上面指定的別名和大頭貼發布回覆。您可以按照上面的範本覆蓋這些訊息。", "Restart": "重新啟動", "Restart_the_server": "重新啟動伺服器", "Retail": "零售", "Retention_setting_changed_successfully": "保留策略設定已成功更改", "RetentionPolicy": "保留政策", - "RetentionPolicy_DoNotExcludeDiscussion": "不要排除論壇訊息", + "RetentionPolicy_DoNotPruneDiscussion": "不修剪論壇訊息", + "RetentionPolicy_DoNotPruneThreads": "不修剪討論串", "RetentionPolicy_RoomWarning": "超過 __time__ 的郵件會在此處自動刪除", "RetentionPolicy_RoomWarning_Unpinned": "早於__time__的未固定消息會在此處自動刪除", "RetentionPolicy_RoomWarning_FilesOnly": "早於__time__的檔案會在這裡自動刪除(訊息保持不變)", @@ -2864,7 +2990,7 @@ "RetentionPolicy_AppliesToChannels": "適用於頻道", "RetentionPolicy_AppliesToGroups": "適用於私人團體", "RetentionPolicy_AppliesToDMs": "適用於直接消息", - "RetentionPolicy_ExcludePinned": "排除釘選消息", + "RetentionPolicy_DoNotPrunePinned": "不修剪釘選的訊息", "RetentionPolicy_FilesOnly": "只刪除檔案", "RetentionPolicy_FilesOnly_Description": "只刪除檔案,郵件本身將保留在原位。", "RetentionPolicy_MaxAge": "最大郵件年齡", @@ -2930,9 +3056,13 @@ "Same_As_Token_Sent_Via": "與“通過發送的 Token”相同", "Same_Style_For_Mentions": "同樣的風格提及", "SAML": "SAML", + "SAML_AuthnContext_Template": "AuthnContext 範本", + "SAML_AuthnContext_Template_Description": "您可以在此處使用AuthnRequest模板中的任何變量。要添加其他身份驗證上下文,請複制__AuthnContextClassRef__標記,並將__ \\ _ \\ _ authnContext \\ _ \\ ___變量替換為新的上下文。", + "SAML_AuthnRequest_Template": "AuthnRequest 範本", + "SAML_AuthnRequest_Template_Description": "可以使用以下變量:-** \\ _ \\ _ newId \\ _ \\ _ **:隨機生成的ID字符串-** \\ _ \\ _ instant \\ _ \\ _ **:當前時間戳-** \\ _ \\ _ callbackUrl \\ _ \\ _ **:Rocket.Chat回調URL。 -** \\ _ \\ _ entryPoint \\ _ \\ _ **:__ Custom Entry Point__設置的值。 -** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設置的值。 -** \\ _ \\ _ identifierFormatTag \\ _ \\ _ **:如果配置了有效的__Identifier Format__,則__NameID策略模板__的內容。 -** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設置的值。 -** \\ _ \\ _ authnContextTag \\ _ \\ _ **:如果配置了有效的__Custom Authn Context__,則__AuthnContext Template__的內容。 -** \\ _ \\ _ authnContextComparison \\ _ \\ _ **:__Authn上下文比較__設置的值。 -** \\ _ \\ _ authnContext \\ _ \\ _ **:__ Custom Authn Context__設置的值。", "SAML_Custom_Authn_Context": "自定義授權內文", "SAML_Custom_Authn_Context_Comparison": "內容驗證比對", - "SAML_Custom_Authn_Context_description": "將此保留為空可忽略請求中的 authn 內容。", + "SAML_Custom_Authn_Context_description": "將此保留為空可忽略請求中的authn上下文。要增加多個身份驗證上下文,請將其他上下文直接增加到 __AuthnContext Template__ 設定中。", "SAML_Custom_Cert": "自訂憑證", "SAML_Custom_Debug": "啟用除錯", "SAML_Custom_Entry_point": "自訂 Entry Point", @@ -2954,7 +3084,7 @@ "SAML_Custom_signature_validation_type": "簽名驗證類型", "SAML_Custom_signature_validation_type_description": "假如自訂憑證未提供則這個設定會忽略。", "SAML_Custom_user_data_fieldmap": "使用者資料欄位對應", - "SAML_Custom_user_data_fieldmap_description": "設置如何從 SAML 紀錄中 (一旦找到) 補齊使用者帳號欄位 (例如電子郵件)。
    例如,`{\"cn\":\"name\", \"mail\":\"email\"}` 將會選擇從 cn 欄位找到個人可讀取名稱,和從電子郵件欄位找到他們的電子郵件。
    在 Rocket.Chat 可用的欄位有: `name`, `email` 和 `username`, 其他所有的會另存為 `customFields`。
    您也可以使用正規表示法去取得欄位值,像是這個: `{\"NameID\": { \"field\": \"username\", \"regex\": \"(.*)@.+$\"}, \"email\": \"email\"}`", + "SAML_Custom_user_data_fieldmap_description": "配置如何從SAML(一旦找到)中的記錄填充使用者帳號欄位(例如電子郵件)。例如,“ {\"name\":\"cn\", \"email\":\"mail\"}”將從cn屬性中選擇一個人的可讀名稱,並從mail屬性中選擇他們的電子郵件。 Rocket.Chat中的可用欄位:“名稱”,“電子郵件”和“使用者名稱”,其他所有內容將另存為“ customFields”。將不可變屬性的名稱分配給“ __identifier__”鍵,以將其用作用戶標識符。您還可以使用正規表示法和模組。模組將首先被處理,除非它們引用正規表示法的結果。 ```{\n \"email\": \"mail\",\n \"username\": {\n \"fieldName\": \"mail\",\n \"regex\": \"(.*)@.+$\",\n \"template\": \"user-__regex__\"\n },“名稱”:{\n \"fieldNames\": [\n \"firstName\",\n \"lastName\"\n ],\n \"template\": \"__firstName__ __lastName__\"\n },“ __identifier__”:“ uid”}```", "SAML_Custom_Username_Field": "使用者名稱欄位名稱", "SAML_Custom_Username_Normalize": "標準化使用者名稱", "SAML_Custom_Username_Normalize_None": "沒有標準化", @@ -2965,10 +3095,28 @@ "SAML_Custom_Public_Cert": "公共證書內容", "SAML_Default_User_Role": "預設使用者角色", "SAML_Default_User_Role_Description": "您可以指定多個角色,並用逗號分隔。", + "SAML_Identifier_Format": "標識符格式", + "SAML_Identifier_Format_Description": "將此保留為空可忽略請求中的 NameID 政策。", + "SAML_LogoutResponse_Template": "登出回應範本", + "SAML_LogoutRequest_Template": "登出請求範本", + "SAML_LogoutRequest_Template_Description": "可以使用以下變量:-** \\ _ \\ _ newId \\ _ \\ _ **:隨機生成的ID字符串-** \\ _ \\ _ instant \\ _ \\ _ **:當前時間戳-** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **:重定向到的IDP單一註銷URL。 -** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設置的值。 -** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設置的值。 -** \\ _ \\ _ nameID \\ _ \\ _ **:用戶登錄時從IdP接收到的NameID。-**** __ \\ _ sessionIndex \\ _ \\ _ **:用戶登錄時從IdP接收到的sessionIndex在。", + "SAML_LogoutResponse_Template_Description": "可以使用以下變量:-** \\ _ \\ _ newId \\ _ \\ _ **:隨機生成的ID字符串-** \\ _ \\ _ instant \\ _ \\ _ **:當前時間戳-** \\ _ \\ _ idpSLORedirectURL \\ _ \\ _ **:重定向到的IDP單一註銷URL。 -** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設置的值。 -** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設置的值。 -** \\ _ \\ _ nameID \\ _ \\ _ **:用戶登錄時從IdP接收到的NameID。-**** __ \\ _ sessionIndex \\ _ \\ _ **:用戶登錄時從IdP接收到的sessionIndex在。", + "SAML_MetadataCertificate_Template": "Metadata 憑證範本", + "SAML_Metadata_Template": "Metadata 範本", + "SAML_Metadata_Template_Description": "可以使用以下變量:-** \\ _ \\ _ sloLocation \\ _ \\ _ **:Rocket.Chat單一註銷URL。 -** \\ _ \\ _ issuer \\ _ \\ _ **:__ Custom Issuer__設置的值。 -** \\ _ \\ _ identifierFormat \\ _ \\ _ **:__ Identifier Format__設置的值。 -** \\ _ \\ _ certificateTag \\ _ \\ _ **:如果配置了私有證書,則將包括__元數據證書模板__,否則將被忽略。 -** \\ _ \\ _ callbackUrl \\ _ \\ _ **:Rocket.Chat回調網址。", + "SAML_Metadata_Certificate_Template_Description": "可以使用以下變量:-** \\ _ \\ _ certificate \\ _ \\ _ **:用於斷言加密的專用憑證。", + "SAML_NameIdPolicy_Template": "NameID 政策範本", + "SAML_NameIdPolicy_Template_Description": "您可以在此處使用授權請求範本中的任何變數。", "SAML_Role_Attribute_Name": "角色屬性名稱", "SAML_Role_Attribute_Name_Description": "如果在 SAML 回覆中找到此屬性,則其值用作新使用者的角色名稱。", "SAML_Role_Attribute_Sync": "同步使用者身份", "SAML_Role_Attribute_Sync_Description": "登入時同步 SAML 使用者身份(覆蓋本地使用者身份)。", + "SAML_Section_1_User_Interface": "使用者介面", + "SAML_Section_2_Certificate": "憑證", + "SAML_Section_3_Behavior": "行為", + "SAML_Section_4_Roles": "角色", + "SAML_Section_5_Mapping": "對應", + "SAML_Section_6_Advanced": "進階", "SAML_Allowed_Clock_Drift": "允許來自身份提供者的時間差", "SAML_Allowed_Clock_Drift_Description": "身份提供者的時間可能會比您的系統時間快一些。您可以允許少量的時間差。它的值必須以毫秒為單位。提供的數值將增加到驗證回應的目前時間。", "Saturday": "星期六", @@ -2983,7 +3131,7 @@ "Saved": "保存", "Saving": "保存", "Scan_QR_code": "使用Google身份驗證器,Authy或Duo等身份驗證器應用掃描QR碼。它將顯示一個6位數的代碼,您需要在下面輸入。", - "Scan_QR_code_alternative_s": "如果您無法掃描QR碼,則可以手動輸入代碼:__code__", + "Scan_QR_code_alternative_s": "如果您無法掃描QR碼,則可以手動輸入代碼:", "Scope": "範圍", "Screen_Lock": "螢幕鎖定", "Screen_Share": "螢幕分享", @@ -2993,7 +3141,9 @@ "Search_by_file_name": "按檔案名稱搜尋", "Search_by_username": "以使用者名稱搜尋", "Search_Channels": "搜尋 Channel", + "Search_Chat_History": "搜尋聊天記錄", "Search_current_provider_not_active": "當前搜尋提供程式未啟動", + "Search_Integrations": "搜尋整合", "Search_message_search_failed": "搜尋請求失敗", "Search_Messages": "搜尋訊息", "Search_Page_Size": "頁面大小", @@ -3002,6 +3152,7 @@ "Search_Users": "搜尋使用者", "Search_Rooms": "搜尋 Room", "seconds": "秒", + "See_full_profile": "查看完整檔案", "Secret_token": "加密 Token", "Security": "安全", "Select_a_department": "選擇一個部門", @@ -3018,6 +3169,7 @@ "Selected_agents": "已選擇代理", "Selecting_users": "選擇使用者中", "send-many-messages": "傳送多個訊息", + "send-omnichannel-chat-transcript": "發送全通道對話記錄", "Send": "傳送", "Send_a_message": "傳送一則訊息", "Send_a_test_mail_to_my_user": "傳送測試郵件給自己", @@ -3047,6 +3199,7 @@ "Sending": "傳送中…", "Sent_an_attachment": "發送附件", "Sent_from": "來自", + "Separate_multiple_words_with_commas": "用逗號分隔多個單字", "Served_By": "服務於", "Server_File_Path": "伺服器檔案路徑", "Server_Folder_Path": "伺服器資料夾路徑", @@ -3073,6 +3226,9 @@ "Setup_Wizard": "安裝精靈", "Setup_Wizard_Info": "我們將指導您設置第一位管理員使用者,配置您的組織並註冊您的伺服器以接收免費推送通知等。", "Share_Location_Title": "共享位置?", + "Cannot_share_your_location": "無法分享您的位置...", + "You_will_be_asked_for_permissions": "您將被要求權限", + "The_necessary_browser_permissions_for_location_sharing_are_not_granted": "未授予位置共享所需的瀏覽器權限", "Shared_Location": "已共享位置", "Shared_Secret": "共享加密", "Should_be_a_URL_of_an_image": "圖片應該有一個網址。", @@ -3086,6 +3242,7 @@ "Show_Avatars": "顯示頭像", "Show_counter": "顯示櫃檯", "Show_email_field": "顯示電子郵件欄位", + "Show_Message_In_Main_Thread": "在主討論中顯示討論訊息", "Show_more": "顯示更多", "Show_name_field": "顯示名稱欄位", "show_offline_users": "顯示離線使用者", @@ -3267,6 +3424,7 @@ "The_application_name_is_required": "應用程式名稱是必需的", "The_channel_name_is_required": "頻道名稱是必需的", "The_emails_are_being_sent": "電子郵件傳送中", + "The_empty_room__roomName__will_be_removed_automatically": "空房間 __roomName__ 將自動刪除。", "The_field_is_required": "欄位 %s 必填", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "圖片大小調整不會起作用,因為在我們偵測不到伺服器上安裝的 ImageMagick 或 GraphicsMagick 工具", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "此訊息是在論壇中您不可以復原訊息!", @@ -3390,9 +3548,11 @@ "totp-invalid": "無效的代碼或密碼", "TOTP Invalid [totp-invalid]": "無效的代碼或密碼", "Tourism": "旅遊", + "Transcript": "紀錄", "Transcript_Enabled": "詢問訪問者是否會在聊天結束後收到副本", "Transcript_message": "詢問筆錄時要顯示的訊息", "Transcript_of_your_livechat_conversation": "您的聊天記錄的談話內容。", + "Transcript_Request": "紀錄要求", "transfer-livechat-guest": "轉送即時聊天訪客", "Translate": "翻譯", "Translated": "翻譯", @@ -3452,6 +3612,7 @@ "Unarchive": "取消封存", "unarchive-room": "Room 取消封存", "unarchive-room_description": "取消封存頻道的權限", + "Unavailable": "無法使用", "Unblock_User": "取消封鎖使用者", "Uncheck_All": "取消選擇", "Undefined": "未定義", @@ -3493,6 +3654,7 @@ "Uptime": "上線時間", "URL": "網址", "URL_room_prefix": "網址 Room 前綴", + "URL_room_suffix": "URL 房間後綴", "Use_Server_configuration": "使用伺服器設置", "Use_Room_configuration": "覆寫伺服器設置和使用房間設置", "Use_account_preference": "使用帳號偏好", @@ -3564,6 +3726,8 @@ "User_started_a_new_conversation": "__username__開始了新的對話", "User_unmuted_by": "使用者通過__user_unmuted__取消靜音__user_by__。", "User_unmuted_in_room": "使用者在房間內靜音", + "User__username__unmuted_in_room__roomName__": "使用者 __username__ 在房間 __roomName__ 中不靜音", + "User__username__muted_in_room__roomName__": "使用者 __username__ 在房間 __roomName__ 中已靜音", "User_updated_successfully": "使用者更新成功", "User_uploaded_a_file_on_channel": "__username____channel__ 上傳了一個檔案", "User_uploaded_a_file_to_you": "__username__ 寄了一個檔案給您", @@ -3608,6 +3772,7 @@ "UTF8_Names_Slugify": "UTF8 名稱 Slugify", "UTF8_Names_Validation": "UTF8 名稱驗證", "UTF8_Names_Validation_Description": "不要讓特殊字符和空格。您可以使用 - _和。但不是在名稱的末尾", + "Validation": "驗證", "Value_messages": "__value__條訊息", "Value_users": "__value__個使用者", "Validate_email_address": "驗證電子郵件地址", @@ -3622,6 +3787,7 @@ "Verify_your_email": "驗證您的電子郵件", "Verify_your_email_for_the_code_we_sent": "檢查您的電子郵件以取得我們發送的代碼", "Version": "版本", + "Version_version": "版本 __version__", "Videos": "影片", "Video Conference": "多人視訊", "Video_Chat_Window": "視訊聊天", @@ -3645,6 +3811,8 @@ "view-l-room": "檢視即時聊天 Room", "view-l-room_description": "允許檢視即時聊天頻道", "view-livechat-analytics": "檢視即時聊天分析", + "view-livechat-room-closed-by-another-agent": "查看被另一個代理關閉的Omnichannel Room", + "view-livechat-room-closed-same-department": "查看由同一部門中的另一個代理關閉的Omnichannel Room", "view-livechat-departments": "檢視即時聊天部門", "view-livechat-manager": "檢視即時聊天管理者", "view-livechat-manager_description": "允許檢視其他即時聊天管理者", @@ -3680,6 +3848,7 @@ "Visitor_Email": "訪客電子郵件", "Visitor_Info": "訪客資訊", "Visitor_Name": "訪客姓名", + "Visitor_Name_Placeholder": "請輸入訪客名稱...", "Visitor_Navigation": "訪客導航", "Visitor_page_URL": "訪客頁面網址", "Visitor_time_on_site": "訪客網站停留時間", @@ -3717,8 +3886,10 @@ "Welcome_to_the": "歡迎來到", "Where_are_the_messages_being_sent?": "訊息要發送到哪裡?", "When_is_the_chat_busier?": "什麼時候忙於聊天?", + "When_a_line_starts_with_one_of_there_words_post_to_the_URLs_below": "當一行以這些單詞之一開頭時,請發佈到以下網址", "Why_do_you_want_to_report_question_mark": "你為什麼要回報?", "will_be_able_to": "將能", + "Will_be_available_here_after_saving": "保存後將在此處可用。", "Worldwide": "全世界", "Would_you_like_to_return_the_inquiry": "你想回覆詢問嗎?", "Yes": "是", @@ -3726,6 +3897,7 @@ "Yes_archive_it": "是的,存檔它!", "Yes_clear_all": "是,清除全部!", "Yes_delete_it": "是的,刪除!", + "Yes_deactivate_it": "是的,將其停用!", "Yes_hide_it": "是的,隱藏它!", "Yes_leave_it": "是的,離開!", "Yes_mute_user": "是的,靜音的用戶!", diff --git a/packages/rocketchat-i18n/i18n/zh.i18n.json b/packages/rocketchat-i18n/i18n/zh.i18n.json index 1e4e7c66153d..b95124f9ff43 100644 --- a/packages/rocketchat-i18n/i18n/zh.i18n.json +++ b/packages/rocketchat-i18n/i18n/zh.i18n.json @@ -3,12 +3,14 @@ "500": "内部服务器错误", "#channel": "#频道", "0_Errors_Only": "0 - 仅错误 ", - "12_Hour": "12小时时钟", + "12_Hour": "12小时制", "1_Errors_and_Information": "1 - 错误和信息", - "24_Hour": "24小时时钟", + "24_Hour": "24小时制", "2_Erros_Information_and_Debug": "2 - 错误、信息和调试信息", "@username": "@用户名", "@username_message": "@用户名 ", + "__count__empty_rooms_will_be_removed_automatically": "__count__ 个空房间将会被自动移除。", + "__count__empty_rooms_will_be_removed_automatically__rooms__": "以下 __count__ 个空房间将会被自动移除:
    __rooms__", "__username__is_no_longer__role__defined_by__user_by_": "__user_by__ 已把 __username__ 从 __role__ 中移除", "__username__was_set__role__by__user_by_": "__username__ 被 __user_by__ 设为 __role__", "%_of_conversations": "% 的会话", @@ -28,10 +30,10 @@ "Accounts": "帐户", "Accounts_Admin_Email_Approval_Needed_Default": "

    用户[name]([email])已注册。

    请检查“管理->用户”将其激活或删除。

    ", "Accounts_Admin_Email_Approval_Needed_Subject_Default": "有新用户注册并需要批准", - "Accounts_Admin_Email_Approval_Needed_With_Reason_Default": "

    用户[name]([email])已被注册。

    原因:[原因]

    请检查“管理->用户”以激活或删除它。

    ", + "Accounts_Admin_Email_Approval_Needed_With_Reason_Default": "

    用户[name]([email])已被注册。

    原因:[reason]

    请检查“管理->用户”以激活或删除它。

    ", "Accounts_AllowAnonymousRead": "允许匿名阅读", "Accounts_AllowAnonymousWrite": "允许匿名写入", - "Accounts_AllowDeleteOwnAccount": "允许用户销毁自己的帐号", + "Accounts_AllowDeleteOwnAccount": "允许用户删除自己的帐号", "Accounts_AllowedDomainsList": "允许的域名列表", "Accounts_AllowedDomainsList_Description": "以逗号分隔的允许的域名列表", "Accounts_AllowEmailChange": "允许修改电子邮箱", @@ -42,21 +44,22 @@ "Accounts_AllowUsernameChange": "允许修改用户名", "Accounts_AllowUserProfileChange": "允许修改个人资料", "Accounts_AllowUserStatusMessageChange": "允许自定义状态信息", - "Accounts_AvatarBlockUnauthenticatedAccess": "阻止未认证用户访问头像", + "Accounts_AvatarBlockUnauthenticatedAccess": "拦截未认证用户访问头像", "Accounts_AvatarCacheTime": "头像缓存时间", "Accounts_AvatarCacheTime_description": "通知http协议缓存化身图像的秒数。", "Accounts_AvatarResize": "调整头像大小", - "Accounts_AvatarSize": "头像大小", + "Accounts_AvatarSize": "头像尺寸", "Accounts_AvatarExternalProviderUrl": "外部头像提供商的URL地址", - "Accounts_AvatarExternalProviderUrl_Description": "例如:`https://acme.com/api/v1/{username}`", + "Accounts_AvatarExternalProviderUrl_Description": "例:`https://acme.com/api/v1/{username}`", "Accounts_BlockedDomainsList": "已屏蔽域名列表", "Accounts_BlockedDomainsList_Description": "逗号分隔的屏蔽的域名列表", + "Block_Multiple_Failed_Logins_Ip_Whitelist": "IP白名单", "Accounts_BlockedUsernameList": "已屏蔽的用户名列表", "Accounts_BlockedUsernameList_Description": "以逗号分隔的已屏蔽用户名列表(不区分大小写)", "Accounts_CustomFields_Description": "应该为有效的 JSON 格式,键为字段名,值为该字段的设置项。例如:
    {\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n}", "Accounts_CustomFieldsToShowInUserInfo": "要在用户信息中显示的自定义信息", "Accounts_Default_User_Preferences": "默认用户首选项", - "Accounts_Default_User_Preferences_audioNotifications": "音频通知默认提醒", + "Accounts_Default_User_Preferences_audioNotifications": "通知音频提醒", "Accounts_Default_User_Preferences_desktopNotifications": "默认桌面通知", "Accounts_Default_User_Preferences_mobileNotifications": "默认手机通知", "Accounts_Default_User_Preferences_not_available": "无法检索用户首选项,因为它们尚未由用户设置", @@ -69,11 +72,12 @@ "Accounts_Email_Deactivated": "[name]

    您的帐户已被停用。

    ", "Accounts_Enrollment_Email_Default": "

    欢迎来到 [Site_Name]

    转到 [Site_URL] 并尝试当今最先进的开源聊天解决方案!

    ", "Accounts_Email_Deactivated_Subject": "帐户已停用", - "Accounts_EmailVerification": "Email 验证", + "Accounts_EmailVerification": "只允许已验证的用户登录", "Accounts_EmailVerification_Description": "要使用该功能,请确保 SMTP 设置正确", "Accounts_Enrollment_Email_Subject_Default": "欢迎访问 [Site_Name]", - "Accounts_Enrollment_Email": "注册邮件", + "Accounts_Enrollment_Email": "注册电子邮件", "Accounts_Enrollment_Email_Description": "你可以使用以下占位符:
    • 姓名[name]、名字[fname]或者姓氏 [lname]。
    • 邮箱[email]。
    • 网站名称[Site_Name]和网站地址[Site_URL]。
    ", + "Login_Logs_Enabled": "(在控制台上)显示尝试登录失败的日志", "Accounts_ForgetUserSessionOnWindowClose": "关闭窗口时自动注销用户", "Accounts_Iframe_api_method": "API 方法", "Accounts_Iframe_api_url": "API URL", @@ -449,7 +453,7 @@ "AutoTranslate_Change_Language_Description": "更改自动翻译不会翻译之前的消息。", "AutoTranslate_DeepL": "DeepL", "AutoTranslate_Enabled": "启用自动翻译", - "AutoTranslate_Enabled_Description": "开启自动翻译功能将允许用户获得自动翻译权限,所有消息都将被自动翻译成用户选择的语言。这可需要付费,请查阅 Google 文档", + "AutoTranslate_Enabled_Description": "启用自动翻译功能后,拥有auto-translate权限的用户可以将所有消息自动翻译成用户选择的语言。这可能需要付费。", "AutoTranslate_Google": "谷歌", "AutoTranslate_ServiceProvider": "服务提供者", "Available": "可用", @@ -487,7 +491,7 @@ "ban-user_description": "在频道中屏蔽用户的权限", "Beta_feature_Depends_on_Video_Conference_to_be_enabled": "测试功能。需要视频会议功能支持才能启用。", "Better": "更好", - "Best_first_response_time": "最优首次响应时间", + "Best_first_response_time": "最快首次响应时间", "Block_User": "屏蔽用户", "Blockchain": "区块链", "Blockstack_Auth_Description": "认证描述", @@ -665,7 +669,6 @@ "Cloud_register_offline_helper": "如果网络访问受到限制,可以手动注册工作区。复制下面的文字并转到Cloud Console以完成本次操作。", "Cloud_register_success": "您的工作区已成功注册!", "Cloud_register_error": "处理请求时出错。请稍后再试。", - "Cloud_connect_support": "如果你尚未收到注册邮件请检查上方邮件是否正确。仍有问题可获取支持于", "Cloud_console": "云控制台", "Cloud_Info": "云端资料", "Cloud_what_is_it": "这是什么?", @@ -1831,7 +1834,7 @@ "Mobex_sms_gateway_from_numbers_list_desc": "以逗号分隔的数字列表,用于发送全新的消息,例如:123456789, 123456788, 123456888", "Mobex_sms_gateway_password": "密码", "Mobex_sms_gateway_restful_address": "Mobex SMS REST API地址", - "Mobex_sms_gateway_restful_address_desc": "您 Mobex REST API 的 IP 或 Host。\n例如:`http://192.168.1.1:8080` 或 `https://www.example.com:8080`", + "Mobex_sms_gateway_restful_address_desc": "您 Mobex REST API 的 IP 或 Host。例:`http://192.168.1.1:8080` 或 `https://www.example.com:8080`", "Mobex_sms_gateway_username": "用户名", "Jitsi_Chrome_Extension": "Chrome 扩展标识", "Jitsi_Enabled_TokenAuth": "启用 JWT 验证", @@ -2104,7 +2107,8 @@ "Mailer_body_tags": "你必须使用 [unsubscribe] 作为取消订阅的链接。
    你可以使用 [name]、[fname] 和 [lname] 分别作为用户全名、名称或姓氏。
    你可以使用 [email] 作为用户的电子邮箱地址。", "Mailing": "邮件", "Make_Admin": "设置为管理员", - "Make_sure_you_have_a_copy_of_your_codes": "请确保您有一份代码副本:__codes__ 如果您无法访问您的身份验证器应用程序,则可以使用其中一个代码登录。", + "Make_sure_you_have_a_copy_of_your_codes_1": "请确保您有一份代码副本:", + "Make_sure_you_have_a_copy_of_your_codes_2": "如果您无法访问您的身份验证器应用程序,则可以使用其中一个代码登录。", "manage-apps": "管理应用", "manage-assets": "管理资产", "manage-assets_description": "管理服务器资产的权限", @@ -2329,7 +2333,7 @@ "New_role": "新角色", "New_Room_Notification": "新聊天室通知", "New_Trigger": "新的触发器", - "New_version_available_(s)": "有可用的新版本(%s)", + "New_version_available_(s)": "有可用的新版本(%s)", "New_videocall_request": "新的视频通话请求", "New_visitor_navigation": "新的导航:__history__", "Newer_than": "比...更新", @@ -2387,6 +2391,7 @@ "Number_of_federated_users": "联盟用户数量", "Number_of_federated_servers": "联合服务器数", "Number_of_messages": "消息条数", + "RetentionPolicy_DoNotExcludeDiscussion": "不除外讨论消息", "OAuth Apps": "OAuth 应用", "OAuth_Application": "OAuth 应用", "OAuth_Applications": "OAuth 应用", @@ -2397,6 +2402,7 @@ "Office_Hours": "工作时间", "Office_hours_enabled": "办公时间已启用", "Office_hours_updated": "办公时间更新", + "RetentionPolicy_ExcludePinned": "排除固定消息", "Offline": "离线", "Offline_DM_Email": "__user__ 请求和你直接对话", "Offline_Email_Subject_Description": "您可以使用以下占位符:
    • [Site_Name],[Site_URL],[User]&[Room]
    ", @@ -2482,7 +2488,7 @@ "Pinned_a_message": "已固定消息:", "Pinned_Messages": "已固定的信息", "PiwikAdditionalTrackers": "额外的Piwik网站", - "PiwikAdditionalTrackers_Description": "如果您想将相同的数据跟踪到不同的网站,请输入以下格式的Piwik网站网址和Si​​teID:[{“trackerURL”:“https://my.piwik.domain2/”,“siteId”:42}, {“trackerURL”:“https://my.piwik.domain3/”,“siteId”:15}]", + "PiwikAdditionalTrackers_Description": "如果您想将相同的数据跟踪到不同的网站,请输入以下格式的Piwik网站网址和SiteID:[{ \"trackerURL\" : \"https://my.piwik.domain3/\", \"siteId\" : 15 },{ \"trackerURL\" : \"https://my.piwik.domain2/\", \"siteId\" : 42 } ]", "PiwikAnalytics_cookieDomain": "所有子域", "PiwikAnalytics_cookieDomain_Description": "跟踪所有子域名的访问者", "PiwikAnalytics_domains": "隐藏传出链接", @@ -2684,7 +2690,6 @@ "Retail": "零售", "Retention_setting_changed_successfully": "保留策略设置已成功更改", "RetentionPolicy": "保留政策", - "RetentionPolicy_DoNotExcludeDiscussion": "不除外讨论消息", "RetentionPolicy_RoomWarning": "此会话中超过 __time__ 的消息将会自动删除", "RetentionPolicy_RoomWarning_Unpinned": "此会话中超过 __time__ 的未固定消息将会自动删除", "RetentionPolicy_RoomWarning_FilesOnly": "此会话中超过 __time__ 的文件将自动删除(消息保持不变)", @@ -2694,7 +2699,6 @@ "RetentionPolicy_AppliesToChannels": "适用于频道", "RetentionPolicy_AppliesToGroups": "适用于私人团体", "RetentionPolicy_AppliesToDMs": "适用于直接消息", - "RetentionPolicy_ExcludePinned": "排除固定消息", "RetentionPolicy_FilesOnly": "只删除文件", "RetentionPolicy_FilesOnly_Description": "只删除文件,邮件本身将保留在原位。", "RetentionPolicy_MaxAge": "消息保持时限", @@ -2777,7 +2781,7 @@ "SAML_Custom_Provider": "自定义供应商", "SAML_Custom_EMail_Field": "电子邮件字段名称", "SAML_Custom_user_data_fieldmap": "用户数据字段映射", - "SAML_Custom_user_data_fieldmap_description": "设置如何从SAML记录(一旦找到)中的记录填充用户帐户字段(例如电子邮件)。
    例如,`{\"cn\":\"name\", \"mail\":\"email\"}`将从cn属性中选择一个人的可读名称,并从mail属性中选择其电子邮件。
    Rocket.Chat中可以的属性包括:`name`、`email`和`username`,其他所有内容都将保存为`customFields`。
    您还可以使用正则表达式来获属性值,例如:`{\"NameID\": { \"field\": \"username\", \"regex\": \"(.*)@.+$\"}, \"email\": \"email\"}`", + "SAML_Custom_user_data_fieldmap_description": "设置如何从SAML记录(一旦找到)中的记录填充用户帐户字段(例如电子邮件)。 例如,`{\"cn\":\"name\", \"mail\":\"email\"}`将从cn属性中选择一个人的可读名称,并从mail属性中选择其电子邮件。
    Rocket.Chat中可以的属性包括:`name`、`email`和`username`,其他所有内容都将保存为`customFields`。
    您还可以使用正则表达式来获属性值,例如:`{\"NameID\": { \"field\": \"username\", \"regex\": \"(.*)@.+$\"}, \"email\": \"email\"}`", "SAML_Custom_Username_Field": "用户名字段名称", "SAML_Custom_Username_Normalize": "标准化用户名", "SAML_Custom_Username_Normalize_None": "没有规范化", @@ -2790,6 +2794,7 @@ "SAML_Default_User_Role_Description": "您可以制定多个身份,用逗号分隔。", "SAML_Role_Attribute_Name": "身份属性名", "SAML_Role_Attribute_Name_Description": "如果在SAML回应中找到此属性,则其值将用作新用户的角色名称。", + "SAML_Section_1_User_Interface": "用户界面", "Saturday": "星期六", "Save": "保存", "save-others-livechat-room-info": "保存其他即时聊天室信息", @@ -2802,7 +2807,7 @@ "Saved": "已保存", "Saving": "保存中", "Scan_QR_code": "使用Google身份验证器、Authy或Duo等身份验证器应用扫描这个二维码。它将显示一个6位数的代码,您需要在下面输入这串代码。", - "Scan_QR_code_alternative_s": "如果您无法扫描二维码,可以手动输入代码:__code__", + "Scan_QR_code_alternative_s": "如果您无法扫描二维码,可以手动输入代码:", "Scope": "范围", "Screen_Share": "屏幕共享", "Script_Enabled": "脚本已启用", @@ -2960,7 +2965,8 @@ "Snippeted_a_message": "创建了一个片段 __snippetLink__", "Social_Network": "社交网络", "Sorry_page_you_requested_does_not_exist_or_was_deleted": "对不起,您请求的网页不存在或被删除!", - "Sort": "分类", + "Sort": "排序", + "Sort_By": "排序方式", "Sort_by_activity": "按活动排序", "Sound": "声音", "Sound_File_mp3": "声音文件 (mp3)", @@ -3256,6 +3262,7 @@ "Update_to_version": "更新到 __version__", "Update_your_RocketChat": "更新你的 Rocket.Chat", "Updated_at": "更新于", + "Upload": "上传", "Upload_app": "上传应用", "Upload_file_description": "文件描述", "Upload_file_name": "文件名", @@ -3382,9 +3389,11 @@ "Verification_email_sent": "确认邮件已发送", "Verification_Email_Subject": "[Site_Name] - 验证你的账户", "Verified": "已验证", + "Not_verified": "未验证", "Verify": "验证", "Verify_your_email": "验证您的电子邮件", "Version": "版本", + "Version_version": "版本 __version__", "Videos": "视频", "Video Conference": "视频会议", "Video_Chat_Window": "视频聊天", @@ -3485,6 +3494,7 @@ "Yes_archive_it": "是的,存档!", "Yes_clear_all": "是,清除所有!", "Yes_delete_it": "确定,删除!", + "Yes_deactivate_it": "好,取消激活!", "Yes_hide_it": "确定,隐藏!", "Yes_leave_it": "确定,离开!", "Yes_mute_user": "确定,禁言该用户!", @@ -3516,6 +3526,7 @@ "You_need_to_type_in_your_username_in_order_to_do_this": "您需要输入您的用户名以便完成此操作!", "You_need_to_verifiy_your_email_address_to_get_notications": "您需要验证您的电子邮箱地址才能收到通知", "You_need_to_write_something": "你需要写一些东西!", + "You_reached_the_maximum_number_of_guest_users_allowed_by_your_license": "您的来宾用户数已经达到当前许可证的最大值。", "You_should_inform_one_url_at_least": "你应该定义至少一个URL。", "You_should_name_it_to_easily_manage_your_integrations": "为了方便管理您的集成,请给它命名。", "You_will_not_be_able_to_recover": "您将无法恢复此消息!", diff --git a/private/public/icons.svg b/private/public/icons.svg index a72e44e9f668..e9bf9f93bdf7 100644 --- a/private/public/icons.svg +++ b/private/public/icons.svg @@ -158,11 +158,8 @@ - - - - - + + diff --git a/public/lame.min.js b/public/lame.min.js deleted file mode 100644 index 8dc6b0726388..000000000000 --- a/public/lame.min.js +++ /dev/null @@ -1,307 +0,0 @@ -function lamejs(){function X(c){return new Int32Array(c)}function K(c){return new Float32Array(c)}function ca(c){if(1==c.length)return K(c[0]);var k=c[0];c=c.slice(1);for(var n=[],u=0;uf.sampleWindow-f.totsamp?f.sampleWindow-f.totsamp:d;if(lMAX_ORDER-l&&(g=MAX_ORDER-l)}else e=v+l,q=b,D=m+l,p=a;c(q,e,f.lstepbuf,f.lstep+f.totsamp,g,B[f.reqindex]);c(p,D,f.rstepbuf,f.rstep+f.totsamp,g,B[f.reqindex]);k(f.lstepbuf,f.lstep+f.totsamp,f.loutbuf,f.lout+f.totsamp,g,w[f.reqindex]);k(f.rstepbuf,f.rstep+f.totsamp,f.routbuf,f.rout+f.totsamp,g,w[f.reqindex]);e=f.lout+f.totsamp;q=f.loutbuf; -D=f.rout+f.totsamp;p=f.routbuf;for(var r=g%8;0!=r--;)f.lsum+=n(q[e++]),f.rsum+=n(p[D++]);for(r=g/8;0!=r--;)f.lsum+=n(q[e+0])+n(q[e+1])+n(q[e+2])+n(q[e+3])+n(q[e+4])+n(q[e+5])+n(q[e+6])+n(q[e+7]),e+=8,f.rsum+=n(p[D+0])+n(p[D+1])+n(p[D+2])+n(p[D+3])+n(p[D+4])+n(p[D+5])+n(p[D+6])+n(p[D+7]),D+=8;d-=g;l+=g;f.totsamp+=g;f.totsamp==f.sampleWindow&&(e=10*Y.STEPS_per_dB*Math.log10((f.lsum+f.rsum)/f.totsamp*.5+1E-37),e=0>=e?0:0|e,e>=f.A.length&&(e=f.A.length-1),f.A[e]++,f.lsum=f.rsum=0,T.arraycopy(f.loutbuf, -f.totsamp,f.loutbuf,0,MAX_ORDER),T.arraycopy(f.routbuf,f.totsamp,f.routbuf,0,MAX_ORDER),T.arraycopy(f.lstepbuf,f.totsamp,f.lstepbuf,0,MAX_ORDER),T.arraycopy(f.rstepbuf,f.totsamp,f.rstepbuf,0,MAX_ORDER),f.totsamp=0);if(f.totsamp>f.sampleWindow)return GAIN_ANALYSIS_ERROR}u=(m-=b[a])););b=64.82-a/Y.STEPS_per_dB}for(c=0;cf&&(f=0);9k&&(k+=64);b.exp_nspsytune|=k<<2}0!=a?b.quant_comp=f[m].quant_comp:0=c)return V(b,c,a);b.preset=0;return c}}function qb(){function u(a){this.bits=0|a}function k(a,d,p,b,e,c){d=.5946/d;for(a>>=1;0!=a--;)e[c++]=d>p[b++]? -0:1,e[c++]=d>p[b++]?0:1}function n(a,d,b,e,c,l){a>>=1;var h=a%2;for(a>>=1;0!=a--;){var p=b[e++]*d;var r=b[e++]*d;var t=0|p;var f=b[e++]*d;var g=0|r;var J=b[e++]*d;var D=0|f;p+=B.adj43[t];t=0|J;r+=B.adj43[g];c[l++]=0|p;f+=B.adj43[D];c[l++]=0|r;J+=B.adj43[t];c[l++]=0|f;c[l++]=0|J}0!=h&&(p=b[e++]*d,r=b[e++]*d,p+=B.adj43[0|p],r+=B.adj43[0|r],c[l++]=0|p,c[l++]=0|r)}function V(a,d,b,e){var p,c=d,h=p=0;do{var r=a[c++],l=a[c++];p>=16;p>a&&(p=a,d++);e.bits+=p;return d;case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:c=d;d=f[p-1];r=h=p=0;l=w.ht[d].xlen;var g=w.ht[d].hlen,D=w.ht[d+1].hlen,q=w.ht[d+2].hlen;do{var m=a[c+0]*l+a[c+1];c+=2;p+=g[m];h+=D[m];r+=q[m]}while(ch&&(p=h,a++);p>r&&(p=r,a=d+2);e.bits+=p;return a;default:if(p>ia.IXMAX_VAL)return e.bits=ia.LARGE_BITS,-1;p-=15;for(c=24;32>c&&!(w.ht[c].linmax>=p);c++);for(h=c-8;24>h&&!(w.ht[h].linmax>=p);h++);p=h;r=65536*w.ht[p].xlen+w.ht[c].xlen;h=0;do l=a[d++],g=a[d++],0!=l&&(14>=16;h>a&&(h=a,p=c);e.bits+=h;return p}}function E(a,d,p,b,e,l,h,g){for(var r=d.big_values,f=2;f=r)break;var t=e[f-2]+d.count1bits;if(p.part2_3_length<=t)break;t=new u(t);x=V(b,x,r,t);t=t.bits;p.part2_3_length<=t||(p.assign(d),p.part2_3_length=t,p.region0_count=l[f-2],p.region1_count=f-2-l[f-2],p.table_select[0]=h[f-2],p.table_select[1]=g[f-2],p.table_select[2]=x)}}var B=null;this.qupvt=null;this.setModules=function(a){B=this.qupvt=a};var ha=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]],f=[1,2, -5,7,7,10,10,13,13,13,13,13,13,13,13];this.noquant_count_bits=function(a,d,p){var b=d.l3_enc,e=Math.min(576,d.max_nonzero_coeff+2>>1<<1);null!=p&&(p.sfb_count1=0);for(;1h&&(f=h,d.count1table_select=1);d.count1bits=f;d.big_values=e;if(0==e)return f;d.block_type==c.SHORT_TYPE?(l=3*a.scalefac_band.s[3], -l>d.big_values&&(l=d.big_values),h=d.big_values):d.block_type==c.NORM_TYPE?(l=d.region0_count=a.bv_scf[e-2],h=d.region1_count=a.bv_scf[e-1],h=a.scalefac_band.l[l+h+2],l=a.scalefac_band.l[l+1],hh&&(l=h));l=Math.min(l,e);h=Math.min(h,e);0l)return ia.LARGE_BITS;l=B.IPOW20(e.global_gain);var h,f=0,g=0,r=0,D=0,m=0,q=p,v=0,C=d,I=0;var Q=null!=b&&e.global_gain==b.global_gain;var S=e.block_type==c.SHORT_TYPE?38:21;for(h=0;h<=S;h++){var u=-1;if(Q||e.block_type==c.NORM_TYPE)u= -e.global_gain-(e.scalefac[h]+(0!=e.preflag?B.pretab[h]:0)<e.max_nonzero_coeff&&(h=e.max_nonzero_coeff-f+1,na.fill(p,e.max_nonzero_coeff,576,0),Z=h,0>Z&&(Z=0),h=S+1);0==g&&0==r&&(q=p,v=m,C=d,I=D);null!=b&&0=b.sfb_count1&&0=b.step[h]?(0!=g&&(n(g,l,C,I,q,v),g=0,q=p,v=m,C=d,I=D),r+=Z):(0!=r&&(k(r,l,C,I,q,v),r=0,q= -p,v=m,C=d,I=D),g+=Z);if(0>=Z){0!=r&&(k(r,l,C,I,q,v),r=0);0!=g&&(n(g,l,C,I,q,v),g=0);break}}h<=S&&(m+=e.width[h],D+=e.width[h],f+=e.width[h])}0!=g&&n(g,l,C,I,q,v);0!=r&&k(r,l,C,I,q,v);if(0!=(a.substep_shaping&2))for(l=0,S=.634521682242439/B.IPOW20(e.global_gain+e.scalefac_scale),f=0;f=S?p[g]:0;return this.noquant_count_bits(a,e,b)};this.best_huffman_divide=function(a,d){var e=new rb,b=d.l3_enc,l=X(23),f=X(23), -h=X(23),g=X(23);if(d.block_type!=c.SHORT_TYPE||1!=a.mode_gr){e.assign(d);if(d.block_type==c.NORM_TYPE){for(var y=d.big_values,m=0;22>=m;m++)l[m]=ia.LARGE_BITS;for(m=0;16>m;m++){var D=a.scalefac_band.l[m+1];if(D>=y)break;var q=0,k=new u(q),v=V(b,0,D,k);q=k.bits;for(var C=0;8>C;C++){var I=a.scalefac_band.l[m+C+2];if(I>=y)break;k=q;k=new u(k);I=V(b,D,I,k);k=k.bits;l[m+C]>k&&(l[m+C]=k,f[m+C]=m,h[m+C]=v,g[m+C]=I)}}E(a,e,d,b,l,f,h,g)}y=e.big_values;if(!(0==y||1<(b[y-2]|b[y-1])||(y=d.count1+2,576e.big_values;y-=4)q=2*(2*(2*b[y-4]+b[y-3])+b[y-2])+b[y-1],m+=w.t32l[q],D+=w.t33l[q];e.big_values=y;e.count1table_select=0;m>D&&(m=D,e.count1table_select=1);e.count1bits=m;e.block_type==c.NORM_TYPE?E(a,e,d,b,l,f,h,g):(e.part2_3_length=m,m=a.scalefac_band.l[8],m>y&&(m=y),0m&&(a=new u(e.part2_3_length),e.table_select[1]=V(b,m,y,a),e.part2_3_length=a.bits),d.part2_3_length>e.part2_3_length&&d.assign(e))}}}; -var b=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],v=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],a=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],m=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];qb.slen1_tab=a;qb.slen2_tab=m;this.best_scalefac_store=function(d,e,p,l){var f=l.tt[e][p],g,h,r=0;for(g=h=0;gy&&0==f.l3_enc[y+h];y++);0==y&&(f.scalefac[g]=r=-2)}if(0==f.scalefac_scale&&0==f.preflag){for(g=h=0;g>=1);f.scalefac_scale=r=1}}if(0==f.preflag&&f.block_type!=c.SHORT_TYPE&&2==d.mode_gr){for(g=11;gg;g++)l.scfsi[p][g]=0;if(2==d.mode_gr&&1==e&&l.tt[0][p].block_type!=c.SHORT_TYPE&&l.tt[1][p].block_type!=c.SHORT_TYPE){e=l.tt[1][p];h=l.tt[0][p];for(r=0;rg;g++)-1!=e.scalefac[g]&&(l++,pr;r++)pg&&(e.part2_length=g,e.scalefac_compress=r));r=0}for(g=0;gd;d++)gm[d]&&(a.part2_length=m[d],a.scalefac_compress=d);return a.part2_length==ia.LARGE_BITS};var d=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(a,e){var b,f,l,m,h=X(4),x=e.scalefac;a=0!=e.preflag?2:0;for(l=0;4>l;l++)h[l]=0;if(e.block_type==c.SHORT_TYPE){var y=1;var k=B.nr_of_sfb_block[a][y]; -for(b=m=0;4>b;b++){var q=k[b]/3;for(l=0;lf;f++)x[3*m+f]>h[b]&&(h[b]=x[3*m+f])}}else for(y=0,k=B.nr_of_sfb_block[a][y],b=m=0;4>b;b++)for(q=k[b],l=0;lh[b]&&(h[b]=x[m]);q=!1;for(b=0;4>b;b++)h[b]>d[a][b]&&(q=!0);if(!q){e.sfb_partition_table=B.nr_of_sfb_block[a][y];for(b=0;4>b;b++)e.slen[b]=g[h[b]];y=e.slen[0];b=e.slen[1];h=e.slen[2];f=e.slen[3];switch(a){case 0:e.scalefac_compress=(5*y+b<<4)+(h<<2)+f;break;case 1:e.scalefac_compress=400+(5*y+b<<2)+h;break;case 2:e.scalefac_compress= -500+3*y+b;break;default:T.err.printf("intensity stereo not implemented yet\n")}}if(!q)for(b=e.part2_length=0;4>b;b++)e.part2_length+=e.slen[b]*e.sfb_partition_table[b];return q};var g=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(a){for(var d=2;576>=d;d+=2){for(var e=0,b;a.scalefac_band.l[++e]d;)b--;0>b&&(b=ha[e][0]);a.bv_scf[d-2]=b;for(b=ha[e][1];a.scalefac_band.l[b+a.bv_scf[d-2]+2]>d;)b--;0>b&&(b=ha[e][1]);a.bv_scf[d-1]=b}}}function xc(){var c; -this.setModules=function(k){c=k};this.ResvFrameBegin=function(k,n){var u=k.internal_flags,E=u.l3_side,B=c.getframebits(k);n.bits=(B-8*u.sideinfo_len)/u.mode_gr;var w=2048*u.mode_gr-8;if(320w&&(u.ResvMax=w);if(0>u.ResvMax||k.disable_reservoir)u.ResvMax=0;k=n.bits*u.mode_gr+Math.min(u.ResvSize,u.ResvMax);k>f&&(k=f);E.resvDrain_pre=0;null!=u.pinfo&& -(u.pinfo.mean_bits=n.bits/2,u.pinfo.resvsize=u.ResvSize);return k};this.ResvMaxBits=function(c,n,u,E){var k=c.internal_flags,w=k.ResvSize,f=k.ResvMax;0!=E&&(w+=n);0!=(k.substep_shaping&1)&&(f*=.9);u.bits=n;10*w>9*f?(E=w-9*f/10,u.bits+=E,k.substep_shaping|=128):(E=0,k.substep_shaping&=127,c.disable_reservoir||0!=(k.substep_shaping&1)||(u.bits-=.1*n));c=w<6*k.ResvMax/10?w:6*k.ResvMax/10;c-=E;0>c&&(c=0);return c};this.ResvAdjust=function(c,n){c.ResvSize-=n.part2_3_length+n.part2_length};this.ResvFrameEnd= -function(c,n){var k,u=c.l3_side;c.ResvSize+=n*c.mode_gr;n=0;u.resvDrain_post=0;u.resvDrain_pre=0;0!=(k=c.ResvSize%8)&&(n+=k);k=c.ResvSize-n-c.ResvMax;0>b<> -3]|=d>>e<<8-(b&7)-h;b+=h}a.header[a.h_ptr].ptr=b}function V(a,d){a<<=8;for(var e=0;8>e;e++)a<<=1,d<<=1,0!=((d^a)&65536)&&(d^=32773);return d}function E(a,d){var e=w.ht[d.count1table_select+32],b,h=0,c=d.big_values,g=d.big_values;for(b=(d.count1-d.big_values)/4;0d.xr[g+0]&&l++);p=d.l3_enc[c+1];0!=p&&(f+=4,l*=2,0>d.xr[g+1]&&l++);p=d.l3_enc[c+2];0!=p&&(f+=2,l*=2,0>d.xr[g+2]&&l++);p=d.l3_enc[c+3];0!=p&&(f++,l*=2,0>d.xr[g+3]&&l++);c+=4;g+=4;u(a,l+e.table[f], -e.hlen[f]);h+=e.hlen[f]}return h}function B(a,d,e,b,h){var c=w.ht[d],g=0;if(0==d)return g;for(;eh.xr[e]&&m++,l--);15h.xr[e+1]&&m++,l--);C=C*r+k;f-=l;l+=c.hlen[C];u(a,c.table[C],l);u(a,m,f);g+=l+f}return g}function K(a,d){var e=3*a.scalefac_band.s[3];e>d.big_values&&(e=d.big_values);var b=B(a,d.table_select[0],0,e,d);return b+=B(a, -d.table_select[1],e,d.big_values,d)}function f(a,d){var e=d.big_values;var b=d.region0_count+1;var h=a.scalefac_band.l[b];b+=d.region1_count+1;var c=a.scalefac_band.l[b];h>e&&(h=e);c>e&&(c=e);b=B(a,d.table_select[0],0,h,d);b+=B(a,d.table_select[1],h,c,d);return b+=B(a,d.table_select[2],c,e,d)}function b(){this.total=0}function v(d,e){var b=d.internal_flags;var c=b.w_ptr;var h=b.h_ptr-1;-1==h&&(h=da.MAX_HEADER_BUF-1);var l=b.header[h].write_timing-g;e.total=l;if(0<=l){var f=1+h-c;hl&&T.err.println("strange error flushing buffer ... \n");return l}var a=this,m=null,z=null,e=null,l=null;this.setModules=function(a,d,b,c){m=a;z=d;e=b;l=c};var d=null,g=0,q=0,D=0;this.getframebits=function(a){var d=a.internal_flags;return 8*(0|72E3*(a.version+1)*(0!=d.bitrate_index?w.bitrate_table[a.version][d.bitrate_index]:a.brate)/a.out_samplerate+d.padding)};this.CRC_writeheader= -function(a,d){var e=V(d[2]&255,65535);e=V(d[3]&255,e);for(var b=6;b>8);d[5]=byte(e&255)};this.flush_bitstream=function(a){var d=a.internal_flags,e;var c=d.l3_side;0>(e=v(a,new b))||(k(a,e),d.ResvSize=0,c.main_data_begin=0,d.findReplayGain&&(c=m.GetTitleGain(d.rgdata),d.RadioGain=Math.floor(10*c+.5)|0),d.findPeakSample&&(d.noclipGainChange=Math.ceil(200*Math.log10(d.PeakSample/32767))|0,0>h<a.out_samplerate?n(h,4094,12):n(h,4095,12);n(h,a.version,1);n(h,1,2);n(h,a.error_protection?0:1,1);n(h,h.bitrate_index,4);n(h,h.samplerate_index,2);n(h,h.padding,1);n(h,a.extension,1);n(h,a.mode.ordinal(),2);n(h,h.mode_ext,2);n(h,a.copyright,1);n(h,a.original,1);n(h,a.emphasis,2);a.error_protection&&n(h,0,16);if(1==a.version){n(h,m.main_data_begin,9);2==h.channels_out?n(h,m.private_bits,3):n(h,m.private_bits,5);for(y=0;yp;p++)n(h,m.scfsi[y][p], -1);for(p=0;2>p;p++)for(y=0;ym;m++)for(y=0;yQ;Q++){var w=C.sfb_partition_table[Q]/3,Z=C.slen[Q];for(I=0;IQ;Q++)for(w=C.sfb_partition_table[Q],Z=C.slen[Q],I=0;I ResvSize");8*e.main_data_begin!=d.ResvSize&&(T.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size: %d \nresv drain (post) %d \nresv drain (pre) %d \nheader and sideinfo: %d \ndata bits: %d \ntotal bits: %d (remainder: %d) \nbitsperframe: %d \n", -8*e.main_data_begin,d.ResvSize,e.resvDrain_post,e.resvDrain_pre,8*d.sideinfo_len,h-e.resvDrain_post-8*d.sideinfo_len,h,h%8,l),T.err.println("This is a fatal error. It has several possible causes:"),T.err.println("90%% LAME compiled with buggy version of gcc using advanced optimizations"),T.err.println(" 9%% Your system is overclocked"),T.err.println(" 1%% bug in LAME encoding library"),d.ResvSize=8*e.main_data_begin);if(1E9=g)return 0;if(0!=c&&g>c)return-1;T.arraycopy(d,0,e,b,g);q=-1;D=0;if(0!=h&&(c=X(1),c[0]=a.nMusicCRC,l.updateMusicCRC(c,e,b,g),a.nMusicCRC=c[0],0a.PeakSample?a.PeakSample=c[0][p]:-c[0][p]>a.PeakSample&&(a.PeakSample=-c[0][p]);if(1< -a.channels_out)for(p=0;pa.PeakSample?a.PeakSample=c[1][p]:-c[1][p]>a.PeakSample&&(a.PeakSample=-c[1][p])}if(a.findReplayGain&&m.AnalyzeSamples(a.rgdata,c[0],0,c[1],0,f,a.channels_out)==Y.GAIN_ANALYSIS_ERROR)return-6}}return g};this.init_bit_stream_w=function(a){d=new Int8Array(W.LAME_MAXMP3BUFFER);a.h_ptr=a.w_ptr=0;a.header[a.h_ptr].write_timing=0;q=-1;g=D=0}}function zb(){function c(a,b){var d=a[b+0]&255;d=d<<8|a[b+1]&255;d=d<<8|a[b+2]&255;return d=d<<8|a[b+3]&255}function k(a,b,d){a[b+ -0]=d>>24&255;a[b+1]=d>>16&255;a[b+2]=d>>8&255;a[b+3]=d&255}function n(a,b,d){a[b+0]=d>>8&255;a[b+1]=d&255}function V(a,b,d){return 255&(a<a.out_samplerate?0:1);b[1]=V(b[1],1,a.version);b[1]=V(b[1],2,1);b[1]=V(b[1],1,a.error_protection?0:1);b[2]=V(b[2],4,d.bitrate_index);b[2]=V(b[2],2,d.samplerate_index);b[2]=V(b[2],1,0);b[2]=V(b[2],1,a.extension);b[3]=V(b[3],2,a.mode.ordinal());b[3]=V(b[3], -2,d.mode_ext);b[3]=V(b[3],1,a.copyright);b[3]=V(b[3],1,a.original);b[3]=V(b[3],2,a.emphasis);b[0]=255;d=b[1]&241;var e=1==a.version?128:16E3>a.out_samplerate?32:64;a.VBR==G.vbr_off&&(e=a.brate);e=a.free_format?0:255&16*K.BitrateIndex(e,a.version,a.out_samplerate);b[1]=1==a.version?255&(d|10):255&(d|2);d=b[2]&13;b[2]=255&(e|d)}function B(a,b){return b=b>>8^z[(b^a)&255]}var K,f,b;this.setModules=function(a,c,d){K=a;f=c;b=d};var v=zb.NUMTOCENTRIES,a=zb.MAXFRAMESIZE,m=v+4+4+4+4+4+9+1+1+8+1+1+3+1+1+2+ -4+2+2,z=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8E3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16E3,65089,64001, -15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32E3,48577, -48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];this.addVbrFrame= -function(a){var b=a.internal_flags;var d=b.VBR_seek_table;a=w.bitrate_table[a.version][b.bitrate_index];d.nVbrNumFrames++;d.sum+=a;d.seen++;if(!(d.seen>3&1,f=a[d+2]>>2&3,m=a[d+3]>>6&3,p=a[d+2]>>4&15;p=w.bitrate_table[e][p];b.samprate=14==a[d+1]>>4?w.samplerate_table[2][f]:w.samplerate_table[e][f]; -f=d=0!=e?3!=m?d+36:d+21:3!=m?d+21:d+13;if(!(new String(a,f,4(),null)).equals("Xing")&&!(new String(a,f,4(),null)).equals("Info"))return null;d+=4;b.hId=e;f=b.flags=c(a,d);d+=4;0!=(f&1)&&(b.frames=c(a,d),d+=4);0!=(f&2)&&(b.bytes=c(a,d),d+=4);if(0!=(f&4)){if(null!=b.toc)for(m=0;m>4;p=(a[d+1]&15)<<8;p+=a[d+2]&255;if(0>e||3E3p||3E3b.out_samplerate?32:64;b.VBR==G.vbr_off&&(d=b.brate);d=72E3*(b.version+1)*d/b.out_samplerate;var c=e.sideinfo_len+m;e.VBR_seek_table.TotalFrameSize=d;if(da)b.bWriteVbrTag=!1;else for(e.VBR_seek_table.nVbrNumFrames=0,e.VBR_seek_table.nBytesWritten=0,e.VBR_seek_table.sum=0,e.VBR_seek_table.seen=0,e.VBR_seek_table.want=1,e.VBR_seek_table.pos=0,null==e.VBR_seek_table.bag&&(e.VBR_seek_table.bag= -new int[400],e.VBR_seek_table.size=400),d=new Int8Array(a),E(b,d),e=e.VBR_seek_table.TotalFrameSize,c=0;c=d.VBR_seek_table.pos)return 0;if(c.length=m.pos))for(l=1;lm.pos-1&&(p=m.pos-1);p=0|256*m.bag[p]/m.sum;255t.RadioGain&&(t.RadioGain=-510),w=11264,w=0<=t.RadioGain?w|t.RadioGain:w|512|-t.RadioGain);t.findPeakSample&&(z=Math.abs(0|t.PeakSample/32767*Math.pow(2,23)+.5));-1!=ma&&(0h&&(h=0);switch(a.mode){case MONO:Q=0;break;case STEREO:Q=1;break; -case DUAL_CHANNEL:Q=2;break;case JOINT_STEREO:Q=a.force_ms?4:3;break;default:Q=7}C=32E3>=a.in_samplerate?0:48E3==a.in_samplerate?2:48E3a.scale_right||a.disable_reservoir&&320>a.brate||a.noATH||a.ATHonly||0==L||32E3>=a.in_samplerate)F=1;O=O+(Q<<2)+(F<<5)+(C<<6);t=t.nMusicCRC;k(c,e+p,h);p+=4;for(h=0;9>h;h++)c[e+p+h]= -255&x.charAt(h);p+=9;c[e+p]=255&y;p++;c[e+p]=255&A;p++;k(c,e+p,z);p+=4;n(c,e+p,w);p+=2;n(c,e+p,0);p+=2;c[e+p]=255&I;p++;c[e+p]=255<=V?255:255&V;p++;c[e+p]=255&r>>4;c[e+p+1]=255&(r<<4)+(u>>8);c[e+p+2]=255&u;p+=3;c[e+p]=255&O;p++;c[e+p++]=0;n(c,e+p,a.preset);p+=2;k(c,e+p,m);p+=4;n(c,e+p,t);p+=2;for(a=0;a=b.internal_flags.VBR_seek_table.pos)return-1;c.seek(c.length());if(0==c.length())return-1;c.seek(0); -var d=new Int8Array(10);c.readFully(d);d=(new String(d,"ISO-8859-1")).startsWith("ID3")?0:((d[6]&127)<<21|(d[7]&127)<<14|(d[8]&127)<<7|d[9]&127)+d.length;c.seek(d);d=new Int8Array(a);b=getLameTagFrame(b,d);if(b>d.length)return-1;if(1>b)return 0;c.write(d,0,b);return 0}}function U(c,k,n,w){this.xlen=c;this.linmax=k;this.table=n;this.hlen=w}function xa(c){this.bits=c}function yc(){this.setModules=function(c,k){}}function sb(){this.bits=this.over_SSD=this.over_count=this.max_noise=this.tot_noise=this.over_noise= -0}function zc(){this.scale_right=this.scale_left=this.scale=this.out_samplerate=this.in_samplerate=this.num_channels=this.num_samples=this.class_id=0;this.decode_only=this.bWriteVbrTag=this.analysis=!1;this.quality=0;this.mode=la.STEREO;this.write_id3tag_automatic=this.decode_on_the_fly=this.findReplayGain=this.free_format=this.force_ms=!1;this.error_protection=this.emphasis=this.extension=this.original=this.copyright=this.compression_ratio=this.brate=0;this.disable_reservoir=this.strict_ISO=!1;this.quant_comp_short= -this.quant_comp=0;this.experimentalY=!1;this.preset=this.exp_nspsytune=this.experimentalZ=0;this.VBR=null;this.maskingadjust_short=this.maskingadjust=this.highpasswidth=this.lowpasswidth=this.highpassfreq=this.lowpassfreq=this.VBR_hard_min=this.VBR_max_bitrate_kbps=this.VBR_min_bitrate_kbps=this.VBR_mean_bitrate_kbps=this.VBR_q=this.VBR_q_frac=0;this.noATH=this.ATHshort=this.ATHonly=!1;this.athaa_sensitivity=this.athaa_loudapprox=this.athaa_type=this.ATHlower=this.ATHcurve=this.ATHtype=0;this.short_blocks= -null;this.useTemporal=!1;this.msfix=this.interChRatio=0;this.tune=!1;this.lame_allocated_gfp=this.frameNum=this.framesize=this.encoder_padding=this.encoder_delay=this.version=this.tune_value_a=0;this.internal_flags=null}function Ac(){this.linprebuf=K(2*Y.MAX_ORDER);this.linpre=0;this.lstepbuf=K(Y.MAX_SAMPLES_PER_WINDOW+Y.MAX_ORDER);this.lstep=0;this.loutbuf=K(Y.MAX_SAMPLES_PER_WINDOW+Y.MAX_ORDER);this.lout=0;this.rinprebuf=K(2*Y.MAX_ORDER);this.rinpre=0;this.rstepbuf=K(Y.MAX_SAMPLES_PER_WINDOW+Y.MAX_ORDER); -this.rstep=0;this.routbuf=K(Y.MAX_SAMPLES_PER_WINDOW+Y.MAX_ORDER);this.first=this.freqindex=this.rsum=this.lsum=this.totsamp=this.sampleWindow=this.rout=0;this.A=X(0|Y.STEPS_per_dB*Y.MAX_dB);this.B=X(0|Y.STEPS_per_dB*Y.MAX_dB)}function Bc(u){this.quantize=u;this.iteration_loop=function(k,n,u,w){var B=k.internal_flags,E=K(sa.SFBMAX),f=K(576),b=X(2),v=B.l3_side;var a=new xa(0);this.quantize.rv.ResvFrameBegin(k,a);a=a.bits;for(var m=0;m>2&63;32<=d&&(d-=64);g=Math.pow(10,d/4/10);d=b.exp_nspsytune>>8&63;32<=d&&(d-=64);q=Math.pow(10,d/4/10);d=b.exp_nspsytune>>14&63;32<=d&&(d-=64);k= -Math.pow(10,d/4/10);d=b.exp_nspsytune>>20&63;32<=d&&(d-=64);b=k*Math.pow(10,d/4/10);for(d=0;d=d?g:13>=d?q:20>=d?k:b,e.nsPsy.longfact[d]=p;for(d=0;d=d?g:10>=d?q:11>=d?k:b,e.nsPsy.shortfact[d]=p}};this.on_pe=function(a,b,d,c,f,m){var e=a.internal_flags,g=0,l=X(2),q;g=new xa(g);a=w.ResvMaxBits(a,c,g,m);g=g.bits;var h=g+a;h>da.MAX_BITS_PER_GRANULE&&(h=da.MAX_BITS_PER_GRANULE);for(q=m=0;q3*c/4&&(l[q]=3*c/4),0>l[q]&&(l[q]=0),l[q]+d[q]>da.MAX_BITS_PER_CHANNEL&&(l[q]=Math.max(0,da.MAX_BITS_PER_CHANNEL-d[q])),m+=l[q];if(m>a)for(q=0;qda.MAX_BITS_PER_GRANULE)for(q=0;qb&&(b=0);.5da.MAX_BITS_PER_CHANNEL- -a[0]&&(b=da.MAX_BITS_PER_CHANNEL-a[0]);0>b&&(b=0);125<=a[1]&&(125c&&(a[0]=c*a[0]/b,a[1]=c*a[1]/b)};this.athAdjust=function(a,b,d){b=aa.FAST_LOG10_X(b,10);a*=a;var c=0;b-=d;1E-20c&&(c=0);return Math.pow(10,.1*(b*c+(d+90.30873362-94.82444863)))};this.calc_xmin=function(a,b,d,f){var e=0,g=a.internal_flags,m,l=0,k=0,v=g.ATH,h=d.xr,x=a.VBR==G.vbr_mtrh?1:0,y=g.masking_lower;if(a.VBR== -G.vbr_mtrh||a.VBR==G.vbr_mt)y=1;for(m=0;m>1;var C=0;do{var I=h[l]*h[l];C+=I;B+=IA&&k++;m==c.SBPSY_l&&(u=A*g.nsPsy.longfact[m],BS;S++){C=0;z=n>>1;u=w/n;B=2.220446049250313E-16;do I=h[l]*h[l],C+=I,B+=Iw&&k++;Q==c.SBPSY_s&&(u=w*g.nsPsy.shortfact[Q],Bf[e-3+1]&&(f[e-3+1]+=(f[e-3]-f[e-3+1])*g.decay),f[e-3+1]>f[e-3+2]&&(f[e-3+2]+=(f[e-3+1]-f[e-3+2])*g.decay))}return k};this.calc_noise_core=function(a,b,d,c){var e=0,f=b.s,g=a.l3_enc;if(f>a.count1)for(;0!=d--;){var l=a.xr[f];f++;e+=l*l;l=a.xr[f];f++;e+=l*l}else if(f>a.big_values){var k=K(2);k[0]=0;for(k[1]=c;0!=d--;)l=Math.abs(a.xr[f])-k[g[f]],f++,e+=l*l,l=Math.abs(a.xr[f])- -k[g[f]],f++,e+=l*l}else for(;0!=d--;)l=Math.abs(a.xr[f])-m[g[f]]*c,f++,e+=l*l,l=Math.abs(a.xr[f])-m[g[f]]*c,f++,e+=l*l;b.s=f;return e};this.calc_noise=function(a,c,d,f,m){var e=0,g=0,l,q=0,u=0,h=0,x=-20,y=0,A=a.scalefac,n=0;for(l=f.over_SSD=0;l>1;y+a.width[l]> -a.max_nonzero_coeff&&(w=a.max_nonzero_coeff-y+1,w=0>1:0);y=new k(y);z=this.calc_noise_core(a,y,w,z);y=y.s;null!=m&&(m.step[l]=B,m.noise[l]=z);z=d[e++]=z/c[g++];z=aa.FAST_LOG10(Math.max(z,1E-20));null!=m&&(m.noise_log[l]=z)}null!=m&&(m.global_gain=a.global_gain);h+=z;0I;I++){k=0;for(C=B;Cf;++f){var a=c.tt[b][0].xr[f],m=c.tt[b][1].xr[f];c.tt[b][0].xr[f]=.5*(a+m)*aa.SQRT2; -c.tt[b][1].xr[f]=.5*(a-m)*aa.SQRT2}};this.init_xrpow=function(c,b,k){var a=0|b.max_nonzero_coeff;b.xrpow_max=0;na.fill(k,a,576,0);for(var f,v=f=0;v<=a;++v){var e=Math.abs(b.xr[v]);f+=e;k[v]=Math.sqrt(e*Math.sqrt(e));k[v]>b.xrpow_max&&(b.xrpow_max=k[v])}if(1E-20l;l++)for(var d=n;d=n;e--)if(Math.abs(a[e])l;l++)for(b=!1,m=c.PSFB12-1;0<=m&&!b;m--)for(n=3*f.scalefac_band.s[12]+(f.scalefac_band.s[13]-f.scalefac_band.s[12])*l+(f.scalefac_band.psfb12[m]-f.scalefac_band.psfb12[0]),e=n+(f.scalefac_band.psfb12[m+1]-f.scalefac_band.psfb12[m]),d=E.athAdjust(k.adjust,k.psfb12[m],k.floor),1E-12=n;e--)if(Math.abs(a[e])n;n++){var e=0;0!=b.l3_enc[n]&&(e=Math.abs(b.xr[n]));a[n]=e}n=0;e=8;b.block_type==c.SHORT_TYPE&&(e=6);do{var l,d,g=b.width[e];n+=g;if(!(1<=m[e]||(na.sort(a,n-g,g),qa.EQ(a[n-1],0)))){var q=(1-m[e])*k[e];var v=l=0;do{for(d= -1;v+dh?(z==u.BINSEARCH_DOWN&&(y=!0),y&&(x/=2),z=u.BINSEARCH_UP,H=x):(z==u.BINSEARCH_UP&&(y=!0),y&&(x/=2),z=u.BINSEARCH_DOWN,H=-x);b.global_gain+=H;0>b.global_gain&&(b.global_gain=0,y=!0);255h&&255>b.global_gain;)b.global_gain++,H=ha.count_bits(e,a,b,null);e.CurrentStep[m]=4<=A-b.global_gain?4:2;e.OldValue[m]=b.global_gain;b.part2_3_length=H;if(0==e.noise_shaping)return 100;E.calc_noise(b,n,g,q,v);q.bits=b.part2_3_length; -l.assign(b);m=0;for(T.arraycopy(a,0,d,0,576);!r;){do{h=new sb;y=255;x=0!=(e.substep_shaping&2)?20:3;if(e.sfb21_extra){if(1L;L++)C[Z+L]*=Q,C[Z+L]>O.xrpow_max&&(O.xrpow_max=C[Z+L]);if(2==I.noise_shaping_amp)break}}if(Q=k(A))A=!1;else if(Q=2==z.mode_gr?ha.scale_bitcount(A):ha.scale_bitcount_lsf(z,A)){if(1I;I++)H[O+I]*=1.2968395546510096,H[O+I]>Q.xrpow_max&&(Q.xrpow_max=H[O+I]);Q.scalefac[F]=C>>1}Q.preflag=0;Q.scalefac_scale=1;Q=!1}else if(A.block_type==c.SHORT_TYPE&&0I;I++){ma=S=0;for(H=O.sfb_lmax+I;HS&&8>ma)){if(7<=O.subblock_gain[I]){H= -!0;break b}O.subblock_gain[I]++;S=Q.scalefac_band.l[O.sfb_lmax];for(H=O.sfb_lmax+I;H>O.scalefac_scale,0<=Z)C[H]=Z,S+=3*ma;else{C[H]=0;Z=E.IPOW20(210+(Z<L;L++)F[S+L]*=Z,F[S+L]>O.xrpow_max&&(O.xrpow_max=F[S+L]);S+=ma*(3-I-1)}Z=E.IPOW20(202);S+=O.width[H]*(I+1);for(L=-O.width[H];0>L;L++)F[S+L]*=Z,F[S+L]>O.xrpow_max&&(O.xrpow_max=F[S+L])}}H=!1}Q=H||k(A)}Q||(Q=2==z.mode_gr?ha.scale_bitcount(A):ha.scale_bitcount_lsf(z, -A));A=!Q}else A=!0;if(!A)break;0!=l.scalefac_scale&&(y=254);A=B-l.part2_length;if(0>=A)break;for(;(l.part2_3_length=ha.count_bits(e,a,l,v))>A&&l.global_gain<=y;)l.global_gain++;if(l.global_gain>y)break;if(0==q.over_count){for(;(l.part2_3_length=ha.count_bits(e,a,l,v))>p&&l.global_gain<=y;)l.global_gain++;if(l.global_gain>y)break}E.calc_noise(l,n,g,h,v);h.bits=l.part2_3_length;z=b.block_type!=c.SHORT_TYPE?f.quant_comp:f.quant_comp_short;y=q;A=h;Q=l;H=g;switch(z){default:case 9:0A.max_noise&&10*A.max_noise+A.bits<=10*y.max_noise+y.bits;break;case 0:z=A.over_count=A.max_noise&&.2=A.max_noise&&0>y.max_noise&&y.max_noise>A.max_noise-.2&&A.tot_noise=A.max_noise&&0A.max_noise-.2&&A.tot_noiseA.max_noise-.1&&A.tot_noise+A.over_noiseA.max_noise-.15&&A.tot_noise+A.over_noise+A.over_noisex&&0== -q.over_count)break;if(3==e.noise_shaping_amp&&t&&30l.global_gain+l.scalefac_scale);3==e.noise_shaping_amp?t?r=!0:(l.assign(b),T.arraycopy(d,0,a,0,576),m=0,w=l.global_gain,t=!0):r=!0}f.VBR==G.vbr_rh||f.VBR==G.vbr_mtrh?T.arraycopy(d,0,a,0,576):0!=(e.substep_shaping&1)&&trancate_smallspectrums(e,b,n,a);return q.over_count};this.iteration_finish_one=function(c,b,k){var a=c.l3_side,f=a.tt[b][k];ha.best_scalefac_store(c,b,k,a);1== -c.use_best_huffman&&ha.best_huffman_divide(c,f);w.ResvAdjust(c,f)};this.VBR_encode_granule=function(c,b,k,a,m,n,e){var f=c.internal_flags,d=new rb,g=K(576),q=e,v=(e+n)/2,p=0,r=f.sfb21_extra;na.fill(d.l3_enc,0);do{f.sfb21_extra=v>q-42?!1:r;var t=outer_loop(c,b,k,a,m,v);0>=t?(p=1,e=b.part2_3_length,d.assign(b),T.arraycopy(a,0,g,0,576),e-=32,t=e-n,v=(e+n)/2):(n=v+32,t=e-n,v=(e+n)/2,0!=p&&(p=2,b.assign(d),T.arraycopy(g,0,a,0,576)))}while(12n[g.VBR_max_bitrate]&& -(l[r][t]*=n[g.VBR_max_bitrate],l[r][t]/=v),e[r][t]>l[r][t]&&(e[r][t]=l[r][t]);return q};this.bitpressure_strategy=function(f,b,k,a){for(var m=0;mq&&(n[m][v]*=q,n[m][v]/=g);return l};this.calc_target_bits=function(f,b,k,a,m,u){var e=f.internal_flags,l=e.l3_side;e.bitrate_index=e.VBR_max_bitrate;var d=new xa(0);u[0]=w.ResvFrameBegin(f,d);e.bitrate_index=1;d=n.getframebits(f)-8*e.sideinfo_len;m[0]=d/(e.mode_gr*e.channels_out);d=f.VBR_mean_bitrate_kbps*f.framesize*1E3;0!=(e.substep_shaping&1)&&(d*=1.09);d/=f.out_samplerate; -d-=8*e.sideinfo_len;d/=e.mode_gr*e.channels_out;var g=.93+.07*(11-f.compression_ratio)/5.5;.9>g&&(g=.9);13*d/2?v=3*d/2:0>v&&(v=0);a[f][m]+=v}a[f][m]>da.MAX_BITS_PER_CHANNEL&&(a[f][m]=da.MAX_BITS_PER_CHANNEL);q+=a[f][m]}if(q>da.MAX_BITS_PER_GRANULE)for(m=0;mda.MAX_BITS_PER_CHANNEL&&(a[f][m]=da.MAX_BITS_PER_CHANNEL),b+=a[f][m];if(b>u[0])for(f=0;fe;e++){var l=k[f+-10];var d=b[n+-224]*l;var g=b[c+224]*l;l=k[f+-9];d+=b[n+-160]* -l;g+=b[c+160]*l;l=k[f+-8];d+=b[n+-96]*l;g+=b[c+96]*l;l=k[f+-7];d+=b[n+-32]*l;g+=b[c+32]*l;l=k[f+-6];d+=b[n+32]*l;g+=b[c+-32]*l;l=k[f+-5];d+=b[n+96]*l;g+=b[c+-96]*l;l=k[f+-4];d+=b[n+160]*l;g+=b[c+-160]*l;l=k[f+-3];d+=b[n+224]*l;g+=b[c+-224]*l;l=k[f+-2];d+=b[c+-256]*l;g-=b[n+256]*l;l=k[f+-1];d+=b[c+-192]*l;g-=b[n+192]*l;l=k[f+0];d+=b[c+-128]*l;g-=b[n+128]*l;l=k[f+1];d+=b[c+-64]*l;g-=b[n+64]*l;l=k[f+2];d+=b[c+0]*l;g-=b[n+0]*l;l=k[f+3];d+=b[c+64]*l;g-=b[n+-64]*l;l=k[f+4];d+=b[c+128]*l;g-=b[n+-128]*l; -l=k[f+5];d+=b[c+192]*l;g-=b[n+-192]*l;d*=k[f+6];l=g-d;a[30+2*e]=g+d;a[31+2*e]=k[f+7]*l;f+=18;c--;n++}g=b[c+-16]*k[f+-10];d=b[c+-32]*k[f+-2];g+=(b[c+-48]-b[c+16])*k[f+-9];d+=b[c+-96]*k[f+-1];g+=(b[c+-80]+b[c+48])*k[f+-8];d+=b[c+-160]*k[f+0];g+=(b[c+-112]-b[c+80])*k[f+-7];d+=b[c+-224]*k[f+1];g+=(b[c+-144]+b[c+112])*k[f+-6];d-=b[c+32]*k[f+2];g+=(b[c+-176]-b[c+144])*k[f+-5];d-=b[c+96]*k[f+3];g+=(b[c+-208]+b[c+176])*k[f+-4];d-=b[c+160]*k[f+4];g+=(b[c+-240]-b[c+208])*k[f+-3];d-=b[c+224];b=d-g;c=d+g;g=a[14]; -d=a[15]-g;a[31]=c+g;a[30]=b+d;a[15]=b-d;a[14]=c-g;d=a[28]-a[0];a[0]+=a[28];a[28]=d*k[f+-36+7];d=a[29]-a[1];a[1]+=a[29];a[29]=d*k[f+-36+7];d=a[26]-a[2];a[2]+=a[26];a[26]=d*k[f+-72+7];d=a[27]-a[3];a[3]+=a[27];a[27]=d*k[f+-72+7];d=a[24]-a[4];a[4]+=a[24];a[24]=d*k[f+-108+7];d=a[25]-a[5];a[5]+=a[25];a[25]=d*k[f+-108+7];d=a[22]-a[6];a[6]+=a[22];a[22]=d*aa.SQRT2;d=a[23]-a[7];a[7]+=a[23];a[23]=d*aa.SQRT2-a[7];a[7]-=a[6];a[22]-=a[7];a[23]-=a[22];d=a[6];a[6]=a[31]-d;a[31]+=d;d=a[7];a[7]=a[30]-d;a[30]+=d;d= -a[22];a[22]=a[15]-d;a[15]+=d;d=a[23];a[23]=a[14]-d;a[14]+=d;d=a[20]-a[8];a[8]+=a[20];a[20]=d*k[f+-180+7];d=a[21]-a[9];a[9]+=a[21];a[21]=d*k[f+-180+7];d=a[18]-a[10];a[10]+=a[18];a[18]=d*k[f+-216+7];d=a[19]-a[11];a[11]+=a[19];a[19]=d*k[f+-216+7];d=a[16]-a[12];a[12]+=a[16];a[16]=d*k[f+-252+7];d=a[17]-a[13];a[13]+=a[17];a[17]=d*k[f+-252+7];d=-a[20]+a[24];a[20]+=a[24];a[24]=d*k[f+-216+7];d=-a[21]+a[25];a[21]+=a[25];a[25]=d*k[f+-216+7];d=a[4]-a[8];a[4]+=a[8];a[8]=d*k[f+-216+7];d=a[5]-a[9];a[5]+=a[9];a[9]= -d*k[f+-216+7];d=a[0]-a[12];a[0]+=a[12];a[12]=d*k[f+-72+7];d=a[1]-a[13];a[1]+=a[13];a[13]=d*k[f+-72+7];d=a[16]-a[28];a[16]+=a[28];a[28]=d*k[f+-72+7];d=-a[17]+a[29];a[17]+=a[29];a[29]=d*k[f+-72+7];d=aa.SQRT2*(a[2]-a[10]);a[2]+=a[10];a[10]=d;d=aa.SQRT2*(a[3]-a[11]);a[3]+=a[11];a[11]=d;d=aa.SQRT2*(-a[18]+a[26]);a[18]+=a[26];a[26]=d-a[18];d=aa.SQRT2*(-a[19]+a[27]);a[19]+=a[27];a[27]=d-a[19];d=a[2];a[19]-=a[3];a[3]-=d;a[2]=a[31]-d;a[31]+=d;d=a[3];a[11]-=a[19];a[18]-=d;a[3]=a[30]-d;a[30]+=d;d=a[18];a[27]-= -a[11];a[19]-=d;a[18]=a[15]-d;a[15]+=d;d=a[19];a[10]-=d;a[19]=a[14]-d;a[14]+=d;d=a[10];a[11]-=d;a[10]=a[23]-d;a[23]+=d;d=a[11];a[26]-=d;a[11]=a[22]-d;a[22]+=d;d=a[26];a[27]-=d;a[26]=a[7]-d;a[7]+=d;d=a[27];a[27]=a[6]-d;a[6]+=d;d=aa.SQRT2*(a[0]-a[4]);a[0]+=a[4];a[4]=d;d=aa.SQRT2*(a[1]-a[5]);a[1]+=a[5];a[5]=d;d=aa.SQRT2*(a[16]-a[20]);a[16]+=a[20];a[20]=d;d=aa.SQRT2*(a[17]-a[21]);a[17]+=a[21];a[21]=d;d=-aa.SQRT2*(a[8]-a[12]);a[8]+=a[12];a[12]=d-a[8];d=-aa.SQRT2*(a[9]-a[13]);a[9]+=a[13];a[13]=d-a[9];d= --aa.SQRT2*(a[25]-a[29]);a[25]+=a[29];a[29]=d-a[25];d=-aa.SQRT2*(a[24]+a[28]);a[24]-=a[28];a[28]=d-a[24];d=a[24]-a[16];a[24]=d;d=a[20]-d;a[20]=d;d=a[28]-d;a[28]=d;d=a[25]-a[17];a[25]=d;d=a[21]-d;a[21]=d;d=a[29]-d;a[29]=d;d=a[17]-a[1];a[17]=d;d=a[9]-d;a[9]=d;d=a[25]-d;a[25]=d;d=a[5]-d;a[5]=d;d=a[21]-d;a[21]=d;d=a[13]-d;a[13]=d;d=a[29]-d;a[29]=d;d=a[1]-a[0];a[1]=d;d=a[16]-d;a[16]=d;d=a[17]-d;a[17]=d;d=a[8]-d;a[8]=d;d=a[9]-d;a[9]=d;d=a[24]-d;a[24]=d;d=a[25]-d;a[25]=d;d=a[4]-d;a[4]=d;d=a[5]-d;a[5]=d;d= -a[20]-d;a[20]=d;d=a[21]-d;a[21]=d;d=a[12]-d;a[12]=d;d=a[13]-d;a[13]=d;d=a[28]-d;a[28]=d;d=a[29]-d;a[29]=d;d=a[0];a[0]+=a[31];a[31]-=d;d=a[1];a[1]+=a[30];a[30]-=d;d=a[16];a[16]+=a[15];a[15]-=d;d=a[17];a[17]+=a[14];a[14]-=d;d=a[8];a[8]+=a[23];a[23]-=d;d=a[9];a[9]+=a[22];a[22]-=d;d=a[24];a[24]+=a[7];a[7]-=d;d=a[25];a[25]+=a[6];a[6]-=d;d=a[4];a[4]+=a[27];a[27]-=d;d=a[5];a[5]+=a[26];a[26]-=d;d=a[20];a[20]+=a[11];a[11]-=d;d=a[21];a[21]+=a[10];a[10]-=d;d=a[12];a[12]+=a[19];a[19]-=d;d=a[13];a[13]+=a[18]; -a[18]-=d;d=a[28];a[28]+=a[3];a[3]-=d;d=a[29];a[29]+=a[2];a[2]-=d}var k=[-.1482523854003001,32.308141959636465,296.40344946382766,883.1344870032432,11113.947376231741,1057.2713659324597,305.7402417275812,30.825928907280012,3.8533188138216365,59.42900443849514,709.5899960123345,5281.91112291017,-5829.66483675846,-817.6293103748613,-76.91656988279972,-4.594269939176596,.9063471690191471,.1960342806591213,-.15466694054279598,34.324387823855965,301.8067566458425,817.599602898885,11573.795901679885,1181.2520595540152, -321.59731579894424,31.232021761053772,3.7107095756221318,53.650946155329365,684.167428119626,5224.56624370173,-6366.391851890084,-908.9766368219582,-89.83068876699639,-5.411397422890401,.8206787908286602,.3901806440322567,-.16070888947830023,36.147034243915876,304.11815768187864,732.7429163887613,11989.60988270091,1300.012278487897,335.28490093152146,31.48816102859945,3.373875931311736,47.232241542899175,652.7371796173471,5132.414255594984,-6909.087078780055,-1001.9990371107289,-103.62185754286375, --6.104916304710272,.7416505462720353,.5805693545089249,-.16636367662261495,37.751650073343995,303.01103387567713,627.9747488785183,12358.763425278165,1412.2779918482834,346.7496836825721,31.598286663170416,3.1598635433980946,40.57878626349686,616.1671130880391,5007.833007176154,-7454.040671756168,-1095.7960341867115,-118.24411666465777,-6.818469345853504,.6681786379192989,.7653668647301797,-.1716176790982088,39.11551877123304,298.3413246578966,503.5259106886539,12679.589408408976,1516.5821921214542, -355.9850766329023,31.395241710249053,2.9164211881972335,33.79716964664243,574.8943997801362,4853.234992253242,-7997.57021486075,-1189.7624067269965,-133.6444792601766,-7.7202770609839915,.5993769336819237,.9427934736519954,-.17645823955292173,40.21879108166477,289.9982036694474,359.3226160751053,12950.259102786438,1612.1013903507662,362.85067106591504,31.045922092242872,2.822222032597987,26.988862316190684,529.8996541764288,4671.371946949588,-8535.899136645805,-1282.5898586244496,-149.58553632943463, --8.643494270763135,.5345111359507916,1.111140466039205,-.36174739330527045,41.04429910497807,277.5463268268618,195.6386023135583,13169.43812144731,1697.6433561479398,367.40983966190305,30.557037410382826,2.531473372857427,20.070154905927314,481.50208566532336,4464.970341588308,-9065.36882077239,-1373.62841526722,-166.1660487028118,-9.58289321133207,.4729647758913199,1.268786568327291,-.36970682634889585,41.393213350082036,261.2935935556502,12.935476055240873,13336.131683328815,1772.508612059496,369.76534388639965, -29.751323653701338,2.4023193045459172,13.304795348228817,430.5615775526625,4237.0568611071185,-9581.931701634761,-1461.6913552409758,-183.12733958476446,-10.718010163869403,.41421356237309503,1.414213562373095,-.37677560326535325,41.619486213528496,241.05423794991074,-187.94665032361226,13450.063605744153,1836.153896465782,369.4908799925761,29.001847876923147,2.0714759319987186,6.779591200894186,377.7767837205709,3990.386575512536,-10081.709459700915,-1545.947424837898,-200.3762958015653,-11.864482073055006, -.3578057213145241,1.546020906725474,-.3829366947518991,41.1516456456653,216.47684307105183,-406.1569483347166,13511.136535077321,1887.8076599260432,367.3025214564151,28.136213436723654,1.913880671464418,.3829366947518991,323.85365704338597,3728.1472257487526,-10561.233882199509,-1625.2025997821418,-217.62525175416,-13.015432208941645,.3033466836073424,1.66293922460509,-.5822628872992417,40.35639251440489,188.20071124269245,-640.2706748618148,13519.21490106562,1927.6022433578062,362.8197642637487, -26.968821921868447,1.7463817695935329,-5.62650678237171,269.3016715297017,3453.386536448852,-11016.145278780888,-1698.6569643425091,-234.7658734267683,-14.16351421663124,.2504869601913055,1.76384252869671,-.5887180101749253,39.23429103868072,155.76096234403798,-889.2492977967378,13475.470561874661,1955.0535223723712,356.4450994756727,25.894952980042156,1.5695032905781554,-11.181939564328772,214.80884394039484,3169.1640829158237,-11443.321309975563,-1765.1588461316153,-251.68908574481912,-15.49755935939164, -.198912367379658,1.847759065022573,-.7912582233652842,37.39369355329111,119.699486012458,-1151.0956593239027,13380.446257078214,1970.3952110853447,348.01959814116185,24.731487364283044,1.3850130831637748,-16.421408865300393,161.05030052864092,2878.3322807850063,-11838.991423510031,-1823.985884688674,-268.2854986386903,-16.81724543849939,.1483359875383474,1.913880671464418,-.7960642926861912,35.2322109610459,80.01928065061526,-1424.0212633405113,13235.794061869668,1973.804052543835,337.9908651258184, -23.289159354463873,1.3934255946442087,-21.099669467133474,108.48348407242611,2583.700758091299,-12199.726194855148,-1874.2780658979746,-284.2467154529415,-18.11369784385905,.09849140335716425,1.961570560806461,-.998795456205172,32.56307803611191,36.958364584370486,-1706.075448829146,13043.287458812016,1965.3831106103316,326.43182772364605,22.175018750622293,1.198638339011324,-25.371248002043963,57.53505923036915,2288.41886619975,-12522.674544337233,-1914.8400385312243,-299.26241273417224,-19.37805630698734, -.04912684976946725,1.990369453344394,.0178904535*aa.SQRT2/2.384E-6,.008938074*aa.SQRT2/2.384E-6,.0015673635*aa.SQRT2/2.384E-6,.001228571*aa.SQRT2/2.384E-6,4.856585E-4*aa.SQRT2/2.384E-6,1.09434E-4*aa.SQRT2/2.384E-6,5.0783E-5*aa.SQRT2/2.384E-6,6.914E-6*aa.SQRT2/2.384E-6,12804.797818791945,1945.5515939597317,313.4244966442953,20.801593959731544,1995.1556208053692,9.000838926174497,-29.20218120805369],n=[[2.382191739347913E-13,6.423305872147834E-13,9.400849094049688E-13,1.122435026096556E-12,1.183840321267481E-12, -1.122435026096556E-12,9.40084909404969E-13,6.423305872147839E-13,2.382191739347918E-13,5.456116108943412E-12,4.878985199565852E-12,4.240448995017367E-12,3.559909094758252E-12,2.858043359288075E-12,2.156177623817898E-12,1.475637723558783E-12,8.371015190102974E-13,2.599706096327376E-13,-5.456116108943412E-12,-4.878985199565852E-12,-4.240448995017367E-12,-3.559909094758252E-12,-2.858043359288076E-12,-2.156177623817898E-12,-1.475637723558783E-12,-8.371015190102975E-13,-2.599706096327376E-13,-2.382191739347923E-13, --6.423305872147843E-13,-9.400849094049696E-13,-1.122435026096556E-12,-1.183840321267481E-12,-1.122435026096556E-12,-9.400849094049694E-13,-6.42330587214784E-13,-2.382191739347918E-13],[2.382191739347913E-13,6.423305872147834E-13,9.400849094049688E-13,1.122435026096556E-12,1.183840321267481E-12,1.122435026096556E-12,9.400849094049688E-13,6.423305872147841E-13,2.382191739347918E-13,5.456116108943413E-12,4.878985199565852E-12,4.240448995017367E-12,3.559909094758253E-12,2.858043359288075E-12,2.156177623817898E-12, -1.475637723558782E-12,8.371015190102975E-13,2.599706096327376E-13,-5.461314069809755E-12,-4.921085770524055E-12,-4.343405037091838E-12,-3.732668368707687E-12,-3.093523840190885E-12,-2.430835727329465E-12,-1.734679010007751E-12,-9.74825365660928E-13,-2.797435120168326E-13,0,0,0,0,0,0,-2.283748241799531E-13,-4.037858874020686E-13,-2.146547464825323E-13],[.1316524975873958,.414213562373095,.7673269879789602,1.091308501069271,1.303225372841206,1.56968557711749,1.920982126971166,2.414213562373094,3.171594802363212, -4.510708503662055,7.595754112725146,22.90376554843115,.984807753012208,.6427876096865394,.3420201433256688,.9396926207859084,-.1736481776669303,-.7660444431189779,.8660254037844387,.5,-.5144957554275265,-.4717319685649723,-.3133774542039019,-.1819131996109812,-.09457419252642064,-.04096558288530405,-.01419856857247115,-.003699974673760037,.8574929257125442,.8817419973177052,.9496286491027329,.9833145924917901,.9955178160675857,.9991605581781475,.999899195244447,.9999931550702802],[0,0,0,0,0,0,2.283748241799531E-13, -4.037858874020686E-13,2.146547464825323E-13,5.461314069809755E-12,4.921085770524055E-12,4.343405037091838E-12,3.732668368707687E-12,3.093523840190885E-12,2.430835727329466E-12,1.734679010007751E-12,9.74825365660928E-13,2.797435120168326E-13,-5.456116108943413E-12,-4.878985199565852E-12,-4.240448995017367E-12,-3.559909094758253E-12,-2.858043359288075E-12,-2.156177623817898E-12,-1.475637723558782E-12,-8.371015190102975E-13,-2.599706096327376E-13,-2.382191739347913E-13,-6.423305872147834E-13,-9.400849094049688E-13, --1.122435026096556E-12,-1.183840321267481E-12,-1.122435026096556E-12,-9.400849094049688E-13,-6.423305872147841E-13,-2.382191739347918E-13]],w=n[c.SHORT_TYPE],E=n[c.SHORT_TYPE],B=n[c.SHORT_TYPE],G=n[c.SHORT_TYPE],f=[0,1,16,17,8,9,24,25,4,5,20,21,12,13,28,29,2,3,18,19,10,11,26,27,6,7,22,23,14,15,30,31];this.mdct_sub48=function(b,k,a){for(var m=286,v=0;vr;r++)for(u(k,m,D[p]),u(k, -m+32,D[p+1]),p+=2,m+=64,l=1;32>l;l+=2)D[p-1][l]*=-1;for(l=0;32>l;l++,q+=18){D=d.block_type;p=b.sb_sample[v][e];var t=b.sb_sample[v][1-e];0!=d.mixed_block_flag&&2>l&&(D=0);if(1E-12>b.amp_filter[l])na.fill(g,q+0,q+18,0);else{if(1>b.amp_filter[l])for(r=0;18>r;r++)t[r][f[l]]*=b.amp_filter[l];if(D==c.SHORT_TYPE){for(r=-3;0>r;r++){var J=n[c.SHORT_TYPE][r+3];g[q+3*r+9]=p[9+r][f[l]]*J-p[8-r][f[l]];g[q+3*r+18]=p[14-r][f[l]]*J+p[15+r][f[l]];g[q+3*r+10]=p[15+r][f[l]]*J-p[14-r][f[l]];g[q+3*r+19]=t[2-r][f[l]]* -J+t[3+r][f[l]];g[q+3*r+11]=t[3+r][f[l]]*J-t[2-r][f[l]];g[q+3*r+20]=t[8-r][f[l]]*J+t[9+r][f[l]]}r=g;p=q;for(J=0;3>J;J++){var h=r[p+6]*n[c.SHORT_TYPE][0]-r[p+15];t=r[p+0]*n[c.SHORT_TYPE][2]-r[p+9];var x=h+t;var y=h-t;h=r[p+15]*n[c.SHORT_TYPE][0]+r[p+6];t=r[p+9]*n[c.SHORT_TYPE][2]+r[p+0];var A=h+t;var N=-h+t;t=2.069978111953089E-11*(r[p+3]*n[c.SHORT_TYPE][1]-r[p+12]);h=2.069978111953089E-11*(r[p+12]*n[c.SHORT_TYPE][1]+r[p+3]);r[p+0]=1.90752519173728E-11*x+t;r[p+15]=1.90752519173728E-11*-A+h;y*=1.6519652744032674E-11; -A=9.537625958686404E-12*A+h;r[p+3]=y-A;r[p+6]=y+A;x=9.537625958686404E-12*x-t;N*=1.6519652744032674E-11;r[p+9]=x+N;r[p+12]=x-N;p++}}else{J=K(18);for(r=-9;0>r;r++)x=n[D][r+27]*t[r+9][f[l]]+n[D][r+36]*t[8-r][f[l]],y=n[D][r+9]*p[r+9][f[l]]-n[D][r+18]*p[8-r][f[l]],J[r+9]=x-y*w[3+r+9],J[r+18]=x*w[3+r+9]+y;r=g;p=q;x=J;var H=x[17]-x[9];var O=x[15]-x[11];var F=x[14]-x[12];N=x[0]+x[8];A=x[1]+x[7];h=x[2]+x[6];y=x[3]+x[5];r[p+17]=N+h-y-(A-x[4]);J=(N+h-y)*E[19]+(A-x[4]);t=(H-O-F)*E[18];r[p+5]=t+J;r[p+6]=t-J; -var C=(x[16]-x[10])*E[18];A=A*E[19]+x[4];t=H*E[12]+C+O*E[13]+F*E[14];J=-N*E[16]+A-h*E[17]+y*E[15];r[p+1]=t+J;r[p+2]=t-J;t=H*E[13]-C-O*E[14]+F*E[12];J=-N*E[17]+A-h*E[15]+y*E[16];r[p+9]=t+J;r[p+10]=t-J;t=H*E[14]-C+O*E[12]-F*E[13];J=N*E[15]-A+h*E[16]-y*E[17];r[p+13]=t+J;r[p+14]=t-J;H=x[8]-x[0];O=x[6]-x[2];F=x[5]-x[3];N=x[17]+x[9];A=x[16]+x[10];h=x[15]+x[11];y=x[14]+x[12];r[p+0]=N+h+y+(A+x[13]);t=(N+h+y)*E[19]-(A+x[13]);J=(H-O+F)*E[18];r[p+11]=t+J;r[p+12]=t-J;C=(x[7]-x[1])*E[18];A=x[13]-A*E[19];t=N*E[15]- -A+h*E[16]+y*E[17];J=H*E[14]+C+O*E[12]+F*E[13];r[p+3]=t+J;r[p+4]=t-J;t=-N*E[17]+A-h*E[15]-y*E[16];J=H*E[13]+C-O*E[14]-F*E[12];r[p+7]=t+J;r[p+8]=t-J;t=-N*E[16]+A-h*E[17]-y*E[15];J=H*E[12]-C+O*E[13]-F*E[14];r[p+15]=t+J;r[p+16]=t-J}}if(D!=c.SHORT_TYPE&&0!=l)for(r=7;0<=r;--r)D=g[q+r]*B[20+r]+g[q+-1-r]*G[28+r],p=g[q+r]*G[28+r]-g[q+-1-r]*B[20+r],g[q+-1-r]=D,g[q+r]=p}}k=a;m=286;if(1==b.mode_gr)for(e=0;18>e;e++)T.arraycopy(b.sb_sample[v][1][e],0,b.sb_sample[v][0][e],0,32)}}}function Xa(){this.thm=new Xb;this.en= -new Xb}function c(){var u=c.FFTOFFSET,k=c.MPG_MD_MS_LR,n=null,w=this.psy=null,E=null,B=null;this.setModules=function(c,b,k,a){n=c;w=this.psy=b;E=a;B=k};var ha=new Fc;this.lame_encode_mp3_frame=function(f,b,v,a,m,z){var e=Ob([2,2]);e[0][0]=new Xa;e[0][1]=new Xa;e[1][0]=new Xa;e[1][1]=new Xa;var l=Ob([2,2]);l[0][0]=new Xa;l[0][1]=new Xa;l[1][0]=new Xa;l[1][1]=new Xa;var d=[null,null],g=f.internal_flags,q=ca([2,4]),D=[.5,.5],p=[[0,0],[0,0]],r=[[0,0],[0,0]];d[0]=b;d[1]=v;if(0==g.lame_encode_frame_init){b= -f.internal_flags;var t,J;if(0==b.lame_encode_frame_init){v=K(2014);var h=K(2014);b.lame_encode_frame_init=1;for(J=t=0;t<286+576*(1+b.mode_gr);++t)t<576*b.mode_gr?(v[t]=0,2==b.channels_out&&(h[t]=0)):(v[t]=d[0][J],2==b.channels_out&&(h[t]=d[1][J]),++J);for(J=0;J(g.slot_lag-=g.frac_SpF)&&(g.slot_lag+=f.out_samplerate,g.padding=1);if(0!=g.psymodel)for(h=[null,null],t=0,J=X(2),v= -0;v=q?(g.ATH.adjust*=.075*q+.925,g.ATH.adjust= -q?g.ATH.adjust=q:g.ATH.adjustl;l++)g.nsPsy.pefirbuf[l]=g.nsPsy.pefirbuf[l+ -1];for(v=r=0;vl;l++)r+=(g.nsPsy.pefirbuf[l]+g.nsPsy.pefirbuf[18-l])*c.fircoef[l];r=3350*g.mode_gr*g.channels_out/r;for(v=0;vm;m++)g.pinfo.pcmdata[b][m]=d[b][m-u]}B.set_frame_pinfo(f,e)}g.bitrate_stereoMode_Hist[g.bitrate_index][4]++;g.bitrate_stereoMode_Hist[15][4]++;2==g.channels_out&&(g.bitrate_stereoMode_Hist[g.bitrate_index][g.mode_ext]++,g.bitrate_stereoMode_Hist[15][g.mode_ext]++);for(f=0;fc;c++)for(var k=0;2>k;k++)this.tt[c][k]=new rb}function Ic(){this.last_en_subshort=ca([4,9]);this.lastAttacks=X(4);this.pefirbuf= -K(19);this.longfact=K(c.SBMAX_l);this.shortfact=K(c.SBMAX_s);this.attackthre_s=this.attackthre=0}function Xb(){this.l=K(c.SBMAX_l);this.s=ca([c.SBMAX_s,3]);var u=this;this.assign=function(k){T.arraycopy(k.l,0,u.l,0,c.SBMAX_l);for(var n=0;nw;w++)u.s[n][w]=k.s[n][w]}}function da(){function u(){this.ptr=this.write_timing=0;this.buf=new Int8Array(40)}this.fill_buffer_resample_init=this.iteration_init_init=this.lame_encode_frame_init=this.Class_ID=0;this.mfbuf=ca([2,da.MFSIZE]); -this.full_outer_loop=this.use_best_huffman=this.subblock_gain=this.noise_shaping_stop=this.psymodel=this.substep_shaping=this.noise_shaping_amp=this.noise_shaping=this.highpass2=this.highpass1=this.lowpass2=this.lowpass1=this.mode_ext=this.samplerate_index=this.bitrate_index=this.VBR_max_bitrate=this.VBR_min_bitrate=this.mf_size=this.mf_samples_to_encode=this.resample_ratio=this.channels_out=this.channels_in=this.mode_gr=0;this.l3_side=new Hc;this.ms_ratio=K(2);this.slot_lag=this.frac_SpF=this.padding= -0;this.tag_spec=null;this.nMusicCRC=0;this.OldValue=X(2);this.CurrentStep=X(2);this.masking_lower=0;this.bv_scf=X(576);this.pseudohalf=X(sa.SFBMAX);this.sfb21_extra=!1;this.inbuf_old=Array(2);this.blackfilt=Array(2*da.BPC+1);this.itime=new Float64Array(2);this.sideinfo_len=0;this.sb_sample=ca([2,2,18,c.SBLIMIT]);this.amp_filter=K(32);this.header=Array(da.MAX_HEADER_BUF);this.ResvMax=this.ResvSize=this.ancillary_flag=this.w_ptr=this.h_ptr=0;this.scalefac_band=new za;this.minval_l=K(c.CBANDS);this.minval_s= -K(c.CBANDS);this.nb_1=ca([4,c.CBANDS]);this.nb_2=ca([4,c.CBANDS]);this.nb_s1=ca([4,c.CBANDS]);this.nb_s2=ca([4,c.CBANDS]);this.s3_ll=this.s3_ss=null;this.decay=0;this.thm=Array(4);this.en=Array(4);this.tot_ener=K(4);this.loudness_sq=ca([2,2]);this.loudness_sq_save=K(2);this.mld_l=K(c.SBMAX_l);this.mld_s=K(c.SBMAX_s);this.bm_l=X(c.SBMAX_l);this.bo_l=X(c.SBMAX_l);this.bm_s=X(c.SBMAX_s);this.bo_s=X(c.SBMAX_s);this.npart_s=this.npart_l=0;this.s3ind=Ia([c.CBANDS,2]);this.s3ind_s=Ia([c.CBANDS,2]);this.numlines_s= -X(c.CBANDS);this.numlines_l=X(c.CBANDS);this.rnumlines_l=K(c.CBANDS);this.mld_cb_l=K(c.CBANDS);this.mld_cb_s=K(c.CBANDS);this.numlines_l_num1=this.numlines_s_num1=0;this.pe=K(4);this.ms_ener_ratio_old=this.ms_ratio_l_old=this.ms_ratio_s_old=0;this.blocktype_old=X(2);this.nsPsy=new Ic;this.VBR_seek_table=new Gc;this.PSY=this.ATH=null;this.nogap_current=this.nogap_total=0;this.findPeakSample=this.findReplayGain=this.decode_on_the_fly=!0;this.AudiophileGain=this.RadioGain=this.PeakSample=0;this.rgdata= -null;this.noclipScale=this.noclipGainChange=0;this.bitrate_stereoMode_Hist=Ia([16,5]);this.bitrate_blockType_Hist=Ia([16,6]);this.hip=this.pinfo=null;this.in_buffer_nsamples=0;this.iteration_loop=this.in_buffer_1=this.in_buffer_0=null;for(var k=0;k>1;var e=a;var l=a<<1;var d=l+e; -a=l<<1;var g=k;var q=g+u;do{var B=c[g+0]-c[g+e];var p=c[g+0]+c[g+e];var r=c[g+l]-c[g+d];var t=c[g+l]+c[g+d];c[g+l]=p-t;c[g+0]=p+t;c[g+d]=B-r;c[g+e]=B+r;B=c[q+0]-c[q+e];p=c[q+0]+c[q+e];r=aa.SQRT2*c[q+d];t=aa.SQRT2*c[q+l];c[q+l]=p-t;c[q+0]=p+t;c[q+d]=B-r;c[q+e]=B+r;q+=a;g+=a}while(gk;k++){var a=c.BLKSIZE_s/2,m=65535&192*(k+1),B= -c.BLKSIZE_s/8-1;do{var e=E[B<<2]&255;var l=n[e]*b[f][v+e+m];var d=n[127-e]*b[f][v+e+m+128];var g=l-d;l+=d;var q=n[e+64]*b[f][v+e+m+64];d=n[63-e]*b[f][v+e+m+192];var D=q-d;q+=d;a-=4;w[k][a+0]=l+q;w[k][a+2]=l-q;w[k][a+1]=g+D;w[k][a+3]=g-D;l=n[e+1]*b[f][v+e+m+1];d=n[126-e]*b[f][v+e+m+129];g=l-d;l+=d;q=n[e+65]*b[f][v+e+m+65];d=n[62-e]*b[f][v+e+m+193];D=q-d;q+=d;w[k][a+c.BLKSIZE_s/2+0]=l+q;w[k][a+c.BLKSIZE_s/2+2]=l-q;w[k][a+c.BLKSIZE_s/2+1]=g+D;w[k][a+c.BLKSIZE_s/2+3]=g-D}while(0<=--B);u(w[k],a,c.BLKSIZE_s/ -2)}};this.fft_long=function(n,w,f,b,v){n=c.BLKSIZE/8-1;var a=c.BLKSIZE/2;do{var m=E[n]&255;var B=k[m]*b[f][v+m];var e=k[m+512]*b[f][v+m+512];var l=B-e;B+=e;var d=k[m+256]*b[f][v+m+256];e=k[m+768]*b[f][v+m+768];var g=d-e;d+=e;a-=4;w[a+0]=B+d;w[a+2]=B-d;w[a+1]=l+g;w[a+3]=l-g;B=k[m+1]*b[f][v+m+1];e=k[m+513]*b[f][v+m+513];l=B-e;B+=e;d=k[m+257]*b[f][v+m+257];e=k[m+769]*b[f][v+m+769];g=d-e;d+=e;w[a+c.BLKSIZE/2+0]=B+d;w[a+c.BLKSIZE/2+2]=B-d;w[a+c.BLKSIZE/2+1]=l+g;w[a+c.BLKSIZE/2+3]=l-g}while(0<=--n);u(w, -a,c.BLKSIZE/2)};this.init_fft=function(u){for(u=0;ua)if(c=c*r)return a+c;g=a/c}a+=c;if(6>=b+3){if(g>=p)return a;b=0|aa.FAST_LOG10_X(g,16);return a* -x[b]}b=0|aa.FAST_LOG10_X(g,16);c=0!=e?f.ATH.cb_s[d]*f.ATH.adjust:f.ATH.cb_l[d]*f.ATH.adjust;return ac?(d=1,13>=b&&(d=y[b]),c=aa.FAST_LOG10_X(a/c,10/15),a*((h[b]-d)*c+d)):13a&&(a=0);0>c&&(c=0);if(0>=a)return c;if(0>=c)return a;var b=c>a?c/a:a/c;if(-2<=d&&2>=d){if(b>=p)return a+c;d=0|aa.FAST_LOG10_X(b,16);return(a+c)*A[d]}if(b=y){++e;break}k=a.PSY.bo_s_weight[e];y=1-k;l=k*d[g];k*=b[g];a.en[h].s[e][f]+=l;a.thm[h].s[e][f]+=k;l=y*d[g];k=y*b[g]}for(;e=m){++f;break}l=a.PSY.bo_l_weight[f];m=1-l;g=l*d[e];l*=b[e];a.en[h].l[f]+=g; -a.thm[h].l[f]+=l;g=m*d[e];l=m*b[e]}for(;f=d?c:0f;f++){var e=a.thm.s[h][f];if(0e&&(b=g>1E10*e?b+23.02585092994046*N[h]:b+N[h]*aa.FAST_LOG10(g/e))}}return b}function f(a,d){for(var b=281.0575,h=0;hf&&(b=e>1E10*f?b+23.02585092994046*H[h]: -b+H[h]*aa.FAST_LOG10(e/f))}}return b}function b(a,c,b,d,h){var f,e;for(f=e=0;fh&&(e=h);d[f]=e}else d[f]=0;for(f=1;fh&&(e=h),d[f]=e):d[f]=0;e=b[f-1]+b[f];0h&&(e=h),d[f]=e):d[f]=0}function a(a,c,b,d,f,h,e){var g=2*h;f=0y&&(k=y);l>p&&(l=p);c[2][m]=k;c[3][m]=l}}function m(a,c){a=0<=a?27*-a:a*c;return-72>=a?0:Math.exp(.2302585093*a)}function z(a){0>a&&(a=0);a*=.001;return 13*Math.atan(.76*a)+3.5*Math.atan(a*a/56.25)}function e(a,b,d,f,h,e,g,l,k,m,y,p){var q=K(c.CBANDS+1),n=l/(15z(l*t)- -A&&t<=k/2;t++);a[r]=t-u;for(C=r+1;uk/2){u=k/2;++r;break}}q[r]=l*u;for(u=0;ur&&(r=0),t=0|Math.floor(.5+y*(A-.5)),t>k/2&&(t=k/2),d[u]=(x[r]+x[t])/2,b[u]=x[t],g[u]=(n*A-q[b[u]])/(q[b[u]+1]-q[b[u]]),0>g[u]?g[u]=0:1=y){var p=y-.5;p=8*(p*p-2*p)}else p=0;y+=.474;y=15.811389+7.5*y-17.5*Math.sqrt(1+y*y);-60>=y?p=0:(y=Math.exp(.2302585093*(p+y)),p=y/.6609193);y=p*f[e];g[k][e]=y*h[k]}else for(e=0;e=n;++n)q=y+n*(x-y)/1E3,q=m(q,k),r+=q;q=1001/(r*(x-y));for(k=0;k -a&&(a=3410);a=Math.max(.1,a/1E3);return 3.64*Math.pow(a,-.8)-6.8*Math.exp(-.6*Math.pow(a-3.4,2))+6*Math.exp(-.15*Math.pow(a-8.7,2))+.001*(.6+.04*c)*Math.pow(a,4)}var q=new Jc,D=1/217621504/(c.BLKSIZE/2),p,r,t,J=[1,.79433,.63096,.63096,.63096,.63096,.63096,.25119,.11749],h=[3.3246*3.3246,3.23837*3.23837,9.9500500969,9.0247369744,8.1854926609,7.0440875649,2.46209*2.46209,2.284*2.284,4.4892710641,1.96552*1.96552,1.82335*1.82335,1.69146*1.69146,2.4621061921,2.1508568964,1.37074*1.37074,1.31036*1.31036, -1.5691069696,1.4555939904,1.16203*1.16203,1.2715945225,1.09428*1.09428,1.0659*1.0659,1.0779838276,1.0382591025,1],x=[1.7782755904,1.35879*1.35879,1.38454*1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],y=[5.5396212496,2.29259*2.29259,4.9868695969,2.12675*2.12675,2.02545*2.02545,1.87894*1.87894,1.74303*1.74303,1.61695*1.61695,2.2499700001,1.39148*1.39148,1.29083*1.29083,1.19746*1.19746,1.2339655056,1.0779838276],A=[1.7782755904,1.35879*1.35879,1.38454* -1.38454,1.39497*1.39497,1.40548*1.40548,1.3537*1.3537,1.6999465924,1.22321*1.22321,1.3169398564,1],N=[11.8,13.6,17.2,32,46.5,51.3,57.5,67.1,71.5,84.6,97.6,130],H=[6.8,5.8,5.8,6.4,6.5,9.9,12.1,14.4,15,18.9,21.6,26.9,34.2,40.2,46.8,56.5,60.7,73.9,85.7,93.4,126.1],O=[-1.730326E-17,-.01703172,-1.349528E-17,.0418072,-6.73278E-17,-.0876324,-3.0835E-17,.1863476,-1.104424E-16,-.627638];this.L3psycho_anal_ns=function(a,d,h,e,g,l,m,y,p,n){var x=a.internal_flags,r=ca([2,c.BLKSIZE]),t=ca([2,3,c.BLKSIZE_s]),A= -K(c.CBANDS+1),I=K(c.CBANDS+1),C=K(c.CBANDS+2),Q=X(2),S=X(2),z,D,F,H,N,Z,L,V=ca([2,576]),ma=X(c.CBANDS+2),R=X(c.CBANDS+2);na.fill(R,0);var T=x.channels_out;a.mode==la.JOINT_STEREO&&(T=4);var M=a.VBR==G.vbr_off?0==x.ResvMax?0:x.ResvSize/x.ResvMax*.5:a.VBR==G.vbr_rh||a.VBR==G.vbr_mtrh||a.VBR==G.vbr_mt?.6:1;for(z=0;zF;F++){var U;var da=Y[ha+F+10];for(H=U=0;9>H;H+=2)da+=O[H]*(Y[ha+F+H]+Y[ha+F+21-H]),U+=O[H+1]*(Y[ha+F+H+1]+Y[ha+F+21-H-1]); -V[z][F]=da+U}g[e][z].en.assign(x.en[z]);g[e][z].thm.assign(x.thm[z]);2F;F++)Qa[F]=x.nsPsy.last_en_subshort[z][F+6],qa[F]=Qa[F]/x.nsPsy.last_en_subshort[z][F+4],ya[0]+=Qa[F];if(2==z)for(F=0;576>F;F++){var Ya=V[0][F];var Xa=V[1][F];V[0][F]=Ya+Xa;V[1][F]=Ya-Xa}var Ia=V[z&1],ec=0;for(F=0;9> -F;F++){for(var xa=ec+64,Ga=1;ecQa[F+3-2]?Ga/Qa[F+3-2]:Qa[F+3-2]>10*Ga?Qa[F+3-2]/(10*Ga):0;qa[F+3]=Ga}if(a.analysis){var Qb=qa[0];for(F=1;12>F;F++)QbF;F++)0==ta[F/3]&&qa[F]>Ma&&(ta[F/3]=F%3+1);for(F=1;4>F;F++)1.7>(ya[F-1]>ya[F]?ya[F-1]/ya[F]:ya[F]/ -ya[F-1])&&(ta[F]=0,1==F&&(ta[0]=0));0!=ta[0]&&0!=x.nsPsy.lastAttacks[z]&&(ta[0]=0);if(3==x.nsPsy.lastAttacks[z]||0!=ta[0]+ta[1]+ta[2]+ta[3])ia=0,0!=ta[1]&&0!=ta[0]&&(ta[1]=0),0!=ta[2]&&0!=ta[1]&&(ta[2]=0),0!=ta[3]&&0!=ta[2]&&(ta[3]=0);2>z?S[z]=ia:0==ia&&(S[0]=S[1]=0);p[z]=x.tot_ener[z];var P=a,Ha=za,Gb=Wb,La=r,kb=z&1,Ra=t,Na=z&1,cb=e,Aa=z,va=d,qb=h,Va=P.internal_flags;if(2>Aa)q.fft_long(Va,La[kb],Aa,va,qb),q.fft_short(Va,Ra[Na],Aa,va,qb);else if(2==Aa){for(var ja=c.BLKSIZE-1;0<=ja;--ja){var Hb=La[kb+ -0][ja],Ib=La[kb+1][ja];La[kb+0][ja]=(Hb+Ib)*aa.SQRT2*.5;La[kb+1][ja]=(Hb-Ib)*aa.SQRT2*.5}for(var Ba=2;0<=Ba;--Ba)for(ja=c.BLKSIZE_s-1;0<=ja;--ja)Hb=Ra[Na+0][Ba][ja],Ib=Ra[Na+1][Ba][ja],Ra[Na+0][Ba][ja]=(Hb+Ib)*aa.SQRT2*.5,Ra[Na+1][Ba][ja]=(Hb-Ib)*aa.SQRT2*.5}Ha[0]=La[kb+0][0];Ha[0]*=Ha[0];for(ja=c.BLKSIZE/2-1;0<=ja;--ja){var fc=La[kb+0][c.BLKSIZE/2-ja],tb=La[kb+0][c.BLKSIZE/2+ja];Ha[c.BLKSIZE/2-ja]=.5*(fc*fc+tb*tb)}for(Ba=2;0<=Ba;--Ba)for(Gb[Ba][0]=Ra[Na+0][Ba][0],Gb[Ba][0]*=Gb[Ba][0],ja=c.BLKSIZE_s/ -2-1;0<=ja;--ja)fc=Ra[Na+0][Ba][c.BLKSIZE_s/2-ja],tb=Ra[Na+0][Ba][c.BLKSIZE_s/2+ja],Gb[Ba][c.BLKSIZE_s/2-ja]=.5*(fc*fc+tb*tb);var oa=0;for(ja=11;jaAa&&(Va.loudness_sq[cb][Aa]=Va.loudness_sq_save[Aa],Va.loudness_sq_save[Aa]=u(Ha,Va));b(x,za,A,sa,Fa);v(x,sa,Fa,ma);for(L= -0;3>L;L++){var ea=void 0,Ab=void 0,Bb=Wb,Sa=I,Za=C,ub=z,zb=L,Ja=a.internal_flags;for(ea=Ab=0;eafb;fb++)Sb=fa.thm[0].s[Ca][fb],Eb=fa.thm[1].s[Ca][fb],fa.thm[0].s[Ca][fb]+=Eb*xb,fa.thm[1].s[Ca][fb]+=Sb*xb}}if(a.mode==la.JOINT_STEREO){for(var Oa,ka=0;ka1.58*x.thm[1].l[ka]||x.thm[1].l[ka]>1.58* -x.thm[0].l[ka])){var Ua=x.mld_l[ka]*x.en[3].l[ka],gb=Math.max(x.thm[2].l[ka],Math.min(x.thm[3].l[ka],Ua));Ua=x.mld_l[ka]*x.en[2].l[ka];var gc=Math.max(x.thm[3].l[ka],Math.min(x.thm[2].l[ka],Ua));x.thm[2].l[ka]=gb;x.thm[3].l[ka]=gc}for(ka=0;kaua;ua++)x.thm[0].s[ka][ua]>1.58*x.thm[1].s[ka][ua]||x.thm[1].s[ka][ua]>1.58*x.thm[0].s[ka][ua]||(Ua=x.mld_s[ka]*x.en[3].s[ka][ua],gb=Math.max(x.thm[2].s[ka][ua],Math.min(x.thm[3].s[ka][ua],Ua)),Ua=x.mld_s[ka]*x.en[2].s[ka][ua],gc= -Math.max(x.thm[3].s[ka][ua],Math.min(x.thm[2].s[ka][ua],Ua)),x.thm[2].s[ka][ua]=gb,x.thm[3].s[ka][ua]=gc);Oa=a.msfix;if(0Da;Da++)ba=x.ATH.cb_s[x.bm_s[wa]]*Zb,Wa=Math.min(Math.max(x.thm[0].s[wa][Da],ba),Math.max(x.thm[1].s[wa][Da],ba)),ab=Math.max(x.thm[2].s[wa][Da],ba),mb=Math.max(x.thm[3].s[wa][Da],ba),Wa*KbM;M++){var Y;var ha=firbuf[T+M+10];for(var U=Y=0;9>U;U+=2)ha+=F[U]*(firbuf[T+M+U]+firbuf[T+M+21-U]),Y+=F[U+1]*(firbuf[T+M+U+1]+firbuf[T+M+21-U-1]);Z[R][M]=ha+Y}l[g][R].en.assign(G.en[R]); -l[g][R].thm.assign(G.thm[R]);2M;M++)ya[M]=G.nsPsy.last_en_subshort[R][M+6],da[M]=ya[M]/G.nsPsy.last_en_subshort[R][M+4],qa[0]+=ya[M];for(M=0;9>M;M++){for(var Xa=sa+64,Ya=1;saya[M+3-2]?Ya/ya[M+3-2]:ya[M+3-2]>10*Ya?ya[M+3-2]/(10*Ya):0;da[M+3]=Ya}for(M=0;3>M;++M){var Ia=ya[3*M+3]+ya[3*M+4]+ya[3*M+5],Wb=1;6*ya[3*M+5]M;M++)xaM;M++)0==L[R][M/3]&&da[M]>Fa&&(L[R][M/3]=M%3+1);for(M=1;4>M;M++){var Qb=qa[M-1],Ga=qa[M];4E4>Math.max(Qb,Ga)&&Qb< -1.7*Ga&&Ga<1.7*Qb&&(1==M&&L[R][0]<=L[R][M]&&(L[R][0]=0),L[R][M]=0)}L[R][0]<=G.nsPsy.lastAttacks[R]&&(L[R][0]=0);if(3==G.nsPsy.lastAttacks[R]||0!=L[R][0]+L[R][1]+L[R][2]+L[R][3])na=0,0!=L[R][1]&&0!=L[R][0]&&(L[R][1]=0),0!=L[R][2]&&0!=L[R][1]&&(L[R][2]=0),0!=L[R][3]&&0!=L[R][2]&&(L[R][3]=0);2>R?H[R]=na:0==na&&(H[0]=H[1]=0);y[R]=G.tot_ener[R]}var qb=d.internal_flags;d.short_blocks!=ra.short_block_coupled||0!=H[0]&&0!=H[1]||(H[0]=H[1]=0);for(var Ma=0;MaLa)q.fft_long(Aa,Na[cb],La,h,e);else if(2==La)for(var va=c.BLKSIZE-1;0<=va;--va){var rb=Na[cb+0][va],Va=Na[cb+1][va];Na[cb+0][va]=(rb+Va)*aa.SQRT2*.5;Na[cb+1][va]=(rb-Va)*aa.SQRT2*.5}Ra[0]=Na[cb+0][0];Ra[0]*=Ra[0];for(va=c.BLKSIZE/2-1;0<=va;--va){var ja=Na[cb+0][c.BLKSIZE/2-va],Hb=Na[cb+0][c.BLKSIZE/2+va];Ra[c.BLKSIZE/2-va]=.5*(ja*ja+Hb*Hb)}var Ib= -0;for(va=11;vaBa&&(tb.loudness_sq[g][Ba]=tb.loudness_sq_save[Ba],tb.loudness_sq_save[Ba]=u(zb,tb));if(0!=H[Ha]){var oa=void 0,ea=r,Ab=I,Bb=S[P],Sa=D[P],Za=P,ub=K(c.CBANDS),sb=K(c.CBANDS),Ja=X(c.CBANDS+2);b(ea,Ab,Bb,ub,sb);v(ea,ub, -sb,Ja);var Rb=0;for(oa=0;oa=Yb&&(Yb=$a);0>=eb&&(eb=$a); -wb=ea.blocktype_old[Za&1]==c.NORM_TYPE?Math.min(eb,Yb):eb;Sa[oa]=Math.min($a,wb)}ea.nb_2[Za][oa]=ea.nb_1[Za][oa];ea.nb_1[Za][oa]=$a;vb=ub[oa];vb*=ea.minval_l[oa];vb*=Ta;Sa[oa]>vb&&(Sa[oa]=vb);1Bb[oa]&&(Sa[oa]=Bb[oa]);1>ea.masking_lower&&(Sa[oa]*=ea.masking_lower)}for(;oafa;fa++){for(P=0;Pfb&&q.fft_short(gc,Ua[gb],fb,h,e);if(2==fb)for(var ua=c.BLKSIZE_s-1;0<=ua;--ua){var Kb=Ua[gb+0][Oa][ua],hc=Ua[gb+1][Oa][ua];Ua[gb+0][Oa][ua]=(Kb+hc)*aa.SQRT2*.5; -Ua[gb+1][Oa][ua]=(Kb-hc)*aa.SQRT2*.5}ka[Oa][0]=Ua[gb+0][Oa][0];ka[Oa][0]*=ka[Oa][0];for(ua=c.BLKSIZE_s/2-1;0<=ua;--ua){var Zb=Ua[gb+0][Oa][c.BLKSIZE_s/2-ua],wa=Ua[gb+0][Oa][c.BLKSIZE_s/2+ua];ka[Oa][c.BLKSIZE_s/2-ua]=.5*(Zb*Zb+wa*wa)}var ba=void 0,Wa=void 0,ab=void 0,mb=C,hb=S[P],Da=D[P],ib=P,Ka=fa,Ea=d.internal_flags,Lb=new float[c.CBANDS],Tb=K(c.CBANDS),Fb=new int[c.CBANDS];for(ba=Wa=0;baac&&(ob=ac);$b[pa]=ob}else $b[pa]=0;for(pa=1;paac&&(ob=ac),$b[pa]=ob):$b[pa]=0;Pa=Ub[pa-1]+Ub[pa];0ac&&(ob=ac),$b[pa]=ob):$b[pa]=0;for(Wa=ba=0;babc&&(Da[ba]=bc);1hb[ba]&&(Da[ba]=hb[ba]);1>Ea.masking_lower&&(Da[ba]*=Ea.masking_lower)}for(;bafa;fa++){var jb=r.thm[P].s[Vb][fa];jb*=.8;if(2<=L[P][fa]||1==L[P][fa+1]){var jc=0!=fa?fa-1:2,kc=B(r.thm[P].s[Vb][jc],jb,.36);jb=Math.min(jb,kc)}else if(1==L[P][fa])jc=0!=fa?fa-1:2,kc=B(r.thm[P].s[Vb][jc],jb,.18),jb=Math.min(jb,kc);else if(0!=fa&&3==L[P][fa-1]||0==fa&&3==r.nsPsy.lastAttacks[P])jc=2!=fa?fa+1:0,kc=B(r.thm[P].s[Vb][jc],jb,.18),jb=Math.min(jb,kc);jb*=O[P][fa];vc[fa]=jb}for(fa=0;3>fa;fa++)r.thm[P].s[Vb][fa]=vc[fa]}for(P=0;Pf;++f){for(var v=0;vv;++v){for(z=0;zv;v++)b.nsPsy.last_en_subshort[f][v]=10}b.loudness_sq_save[0]=b.loudness_sq_save[1]=0;b.npart_l=e(b.numlines_l,b.bo_l,b.bm_l,n,u,b.mld_l,b.PSY.bo_l_weight,w,c.BLKSIZE,b.scalefac_band.l, -c.BLKSIZE/1152,c.SBMAX_l);for(f=0;f=g&&(z=m*(n[f]-g)/(24-g)+k*(24-n[f])/(24-g)),A[f]=Math.pow(10,z/10),b.rnumlines_l[f]=0k&&(m=k);b.ATH.cb_l[f]=m;m=-20+20*n[f]/10;6m&&(m=-15);m-=8;b.minval_l[f]=Math.pow(10,m/10)*b.numlines_l[f]}b.npart_s= -e(b.numlines_s,b.bo_s,b.bm_s,n,u,b.mld_s,b.PSY.bo_s_weight,w,c.BLKSIZE_s,b.scalefac_band.s,c.BLKSIZE_s/384,c.SBMAX_s);for(f=v=0;f=g&&(z=y*(n[f]-g)/(24-g)+x*(24-n[f])/(24-g));A[f]=Math.pow(10,z/10);m=Ma.MAX_VALUE;for(z=0;zk&&(m=k);b.ATH.cb_s[f]=m;m=-7+7*n[f]/12;12n[f]&&(m*=1+2.3*Math.log(1-m));-15>m&&(m=-15);m-=8;b.minval_s[f]= -Math.pow(10,m/10)*b.numlines_s[f]}b.s3_ss=l(b.s3ind_s,b.npart_s,n,u,A,h);p=Math.pow(10,.5625);r=Math.pow(10,1.5);t=Math.pow(10,1.5);q.init_fft(b);b.decay=Math.exp(-2.302585092994046/(.01*w/192));f=3.5;0!=(a.exp_nspsytune&2)&&(f=1);0b.npart_l-1&&(b.s3ind[h][1]=b.npart_l-1);b.ATH.decay=Math.pow(10,576*b.mode_gr/w*-1.2);b.ATH.adjust=.01;b.ATH.adjustLimit=1;if(-1!=a.ATHtype){v=a.out_samplerate/c.BLKSIZE;for(f=k=h=0;f=a?1:Math.cos(Math.PI/2*a)}function E(a,b){switch(a){case 44100:return b.version= -1,0;case 48E3:return b.version=1;case 32E3:return b.version=1,2;case 22050:return b.version=0;case 24E3:return b.version=0,1;case 16E3:return b.version=0,2;case 11025:return b.version=0;case 12E3:return b.version=0,1;case 8E3:return b.version=0,2;default:return b.version=0,-1}}function B(a,b,d){16E3>d&&(b=2);d=w.bitrate_table[b][1];for(var c=2;14>=c;c++)0d&&(b=2);for(d= -0;14>=d;d++)if(0t)return t;n+=t;x+=t;u[0]=g;u[1]=k;if(qa.NEQ(f.scale,0)&&qa.NEQ(f.scale,1))for(t=0;tH.resample_ratio||1.0001da.BPC&&(sa= -da.BPC);var ra=1E-4>Math.abs(ca.resample_ratio-Math.floor(.5+ca.resample_ratio))?1:0;var R=1/ca.resample_ratio;1xa&&(xa=0);1Math.abs(Ma)?Qa/Math.PI:xa*Math.sin(na*Qa*Ma)/(Math.PI*na*Ma)}for(N=0;N<=na;N++)ca.blackfilt[ia][N]/=M}ca.fill_buffer_resample_init=1}M=ca.inbuf_old[la];for(R=0;R=aa)break;za=N-ca.itime[la]-(ia+na%2*.5);za=0|Math.floor(2*za*sa+sa+.5);for(N=Fa=0;N<=na;++N)Ia=0|N+ia-na/2,Fa+=(0>Ia?M[ra+Ia]:W[X+Ia])*ca.blackfilt[za][N];V[T+R]=Fa}ha.num_used=Math.min(aa,na+ia-na/2);ca.itime[la]+=ha.num_used- -R*ca.resample_ratio;if(ha.num_used>=ra)for(N=0;Nh.mf_samples_to_encode&&(h.mf_samples_to_encode=c.ENCDELAY+c.POSTDELAY);h.mf_samples_to_encode+=t;if(h.mf_size>=g){w=r-x;0==r&&(w=0);t=f;w=e.enc.lame_encode_mp3_frame(t,y[0],y[1],q,n,w);t.frameNum++;t=w;if(0>t)return t;n+=t;x+=t;h.mf_size-=f.framesize;h.mf_samples_to_encode-=f.framesize;for(w=0;wh;h++)if(Math.max(a,b[h+1])!=a){d=b[h+1];c=h+1;f=b[h];e=h;break}return d-a>a-f?e:c};this.lame_init_params=function(a){var b=a.internal_flags;b.Class_ID=0;null==b.ATH&&(b.ATH=new Cc);null==b.PSY&&(b.PSY=new u);null==b.rgdata&&(b.rgdata=new Ac);b.channels_in=a.num_channels; -1==b.channels_in&&(a.mode=la.MONO);b.channels_out=a.mode==la.MONO?1:2;b.mode_ext=c.MPG_MD_MS_LR;a.mode==la.MONO&&(a.force_ms=!1);a.VBR==G.vbr_off&&128!=a.VBR_mean_bitrate_kbps&&0==a.brate&&(a.brate=a.VBR_mean_bitrate_kbps);a.VBR!=G.vbr_off&&a.VBR!=G.vbr_mtrh&&a.VBR!=G.vbr_mt&&(a.free_format=!1);a.VBR==G.vbr_off&&0==a.brate&&qa.EQ(a.compression_ratio,0)&&(a.compression_ratio=11.025);a.VBR==G.vbr_off&&0a.out_samplerate?(a.VBR_mean_bitrate_kbps=Math.max(a.VBR_mean_bitrate_kbps,8),a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,64)):32E3>a.out_samplerate?(a.VBR_mean_bitrate_kbps=Math.max(a.VBR_mean_bitrate_kbps,8),a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,160)):(a.VBR_mean_bitrate_kbps= -Math.max(a.VBR_mean_bitrate_kbps,32),a.VBR_mean_bitrate_kbps=Math.min(a.VBR_mean_bitrate_kbps,320)));if(0==a.lowpassfreq){switch(a.VBR){case G.vbr_off:var e=new k;f(e,a.brate);e=e.lowerlimit;break;case G.vbr_abr:e=new k;f(e,a.VBR_mean_bitrate_kbps);e=e.lowerlimit;break;case G.vbr_rh:var h=[19500,19E3,18600,18E3,17500,16E3,15600,14900,12500,1E4,3950];if(0<=a.VBR_q&&9>=a.VBR_q){e=h[a.VBR_q];h=h[a.VBR_q+1];var m=a.VBR_q_frac;e=linear_int(e,h,m)}else e=19500;break;default:h=[19500,19E3,18500,18E3,17500, -16500,15500,14500,12500,9500,3950],0<=a.VBR_q&&9>=a.VBR_q?(e=h[a.VBR_q],h=h[a.VBR_q+1],m=a.VBR_q_frac,e=linear_int(e,h,m)):e=19500}a.mode!=la.MONO||a.VBR!=G.vbr_off&&a.VBR!=G.vbr_abr||(e*=1.5);a.lowpassfreq=e|0}0==a.out_samplerate&&(2*a.lowpassfreq>a.in_samplerate&&(a.lowpassfreq=a.in_samplerate/2),e=a.lowpassfreq|0,h=a.in_samplerate,m=44100,48E3<=h?m=48E3:44100<=h?m=44100:32E3<=h?m=32E3:24E3<=h?m=24E3:22050<=h?m=22050:16E3<=h?m=16E3:12E3<=h?m=12E3:11025<=h?m=11025:8E3<=h&&(m=8E3),-1==e?e=m:(15960>= -e&&(m=44100),15250>=e&&(m=32E3),11220>=e&&(m=24E3),9970>=e&&(m=22050),7230>=e&&(m=16E3),5420>=e&&(m=12E3),4510>=e&&(m=11025),3970>=e&&(m=8E3),e=h=a.out_samplerate?1:2;a.framesize=576*b.mode_gr;a.encoder_delay=c.ENCDELAY;b.resample_ratio=a.in_samplerate/a.out_samplerate;switch(a.VBR){case G.vbr_mt:case G.vbr_rh:case G.vbr_mtrh:a.compression_ratio=[5.7,6.5,7.3,8.2,10,11.9,13,14,15,16.5][a.VBR_q];break;case G.vbr_abr:a.compression_ratio=16*a.out_samplerate*b.channels_out/(1E3*a.VBR_mean_bitrate_kbps);break;default:a.compression_ratio=16*a.out_samplerate*b.channels_out/(1E3*a.brate)}a.mode==la.NOT_SET&&(a.mode=la.JOINT_STEREO);0b.lowpass1&&(b.lowpass1=0)):b.lowpass1=2*a.lowpassfreq,b.lowpass1/=a.out_samplerate,b.lowpass2/=a.out_samplerate):(b.lowpass1=0,b.lowpass2=0);e=a.internal_flags;var n=32,v=-1;if(0=h;h++)m=h/31,m>=e.lowpass2&&(n=Math.min(n,h)),e.lowpass1=h;h++)m=h/31,m<=e.highpass1&&(v=Math.max(v,h)),e.highpass1h;h++)m=h/31,v=e.highpass2>e.highpass1?V((e.highpass2-m)/(e.highpass2-e.highpass1+1E-20)):1,m=e.lowpass2>e.lowpass1?V((m-e.lowpass1)/(e.lowpass2-e.lowpass1+1E-20)):1,e.amp_filter[h]=v*m;b.samplerate_index=E(a.out_samplerate,a);if(0>b.samplerate_index)return a.internal_flags=null,-1;if(a.VBR==G.vbr_off)if(a.free_format)b.bitrate_index=0;else{if(a.brate=B(a.brate,a.version,a.out_samplerate),b.bitrate_index=U(a.brate,a.version,a.out_samplerate),0>=b.bitrate_index)return a.internal_flags=null,-1}else b.bitrate_index= -1;a.analysis&&(a.bWriteVbrTag=!1);null!=b.pinfo&&(a.bWriteVbrTag=!1);d.init_bit_stream_w(b);e=b.samplerate_index+3*a.version+6*(16E3>a.out_samplerate?1:0);for(h=0;he;e++)b.nsPsy.pefirbuf[e]=700* -b.mode_gr*b.channels_out;-1==a.ATHtype&&(a.ATHtype=4);switch(a.VBR){case G.vbr_mt:a.VBR=G.vbr_mtrh;case G.vbr_mtrh:null==a.useTemporal&&(a.useTemporal=!1);g.apply_preset(a,500-10*a.VBR_q,0);0>a.quality&&(a.quality=LAME_DEFAULT_QUALITY);5>a.quality&&(a.quality=0);5a.quality&&(a.quality=LAME_DEFAULT_QUALITY);b.iteration_loop=new VBROldIterationLoop(D);break;default:b.sfb21_extra=!1,0>a.quality&&(a.quality=LAME_DEFAULT_QUALITY),e=a.VBR,e==G.vbr_off&&(a.VBR_mean_bitrate_kbps=a.brate),g.apply_preset(a,a.VBR_mean_bitrate_kbps,0),a.VBR=e,b.PSY.mask_adjust=a.maskingadjust,b.PSY.mask_adjust_short= -a.maskingadjust_short,b.iteration_loop=e==G.vbr_off?new Bc(D):new ABRIterationLoop(D)}if(a.VBR!=G.vbr_off){b.VBR_min_bitrate=1;b.VBR_max_bitrate=14;16E3>a.out_samplerate&&(b.VBR_max_bitrate=8);if(0!=a.VBR_min_bitrate_kbps&&(a.VBR_min_bitrate_kbps=B(a.VBR_min_bitrate_kbps,a.version,a.out_samplerate),b.VBR_min_bitrate=U(a.VBR_min_bitrate_kbps,a.version,a.out_samplerate),0>b.VBR_min_bitrate)||0!=a.VBR_max_bitrate_kbps&&(a.VBR_max_bitrate_kbps=B(a.VBR_max_bitrate_kbps,a.version,a.out_samplerate),b.VBR_max_bitrate= -U(a.VBR_max_bitrate_kbps,a.version,a.out_samplerate),0>b.VBR_max_bitrate))return-1;a.VBR_min_bitrate_kbps=w.bitrate_table[a.version][b.VBR_min_bitrate];a.VBR_max_bitrate_kbps=w.bitrate_table[a.version][b.VBR_max_bitrate];a.VBR_mean_bitrate_kbps=Math.min(w.bitrate_table[a.version][b.VBR_max_bitrate],a.VBR_mean_bitrate_kbps);a.VBR_mean_bitrate_kbps=Math.max(w.bitrate_table[a.version][b.VBR_min_bitrate],a.VBR_mean_bitrate_kbps)}a.tune&&(b.PSY.mask_adjust+=a.tune_value_a,b.PSY.mask_adjust_short+=a.tune_value_a); -e=a.internal_flags;switch(a.quality){default:case 9:e.psymodel=0;e.noise_shaping=0;e.noise_shaping_amp=0;e.noise_shaping_stop=0;e.use_best_huffman=0;e.full_outer_loop=0;break;case 8:a.quality=7;case 7:e.psymodel=1;e.noise_shaping=0;e.noise_shaping_amp=0;e.noise_shaping_stop=0;e.use_best_huffman=0;e.full_outer_loop=0;break;case 6:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=0;e.full_outer_loop= -0;break;case 5:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=0;e.full_outer_loop=0;break;case 4:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=0;e.noise_shaping_stop=0;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 3:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);e.noise_shaping_amp=1;e.noise_shaping_stop=1;-1== -e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 2:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);0==e.substep_shaping&&(e.substep_shaping=2);e.noise_shaping_amp=1;e.noise_shaping_stop=1;-1==e.subblock_gain&&(e.subblock_gain=1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 1:e.psymodel=1;0==e.noise_shaping&&(e.noise_shaping=1);0==e.substep_shaping&&(e.substep_shaping=2);e.noise_shaping_amp=2;e.noise_shaping_stop=1;-1==e.subblock_gain&&(e.subblock_gain= -1);e.use_best_huffman=1;e.full_outer_loop=0;break;case 0:e.psymodel=1,0==e.noise_shaping&&(e.noise_shaping=1),0==e.substep_shaping&&(e.substep_shaping=2),e.noise_shaping_amp=2,e.noise_shaping_stop=1,-1==e.subblock_gain&&(e.subblock_gain=1),e.use_best_huffman=1,e.full_outer_loop=0}b.ATH.useAdjust=0>a.athaa_type?3:a.athaa_type;b.ATH.aaSensitivityP=Math.pow(10,a.athaa_sensitivity/-10);null==a.short_blocks&&(a.short_blocks=ra.short_block_allowed);a.short_blocks!=ra.short_block_allowed||a.mode!=la.JOINT_STEREO&& -a.mode!=la.STEREO||(a.short_blocks=ra.short_block_coupled);0>a.quant_comp&&(a.quant_comp=1);0>a.quant_comp_short&&(a.quant_comp_short=0);0>a.msfix&&(a.msfix=0);a.exp_nspsytune|=1;0>a.internal_flags.nsPsy.attackthre&&(a.internal_flags.nsPsy.attackthre=Pb.NSATTACKTHRE);0>a.internal_flags.nsPsy.attackthre_s&&(a.internal_flags.nsPsy.attackthre_s=Pb.NSATTACKTHRE_S);0>a.scale&&(a.scale=1);0>a.ATHtype&&(a.ATHtype=4);0>a.ATHcurve&&(a.ATHcurve=4);0>a.athaa_loudapprox&&(a.athaa_loudapprox=2);0>a.interChRatio&& -(a.interChRatio=0);null==a.useTemporal&&(a.useTemporal=!0);b.slot_lag=b.frac_SpF=0;a.VBR==G.vbr_off&&(b.slot_lag=b.frac_SpF=72E3*(a.version+1)*a.brate%a.out_samplerate|0);q.iteration_init(a);p.psymodel_init(a);return 0};this.lame_encode_flush=function(a,e,f,g){var k=a.internal_flags,l=dc([2,1152]),h=0,m=k.mf_samples_to_encode-c.POSTDELAY,p=b(a);if(1>k.mf_samples_to_encode)return 0;var n=0;a.in_samplerate!=a.out_samplerate&&(m+=16*a.out_samplerate/a.in_samplerate);var q=a.framesize-m%a.framesize;576> -q&&(q+=a.framesize);a.encoder_padding=q;for(q=(m+q)/a.framesize;0r&&(r=1);h=g-n;0==g&&(h=0);h=this.lame_encode_buffer(a,l[0],l[1],r,e,f,h);f+=h;n+=h;q-=m!=a.frameNum?1:0}k.mf_samples_to_encode=0;if(0>h)return h;h=g-n;0==g&&(h=0);d.flush_bitstream(a);h=d.copy_buffer(k,e,f,h,1);if(0>h)return h;f+=h;n+=h;h=g-n;0==g&&(h=0);if(a.write_id3tag_automatic){t.id3tag_write_v1(a);h=d.copy_buffer(k,e,f,h,0);if(0> -h)return h;n+=h}return n};this.lame_encode_buffer=function(a,b,d,c,e,f,g){var h=a.internal_flags,k=[null,null];if(4294479419!=h.Class_ID)return-3;if(0==c)return 0;if(null==h.in_buffer_0||h.in_buffer_nsamplesMath.abs(k)?Math.abs(c-k)<=1E-6*Math.abs(c):Math.abs(c-k)<=1E-6*Math.abs(k)};qa.NEQ=function(c,k){return!qa.EQ(c,k)};zb.NUMTOCENTRIES=100;zb.MAXFRAMESIZE=2880; -var w={t1HB:[1,1,1,0],t2HB:[1,2,1,3,1,1,3,2,0],t3HB:[3,2,1,1,1,1,3,2,0],t5HB:[1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0],t6HB:[7,3,5,1,6,2,3,2,5,4,4,1,3,3,2,0],t7HB:[1,2,10,19,16,10,3,3,7,10,5,3,11,4,13,17,8,4,12,11,18,15,11,2,7,6,9,14,3,1,6,4,5,3,2,0],t8HB:[3,4,6,18,12,5,5,1,2,16,9,3,7,3,5,14,7,3,19,17,15,13,10,4,13,5,8,11,5,1,12,4,4,1,1,0],t9HB:[7,5,9,14,15,7,6,4,5,5,6,7,7,6,8,8,8,5,15,6,9,10,5,1,11,7,9,6,4,1,14,4,6,2,6,0],t10HB:[1,2,10,23,35,30,12,17,3,3,8,12,18,21,12,7,11,9,15,21,32,40,19,6,14,13,22,34, -46,23,18,7,20,19,33,47,27,22,9,3,31,22,41,26,21,20,5,3,14,13,10,11,16,6,5,1,9,8,7,8,4,4,2,0],t11HB:[3,4,10,24,34,33,21,15,5,3,4,10,32,17,11,10,11,7,13,18,30,31,20,5,25,11,19,59,27,18,12,5,35,33,31,58,30,16,7,5,28,26,32,19,17,15,8,14,14,12,9,13,14,9,4,1,11,4,6,6,6,3,2,0],t12HB:[9,6,16,33,41,39,38,26,7,5,6,9,23,16,26,11,17,7,11,14,21,30,10,7,17,10,15,12,18,28,14,5,32,13,22,19,18,16,9,5,40,17,31,29,17,13,4,2,27,12,11,15,10,7,4,1,27,12,8,12,6,3,1,0],t13HB:[1,5,14,21,34,51,46,71,42,52,68,52,67,44,43,19, -3,4,12,19,31,26,44,33,31,24,32,24,31,35,22,14,15,13,23,36,59,49,77,65,29,40,30,40,27,33,42,16,22,20,37,61,56,79,73,64,43,76,56,37,26,31,25,14,35,16,60,57,97,75,114,91,54,73,55,41,48,53,23,24,58,27,50,96,76,70,93,84,77,58,79,29,74,49,41,17,47,45,78,74,115,94,90,79,69,83,71,50,59,38,36,15,72,34,56,95,92,85,91,90,86,73,77,65,51,44,43,42,43,20,30,44,55,78,72,87,78,61,46,54,37,30,20,16,53,25,41,37,44,59,54,81,66,76,57,54,37,18,39,11,35,33,31,57,42,82,72,80,47,58,55,21,22,26,38,22,53,25,23,38,70,60,51, -36,55,26,34,23,27,14,9,7,34,32,28,39,49,75,30,52,48,40,52,28,18,17,9,5,45,21,34,64,56,50,49,45,31,19,12,15,10,7,6,3,48,23,20,39,36,35,53,21,16,23,13,10,6,1,4,2,16,15,17,27,25,20,29,11,17,12,16,8,1,1,0,1],t15HB:[7,12,18,53,47,76,124,108,89,123,108,119,107,81,122,63,13,5,16,27,46,36,61,51,42,70,52,83,65,41,59,36,19,17,15,24,41,34,59,48,40,64,50,78,62,80,56,33,29,28,25,43,39,63,55,93,76,59,93,72,54,75,50,29,52,22,42,40,67,57,95,79,72,57,89,69,49,66,46,27,77,37,35,66,58,52,91,74,62,48,79,63,90,62,40, -38,125,32,60,56,50,92,78,65,55,87,71,51,73,51,70,30,109,53,49,94,88,75,66,122,91,73,56,42,64,44,21,25,90,43,41,77,73,63,56,92,77,66,47,67,48,53,36,20,71,34,67,60,58,49,88,76,67,106,71,54,38,39,23,15,109,53,51,47,90,82,58,57,48,72,57,41,23,27,62,9,86,42,40,37,70,64,52,43,70,55,42,25,29,18,11,11,118,68,30,55,50,46,74,65,49,39,24,16,22,13,14,7,91,44,39,38,34,63,52,45,31,52,28,19,14,8,9,3,123,60,58,53,47,43,32,22,37,24,17,12,15,10,2,1,71,37,34,30,28,20,17,26,21,16,10,6,8,6,2,0],t16HB:[1,5,14,44,74,63, -110,93,172,149,138,242,225,195,376,17,3,4,12,20,35,62,53,47,83,75,68,119,201,107,207,9,15,13,23,38,67,58,103,90,161,72,127,117,110,209,206,16,45,21,39,69,64,114,99,87,158,140,252,212,199,387,365,26,75,36,68,65,115,101,179,164,155,264,246,226,395,382,362,9,66,30,59,56,102,185,173,265,142,253,232,400,388,378,445,16,111,54,52,100,184,178,160,133,257,244,228,217,385,366,715,10,98,48,91,88,165,157,148,261,248,407,397,372,380,889,884,8,85,84,81,159,156,143,260,249,427,401,392,383,727,713,708,7,154,76,73, -141,131,256,245,426,406,394,384,735,359,710,352,11,139,129,67,125,247,233,229,219,393,743,737,720,885,882,439,4,243,120,118,115,227,223,396,746,742,736,721,712,706,223,436,6,202,224,222,218,216,389,386,381,364,888,443,707,440,437,1728,4,747,211,210,208,370,379,734,723,714,1735,883,877,876,3459,865,2,377,369,102,187,726,722,358,711,709,866,1734,871,3458,870,434,0,12,10,7,11,10,17,11,9,13,12,10,7,5,3,1,3],t24HB:[15,13,46,80,146,262,248,434,426,669,653,649,621,517,1032,88,14,12,21,38,71,130,122,216, -209,198,327,345,319,297,279,42,47,22,41,74,68,128,120,221,207,194,182,340,315,295,541,18,81,39,75,70,134,125,116,220,204,190,178,325,311,293,271,16,147,72,69,135,127,118,112,210,200,188,352,323,306,285,540,14,263,66,129,126,119,114,214,202,192,180,341,317,301,281,262,12,249,123,121,117,113,215,206,195,185,347,330,308,291,272,520,10,435,115,111,109,211,203,196,187,353,332,313,298,283,531,381,17,427,212,208,205,201,193,186,177,169,320,303,286,268,514,377,16,335,199,197,191,189,181,174,333,321,305,289, -275,521,379,371,11,668,184,183,179,175,344,331,314,304,290,277,530,383,373,366,10,652,346,171,168,164,318,309,299,287,276,263,513,375,368,362,6,648,322,316,312,307,302,292,284,269,261,512,376,370,364,359,4,620,300,296,294,288,282,273,266,515,380,374,369,365,361,357,2,1033,280,278,274,267,264,259,382,378,372,367,363,360,358,356,0,43,20,19,17,15,13,11,9,7,6,4,7,5,3,1,3],t32HB:[1,10,8,20,12,20,16,32,14,12,24,0,28,16,24,16],t33HB:[15,28,26,48,22,40,36,64,14,24,20,32,12,16,8,0],t1l:[1,4,3,5],t2l:[1,4, -7,4,5,7,6,7,8],t3l:[2,3,7,4,4,7,6,7,8],t5l:[1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10],t6l:[3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9],t7l:[1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12],t8l:[2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13],t9l:[3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11],t10l:[1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12, -12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13],t11l:[2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12],t12l:[4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12],t13l:[1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11, -12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14, -14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18],t15l:[3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10, -11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15],t16_5l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12, -12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14, -14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12],t16l:[1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14, -15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10],t24l:[4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8, -9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12, -12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6],t32l:[1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10],t33l:[4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]};w.ht=[new U(0,0,null,null),new U(2,0,w.t1HB,w.t1l),new U(3,0,w.t2HB,w.t2l),new U(3,0,w.t3HB,w.t3l),new U(0,0,null,null),new U(4,0,w.t5HB,w.t5l),new U(4,0,w.t6HB,w.t6l),new U(6,0,w.t7HB,w.t7l),new U(6,0,w.t8HB,w.t8l),new U(6,0,w.t9HB,w.t9l),new U(8, -0,w.t10HB,w.t10l),new U(8,0,w.t11HB,w.t11l),new U(8,0,w.t12HB,w.t12l),new U(16,0,w.t13HB,w.t13l),new U(0,0,null,w.t16_5l),new U(16,0,w.t15HB,w.t15l),new U(1,1,w.t16HB,w.t16l),new U(2,3,w.t16HB,w.t16l),new U(3,7,w.t16HB,w.t16l),new U(4,15,w.t16HB,w.t16l),new U(6,63,w.t16HB,w.t16l),new U(8,255,w.t16HB,w.t16l),new U(10,1023,w.t16HB,w.t16l),new U(13,8191,w.t16HB,w.t16l),new U(4,15,w.t24HB,w.t24l),new U(5,31,w.t24HB,w.t24l),new U(6,63,w.t24HB,w.t24l),new U(7,127,w.t24HB,w.t24l),new U(8,255,w.t24HB,w.t24l), -new U(9,511,w.t24HB,w.t24l),new U(11,2047,w.t24HB,w.t24l),new U(13,8191,w.t24HB,w.t24l),new U(0,0,w.t32HB,w.t32l),new U(0,0,w.t33HB,w.t33l)];w.largetbl=[65540,327685,458759,589832,655369,655370,720906,720907,786443,786444,786444,851980,851980,851980,917517,655370,262149,393222,524295,589832,655369,720906,720906,720907,786443,786443,786444,851980,917516,851980,917516,655370,458759,524295,589832,655369,720905,720906,786442,786443,851979,786443,851979,851980,851980,917516,917517,720905,589832,589832, -655369,720905,720906,786442,786442,786443,851979,851979,917515,917516,917516,983052,983052,786441,655369,655369,720905,720906,786442,786442,851978,851979,851979,917515,917516,917516,983052,983052,983053,720905,655370,655369,720906,720906,786442,851978,851979,917515,851979,917515,917516,983052,983052,983052,1048588,786441,720906,720906,720906,786442,851978,851979,851979,851979,917515,917516,917516,917516,983052,983052,1048589,786441,720907,720906,786442,786442,851979,851979,851979,917515,917516,983052, -983052,983052,983052,1114125,1114125,786442,720907,786443,786443,851979,851979,851979,917515,917515,983051,983052,983052,983052,1048588,1048589,1048589,786442,786443,786443,786443,851979,851979,917515,917515,983052,983052,983052,983052,1048588,983053,1048589,983053,851978,786444,851979,786443,851979,917515,917516,917516,917516,983052,1048588,1048588,1048589,1114125,1114125,1048589,786442,851980,851980,851979,851979,917515,917516,983052,1048588,1048588,1048588,1048588,1048589,1048589,983053,1048589, -851978,851980,917516,917516,917516,917516,983052,983052,983052,983052,1114124,1048589,1048589,1048589,1048589,1179661,851978,983052,917516,917516,917516,983052,983052,1048588,1048588,1048589,1179661,1114125,1114125,1114125,1245197,1114125,851978,917517,983052,851980,917516,1048588,1048588,983052,1048589,1048589,1114125,1179661,1114125,1245197,1114125,1048589,851978,655369,655369,655369,720905,720905,786441,786441,786441,851977,851977,851977,851978,851978,851978,851978,655366];w.table23=[65538,262147, -458759,262148,327684,458759,393222,458759,524296];w.table56=[65539,262148,458758,524296,262148,327684,524294,589831,458757,524294,589831,655368,524295,524295,589832,655369];w.bitrate_table=[[0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],[0,8,16,24,32,40,48,56,64,-1,-1,-1,-1,-1,-1,-1]];w.samplerate_table=[[22050,24E3,16E3,-1],[44100,48E3,32E3,-1],[11025,12E3,8E3,-1]];w.scfsi_band=[0,6,11,16,21];ia.Q_MAX=257;ia.Q_MAX2=116;ia.LARGE_BITS=1E5; -ia.IXMAX_VAL=8206;var sa={};sa.SFBMAX=3*c.SBMAX_s;c.ENCDELAY=576;c.POSTDELAY=1152;c.MDCTDELAY=48;c.FFTOFFSET=224+c.MDCTDELAY;c.DECDELAY=528;c.SBLIMIT=32;c.CBANDS=64;c.SBPSY_l=21;c.SBPSY_s=12;c.SBMAX_l=22;c.SBMAX_s=13;c.PSFB21=6;c.PSFB12=6;c.BLKSIZE=1024;c.HBLKSIZE=c.BLKSIZE/2+1;c.BLKSIZE_s=256;c.HBLKSIZE_s=c.BLKSIZE_s/2+1;c.NORM_TYPE=0;c.START_TYPE=1;c.SHORT_TYPE=2;c.STOP_TYPE=3;c.MPG_MD_LR_LR=0;c.MPG_MD_LR_I=1;c.MPG_MD_MS_LR=2;c.MPG_MD_MS_I=3;c.fircoef=[-.1039435,-.1892065,-.0432472*5,-.155915,3.898045E-17, -.0467745*5,.50455,.756825,.187098*5];da.MFSIZE=3456+c.ENCDELAY-c.MDCTDELAY;da.MAX_HEADER_BUF=256;da.MAX_BITS_PER_CHANNEL=4095;da.MAX_BITS_PER_GRANULE=7680;da.BPC=320;Fa.RIFF=cc("RIFF");Fa.WAVE=cc("WAVE");Fa.fmt_=cc("fmt ");Fa.data=cc("data");Fa.readHeader=function(c){var k=new Fa,n=c.getUint32(0,!1);if(Fa.RIFF==n&&(c.getUint32(4,!0),Fa.WAVE==c.getUint32(8,!1)&&Fa.fmt_==c.getUint32(12,!1))){var u=c.getUint32(16,!0),w=20;switch(u){case 16:case 18:k.channels=c.getUint16(w+2,!0);k.sampleRate=c.getUint32(w+ -4,!0);break;default:throw"extended fmt chunk not implemented";}w+=u;u=Fa.data;for(var B=0;u!=n;){n=c.getUint32(w,!1);B=c.getUint32(w+4,!0);if(u==n)break;w+=B+8}k.dataLen=B;k.dataOffset=w+8;return k}};sa.SFBMAX=3*c.SBMAX_s;lamejs.Mp3Encoder=function(c,k,n){3!=arguments.length&&(console.error("WARN: Mp3Encoder(channels, samplerate, kbps) not specified"),c=1,k=44100,n=128);var u=new W,w=new Kc,B=new Y,G=new qa,f=new wc,b=new ia,v=new Ec,a=new zb,m=new mc,z=new Nc,e=new xc,l=new qb,d=new Lc,g=new Mc; -u.setModules(B,G,f,b,v,a,m,z,g);G.setModules(B,g,m,a);z.setModules(G,m);f.setModules(u);v.setModules(G,e,b,l);b.setModules(l,e,u.enc.psy);e.setModules(G);l.setModules(b);a.setModules(u,G,m);w.setModules(d,g);d.setModules(m,z,f);var q=u.lame_init();q.num_channels=c;q.in_samplerate=k;q.brate=n;q.mode=la.STEREO;q.quality=3;q.bWriteVbrTag=!1;q.disable_reservoir=!0;q.write_id3tag_automatic=!1;u.lame_init_params(q);var D=1152,p=0|1.25*D+7200,r=new Int8Array(p);this.encodeBuffer=function(a,b){1==c&&(b=a); -a.length>D&&(D=a.length,p=0|1.25*D+7200,r=new Int8Array(p));a=u.lame_encode_buffer(q,a,b,a.length,r,0,p);return new Int8Array(r.subarray(0,a))};this.flush=function(){var a=u.lame_encode_flush(q,r,0,p);return new Int8Array(r.subarray(0,a))}};lamejs.WavHeader=Fa}lamejs(); diff --git a/public/mp3-realtime-worker.js b/public/mp3-realtime-worker.js deleted file mode 100644 index dcddb2cf9dbb..000000000000 --- a/public/mp3-realtime-worker.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -(function () { - importScripts('lame.min.js'); - - var encoder; - var maxSamples = 1152; - var samplesMono; - var dataBuffer; - - function convertBuffer(arrayBuffer) { - var input = new Float32Array(arrayBuffer); - var output = new Int16Array(arrayBuffer.length); - - for (var i = 0; i < input.length; i++) { - var s = Math.max(-1, Math.min(1, input[i])); - output[i] = (s < 0 ? s * 0x8000 : s * 0x7FFF); - } - - return output; - } - - function init(config) { - config = config || {}; - encoder = new lamejs.Mp3Encoder(config.numChannels || 1, config.sampleRate || 44100, config.bitRate || 32); - dataBuffer = []; - } - - function encode(arrayBuffer) { - samplesMono = convertBuffer(arrayBuffer); - var remaining = samplesMono.length; - for (var i = 0; remaining >= 0; i += maxSamples) { - var left = samplesMono.subarray(i, i + maxSamples); - var buffer = encoder.encodeBuffer(left); - dataBuffer.push(new Int8Array(buffer)); - remaining -= maxSamples; - } - }; - - function finish() { - var buffer = encoder.flush(); - dataBuffer.push(new Int8Array(buffer)); - self.postMessage({ command: 'end', buffer: dataBuffer }); - dataBuffer = []; - }; - - self.onmessage = function (event) { - switch (event.data.command) { - case 'init': - init(event.data.config); - break; - - case 'encode': - encode(event.data.buffer); - break; - - case 'finish': - finish(); - break; - } - }; -})(); diff --git a/public/workers/mp3-encoder/index.js b/public/workers/mp3-encoder/index.js new file mode 120000 index 000000000000..3d78b5aa0235 --- /dev/null +++ b/public/workers/mp3-encoder/index.js @@ -0,0 +1 @@ +../../../node_modules/@rocket.chat/mp3-encoder/dist/index.js \ No newline at end of file diff --git a/public/workers/mp3-encoder/index.js.map b/public/workers/mp3-encoder/index.js.map new file mode 120000 index 000000000000..4a2b2c43d452 --- /dev/null +++ b/public/workers/mp3-encoder/index.js.map @@ -0,0 +1 @@ +../../../node_modules/@rocket.chat/mp3-encoder/dist/index.js.map \ No newline at end of file diff --git a/server/importPackages.js b/server/importPackages.js index 7764711f39da..a7fc6534b784 100644 --- a/server/importPackages.js +++ b/server/importPackages.js @@ -3,6 +3,7 @@ import '../app/sms'; import '../app/2fa/server'; import '../app/analytics/server'; import '../app/api/server'; +import '../app/apple/server'; import '../app/assets/server'; import '../app/authorization'; import '../app/autolinker/server'; diff --git a/server/methods/browseChannels.js b/server/methods/browseChannels.js index eea79f4cdc7b..0031bdd70e04 100644 --- a/server/methods/browseChannels.js +++ b/server/methods/browseChannels.js @@ -126,6 +126,7 @@ Meteor.methods({ fields: { username: 1, name: 1, + nickname: 1, bio: 1, createdAt: 1, emails: 1, @@ -158,6 +159,7 @@ Meteor.methods({ username: user.username, name: user.name, bio: user.bio, + nickname: user.nickname, emails: user.emails, federation: user.federation, isRemote: true, diff --git a/server/methods/getUsersOfRoom.js b/server/methods/getUsersOfRoom.js index ecf88f588d47..2f570e7b8adf 100644 --- a/server/methods/getUsersOfRoom.js +++ b/server/methods/getUsersOfRoom.js @@ -1,52 +1,30 @@ import { Meteor } from 'meteor/meteor'; -import s from 'underscore.string'; -import { Subscriptions } from '../../app/models'; +import { Subscriptions, Users } from '../../app/models/server'; import { hasPermission } from '../../app/authorization'; import { settings } from '../../app/settings'; function findUsers({ rid, status, skip, limit, filter = '' }) { - const regex = new RegExp(s.trim(s.escapeRegExp(filter)), 'i'); - return Subscriptions.model.rawCollection().aggregate([ - { - $match: { rid }, + const options = { + fields: { + name: 1, + username: 1, + nickname: 1, + status: 1, + avatarETag: 1, }, - { - $lookup: - { - from: 'users', - localField: 'u._id', - foreignField: '_id', - as: 'u', - }, + sort: { + statusConnection: -1, + [settings.get('UI_Use_Real_Name') ? 'name' : 'username']: 1, }, - { - $project: { - 'u._id': 1, - 'u.name': 1, - 'u.username': 1, - 'u.status': 1, - 'u.avatarETag': 1, - }, - }, - ...status ? [{ $match: { 'u.status': status } }] : [], - ...filter.trim() ? [{ $match: { $or: [{ 'u.name': regex }, { 'u.username': regex }] } }] : [], - { - $sort: { - [settings.get('UI_Use_Real_Name') ? 'u.name' : 'u.username']: 1, - }, - }, - ...skip > 0 ? [{ $skip: skip }] : [], - ...limit > 0 ? [{ $limit: limit }] : [], - { - $project: { - _id: { $arrayElemAt: ['$u._id', 0] }, - name: { $arrayElemAt: ['$u.name', 0] }, - username: { $arrayElemAt: ['$u.username', 0] }, - avatarETag: { $arrayElemAt: ['$u.avatarETag', 0] }, - }, - }, - ]).toArray(); + ...skip > 0 && { skip }, + ...limit > 0 && { limit }, + }; + + return Users.findByActiveUsersExcept(filter, undefined, options, undefined, [{ + __rooms: rid, + ...status && { status }, + }]).fetch(); } Meteor.methods({ @@ -66,21 +44,8 @@ Meteor.methods({ } const total = Subscriptions.findByRoomIdWhenUsernameExists(rid).count(); - const users = await findUsers({ rid, status: { $ne: 'offline' }, limit, skip, filter }); - if (showAll && (!limit || users.length < limit)) { - const offlineUsers = await findUsers({ - rid, - status: { $eq: 'offline' }, - limit: limit ? limit - users.length : 0, - skip: skip || 0, - filter, - }); - return { - total, - records: users.concat(offlineUsers), - }; - } + const users = await findUsers({ rid, status: !showAll ? { $ne: 'offline' } : undefined, limit, skip, filter }); return { total, diff --git a/server/methods/saveUserProfile.js b/server/methods/saveUserProfile.js index 43333ce9f6ea..ffb2eef0a196 100644 --- a/server/methods/saveUserProfile.js +++ b/server/methods/saveUserProfile.js @@ -46,7 +46,7 @@ Meteor.methods({ Meteor.call('setUserStatus', settings.statusType, null); } - if (settings.bio) { + if (settings.bio != null) { if (typeof settings.bio !== 'string' || settings.bio.length > 260) { throw new Meteor.Error('error-invalid-field', 'bio', { method: 'saveUserProfile', @@ -55,6 +55,15 @@ Meteor.methods({ Users.setBio(user._id, settings.bio.trim()); } + if (settings.nickname != null) { + if (typeof settings.nickname !== 'string' || settings.nickname.length > 120) { + throw new Meteor.Error('error-invalid-field', 'nickname', { + method: 'saveUserProfile', + }); + } + Users.setNickname(user._id, settings.nickname.trim()); + } + if (settings.email) { if (!compareUserPassword(user, { sha256: settings.typedPassword })) { throw new Meteor.Error('error-invalid-password', 'Invalid password', { diff --git a/server/publications/settings/index.js b/server/publications/settings/index.js index 81651a50bcbd..7b379059b50b 100644 --- a/server/publications/settings/index.js +++ b/server/publications/settings/index.js @@ -4,11 +4,14 @@ import { Settings } from '../../../app/models/server'; import { Notifications } from '../../../app/notifications/server'; import { hasPermission, hasAtLeastOnePermission } from '../../../app/authorization/server'; import { getSettingPermissionId } from '../../../app/authorization/lib'; +import { SettingsEvents } from '../../../app/settings/server/functions/settings'; Meteor.methods({ 'public-settings/get'(updatedAt) { if (updatedAt instanceof Date) { const records = Settings.findNotHiddenPublicUpdatedAfter(updatedAt).fetch(); + SettingsEvents.emit('fetch-settings', records); + return { update: records, remove: Settings.trashFindDeletedAfter(updatedAt, { @@ -24,7 +27,11 @@ Meteor.methods({ }).fetch(), }; } - return Settings.findNotHiddenPublic().fetch(); + + const publicSettings = Settings.findNotHiddenPublic().fetch(); + SettingsEvents.emit('fetch-settings', publicSettings); + + return publicSettings; }, 'private-settings/get'(updatedAfter) { const uid = Meteor.userId(); @@ -84,8 +91,11 @@ Settings.on('change', ({ clientAction, id, data, diff }) => { value: setting.value, editor: setting.editor, properties: setting.properties, + enterprise: setting.enterprise, }; + SettingsEvents.emit('change-setting', setting, value); + if (setting.public === true) { Notifications.notifyAllInThisInstance('public-settings-changed', clientAction, value); } diff --git a/server/publications/spotlight.js b/server/publications/spotlight.js index b547b91dee6c..fdcb4b559c52 100644 --- a/server/publications/spotlight.js +++ b/server/publications/spotlight.js @@ -2,10 +2,10 @@ import { Meteor } from 'meteor/meteor'; import { DDPRateLimiter } from 'meteor/ddp-rate-limiter'; import s from 'underscore.string'; -import { hasPermission } from '../../app/authorization'; -import { Users, Subscriptions, Rooms } from '../../app/models'; -import { settings } from '../../app/settings'; -import { roomTypes } from '../../app/utils'; +import { hasAllPermission, hasPermission, canAccessRoom } from '../../app/authorization/server'; +import { Users, Subscriptions, Rooms } from '../../app/models/server'; +import { settings } from '../../app/settings/server'; +import { roomTypes } from '../../app/utils/server'; function fetchRooms(userId, rooms) { if (!settings.get('Store_Last_Message') || hasPermission(userId, 'preview-c-room')) { @@ -18,99 +18,213 @@ function fetchRooms(userId, rooms) { }); } +function searchRooms({ userId, text }) { + const regex = new RegExp(s.trim(s.escapeRegExp(text)), 'i'); + + const roomOptions = { + limit: 5, + fields: { + t: 1, + name: 1, + joinCodeRequired: 1, + lastMessage: 1, + }, + sort: { + name: 1, + }, + }; + + if (userId == null) { + if (!settings.get('Accounts_AllowAnonymousRead') === true) { + return []; + } + + return fetchRooms(userId, Rooms.findByNameAndTypeNotDefault(regex, 'c', roomOptions).fetch()); + } + + if (hasAllPermission(userId, ['view-outside-room', 'view-c-room'])) { + const searchableRoomTypes = Object.entries(roomTypes.roomTypes) + .filter((roomType) => roomType[1].includeInRoomSearch()) + .map((roomType) => roomType[0]); + + const roomIds = Subscriptions.findByUserIdAndTypes(userId, searchableRoomTypes, { fields: { rid: 1 } }).fetch().map((s) => s.rid); + const exactRoom = Rooms.findOneByNameAndType(text, searchableRoomTypes, roomOptions); + if (exactRoom) { + roomIds.push(exactRoom.rid); + } + + return fetchRooms(userId, Rooms.findByNameAndTypesNotInIds(regex, searchableRoomTypes, roomIds, roomOptions).fetch()); + } + + return []; +} + +function mapOutsiders(u) { + u.outside = true; + return u; +} + +function processLimitAndUsernames(options, usernames, users) { + // Reduce the results from the limit for the next query + options.limit -= users.length; + + // If the limit was reached, return + if (options.limit <= 0) { + return users; + } + + // Prevent the next query to get the same users + usernames.push(...users.map((u) => u.username).filter((u) => !usernames.includes(u))); +} + +function _searchInsiderUsers({ rid, text, usernames, options, users, insiderExtraQuery, match = { startsWith: false, endsWith: false } }) { + // Get insiders first + if (rid) { + users.push(...Users.findByActiveUsersExcept(text, usernames, options, undefined, insiderExtraQuery, match).fetch()); + + // If the limit was reached, return + if (processLimitAndUsernames(options, usernames, users)) { + return users; + } + } +} + +function _searchOutsiderUsers({ text, usernames, options, users, canListOutsiders, match = { startsWith: false, endsWith: false } }) { + // Then get the outsiders if allowed + if (canListOutsiders) { + users.push(...Users.findByActiveUsersExcept(text, usernames, options, undefined, undefined, match).fetch().map(mapOutsiders)); + + // If the limit was reached, return + if (processLimitAndUsernames(options, usernames, users)) { + return users; + } + } +} + +function searchUsers({ userId, rid, text, usernames }) { + const users = []; + + const options = { + limit: settings.get('Number_of_users_autocomplete_suggestions'), + fields: { + username: 1, + nickname: 1, + name: 1, + status: 1, + statusText: 1, + avatarETag: 1, + }, + sort: { + [settings.get('UI_Use_Real_Name') ? 'name' : 'username']: 1, + }, + }; + + const room = Rooms.findOneById(rid, { fields: { _id: 1, t: 1, uids: 1 } }); + + if (rid && !room) { + return users; + } + + const canListOutsiders = hasAllPermission(userId, 'view-outside-room', 'view-d-room'); + const canListInsiders = canListOutsiders || (rid && canAccessRoom(room, { _id: userId })); + + // If can't list outsiders and, wither, the rid was not passed or the user has no access to the room, return + if (!canListOutsiders && !canListInsiders) { + return users; + } + + const insiderExtraQuery = []; + + if (rid) { + switch (room.t) { + case 'd': + insiderExtraQuery.push({ + _id: { $in: room.uids.filter((id) => id !== userId) }, + }); + break; + case 'l': + insiderExtraQuery.push({ + _id: { $in: Subscriptions.findByRoomId(room._id).fetch().map((s) => s.u?._id).filter((id) => id && id !== userId) }, + }); + break; + default: + insiderExtraQuery.push({ + __rooms: rid, + }); + break; + } + } + + const searchParams = { rid, text, usernames, options, users, canListOutsiders, insiderExtraQuery }; + + // Exact match for username only + if (rid) { + const exactMatch = Users.findOneByUsernameAndRoomIgnoringCase(text, rid, { fields: options.fields }); + if (exactMatch) { + users.push(exactMatch); + processLimitAndUsernames(options, usernames, users); + } + } + + if (users.length === 0 && canListOutsiders) { + const exactMatch = Users.findOneByUsernameIgnoringCase(text, { fields: options.fields }); + if (exactMatch) { + users.push(exactMatch); + processLimitAndUsernames(options, usernames, users); + } + } + + // Exact match for insiders + // if (_searchInsiderUsers({ ...searchParams, match: { startsWith: true, endsWith: true } })) { + // return users; + // } + + // Exact match for outsiders + // if (_searchOutsiderUsers({ ...searchParams, match: { startsWith: true, endsWith: true } })) { + // return users; + // } + + // Starts with for insiders + // if (_searchInsiderUsers({ ...searchParams, match: { startsWith: true } })) { + // return users; + // } + + // Contains for insiders + if (_searchInsiderUsers(searchParams)) { + return users; + } + + // Starts with for outsiders + // if (_searchOutsiderUsers({ ...searchParams, match: { startsWith: true } })) { + // return users; + // } + + // Contains for outsiders + if (_searchOutsiderUsers(searchParams)) { + return users; + } + + return users; +} + Meteor.methods({ spotlight(text, usernames = [], type = { users: true, rooms: true }, rid) { - const searchForChannels = text[0] === '#'; - const searchForDMs = text[0] === '@'; - if (searchForChannels) { + if (text[0] === '#') { type.users = false; text = text.slice(1); } - if (searchForDMs) { + + if (text[0] === '@') { type.rooms = false; text = text.slice(1); } - const regex = new RegExp(s.trim(s.escapeRegExp(text)), 'i'); - const result = { - users: [], - rooms: [], - }; - const roomOptions = { - limit: 5, - fields: { - t: 1, - name: 1, - joinCodeRequired: 1, - lastMessage: 1, - }, - sort: { - name: 1, - }, - }; - const { userId } = this; - if (userId == null) { - if (settings.get('Accounts_AllowAnonymousRead') === true) { - result.rooms = fetchRooms(userId, Rooms.findByNameAndTypeNotDefault(regex, 'c', roomOptions).fetch()); - } - return result; - } - const userOptions = { - limit: 5, - fields: { - username: 1, - name: 1, - status: 1, - statusText: 1, - avatarETag: 1, - }, - sort: {}, - filterByDiscoverability: true, - }; - if (settings.get('UI_Use_Real_Name')) { - userOptions.sort.name = 1; - } else { - userOptions.sort.username = 1; - } - if (hasPermission(userId, 'view-outside-room')) { - if (type.users === true && hasPermission(userId, 'view-d-room')) { - const exactUser = Users.findOneByUsernameIgnoringCase(text, userOptions); - if (exactUser && !usernames.includes(exactUser.username)) { - result.users.push(exactUser); - usernames.push(exactUser.username); - } - result.users = result.users.concat(Users.findByActiveUsersExcept(text, usernames, userOptions).fetch()); - } - - if (type.rooms === true && hasPermission(userId, 'view-c-room')) { - const searchableRoomTypes = Object.entries(roomTypes.roomTypes) - .filter((roomType) => roomType[1].includeInRoomSearch()) - .map((roomType) => roomType[0]); - - const roomIds = Subscriptions.findByUserIdAndTypes(userId, searchableRoomTypes, { fields: { rid: 1 } }).fetch().map((s) => s.rid); - const exactRoom = Rooms.findOneByNameAndType(text, searchableRoomTypes, roomOptions); - if (exactRoom) { - result.exactRoom.push(exactRoom); - roomIds.push(exactRoom.rid); - } - - result.rooms = result.rooms.concat(fetchRooms(userId, Rooms.findByNameAndTypesNotInIds(regex, searchableRoomTypes, roomIds, roomOptions).fetch())); - } - } else if (type.users === true && rid) { - const subscriptions = Subscriptions.find({ - rid, - 'u.username': { - $regex: regex, - $nin: [...usernames, Meteor.user().username], - }, - }, { limit: userOptions.limit }).fetch().map(({ u }) => u._id); - result.users = Users.find({ _id: { $in: subscriptions } }, { - fields: userOptions.fields, - sort: userOptions.sort, - }).fetch(); - } + const { userId } = this; - return result; + return { + users: type.users === true ? searchUsers({ userId, rid, text, usernames }) : [], + rooms: type.rooms === true ? searchRooms({ userId, text }) : [], + }; }, }); diff --git a/server/startup/migrations/index.js b/server/startup/migrations/index.js index b97123b4706e..52bfb3888d84 100644 --- a/server/startup/migrations/index.js +++ b/server/startup/migrations/index.js @@ -194,4 +194,9 @@ import './v194'; import './v195'; import './v196'; import './v197'; +import './v198'; +import './v199'; +import './v200'; +import './v201'; +import './v202'; import './xrun'; diff --git a/server/startup/migrations/v183.js b/server/startup/migrations/v183.js index df71bd061730..2babe6168fdd 100644 --- a/server/startup/migrations/v183.js +++ b/server/startup/migrations/v183.js @@ -1,3 +1,4 @@ +import { Meteor } from 'meteor/meteor'; import { Random } from 'meteor/random'; import { Migrations } from '../../../app/migrations'; @@ -56,11 +57,15 @@ const fixSelfDMs = () => { rid: correctId, }, }, { multi: true }); - Uploads.update({ rid: room._id }, { - $set: { - rid: correctId, - }, - }, { multi: true }); + + // Fix error of upload permission check using Meteor.userId() + Meteor.runAsUser(room.uids[0], () => { + Uploads.update({ rid: room._id }, { + $set: { + rid: correctId, + }, + }, { multi: true }); + }); }); }; diff --git a/server/startup/migrations/v194.js b/server/startup/migrations/v194.js index 4875d6b2a2e3..1b34f829a37a 100644 --- a/server/startup/migrations/v194.js +++ b/server/startup/migrations/v194.js @@ -7,7 +7,7 @@ import { Migrations } from '../../../app/migrations/server'; function updateFieldMap() { const _id = 'SAML_Custom_Default_user_data_fieldmap'; const setting = Settings.findOne({ _id }); - if (!setting.value) { + if (!setting || !setting.value) { return; } diff --git a/server/startup/migrations/v198.js b/server/startup/migrations/v198.js new file mode 100644 index 000000000000..fa142401ed43 --- /dev/null +++ b/server/startup/migrations/v198.js @@ -0,0 +1,45 @@ +import { Settings } from '../../../app/models/server'; +import { Migrations } from '../../../app/migrations/server'; + +Migrations.add({ + version: 198, + up: () => { + const discussion = Settings.findOneById('RetentionPolicy_DoNotExcludeDiscussion'); + const thread = Settings.findOneById('RetentionPolicy_DoNotExcludeThreads'); + const pinned = Settings.findOneById('RetentionPolicy_ExcludePinned'); + + if (discussion) { + Settings.upsert({ + _id: 'RetentionPolicy_DoNotPruneDiscussion', + }, { + $set: { + value: discussion.value, + }, + }); + } + + if (thread) { + Settings.upsert({ + _id: 'RetentionPolicy_DoNotPruneThreads', + }, { + $set: { + value: thread.value, + }, + }); + } + + if (pinned) { + Settings.upsert({ + _id: 'RetentionPolicy_DoNotPrunePinned', + }, { + $set: { + value: pinned.value, + }, + }); + } + + Settings.remove({ + _id: { $in: ['RetentionPolicy_DoNotExcludeDiscussion', 'RetentionPolicy_DoNotExcludeThreads', 'RetentionPolicy_ExcludePinned'] }, + }); + }, +}); diff --git a/server/startup/migrations/v199.js b/server/startup/migrations/v199.js new file mode 100644 index 000000000000..bd3d111216d0 --- /dev/null +++ b/server/startup/migrations/v199.js @@ -0,0 +1,73 @@ +import { Meteor } from 'meteor/meteor'; +import Future from 'fibers/future'; + +import { Users, Subscriptions } from '../../../app/models/server/raw'; +import { Migrations } from '../../../app/migrations/server'; + +const batchSize = 5000; + +async function migrateUserRecords(total, current) { + console.log(`Migrating ${ current }/${ total }`); + + const items = await Users.find({ __rooms: { $exists: false } }, { projection: { _id: 1 } }).limit(batchSize).toArray(); + + const actions = []; + + for await (const user of items) { + const rooms = await Subscriptions.find({ + 'u._id': user._id, + t: { $nin: ['d', 'l'] }, + }, { projection: { rid: 1 } }).toArray(); + + actions.push({ + updateOne: { + filter: { _id: user._id }, + update: { + $set: { + __rooms: rooms.map(({ rid }) => rid), + }, + }, + }, + }); + } + + if (actions.length === 0) { + return; + } + + const batch = await Users.col.bulkWrite(actions, { ordered: false }); + if (actions.length === batchSize) { + await batch; + return migrateUserRecords(total, current + batchSize); + } + + return batch; +} + +Migrations.add({ + version: 199, + up() { + const fut = new Future(); + + console.log('Changing schema of User records, this may take a long time ...'); + + Meteor.setTimeout(async () => { + const users = Users.find({ __rooms: { $exists: false } }, { projection: { _id: 1 } }); + const total = await users.count(); + await users.close(); + + if (total < batchSize * 10) { + await migrateUserRecords(total, 0); + return fut.return(); + } + + await migrateUserRecords(total, 0); + + fut.return(); + }, 250); + + fut.wait(); + + console.log('Changing schema of User records finished.'); + }, +}); diff --git a/server/startup/migrations/v200.js b/server/startup/migrations/v200.js new file mode 100644 index 000000000000..a8b769ff2f0c --- /dev/null +++ b/server/startup/migrations/v200.js @@ -0,0 +1,28 @@ +import { Migrations } from '../../../app/migrations'; +import { LivechatDepartmentAgents, LivechatDepartment } from '../../../app/models/server'; + +const updateEnabledProperty = (departmentIds) => { + LivechatDepartment + .find({ _id: { $in: departmentIds } }) + .forEach((department) => { + LivechatDepartmentAgents.update({ departmentId: department._id }, + { + $set: { departmentEnabled: department.enabled }, + }, + { + multi: true, + }); + }); +}; + +Migrations.add({ + version: 200, + up() { + const departmentIds = [...new Set(LivechatDepartmentAgents + .find({}, { fields: { departmentId: 1 } }) + .fetch() + .map((departmentAgent) => departmentAgent.departmentId))]; + + updateEnabledProperty(departmentIds); + }, +}); diff --git a/server/startup/migrations/v201.js b/server/startup/migrations/v201.js new file mode 100644 index 000000000000..9c88dc1dc92b --- /dev/null +++ b/server/startup/migrations/v201.js @@ -0,0 +1,54 @@ +import { Meteor } from 'meteor/meteor'; +import { TAPi18n } from 'meteor/rocketchat:tap-i18n'; + +import { Settings } from '../../../app/models/server'; +import { Migrations } from '../../../app/migrations/server'; +import { sendMessagesToAdmins } from '../../lib/sendMessagesToAdmins'; + +Migrations.add({ + version: 201, + up: () => { + const pushEnabled = Settings.findOneById('Push_enable'); + const pushGatewayEnabled = Settings.findOneById('Push_enable_gateway'); + const registerServer = Settings.findOneById('Register_Server'); + const cloudAgreement = Settings.findOneById('Cloud_Service_Agree_PrivacyTerms'); + + if (!pushEnabled?.value) { + return; + } + if (!pushGatewayEnabled?.value) { + return; + } + if (registerServer?.value && cloudAgreement?.value) { + return; + } + + // if push gateway is enabled but server is not registered or cloud terms not agreed, disable gateway and alert admin + Settings.upsert({ + _id: 'Push_enable_gateway', + }, { + $set: { + value: false, + }, + }); + + const id = 'push-gateway-disabled'; + const title = 'Action_required'; + const text = 'The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again'; + const link = '/admin/Push'; + + Meteor.startup(() => { + sendMessagesToAdmins({ + msgs: ({ adminUser }) => [{ msg: `*${ TAPi18n.__(title, adminUser.language) }*\n${ TAPi18n.__(text, adminUser.language) }` }], + banners: [{ + id, + priority: 100, + title, + text, + modifiers: ['danger'], + link, + }], + }); + }); + }, +}); diff --git a/server/startup/migrations/v202.js b/server/startup/migrations/v202.js new file mode 100644 index 000000000000..15f18cd54c67 --- /dev/null +++ b/server/startup/migrations/v202.js @@ -0,0 +1,15 @@ +import { Migrations } from '../../../app/migrations/server'; +import Uploads from '../../../app/models/server/models/Uploads'; + +Migrations.add({ + version: 202, + up() { + Promise.await(Uploads.model.rawCollection().updateMany({ + type: 'audio/mp3', + }, { + $set: { + type: 'audio/mpeg', + }, + })); + }, +});