* MM-50960 - store system organization name
* restore the preparing workspace plugins and invite screens
* add back the page lines for the design
* add lines back and organize styles
* set back documentation to monorepo style and disable board as a product
* fix organization link and style skip button
* create team on organization name screen continue button click
* make sure there are not already created team and if so just update team name
* update the team display name if team has already been created
* cover error scenarios during team creation
* add pr feedback and add a couple of unit tests
* fix translation server error; make sure only update display name if it has changed in the form
* temp advances
* rewrite unit tests using react-testing library; fix unit tests
* fix translations
* make sure the launching workspace finish in cloud installations
* remove redundant validation
* fix unit tests
* remove unintended config value left after merge conflict
* MM-50550: Filter out threads from "left" channels v2
Currently leaving a channel doesn't affect the thread memberships of
that user/channel combination.
This PR aims to filter out all threads from those channels for the user.
Adds a DeleteAt column in the ThreadMemberships table, and filter out
all thread memberships that are "deleted".
Each time a user leaves a channel all thread memberships are going to be
marked as deleted, and when a user joins a channel again all those
existing thread memberships will be re-instantiated.
Adds a migration to mark all existing thread memberships as deleted
depending on whether there exists a channel membership for that
channel/user.
* Added migration files into list
* Fixes tests
* Fixes case where DeleteAt would be null
* Guard thread API endpoints with appropriate perms
* Deletes ThreadMembership rows upon leaving channel
* Minor style changes
* Use NoTranslation error
* Refactors tests
* Adds API tests to assert permissions on Team
* Adds tests, and fixes migrations
* Fixes test description
* Fix test
* Removes check on DM/GMs
* Change the MySQL query in the migration
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
We monitor the health of DB replicas, and on a fatal error,
take them out of the pool.
On a separate goroutine, we keep pinging the unhealthy replicas,
and on getting a good response back, we add them back to the pool.
https://mattermost.atlassian.net/browse/MM-50427
```release-note
Mattermost is now resilient against DB replica outages and will
dynamically choose a replica if it's alive.
Also added a config parameter ReplicaMonitorIntervalSeconds
whose default value is 5. This controls how frequently unhealthy
replicas will be monitored for liveness check.
```
Co-authored-by: Mattermost Build <build@mattermost.com>
- channel request types removed from fetchMyChannelsAndMembersREST
- removed isMinimumServerVersion check from that above action call, which is adding the query to include the archived channels
This issue involves updating the user picker functionality in the Mattermost web app's app framework. Currently, bot users are being displayed in the user picker for forms, which is not desired. The goal is to hide bot users from the user picker dropdown and only show real users. This can be achieved by filtering out any user that is a bot using the user.is_bot property. The necessary changes have been made in the apps_form_select_field.tsx file, specifically in the loadDynamicUserOptions function, which has been updated to filter out bot users using .filter((user) => !user.is_bot).
* update dependencies
* update default server config and client type
* close browser context once test is done
* fix test when switching a product
* update screenshots and readme
* add cross-env and make headless mode as default
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Generated values for settings are a random base64 string with a length of 32. Unfortunately, base64 has some accepted characters like `+` and `/` that don't behave correctly if we use them in a URL without the proper additional encoding.
Use instead this safe version of base64 https://datatracker.ietf.org/doc/html/rfc4648#section-5, where:
- `/` becomes `_`
- `+` becomes `-`
Fixes https://mattermost.atlassian.net/browse/MM-51923
* Enable products for channels tests
* increase unit test timeout; check IsConfigReadOnly
* make app-layers
* Avoid loading boards tempaltes between tests to improve speed
* Fix delete query to be compatible with both databases
* Avoid preserving the templates for boards store tests
* Run all tests in one command
* Revert "Run all tests in one command"
This reverts commit 0330f7cd8f.
* concurrent pkg group tests in CI
* Revert "Revert "Run all tests in one command""
This reverts commit 73892fec77.
* Revert "concurrent pkg group tests in CI"
This reverts commit 550fb6cdd4.
* try testing 3 subsets of packages concurrently to improve time taken
* Revert "try testing 3 subsets of packages concurrently to improve time taken"
This reverts commit 97475f3c4e.
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: wiggin77 <wiggin77@warpmail.net>
https://mattermost.atlassian.net/browse/MM-52079
```release-note
We upgrade the module version to 8.0. The new module path is github.com/mattermost-server/server/v8.
```
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
* eslint format lib to root
* eslint fixes
* no id rule removed
* same rectintl
* try 1
* eslint format lib to root
* eslint fixes
* no id rule removed
* same rectintl
* react intl in root
* type fix
* add back version to components
* missing translations added
* remove type casting
* a
* type fix formatjs
* snaps updated
* Update package-lock.json
* Update package-lock.json
* rem
* snapshot updates
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Add selectors/urls to Channels
* Create utils/notification_sounds in Channels
* Move Utils.isLinux to UserAgent.isLinux
* Remove Utils.isMac in favour of UserAgent.isMac
* Move cmdOrCtrlPressed and isKeyPressed into new utils/keyboard
* Remove eslint-disable for max-lines in utils.tsx