This repository has been archived by the owner on Mar 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
MM-36919 Custom status expiry #8059
Merged
ogi-m
merged 53 commits into
mattermost:master
from
brightscout-alpha:custom-status-expiry
Jun 21, 2021
Merged
MM-36919 Custom status expiry #8059
ogi-m
merged 53 commits into
mattermost:master
from
brightscout-alpha:custom-status-expiry
Jun 21, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux
Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json
Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors
Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker
Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired
Code refactoring in custom status modal and dateTime input and expiry menu
…pp into custom-status-expiry
* Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component
… custom-status-expiry
Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector
Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots
…app into MI-1235 * 'MI-1235' of github.com:brightscout-alpha/mattermost-webapp: Fixed custom status emoji unit tests
Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal
Added memoization in expiry time in some places
… custom-status-expiry
Hello @manojmalik20, Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here. |
mattermod
added
2: Dev Review
Requires review by a core commiter
3: QA Review
Requires review by a QA tester
labels
May 4, 2021
esethna
added
1: UX Review
Requires review by a UX Designer
1: PM Review
Requires review by a product manager
labels
May 4, 2021
ogi-m
approved these changes
Jun 21, 2021
ogi-m
added
4: Reviews Complete
All reviewers have approved the pull request
and removed
3: QA Review
Requires review by a QA tester
labels
Jun 21, 2021
mattermod
removed
the
Setup Cloud Test Server
Setup a test server using Mattermost Cloud
label
Jun 21, 2021
Test server destroyed |
1 similar comment
Test server destroyed |
/cherry-pick cloud |
Cherry pick is scheduled. |
mattermost-build
pushed a commit
to mattermost-build/mattermost-webapp
that referenced
this pull request
Jun 21, 2021
* Made the UI for expiry Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux * Review fixes and added timepicker menu Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json * Completed the timepicker menu Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors * Fixed some issues in daypicker Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker * Complete expiry support in custom status modal Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired * Review fixes Code refactoring in custom status modal and dateTime input and expiry menu * Changed name of enum Duration to CustomStatusDuration * MI-1235 * Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component * Added memoization in expiry time in some places Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector * Added unit tests and several fixes Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots * Fixed custom status emoji unit tests * Fix types * Refactored some code Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal * Fixed styles in status dropdown menu * Fixed types and added some unit tests Fixed type in custom status emoji tests Added unit tests in status dropdown and profile popover Updated snapshots * Code refactoring and localization ids change Added localization in Until and changed ids of all expiry dropdown options Modified ExpiryTime component to accept classname and wihinBrackets prop Fixed disableSetStatus bug in custom status modal Fixed styling of expiry time everywhere Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component * Updated snapshots * Changed default custom status duration to Today * Fixed i18n-check failing test * Fixed failing unit and e2e tests Refactoed getCustomStatus selector * Added functionality to handle suggestions without duration * Review UI fixes Added font-weight and opacity in expiry value in clear after dropdown Fixed the styling for clear button in the custom status input Fixed the padding for the custom status modal and adjusted all components inside it Changed the opacity for duration in the suggestions Changed the styling for date and time input titles Changed the size of the daypicker Changed the date and time icons from font-awesome to compass icons * Trigger server creation * Fixed the timezone issue in date time input * WIP: Fixing timezone issues for custom status expiry * Fixed the timezone issue in the custom status modal and date/time input Made util for getCurrentMomentForTimezone Changed type for customExpiryTime from Date to Moment Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs * Changed value of DONT_CLEAR key of CustomStatusDuration enum * Changed behavior of Clear after component and showing date/time component and review fixes (mattermost#57) * WIP : Fixing the flow for the custom date time if status already set * Changed display value of Clear after value and review fixes Added prop showPrefix in expiry_time component Changed the behaviour of timestamp in the expiry_time Moved custom status constants from constants.jsx to custom_status_modal and date_time_input Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum Changed the logic of disabling Set Status button and showing/hiding suggestions Fixed the failing unit tests of expiry_menu and date_time_input Added localization in date_time_input using useIntl instead of localizeMessage Added showing expiryTime feature in expiry menu component * Review fixes with some optimization Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry Changed the use of getCustomStatus selector in all places Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components Memoized the time options in the date/time input container by memoizing the handleTimeChange function Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function * Added/Updated unit tests and fixed type check errors Changed the format of expiry time for periods longer than 6 days Fixed the styling of custom status in status dropdown and daypicker in custom status modal * Complete e2e tests (mattermost#58) * Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry Resolved conflicts, updated snapshots and fixed type check errors * WIP : MM-T4063 e2e test for the custom status expiry * Complete e2e tests for expiry Modified and completed MM-T4063 test Completed MM-T4064, MM-T4065, MM-T4066 e2e tests * Updated snapshot * Updated custom_status_emoji to pass the tests * Fixed suggestion without duration bug in the custom status modal * Code refactoring and some bug fixes * Updated snapshots * UI review fixes (mattermost#61) Changed the text for Date and time to Custom Date and Time Removed duration from the suggestions if duration is Don't clear Changed the width of the suggestions dynamically based on the presence of duration Added a unit test for the suggestion and updated the existing snapshot * Resolved conflicts and updated snapshots * Apply suggestions from code review Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Added feature to show year in expiry time if expiry time is after the current year * Review fixes (mattermost#62) * Review fixes Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps Memoized the handleTimeChange function in the menu items of time picker by binding the function * Fixed memoization of makeGetCustomStatus in functional components Fixed memoization in custom_status_emoji, modal and post_header_custom_status components * Refactored some code * Fixed type check errors Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> (cherry picked from commit 182f462)
mattermod
added
the
CherryPick/Done
Successfully cherry-picked to the quality or patch release tracked in the milestone
label
Jun 21, 2021
amyblais
added
Changelog/Done
Required changelog entry has been written
Docs/Needed
Requires documentation
labels
Jun 21, 2021
amyblais
pushed a commit
that referenced
this pull request
Jun 21, 2021
* Made the UI for expiry Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux * Review fixes and added timepicker menu Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json * Completed the timepicker menu Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors * Fixed some issues in daypicker Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker * Complete expiry support in custom status modal Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired * Review fixes Code refactoring in custom status modal and dateTime input and expiry menu * Changed name of enum Duration to CustomStatusDuration * MI-1235 * Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component * Added memoization in expiry time in some places Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector * Added unit tests and several fixes Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots * Fixed custom status emoji unit tests * Fix types * Refactored some code Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal * Fixed styles in status dropdown menu * Fixed types and added some unit tests Fixed type in custom status emoji tests Added unit tests in status dropdown and profile popover Updated snapshots * Code refactoring and localization ids change Added localization in Until and changed ids of all expiry dropdown options Modified ExpiryTime component to accept classname and wihinBrackets prop Fixed disableSetStatus bug in custom status modal Fixed styling of expiry time everywhere Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component * Updated snapshots * Changed default custom status duration to Today * Fixed i18n-check failing test * Fixed failing unit and e2e tests Refactoed getCustomStatus selector * Added functionality to handle suggestions without duration * Review UI fixes Added font-weight and opacity in expiry value in clear after dropdown Fixed the styling for clear button in the custom status input Fixed the padding for the custom status modal and adjusted all components inside it Changed the opacity for duration in the suggestions Changed the styling for date and time input titles Changed the size of the daypicker Changed the date and time icons from font-awesome to compass icons * Trigger server creation * Fixed the timezone issue in date time input * WIP: Fixing timezone issues for custom status expiry * Fixed the timezone issue in the custom status modal and date/time input Made util for getCurrentMomentForTimezone Changed type for customExpiryTime from Date to Moment Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs * Changed value of DONT_CLEAR key of CustomStatusDuration enum * Changed behavior of Clear after component and showing date/time component and review fixes (#57) * WIP : Fixing the flow for the custom date time if status already set * Changed display value of Clear after value and review fixes Added prop showPrefix in expiry_time component Changed the behaviour of timestamp in the expiry_time Moved custom status constants from constants.jsx to custom_status_modal and date_time_input Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum Changed the logic of disabling Set Status button and showing/hiding suggestions Fixed the failing unit tests of expiry_menu and date_time_input Added localization in date_time_input using useIntl instead of localizeMessage Added showing expiryTime feature in expiry menu component * Review fixes with some optimization Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry Changed the use of getCustomStatus selector in all places Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components Memoized the time options in the date/time input container by memoizing the handleTimeChange function Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function * Added/Updated unit tests and fixed type check errors Changed the format of expiry time for periods longer than 6 days Fixed the styling of custom status in status dropdown and daypicker in custom status modal * Complete e2e tests (#58) * Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry Resolved conflicts, updated snapshots and fixed type check errors * WIP : MM-T4063 e2e test for the custom status expiry * Complete e2e tests for expiry Modified and completed MM-T4063 test Completed MM-T4064, MM-T4065, MM-T4066 e2e tests * Updated snapshot * Updated custom_status_emoji to pass the tests * Fixed suggestion without duration bug in the custom status modal * Code refactoring and some bug fixes * Updated snapshots * UI review fixes (#61) Changed the text for Date and time to Custom Date and Time Removed duration from the suggestions if duration is Don't clear Changed the width of the suggestions dynamically based on the presence of duration Added a unit test for the suggestion and updated the existing snapshot * Resolved conflicts and updated snapshots * Apply suggestions from code review Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Added feature to show year in expiry time if expiry time is after the current year * Review fixes (#62) * Review fixes Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps Memoized the handleTimeChange function in the menu items of time picker by binding the function * Fixed memoization of makeGetCustomStatus in functional components Fixed memoization in custom_status_emoji, modal and post_header_custom_status components * Refactored some code * Fixed type check errors Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> (cherry picked from commit 182f462) Co-authored-by: Manoj Malik <manoj@brightscout.com>
cwarnermm
added a commit
to mattermost/docs
that referenced
this pull request
Jul 6, 2021
Documentation for: mattermost/mattermost-webapp#8059 Updated: - Messaging > Customize Mattermost Messaging > Setting Your Status and Availability > Clearing a Custom Status - Added details about setting a custom status expiry
amyblais
pushed a commit
to mattermost/docs
that referenced
this pull request
Jul 10, 2021
* Custom status expiry Documentation for: mattermost/mattermost-webapp#8059 Updated: - Messaging > Customize Mattermost Messaging > Setting Your Status and Availability > Clearing a Custom Status - Added details about setting a custom status expiry * Added new custom status expiry screenshot * Applied reviewer feedback
amyblais
added
Docs/Done
Required documentation has been written
and removed
Docs/Needed
Requires documentation
labels
Jul 10, 2021
amyblais
added a commit
to mattermost/docs
that referenced
this pull request
Jul 16, 2021
* Update conf.py * 5.37 upgrade notes (#4706) * Update important-upgrade-notes.rst * Update important-upgrade-notes.rst * Update open-source-components.rst * Update release-lifecycle.rst * Update upgrade.rst * Update extended-support-release.rst * Update version-archive.rst * Update release-lifecycle.rst * Update important-upgrade-notes.rst * Adding English Australian to translated languages (#4699) * Adding English Australian to translated languages Documentation for: mattermost/mattermost-webapp#8192 Updated: - About Mattermost > Product Overview - Updated languages count to 20, including Australian English - About Mattermost > Product Overview > Mattermost Team Edition - Added Australian English as a supported language * Added Australian English to supported languages list * Updated supported languages count * MM-34475 Emoji 13.0 with new library (#4700) * MM-34475 Emoji 13.0 with new library Documentation for: mattermost/mattermost-webapp#8220 Updated: - Messaging > Work with Messages > Using Emojis > Adding Emojis to messages - Added details about selecting skin tone when selecting or typing emojis - Removed the Accessing Alternate Skin Tones section - Corrected RST formatting so that custom emoji sections now display as intended on the same page * removed custom emoji topic from toctree * Replace 1 screenshot * Reverted screenshot replacement * Added new screenshot for default skin tone selection * Added skin tone selection screenshot * Update source/help/messaging/emoji.rst * Minor text updates for clarity * Replaced first image with redesigned Emoji Picker * Update source/help/messaging/emoji.rst Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com> Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com> * Allow uploading .jpeg files on Linux (#4701) * Allow uploading .jpeg files on Linux Documentation for: mattermost/mattermost-webapp#8224 Updated: - Messaging > Customize Mattermost Messaging > Account Settings > General > Profile Picture - Clarified that BMP, JPG, JPEG, and PNG file formats are supported * Update source/help/settings/account-settings.rst Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com> Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com> * Clarify Add Member to Channel limit (#4704) Documentation for: mattermost/mattermost-webapp#8077 Updated: - Messaging > Manage Teams, Channels, and Members > Managing Channels > Adding members to a channel - clarified that up to 20 members can be added at a time * Custom status expiry (#4697) * Custom status expiry Documentation for: mattermost/mattermost-webapp#8059 Updated: - Messaging > Customize Mattermost Messaging > Setting Your Status and Availability > Clearing a Custom Status - Added details about setting a custom status expiry * Added new custom status expiry screenshot * Applied reviewer feedback * MM-24335 Show recently viewed channels when channel switcher opens (#4698) * MM-24335 Show recently viewed channels when channel switcher opens Documentation for: mattermost/mattermost-webapp#8215 Updated: - Messaging > Manage Teams, Channels, and Members > Managing Channels > Switching channels - Updated the section to clarify that the channel switcher UI includes recently visited channels and to add a screenshot * Added screenshot * Update and rename source/help/getting-started/organizing-conversations.rst to source/getting-started/organizing-conversations.rst Moved source file to its new home & updated relative image links * Moved source file to its new home and fixed relative links * Updated source file name and source path * v5.37 Changelog (#4702) * Update changelog.md * Update changelog.md * Update changelog.md * Update changelog.md * Update changelog.md * Update changelog.md * Update changelog.md * Apply suggestions from code review Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> * Update changelog.md * Update changelog.md * Update changelog.md * Add known issue * Rename source/administration/changelog.md to source/install/self-managed-changelog.md * Update self-managed-changelog.md Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com> * Moved source file to its new home and updated relative image links * Moved source file to its new home and updated relative image paths * Moved source file to its new home * Moved the source file to its new home * Moved source file to its new home * Moved source file to its new home * Moved source file to its new home * Moved source file to its new home * Moved source file to its new home * Moved source file to its new home and updated ThreadAutoFollow details * Update important-upgrade-notes.rst * Update self-managed-changelog.md * Update self-managed-changelog.md * Update self-managed-changelog.md * Update self-managed-changelog.md * Update self-managed-changelog.md * Update self-managed-changelog.md Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>
jwilander
added a commit
that referenced
this pull request
Jul 20, 2021
…8414) * [MM-35780] - Update add users to channel modal test case (#8146) * [MM-35780] - Update add users to channel modal test cas * fix lint error Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-34169] Data retention cypress tests (#8039) * adding cypress tests for data retention Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * WIP ci/test: add NODE_OPTIONS max_old_space_size=500 (#8163) * ci/test: add NODE_OPTIONS max_old_space_size=500 * update gitlab to use the same * [MM-34303] Add team ID to response when linking a channel to a group (#8071) * delete channels when a team is removed from group Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> * Use Node 16 for CI (#8154) * Re-add cross-env to set test timezone * Update package-lock.json again * Update CI to Node 16 * Add workspaces section to package.json * Update package-lock.json * Close empty brackets * MM-34758 Collapsed Reply Threads without mobile support (#7933) Summary Update webapp to pass collapsed_threads_supported parameters to the server API to indicate that the webapp supports collapsed reply threads. Update webapp to correctly mark channels and threads as unread/read. Ticket Link https://mattermost.atlassian.net/browse/MM-34758 Related Pull Requests Has server changes: mattermost/mattermost-server#17424 * MM-35435 - add multiple SKU options to purchase modal (#8119) * MM-35435 - add multiple sku options to purchase modal * MM-35435 - add multiple sku options to purchase modal * add initial logic to update the subscription price * dictionary changes * refactor the api endpoint call * add the right api call * linter changes * remove unnecessary code * add the right productId * fix types problems * first fixes to MR comments * add unit test to radio button group * remove unnecessary space, organize styles * fix linter and types problem, use the current subscription product id * fix snapshots * Revert "fix snapshots" This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb. * improve the findProduct function * reorganize return value * style improvements based on UX feedback Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-35838/MM-35923 Fix memoization of selectors (#8143) * Remove max-lines warning in test files * MM-35838/MM-35923 Fix memoization of makeGetChannelIdsForCategory when channel order changes * MM-35838/MM-35923 Fix memoization of getChannelsNameMapInCurrentTeam when channels change * Clarify memoization pattern * Add getChannelNameToDisplayNameMap for channel linking in Markdown * Remove unused type * MM-32801 : Webapp: In mention autocomplete, remove (Nickname) when (you) is present (#7984) * to ts * added the fix * revert 1 * revert 2 * rvert 3 * revr 4 * rever 5 * req changes * added tests * String update: Clarify Add Member to Channel hint text (#8077) * Clarify Add Member to Channel Hint Text When adding members to a channel, the existing hint text ambiguously suggests that a maximum of 20 members can be added to a given channel. Updated hint text to note that users can add up to 20 members at a time to the channel. * Update MultiSelect to support new text Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com> * CRT: removes comment count (#8134) Removes comment count from post info component. Justification: we show it in root post's thread footer. * Cypress/E2E: Apply temp fix to dnd e2e (#8158) Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-T2369 : Aspect Ratio is preserved in RHS (#8165) * test * Update e2e/cypress/integration/scroll/image_aspect_ratio_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Translations update from Weblate (#8184) * Translated using Weblate (French) Currently translated at 90.9% (4307 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4756 of 4756 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4737 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4737 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Hungarian) Currently translated at 99.2% (4701 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (German) Currently translated at 83.0% (3949 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ Translated using Weblate (German) Currently translated at 83.0% (3952 of 4756 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.4% (4732 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Polish) Currently translated at 77.3% (3679 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/pl/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (French) Currently translated at 90.4% (4305 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: wget <william@gathoye.be> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Zsolt Godó <zsolttokio@gmail.com> Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> * Fixes: position of clear custom status icon (#8173) * ref: migrate announcement_bar to ts (#8133) Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com> * Update PULL_REQUEST_TEMPLATE.md (#8138) * [MM-35922] Fixed a couple style issues with the sidebar category headers on drag (#8157) Automatic Merge * Fixed custom status issues (#8177) Automatic Merge * MM - 35835 show cc info in purchase modal (#8155) * MM-35435 - add multiple sku options to purchase modal * MM-35435 - add multiple sku options to purchase modal * add initial logic to update the subscription price * dictionary changes * refactor the api endpoint call * add the right api call * linter changes * remove unnecessary code * add the right productId * fix types problems * first fixes to MR comments * add unit test to radio button group * remove unnecessary space, organize styles * fix linter and types problem, use the current subscription product id * fix snapshots * Revert "fix snapshots" This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb. * improve the findProduct function * reorganize return value * style improvements based on UX feedback * MM-35835 - show cc info in purchase modal * fix i18n texts * show the billing address information in the purchase form * add the badge and select the next upgrade product * fix styles and translations * add PR review comments * add space between title and checkboxes * rename the selectedProduct variable Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * prevent purchase modal Object.keys invocation with null value (#8188) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Translations update from Weblate (#8194) * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (French) Currently translated at 90.4% (4305 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Added translation using Weblate (English (Australia)) * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: matthew-w <matthew-w@somehting.au> * Changed the api call for the remove recent custom status action (#7751) Co-authored-by: Manoj <manoj@brightscout.com> * added `align-items: center` and increased `line-height` on the `span` (#8190) * MM-36172 - purchase modal empty address issue (#8195) * MM-36172 - purchase modal empty address issue * remove redundant isValid function * remove unnecessary import Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Cleanup store initialization (#8156) * assume enableThunk is never false * drop unused clientOptions * inline createMiddleware * collapse prod/dev configureStore * typescript magic * redux-devtools-extension/developmentOnly * fix linting * MM-T2372 Deleting: Thread does not move when deleting post (#8176) * Add Cypress test for MM-T3080 * MM-T3080 fix lint issues * Login smoke test codereview fixes * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Remove extra spaces * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Adding test for MM-T2372 Deleting * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * resolve conflicts Co-authored-by: Yulyana <yulyana@phntms.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T947 : When deactivating users in the System Console, email address should not disappear (#8175) * test * rewrote the test * Update e2e/cypress/integration/system_console/user_management/users_deactivation_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T1321 : WebApp: Truncated Numbered List on Chat History Panel (#8178) * test * Update e2e/cypress/integration/messaging/message_bullets_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Fixed Test Case (#8202) * [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured (#8179) * [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured * [MM-T1282] Ensure that the system 'about' link and model render the expected site name * Capitalize action verb in e2e test step Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * lint fixup: remove padding blank line from function block Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * MM-36035 - Removing status from bot posts (#8182) Automatic Merge * tests/MM-T1128 : Announcement Banner - Dismissible banner shows long text truncated (#8168) * test * live link * enter big text * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * rev Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * remove cy.clearLocalStorage that probably causing to hold test and eventually timeout error (#8214) * test (#8181) * tests/CTRL+CMD+K : Unread Channels and input field focus (#8185) * test * few improvments * fix * Translations update from Weblate (#8217) * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> * [GH-15803] fix: migrate this.ref.dotMenu to React.createRef (#6667) * fix: migrate this.ref.dotMenu to React.createRef * fix: use correct name and delete eslint ref Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Guillermo Vayá <guillermo.vaya@mattermost.com> * [MM-35669] - Align channel globe icons with sidebar navigator icons (#8145) * [MM-35669] - Align channel globe icons with sidebar navigator icons * UI fixes * Fix icon position Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> * test (#8174) * MM-35717: CRT, new messages line (#8149) MM-35717: CRT, new messages line Adds a "new messages" line separator in the thread viewer. Adds a state.views.threads.lastViewedAt to cache the last_viewed_at of the thread when opening a thread either from the global threads or via selectPost action, or when marking a reply as unread. Websocket events also change the lastViewedAt, but on the condition that the window is not active or the thread is not the selected thread. Marks thread as read as soon as a reply arrives and th thread is open. * MM-35719: CRT, shows following when single message (#8152) MM-35719: CRT, shows following when single message Adds: - It shows a "following" button in the thread footer when a single message is followed. * MM-32788: Permalink'ed replies open thread viewer and jump to in RHS (#8081) MM-32788: CRT, permalink replies open thread in RHS and jump to reply When CRT is enabled clicking to open a permalink to a reply should open the thread viewer in the RHS, highlight, and jump to reply linked. The center view remains the same AKA the channel user clicked the reply (returnTo), with one exception, if the permalink is not in the same team as the current center channel, then redirect to the channel where the reply's root post exists, and open the RHS thread viewer there. * MM-35405: hides reply notifications user setting (#8205) MM-35405: hides reply notifications user setting When CRT is on reply notifications user setting makes no sense as it is. This commit hides that section. Later on a setting about threads will be added on desktop notifications section, when CRT is on. * MM-36112 - hide upgrade references when only one product (#8201) * MM-36112 - hide upgrade references when only one product * replace upgrade button with contact sales * fix typo Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Mm 36066 open cloud pricing link in new tab (#8200) * MM-36066 - open cloud pricing link in new tab * fix translation file reference Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Update NOTICE.txt (#8199) * Update NOTICE.txt * Update NOTICE.txt * MM-36095 Fix text overflow in announcement banner (#8225) * MM-36095 Fix text overflow in announcement banner * Update snapshots * Update E2E test text * Force recalculate emoji picker position on open (#8208) * [MM-35653] Data Retention redux tests (#8118) * adding action tests for data retention * adding more tests for reducers Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> * MM-35626: Export PurchaseModal component and related utils (#8228) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other * Fix snapshots * [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235) * Adding English Australian to translated languages (#8192) * Adding English Australian to translated languages Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Elisabeth Kulzer <elikul@elikul.de> * add marketplace flag (#8207) * MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209) * Update participants for root post for newly received posts * Correctly update reply count for unfollowed threads * Fix unit tests * Fix lint issues * Do not delete unfollowed threads and instead keep data for unfollowed threads up to date * MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167) * fix: use getThreadOrSynthetic * fix: only fetch thread if there are replies * only fetch if actually following * only fetch when there are replies * remove legacy fetch, handled in other places * [MM-36270] Add overflow to emoji rendering (#8227) * add overflow to emoji rendering * actually fix scss * Allow uploading `.jpeg` files on Linux (#8224) * Allow users to upload jpeg pictures as their profile picture * Make constants for image upload types to accept * Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210) * fixed test case * fixed tutorial navigation test case * fixed tutorial nav test case * Fixed link customization Test case (#8213) * Thread move edit (#8203) * Add Cypress test for MM-T3080 * MM-T3080 fix lint issues * Login smoke test codereview fixes * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Remove extra spaces * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Adding test for MM-T2372 Deleting * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * resolve conflicts * Added tTest for MM-T2371 Editing a post * Change comment details * Remove duplicated file * Codereview fixes for scroll editing scenarios * Codereview fixes for scroll editing scenarios * Split editing and deleting scenarios into different files * Code style changes for editing and deleting scenarios Co-authored-by: Yulyana <yulyana@phntms.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186) * test * test * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * rev * rev3 Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Migrate 'components/profile_popover' module and associated tests to T… (#8216) * Migrate 'components/profile_popover' module and associated tests to TypeScript * spanshot test added * fix linting error in utils.jsx * update test snapshot * fix wrong types and type casting * change overwriteName type to React.ReactNode from string and minor refactoring related to that * change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object * hide unread indicator when not following thread (#8221) * Fixes tests in thread viewer (#8247) * MM-35837 Improve batching of channel-related actions on post receipt (#8222) * MM-35837 Improve batching of channel-related actions on post receipt * Remove unused imports * Remove accidental artificial delay * Update tests to expect new batching * MM-35346, MM-35394: Fix unread selectors/indicators (#8159) * fix: keep badge on hover * remove unneeded importants * CRT unread channel filter * other LHS selectors * fix selector * add test Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes: crash at global threads on root post delete (#8231) If a root post is deleted and the user is at global threads view, the app crashes. This commit fixes that by removing the thread from the threads reducer. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34578 - update permission name to see button in main menu (#8229) * MM-34578 - update permission name to see button in main menu * add tests for when there is no valid permissions * fix linter Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-35538 - display purchase modal when coming from email (#8234) * MM-35538 - display purchase modal when coming from email * use better name for query param Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Cypress/E2E: Update Zephyr Scale API URL (#8252) * MM-35919: CRT makes threads nav menu sticky (#8239) Threads nav menu, both in legacy and regular sidebar, is moved outside of the scrollable area, so it always 'sticky' at the same position. * ref: migrate call_button to ts (#8183) * Downgrading Polish, Italian and German to beta (#8254) * Downgrading Polish, Italian and German to beta * Update latex_block.test.tsx.snap * Update snapshot latex_block.test.tsx.snap Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> * [MM-36294] Update marketplace install command (#8244) * Translations update from Weblate (#8265) * Translated using Weblate (German) Currently translated at 83.5% (3976 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Hungarian) Currently translated at 99.2% (4726 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (French) Currently translated at 90.7% (4318 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Zsolt Godó <zsolttokio@gmail.com> Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> * Set build image version as variable (#8261) * Handle is_following not being set for edited posts (#8262) * MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259) * Remove unnecessary comment count propagation needed for delete modal * Remove unnecessary reply count propagation through post components * Remove unnecessary reply count propagation through PostInfo component * Fix style * Update snapshots * Hide comment count on root posts for CRT * Use reply count from post if thread not tracked in postsInThread reducer (#8271) * [MM-36704] Add selector specifically for search channel name to handle its cases (#8237) * [MM-36704] Add selector specifically for search channel name to handle its cases * Update packages/mattermost-redux/src/selectors/entities/channels.ts Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * Refactor based on Harrison's comments * Other PR feedback * Use completeDirectGroupInfo to get GM user names with a little modification Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * [34475] Emoji 13.0 with new library (#8220) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * fix using sprites, fix custom emojis section * fix search with custom emojis * make linter happy * fix tests * MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189) * Add basic framework and example for tracking memoization effectiveness * Updates per feedback * Create custom reselect package and update all usages of createSelector to pass in names * Re-add selector tracking * Add second test for typing * Fix storybook reselect resolution * ref: migrate request_button to ts (#8120) * ref: migrate request_button to ts * test: update request button snapshot Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270) * MM-35840: fixes up arrow edit in CRT (#8238) * MM-35840: fixes up arrow edit in CRT We used to get post ids from the channel to find current user's last post. This worked in threads when CRT off, but if you turn CRT on replies are not added in the channel thus not being able to find the user's last post correctly. This commit fixes that by getting post ids from the thread* (postsInThread) and not the channel, this way both CRT on/off are working as expected. *renamed the selector from makeGetCurrentUsersLatestPost to makeGetCurrentUsersLatestReply. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes selector's name for tracking (#8275) * MM-35917: closes RHS upon navigating to threads (#8257) * MM-35917: closes RHS upon navigating to threads Clicking on global threads link closes the RHS. This is done to reduce the amount of panels in the global threads view upon arriving * Saves and restores RHS state Saves RHS state when navigating to global threads, and restores the state upon leaving global threads. This is done so we open the RHS, if needed, upon leaving global threads. * Changes stash/restore logic to just a boolean Rename rhs_stash to rhs_suppressed which only holds a boolean on whether to suppress rhs (close) or not. Suppressing functions as stashing did before. Upon visiting global threads page it suppresses the RHS and upon exiting it re-instates RHS to its previous state. * Fixes weird search menu focus on RHS suppress Fixes a bug when suppressing the RHS by going to the global threads, and then using search and going to a channel and back to the global threads it would show the search menu. * Renames reducer to a more appropriate name * Shrinks RHS upon suppressing Suppressing RHS shrinks the sidebar. Similarly switching from global threads to a channel also shrinks the sidebar. * MM-35806: shows participants when toggling CRT (#8255) Toggling CRT 'on' wouldn't show participants at all for unfollowed posts. We short-circuit receiving posts in the reducers based on old/new post's `update_at` property. Posts have some extra properties though which didn't got updated in redux when toggling CRT on. This commit refactors the short-circuit into a `shouldUpdatePost` utility function, taking into account not only the `update_at` but the CRT posts' extra properties. * MM-36218,MM-36219: CRT thread read flashes (#8272) New messages that arrive while the thread is open are marked as read and the indicators don't flash anymore. Furthermore if a thread is manually marked as unread it should stay unread even if new messages arrive while it's open. * MM-35769: CRT, shows unread indicator (#8267) * MM-35769: CRT: shows unread indicator Shows unread indicator when on global threads page as well. * Removes unnecessary lines Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-35720,MM-36293: land at new messages line (#8226) * MM-35720: land at new messages line When opening a followed thread with unreads, land at/scroll to New Messages line * Fixes scrolling to bottom on thread viewer on open We used to call `scrollToBottom` on mount, but when the thread was empty it had no effect. This commit fixes it so that scrolling is called after getting the thread/posts. * Fixes typing issue * Fixes marking as read The last thread opened in the global threads kept getting marked as read even when user had navigated to a channel. This commit fixes that by clearing the selected thread id in the reducer upon leaving global threads page. * Fixes tests * Removes unwanted guard * Fixes landing on new messages line Scroll to bottom should be blocked when highlighting a post, or when we are yet to scroll on new messages line. * Adds loading screen to thread viewer Shows a loading screen when when not all messages are loaded. * Fixes tests * Shows new messages line on new threads Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34437 Preventing infinite trial requests (#7944) * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * WIP * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 cleanup and adding comments * #MM-34437 Fixed lint errors * #MM-34437 added missing function params * #MM-34437 fixed existing tests * #MM-34437 added new tests * #MM-34437 restored package lock * #MM-34437 lint fixes * #MM-34437 Added contact sales button in feature discovery component * #MM-34437 reverted package lock changes commited accidently * #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes * #MM-34437 Refactored ContactUs component to avoid issues with mmjstools * #MM-34437 used t to avoid messy ContactUs component * #MM-34437 fixed global state type * #MM-34437 renamed contact sales to contact us in remianing places * #MM-34437 updated snaps * #MM-34437 added sales contact link in upload trial error message * #MM-34437 make contact sales component accept text component * #MM-34437 addech trial check via flag * #MM-34437 removed unnecessary async * MM-34437 shortcircuit if trial flag is set * Fixed paid license renbew button styling * #MM-34437 Adjusted trial time for sacntioned * Fixed missed brace * Fix several autocomplete problems (#8197) * [MM-24335] Show recently viewed channels when channel switcher opens (#8215) * Show recently viewed channels when channel switcher opens * update snapshot cause change in quick switch component ui * add public channel fetch method if user isn't part of more than one channel and minor refactoring * minor code clean up * code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at * minor refactoring unified variable names * fix missing params issue with getTimestampFromPrefs * use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels * fix Dms/Gms not showing up in list even if they have recent activity Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Emoji makefile (#8276) * make golang linter happy * makefile and license for go files * MM-36561: fixes loader shown on socket reconnect (#8281) * Cypress/E2E: Promote category sorting (#8285) * Show thread as followed immediately on webapp when marking posts unread from the thread (#8283) * Translations update from Weblate (#8288) * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Australia)) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 99.9% (4760 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.8% (4756 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Hungarian) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 99.6% (4744 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 93.6% (4459 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ Translated using Weblate (Bulgarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Japanese) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> * MM-30446: Fix toast dismiss hover console error (#8284) * fix: use intl-compat OverlayTrigger * hoist OverlayTrigger * update snapshots * Implement FileDropdown Actions Plugin Method (#8139) * Add file drpdown action plugins framework * Fix search-item-snippet CSS * Show post menu when file dropdown is open * Code refactoring * Fix lint * Update tests props * make handleFileDropdownOpened prop optional * Update handleFileDropdownOpened implementation * Fix lint * Update CSS styles * Use memoization for plugin file dropdown items * Fix lint * Fixed type check errors * update snapshots * Update snapshots * use createSelector for files dropdown plugin selector * Update components/file_attachment/file_attachment.tsx Co-authored-by: Daniel Espino García <larkox@gmail.com> Co-authored-by: Manoj <manoj@brightscout.com> Co-authored-by: Daniel Espino García <larkox@gmail.com> * MM-36590 Re-add old emoji aliases (#8287) * Re-add old emoji aliases * Update unit tests * Custom status expiry (#8059) * Made the UI for expiry Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux * Review fixes and added timepicker menu Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json * Completed the timepicker menu Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors * Fixed some issues in daypicker Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker * Complete expiry support in custom status modal Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired * Review fixes Code refactoring in custom status modal and dateTime input and expiry menu * Changed name of enum Duration to CustomStatusDuration * MI-1235 * Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component * Added memoization in expiry time in some places Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector * Added unit tests and several fixes Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots * Fixed custom status emoji unit tests * Fix types * Refactored some code Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal * Fixed styles in status dropdown menu * Fixed types and added some unit tests Fixed type in custom status emoji tests Added unit tests in status dropdown and profile popover Updated snapshots * Code refactoring and localization ids change Added localization in Until and changed ids of all expiry dropdown options Modified ExpiryTime component to accept classname and wihinBrackets prop Fixed disableSetStatus bug in custom status modal Fixed styling of expiry time everywhere Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component * Updated snapshots * Changed default custom status duration to Today * Fixed i18n-check failing test * Fixed failing unit and e2e tests Refactoed getCustomStatus selector * Added functionality to handle suggestions without duration * Review UI fixes Added font-weight and opacity in expiry value in clear after dropdown Fixed the styling for clear button in the custom status input Fixed the padding for the custom status modal and adjusted all components inside it Changed the opacity for duration in the suggestions Changed the styling for date and time input titles Changed the size of the daypicker Changed the date and time icons from font-awesome to compass icons * Trigger server creation * Fixed the timezone issue in date time input * WIP: Fixing timezone issues for custom status expiry * Fixed the timezone issue in the custom status modal and date/time input Made util for getCurrentMomentForTimezone Changed type for customExpiryTime from Date to Moment Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs * Changed value of DONT_CLEAR key of CustomStatusDuration enum * Changed behavior of Clear after component and showing date/time component and review fixes (#57) * WIP : Fixing the flow for the custom date time if status already set * Changed display value of Clear after value and review fixes Added prop showPrefix in expiry_time component Changed the behaviour of timestamp in the expiry_time Moved custom status constants from constants.jsx to custom_status_modal and date_time_input Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum Changed the logic of disabling Set Status button and showing/hiding suggestions Fixed the failing unit tests of expiry_menu and date_time_input Added localization in date_time_input using useIntl instead of localizeMessage Added showing expiryTime feature in expiry menu component * Review fixes with some optimization Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry Changed the use of getCustomStatus selector in all places Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components Memoized the time options in the date/time input container by memoizing the handleTimeChange function Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function * Added/Updated unit tests and fixed type check errors Changed the format of expiry time for periods longer than 6 days Fixed the styling of custom status in status dropdown and daypicker in custom status modal * Complete e2e tests (#58) * Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry Resolved conflicts, updated snapshots and fixed type check errors * WIP : MM-T4063 e2e test for the custom status expiry * Complete e2e tests for expiry Modified and completed MM-T4063 test Completed MM-T4064, MM-T4065, MM-T4066 e2e tests * Updated snapshot * Updated custom_status_emoji to pass the tests * Fixed suggestion without duration bug in the custom status modal * Code refactoring and some bug fixes * Updated snapshots * UI review fixes (#61) Changed the text for Date and time to Custom Date and Time Removed duration from the suggestions if duration is Don't clear Changed the width of the suggestions dynamically based on the presence of duration Added a unit test for the suggestion and updated the existing snapshot * Resolved conflicts and updated snapshots * Apply suggestions from code review Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Added feature to show year in expiry time if expiry time is after the current year * Review fixes (#62) * Review fixes Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps Memoized the handleTimeChange function in the menu items of time picker by binding the function * Fixed memoization of makeGetCustomStatus in functional components Fixed memoization in custom_status_emoji, modal and post_header_custom_status components * Refactored some code * Fixed type check errors Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * fix reselect signature (#8296) * fix import errors (#8298) * [MM-25435] Emoji picker + skin tones (#8282) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * wip * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * wip * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * emoji gen with skin switching * add skin categories, place skin selector * initial version * css fixes * fix height * fix tests * fix position * address some review comments * more review fixes * more css fixes * more fix css * remove async from action dispatch * check emoji creation permissions to enable button * more CR fixes * css fixes * fix jumping magnifier * fix skin tone selector position * set label as default always * make skin picker behave better * fix reducer Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Add app icon to Marketplace (#8187) * MM-36341 - order plan lists (#8253) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-18496] Private channels should appear in channel link autocomplete (#8286) * MM-36542: getOpenThreadId should consider suppressed RHS (#8279) * MM-36542: getOpenThreadId should consider suppressed RHS Fixes a bug when suppressing RHS via going to global threads, and then receiving new replies to the thread open in the suppressed RHS, kept marking them as read. This commit changes `getOpenThreadId` to consider if RHS is open or not. Also mounting and unmounting components in the RHS with account to RHS hidden/visible, this last change was made because we are able to suppress the RHS and suppressing does not clear rhsState nor selectedPostId etc.. * Fixes: more than one threads can be open isThreadOpen didn't took into account that more than one threads can be open at the same time. This commit changes that. * [MM-36626] fix emoji picker colors (#8303) * [MM-36626] fix emoji picker colors * review changes * fix review changes, make tabs more consistent * handle hover as a whole * remove opacity * MM-35191 - show banner in user timezone (#8243) * MM-35191 - show banner in user timezone * fix en locale * add the user timezone to the date format * add the trial ends value * fix the duplicated title * Change the string date format * remove the user timezone from the date portion of the string Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-36654 Re-add Mattermost emoji (#8309) * MM-36654 Re-add Mattermost emoji * Move custom emoji preview to match system emojis * Remove extra entry from _emojisprint.scss * MM-36593 RHS performance improvements (#8292) * Use createIdsSelector for makeGetPostsForThread * Fix re-rendering caused by SearchResults's mapStateToProps * Fix unit test for makeGetPostsForThread * Translations update from Weblate (#8314) * Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4777 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Spanish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 97.9% (4677 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 96.9% (4630 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 99.7% (4763 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr…
isacikgoz
added a commit
that referenced
this pull request
Aug 4, 2021
…8514) * [MM-35780] - Update add users to channel modal test case (#8146) * [MM-35780] - Update add users to channel modal test cas * fix lint error Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-34169] Data retention cypress tests (#8039) * adding cypress tests for data retention Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * WIP ci/test: add NODE_OPTIONS max_old_space_size=500 (#8163) * ci/test: add NODE_OPTIONS max_old_space_size=500 * update gitlab to use the same * [MM-34303] Add team ID to response when linking a channel to a group (#8071) * delete channels when a team is removed from group Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> * Use Node 16 for CI (#8154) * Re-add cross-env to set test timezone * Update package-lock.json again * Update CI to Node 16 * Add workspaces section to package.json * Update package-lock.json * Close empty brackets * MM-34758 Collapsed Reply Threads without mobile support (#7933) Summary Update webapp to pass collapsed_threads_supported parameters to the server API to indicate that the webapp supports collapsed reply threads. Update webapp to correctly mark channels and threads as unread/read. Ticket Link https://mattermost.atlassian.net/browse/MM-34758 Related Pull Requests Has server changes: mattermost/mattermost-server#17424 * MM-35435 - add multiple SKU options to purchase modal (#8119) * MM-35435 - add multiple sku options to purchase modal * MM-35435 - add multiple sku options to purchase modal * add initial logic to update the subscription price * dictionary changes * refactor the api endpoint call * add the right api call * linter changes * remove unnecessary code * add the right productId * fix types problems * first fixes to MR comments * add unit test to radio button group * remove unnecessary space, organize styles * fix linter and types problem, use the current subscription product id * fix snapshots * Revert "fix snapshots" This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb. * improve the findProduct function * reorganize return value * style improvements based on UX feedback Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-35838/MM-35923 Fix memoization of selectors (#8143) * Remove max-lines warning in test files * MM-35838/MM-35923 Fix memoization of makeGetChannelIdsForCategory when channel order changes * MM-35838/MM-35923 Fix memoization of getChannelsNameMapInCurrentTeam when channels change * Clarify memoization pattern * Add getChannelNameToDisplayNameMap for channel linking in Markdown * Remove unused type * MM-32801 : Webapp: In mention autocomplete, remove (Nickname) when (you) is present (#7984) * to ts * added the fix * revert 1 * revert 2 * rvert 3 * revr 4 * rever 5 * req changes * added tests * String update: Clarify Add Member to Channel hint text (#8077) * Clarify Add Member to Channel Hint Text When adding members to a channel, the existing hint text ambiguously suggests that a maximum of 20 members can be added to a given channel. Updated hint text to note that users can add up to 20 members at a time to the channel. * Update MultiSelect to support new text Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com> * CRT: removes comment count (#8134) Removes comment count from post info component. Justification: we show it in root post's thread footer. * Cypress/E2E: Apply temp fix to dnd e2e (#8158) Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-T2369 : Aspect Ratio is preserved in RHS (#8165) * test * Update e2e/cypress/integration/scroll/image_aspect_ratio_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Translations update from Weblate (#8184) * Translated using Weblate (French) Currently translated at 90.9% (4307 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4756 of 4756 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4737 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4737 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Hungarian) Currently translated at 99.2% (4701 of 4737 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (German) Currently translated at 83.0% (3949 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ Translated using Weblate (German) Currently translated at 83.0% (3952 of 4756 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.4% (4732 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Polish) Currently translated at 77.3% (3679 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/pl/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4757 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (French) Currently translated at 90.4% (4305 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: wget <william@gathoye.be> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Zsolt Godó <zsolttokio@gmail.com> Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> * Fixes: position of clear custom status icon (#8173) * ref: migrate announcement_bar to ts (#8133) Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com> * Update PULL_REQUEST_TEMPLATE.md (#8138) * [MM-35922] Fixed a couple style issues with the sidebar category headers on drag (#8157) Automatic Merge * Fixed custom status issues (#8177) Automatic Merge * MM - 35835 show cc info in purchase modal (#8155) * MM-35435 - add multiple sku options to purchase modal * MM-35435 - add multiple sku options to purchase modal * add initial logic to update the subscription price * dictionary changes * refactor the api endpoint call * add the right api call * linter changes * remove unnecessary code * add the right productId * fix types problems * first fixes to MR comments * add unit test to radio button group * remove unnecessary space, organize styles * fix linter and types problem, use the current subscription product id * fix snapshots * Revert "fix snapshots" This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb. * improve the findProduct function * reorganize return value * style improvements based on UX feedback * MM-35835 - show cc info in purchase modal * fix i18n texts * show the billing address information in the purchase form * add the badge and select the next upgrade product * fix styles and translations * add PR review comments * add space between title and checkboxes * rename the selectedProduct variable Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * prevent purchase modal Object.keys invocation with null value (#8188) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Translations update from Weblate (#8194) * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (French) Currently translated at 90.4% (4305 of 4757 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Added translation using Weblate (English (Australia)) * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: matthew-w <matthew-w@somehting.au> * Changed the api call for the remove recent custom status action (#7751) Co-authored-by: Manoj <manoj@brightscout.com> * added `align-items: center` and increased `line-height` on the `span` (#8190) * MM-36172 - purchase modal empty address issue (#8195) * MM-36172 - purchase modal empty address issue * remove redundant isValid function * remove unnecessary import Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Cleanup store initialization (#8156) * assume enableThunk is never false * drop unused clientOptions * inline createMiddleware * collapse prod/dev configureStore * typescript magic * redux-devtools-extension/developmentOnly * fix linting * MM-T2372 Deleting: Thread does not move when deleting post (#8176) * Add Cypress test for MM-T3080 * MM-T3080 fix lint issues * Login smoke test codereview fixes * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Remove extra spaces * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Adding test for MM-T2372 Deleting * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * resolve conflicts Co-authored-by: Yulyana <yulyana@phntms.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T947 : When deactivating users in the System Console, email address should not disappear (#8175) * test * rewrote the test * Update e2e/cypress/integration/system_console/user_management/users_deactivation_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T1321 : WebApp: Truncated Numbered List on Chat History Panel (#8178) * test * Update e2e/cypress/integration/messaging/message_bullets_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Fixed Test Case (#8202) * [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured (#8179) * [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured * [MM-T1282] Ensure that the system 'about' link and model render the expected site name * Capitalize action verb in e2e test step Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * lint fixup: remove padding blank line from function block Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * MM-36035 - Removing status from bot posts (#8182) Automatic Merge * tests/MM-T1128 : Announcement Banner - Dismissible banner shows long text truncated (#8168) * test * live link * enter big text * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * rev Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * remove cy.clearLocalStorage that probably causing to hold test and eventually timeout error (#8214) * test (#8181) * tests/CTRL+CMD+K : Unread Channels and input field focus (#8185) * test * few improvments * fix * Translations update from Weblate (#8217) * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> * [GH-15803] fix: migrate this.ref.dotMenu to React.createRef (#6667) * fix: migrate this.ref.dotMenu to React.createRef * fix: use correct name and delete eslint ref Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Guillermo Vayá <guillermo.vaya@mattermost.com> * [MM-35669] - Align channel globe icons with sidebar navigator icons (#8145) * [MM-35669] - Align channel globe icons with sidebar navigator icons * UI fixes * Fix icon position Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> * test (#8174) * MM-35717: CRT, new messages line (#8149) MM-35717: CRT, new messages line Adds a "new messages" line separator in the thread viewer. Adds a state.views.threads.lastViewedAt to cache the last_viewed_at of the thread when opening a thread either from the global threads or via selectPost action, or when marking a reply as unread. Websocket events also change the lastViewedAt, but on the condition that the window is not active or the thread is not the selected thread. Marks thread as read as soon as a reply arrives and th thread is open. * MM-35719: CRT, shows following when single message (#8152) MM-35719: CRT, shows following when single message Adds: - It shows a "following" button in the thread footer when a single message is followed. * MM-32788: Permalink'ed replies open thread viewer and jump to in RHS (#8081) MM-32788: CRT, permalink replies open thread in RHS and jump to reply When CRT is enabled clicking to open a permalink to a reply should open the thread viewer in the RHS, highlight, and jump to reply linked. The center view remains the same AKA the channel user clicked the reply (returnTo), with one exception, if the permalink is not in the same team as the current center channel, then redirect to the channel where the reply's root post exists, and open the RHS thread viewer there. * MM-35405: hides reply notifications user setting (#8205) MM-35405: hides reply notifications user setting When CRT is on reply notifications user setting makes no sense as it is. This commit hides that section. Later on a setting about threads will be added on desktop notifications section, when CRT is on. * MM-36112 - hide upgrade references when only one product (#8201) * MM-36112 - hide upgrade references when only one product * replace upgrade button with contact sales * fix typo Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Mm 36066 open cloud pricing link in new tab (#8200) * MM-36066 - open cloud pricing link in new tab * fix translation file reference Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Update NOTICE.txt (#8199) * Update NOTICE.txt * Update NOTICE.txt * MM-36095 Fix text overflow in announcement banner (#8225) * MM-36095 Fix text overflow in announcement banner * Update snapshots * Update E2E test text * Force recalculate emoji picker position on open (#8208) * [MM-35653] Data Retention redux tests (#8118) * adding action tests for data retention * adding more tests for reducers Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> * MM-35626: Export PurchaseModal component and related utils (#8228) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other * Fix snapshots * [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235) * Adding English Australian to translated languages (#8192) * Adding English Australian to translated languages Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Elisabeth Kulzer <elikul@elikul.de> * add marketplace flag (#8207) * MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209) * Update participants for root post for newly received posts * Correctly update reply count for unfollowed threads * Fix unit tests * Fix lint issues * Do not delete unfollowed threads and instead keep data for unfollowed threads up to date * MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167) * fix: use getThreadOrSynthetic * fix: only fetch thread if there are replies * only fetch if actually following * only fetch when there are replies * remove legacy fetch, handled in other places * [MM-36270] Add overflow to emoji rendering (#8227) * add overflow to emoji rendering * actually fix scss * Allow uploading `.jpeg` files on Linux (#8224) * Allow users to upload jpeg pictures as their profile picture * Make constants for image upload types to accept * Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210) * fixed test case * fixed tutorial navigation test case * fixed tutorial nav test case * Fixed link customization Test case (#8213) * Thread move edit (#8203) * Add Cypress test for MM-T3080 * MM-T3080 fix lint issues * Login smoke test codereview fixes * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Remove extra spaces * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Adding test for MM-T2372 Deleting * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * resolve conflicts * Added tTest for MM-T2371 Editing a post * Change comment details * Remove duplicated file * Codereview fixes for scroll editing scenarios * Codereview fixes for scroll editing scenarios * Split editing and deleting scenarios into different files * Code style changes for editing and deleting scenarios Co-authored-by: Yulyana <yulyana@phntms.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186) * test * test * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * rev * rev3 Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Migrate 'components/profile_popover' module and associated tests to T… (#8216) * Migrate 'components/profile_popover' module and associated tests to TypeScript * spanshot test added * fix linting error in utils.jsx * update test snapshot * fix wrong types and type casting * change overwriteName type to React.ReactNode from string and minor refactoring related to that * change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object * hide unread indicator when not following thread (#8221) * Fixes tests in thread viewer (#8247) * MM-35837 Improve batching of channel-related actions on post receipt (#8222) * MM-35837 Improve batching of channel-related actions on post receipt * Remove unused imports * Remove accidental artificial delay * Update tests to expect new batching * MM-35346, MM-35394: Fix unread selectors/indicators (#8159) * fix: keep badge on hover * remove unneeded importants * CRT unread channel filter * other LHS selectors * fix selector * add test Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes: crash at global threads on root post delete (#8231) If a root post is deleted and the user is at global threads view, the app crashes. This commit fixes that by removing the thread from the threads reducer. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34578 - update permission name to see button in main menu (#8229) * MM-34578 - update permission name to see button in main menu * add tests for when there is no valid permissions * fix linter Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-35538 - display purchase modal when coming from email (#8234) * MM-35538 - display purchase modal when coming from email * use better name for query param Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Cypress/E2E: Update Zephyr Scale API URL (#8252) * MM-35919: CRT makes threads nav menu sticky (#8239) Threads nav menu, both in legacy and regular sidebar, is moved outside of the scrollable area, so it always 'sticky' at the same position. * ref: migrate call_button to ts (#8183) * Downgrading Polish, Italian and German to beta (#8254) * Downgrading Polish, Italian and German to beta * Update latex_block.test.tsx.snap * Update snapshot latex_block.test.tsx.snap Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> * [MM-36294] Update marketplace install command (#8244) * Translations update from Weblate (#8265) * Translated using Weblate (German) Currently translated at 83.5% (3976 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Hungarian) Currently translated at 99.2% (4726 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (French) Currently translated at 90.7% (4318 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Zsolt Godó <zsolttokio@gmail.com> Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> * Set build image version as variable (#8261) * Handle is_following not being set for edited posts (#8262) * MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259) * Remove unnecessary comment count propagation needed for delete modal * Remove unnecessary reply count propagation through post components * Remove unnecessary reply count propagation through PostInfo component * Fix style * Update snapshots * Hide comment count on root posts for CRT * Use reply count from post if thread not tracked in postsInThread reducer (#8271) * [MM-36704] Add selector specifically for search channel name to handle its cases (#8237) * [MM-36704] Add selector specifically for search channel name to handle its cases * Update packages/mattermost-redux/src/selectors/entities/channels.ts Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * Refactor based on Harrison's comments * Other PR feedback * Use completeDirectGroupInfo to get GM user names with a little modification Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * [34475] Emoji 13.0 with new library (#8220) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * fix using sprites, fix custom emojis section * fix search with custom emojis * make linter happy * fix tests * MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189) * Add basic framework and example for tracking memoization effectiveness * Updates per feedback * Create custom reselect package and update all usages of createSelector to pass in names * Re-add selector tracking * Add second test for typing * Fix storybook reselect resolution * ref: migrate request_button to ts (#8120) * ref: migrate request_button to ts * test: update request button snapshot Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270) * MM-35840: fixes up arrow edit in CRT (#8238) * MM-35840: fixes up arrow edit in CRT We used to get post ids from the channel to find current user's last post. This worked in threads when CRT off, but if you turn CRT on replies are not added in the channel thus not being able to find the user's last post correctly. This commit fixes that by getting post ids from the thread* (postsInThread) and not the channel, this way both CRT on/off are working as expected. *renamed the selector from makeGetCurrentUsersLatestPost to makeGetCurrentUsersLatestReply. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes selector's name for tracking (#8275) * MM-35917: closes RHS upon navigating to threads (#8257) * MM-35917: closes RHS upon navigating to threads Clicking on global threads link closes the RHS. This is done to reduce the amount of panels in the global threads view upon arriving * Saves and restores RHS state Saves RHS state when navigating to global threads, and restores the state upon leaving global threads. This is done so we open the RHS, if needed, upon leaving global threads. * Changes stash/restore logic to just a boolean Rename rhs_stash to rhs_suppressed which only holds a boolean on whether to suppress rhs (close) or not. Suppressing functions as stashing did before. Upon visiting global threads page it suppresses the RHS and upon exiting it re-instates RHS to its previous state. * Fixes weird search menu focus on RHS suppress Fixes a bug when suppressing the RHS by going to the global threads, and then using search and going to a channel and back to the global threads it would show the search menu. * Renames reducer to a more appropriate name * Shrinks RHS upon suppressing Suppressing RHS shrinks the sidebar. Similarly switching from global threads to a channel also shrinks the sidebar. * MM-35806: shows participants when toggling CRT (#8255) Toggling CRT 'on' wouldn't show participants at all for unfollowed posts. We short-circuit receiving posts in the reducers based on old/new post's `update_at` property. Posts have some extra properties though which didn't got updated in redux when toggling CRT on. This commit refactors the short-circuit into a `shouldUpdatePost` utility function, taking into account not only the `update_at` but the CRT posts' extra properties. * MM-36218,MM-36219: CRT thread read flashes (#8272) New messages that arrive while the thread is open are marked as read and the indicators don't flash anymore. Furthermore if a thread is manually marked as unread it should stay unread even if new messages arrive while it's open. * MM-35769: CRT, shows unread indicator (#8267) * MM-35769: CRT: shows unread indicator Shows unread indicator when on global threads page as well. * Removes unnecessary lines Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-35720,MM-36293: land at new messages line (#8226) * MM-35720: land at new messages line When opening a followed thread with unreads, land at/scroll to New Messages line * Fixes scrolling to bottom on thread viewer on open We used to call `scrollToBottom` on mount, but when the thread was empty it had no effect. This commit fixes it so that scrolling is called after getting the thread/posts. * Fixes typing issue * Fixes marking as read The last thread opened in the global threads kept getting marked as read even when user had navigated to a channel. This commit fixes that by clearing the selected thread id in the reducer upon leaving global threads page. * Fixes tests * Removes unwanted guard * Fixes landing on new messages line Scroll to bottom should be blocked when highlighting a post, or when we are yet to scroll on new messages line. * Adds loading screen to thread viewer Shows a loading screen when when not all messages are loaded. * Fixes tests * Shows new messages line on new threads Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34437 Preventing infinite trial requests (#7944) * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * WIP * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 cleanup and adding comments * #MM-34437 Fixed lint errors * #MM-34437 added missing function params * #MM-34437 fixed existing tests * #MM-34437 added new tests * #MM-34437 restored package lock * #MM-34437 lint fixes * #MM-34437 Added contact sales button in feature discovery component * #MM-34437 reverted package lock changes commited accidently * #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes * #MM-34437 Refactored ContactUs component to avoid issues with mmjstools * #MM-34437 used t to avoid messy ContactUs component * #MM-34437 fixed global state type * #MM-34437 renamed contact sales to contact us in remianing places * #MM-34437 updated snaps * #MM-34437 added sales contact link in upload trial error message * #MM-34437 make contact sales component accept text component * #MM-34437 addech trial check via flag * #MM-34437 removed unnecessary async * MM-34437 shortcircuit if trial flag is set * Fixed paid license renbew button styling * #MM-34437 Adjusted trial time for sacntioned * Fixed missed brace * Fix several autocomplete problems (#8197) * [MM-24335] Show recently viewed channels when channel switcher opens (#8215) * Show recently viewed channels when channel switcher opens * update snapshot cause change in quick switch component ui * add public channel fetch method if user isn't part of more than one channel and minor refactoring * minor code clean up * code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at * minor refactoring unified variable names * fix missing params issue with getTimestampFromPrefs * use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels * fix Dms/Gms not showing up in list even if they have recent activity Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Emoji makefile (#8276) * make golang linter happy * makefile and license for go files * MM-36561: fixes loader shown on socket reconnect (#8281) * Cypress/E2E: Promote category sorting (#8285) * Show thread as followed immediately on webapp when marking posts unread from the thread (#8283) * Translations update from Weblate (#8288) * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Australia)) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 99.9% (4760 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.8% (4756 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Hungarian) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 99.6% (4744 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 93.6% (4459 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ Translated using Weblate (Bulgarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Japanese) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> * MM-30446: Fix toast dismiss hover console error (#8284) * fix: use intl-compat OverlayTrigger * hoist OverlayTrigger * update snapshots * Implement FileDropdown Actions Plugin Method (#8139) * Add file drpdown action plugins framework * Fix search-item-snippet CSS * Show post menu when file dropdown is open * Code refactoring * Fix lint * Update tests props * make handleFileDropdownOpened prop optional * Update handleFileDropdownOpened implementation * Fix lint * Update CSS styles * Use memoization for plugin file dropdown items * Fix lint * Fixed type check errors * update snapshots * Update snapshots * use createSelector for files dropdown plugin selector * Update components/file_attachment/file_attachment.tsx Co-authored-by: Daniel Espino García <larkox@gmail.com> Co-authored-by: Manoj <manoj@brightscout.com> Co-authored-by: Daniel Espino García <larkox@gmail.com> * MM-36590 Re-add old emoji aliases (#8287) * Re-add old emoji aliases * Update unit tests * Custom status expiry (#8059) * Made the UI for expiry Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux * Review fixes and added timepicker menu Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json * Completed the timepicker menu Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors * Fixed some issues in daypicker Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker * Complete expiry support in custom status modal Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired * Review fixes Code refactoring in custom status modal and dateTime input and expiry menu * Changed name of enum Duration to CustomStatusDuration * MI-1235 * Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component * Added memoization in expiry time in some places Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector * Added unit tests and several fixes Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots * Fixed custom status emoji unit tests * Fix types * Refactored some code Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal * Fixed styles in status dropdown menu * Fixed types and added some unit tests Fixed type in custom status emoji tests Added unit tests in status dropdown and profile popover Updated snapshots * Code refactoring and localization ids change Added localization in Until and changed ids of all expiry dropdown options Modified ExpiryTime component to accept classname and wihinBrackets prop Fixed disableSetStatus bug in custom status modal Fixed styling of expiry time everywhere Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component * Updated snapshots * Changed default custom status duration to Today * Fixed i18n-check failing test * Fixed failing unit and e2e tests Refactoed getCustomStatus selector * Added functionality to handle suggestions without duration * Review UI fixes Added font-weight and opacity in expiry value in clear after dropdown Fixed the styling for clear button in the custom status input Fixed the padding for the custom status modal and adjusted all components inside it Changed the opacity for duration in the suggestions Changed the styling for date and time input titles Changed the size of the daypicker Changed the date and time icons from font-awesome to compass icons * Trigger server creation * Fixed the timezone issue in date time input * WIP: Fixing timezone issues for custom status expiry * Fixed the timezone issue in the custom status modal and date/time input Made util for getCurrentMomentForTimezone Changed type for customExpiryTime from Date to Moment Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs * Changed value of DONT_CLEAR key of CustomStatusDuration enum * Changed behavior of Clear after component and showing date/time component and review fixes (#57) * WIP : Fixing the flow for the custom date time if status already set * Changed display value of Clear after value and review fixes Added prop showPrefix in expiry_time component Changed the behaviour of timestamp in the expiry_time Moved custom status constants from constants.jsx to custom_status_modal and date_time_input Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum Changed the logic of disabling Set Status button and showing/hiding suggestions Fixed the failing unit tests of expiry_menu and date_time_input Added localization in date_time_input using useIntl instead of localizeMessage Added showing expiryTime feature in expiry menu component * Review fixes with some optimization Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry Changed the use of getCustomStatus selector in all places Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components Memoized the time options in the date/time input container by memoizing the handleTimeChange function Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function * Added/Updated unit tests and fixed type check errors Changed the format of expiry time for periods longer than 6 days Fixed the styling of custom status in status dropdown and daypicker in custom status modal * Complete e2e tests (#58) * Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry Resolved conflicts, updated snapshots and fixed type check errors * WIP : MM-T4063 e2e test for the custom status expiry * Complete e2e tests for expiry Modified and completed MM-T4063 test Completed MM-T4064, MM-T4065, MM-T4066 e2e tests * Updated snapshot * Updated custom_status_emoji to pass the tests * Fixed suggestion without duration bug in the custom status modal * Code refactoring and some bug fixes * Updated snapshots * UI review fixes (#61) Changed the text for Date and time to Custom Date and Time Removed duration from the suggestions if duration is Don't clear Changed the width of the suggestions dynamically based on the presence of duration Added a unit test for the suggestion and updated the existing snapshot * Resolved conflicts and updated snapshots * Apply suggestions from code review Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Added feature to show year in expiry time if expiry time is after the current year * Review fixes (#62) * Review fixes Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps Memoized the handleTimeChange function in the menu items of time picker by binding the function * Fixed memoization of makeGetCustomStatus in functional components Fixed memoization in custom_status_emoji, modal and post_header_custom_status components * Refactored some code * Fixed type check errors Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * fix reselect signature (#8296) * fix import errors (#8298) * [MM-25435] Emoji picker + skin tones (#8282) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * wip * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * wip * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * emoji gen with skin switching * add skin categories, place skin selector * initial version * css fixes * fix height * fix tests * fix position * address some review comments * more review fixes * more css fixes * more fix css * remove async from action dispatch * check emoji creation permissions to enable button * more CR fixes * css fixes * fix jumping magnifier * fix skin tone selector position * set label as default always * make skin picker behave better * fix reducer Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Add app icon to Marketplace (#8187) * MM-36341 - order plan lists (#8253) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-18496] Private channels should appear in channel link autocomplete (#8286) * MM-36542: getOpenThreadId should consider suppressed RHS (#8279) * MM-36542: getOpenThreadId should consider suppressed RHS Fixes a bug when suppressing RHS via going to global threads, and then receiving new replies to the thread open in the suppressed RHS, kept marking them as read. This commit changes `getOpenThreadId` to consider if RHS is open or not. Also mounting and unmounting components in the RHS with account to RHS hidden/visible, this last change was made because we are able to suppress the RHS and suppressing does not clear rhsState nor selectedPostId etc.. * Fixes: more than one threads can be open isThreadOpen didn't took into account that more than one threads can be open at the same time. This commit changes that. * [MM-36626] fix emoji picker colors (#8303) * [MM-36626] fix emoji picker colors * review changes * fix review changes, make tabs more consistent * handle hover as a whole * remove opacity * MM-35191 - show banner in user timezone (#8243) * MM-35191 - show banner in user timezone * fix en locale * add the user timezone to the date format * add the trial ends value * fix the duplicated title * Change the string date format * remove the user timezone from the date portion of the string Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-36654 Re-add Mattermost emoji (#8309) * MM-36654 Re-add Mattermost emoji * Move custom emoji preview to match system emojis * Remove extra entry from _emojisprint.scss * MM-36593 RHS performance improvements (#8292) * Use createIdsSelector for makeGetPostsForThread * Fix re-rendering caused by SearchResults's mapStateToProps * Fix unit test for makeGetPostsForThread * Translations update from Weblate (#8314) * Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4777 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Spanish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 97.9% (4677 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 96.9% (4630 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 99.7% (4763 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr…
isacikgoz
added a commit
that referenced
this pull request
Aug 17, 2021
…8598) * Mm 36066 open cloud pricing link in new tab (#8200) * MM-36066 - open cloud pricing link in new tab * fix translation file reference Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Update NOTICE.txt (#8199) * Update NOTICE.txt * Update NOTICE.txt * MM-36095 Fix text overflow in announcement banner (#8225) * MM-36095 Fix text overflow in announcement banner * Update snapshots * Update E2E test text * Force recalculate emoji picker position on open (#8208) * [MM-35653] Data Retention redux tests (#8118) * adding action tests for data retention * adding more tests for reducers Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> * MM-35626: Export PurchaseModal component and related utils (#8228) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198) * Fix plugin buttons on the LHS showing one below the other, instead of one after the other * Fix snapshots * [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235) * Adding English Australian to translated languages (#8192) * Adding English Australian to translated languages Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Elisabeth Kulzer <elikul@elikul.de> * add marketplace flag (#8207) * MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209) * Update participants for root post for newly received posts * Correctly update reply count for unfollowed threads * Fix unit tests * Fix lint issues * Do not delete unfollowed threads and instead keep data for unfollowed threads up to date * MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167) * fix: use getThreadOrSynthetic * fix: only fetch thread if there are replies * only fetch if actually following * only fetch when there are replies * remove legacy fetch, handled in other places * [MM-36270] Add overflow to emoji rendering (#8227) * add overflow to emoji rendering * actually fix scss * Allow uploading `.jpeg` files on Linux (#8224) * Allow users to upload jpeg pictures as their profile picture * Make constants for image upload types to accept * Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210) * fixed test case * fixed tutorial navigation test case * fixed tutorial nav test case * Fixed link customization Test case (#8213) * Thread move edit (#8203) * Add Cypress test for MM-T3080 * MM-T3080 fix lint issues * Login smoke test codereview fixes * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Remove extra spaces * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Adding test for MM-T2372 Deleting * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/scroll/deleting_scroll_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * resolve conflicts * Added tTest for MM-T2371 Editing a post * Change comment details * Remove duplicated file * Codereview fixes for scroll editing scenarios * Codereview fixes for scroll editing scenarios * Split editing and deleting scenarios into different files * Code style changes for editing and deleting scenarios Co-authored-by: Yulyana <yulyana@phntms.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186) * test * test * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Update e2e/cypress/integration/channel_settings/channel_header_spec.js Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * rev * rev3 Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Migrate 'components/profile_popover' module and associated tests to T… (#8216) * Migrate 'components/profile_popover' module and associated tests to TypeScript * spanshot test added * fix linting error in utils.jsx * update test snapshot * fix wrong types and type casting * change overwriteName type to React.ReactNode from string and minor refactoring related to that * change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object * hide unread indicator when not following thread (#8221) * Fixes tests in thread viewer (#8247) * MM-35837 Improve batching of channel-related actions on post receipt (#8222) * MM-35837 Improve batching of channel-related actions on post receipt * Remove unused imports * Remove accidental artificial delay * Update tests to expect new batching * MM-35346, MM-35394: Fix unread selectors/indicators (#8159) * fix: keep badge on hover * remove unneeded importants * CRT unread channel filter * other LHS selectors * fix selector * add test Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes: crash at global threads on root post delete (#8231) If a root post is deleted and the user is at global threads view, the app crashes. This commit fixes that by removing the thread from the threads reducer. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34578 - update permission name to see button in main menu (#8229) * MM-34578 - update permission name to see button in main menu * add tests for when there is no valid permissions * fix linter Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-35538 - display purchase modal when coming from email (#8234) * MM-35538 - display purchase modal when coming from email * use better name for query param Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Cypress/E2E: Update Zephyr Scale API URL (#8252) * MM-35919: CRT makes threads nav menu sticky (#8239) Threads nav menu, both in legacy and regular sidebar, is moved outside of the scrollable area, so it always 'sticky' at the same position. * ref: migrate call_button to ts (#8183) * Downgrading Polish, Italian and German to beta (#8254) * Downgrading Polish, Italian and German to beta * Update latex_block.test.tsx.snap * Update snapshot latex_block.test.tsx.snap Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> * [MM-36294] Update marketplace install command (#8244) * Translations update from Weblate (#8265) * Translated using Weblate (German) Currently translated at 83.5% (3976 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Hungarian) Currently translated at 99.2% (4726 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4760 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (French) Currently translated at 90.7% (4318 of 4760 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Zsolt Godó <zsolttokio@gmail.com> Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> * Set build image version as variable (#8261) * Handle is_following not being set for edited posts (#8262) * MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259) * Remove unnecessary comment count propagation needed for delete modal * Remove unnecessary reply count propagation through post components * Remove unnecessary reply count propagation through PostInfo component * Fix style * Update snapshots * Hide comment count on root posts for CRT * Use reply count from post if thread not tracked in postsInThread reducer (#8271) * [MM-36704] Add selector specifically for search channel name to handle its cases (#8237) * [MM-36704] Add selector specifically for search channel name to handle its cases * Update packages/mattermost-redux/src/selectors/entities/channels.ts Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * Refactor based on Harrison's comments * Other PR feedback * Use completeDirectGroupInfo to get GM user names with a little modification Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> * [34475] Emoji 13.0 with new library (#8220) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * fix using sprites, fix custom emojis section * fix search with custom emojis * make linter happy * fix tests * MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189) * Add basic framework and example for tracking memoization effectiveness * Updates per feedback * Create custom reselect package and update all usages of createSelector to pass in names * Re-add selector tracking * Add second test for typing * Fix storybook reselect resolution * ref: migrate request_button to ts (#8120) * ref: migrate request_button to ts * test: update request button snapshot Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270) * MM-35840: fixes up arrow edit in CRT (#8238) * MM-35840: fixes up arrow edit in CRT We used to get post ids from the channel to find current user's last post. This worked in threads when CRT off, but if you turn CRT on replies are not added in the channel thus not being able to find the user's last post correctly. This commit fixes that by getting post ids from the thread* (postsInThread) and not the channel, this way both CRT on/off are working as expected. *renamed the selector from makeGetCurrentUsersLatestPost to makeGetCurrentUsersLatestReply. Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixes selector's name for tracking (#8275) * MM-35917: closes RHS upon navigating to threads (#8257) * MM-35917: closes RHS upon navigating to threads Clicking on global threads link closes the RHS. This is done to reduce the amount of panels in the global threads view upon arriving * Saves and restores RHS state Saves RHS state when navigating to global threads, and restores the state upon leaving global threads. This is done so we open the RHS, if needed, upon leaving global threads. * Changes stash/restore logic to just a boolean Rename rhs_stash to rhs_suppressed which only holds a boolean on whether to suppress rhs (close) or not. Suppressing functions as stashing did before. Upon visiting global threads page it suppresses the RHS and upon exiting it re-instates RHS to its previous state. * Fixes weird search menu focus on RHS suppress Fixes a bug when suppressing the RHS by going to the global threads, and then using search and going to a channel and back to the global threads it would show the search menu. * Renames reducer to a more appropriate name * Shrinks RHS upon suppressing Suppressing RHS shrinks the sidebar. Similarly switching from global threads to a channel also shrinks the sidebar. * MM-35806: shows participants when toggling CRT (#8255) Toggling CRT 'on' wouldn't show participants at all for unfollowed posts. We short-circuit receiving posts in the reducers based on old/new post's `update_at` property. Posts have some extra properties though which didn't got updated in redux when toggling CRT on. This commit refactors the short-circuit into a `shouldUpdatePost` utility function, taking into account not only the `update_at` but the CRT posts' extra properties. * MM-36218,MM-36219: CRT thread read flashes (#8272) New messages that arrive while the thread is open are marked as read and the indicators don't flash anymore. Furthermore if a thread is manually marked as unread it should stay unread even if new messages arrive while it's open. * MM-35769: CRT, shows unread indicator (#8267) * MM-35769: CRT: shows unread indicator Shows unread indicator when on global threads page as well. * Removes unnecessary lines Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-35720,MM-36293: land at new messages line (#8226) * MM-35720: land at new messages line When opening a followed thread with unreads, land at/scroll to New Messages line * Fixes scrolling to bottom on thread viewer on open We used to call `scrollToBottom` on mount, but when the thread was empty it had no effect. This commit fixes it so that scrolling is called after getting the thread/posts. * Fixes typing issue * Fixes marking as read The last thread opened in the global threads kept getting marked as read even when user had navigated to a channel. This commit fixes that by clearing the selected thread id in the reducer upon leaving global threads page. * Fixes tests * Removes unwanted guard * Fixes landing on new messages line Scroll to bottom should be blocked when highlighting a post, or when we are yet to scroll on new messages line. * Adds loading screen to thread viewer Shows a loading screen when when not all messages are loaded. * Fixes tests * Shows new messages line on new threads Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34437 Preventing infinite trial requests (#7944) * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * WIP * #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial * #MM-34437 cleanup and adding comments * #MM-34437 Fixed lint errors * #MM-34437 added missing function params * #MM-34437 fixed existing tests * #MM-34437 added new tests * #MM-34437 restored package lock * #MM-34437 lint fixes * #MM-34437 Added contact sales button in feature discovery component * #MM-34437 reverted package lock changes commited accidently * #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes * #MM-34437 Refactored ContactUs component to avoid issues with mmjstools * #MM-34437 used t to avoid messy ContactUs component * #MM-34437 fixed global state type * #MM-34437 renamed contact sales to contact us in remianing places * #MM-34437 updated snaps * #MM-34437 added sales contact link in upload trial error message * #MM-34437 make contact sales component accept text component * #MM-34437 addech trial check via flag * #MM-34437 removed unnecessary async * MM-34437 shortcircuit if trial flag is set * Fixed paid license renbew button styling * #MM-34437 Adjusted trial time for sacntioned * Fixed missed brace * Fix several autocomplete problems (#8197) * [MM-24335] Show recently viewed channels when channel switcher opens (#8215) * Show recently viewed channels when channel switcher opens * update snapshot cause change in quick switch component ui * add public channel fetch method if user isn't part of more than one channel and minor refactoring * minor code clean up * code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at * minor refactoring unified variable names * fix missing params issue with getTimestampFromPrefs * use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels * fix Dms/Gms not showing up in list even if they have recent activity Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Emoji makefile (#8276) * make golang linter happy * makefile and license for go files * MM-36561: fixes loader shown on socket reconnect (#8281) * Cypress/E2E: Promote category sorting (#8285) * Show thread as followed immediately on webapp when marking posts unread from the thread (#8283) * Translations update from Weblate (#8288) * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Australia)) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 99.9% (4760 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.8% (4756 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Hungarian) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 99.6% (4744 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 93.6% (4459 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ Translated using Weblate (Bulgarian) Currently translated at 100.0% (4761 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Japanese) Currently translated at 99.8% (4754 of 4761 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> * MM-30446: Fix toast dismiss hover console error (#8284) * fix: use intl-compat OverlayTrigger * hoist OverlayTrigger * update snapshots * Implement FileDropdown Actions Plugin Method (#8139) * Add file drpdown action plugins framework * Fix search-item-snippet CSS * Show post menu when file dropdown is open * Code refactoring * Fix lint * Update tests props * make handleFileDropdownOpened prop optional * Update handleFileDropdownOpened implementation * Fix lint * Update CSS styles * Use memoization for plugin file dropdown items * Fix lint * Fixed type check errors * update snapshots * Update snapshots * use createSelector for files dropdown plugin selector * Update components/file_attachment/file_attachment.tsx Co-authored-by: Daniel Espino García <larkox@gmail.com> Co-authored-by: Manoj <manoj@brightscout.com> Co-authored-by: Daniel Espino García <larkox@gmail.com> * MM-36590 Re-add old emoji aliases (#8287) * Re-add old emoji aliases * Update unit tests * Custom status expiry (#8059) * Made the UI for expiry Made expiry menu component with all the expiry items Made the dateTimeInput component with the react-day-picker along with customized navbar Removed the memoization from the getCustomStatus selector Solved the propType issue in the menuItemToggleModalRedux * Review fixes and added timepicker menu Changed the custom status selector to a simple function and changed its use everywhere Made constants for the expiry menu items and used them Changed the expiry menu items to use localized text Removed the daypicker.scss file and did the changes in _daypicker.scss file Added all the localization ids in en.json * Completed the timepicker menu Made a util for getting current date and time for timezone Made the function to round current time to nearest 30 min time Made the function to fill the menu with 30 minute intervals Unified the separate state variables for day and time to only time Made the dateTimeInput component to be controlled by the custom status modal Fixed the styles for the timepicker and daypicker Fixed lint errors and type check errors * Fixed some issues in daypicker Fixed the styling in daypicker Added logic for disabled days in daypicker Fixed the issue of prevMonth button not working in daypicker * Complete expiry support in custom status modal Changed the custom status type to include duration and expires_at and made enum duration Removed the duration constants from constants file and used enum type everywhere Added localization in the expiry menu values Modified custom status modal to send expiry with the custom status Modified custom status modal to handle initial custom expiry time Modified the disable set status variable to handle the confirm button disability Modified the custom status selector to return custom status only when it's not expired * Review fixes Code refactoring in custom status modal and dateTime input and expiry menu * Changed name of enum Duration to CustomStatusDuration * MI-1235 * Added expiry support in custom status suggestions Made durationValues constant to store all duration values with localization ids and default messages Modified expiry_menu to use durationValues constant Modified custom status suggestion component to handle duration of status Added duration in default custom status suggestions Fixed the calculateExpiryTime function to take right currentTime Modified handle and clear suggestion functions to include expiry * Display expiry time in custom status emoji tooltip Made relative range for tomorrow Fixed styling for the expiry in suggestions Added the logic for showing expiry time in custom status emoji component * Completed showing expiry time in several places Made custom status util for displaying expiry time Made getCurrentUserTimezone memoized selector Refactored custom status emoji and modal to use getCurrentUserTimezone selector Fixed the custom status modal UI accordingg to the comments on community Added expiry time in status dropdown and profile popover * Review fixes Memoized displayExpiryTime in custom status emoji component * Added memoization in expiry time in some places Added memoization in status dropdown and profile popover Added logic to show tooltip in custom status emoji in channel header Refactored some code in custom status emoji and custom status selector Added timezone dependent current time in custom status selector * Added unit tests and several fixes Sorted the order of imports in several files Made unit tests for date_time_input and expiry_menu components Updated some snapshots * Fixed custom status emoji unit tests * Fix types * Refactored some code Converted displayExpiryTime util to a separate functional component Replaced use of util with component everywhere Fixed styling of date time input Refactored disabling set status button in custom status modal * Fixed styles in status dropdown menu * Fixed types and added some unit tests Fixed type in custom status emoji tests Added unit tests in status dropdown and profile popover Updated snapshots * Code refactoring and localization ids change Added localization in Until and changed ids of all expiry dropdown options Modified ExpiryTime component to accept classname and wihinBrackets prop Fixed disableSetStatus bug in custom status modal Fixed styling of expiry time everywhere Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component * Updated snapshots * Changed default custom status duration to Today * Fixed i18n-check failing test * Fixed failing unit and e2e tests Refactoed getCustomStatus selector * Added functionality to handle suggestions without duration * Review UI fixes Added font-weight and opacity in expiry value in clear after dropdown Fixed the styling for clear button in the custom status input Fixed the padding for the custom status modal and adjusted all components inside it Changed the opacity for duration in the suggestions Changed the styling for date and time input titles Changed the size of the daypicker Changed the date and time icons from font-awesome to compass icons * Trigger server creation * Fixed the timezone issue in date time input * WIP: Fixing timezone issues for custom status expiry * Fixed the timezone issue in the custom status modal and date/time input Made util for getCurrentMomentForTimezone Changed type for customExpiryTime from Date to Moment Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs * Changed value of DONT_CLEAR key of CustomStatusDuration enum * Changed behavior of Clear after component and showing date/time component and review fixes (#57) * WIP : Fixing the flow for the custom date time if status already set * Changed display value of Clear after value and review fixes Added prop showPrefix in expiry_time component Changed the behaviour of timestamp in the expiry_time Moved custom status constants from constants.jsx to custom_status_modal and date_time_input Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum Changed the logic of disabling Set Status button and showing/hiding suggestions Fixed the failing unit tests of expiry_menu and date_time_input Added localization in date_time_input using useIntl instead of localizeMessage Added showing expiryTime feature in expiry menu component * Review fixes with some optimization Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry Changed the use of getCustomStatus selector in all places Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components Memoized the time options in the date/time input container by memoizing the handleTimeChange function Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function * Added/Updated unit tests and fixed type check errors Changed the format of expiry time for periods longer than 6 days Fixed the styling of custom status in status dropdown and daypicker in custom status modal * Complete e2e tests (#58) * Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry Resolved conflicts, updated snapshots and fixed type check errors * WIP : MM-T4063 e2e test for the custom status expiry * Complete e2e tests for expiry Modified and completed MM-T4063 test Completed MM-T4064, MM-T4065, MM-T4066 e2e tests * Updated snapshot * Updated custom_status_emoji to pass the tests * Fixed suggestion without duration bug in the custom status modal * Code refactoring and some bug fixes * Updated snapshots * UI review fixes (#61) Changed the text for Date and time to Custom Date and Time Removed duration from the suggestions if duration is Don't clear Changed the width of the suggestions dynamically based on the presence of duration Added a unit test for the suggestion and updated the existing snapshot * Resolved conflicts and updated snapshots * Apply suggestions from code review Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * Added feature to show year in expiry time if expiry time is after the current year * Review fixes (#62) * Review fixes Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps Memoized the handleTimeChange function in the menu items of time picker by binding the function * Fixed memoization of makeGetCustomStatus in functional components Fixed memoization in custom_status_emoji, modal and post_header_custom_status components * Refactored some code * Fixed type check errors Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * fix reselect signature (#8296) * fix import errors (#8298) * [MM-25435] Emoji picker + skin tones (#8282) * generated files * emoji-data install * first pass at generating intermediate files * aliases to short_names * categories and translations * move emoji_data.go to server if defined * improve messages, comment on usage * add library and notices * change makefile * use new library * remove unused categories * remove commented code * wip * typo * fix package-lock * fix formatting test * fix emoji_utils tests * fix emoticon provider tests * fix emoji actions test * fix categories for emoji-picker * wip * temporarily undo makefile changes so mattermod doesn't complain * fix recent categories being empty * fix testt * emoji gen with skin switching * add skin categories, place skin selector * initial version * css fixes * fix height * fix tests * fix position * address some review comments * more review fixes * more css fixes * more fix css * remove async from action dispatch * check emoji creation permissions to enable button * more CR fixes * css fixes * fix jumping magnifier * fix skin tone selector position * set label as default always * make skin picker behave better * fix reducer Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Add app icon to Marketplace (#8187) * MM-36341 - order plan lists (#8253) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-18496] Private channels should appear in channel link autocomplete (#8286) * MM-36542: getOpenThreadId should consider suppressed RHS (#8279) * MM-36542: getOpenThreadId should consider suppressed RHS Fixes a bug when suppressing RHS via going to global threads, and then receiving new replies to the thread open in the suppressed RHS, kept marking them as read. This commit changes `getOpenThreadId` to consider if RHS is open or not. Also mounting and unmounting components in the RHS with account to RHS hidden/visible, this last change was made because we are able to suppress the RHS and suppressing does not clear rhsState nor selectedPostId etc.. * Fixes: more than one threads can be open isThreadOpen didn't took into account that more than one threads can be open at the same time. This commit changes that. * [MM-36626] fix emoji picker colors (#8303) * [MM-36626] fix emoji picker colors * review changes * fix review changes, make tabs more consistent * handle hover as a whole * remove opacity * MM-35191 - show banner in user timezone (#8243) * MM-35191 - show banner in user timezone * fix en locale * add the user timezone to the date format * add the trial ends value * fix the duplicated title * Change the string date format * remove the user timezone from the date portion of the string Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * MM-36654 Re-add Mattermost emoji (#8309) * MM-36654 Re-add Mattermost emoji * Move custom emoji preview to match system emojis * Remove extra entry from _emojisprint.scss * MM-36593 RHS performance improvements (#8292) * Use createIdsSelector for makeGetPostsForThread * Fix re-rendering caused by SearchResults's mapStateToProps * Fix unit test for makeGetPostsForThread * Translations update from Weblate (#8314) * Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4777 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4763 of 4763 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Spanish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 97.9% (4677 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Translated using Weblate (Spanish) Currently translated at 96.9% (4630 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 99.7% (4763 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Australia)) Currently translated at 100.0% (4777 of 4777 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (French) Currently translated at 90.1% (4313 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (German) Currently translated at 86.1% (4121 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 94.3% (4514 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu> Co-authored-by: Elias Nahum <elias@mattermost.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Markus Hermann <markus.hermann@uni-marburg.de> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: aeomin <lin@aeomin.net> * [MM-8497] Ability to set Do Not Disturb for a specified period of time (#8160) * Revert "Revert "[MM-8497] Ability to set Do Not Disturb for a specified period of time (#7037)" (#8136)" This reverts commit 406f787f0baaaeb4da8b7aef62b8a4faf9fc3f91. * fix tomorrow's date * remove Today option from e2e test * add feature flag for dnd timed status * update snapshots * add type for dndEndTime fn arg * fix e2e test * remove unused file * no need to pass userId in props * update snapshots * use timezone only if defined Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-36655,MM-36656,MM-36657: CRT beta texts and modal (#8315) * MM-36655,MM-36656,MM-36657: CRT beta texts and modal Shows an early beta warning modal when users enable CRT in account settings, the modal is shown upon closing the user settings modal. Changes account settings CRT related texts. Removes default_off option for CRT in system console. * Fixes types * Add style linter (#8273) * Add style linter * Add order and scss specific plugin * Add recommended config * Fix lint * Fix border and system console tables * MM-35897 - make sure to show max 14 days in the UI of remaining trial (#8308) * MM-35897 - make sure to show max 14 days in the UI of remaining trial * Add constants to handle the days numbers * fix linter issue * fix linter issues Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * [MM-36481] Fix thumbsup emoji parsing to support skin tones (#8318) * fix thumbsup emoji parsing * fix tests * fix help text * MM-36730: permalinks to replies sometimes throw (#8323) It seemed that componentDidUpdate didn't have the postRef setted yet, thus producing an error on scrolling to highlighted reply id. This commit fixes it by: 1. Changing the isInViewport function signature to always expect the element to exist. 2. Ensure postRef exists before scrolling into view. * MM-36592 Fix memoization of getDirectTeammate (#8291) * Fix memoization of getDirectTeammate * Remove leftover debug code * MM-36595 Reduced re-rendering of Reaction components (#8293) * Reduced re-rendering of Reaction components * Fix unit tests and revert aria-label in read-only channels * MM-36612: opening channel switcher while in threads throws (#8324) Current channel doesn't exist when in global threads, so channel switcher throws error. This commit fixes that error. * [MM-36618] Save skin tone to preferences (#8322) * switch to preferences, rename functions * adress review comments * [MM-36714] - Renew Now button in announcement bar lost its styling (#8321) * MM-36683 - align announcement bar close button to the right (#8312) * MM-36683 - align announcement bar close button to the right * remove duplicated properties Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Prevent trackedSelectors from holding a reference to old selectors (#8336) * MM-36391: navigates to threads on shortcut ALT+ARROW (#8278) * MM-36391: navigates to threads on shortcut ALT+ARROW ALT+UP/DOWN switches channels in the left sidebar, but it won't switch to global threads when CRT is on. This commit enables switching to global threads as well. * Suppress RHS on navigating to threads via shortcut * Suppresses RHS on mount We should only have to suppressRHS on global_threads mount and unsuppressRHS on unmount. * Fixes lint issues * Supports selecting non-channel items in LHS Adds: - a reducer for selected LHS items, these items can be either channel ids or constants defined in NonChannelLHSItem enum. Channels are set as selected items the same way as before (via selectChannel). - a selector for getting the currently selected LHS item. - an action for setting non channel pages as selected in the LHS. Changes: - sidebar_channel_list now supports currentItem and not currentChannelId, so we can use non channel pages as well. * Fixes tests * Revert "Supports selecting non-channel items in LHS" This reverts commit 87ab1996547435aec03350726f8fb92e4ba4d760. * [MM-36613] Adapt to mobile view (#8334) * adapt to mobile view * make css linter happy * Add Markdown fields to app forms (#8171) * Add Markdown fields to app forms * Handle better readonly and default values on commands * MM-35439: CRT, clicking x unread threads (#8333) * MM-35439: CRT, clicking x unread threads Clicking x unread threads in global threads was a no-op. This commit changes that so the first unread thread is selected and the Unreads tab is selected. * Update components/threading/global_threads/global_threads.tsx Co-authored-by: Guillermo Vayá <guivaya@gmail.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> * promote e2e to prod (#8326) * fix failed Cypress tests (#8325) * MM-36609 Reduce recomputations of haveIChannelPermission and getMyChannelPermissions selectors during typing and other state changes (#8302) * Add channel roles reducer to frontload role computation * Update channel and team permission selectors to reduce recomputation * Fix tests * Fix more tests * Translations update from Weblate (#8346) * Translated using Weblate (German) Currently translated at 86.7% (4157 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ Translated using Weblate (German) Currently translated at 86.1% (4121 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ Translated using Weblate (German) Currently translated at 86.1% (4121 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Swedish) Currently translated at 99.9% (4790 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Translated using Weblate (Swedish) Currently translated at 100.0% (4786 of 4786 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ * Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 99.7% (4782 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 99.9% (4792 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Australia)) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 99.7% (4782 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 94.2% (4517 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Japanese) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Spanish) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ Co-authored-by: jprusch <rs@schaeferbarthold.de> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu> Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Elias Nahum <elias@mattermost.com> * Add ellipsis to channel suggestions and channel selector in forms and interactive dialogs (#8274) * Add ellipsis to channel suggestions and channel selector in forms and interactive dialogs * Refactor suggestions * Fix unit tests * Fix e2e and remove team switcher * Fix lint * fix lint and i18n * Fix test * Fix Command parser (#8348) * Add markdown to apps field descriptions in forms and commands (#8219) Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-36128] Enable 'Set Status' button if the custom status hasn't changed from currently set status (#8307) * don't disable set status button if status is not changed * change color of disabled button and do nothing on hover when disabled * fix propertis order * Update NOTICE.txt (#8357) * [MM-34330] Migrate 'components/at_mention' and associated tests to TypeScript (#8236) * ref: migrate at_mention to typescript * update tests * [MM-35249] Ensure window size is at least 0 before checking for mobile (#8356) * Fixed: overflowing text now truncates (#8319) * Allow uploading .jpeg files on Linux (#8360) Automatic Merge * suggest only skintones along user skin tone selection (#8339) * [MM-36734] - Include Support Email step to Cloud Admin Onboarding (#8337) * [MM-36734] - Include Support Email step to Cloud Admin Onboarding * validate email * feedback impl-1 * add test * fix * lint * fix test * feddback impl maria * feedback impl pablo * last feedback * MM-36692: tracks CRT display setting on/off (#8335) * Cypress/e2e/Fixed emoji test case (#8372) * fixed custom emoji test case * fixed lint * MM-36740 - fix close button styling (#8366) * fixed mis-styled close button by wrapping class definition in `.app__body` class to increase specificity * make linter happy :D * fix linting errors * reverting package-lock.json * fix linting errors again * MM-36731 - ux changes to cloud starter flat fee (#8341) * MM-36731 - ux changes to cloud starter flat fee * add ux pr suggested changes * prevent purchase modal to fail on first render Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * [MM-36313] - Fix hardcoded value for about modal border (#8349) * [MM-36313] - Fix hardcoded value for about modal border * Switch to rgb Co-authored-by: Nevyana <nevyana@Nevyanas-MacBook-Pro-2.local> * Add .stylelintignore (#8364) * fixed post menu test case (#8377) * Handle user and channels on the command provider (#8148) * Handle user and channels on the command provider * Address feedback and handle mentions inside text values and for non app commands. * Address feedback * Separate apps parser from command parser * Address feedback * Fix lint * (chore) Cypress/E2E: fix e2e scripts instruction (#8379) * fix e2e instruction * fix lint error * fix timeout error when running cypress against recently_used_emoji_spec (#8378) * upgrade cypress to 7.7.0 and other dependecies (#8380) * MM36936 - fix cloud subscribe api URI path (#8381) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * fixed markdown text and basic options test cases (#8383) * Translations update from Weblate (#8384) * Translated using Weblate (Hungarian) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ * Translated using Weblate (German) Currently translated at 88.0% (4228 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ Translated using Weblate (German) Currently translated at 86.7% (4159 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4802 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ Translated using Weblate (Bulgarian) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (4802 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4795 of 4795 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4795 of 4795 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 99.9% (4793 of 4795 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ Translated using Weblate (Hungarian) Currently translated at 100.0% (4794 of 4794 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4802 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 100.0% (4795 of 4795 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4802 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ Translated using Weblate (Turkish) Currently translated at 100.0% (4795 of 4795 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4802 of 4802 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ Translated using Weblate (English (Austr…
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
4: Reviews Complete
All reviewers have approved the pull request
Changelog/Done
Required changelog entry has been written
CherryPick/Done
Successfully cherry-picked to the quality or patch release tracked in the milestone
Docs/Done
Required documentation has been written
release-note
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Added expiry support in custom statuses
Related Links
Specs: https://mattermost.atlassian.net/wiki/spaces/CS/pages/983302547/User+Experience+and+Functional+Notes
Related Pull Requests
Screenshots
Release Note