Граф коммитов

20021 Коммитов

Автор SHA1 Сообщение Дата
Harrison Healey
96c2d4ae56 MM-62866 Update axios dependency (#30265)
I had to fight with NPM longer than I thought I would for the override
to take effect. I ended up having to manually tweak the
package-lock.json to get it to take.
2025-02-21 16:59:16 -05:00
Eva Sarafianou
53dac8e530 Clarify patch role permissions (#30128)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-21 17:08:58 +02:00
David Krauser
1dbd1fa4db [MM-62924] WebSocketClient reconnection unit tests (#30135)
This commit adds some reconnection-specific unit tests to the WebSocketClient class, and fixes a few minor bugs:

- If `close()` is called during a reconnection delay, the socket won't close.
- If `send()` is called during a reconnection delay, we immediately try to reconnect (and don't respect any configured delays).
- If `initialize()` is called during a reconnection delay, we immediately try to reconnect (and don't respect any configured delays).
- If we receive two disconnection events, we'll attempt to reconnect with two new connections.

To allow for testing, I also needed to make the WebSocketClient more configurable. Specifically, the config allows for mocking the underlying websockets, and to control timeout delays.
2025-02-20 13:54:18 -05:00
Pablo Vélez
9e47f2ef0c Mm 62677 - modal focus management - find channels modal (#29957)
* MM-62312 - modal focus management; revamp quick switch channel modal!

* get quick switch test working

* configure the generic modal to accept refs to focus within and onhide to the origin element

* apply pr feedback, get modal element get autofocus, use id instead of ref

* update more direct channels modal to use generic modal

* fix unit tests and snapshots

* fix unit tests

* fix modal margin top to fit in smaller screens

* fix e2e test

* remove unnecesary onexited extra call

* fix e2e tests

* set correct label

* fix snapshots

* create helper function for sending custom focus event

* migrate quick switch modal to use new approach to focus

* migrate more direct channels modal to new approach

* fix snapshots

* fix types

* fix modal closing behavior

* fix snapshots

* fix cypress tests

* remove only

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-20 13:22:05 -05:00
Agniva De Sarker
fd356b62b4 [AI assisted] MM-62837: (#30268)
We did not invalidate the cache after converting a user to bot.
That led to issues. See JIRA for more details.

https://mattermost.atlassian.net/browse/MM-62837

```release-note
NONE
```
2025-02-20 21:45:44 +05:30
ayush-chauhan233
102e3472d8 [MM-61570]: Refactored the post priority menu and fixed the keyboard navigation issue in the menu. (#29583)
* [MA-7]: Refactored the post priority menu and fixed the keyboard navigation issue in the menu

* [MA-7]: Updated the menu list structure and fixed menu not closing bug

* [MA-7]: Review fixes minor code structure fixes

* [MA-7]: Fixed failing e2e test cases

* [MA-7]: Fixed styling and Keyboard behaviour of menu

* [MA-7]: Minor changes after rebased with master

* [MA-7]: Fixed failing playwright test case

* [MA-7]: Fixed failing e2e test cases

* [MA-7]: Fixed reverting of selected priority to previous value on menu close

* [MA-7]: Fixed failing smoke test

* [MA-7]: Fixed submenu pointer event and failing playwright test cases

* [MA-7]: Fixed failing playwright test case

* fix playwright tests

* fix playwright tests

---------

Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
2025-02-19 21:30:22 +00:00
ayush-chauhan233
d76e0b9d3d [MM-61616]: Add tab roles inside Emoji Picker (#29902)
* MM-61616: Add tab roles inside Emoji Picker

* MM-61616: Update snapshot tests

* MM-61616: Update emoji_picker_category E2E

* MM-61616: Minor aria properties changes

* [MM-61616]: Removed tab roles from emoji picker and added aria-pressed attribute in button

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-19 15:54:59 -05:00
Vicktor
4aa4f6f703 [MM-22872] fix(messaging): DM list not scrolling when you press the up/down arrow keys (#29565)
* Set 'forwardRef' to 'true'

The Redux wrapper component not forwarding the ref to the parent resulted in the selected item ref being null.

* Add DM list test case

This test ensures the DM list scrolls items out of view into view when a user navigates using the Up and Down arrow keys.

* test(dm list): add zephyr test case number

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-19 15:42:31 -05:00
Claudio Costa
2f8c65a1ea Fix flaky TestGetMattermostLog (#29890) 2025-02-19 08:56:56 -06:00
ayush-chauhan233
8b2e1483c9 [MM-61610]: Added aria-activedescendant to the textbox (#29900)
* [MA-17]: Added aria-activedescendant to the textbox

* [MA-17]: Fixed id and ARIA attribute

* Rebased with master branch

* [MA-17]: Removed irrelevant attribute

* [MA-17]: Updated the logic to add textbox id to At mention suggestion

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-19 09:45:09 -05:00
Ibrahim Serdar Acikgoz
a7905541b8 [MM-62660] Makefile: add ability to run local file store tests as standalone (#30260)
* server/Makefile: add ability to test&benchmark local file store only

* remove benchmark
2025-02-19 10:18:07 +01:00
Pablo Vélez
b0b379e167 MM-61634 - adjust rhs a11y structure (#30168)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-19 00:26:41 -05:00
Devin Binnie
bd376d3473 [MM-62945] Load new channels for users added even if they're on a different team (#30167)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-18 19:04:33 +00:00
Devin Binnie
b604930cf6 [MM-60555] Use channel memberships to calculate total unread status instead of team memberships (#30166)
* [MM-60555] Use channel memberships to calculate total unread status instead of team memberships

* Fix lint

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-18 19:04:06 +00:00
Devin Binnie
ce61ed8f52 [MM-55090] Threads created by users should not be auto-followed on reply by the creator when they've left the channel (#30181)
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
2025-02-18 17:29:26 +00:00
Christopher Speller
89490a1093 Update Copilot plugin to v1.1.0 (#30098)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-18 07:16:11 -08:00
Christopher Speller
2b5275d871 chore: Update Playbooks plugin to v2.1.1 (#29996) 2025-02-18 12:18:36 +00:00
Amy Blais
ff566e243c Updated minimum supported Edge and Chrome versions (#30030)
Automatic Merge
2025-02-18 09:20:09 +02:00
Weblate (bot)
62a24aa91e Translations update from Mattermost Weblate (#30241)
* Translated using Weblate (Russian)

Currently translated at 96.8% (2519 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ru/

* Translated using Weblate (German)

Currently translated at 100.0% (2602 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (2602 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/tr/

* Translated using Weblate (German)

Currently translated at 100.0% (6071 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (6071 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/tr/

* Translated using Weblate (Czech)

Currently translated at 100.0% (2602 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/cs/

* Translated using Weblate (Czech)

Currently translated at 100.0% (6071 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/cs/

* Translated using Weblate (Polish)

Currently translated at 100.0% (2602 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pl/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2602 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/

* Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (6071 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/

* Translated using Weblate (Norwegian Bokmål)

Currently translated at 60.5% (3673 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/

* Translated using Weblate (Swedish)

Currently translated at 99.8% (6060 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/sv/

* Translated using Weblate (Dutch)

Currently translated at 99.8% (2599 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/

* Translated using Weblate (Dutch)

Currently translated at 99.9% (6070 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/

* Translated using Weblate (Ukrainian)

Currently translated at 99.2% (2583 of 2602 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/

* Translated using Weblate (Polish)

Currently translated at 99.1% (6021 of 6071 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/

---------

Co-authored-by: Konstantin <eleferen@gmail.com>
Co-authored-by: jprusch <rs@schaeferbarthold.de>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: Martin Mičuda <micuda@rematiptop.cz>
Co-authored-by: master7 <marcin.karkosz@rajska.info>
Co-authored-by: ThrRip <coding@thrrip.space>
Co-authored-by: Frank Paul Silye <frankps@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Serhii Khomiuk <sergiy.khomiuk@gmail.com>
2025-02-17 19:09:54 +00:00
Ibrahim Serdar Acikgoz
3da6e7a75d server/Makefile: pin dbcmp (#30245) 2025-02-17 18:10:44 +01:00
Agniva De Sarker
32037706b5 MM-62960: Support both webhub iteration scopes properly (#30224)
When Channel iteration mode is enabled, we need to ensure that
channel scoped events do not fall through to the connIndex.All()
condition. This is possible because there are multiple hubs
in a given system. So a single event will flow through all of them
and in some hubs, a channel scoped event might not have any connections.

In that case, we need to stop processing further.

https://mattermost.atlassian.net/browse/MM-62960

```release-note
NONE
```
2025-02-17 19:39:39 +05:30
Tom De Moor
ab9fd5e4f6 Adding a label wip languages (#30100)
* adding extra label to WIP-languages

* adding an extra space

* fix linting

* modifying test

* updating test

---------

Co-authored-by: Tom De Moor <tom.demoor@vclbgent.be>
2025-02-17 14:03:52 +00:00
M-ZubairAhmed
cbb1081550 [MM-54861] Command + K shortcut to hyperlink text doesn't work when editing a post (#30195) 2025-02-17 13:41:26 +05:30
Agniva De Sarker
e7a246c065 [AI assisted]: MM-62914: Added MFA authentication for plugin requests as well (#30160)
We wipe the token if MFA authentication is enabled. Also added a test case
to lock in the functionality.

https://mattermost.atlassian.net/browse/MM-62914

```release-note
NONE
```
2025-02-17 12:20:21 +05:30
ayush-chauhan233
4750df98c2 [MM-62961] Fixed pointer event of submenus (#30219) 2025-02-17 06:06:38 +05:30
Harrison Healey
8b164711a4 MM-63138 Fix some console warnings (#30209)
* Fix forwardRef propTypes console error

The console error that was fixed by this is:
"Warning: forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"

* Fix function component ref console error

This fixes the following error:
Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React. forwardRef ()?
2025-02-14 16:21:52 -05:00
Harrison Healey
b6118b7701 MM-62383 Replace React Bootstrap with Floating UI in Emoji Picker (#29835)
* Convert EmojiPickerOverlay to functional component

* Convert EmojiPickerTabs to functional component

* Extract AddReactionButton from ReactionList

This is so that I can make part of it functional without rewriting
the whole thing.

* Convert PostReaction to functional component

* Add general version of useEmojiPicker and use for AddReactionButton

* Rename returned showEmojiPicker to emojiPickerOpen

* Add test for AddReactionButton

* Move showEmojiPicker state out of useEmojiPicker

I hoped to avoid this by just having the hook return the
show state, but unfortunately, too many of the existing places
rely on controlling the state themselves

* Change PostReaction to use useEmojiPicker

I ran into some trouble with this getting the hover state to properly
disappear from the PostComponent when clicking out of the picker. That
seems to be a downside of the browser's mouseenter/mouseleave not
handling cases where the component is covered up. It doesn't work 100%,
but it works at least as well as master by disabling pointer-events to
the FloatingOverlay (which I also think we could probably remove since
it's supposed to just be for darkening the backdrop behind the picker,
but it ended up being helpful for setting the z-index on mobile).

* Change AdvancedTextEditor to use new useEmojiPicker

I renamed its version of useEmojiPicker to useEditorEmojiPicker since it
still contains information about how to position the emoji or gifs in
the post text.

* Convert EditPost to use useEmojiPicker

* Convert CreateModalNameInput to use useEmoijPicker

* Convert CustomStatusModal to use useEmojiPicker

* Remove EmojiPickerOverlay and cleanup related code

* Remove unneeded translation string

* asdf Attempting to fix E2E test

* Improve how useEmojiPicker positions itself to stay on screen more

* Add offset between Emoji Picker and reference

* Add horizontallyWithin middleware and use it to right-align the emoji picker in the post textbox
2025-02-14 13:53:30 -05:00
Agniva De Sarker
da7192246e MM-62960: Improve webConn remove performance from hubConnectionIndex (#30178)
When we added iteration by channelID, this was a known tradeoff during that.
However, it has been observed that the regular connection removal function
creates considerable blocking of the processing loop, leading to high
CPU usage and API latencies.

To fix this, we add a reverse mapping of channelIDs to connections
and their positions in the slice. This helps us to remove the connection
from the slice without iteration.

Unfortunately, this still needs to iterate through all channelIDs
during invalidation of the channel member cache. However, the user
cache invalidation is not a regular activity. So it should be an acceptable
tradeoff to make.

https://mattermost.atlassian.net/browse/MM-62960

```release-note
A new config knob ServiceSettings.EnableWebHubChannelIteration which allows a user to control the performance of websocket broadcasting. By default, this setting is turned off. If it is turned on, it improves the websocket broadcasting performance at the expense of poor performance when users join/leave a channel. It is not recommended to turn it on unless you have atleast 200,000 concurrent users actively using MM.
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-14 09:19:36 +05:30
Julien Tant
06d8c92504 Using StringInterface instead of mapStringAny (#30211) 2025-02-14 03:14:08 +00:00
Caleb Roseland
68c11e9ecb MM-61375: Update file handling for bookmarks (#30034) 2025-02-13 17:11:13 -06:00
Caleb Roseland
2182b1eaf9 MM-62548: CPA Reordering - drag and drop (#30097) 2025-02-13 17:09:35 -06:00
Harrison Healey
b2147476cc MM-62933 Revert position of post menu to match earlier versions (#30190)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-13 22:29:54 +00:00
Julien Tant
41e0f97176 Remove call for removed attribute Page (#30207) 2025-02-13 17:35:27 +00:00
Agniva De Sarker
1a58f923e0 [aider assisted] MM-61888: Add ClientSideUserIds field to MetricsSettings (#30127)
We add a new config setting to allow the admin to set a fixed
list of userIDs to track for all client side webapp metrics.

This gives the admin to get a deeper look at how the application
is behaving for a single user.

A new section in the system console is also added for the user
to edit this setting from the UI.

https://mattermost.atlassian.net/browse/MM-61888

```release-note
A new config setting MetricsSettings.ClientSideUserIds is added
where you can set the user ids you want to track for client side webapp
metrics.
```

* fix lint errors

```release-note
NONE
```

* fixing tests

```release-note
NONE
```
2025-02-13 21:10:34 +05:30
Julien Tant
632a60b332 [MM-62553]+[MM-62554] Property Architecture: cursor based pagination (#30119)
* refactor: Replace pagination with cursor-based pagination for custom profile attributes

* remove pagination loop on property value retrieval for CPA

* add migrations to optimize pagination on property fields and values

* adapt test to remove pagination check

* update migrations list

* postgres: drop index concurrently

* concurrent index manipulation must be done outside of a Tx

* fix: Correct SQL index drop syntax from "OM" to "ON" in migration files

* test: Add CountForGroup test cases for property field store

* refactor: Add CountForGroup method to PropertyFieldStore interface and implementations

* Fix style and i18n

* feat: Add optional deleted property field filtering to CountForGroup method

* refactor: Update CountForGroup to support optional deleted property fields

* test: Add comprehensive tests for CountForGroup with includeDeleted parameter

* adapt test + gen layers

* rename property service method and set the includeDelete to false

* refactor: Remove redundant constant and use CustomProfileAttributesFieldLimit directly

* fix tests

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-13 15:23:50 +00:00
Harrison Healey
4615ca5f28 MM-62944 Fix fileupload settings not being clickable (#30182)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-13 10:17:41 -05:00
Miguel de la Cruz
f85a8c61a4 Adds websocket messages to Custom Profile Attributes (#30163)
* Adds websocket messages to Custom Profile Attributes

The app layer now fires a websocket event as part of the operations
over Custom Profile Attribute fields and values. It updates as well
the Patch method for CPA values so all the changes are commited as
part of the same transaction.

To be able to do this last operation, the change adds methods to
upsert CPA values in both the store and the property service.

* Fix i18n strings

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Miguel de la Cruz <miguel@ctrlz.es>
2025-02-13 11:21:46 +00:00
Miguel de la Cruz
5ba80d51ae Updates the property field and value update methods to use a single query for multiple entities (#30198)
* Updates the property field and value update methods to use a single query for multiple entities

* Update server/channels/store/sqlstore/property_field_store.go

Co-authored-by: Julien Tant <785518+JulienTant@users.noreply.github.com>

---------

Co-authored-by: Miguel de la Cruz (aider) <miguel@ctrlz.es>
Co-authored-by: Julien Tant <785518+JulienTant@users.noreply.github.com>
2025-02-13 11:12:51 +00:00
Harshil Sharma
83ec1d9f7d added window title for scheduled post tab and fixed draft alignment (#30179)
* added window title for scheduled post tab and fixed draft alignment

* i18n fix
2025-02-13 12:11:53 +05:30
Nicolas Le Cam
4a44d23095 Remove docker hack around prometheus service (#28985)
* Remove uneeded hack in docker-compose now that problem is solved

* Remove obsolete attribute `version` in docker compose configuration files

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-12 14:18:53 -04:00
Harrison Healey
55bb6c51eb MM-62891 Fixed incorrectly applied label in Team Settings modal (#30116) 2025-02-11 10:50:42 -05:00
ayush-chauhan233
9aaa52136c [MM-61683]: Ensure radio button groups are properly formed (#30013)
* MM-61683: Ensure radio button groups are properly formed

* MM-61683: Fix the failing i18 CI

* MM-61683: Fix desktop notification translation IDs

* MM-61683: Fix lint-style

* MM-61683: Update name attribute inside channel notification modal
Add aria-label inside RadioSettingItem
Update snapshot

* MM-61683: Revert creating a constant for default messages and id

* MM-61683: Add legend tag inside radio setting item component

* MM-61683: Update snapshot

---------

Co-authored-by: Saurabh Sharma <saurabh.sharma@brightscout.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-11 10:46:06 -05:00
Ben Schumacher
d3dcc74e5a [MM-62762] Make config location in Support Packet human-readable (#30027)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-11 10:06:27 +01:00
ayush-chauhan233
b2b956c043 [MM-55278]: Fixed autofocus on submenu's first element (#29547) 2025-02-11 11:34:42 +05:30
enzowritescode
169274b3aa [MM-62864] Bump katex to 0.16.21 (#30095) 2025-02-11 11:18:01 +05:30
Weblate (bot)
dc37cf5cf9 Translations update from Mattermost Weblate (#30157)
Automatic Merge
2025-02-10 19:50:10 +02:00
Maria A Nunez
7efdcda20a Update User Limits for unlicensed servers (#30134)
* Update user soft and hard limits

* Fix testt

* Fix test
2025-02-10 11:55:42 -05:00
Arya Khochare
f6c4bdf365 [MM-62149] Avoid SELECT * in emoji_store.go (#30082)
* refractored select sql queries

* rm unused makeStringArgs

* linting

* leverage builder pattern

---------

Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
2025-02-10 12:02:50 -04:00
Jesús Espino
9b87970c99 Migrating other 2 files from javascript to typescript (#29435)
* feat: Add initial store configuration for webapp channels

* refactor: Convert store/index.js to TypeScript with type definitions

* test: Add initial test file for store index

* refactor: Convert index.test.js to TypeScript with type annotations

* Removing old files

* Applying linter fixes

* Fixing some of the types errors

* fix: Type mock implementation of getState in global_actions.test.ts

* test: Add missing GlobalState import in global_actions.test.ts

* fix: Resolve TypeScript mock implementation error in global_actions.test.ts

* Some fixes

* Address CI problems

* Installing zen-observable types

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Simpliying things

* Fixing CI

* Fixing types
2025-02-10 15:43:09 +01:00
unified-ci-app[bot]
90814564ff chore: Update NOTICE.txt file with updated dependencies (#30152)
Automatic Merge
2025-02-10 13:50:08 +02:00