4896 Коммитов

Автор SHA1 Сообщение Дата
Frank Paul Silye
21c69135cb Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.8% (5242 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-23 13:41:23 +00:00
Ekaterine Papava
ba40f4ff8f Translated using Weblate (Georgian)
Currently translated at 8.6% (545 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ka/
2025-06-23 13:41:23 +00:00
kaakaa
4aa748649c Translated using Weblate (Japanese)
Currently translated at 100.0% (6330 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
2025-06-23 13:41:23 +00:00
Frank Paul Silye
0f4097d665 Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.7% (5241 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-23 13:41:23 +00:00
kaakaa
d80f9b74e5 Translated using Weblate (Japanese)
Currently translated at 99.1% (6276 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
2025-06-23 13:41:23 +00:00
Hosted Weblate
84506745b6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/
2025-06-23 13:41:23 +00:00
Ibrahim Serdar Acikgoz
2526a6c0bd add missing shadows to the access control policies page (#31364) 2025-06-23 11:03:01 +02:00
Christopher Poile
250e39c85f [MM-64603] LDAP Wizard: UX and Copy (#31649)
* improve pluralization

* changes to highlight strings -- might want to revert after review

* fix custom setting styling

* blank commit

* broken e2e test

* add css comments
2025-06-20 14:26:05 -04:00
Pablo Vélez
5fc74cd401 MM-64330 - filter abac users in channel invite (#31219)
* MM-64330 - filter abac users in channel invite

* implement cursor functionality for abac user filtering

* remove unnecessary comments

* refactor the backend implementation simplifying the functions

* refactor api to use opts as parameters, rename function

* add missing translation

* remove unnecesary test code

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-20 10:53:14 +02:00
Ben Schumacher
b69412d23f [MM-64347] Enable System Console UI for AuditSettings by default (#31118)
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
2025-06-19 20:18:46 +02:00
Harrison Healey
ebb68759ad Remove old avatar variants of status icons (#31768)
These predate the "circle with a check"-style status indicators we've
used for years now.
2025-06-19 10:11:35 -04:00
Devin Binnie
3bd0a2ad91 [MM-64639] Fix styling on thread item header (#31807) 2025-06-19 09:44:46 -04:00
Elias Nahum
731cc1fb5f Add server settings to further lock files on mobile (#30949)
* Add server settings to further lock files on mobile

* fix format with prettier

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com>
2025-06-19 09:37:32 +02:00
Devin Binnie
b1f609e6b8 [MM-61582][MM-61605][MM-61622][MM-63029][MM-63026][MM-63059] Mobile View accessibility fixes (#31328)
* [MM-61582] Ensure textbox changes size when the window is too small

* [MM-61605] Fix clipping on menu modal in mobile view

* [MM-61622] Make mobile view RHS scrollable

* [MM-63029] Fix mobile view Browse Channels modal arrangement

* [MM-63026] Make new channel body scrollable if needed, flex to full screen on mobile view

* [MM-63059] Make Settings Modal properly responsive with flexbox for mobile view

* Fix lint

* [MM-64033] Fix mobile view for User Groups, another fix for Browse Channels

* Fix notification modal

* PR feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-19 11:13:42 +05:00
catalintomai
bd5ca1c07e MM-60640: [Shared Channels] Display remotes' names in Shared With tooltip (#30886) 2025-06-19 07:57:22 +02:00
Devin Binnie
bd16f4f9bf [MM-62989][MM-63039][MM-63033][MM-64174][MM-63040][MM-63032][MM-63001][MM-63006][MM-63037] Various accessibility fixes for the Create Channel modal (#30888)
* [MM-62989] Replace channel purpose input with Input component

* [MM-63039] Fix styles so that a11y--focused box shadow is applied to the private/public channel buttons

* [MM-63033] Add aria-describedby and role=alert to the URL input on create channel modal

* Fix lint

* [MM-63035] Change legend to label, fieldset to div in the Input component

* Fix i18n

* [MM-64174] Stop propagation of enter event while editing the new channel

* [MM-63037] Add role=img and an aria label to the error img icon

* Fix snap

* Revert "[MM-63035] Change legend to label, fieldset to div in the Input component"

This reverts commit e8516f3e6a266c77db2b1695a036db717041a9ef.

* [MM-63040] Remove tabindex=0 from GenericModal wrapper, fix issue with URLInput that I caused D:

* Fix snap

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-18 16:29:04 -04:00
Devin Binnie
1efc3dacaf [MM-61593] Add parameters for icon/dropdown text for the Calls button (#31654)
* [MM-61593] Add parameters for icon/dropdown text for the Calls button

* PR feedback
2025-06-18 11:00:01 -04:00
Devin Binnie
26613fb4c6 [MM-63035][MM-63970][MM-63978][MM-64028][MM-64019][MM-64022][MM-64026][MM-64023][MM-61625] Create User Group modal accessibility fixes (#31047)
* [MM-63970] Add aria-live for creating a group, always use modal animation

* [MM-63978] Move my fix for multiselect remove button focus to the multiselect component

* [MM-63035][MM-64028] Change legend to label, fieldset to div in the Input component

* [MM-64019] Add fieldset and legend to Add people

* [MM-64026] Add required to Name and Mention boxes

* [MM-64023] Add results available aria-live area to multiselect

* [MM-64022] Restore original multivalueremove for users_email_input, use ariaLabelRenderer for Multiselect

* Use noteText for required for now

* Fix

* Fix e2e

* Only show required prompt when there are no users picked

* Fix cancel button submitting form

* PR feedback

* Do the required field for multiselect properly

* Other PR feedback

* Fix checks

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-18 09:25:13 -04:00
Devin Binnie
3d2aa70b7b [MM-61626] Replace most uses of <header> with <div> where not needed (#31371)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-18 09:20:03 -04:00
Devin Binnie
df1b278f62 [MM-63007][MM-63004][MM-63020][MM-63009][MM-63008] More accessibility fixes around Search (#31409)
* [MM-63008] Make collapse button on search bar an actual button

* [MM-63004][MM-63020] Convert search box to floating-ui, fix some of the roles and labels that were incorrect

* [MM-63009] Add radiogroup and radio roles to the search box types

* [MM-63007] Ensure search box reads out number of results with suggestion items

* Fix playwright tests

* PR feedback

* Remove floating ui overlay

* Remove unnecessary .first() by being more specific about the search box

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-17 17:47:30 -04:00
Devin Binnie
744d284069 Fix delete button aria-label on User Groups list modal (#31651) 2025-06-17 18:23:00 +00:00
Devin Binnie
b191c922af [MM-63044] Fix overflow formatting on suggestion list (#31372)
* [MM-63044] Fix overflow formatting on suggestion list

* fix lint

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-17 11:06:59 -04:00
Devin Binnie
b99a22f175 [MM-63021] Modify input to have min/max length validation work the same as the validation around required, replace Create Team input with Input component (#31406) 2025-06-16 17:57:02 -04:00
Christopher Poile
548a47ae56 [MM-63152] LDAP Wizard (#31417)
* [MM-63717] LDAP Wizard skeleton (#31029)

* add ldap_wizard component to render its admin components

* i18n

* test adjustment

* keys and props fixes

* title fix

* fix placeholders

* fix value initialization

* linting

* remove all ...props (except custom component); any->unknown

* fix i18n (temp, will be changed in later PR)

* better return; simplify function checking/calling

* [MM-64259] Sections sidebar and navigation (#31059)

* initial sections list sidebar

* sidebar highlighting and scroll on click

* some tidying up

* add custom section titles for section sidebar

* i18n

* updating border on sections

* scss style lint

* color -> border-color

* simplify activeSectionKey initialization; remove trailing newline

* add useSectionNavigation; clean up ldap_wizard and scss; PR comments

* extract section of code into renderSidebar()

---------

Co-authored-by: Asaad Mahmood <asaadmahmood@users.noreply.github.com>

* [MM-64296] Add test connection for connection settings panel (#31190)

* button -> ldap test connect api

* fix console error by sanitizing value in text component

* return detailed error as error; adjust button -> primary, flushLeft

* middle of redesigning how we do hover text, first button

* add hover text to bools and file uploads

* i18n

* add LdapSettings as api type; add new endpoint to api yaml

* allow testing without first enabling LDAP and saving config

* i18n id changes

* improve TestLdapConnection to current standards

* PR comments

* safeDereference; cleaner returns

* remove hover markdown; formatting and typing simplification

* use button for "More Info"; i18n

* finish renaming help_text_hover -> help_text_more_info

* fix error output

* only send bindpassword if it has been changed

* fix: don't send blank bindPassword when it is still *****

* merge conflict

* [MM-64480] Refactor Admin Definition (#31280)

* move ldap definition to its own file for simplicity & context

* refactor admin_definition to eliminate circular dependencies

* merge conflicts

* before: buggy userHasReadPermissinOnSomeResources; after: fix incorrect snapshot

* merge conflict: new bindPasssword definition was left behind; fixed.

* merge conflict

* [MM-63765] LDAP Wizard: User filter expandable section (#31286)

* add "more info" hover to user filter help texts; make wider

* add expandable_setting type and component

* use Dislosure show/hide pattern for accessibility

* fix tooltip scss selectors

* fix hover -> more_info; make sure translation files are correct

* use join('\n\n') instead of the eslint disable line

* Revert "use join('\n\n') instead of the eslint disable line"

This reverts commit 274667e875b34703f14fee0706cd28b0125cefc9.

* [MM-64482] LDAP Wizard - Test User filters (#31312)

* initial cut at UI and backend for test filters

* api definitions; mocks

* clean up to current standards

* [MM-64512] - Test user filters UI (#31355)

* result_count -> total_count

* json cannot marshal error, returning error as string as god intended

* render errors with icon, hover text, and better feedback texts

* gather the settings that may be in expandable sections

* remove success, use error == "" to indicate success

* [MM-64536] LDAP Wizard: Test user attributes (#31373)

* LdapFilterTestResult -> LdapDiagnosticResult; FilterName -> TestName

* implement test_attributes endpoint and limited frontend (first step)

* adding EntriesWithValue

* [MM-64550] LDAP Wizard: Test user attributes UI (#31374)

* [MM-64551] LDAP Wizard: Test group attributes (#31375)

* remove Test LDAP button (not needed); reused helptext for other btn

* implement test_group_attributes endpoint; button/client-side paths

* [MM-64552] LDAP Wizard: Test group attributes UI (#31376)

* implement Test Group Attributes button

* simplify helper functions (improves useCallback dependencies)

* show the default filter that was used on the backend in the tooltip

* show the icon when there's an error (e.g. required filter/attribute)

* fix infinite rerendering

* fix error after failed save; fix navigation unlocked after save

* empty

* Adjust message feedback given we don't test the schema anymore

* improve css; don't use inline styles

* removed unneccesary pointer indirection

* improved i18n strings and logic

* combining filters/attributes/group attributes endpoints

improve types

* improve help text for User Filter (it's tricky)

* AvailableAttrs -> AvailableAttributes

* fix for e2e tests (renamed title)

* more e2e fixes

* skip broken e2e test

---------

Co-authored-by: Asaad Mahmood <asaadmahmood@users.noreply.github.com>
2025-06-16 16:19:33 -04:00
Serhii Khomiuk
9564185e75 Translated using Weblate (Ukrainian)
Currently translated at 96.8% (6111 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-06-16 16:53:08 +00:00
master7
a9e4a6012e Translated using Weblate (Polish)
Currently translated at 100.0% (6310 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
2025-06-16 16:53:08 +00:00
Frank Paul Silye
d4ea86d729 Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.9% (5233 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-16 16:53:08 +00:00
master7
fa9256fb32 Translated using Weblate (Polish)
Currently translated at 100.0% (6310 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
2025-06-16 16:53:08 +00:00
Frank Paul Silye
674526183b Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.8% (5225 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-16 16:53:08 +00:00
master7
c2a53faa3e Translated using Weblate (Polish)
Currently translated at 99.6% (6290 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
2025-06-16 16:53:08 +00:00
Tom De Moor
3a8cd5c2c0 Translated using Weblate (Dutch)
Currently translated at 99.9% (6307 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-06-16 16:53:08 +00:00
jprusch
1c6b256337 Translated using Weblate (German)
Currently translated at 99.9% (6309 of 6310 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
2025-06-16 16:53:08 +00:00
Devin Binnie
0232a84c1b [MM-63038] Allow Invite Modal to scroll under very small screen sizes (#31397)
* [MM-63038] Allow Invite Modal to scroll under very small screen sizes

* Fix lint
2025-06-16 12:44:41 -04:00
Devin Binnie
3e1a0c8f0d [MM-62988] Add username prop to multi-avatar component (#31398)
* [MM-62988] Add username prop to multi-avatar component

* Fix the file preview avatar as well
2025-06-16 12:44:02 -04:00
Harrison Healey
408f6ec849 MM-64372 Fix onboarding checklist being rendered behind team sidebar (#31365) 2025-06-16 10:27:24 -04:00
Devin Binnie
7fad136933 [MM-63048] Add aria-label to the file preview back/forward buttons (#31388) 2025-06-16 09:16:23 -04:00
Matthew Birtch
77e50cf110 MM-61382 Date/Time Picker Input Fix and Refactor (#31330) 2025-06-16 08:01:16 -04:00
Matthew Birtch
6f5c92fc79 MM-64591 Fix contact sales button in banner (#31425) 2025-06-16 08:00:17 -04:00
catalintomai
1b5a76af55 MM-61437: [Shared Channels] Disable DM button from profile for shared channel user (#30903) 2025-06-16 13:09:09 +02:00
Jesse Hallam
0082e3e94d enforce License.IsSeatCountEnforced if set (#31354)
* enforce License.IsSeatCountEnforced if set

If a license sets `IsSeatCountEnforced`, enforce the user limit therein
as a hard cap.

Fixes: https://mattermost.atlassian.net/browse/CLD-9260

* remove duplicate tests

* Improve user limit error messages and display

- Add separate error messages for licensed vs unlicensed servers
- Licensed servers: "Server exceeds maximum licensed users. ERROR_LICENSED_USERS_LIMITS"
- Unlicensed servers: "Server exceeds safe user limit. ERROR_SAFETY_LIMITS_EXCEEDED"
- Remove redundant "Contact administrator" text from activation errors shown to admins
- Fix system console to display actual server error messages instead of generic "Failed to activate user"

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add license nil check and test coverage

- Add license != nil check in GetServerLimits to prevent panic
- Add test case to verify graceful handling of license being set to nil
- Ensures fallback to hard-coded limits when license becomes nil

Co-authored-by: lieut-data <lieut-data@users.noreply.github.com>

* Fix user limits tests to expect license-specific error IDs

Update test expectations to use the new license-specific error IDs:
- app.user.update_active.license_user_limit.exceeded for licensed server user activation
- api.user.create_user.license_user_limits.exceeded for licensed server user creation

Also update frontend to show actual server error messages instead of generic ones in system console.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove redundant license nil test

The test couldn't meaningfully verify nil license behavior since it relied on
hard-coded constants that can't be modified in the test.

Co-authored-by: lieut-data <lieut-data@users.noreply.github.com>

* Fix whitespace issue in limits_test.go

Remove unnecessary trailing newline to pass style checks.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* updated i18n

* s/ERROR_LICENSED_USERS_LIMITS/ERROR_LICENSED_USERS_LIMIT_EXCEEDED/, expand warning log

* Add 5% grace period for licensed user limits

- Add calculateGraceLimit() function with 5% or +1 minimum grace
- Apply grace period only to licensed servers with seat count enforcement
- Handle zero user licenses by returning zero grace limit
- Add comprehensive test coverage for grace period scenarios
- Unlicensed servers maintain existing hard-coded limits without grace

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix TestCreateUserOrGuestSeatCountEnforcement to account for 5% grace period

The test was failing because it expected user creation to fail at exactly
the license limit, but the implementation now includes a 5% grace period
before enforcement kicks in.

Changes:
- Update test cases to create users up to the grace limit (6 for a 5-user license)
- Add comments explaining the grace period calculation
- Both regular user and guest user creation tests now properly validate
  enforcement at the grace limit rather than the base license limit

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix TestUpdateActiveWithUserLimits to account for 5% grace period

Update test expectations to match the new grace period behavior:
- At base limit (100) but below grace limit (105): should succeed
- At grace limit (105): should fail
- Above grace limit (106): should fail

This aligns the tests with the license enforcement implementation
that includes a 5% grace period above the licensed user count.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: lieut-data <lieut-data@users.noreply.github.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-13 17:12:05 -03:00
Daniel Espino García
c1a0710ab5 Fix join private channel (#30875)
* Fix join private channel not showing on all needed scenarios

* Fix for other two instances of the logic

* Fix test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-13 17:42:21 +02:00
M-ZubairAhmed
476b46d1d7 [MM-64501] Upgrade to web-vitals v5.0.3 (#31404) 2025-06-13 17:56:16 +05:30
Daniel Espino García
0376bc7cc1 Fix license upload when already set by env variable (#30974)
* Fix license upload when already set by env variable

* Add tooltip

* Fix tests and texts

* Fix snapshots

* Add disabled styles to secondary button

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-13 13:07:20 +02:00
Devin Binnie
07edaa875b [MM-63045] Add root component to read arbitrary text globally, ensure thread menu reads its actions on execution (#31353)
* [MM-63045] Add root component to read arbitrary text globally, ensure thread menu reads its actions on execution

* PR feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-12 21:20:45 +00:00
Devin Binnie
926c7f1e49 [MM-61623][MM-61632][MM-61635] Remove min-width for the RHS when window size <400px (#31389)
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
2025-06-12 16:37:52 -04:00
Devin Binnie
74258c3b7a [MM-64425] Add configurable account deletion link (#31396)
* [MM-64425] Add configurable account deletion link

* Fix types

* PR feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-12 11:00:00 -04:00
Devin Binnie
6d7a8c6d72 [MM-63027] Add status region for the channel filter dropdown (#31390)
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
2025-06-12 10:44:47 -04:00
Devin Binnie
65d3d5984f [MM-63041] Convert many inputs to the Input component, replace clientError with more correct client-side validation that conforms to the input (#31279)
* [MM-63041] Convert many inputs to the Input component, replace clientError with more correct client-side validation that conforms to the input

* Fix line length

* PR feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-11 17:02:32 -04:00
Devin Binnie
e6be282568 [MM-61562] Ensure emoji picker focus returns to button when not selecting an emoji (#31370)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-11 15:58:43 -04:00
Devin Binnie
d41e5184e0 [MM-62987] Fix timestamp not actually being read (#31386) 2025-06-11 15:58:11 -04:00