Devin Binnie
a36d29b459
[MM-63023] Conditionally make thread item elements focusable based on whether they have an interaction ( #30592 )
...
* [MM-63023] Conditionally make thread item elements focusable based on whether they have an interaction
* Fix i18n & PR feedback
* Remove focusability from the text preview div
* Fix tests
2025-04-22 15:55:30 -04:00
Jesse Hallam
018c909e2f
avoid SELECT * in command stores ( #30831 )
...
* avoid SELECT * in command stores
* Define column names once and reuse as columns list in selects and inserts
* Define column names once and reuse with ExecBuilder
2025-04-22 19:37:10 +00:00
Harrison Healey
32ce2f13bb
MM-62382/MM-63615 Remove explicit reference to react-popper and remaining references to popper.js ( #30743 )
...
* Replace usage of react-popper in onboarding with floating-ui
* Remove direct dependency on react-popper
Compass components still depend on react-popper, but none of the web app
code does any more.
* Remove direct dependency on popper.js
* Remove unneeded dependency on @types/bootstrap and remaining indirect dependency on popper.js
2025-04-22 15:35:21 -04:00
Jesse Hallam
981d1d869a
avoid SELECT * in channel member history store ( #30828 )
2025-04-22 15:33:32 -04:00
Jesse Hallam
eb8aaba1bf
avoid SELECT * in link metadata store ( #30833 )
...
* avoid SELECT * in link metadata store
* Address PR comment: define column names once and reuse
2025-04-22 19:29:09 +00:00
Jesse Hallam
701ddc896a
MM-63791: guest permissions to teams ( #30789 )
...
* improve th.CreateGuestAndClient
* test coverage for guest user access to teams
* restrict guest access to public teams unless a member
2025-04-22 10:12:22 -03:00
Caleb Roseland
79561c44c2
MM-63276, MM-62707: CPA LDAP/SAML links and Duplicate field ( #30772 )
...
* Squashed commit of the following:
commit 42ef1ff8c3ff881b0f21cb4de23a5964f0bb106b
Merge: 4940da4326 c049748b88
Author: Mattermost Build <build@mattermost.com >
Date: Fri Mar 14 21:15:22 2025 +0200
Merge branch 'master' into MM-62695
commit 4940da4326ff787dd43fc486f06be415257181ae
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 12:14:45 2025 -0700
manage error the same way property field and value do
commit cd9ec590264ca3751a55fc0926318cbb6f46d471
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 12:05:02 2025 -0700
sanitize and validate
commit 2672e90b06331ff2e31a7807737cc1feff1c1beb
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 12:02:20 2025 -0700
use Len test method
commit d101950d655c7d6fd7a668a15554cc52a1d42667
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 11:59:12 2025 -0700
rearrange consts
commit ed1b8f66fb08f7be38615ced74282380d5d680b7
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 11:58:56 2025 -0700
rename CPASortOrder method
commit d3bc303fa3c9694d2f6d1531186f4fbe69efb956
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 11:54:24 2025 -0700
rename CustomProfileAttributes in method to CPA
commit b2323d44a6c3f31ea7c798f8a88c62878d5d2cdf
Author: Julien Tant <julien@craftyx.fr >
Date: Fri Mar 14 11:54:02 2025 -0700
Add SAML and LDAP attr
commit d411ae9da5a078cfbac60c5662bee27622ff31e5
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Mar 12 11:58:21 2025 -0700
i18n
commit 27bc74c71462ae08d496104c908454ebc4f2def3
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Mar 12 11:11:23 2025 -0700
fix TestDeleteCPAField test
commit 0d77071225d8575ace89cbe38c6c06fa94d7696b
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Mar 12 10:28:49 2025 -0700
err->appErr
commit fe87a68caa49c7264c20c32cd4f598ffd18d503f
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Mar 12 10:22:13 2025 -0700
i18n
commit 3b3ddf978fce66d9506416a10c03b21d6a12e9d0
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Mar 12 10:21:12 2025 -0700
tests
commit 2f898bd53b832dea60dcdb960a71cd47709cddf8
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Mar 11 15:09:12 2025 -0700
add validation and tests
commit a8c20841af6e82a6bf4f5dde6324b5e56c4d754e
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Mar 11 13:45:53 2025 -0700
code style
commit 5bb3868b2ce93b9eb6e9d0836c597fa1176fbbbd
Merge: a4180d5d8f 7c25de2cff
Author: Mattermost Build <build@mattermost.com >
Date: Tue Mar 11 22:24:06 2025 +0200
Merge branch 'master' into MM-62695
commit a4180d5d8ff5e23a7a0a73b08806d37289e076ce
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Feb 25 11:53:54 2025 -0700
use CPAField
commit 988177024ceebe73750ce48c40ea0a9ca6db75d6
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Tue Feb 25 10:52:47 2025 -0700
refactor: Move validateCustomProfileAttributesField to Validate method on CPAField struct
commit 783e64472c7ef3c1e33ce9a94b0716e96a72b105
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Feb 25 10:52:45 2025 -0700
refactor: Improve custom profile attributes field handling and validation
commit aee06af59c748e74e5dc7718c1529527ac8c052a
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Tue Feb 25 10:50:29 2025 -0700
test: Add test case for CPA field with empty attributes
commit 7ab4455f9feb88826fcf6abb3b93a8a7bb53ed3e
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Feb 25 10:50:28 2025 -0700
refactor: Cleanup whitespace and remove empty Attrs in custom profile attributes test
commit dbdb47d75818d58739c3962d8624388214382611
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Tue Feb 25 10:48:08 2025 -0700
test: Add test case for property field with empty attributes
commit 43872e06933b40f45caadbca7708eab283cebd8d
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Tue Feb 25 10:44:39 2025 -0700
test: Add tests for NewCPAFieldFromPropertyField and CPAFieldToPropertyField
commit 335f6b5c8901b6ecdc1e9f031a81695ffc269029
Merge: 01f632db46 e8ef26196c
Author: Julien Tant <julien@craftyx.fr >
Date: Tue Feb 25 10:05:43 2025 -0700
Merge branch 'master' into MM-62695
commit 01f632db46cf0eeeea0bac337b10c66fad815a24
Author: Julien Tant <julien@craftyx.fr >
Date: Thu Feb 13 19:16:33 2025 -0700
removed unused i18n
commit 0214d7eb947d3d8ecfde169cb07c210ecbfc9c92
Merge: db0e371ca2 68c11e9ecb
Author: Julien Tant <julien@craftyx.fr >
Date: Thu Feb 13 19:15:08 2025 -0700
Merge remote-tracking branch 'origin/master' into MM-62695
commit db0e371ca239b5286e58ad264c46a8891eafbe9b
Author: Julien Tant <julien@craftyx.fr >
Date: Thu Feb 13 19:05:58 2025 -0700
generic options
commit 3cd62774a1b54e5e9da0c1c5b2626de4f49116ca
Merge: d95e5d9838 41e0f97176
Author: Julien Tant <julien@craftyx.fr >
Date: Thu Feb 13 10:48:47 2025 -0700
Merge remote-tracking branch 'origin/master' into MM-62695
commit d95e5d9838b9b00bd4ef9ec066df03cfc52596d7
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 17:07:28 2025 -0700
style
commit 2256076ed174b25a5decc2631ee6abaa9fa1a3c1
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 17:06:22 2025 -0700
refactor: Make color field optional in custom profile attributes
commit 7382b8ecb3964083d24d879210aa3d137983b404
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 16:40:10 2025 -0700
fix api test
commit a54c2d653f9a2e46d989181f9ef5ffd3dcbdb8c0
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 16:02:27 2025 -0700
lint
commit 9d2e3f78f6ba836b599df7f3cdd4766bf47cd600
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 15:50:31 2025 -0700
use custom types rather than string
commit 4624df52cbda3cb9b0f8fa60b7a3d4f5ecf1c845
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 15:40:52 2025 -0700
refactor: Use consistent "ValidateCPAField" in error messages for custom profile attributes
commit 42716170b7158cc4d3ce06cfef36046be6290def
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 15:36:04 2025 -0700
fix casing in custom profilte attributes test
commit bcca3d87c47efcf95fcea2d1b380ce8aee89f7d4
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 15:33:26 2025 -0700
refactor: Modify CustomProfileAttributesSelectOption to use lowercase JSON keys
commit 861e12c1fcaedb69d331120bd4ae58757df1fae1
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 15:29:23 2025 -0700
i18n
commit a44f6f40eb5babab5f72a49078bec110a4645ddb
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 15:21:08 2025 -0700
improve test
commit b2f002016fb7438a4507f9cb1cc236a43fb71e27
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 15:10:00 2025 -0700
test: Add test case for preserving option IDs when patching select field
commit aac155ef23866d7b85ef49483eec5b610b2a8bc0
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 15:04:18 2025 -0700
don't do validation in constructor
commit a88c092768fb0c46b76e72d6e27f417d3f25ba86
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 15:00:10 2025 -0700
feat: Enhance ID validation and trimming in custom profile attributes
commit b6fb5f274a97f9de4d80899a406b4397d2a4983e
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 14:57:24 2025 -0700
test: Add test cases for preserving IDs in custom profile attributes
commit bbb7f3e2610f4ebc96c6043504710f359d48a733
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 14:56:15 2025 -0700
refactor: Update CustomProfileAttributesSelectOption constructor to prioritize ID parameter
commit dbd1728a14fd708e60a3c1180b21a155221a032a
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 14:50:14 2025 -0700
feat: Add validation for custom profile attributes fields
commit e87689571bde77c2881f50af537930be9355f815
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 14:44:15 2025 -0700
test: Add comprehensive test for NewCustomProfileAttributesSelectOptionFromMap
commit a2292d44ff2cc496e36633440c3d0cbdb1930e45
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 14:43:14 2025 -0700
feat: Add support for lowercase and title case keys in custom profile attributes map
commit 47ca1848767d597f8305c4c183a68be476c034b9
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 14:43:12 2025 -0700
fix: Update custom profile attributes map keys to use capitalized names
commit e8de7dfc6d01c73064c10f65e0ecc86c4b2ae320
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 14:01:31 2025 -0700
feat: Add comprehensive test cases for custom profile attributes field validation
commit e798a53170d0aedbe25916cdaef3a11ac4191fd5
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 13:56:25 2025 -0700
add default visibility
commit e54ea2ba2f19bbcea06c9deed1a28923a2db5532
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 13:22:04 2025 -0700
fix tests
commit db1839a6e9b7d6a86ae334fa7bcae5e3aa622295
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 13:18:51 2025 -0700
feat: Add index number to validation error messages in custom profile attributes
commit 35e29a0dfd3fb3cc09b7a2ec9234791719224c01
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 13:18:49 2025 -0700
refactor: Add validation and creation methods for custom profile attributes
commit eac47527d27607fef30e840175c6ddb855445467
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 12:49:00 2025 -0700
feat: Add validation to prevent empty custom profile attribute options
commit 1baece68f945de3d8fe8d4fe9df0ebcb243ba5f7
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 12:48:36 2025 -0700
refactor: Rename NewCustomProfileAttributeSelectOption to NewCustomProfileAttributesSelectOption
commit 43710b018ab102f74ecaf2339e29593ae5dd3f55
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 12:46:43 2025 -0700
refactor: Replace map[string]bool with map[string]struct{} for key existence check
commit 3263b04478cf69533e298535f75a9d6f252e46de
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 12:46:06 2025 -0700
feat: Add IsValid method to validate CustomProfileAttributesSelectOptions
commit 4531710f560fbc22ab76f6a67597e154fec3c896
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 12:46:04 2025 -0700
refactor: Fix typo in custom profile attributes select option function name
commit c1c821275c574e15a0e03987098891e191e9aa55
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 12:42:50 2025 -0700
gofmt
commit 328c898a3f0c50f8b0dd83aa37c84c099342a8a4
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 12:41:14 2025 -0700
refactor: Trim spaces from name and color in custom profile attribute select option constructor
commit b924431499b1b1472f377fd6c8bc1e726e8857c3
Author: Julien Tant <julien@craftyx.fr >
Date: Wed Feb 12 12:41:12 2025 -0700
feat: Add custom profile attributes model with validation and constants
commit 463ad161c5141cc8994bab0278cdc1df54f4b4e3
Author: Julien Tant (aider) <julien@craftyx.fr >
Date: Wed Feb 12 12:40:19 2025 -0700
test: Add unit tests for custom profile attributes select options
* sort_order int temp
* name, type menu, dot menu
* values add/remove
* disabled when deleted
* - max length
- full height
- validate options
- clear attrs.options when not select/multiselect
* Revert "sort_order int temp"
This reverts commit ed675983c21965d7a9534e6c7b4eb38b8a751002.
* Revert "Squashed commit of the following:"
This reverts commit faf8b01169f0c285b7c77333f601e3cc7a1f4f18.
* field values test
* test type menu
* test table
* fix dot menu item id
* test delete modal
* test dot menu
* fix system_properties test
* fix user_properties_utils tests
* fix attr sort_order type
* i18n
* fix lint
* fix test types
* lint scss
* wip
* fix attrs json
* ldap/saml links
* duplicate
* menuitemlink - blockable
* user_properties_values tests
* add blockable link test
* user_properties_dot_menu test
* types
* lint styling
* fix test
* i18n
* self-review changes:
- enforce field limit for duplicate flow
- useMemo dep
- disable non-text field type options when ldap/saml syncing active
2025-04-22 12:55:05 +02:00
Hosted Weblate
ea217e2352
Update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/
2025-04-22 09:22:29 +00:00
Tom De Moor
8abf889500
Translated using Weblate (Dutch)
...
Currently translated at 99.9% (6133 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-04-22 09:22:29 +00:00
Tom De Moor
7cc6f6aa3f
Translated using Weblate (Dutch)
...
Currently translated at 99.6% (2641 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-04-22 09:22:29 +00:00
Tom De Moor
ad5f28a7f2
Translated using Weblate (Dutch)
...
Currently translated at 99.6% (6113 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-04-22 09:22:29 +00:00
Matthew Williams
2c0320e904
Translated using Weblate (English (Australia))
...
Currently translated at 99.9% (6133 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/en_AU/
2025-04-22 09:22:29 +00:00
Matthew Williams
e06096417f
Translated using Weblate (English (Australia))
...
Currently translated at 99.9% (2648 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/en_AU/
2025-04-22 09:22:29 +00:00
Matthew Williams
7656bfa0d8
Translated using Weblate (English (Australia))
...
Currently translated at 98.9% (6067 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/en_AU/
2025-04-22 09:22:29 +00:00
Matthew Williams
bf8d6756df
Translated using Weblate (English (Australia))
...
Currently translated at 98.9% (2622 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/en_AU/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
a7f85c9edd
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 78.1% (4795 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
8636b409f6
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 2.9% (79 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nb_NO/
2025-04-22 09:22:29 +00:00
Bohdan
95b277845e
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-04-22 09:22:29 +00:00
Bohdan
7cd0f9aa38
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (2649 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-04-22 09:22:29 +00:00
Sharuru
916c8ee95c
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/
2025-04-22 09:22:29 +00:00
Sharuru
c525fa1c88
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (2649 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/
2025-04-22 09:22:29 +00:00
Sharuru
fdb9c00ccb
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 98.7% (2617 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
10d02f9591
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 78.0% (4790 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
Bohdan
d6e0421fc8
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-04-22 09:22:29 +00:00
kaakaa
7d734a382f
Translated using Weblate (Japanese)
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
2025-04-22 09:22:29 +00:00
kaakaa
c5421a693e
Translated using Weblate (Japanese)
...
Currently translated at 100.0% (2649 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ja/
2025-04-22 09:22:29 +00:00
jprusch
f0cddc4b57
Translated using Weblate (German)
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
2025-04-22 09:22:29 +00:00
jprusch
57f0e8d0ca
Translated using Weblate (German)
...
Currently translated at 100.0% (2649 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/
2025-04-22 09:22:29 +00:00
jprusch
75d04a3941
Translated using Weblate (German)
...
Currently translated at 99.6% (6111 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
fc39127cea
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 78.0% (4785 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
efe604c05a
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 77.7% (4772 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
998448880c
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 77.2% (4738 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
master7
5f404a8426
Translated using Weblate (Polish)
...
Currently translated at 100.0% (6134 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
2025-04-22 09:22:29 +00:00
Serhii Khomiuk
8a15346fe2
Translated using Weblate (Ukrainian)
...
Currently translated at 99.4% (2634 of 2649 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-04-22 09:22:29 +00:00
Frank Paul Silye
24be88f411
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 77.1% (4735 of 6134 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-04-22 09:22:29 +00:00
Agniva De Sarker
d8dbb6cc22
MM-56548: [AI assisted]Add support for incremental thread loading using UpdateAt timestamp ( #30486 )
...
Every time we load the RHS, we used to load the FULL thread always. Although
the actual ThreadViewer React component is virtualized, and the server side
API call is paginated, we still went through all the pages, to get the full
thread and passed it on to the ThreadViewer. This would be for first loads,
and subsequent loads of the same thread.
This was a bug originally, but then it was a necessity after we applied websocket event scope because
now we won't get emoji reactions of a thread if the user is not on the thread.
To fix that, we enhance the thread loading functionality by adding support for fetching
thread updates based on the UpdateAt timestamp. Now, for subsequent loads,
we only get the changed posts in a thread. The implementation:
- Adds new API parameters: fromUpdateAt and updatesOnly to the GetPostThread endpoint
- Updates database queries to support sorting and filtering by UpdateAt
- Implements thread state management to track the last update timestamp
- Adds client-side support to use incremental loading for improved performance
- Ensures proper validation for parameter combinations and error handling
This change enables more efficient thread loading, particularly for long threads
with frequent updates, by only fetching posts that have been updated since the
last view.
Caveats: For delta updates, the SQL query won't use the best index possible
because we have an index for (CreateAt, Id), but no index for (UpdateAt, Id).
However, from my tests, it is not as bad as it looks:
```
[loadtest] # EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM Posts WHERE Posts.DeleteAt = 0 AND Posts.RootId = 'qbr5gctu9iyg8c36hpcq6f3w8e' AND Posts.UpdateAt > 1623445795824 ORDER BY UpdateAt ASC, Id ASC LIMIT 61;
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------
Limit (cost=8.31..8.31 rows=1 width=216) (actual time=0.047..0.049 rows=0 loops=1)
Buffers: shared hit=2
-> Sort (cost=8.31..8.31 rows=1 width=216) (actual time=0.044..0.045 rows=0 loops=1)
Sort Key: updateat, id
Sort Method: quicksort Memory: 25kB
Buffers: shared hit=2
-> Index Scan using idx_posts_root_id_delete_at on posts (cost=0.28..8.30 rows=1 width=216) (actual time=0.031..0.032 rows=0 loops=1)
Index Cond: (((rootid)::text = 'qbr5gctu9iyg8c36hpcq6f3w8e'::text) AND (deleteat = 0))
Filter: (updateat > '1623445795824'::bigint)
Buffers: shared hit=2
Planning:
Buffers: shared hit=3
Planning Time: 0.508 ms
Execution Time: 0.106 ms
(14 rows)
```
We still get an index scan with index cond. Although there's a filter element, but atleast we get the whole thread with the index.
My thinking is that while the whole thread might be large, but after that, updates on a thread should be incremental.
Therefore, we should be okay without adding yet another index on the posts table.
This is just the first step in what could be potentially improved further.
1. We shouldn't even be loading the full thread always. But rather let the virtualized viewer
load more posts on demand.
2. If a post has been just reacted to, then we need not send the whole post down, but just the
reaction. This further saves bandwidth.
https://mattermost.atlassian.net/browse/MM-56548
TBD: Add load-test coverage to update the thread loading code
```release-note
NONE
```
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-22 10:43:13 +05:30
Saturn Abril
d631974e88
MM-63820 chore(e2e): update dependencies and docs ( #30807 )
...
* chore(e2e): update dependencies and docs
* update the use of postMessage, expose 8065 on test server and fix flakiness on profile popover
2025-04-22 02:02:55 +08:00
Alejandro García Montoro
de46d798e4
MM-60780: Reject emails within angle brackets ( #29661 )
...
* Reject emails within angle brackets
mail.ParseAddress is RFC-compliant, which means that it accepts emails
with names, as in "Billy Bob <billy@example.com >". It even accepts this
form *without* a name; e.g. "<billy@example.com >". We want to store the
plain address, so we compare the user input with the Address field of
the result from mail.ParseAddress, which should contain only
"billy@example.com ", thus only accepting emails that do not contain
names nor angle brackets.
* Log a warning for admins with clear next steps
* Fix wording of comment
* And a typo
* Add specific command example to log message
* Add input email to log message
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-21 19:22:15 +02:00
M-ZubairAhmed
502506a517
[MM-55277] Team's menu doesn't follow standard accessible keyboard behavior ( #29917 )
2025-04-18 19:18:54 +05:30
Jesse Hallam
b59f10cbbd
MM-62158: Group Store, explicit aliases ( #30741 )
2025-04-17 17:37:28 -03:00
Jesse Hallam
4a93939359
MM-63728: Add license load metric endpoint and UI indicator ( #30700 )
...
* Add license load metric endpoint and UI indicator
Adds an API endpoint to calculate and return license usage as a load metric, and displays this metric in the About dialog. The metric is calculated as (MAU/licensed users)*100.
Additionally:
- Renamed function to be consistent with API endpoint name
- Added proper i18n strings for error messages and UI elements
* Fix TypeScript null check in about_build_modal.tsx
* MM-63728: Update OpenAPI documentation for license load metric
Update the OpenAPI documentation and code comments to correctly describe the license load metric calculation as using a multiplier of 1000 instead of percentage.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
* MM-63728: Use float for license load metric calculation
Modify the license load metric calculation to use floats throughout the computation process while still returning an integer result. This maintains the existing API but improves the precision of the calculation.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
* improve tests manually
* Update server/channels/api4/license_test.go
Co-authored-by: Doug Lauder <wiggin77@warpmail.net >
* Update server/channels/api4/license_test.go
Co-authored-by: Doug Lauder <wiggin77@warpmail.net >
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Doug Lauder <wiggin77@warpmail.net >
2025-04-17 17:29:46 -03:00
Scott Bishel
10bff401ee
MM-63587 Custom Profile Attributes E2E Profile Popover Test ( #30777 )
...
* add e2e tests for custom profile settings
* fix failed tests
* reorg folder and file convention, and add more details of the tests
* add e2e-tests for custom profile attributes in profile popover
* cleanup
* add test keys, move to folder of feature and move common function and constants to helper file
---------
Co-authored-by: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com >
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-17 13:20:04 -06:00
Harrison Healey
e8685a5802
MM-63313 Make theme setting radio buttons horizontal and update text ( #30584 )
...
* MM-63313 Make theme setting radio buttons horizontal and update text
* MM-63313 Add Playwright test for a11y of theme settings
* Update snapshot
* Run prettier on E2E tests
* Address feedback
* Ensure new test reliably passes on Firefox
For whatever reason, Firefox lets you tab onto the Sidebar Styles panel
while it's expanding, possibly because it's a scrollable container with
overflowing content or because other browsers don't register the
children of that panel as visible while the panel is animating open.
Either way, we can look at the CSS on the panel to confirm when the
transition is done.
* Revert previous changes made to premade theme label alignment and size
In the last PR, these were changed from generic divs to buttons, and the
default browser style for buttons adds some extra padding and centres
the button text by default, so we have to override that.
* Adjust margins on inline radio group
* Fix playwright test code styling
* Fix bad import in E2E tests
2025-04-17 12:05:35 -04:00
Scott Bishel
b19ce98a74
get custom profile fields after login ( #30665 )
...
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-17 09:59:33 -06:00
Matthew Birtch
3eb007fc82
MM-63704 Hide priority label if message is deleted ( #30718 )
...
* hide priority label if message is deleted
* added unit test
* fix lint issue
* Update panel_body.test.tsx.snap
---------
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-17 08:27:17 -04:00
Ben Schumacher
00a242b879
[MM-62412] Block login of SAML users if no connected LDAP user is found ( #29786 )
2025-04-17 14:06:23 +02:00
Eva Sarafianou
b548a8f336
feat: Switch from Redoc to Stoplight Elements for API documentation ( #30591 )
2025-04-17 12:31:56 +03:00
Agniva De Sarker
e00cccd33f
Bump up test runners after Elasticsearch move ( #30778 )
...
When Elasticsearch/Opensearch was in enterprise repo,
we had to bump up the runners: 9b151defcc .
However, the ES code was move inside server repo,
but the test runners were not changed. This led to frequent
test failures. So we are bumping up the test runners.
This will unfortunately lead to an increased cost, but
we have also cut down in other places viz. the build phase
uses the free runner now (https://github.com/mattermost/mattermost/pull/29297 ).
And the enterprise build also uses free runner (https://github.com/mattermost/enterprise/pull/1792 ).
```release-note
NONE
```
2025-04-17 10:23:37 +05:30
Weblate (bot)
ecd92e4896
Translations update from Mattermost Weblate ( #30727 )
...
* Translated using Weblate (Polish)
Currently translated at 100.0% (2632 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pl/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/sv/
* Translated using Weblate (Lithuanian)
Currently translated at 8.4% (222 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/lt/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.3% (4673 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
* Translated using Weblate (Japanese)
Currently translated at 99.1% (6062 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (German)
Currently translated at 100.0% (2632 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/
* Translated using Weblate (German)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (Finnish)
Currently translated at 48.5% (1277 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/fi/
* Translated using Weblate (Finnish)
Currently translated at 48.5% (1277 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/fi/
* Translated using Weblate (Finnish)
Currently translated at 48.5% (1277 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/fi/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.5% (4684 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
* Translated using Weblate (Russian)
Currently translated at 97.1% (2557 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ru/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2632 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.8% (4698 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
* Translated using Weblate (Russian)
Currently translated at 97.5% (2568 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ru/
* Translated using Weblate (Japanese)
Currently translated at 99.1% (6068 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
* Translated using Weblate (Japanese)
Currently translated at 99.8% (2627 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ja/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (Dutch)
Currently translated at 99.7% (2625 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (2632 of 2632 strings)
Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/sv/
* Translated using Weblate (Dutch)
Currently translated at 99.9% (6116 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
* Translated using Weblate (Polish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (6117 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/sv/
* Translated using Weblate (Norwegian Bokmål)
Currently translated at 77.1% (4722 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
* Translated using Weblate (Lithuanian)
Currently translated at 77.7% (4754 of 6117 strings)
Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/lt/
* 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: master7 <marcin.karkosz@rajska.info >
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se >
Co-authored-by: evituzas <evita.svegzdaite@gmail.com >
Co-authored-by: Frank Paul Silye <frankps@gmail.com >
Co-authored-by: Takuya N <takninnovationresearch@gmail.com >
Co-authored-by: Arusekk <floss@arusekk.pl >
Co-authored-by: jprusch <rs@schaeferbarthold.de >
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com >
Co-authored-by: Konstantin <eleferen@gmail.com >
Co-authored-by: Bohdan <bshumylo@yahoo.com >
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be >
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-16 16:05:19 -03:00
Scott Bishel
583ba80c7e
revert css changes, add new css ( #30699 )
...
Co-authored-by: Mattermost Build <build@mattermost.com >
2025-04-16 08:21:00 -06:00