* MM-64417 Change permissions table to use a grid for animation
* Don't change padding on permissions table when animating
* Update snapshots
* Combine CSS for AdminPanel and AdminPanelTogglable
* Removed leftover reference to old CSS file
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Stop explicitly passing autocompleteUrlSchemes into text formatting code
This is the first part of changing how autocompleteUrlSchemes works so
that it can be moved to be part of the parser like in mobile instead of
happening in the renderer.
I'm not a fan of using the global store directly in utils/markdown, but
this seems like the only way to have this apply to all the Markdown
that's rendered in various helpers throughout the app. Ideally, we'd
have some getMarkdownParser selector and a hook which provides the
config, but that's a future improvement to make"
* MM-62744 Move URL filtering to the Markdown parser instead of the renderer
MM-62744 is caused by two things:
1. URL autolinking takes place in the Markdown parser which occurs
before at-mention parsing which (despite the "parsing" part) happens
in the Markdown renderer in the web app.
2. The autolinking in marked is very aggressive and identifies anything
that looks like some:text as a link.
Those lead to remote mentions like `@user:server` being incorrectly
parsed by Markdown as a link to `user:server`. It isn't renderered as a
link because the URL filtering logic in the Markdown parser blocks that,
but at that point, the Markdown renderer won't check if it's an
at-mention.
By moving the URL filtering to occur earlier, like it does in the mobile
app, the Markdown code won't autolink `@user:server` (unless the server
has `user` configured as a custom URL scheme for some reason), so it's
free to be turned into an at-mention by the renderer code.
* MM-62744 Ensure various regexes and features support remote mentions
* Update marked back to master
* Improve clarity of channel notification limit messages
- Update user-facing messages to explain performance reasoning and provide guidance
- Enhance admin setting descriptions to be more informative about user experience
- Change admin setting title to better reflect purpose
Fixes#32159
Co-authored-by: Sven Hüster <svelle@users.noreply.github.com>
* Update webapp/channels/src/i18n/en.json
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update server/i18n/en.json
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update server/i18n/en.json
* Update server/i18n/en.json
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Sven Hüster <svelle@users.noreply.github.com>
Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Add defensive fallback for userHasReadPermissionOnSomeResources
When called with a string instead of an object, the function now falls back
to checking a single resource permission instead of failing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Revert "Add defensive fallback for userHasReadPermissionOnSomeResources"
This reverts commit f9c32bc3e2598467e7c8a520319ac5ae49135cbf.
* simpler fix -- remove string as a possible parameter
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Link post actions menu button to existing menu
That menu isn't fully accessible because it uses the old Menu widget,
but the readout will at least be correct when tabbing through the post
controls.
* MM-61595 Use dedicated popover component for post actions menu when empty
* Update unit tests
* Split out ActionsMenuEmptyPopover to start of separate Popover component
Fix navigation to custom data retention policy form by correcting permission
checking functions. The routes for creating and editing custom data retention
policies were using userHasReadPermissionOnSomeResources() with a single
string resource key, causing permission checks to fail and routes to be
hidden.
Changed both custom_policy_form and custom_policy_form_edit routes to use
userHasReadPermissionOnResource() instead, making them consistent with
other working data retention routes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
* MM-64428 - user tag invite filtering
* fix lint issues
* remove unnecesary line
* update translations and skip mysql tests
* simplify the solution so in abac channels the invitation link is never shown
* finish clean up of unnecessary code
* clean up and remove no longer necessary translations
* remove leftover props and remove no longer needed tests after simplification
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Initial commit
* feat(function component migration): migrate QuickInput to a function component
* fix: add missing export keyword
* Revert "Initial commit"
This reverts commit e40909c6d0590b67e00f62283f6e5a622fbaf9bb.
* refactor: reposition 'showClearButton' variable so tests pass
* refactor: ignore eslint warnings and rename props
Removed 'deleteProperty' calls since some props are destructured.
* refactor(quick_input): wrap functions in useCallback
Updated snapshots, tests, and removed dead code.
* fix(quick_input): add dependencies to useCallback
Restored quick_input.test.tsx to its initial state and made the value prop optional instead.
* MM-64669 Fix keyboard navigation of settings sidebar and add Playwright test
* MM-64669 Revert changes to Cypress test which masked keyboard bug
The changes that were previously made caused Cypress to refocus the
sidebar repeatedly which stopped the test from failing without fixing
the bug.
* Ensure focus highlight is always visible on sidebar tabs
This may not have been broken by the changes that caused MM-64669, but I
noticed it while I was in there and wanted to fix it.
* Fix settings modal scrolling while changing sections using arrow keys
* Remove accidentally-added field
* Remove pricing modal. Adjust everywhere to instead open mattermost.com/pricing. When air gapped, don't show buttons to view plans.
* Fix lint
* Further clean up of unused code. Fixes for linter
* Remove onboarding tasklist for previews, add Cloud previer banner
* Fixes for linter, i18n
* Revert dev lines
* Fix lint
* When below one minute, switch to seconds
* fix linter
* Add scaffolding for new Cloud Preview Modal
* Style updates
* Fix tests
* fixes for PR feedback
* useExternalLink for opening pricing modal with enriched params
* Fix i17n
* fix style
* Fix style, tests
* Fix linter, types
* Add file
* Make types even more fixed
* fix: correct test case for SKU label not provided scenario
The test "should not render SKU label when not provided" was incorrectly using baseContent which includes a SKU label. Fixed by creating contentWithoutSku that explicitly sets skuLabel to undefined to properly test the scenario where no SKU label is provided.
Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>
* Fine I'll do it myself
* fix linter
* Refactors
* Adjustments from PR review. Adjustments to video experience (poster/play button) and starting to translate
* Fix i18n
* Wrap translation strings with defineMessage for i18n extraction
- Add import for defineMessage and MessageDescriptor from react-intl
- Update type definition to use MessageDescriptor for better type safety
- Wrap all skuLabel, title, and subtitle objects with defineMessage() calls
- This ensures the i18n-extract tool can properly detect translation strings
Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>
* Fix i18n
* Use regular modal close button
* Fix pipelines
* Fix i18n
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_controller.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Update webapp/channels/src/components/cloud_preview_modal/preview_modal_content.scss
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Remove unnecessary CSS properties from preview modal content
Remove display: flex, height: 100%, and flex-direction: column from .preview-modal-content selector as they have no effect per code review feedback.
Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>
* Fixes for PR review
* Fix linter
* Fix i18n
* fix linter
* sticky button in bottom left to re-open preview modal when previously closed
* fix linter
* Resize to better fit in place when multiple teams are present
* Changes to address Harrison's feedback
* change file name, remove index.tsx
* Add the new files
* Rename to fix conflicts
* Add the new files
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>