57840 Commits

Author SHA1 Message Date
Rafael dos Santos Silva
68dde7887a
FEATURE: Handle newer url format for Twitch clips (#31080) 2025-01-31 10:42:46 -03:00
David Battersby
8ca2c14874
FIX: switch panel back to forum last known url (#31092)
Previously the return to forum link would automatically take you to the
forum homepage, however this was not intended functionality. We should
attempt to take the user to their last viewed forum page.

This change fixes a bug in how we determined what the destination link
should be.

Internal ref: /t/110508
2025-01-31 17:18:24 +04:00
Discourse Translator Bot
4e2a982e91
Update translations (#31035) 2025-01-31 10:48:44 +01:00
Alan Guo Xiang Tan
a9eefd1b48
DEV: Support synchronous mode for uploads:sync_s3_acls rake task (#31091)
This commit updates the `uploads:sync_s3_acls` rake task to accept a
`sync` argument that would run the rake task in a synchronous manner
so that the outcome of running the rake task can easily be determined.
2025-01-31 17:34:34 +08:00
Joffrey JAFFEUX
3978f45ca3
DEV: pass owner instead of services (#31090)
Passing the owner allows section class to access services without having
to pass each service instance one by one.
2025-01-31 10:34:17 +01:00
Joffrey JAFFEUX
8d38929a67
DEV: reduces duplication with curryComponent (#31073)
curryComponent allows us to pass an object as splatted arguments.
2025-01-31 10:21:14 +01:00
Alan Guo Xiang Tan
76ade65a26
DEV: Remove optimized_images_preloaded kwarg from FileStore::S3Store#update_upload_ACL (#31087)
The optimization is not required because `find_each` fetches records in
batches of 1000 and no upload record will have more than 1000 optimized
images.
2025-01-31 15:53:06 +08:00
Martin Brennan
5bc7371192
FEATURE: Localization admin settings config page (#31085)
This commit adds a new Localization config page for
admins, as a basic filtered site setting page similar
to Legal and Notifications. Included settings are:

* default locale
* allow user locale
* set locale from accept langauge header
* onebox locale
* display local time in user card
* discourse local dates enabled
* support mixed text direction
* unicode usernames
* allowed unicode username characters
2025-01-31 12:55:30 +10:00
Krzysztof Kotlarek
ff32232834
FIX: Cannot manually add users to automatic groups (#31062)
Adding/removing users from automatic groups should not be possible.

Bug introduced in this PR
https://github.com/discourse/discourse/pull/30174

Before
<img width="1435" alt="Screenshot 2025-01-30 at 3 35 12 pm"
src="https://github.com/user-attachments/assets/a982bfb7-3597-4efb-82b8-c11a47493075"
/>

After
<img width="1391" alt="Screenshot 2025-01-30 at 3 34 47 pm"
src="https://github.com/user-attachments/assets/894a9319-94b9-4fad-bf99-e357b910a209"
/>
2025-01-31 12:12:42 +11:00
Martin Brennan
7fd9550f64
DEV: Change dIcon to icon in components (#31083)
Apparently `icon` is the preferred nomenclature
2025-01-31 10:55:31 +10:00
Blake Erickson
dfb64f9b84
FIX: Quoting videos can show a corrupted thumbnail (#31079)
This change ensures we use the base62 sha1 for videos when quoting
because this is what the composer is used to using. With a valid base62
sha1 the composer already knows how to fetch the placeholder image for
it.

Fallbacks have been created to continue to support the old way as well
as a fix for the old way so that the thumbnail continues to display when
quoting. These fallbacks are in place so that we don't have to rebake
all posts that contain videos. If we ever do that we may remove these
fallbacks.
2025-01-30 17:54:50 -07:00
Jarek Radosz
e849802a48
DEV: Update lint-configs to 2.3.1 (#31082) 2025-01-31 01:22:23 +01:00
Tobias Eigen
798ab389ee
Improved desc of use_email_for_username_and_name_suggestions (#31081) 2025-01-30 15:59:36 -08:00
Martin Brennan
95a759092e
UX: Show full total numbers in admin reports (#31061)
This commit updates the display of totals and table
rows for reports in the admin interface. Currently
we show abbreviated numbers for totals e.g. 2.1M
which is not helpful when you need accurate data.
We are also not adding locale-specific number separators
so the row numbers are hard to read e.g. 246999 instead
of 246,999.

This commit fixes both issues to improve the UX of reports
without having to export them.

**Before (totals)**


![image](https://github.com/user-attachments/assets/6958252d-f778-495d-b799-7ebe4e9f1366)

**After (totals)**


![image](https://github.com/user-attachments/assets/2b51580a-cd09-42cd-b713-3c5018fa6727)

**Before (rows)**


![image](https://github.com/user-attachments/assets/38d36236-1382-45b2-a3dc-5b267b122e39)

**After (rows)**


![image](https://github.com/user-attachments/assets/607997b7-7a46-452a-ab6e-368671445a06)
2025-01-31 09:55:05 +10:00
Jarek Radosz
d1c33076f3
DEV: Clean up TreeNode component (#31069)
1. use `constructor` instead of `didInsert`
2. remove non-existent `unregisterInputFieldObserver` arg usage
3. don't curry `@index` arg twice in `@onClick`
4. use `@bind`
5. use `concatClass`
6. `dIcon` -> `icon`
2025-01-31 00:50:43 +01:00
dependabot[bot]
dbdcd7cf67
Build(deps-dev): Bump @ember/test-helpers from 5.0.0 to 5.1.0 (#31078)
Bumps
[@ember/test-helpers](https://github.com/emberjs/ember-test-helpers)
from 5.0.0 to 5.1.0.
- [Release
notes](https://github.com/emberjs/ember-test-helpers/releases)
-
[Changelog](https://github.com/emberjs/ember-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/emberjs/ember-test-helpers/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-31 00:45:21 +01:00
Martin Brennan
5ebbba250a
DEV: Include lib/stylesheet mtime in stylesheet cache (#31063)
Followup 23edfe7cc27cd56d5806c965ac52ed2b0394e8b8

When working on changes to any of the lib/stylesheet/*.rb
files, the color_definitions.scss and other stylesheet
caches can be annoyingly persistent.

This commit adds all of these lib files to the `max_file_mtime`
part of the `fs_asset_cachebuster` cache key, so if any of
them are changed then the cache will break, making development
a lot easier.
2025-01-31 09:32:10 +10:00
Krzysztof Kotlarek
33fe79be6a
FIX: change off to disabled for fast_typing_threshold setting (#31077)
Bug introduced in migration in this PR -
https://github.com/discourse/discourse/pull/30865/files#diff-ca17f6d1353d626d1664a3d55fcc7aed3c6e4587a0269cb264aa2c25c3264013R14

When the old setting was `0` then the value `for fast_typing_threshold`
should be `disabled` instead of `off`. Because of that mistake, new
users cannot create a topic when the `min_first_post_typing_time` value
was `0`.
2025-01-31 08:25:31 +11:00
David Taylor
7e6107aad7
PERF: Remove old fullscreen-detection code (#31075)
This code was calling `elementFromPoint` on every scroll event. This is
an expensive browser API, and also seems to trigger a premature 'paint'
event during initial render. This seems to trigger
cumulative-layout-shift metric problems, even though the shift was never
actually visible onscreen.

This workaround was added more than 7 years ago, and it seems like
`document.fullscreenElement` now correctly detects fullscreen youtube
embeds. So we should be able to remove the `elementFromPoint` call
without affecting any functionality.
2025-01-30 17:37:02 +00:00
David Taylor
eb6689b1e6
DEV: Add topic-list-item-style valueTransformer (#30727)
https://meta.discourse.org/t/346415/7
2025-01-30 17:10:33 +00:00
Neil Lalonde
0ef9abe0f0
DEV: add plugin outlet around new color palette button (#31054) 2025-01-30 10:11:19 -05:00
Penar Musaraj
23e58cd653
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
dependabot[bot]
581c65a5f2
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 13:49:46 +00:00
Joffrey JAFFEUX
d217e61411
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 Radosz
1613770290
DEV: Add a message to dedupe / mind the exit code (#31070) 2025-01-30 13:13:57 +01:00
Jarek Radosz
f945549123
DEV: Pass navigateToTopic action to topic-list-item outlet (#31068) 2025-01-30 13:06:05 +01:00
Jarek Radosz
42aea3ff1c
DEV: Fix the dedupe workflow (#31067)
(and specify permissions)
2025-01-30 12:56:03 +01:00
Joffrey JAFFEUX
c05c2c3667
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 Brennan
42849851e6
FIX: Wizard preview fonts not loaded (#31064)
Followup 83cc97994fa73c19832fa1dc0a2ec790e6f29064

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 Kotlarek
d75a0b1165
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 Brennan
7a0762771e
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 Brennan
092a892a48
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
dependabot[bot]
b387008581
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 00:22:16 +01:00
dependabot[bot]
0f7787c897
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 00:19:02 +01:00
Joffrey JAFFEUX
92779a57d4
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 JAFFEUX
718301cb1c
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
Jean
ba1464a84e
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 Hanol
a16b2f2248
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 JAFFEUX
049b6b8f54
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 Hanol
cfa281a697
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 Taylor
a480c40f81
Revert "DEV: Upload assets to S3 in parallel (#30210)" (#31050)
This reverts commit b9f8a77d9ba5222bbf55172092f0b235b92d1c85.

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 Battersby
c64b5d6d7a
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
Sam
29e48a6478
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 Radosz
d455bf4365
UX: Fix mobile chat DM row layout (#31043) 2025-01-29 03:24:35 +01:00
Martin Brennan
15838aa756
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 Taylor
5a64d0e932
DEV: Add release-notes link to readme (#31046) 2025-01-29 00:28:18 +00:00
Martin Brennan
d8102cb532
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 Taylor
3196918f4d
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 Murtaza
09b62f9a76
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
dependabot[bot]
5cad80b2d5
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 22:32:49 +01:00