Commit Graph

57992 Commits

Author SHA1 Message Date
87a1d161c1 FIX: Minimum username length should be validated (#31332)
`@min_length_violation` was not defined and that made the range of
values error message to never be displayed.
2025-02-13 21:05:31 +02:00
5f00ae2ca9 DEV: Introduce plugin modifiers for post.cooked and topic.fancy_titles (#31261)
Related:
40fd82e2d1

This PR introduces three new plugin modifiers attached to 
- `basic_post_serializer.cooked`
- `basic_topic_serializer.fancy_title`
- `topic_view_serializer.fancy_title`

Implementation note: I had wanted to add them in the `Post` and `Topic`
models themselves, but they do not directly provide access to the
request's scope which is needed for the use case.
2025-02-14 00:19:50 +08:00
65d7ea2dbc FIX: Keep user in same context after login (#31314)
This fixes the destination of the auth process in the following
scenarios:

- when landing on a PM or a topic as an anonymous user and then loggin
in
- when landing on a public topic, hitting Reply or Like and then logging
in
2025-02-13 10:35:00 -05:00
8d709aeb9c DEV: Introduce DecoratedHtml component and use for discourse-banner (#31305)
Eventually, this new component will be used everywhere that we render
'decorated' HTML (e.g. all posts and chat messages). It takes the best
bits from our main widget-based post rendering and re-creates it in a
more ember-native way. For example:

- The HTML is first rendered in a detached DOM, so that requests for
images/iframes/etc. are not triggered until after the decoration

- HTML generation and decoration is done in a helper (i.e. during the
'render' phase of the runloop). I think that's the 'most Ember
compatible' way for us to do this. It means that components added via
`renderGlimmer` will be rendered in the same runloop, and it means that
things like `schedule("afterRender")` will work exactly as expected.

- HTML will be re-rendered and re-decorated whenever the `@html` or
`@decorate` arguments change

- BUT, `untrack` is used to ensure that reactive state accessed inside
the decorate function will not trigger a re-render. This is mostly for
compatibility with existing decorators, and we may want to make
reactivity opt-in in future

- A self-contained `renderGlimmer` system is included. This will allow
`helper.renderGlimmer` to be used for any content in these components.
Implementing it in a self-contained way rather than using the service
means that the component will work ok in unit tests, and that rendered
components will show up in the right place in the Ember inspector.

This commit only introduces the new component in DiscourseBanner.
Followups will introduce it elsewhere.
2025-02-13 12:20:52 +00:00
3f0e84054b FIX: ensures fields are correctly unregistered (#31329)
Ember workaround to ensure that a field with the same name is correctly
destroyed/created when changing the params and then correctly calling
registerField/unregisterFIeld.
2025-02-13 11:35:49 +01:00
2b996a9d39 DEV: Rescue from each step of EnsureDbConsistency (#31313)
A failure early in the job would prevent the rest of the ensure
consistency methods to run.
2025-02-13 12:07:04 +02:00
cbe9a9f33b DEV: Don't run conditionally skipped tests (#31326)
Those still run `QUnit.testStart`/`QUnit.testDone` callbacks, and doing
so with no actual test body leads to flaky behavior.
2025-02-13 04:27:21 +01:00
c3109f2ddd DEV: Fix dark-mode qunit "skipped" test color (#31327) 2025-02-13 04:27:12 +01:00
97d030e864 DEV: Implement disabled state in Image control (#31324) 2025-02-13 03:56:47 +01:00
e320a375d3 DEV: Remove redundant system spec (#31317)
This is covered by the two specs above it:

"automatically redirects when going to /signup" and "automatically
redirects when skipping the signup form"

(Plus, it doesn't do what it says on the label.)
2025-02-12 21:28:44 -05:00
013bf88019 DEV: convert icon name earlier for plugins in test env (#31196)
This makes the backtrace for a deprecated icon name error clearer in
terms of pointing out which plugin the icon is being registered from.
The error will only be raised in the test environment.

This PR also extracts out to a separate module the hashmaps & logic for
converting FA4 era icons to discourse FA6 compatible icons. This
isolates that logic for reuse in DiscoursePluginRegistry - otherwise
pulling in the whole SvgSprite resulted in errors.
2025-02-13 07:20:23 +08:00
82c7c1dbda DEV: add missing button classes to topic-footer-mobile-dropdown (#31323)
Adds a couple missing classes to this mobile-specific button: 


![footer-btn](https://github.com/user-attachments/assets/9f6e9fdd-a34b-4c2b-98bd-7e55b698fb50)
2025-02-12 17:51:22 -05:00
310cd513d8 DEV: Convert UppyImageUploader to gjs (#31310) 2025-02-12 23:31:42 +01:00
a585fc5a24 FIX: Calculate reaction_users_count in the bulk import script (#30964)
`reaction_users_count` should be calculated in the import script instead
of the converter.
2025-02-12 17:29:10 -05:00
6c70825d3d DEV: Fix pnpm dedupe workflow branch matching (#31322)
It was missing branches for updated namespaced packages
2025-02-12 23:22:26 +01:00
faf0b6902c Build(deps): Bump @faker-js/faker from 9.4.0 to 9.5.0 (#31320)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.4.0 to
9.5.0.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v9.4.0...v9.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 23:04:40 +01:00
b45044c6b8 Build(deps): Bump rack from 2.2.10 to 2.2.11 (#31321)
Bumps [rack](https://github.com/rack/rack) from 2.2.10 to 2.2.11.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/v2.2.10...v2.2.11)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 23:04:06 +01:00
dbb52e5f57 Build(deps): Bump ace-builds from 1.37.5 to 1.38.0 (#31319)
Bumps [ace-builds](https://github.com/ajaxorg/ace-builds) from 1.37.5 to
1.38.0.
- [Release notes](https://github.com/ajaxorg/ace-builds/releases)
-
[Changelog](https://github.com/ajaxorg/ace-builds/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/ajaxorg/ace-builds/compare/v1.37.5...v1.38.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 23:01:52 +01:00
c3588ce725 Build(deps): Bump prosemirror-view from 1.37.2 to 1.38.0 (#31318)
Bumps
[prosemirror-view](https://github.com/prosemirror/prosemirror-view) from
1.37.2 to 1.38.0.
-
[Changelog](https://github.com/ProseMirror/prosemirror-view/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/prosemirror/prosemirror-view/compare/1.37.2...1.38.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 22:58:43 +01:00
797bb8b8af DEV: add btn-transparent class to advanced search button (#31316)
Noticed that this advanced search button unintentionally picks up some
unwanted styles in themes:


![image](https://github.com/user-attachments/assets/0bccddcd-3982-4b4d-9a98-efc2f91a9077)

adding the btn-transparent class should help
2025-02-12 16:21:55 -05:00
e7c2c92961 DEV: Change the default value of glimmer_post_menu_mode to enabled (#31297) 2025-02-12 17:05:39 -03:00
d2a34bed84 DEV: Add post-menu-toggle-like-action transformer (#31295)
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2025-02-12 16:29:59 -03:00
2e10fe98a3 FIX: automatically redirect logged in users to topic when... (#31301)
...loading an invite link that points to a topic they already have
access to.

This "feature" was removed in 07ef1a80a1461123d602c57e366974aed265a91e
as part of the security fix.

Internal ref - t/145628
2025-02-12 17:48:59 +01:00
6f5cdfccf5 DEV: Add search result view appEvent trigger (#31287)
This PR adds a trigger for the `search-result-view` appEvents.
2025-02-12 10:39:37 -06:00
963675c32e FIX: do not show confirmation modal (#31304)
Currently when using the shortcuts to delete a post the UI would show
you the confirmation modal even if you don't have the right to do it.
This commit fixes the issue at the root in the
`deletePostWithConfirmation` function.
2025-02-12 17:04:08 +01:00
f5c2a4dbbd DEV: Drop experimental enable_diffhtml_preview setting (#31306)
This was intended to provide a better UX for interactive elements in the
composer preview. However, the morphing strategy has irreconcilable
conflicts with our `decorateCooked` API, and so we have been unable to
enable this by default.

Going forward, we're focussing efforts on the WYSIWYG composer to
provide this kind of smooth UX, so we're dropping the
`enable_diffhtml_preview` approach.
2025-02-12 15:58:30 +00:00
d6d3c2316b UX: Hide powered-by on admin invite page (#31303)
similar to: 63d376c7a9542709ec748aad32e76f304da29f4f


![image](https://github.com/user-attachments/assets/75e5b6cd-d967-4483-a16e-8fa852746c1e)
2025-02-12 07:55:17 -07:00
23e07fb076 DEV: supports pointerover and pointerout (#31302)
This commit adds support these events in widgets.

Usage in a widget:

```javascript
pointerOver(event) {}
pointerOut(event) {}
```
2025-02-12 14:54:17 +01:00
820c8cb119 Build(deps): Bump the babel group with 2 updates (#31245)
Bumps the babel group with 2 updates:
[@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core)
and
[@babel/standalone](https://github.com/babel/babel/tree/HEAD/packages/babel-standalone).


Updates `@babel/core` from 7.26.7 to 7.26.8
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/babel/babel/commits/v7.26.8/packages/babel-core)

Updates `@babel/standalone` from 7.26.7 to 7.26.8
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/babel/babel/commits/v7.26.8/packages/babel-standalone)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-02-12 12:52:10 +01:00
5b8a35c87d Build(deps): Bump terser from 5.37.0 to 5.38.2 (#31289)
Bumps [terser](https://github.com/terser/terser) from 5.37.0 to 5.38.2.
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.37.0...v5.38.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 12:44:15 +01:00
238160b812 Build(deps): Bump prosemirror-view from 1.37.1 to 1.37.2 (#31186)
Bumps
[prosemirror-view](https://github.com/prosemirror/prosemirror-view) from
1.37.1 to 1.37.2.
-
[Changelog](https://github.com/ProseMirror/prosemirror-view/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/prosemirror/prosemirror-view/compare/1.37.1...1.37.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 12:11:46 +01:00
a43d905ec6 Build(deps-dev): Bump ember-cli from 6.1.0 to 6.2.0 (#31229)
Bumps [ember-cli](https://github.com/ember-cli/ember-cli) from 6.1.0 to
6.2.0.
- [Release notes](https://github.com/ember-cli/ember-cli/releases)
-
[Changelog](https://github.com/ember-cli/ember-cli/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/ember-cli/ember-cli/compare/v6.1.0...v6.2.0)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-02-12 12:11:36 +01:00
e7f56e121f Build(deps-dev): Bump @swc/core from 1.10.12 to 1.10.15 (#31247)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.10.12 to
1.10.15.
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/swc-project/swc/compare/v1.10.12...v1.10.15)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 12:09:44 +01:00
ba5ec0dd1d Build(deps-dev): Bump esbuild from 0.24.2 to 0.25.0 (#31248)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.24.2 to 0.25.0.
- [Release notes](https://github.com/evanw/esbuild/releases)
-
[Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.24.2...v0.25.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 11:22:27 +01:00
5a95a7d0fd Build(deps): Bump net-imap from 0.5.5 to 0.5.6 (#31250)
Bumps [net-imap](https://github.com/ruby/net-imap) from 0.5.5 to 0.5.6.
- [Release notes](https://github.com/ruby/net-imap/releases)
- [Commits](https://github.com/ruby/net-imap/compare/v0.5.5...v0.5.6)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 11:03:25 +01:00
596e9c3147 DEV: Fix scss/no-global-function-names stylelint rule (#31280)
The ignored lines are using functions that have replacements ,but those
are not available on our sass version.
2025-02-12 10:51:32 +01:00
55af5c1593 Build(deps-dev): Bump lint-to-the-future-eslint from 2.2.0 to 3.0.0 (#31265)
Bumps
[lint-to-the-future-eslint](https://github.com/mansona/lint-to-the-future-eslint)
from 2.2.0 to 3.0.0.
- [Release
notes](https://github.com/mansona/lint-to-the-future-eslint/releases)
-
[Changelog](https://github.com/mansona/lint-to-the-future-eslint/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/mansona/lint-to-the-future-eslint/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 10:49:01 +01:00
e96f78fcc8 Build(deps-dev): Bump @embroider/compat from 3.8.0 to 3.8.1 in the embroider group (#31246)
Bumps the embroider group with 1 update:
[@embroider/compat](https://github.com/embroider-build/embroider/tree/HEAD/packages/compat).


Updates `@embroider/compat` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/embroider-build/embroider/releases)
-
[Changelog](https://github.com/embroider-build/embroider/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/embroider-build/embroider/commits/HEAD/packages/compat)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-02-12 10:48:05 +01:00
6af98fd0fb Build(deps): Bump json from 2.9.1 to 2.10.1 (#31262)
Bumps [json](https://github.com/ruby/json) from 2.9.1 to 2.10.1.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.9.1...v2.10.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 10:46:57 +01:00
8ab57e4266 UX: Add enter key hints for search (#31298)
Adds https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint
to the search inputs.

This hint is used for mobile devices to guide what label
is shown on the onscreen keyboard. By default `return` is
shown, now for search we will see `search`.

Also add `type="search"` to the full page search input for
further guidance.
2025-02-12 15:51:44 +10:00
b3a686ca4e DEV: Move image auto-grid back to experimental (#31296)
This feature was originally experimental. We made it baseline in #29572, however this was met with some pushback, so we have decided to make it experimental again.

The original PR couldn't be reverted, but this one basically does the same by cherry-picking all the changes back.
2025-02-12 11:18:24 +08:00
2cafd7e79b DEV: Separate admins and moderators on about page (#31272)
This PR does some things to the about page:

- Hide the stat if there are 0 admins/moderators.
- Count admins and moderators separately, so a user who is both will add
to both counts.
- A user who is both will still show up as a moderator, even if `admins`
is hidden.
2025-02-12 09:57:53 +08:00
441620ce61 DEV: delete nameValidation mixin (#31275)
This mixin is now ready for deletion, all uses of it has been removed
from plugins.
2025-02-12 09:50:13 +08:00
13a5e5b297 Build(deps-dev): Bump puppeteer-core from 24.1.1 to 24.2.0 (#31207)
Bumps [puppeteer-core](https://github.com/puppeteer/puppeteer) from
24.1.1 to 24.2.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
-
[Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.1.1...puppeteer-core-v24.2.0)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-02-12 02:27:36 +01:00
ae3d4f2146 Build(deps): Bump msgpack from 1.7.5 to 1.8.0 (#31225)
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.5 to
1.8.0.
-
[Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
-
[Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.5...v1.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 02:26:30 +01:00
b3b15bc7fc DEV: Cancel header calculations on destroy (#31294) 2025-02-12 02:03:19 +01:00
b5b6586f07 Build(deps-dev): Bump webmock from 3.24.0 to 3.25.0 (#31227)
Bumps [webmock](https://github.com/bblimke/webmock) from 3.24.0 to
3.25.0.
-
[Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/bblimke/webmock/compare/v3.24.0...v3.25.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 01:15:52 +01:00
ea719408ab Build(deps-dev): Bump bullet from 8.0.0 to 8.0.1 (#31263)
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.0 to 8.0.1.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.0...8.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 01:15:34 +01:00
d0498c9e1d FIX: Limit displayed groups in <GroupChooser /> to 100 groups (#31288)
Follow-up to https://github.com/discourse/discourse/pull/31271

In the linked PR, we made `<GroupChooser />` use the site's preloaded
list of groups instead of fetching the list from the servers every time
the component is triggered. However, when a site has thousands of
groups, the performance issue has shifted from the server to the browser
— `<GroupChooser />` takes several seconds to render in the browser for
a site with thousands of groups and the sites becomes completely
unresponsive while the component is rendering.

This PR changes the `<GroupChooser />` so it limits the displayed groups
to 100, with ability to filter the list to show more groups when there
are more than 100 groups.
2025-02-12 03:14:57 +03:00
cf6bab3d85 Build(deps-dev): Bump rubocop from 1.71.1 to 1.71.2 (#31183)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.71.1 to
1.71.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
-
[Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop/compare/v1.71.1...v1.71.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-12 01:10:44 +01:00