* feat: Add profile loading for group channels in search autocomplete
* refactor: Use getChannelNameForSearchShortcut for channel name formatting
* refactor: Improve channel search term generation logic
* refactor: Simplify search channel provider logic and improve code readability
* fix: Improve channel search shortcut name handling with fallback
* refactor: Avoid overriding channels parameter in search channel provider
* refactor: Revert variable names to original style in search channel provider
* feat: Add getChannelNameForSearchShortcut selector for channel name retrieval
* refactor: Extract common channel name search logic into helper function
* fix text overflowing from search bar
* test: Add tests for completeDirectGroupInfo function
* test: Add type assertion for UsersState in channel_utils test
* test: add test case for completeDirectGroupInfo with omitCurrentUser false
* improve name composition for channels in search
* eslint
* lint
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MA-32]: Added logic to correctly give accessible name to channel header button
* [MA-32]: Fixed id name
* [MA-32]: Fixed failing e2e test case
* [MA-32]: Updated the aria-label attribute
* [MA-10]: Fixed the dialog aria-properties in profile popover
* [MA-10]: Updated the logic to add aria-label to profile popover
* [MA-10]: Updated the aria-label to be translatable
* [MA-10]:Updated the dialog aria-properties in profile popover
* [MA-10]: Fixed the dialog aria-properties in profile popover
* [MA-10]: Updated the translation string
* MM-62192 - remove group upsell for regular users
* fix unit tests
* add new test and fix snapshots
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Step 1: Migrate any SELECT * queries written as strings into builder queries.
* Step 2: Migrate any instances of SELECT * into explicitly enumerating the needed columns
* revert `GetByName` to read from master as opposed to master.
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Fix flakyness in channel bookmark tests
* Use existing util to initialize client
* Update server/channels/api4/apitestlib.go
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
* Remove redundant close
---------
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Adds Custom Profile Attributes feature license and API endpoints check
* Fix linter
* Remove the specific license feature and fallback to checking for license presence
* Add translation
* Update the checks and tests to enable endpoints only for Enterprise licenses
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* fix for deleting non-bulk export files and directories
* add job worker setup and running to helper_test.go
* add infrastructure for e2e testing of workers; test ExportDelete
* linting
* use retention days in test instead of magic number
* SELECT * to query builder
* execBuilder, manual column name and one more select * remaining instance
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MA-6]: Fixed adding aria-label logic in team sidebar
* [MA-6]: Updated en.json, added create team button id
* [MA-6]: Fix: Added logic to add aria-label to users type
* [MA-6]: Fix typo
* [MA-6]: Added translation function to team button
* [MA-6]: Added translation function to team button
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MA-22]: Added aria-live property for message sent status
* Review Fixes: Updated the logic to programmatically change status element's content.
* [MA-22]: Rebased with master
There are several steps that a server runs through inside (*Server).Start
after ch.initPlugins() till the signal handler is reached which handles
the server shutdown procedure.
The issue arises when the server is shutdown after ch.initPlugins() completes
but before (*Server).Start finishes. In that case, the plugins are all started
but they won't be shut down cleanly.
To fix this edge-case, we set up an intermediate signal handler, which
attaches itself as soon as ch.initPlugins is finished, allowing us to run
the cleanup code in case the shutdown happens before (*Server).Start finishes.
And when we do reach the main signal handler, we don't need this intermediate
handler any more. So we just reset the handlers and use the main signal handler
which takes care of shutting down the whole server.
Note: This is still not 100% bug-proof because ch.initPlugins() will initialize
_all_ plugins, and the shutdown can happen just after one plugin is initialized.
To handle that case will require the need to set up signal handlers after every
plugin init which feels like overkill to me.
A sample flow diagram to visualize better:
Edge-case
server.Start()
|
ch.initPlugins()
|
<ctrl-c>
|
execute signal handler, os.Exit(1)
Happy-path
server.Start()
|
ch.initPlugins()
|
server.Start() finished
|
reset old signal handler
|
setup main signal handler
|
server runs on as usual until shutdown
https://mattermost.atlassian.net/browse/MM-49353
```release-note
NONE
```