* WIP
* Added rebuild channels index functionality
* Added rough logic to send message to all sysadmins
* WIP
* WIP
* WIP
* Cleanup
* i18n fix
* reading through all pages of system admins
* Fixed webapp style
* i18n fix
* Added help text
* i18n fix
* i18n update
* Updated system console button action
* Updated snapshots
* some cleanup
* Updated snapshot
* Update server/channels/app/server.go
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* fixed typo
* Refactoring to improve readibility
* moved index check to API later during config update
* Added some docs
* Updated get system bot
---------
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* create ChannelBookmarks table
* ChannelBookmark model
* channel bookamrks Store layer
* add GetBookmarksForAllChannelByIdSince
* add channel bookmarks to test store
* Add channel bookmarks to app layer
* remove index for createAt in channel bookmarks migrations
* remove createAt from select channel bookmark query and enable store delete bookmark test
* update reponse of UpdateBookmark
* rename db migration files
* channel bookmarks store update sort order
* channel bookmarks app layer update sort order
* fix lint & tests
* Fix lint and introduce util functions to insert / remove from slice
* remove model etag
* i18n
* defer remove file info after test run
* Fix tests passing the request context
* fix migrations
* fix TestRetry
* Add bookmark permissions (#25560)
* Adds channel bookmarks permissions
* Fix linter
* Remove unnecessary empty lines
* Remove scss change as it's not necessary anymore
* Fix mock store
* Fix mock store and add role entry
* Fix test
* Adds cypress test and update permissions migration to update admin roles
* Adds channel bookmarks roles to default admin roles
* Adds bookmark permissions to default role permissions constant in webapp
* Update mmctl test
* Update permission test after normalising the roles
* fix store tests
* fix app layer tests
* Add new bookmark endpoint (#25624)
* Adds channel bookmarks api scaffold and create endpoint
* Applies review comments to the API docs
* Adds websocket test to create channel bookmark
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-54426 exclude Channel Bookmarks files from data retention (#25656)
* Augment channel APIs to include bookmarks (#25567)
* update files docs for server 9.4
* Adds update channel bookmark endpoint (#25653)
* Adds update channel bookmark sort order endpoint (#25686)
* Adds update channel bookmark endpoint
* Updates edit app method to return the right deleted bookmark and adds tests
* Adds the update channel bookmark sort order endpoint
* Fix repeated test after merge
* Assign right permissions to each test
* Update store and app layer to return specific errors and add tests
* Adds delete channel bookmark endpoint (#25693)
* Updates edit app method to return the right deleted bookmark and adds tests
* Fix repeated test after merge
* Updates edit app method to return the right deleted bookmark and adds tests
* Adds delete channel bookmark endpoint
* Adds list channel bookmarks endpoint (#25700)
* Add channel moderation to bookmarks (#25716)
* fix migrations index
* fix getChannelsForTeamForUser
* fix getChannelsForTeamForUser
* fix bad merge client4
* fix file api with bookmark permission
* add ChannelBookmarks feature flag
* add missing translations
* Set DB column for type as enum
* use custom type for bookmark query using sqlx
* use transaction when saving bookmark
* return NewErrNotFound instead of Sql.ErrNoRows
* use squirrel for IN query
* add a limit of 1K for records in GetBookmarksForAllChannelByIdSince
* UpdateSortOrder with one single query instead of multiple updates
* fix shadow declaration
* fix channel bookmarks permission string definition in admin console
* fix another shadow declaration
* Fix model conversion
* add SplitSliceInChunks
* remove include bookmarks in channels api
* Cap amount of bookmarks per channel
* add etag back to get channels
* feedback review
* update file info when replacing a bookmark file
* return 501 not implemented when the license is not available
* add detail message when getting channel member on bookmark api
* start audit before permission check on create bookmark api
* use require.Eventuallyf for testing WS events
* remove unnecessary log in app layer
* use require instead of assert to avoid panics
* enforce limit when querying bookmarks since
* prevent to create/update bookmark if file is already attached
* fix lint
* delete file when a bookmark is deleted
* Dot allow to set a fileId and a url at the same time to a bookmark
* fix query to delete a file that belongs to a bookmark
* do not patch the bookmark type
* Server side FeatureFlag check (#26145)
* use ff in server, set ff to false
* turn on FF for unit tests
* defer unset FF for unit tests
* turn ff on for testing
* only allow attaching files that were uploaded for bookmark
* Set feature flag off as default
* fix lint
* update email templates as PR failed
* revert templates
* force the assignment of ID when creating a bookmark
* Fix unit tests
---------
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
UserStore.GetAllProfiles is a very frequent call. We cache it
when there are no options passed which is the default case.
https://mattermost.atlassian.net/browse/MM-57084
```release-note
NONE
```
While updating config from admin console, the webapp would set
any config param to null if the user doesn't have permission to edit
that setting.
This is common in cloud environments where a lot of config settings
are set to `cloud_restrictable`.
The problem due to that is since the client uses the updateConfig
endpoint, this acts as a full config replace and therefore, the null
fields get replaced by their default values.
To fix this, we use the patch endpoint which only updates the fields
that are actually set.
https://mattermost.atlassian.net/browse/MM-56625
```release-note
Fix a bug where config cannot be updated from admin console
in cloud environments.
```
Co-authored-by: Mattermost Build <build@mattermost.com>
* changed helper text to control-label class
* removed the help-text class
* added "helping-text" className
* Updated helping-text color
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* make group search on modal and invite to work like group mentions
* update tests for better coverage
* change it back to startsWith
* update test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Fix multiple timer issue in CopyButton by using useRef
This commit resolves a bug where rapidly clicking the Copy button in the CopyButton component would initiate multiple overlapping timers, leading to unpredictable copy state toggling. By utilizing useRef, we now ensure a single timer instance is managed and cleared appropriately, stabilizing the copy functionality.
* Remove null assignment to timerRef.current before setting new timeout
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* add new sections
* remove section related code
* add some todos
* convert team setting to functional component
* remove unused props from main_menu
* remove unused collapseModal
* create 2 sections files
* clean info section
* cleanup access tab
* further clean team info setting component
* fix input fields
* fix description input field
* reorganize files
* add team icon when there is no team image
* improve layout
* fix autofocus
* delete empty file
* add note related to learna bout teams link
* add edit icon
* add upload functionality
* finish image upload
* implement logic for handle save
* add remove icon button
* fix remove button color
* fix styling on image remove and upload
* fix image remove feature
* show remove image button dynamically
* fix height
* update haveImageChanges on handleTeamIconRemove cl
* fix spacing inside input
* fix cursor point
* access tab basis
* add some todo
* add baseline for client error
* handle desc and image client errors
* move folders
* rename section to tab
* move the name section to new file
* dedicated description component
* dedicated image section
* convert to functional component
* remove unnecessary fetchTeam
* remove havechanges state
* remove not needed folder
* rename from section to tab
* convert access tab to FC
* fix invite section input
* finalize team invite code section
* add checkbox
* add select_text_input
* finish allowed domains
* fix save changes panel style
* convert open_invite
* add logic for show save changes panel globally
* handle server errors
* combine client errors
* fix save changes issue
* clean colors used in css
* fix style
* fix type issues
* fix another type
* fix allowed domains
* fix type error
* add save changes panel to access tab
* add success state to save changes panel
* remove unused prop
* cleanup css
* fix save changes modal position
* fix title font size
* remove not used prop
* fix mobile view width
* fix mobile view
* add group constraint text
* handle invite code error
* update snapshots
* fix input height
* fix tests
* write tests for open_invite
* write tests for team_info_tab
* write tests for team_access_tab
* Refactor setTeamIcon test in teams.test.ts
* Refactor team access and team info tabs for save changes panel
* Add useEffect hook to set inviteId in AccessTab component
* fix lint
* fix lint
* fix i18
* remove old todo
* fix text
* fix css
* fix css
* fix padding
* fix mobile view
* update snapshot
* performance improvements
* fix type
* improve translation passing to components
* fix lint
* rename saving to editing
* fix empty allowed domains
* complete renaming of saving
* seperate AllowedDomainsSelect
* seperate InviteSectionInput
* fix i18n
* capitalize translation id
* final fix for i18n
* remove empty file
* fix lint and test
* fix rgb values
* remove action related types from index file
* add last_team_icon_update to Team type
* fix unnecessary null check operator
* fix more types
* add new features for text selector
* update text for select text input
* fix style issues on save changes
* fix lint check
* add animation for save changes panel
* remove unused type
* fix test
* fix theming issues
* fix MM-T385
* fix MM-T388
* fix MM-T387 and MM-T2341
* fix MM-T391
* Fix MM-T2318, MM-T2317, MM-T2312, MM-T2322, MM-T2335
* fix top padding
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Fix types of entities.admin.analytics and entities.admin.teamAnalytics
* Fix type of entities.channels.channelsInTeam
* Fix types of entities.users.stats and entities.users.filteredStats
* Fix types of various profilesInX fields in entities.users
* Fix incorrect field name last_password_update_at used when updating password
We never noticed this bug before because the settings modal reloads the current user after updating their password.
* MM-56760 Fix users not being removed from state.entities.users properly