57971 Commits
Author SHA1 Message Date
David TaylorandGitHub 227b182bef DEV: Add topic-list-item-style valueTransformer (#30727)
https://meta.discourse.org/t/346415/7
2025-01-30 17:10:33 +00:00
Neil LalondeandGitHub bad862a97d DEV: add plugin outlet around new color palette button (#31054) 2025-01-30 10:11:19 -05:00
Penar MusarajandGitHub d686053641 UX: remove animation for back button on mobile (#31048)
We're seeing drops in CLS performance and the animation of this element
may likely be the culprit. We can try removing and seeing if this is
indeed the issue.
2025-01-30 09:26:47 -05:00
cf5b8f4211 Build(deps): Bump ember-curry-component from 0.1.0 to 0.3.0 (#31074)
Bumps
[ember-curry-component](https://github.com/davidtaylorhq/ember-curry-component)
from 0.1.0 to 0.3.0.
-
[Commits](https://github.com/davidtaylorhq/ember-curry-component/commits)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-30 13:49:46 +00:00
Joffrey JAFFEUXandGitHub df1aff10c3 DEV: finer format control on field title/description (#31071)
FormKit allows you to set `@format` on a field which will set the width
of the wrapping container of the control. However, title and
descriptions are out of this container. FormKit will now by default
applies the same format to title and description.

You can override this behavior by using `@titleFormat` and
`@descriptionFormat`.
2025-01-30 13:39:05 +01:00
Jarek RadoszandGitHub ede81ae247 DEV: Add a message to dedupe / mind the exit code (#31070) 2025-01-30 13:13:57 +01:00
Jarek RadoszandGitHub 94bad3c6e4 DEV: Pass navigateToTopic action to topic-list-item outlet (#31068) 2025-01-30 13:06:05 +01:00
Jarek RadoszandGitHub 9efc8ec692 DEV: Fix the dedupe workflow (#31067)
(and specify permissions)
2025-01-30 12:56:03 +01:00
Joffrey JAFFEUXandGitHub 579f1519f5 DEV: supports tooltips in form kit (#31065)
Usage:

```javascript
// with a string
<Form as |form|>
  <form.Field @name="foo" @title="Foo" @tooltip="text" as |field|>
    <field.Input />
  </form.Field>
</Form>

// with a DTooltip component
<Form as |form|>
  <form.Field @name="foo" @title="Foo" @tooltip={{component DTooltip content="component"}} as |field|>
    <field.Input />
  </form.Field>
</Form>
```
2025-01-30 11:45:10 +01:00
Martin BrennanandGitHub 1a3976b8e9 FIX: Wizard preview fonts not loaded (#31064)
Followup f55342ba6a

Fixes issues after a refactor in the linked commit.
We now pass `font` as an object to the preview JS
functions, so to get the proper font for the canvas
we need to do `font.label`.
2025-01-30 17:19:56 +10:00
Krzysztof KotlarekandGitHub 618046b40f FIX: Remove groups when promotion is recalculated. (#31058)
The group has `grant_trust_level` setting which automatically updates
the trust level when the user is added to the group.

Similarly, when the user is removed from the group, the trust level is
recalculated.

There was a bug that when the trust level was downgraded, the user was
not removed from automatic groups like for example `trust_level_3`.
2025-01-30 14:24:18 +11:00
Martin BrennanandGitHub d18b143b07 DEV: Bump discourse-fonts (#31059)
This brings in the change from ttf to woff2 fonts
for all our fonts.

This brings the total distributed size of our fonts down to 1.4MB (down
from 17MB) which is ~91% decrease, and most fonts are now only around
20KB max individually :slight_smile: The biggest reduction was Noto Sans
JP, which was in .otf format and ~4MB for each file.
2025-01-30 12:07:32 +10:00
Martin BrennanandGitHub 403a44ee9a UX: Fix tag revert rename 404 error (#31049)
Changing a tag name and reverting it to a previous tag name choice on
the same screen (meaning, without reloading the page) causes a 404
error.

Reproduction steps:

* Open an existing tag page https://your-discourse.com/tag/a
* Click the wrench, change the name and save
* Open edit again, revert the name to the original tag name
* 404 error

This was happening because of the way we find existing objects
in our store. Tags are using the name as the id/primary key
unlike other records in the UI. When we get the existing object
from the store we throw away the "new" ID, so we ended up with
the old tag ID on the existing object, which led to a 404. To
fix it we can just manually set the tag ID to what it is supposed
to be from params in the tag show route.

c.f.
https://meta.discourse.org/t/404-error-when-you-revert-a-tag-name-after-changing-it-without-reloading-the-page/342559
2025-01-30 10:06:55 +10:00
6494cac8a6 Build(deps): Bump puma from 6.5.0 to 6.6.0 (#31057)
Bumps [puma](https://github.com/puma/puma) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v6.5.0...v6.6.0)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-30 00:22:16 +01:00
449a962ab3 Build(deps-dev): Bump @swc/core from 1.10.11 to 1.10.12 (#31055)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.10.11 to
1.10.12.
- [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.11...v1.10.12)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-30 00:19:02 +01:00
Joffrey JAFFEUXandGitHub 6c5574dd5f FIX: only validate length when value is set (#31053)
When using the following validation: `length:5,10`, if the field had no
value we would fail the validation which is incorrect. This commit
ensures we return early in this case and don't fail anymore. If you want
the same behavior you need to do: `required|length:5,10`
2025-01-29 20:23:52 +01:00
Joffrey JAFFEUXandGitHub 2db2f02ee6 FIX: hide none on required fields with value (#31052)
Prior to this fix if a field was marked as required we would never show
the none option of the select, however, some forms come with default
values and in this case we would show the first choice of the select as
selected when it would actually be null. This commit ensures that in
this case we show none, and once you select a value, you can't go back
to none.
2025-01-29 19:34:47 +01:00
JeanandGitHub 5985dddd84 FIX: Allow user directory searches to return more than 20 matching results (#31032)
This PR modifies the directory search logic so that searches by user
fields or name are no longer capped at 20 users
2025-01-29 11:02:42 -04:00
Régis HanolandGitHub fa4c51bb34 DEV: new lock step for services (#30872)
That allows services to wrap steps within a Distributed lock (mutex).
2025-01-29 14:28:22 +01:00
Joffrey JAFFEUXandGitHub e4cfcceb29 DEV: allows to fill in input of type number in specs (#31051)
The system spec helper was not supporting this case.

You can now properly do: `form.field("foo").fill_in(800)` when the input
is of type `number`.
2025-01-29 13:11:03 +01:00
Régis HanolandGitHub 917823daf2 FIX: remove muted topics/tags/categories from top and hot topics lists (#30892)
So it matches the behavior of latest and new.
2025-01-29 11:51:10 +01:00
David TaylorandGitHub e1a5ecd506 Revert "DEV: Upload assets to S3 in parallel (#30210)" (#31050)
This reverts commit 3ca4386841.

Reverting while we work on adding error handling. At the moment,
failures are logged, but the process still exits with status=0.
2025-01-29 10:03:56 +00:00
David BattersbyandGitHub 2bd6ccf007 FEATURE: Multiple Draft Topics (#30790)
Allows users to save multiple topic and personal message drafts,
allowing more flexibility around content creation.

The "New Topic" button will now always start a fresh topic. Drafts can
be resumed from the drafts dropdown menu or using the "My Drafts" link
in the sidebar.

Since drafts require a unique `draft_key` and `user_id` combination, we
have updated the format of the draft key for both topics and personal
messages. They will now have a prefix like "new_topic_" or
"new_message_" with the timestamp of when the composer was first opened
appended.
2025-01-29 10:23:26 +04:00
SamandGitHub 1085d9894c DEV: remove experimental lightbox (#30973)
Experimental lightbox did not pan out, we are rolling it back so we can
start again from base principles.
2025-01-29 16:08:21 +11:00
Jarek RadoszandGitHub b105ad9c8b UX: Fix mobile chat DM row layout (#31043) 2025-01-29 03:24:35 +01:00
Martin BrennanandGitHub 7ab585dadb DEV: Convert AdminReport component to gjs (#31011)
This commit converts the `AdminReport` component, which is quite
high complexity, to gjs. After this initial round, ideally this
component would be broken up into smaller components because it is
getting quite big now.

Also in this commit:

* Add an option to display the report description in a tooltip, which
was
   the main way the description was shown until recently. We want to use
   this on the dashboard view mostly.
* Move admin report "mode" definitions to the server-side Report model,
inside a `Report::MODES` constant, collecting the modes defined in
various
   places in the UI into one place
* Refactor report code to refer to mode definitions
* Add a `REPORT_MODES` constant in JS via javascript.rake and refactor
  JS to refer to the modes
* Delete old admin report components that are no longer used
  (trust-level-counts, counts, per-day-counts) which were replaced
  by admin-report-counters a while ago
* Add a new `registerReportModeComponent` plugin API, some plugins
   introduce their own modes (like AI's `emotion`) and components and
   we need a way to render them
2025-01-29 10:33:43 +10:00
David TaylorandGitHub 185f943b79 DEV: Add release-notes link to readme (#31046) 2025-01-29 00:28:18 +00:00
Martin BrennanandGitHub 6be7c800f5 FIX: Update AdminNotice details when problem check tracker changes (#31031)
We have many problem check trackers, and some of them
like `OutOfDateThemes` can have a message which has variable
data in it shown to admins. In this case, a list of themes
that need updating. Currently if you resolve one of these
out of date themes and refresh the list of problems, you
do not see any change.

This is happening because we are only updating the `details`
of the `ProblemCheckTracker` record, not the corresponding
`AdminNotice` record which is what is displayed to the admins
on their dashboard. This commit fixes the issue by updating the
details of the notice at the same time as the problem check
tracker details.
2025-01-29 09:44:20 +10:00
David TaylorandGitHub edafde3214 DEV: Update 'development' section of readme, and drop outdated docs (#31044)
These docs have not been updated for many years. Up-to-date content can
be found at
https://meta.discourse.org/c/documentation/developer-guides/56
2025-01-28 23:25:25 +00:00
Saif MurtazaandGitHub ccfe4df409 Update README.md (#31042)
I took off the old sentence - "Discourse is built for the next 10 years
of the Internet, so our requirements are high.”

as per our decision here:
https://dev.discourse.org/t/update-github-readmes-after-v3-4-release/134402/6
2025-01-29 07:56:05 +09:00
3c7f794273 Build(deps-dev): Bump @glint/environment-ember-template-imports from 1.5.1 to 1.5.2 (#31040)
Bumps
[@glint/environment-ember-template-imports](https://github.com/typed-ember/glint)
from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/typed-ember/glint/releases)
-
[Changelog](https://github.com/typed-ember/glint/blob/main/.release-it.yml)
- [Commits](https://github.com/typed-ember/glint/compare/1.5.1...1.5.2)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-28 22:32:49 +01:00
KrisandGitHub d9467899bc DEV: add btn-default classes to buttons using default styling (#31039)
All of these buttons use our default grey background styling, but aren't
carrying the `btn-default` class, which makes them easier to target in
themes. This PR adds the class.
2025-01-28 15:40:34 -05:00
Penar MusarajandGitHub e942ae6ce1 DEV: Add proper error response when searching with an invalid page param (#31026)
Previously, for a search query with `page=11` or higher, we were quietly
returning the page 10 results. The frontend app isn't affected because
it sets its own limit to 10 pages, but still, this response from the
search endpoint does not make sense.

This change switches to returning a 400 error when the `page` parameter
is above the allowed limit (a max of 10).
2025-01-28 15:12:52 -05:00
KrisandGitHub 5ab816b434 UX: add missing class to group bulk select button (#31038)
![image](https://github.com/user-attachments/assets/2004af31-254c-4dd2-a51d-10c0d69c7fdf)


This bulk-select button on group pages is styled like a default button,
but lacks the `btn-default` class, making it inconsistent to style in
themes
2025-01-28 14:39:07 -05:00
Jarek RadoszandGitHub bdaaab759d DEV: Lock @glimmer/syntax to 0.93.1 (#31037)
Cross-ref:
https://github.com/discourse/discourse/pull/31003,
https://github.com/discourse/discourse/pull/31025,
https://github.com/discourse/discourse/pull/31033
2025-01-28 17:52:03 +01:00
KrisandGitHub 610d75e649 DEV: add missing class to top replies button (#31024)
This button in the topic map has our default button styling, but misses
the btn-default class, making it inconsistent in themes


![image](https://github.com/user-attachments/assets/acdbdffa-e8df-4879-83f2-615f1cbf6b57)
2025-01-28 08:50:39 -05:00
Manuel KostkaandGitHub c1fed153f3 DEV: Use CSS custom properties (#31034) 2025-01-28 08:50:13 -05:00
Jarek RadoszandGitHub 3b7f59e135 DEV: Run pnpm dedupe on Dependabot PRs (#30950) 2025-01-28 13:16:33 +01:00
Alan Guo Xiang TanandGitHub 365cfcfd17 PERF: Optimize uploads:disable_secure_uploads to load in batches (#31030)
This commit updates the `uploads:disable_secure_uploads` to be more
memory efficient by loading records in batches instead.
2025-01-28 15:31:00 +08:00
Martin BrennanandGitHub c673f39519 FIX: Hijack controller for topic move posts (#31029)
We have had reports of the topic post move endpoint
sometimes timing out, not necessarily with a large
number of posts, but between two topics that have a
large number of posts.

This buys us some time by `hijack`ing the controller,
which gives us 90 seconds instead of the Unicorn 30
seconds to do the work. At some point we may want to
do this in a background job.

c.f.
https://meta.discourse.org/t/moving-posts-to-a-long-topic-fails/347984
2025-01-28 16:27:30 +10:00
KelvandGitHub 28ea470965 DEV: add IDs of old deprecations to admin warning banner (#31027)
We are adding some old deprecations (deprecated since 2022 at least) to
the admin warning banner.
2025-01-28 12:56:38 +08:00
Michael BrownandMichael Brown f1c6bb08da FIX: always search email logs including the cc: addresses
It seems from the original commit notes that this was only included as a query
optimisation, but doing so leads to confusion: https://meta.discourse.org/t/348688

Searching for outbound mail to an address should find that address regardless
of whether or not the mail type to search for is explicitly `group_smtp`.
2025-01-27 21:57:24 -05:00
Jarek RadoszandGitHub fb327de0b9 Revert "Build(deps): Bump @glimmer/syntax from 0.93.1 to 0.94.1… (#31025)
…(#31003)"

This reverts commit 9a1e1f0a6d.
2025-01-28 12:45:22 +10:00
Ted JohanssonandGitHub 0405266a9a DEV: Remove plugin sidebar rendering fallback (#31012)
We used this flag for experimenting with admin plugin sidebars. We have now settled on a tabbed layout, and this is no longer needed.

This PR simply ignores the flag in a backwards-compatible way, so we can discontinue usage in plugins and then remove the backwards-compatibility in core.
2025-01-28 09:42:24 +08:00
516fcf8b1a Build(deps-dev): Bump @swc/core from 1.10.9 to 1.10.11 (#31019)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.10.9 to
1.10.11.
- [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.9...v1.10.11)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-28 00:19:43 +01:00
4dd377ad6a Build(deps-dev): Bump @glint/environment-ember-loose from 1.5.1 to 1.5.2 (#31020)
Bumps
[@glint/environment-ember-loose](https://github.com/typed-ember/glint)
from 1.5.1 to 1.5.2.
- [Release notes](https://github.com/typed-ember/glint/releases)
-
[Changelog](https://github.com/typed-ember/glint/blob/main/.release-it.yml)
- [Commits](https://github.com/typed-ember/glint/compare/1.5.1...1.5.2)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-28 00:18:52 +01:00
Krzysztof KotlarekandGitHub 9f81b31d13 FEATURE: new fast_typing_threshold site setting (#30865)
Rename `min_first_post_typing_time` to `fast_typing_threshold` and
provide admin 4 options:
- disabled
- low - 1 second
- standard - 3 seconds
- high - 5 seconds

Related PRs:
- https://github.com/discourse/discourse-zoom/pull/112
2025-01-28 09:53:03 +11:00
c286746686 Build(deps-dev): Bump rubocop-ast from 1.37.0 to 1.38.0 (#31021)
Bumps [rubocop-ast](https://github.com/rubocop/rubocop-ast) from 1.37.0
to 1.38.0.
- [Release notes](https://github.com/rubocop/rubocop-ast/releases)
-
[Changelog](https://github.com/rubocop/rubocop-ast/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop-ast/compare/v1.37.0...v1.38.0)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-27 23:34:39 +01:00
21bc37f5c0 Build(deps-dev): Bump language_server-protocol from 3.17.0.3 to 3.17.0.4 (#31022)
Bumps
[language_server-protocol](https://github.com/mtsmfm/language_server-protocol-ruby)
from 3.17.0.3 to 3.17.0.4.
-
[Changelog](https://github.com/mtsmfm/language_server-protocol-ruby/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/mtsmfm/language_server-protocol-ruby/compare/v3.17.0.3...v3.17.0.4)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Hanzo Dev <[email protected]>
2025-01-27 23:34:26 +01:00
KrisandGitHub af4a284086 A11Y: fix color issue with delete topic button in WCAG palette (#31023)
Reported here:
https://meta.discourse.org/t/wcag-high-contrast-color-palettes-for-low-vision/168795/30

Before: 


![image](https://github.com/user-attachments/assets/01ac2eca-0ccc-4220-bfa4-d0821f25aa84)


After: 


![image](https://github.com/user-attachments/assets/f7ebb673-1eec-4660-bb20-7e3c09e5464b)
2025-01-27 17:33:14 -05:00