Commit Graph

58766 Commits

Author SHA1 Message Date
69b4c80448 Build(deps-dev): Bump ember-cli from 6.3.0 to 6.3.1 (#32207)
Bumps [ember-cli](https://github.com/ember-cli/ember-cli) from 6.3.0 to
6.3.1.
- [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.3.0...v6.3.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 11:03:37 +02:00
1e69d74966 FIX: Selecting a parent category shouldn't clear other form fields (#32206)
This commit fixes a bug where, if you're editing or creating a category,
selecting a parent category for the category that's being edited/created
causes the rest of the fields in the category edit/create form to be
cleared out.

Internal topic: t/151232.
2025-04-08 06:25:15 +03:00
063d28763a FIX: flaky admin_branding_spec fonts section (#32209)
Wait for state to be updated before submit fonts form to avoid random
failures.

Form was submitted too quickly.
2025-04-08 10:56:20 +08:00
8483d09fc4 UX: Add missing admin config page titles (#32198)
A number of admin config pages are missing a page title. This PR adds them in.
2025-04-08 10:02:11 +08:00
ec0b6affd7 DEV: Add Site admin admin config page (#32196)
This PR adds a dedicated admin config page for Site admin related site settings.
2025-04-08 09:52:42 +08:00
464726d973 DEV: Add Interface and layout admin config page (#32197)
This PR adds a dedicated admin settings page for Interface & layout related site settings.
2025-04-08 09:22:10 +08:00
5f0b186061 DEV: Add User defaults admin config page (#32195)
This PR adds a dedicated admin config page for User defaults related site settings.
2025-04-08 09:21:54 +08:00
206ea17c3f DEV: Fix mixed-decls Sass deprecation warning (#32202)
When running specs I noticed this mixed-decls Sass deprecation warning:

> Deprecation Warning [mixed-decls]: Sass's behavior for declarations
that appear after nested
> rules will be changing to match the behavior specified by CSS in an
upcoming
> version. To keep the existing behavior, move the declaration above the
nested
> rule. To opt into the new behavior, wrap the declaration in & {}.
>
> More info: https://sass-lang.com/d/mixed-decls

This change address that issue.

Follow up to: 928f9175f05413289c45d3fd6424f62956ea0944
2025-04-07 18:26:55 -06:00
67d083ede0 FIX: flaky admin_branding_spec (#32193)
When remove image, ensure that state is updated before saving form.

We know that state is updated when remove button is no longer available.
2025-04-08 07:27:53 +08:00
abfdc1fa11 Build(deps): Bump prosemirror-view from 1.38.1 to 1.39.1 in the prosemirror group (#32186)
Bumps the prosemirror group with 1 update:
[prosemirror-view](https://github.com/prosemirror/prosemirror-view).


Updates `prosemirror-view` from 1.38.1 to 1.39.1
-
[Changelog](https://github.com/ProseMirror/prosemirror-view/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/prosemirror/prosemirror-view/compare/1.38.1...1.39.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 18:30:48 +02:00
51854ad0ed Build(deps): Bump reline from 0.6.0 to 0.6.1 (#32181)
Bumps [reline](https://github.com/ruby/reline) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/ruby/reline/releases)
- [Commits](https://github.com/ruby/reline/compare/v0.6.0...v0.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 18:29:09 +02:00
251cac39af DEV: Adds a basic importer for the IntermediateDB
* It only imports users and emails so far
* It stores mapped IDs and usernames in a SQLite DB. In the future, we might want to copy those into the Discourse DB at the end of a migration.
* The importer is split into steps which can mostly be configured with a simple DSL
* Data that needs to be shared between steps can be stored in an instance of the `SharedData` class
* Steps are automatically sorted via their defined dependencies before they are executed
* Common logic for finding unique names (username, group name) is extracted into a helper class
* If possible, steps try to avoid loading already imported data (via `mapping.ids` table)
* And steps should select the `discourse_id` instead of the `original_id` of mapped IDs via SQL
2025-04-07 17:22:36 +02:00
7c6b116dfd DEV: Adds a new converter for migrating from Discourse
It only contains a few user-related steps right now
2025-04-07 17:22:36 +02:00
17ba19c7ae REFACTOR: Code generator for migrations IntemerdiateDB
* Splits the existing script into multiple classes
* Adds command for generating IntermediateDB schema (`migrations/bin/cli schema generate`)
* Changes the syntax of the IntermediateDB schema config
* Adds validation for the schema config
* It uses YAML schema aka JSON schema to validate the config file
* It generates the SQL schema file and Ruby classes for storing data in the IntermediateDB
2025-04-07 17:22:36 +02:00
71a90dcba2 DEV: Refactor migrations-tooling
* Updates GitHub Action for migrations
* Rubocop: Always `EnforcedShorthandSyntax` for hashes in the `migrations` directory
* Automatically load all available converter steps
* Enable YJIT at runtime, if available
* Progressbar shows skipped records and other small improvements
2025-04-07 17:22:36 +02:00
7b5839ec44 DEV: Optionally include everyone groups when searching (#32199)
`GroupsController#search` now accepts an `include_everyone` parameter to
include the "everyone" group in the results. discourse-ai relies on this
 endpoint for configuring personas' allowed groups and needs this group
 to be present. You still need to be able to see the group.
2025-04-07 11:55:27 -03:00
6637eb2b64 DEV: discourse-emojis 1.0.39 (#32180)
d575425413
2025-04-07 10:49:42 +02:00
cfd216598d DEV: Add Analytics and SEO admin config page (#32190)
This PR adds a dedicated page for Analytics and SEO related site settings.
2025-04-07 16:15:37 +08:00
601fecde06 FIX: flaky admin_customize_themes_spec (#32169)
Ensure that translations are loaded before checking input value.
2025-04-07 10:39:21 +08:00
928f9175f0 FEATURE: fonts section for branding page (#32031)
New configure fonts section was added. Because now we have two sections
completed (logos and fonts), new /branding page was introduced and old
/logo and /font pages was removed.

When text size is changed, modal is displayed to ask if preferences of
existing users should be retrospectively updated.



https://github.com/user-attachments/assets/f6b0c92a-117f-4064-bd76-30fa05acc6d3

---------

Co-authored-by: Ella <ella.estigoy@gmail.com>
Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2025-04-07 10:28:42 +08:00
637a221517 FIX: Fallback to #search-menu for search input (#32188)
Followup c4d971ea2c7677d893e0d6fdcec5d7d93d9c964e

There are some customizations still relying on #search-menu
for an ID, this provides a fallback to that ID if no
@searchInputId arg is provided while we work through the
customizations.
2025-04-07 11:57:27 +10:00
c9d583be92 Build(deps-dev): Bump selenium-webdriver from 4.29.1 to 4.31.0 (#32185)
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from
4.29.1 to 4.31.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
-
[Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
-
[Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.31.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 09:53:23 +08:00
ce6583d226 Build(deps-dev): Bump bullet from 8.0.2 to 8.0.3 (#32184)
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.2 to 8.0.3.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.2...8.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 09:07:03 +08:00
cc4e4eaab1 Build(deps-dev): Bump selenium-devtools from 0.133.0 to 0.135.0 (#32183)
Bumps [selenium-devtools](https://github.com/SeleniumHQ/selenium) from
0.133.0 to 0.135.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
-
[Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 09:06:45 +08:00
231e9ca99a DEV: Remove an unused admin component+helpers (#32179) 2025-04-04 20:36:05 +02:00
089d34a591 Build(deps-dev): Bump express from 4.21.2 to 5.1.0 (#32089)
Bumps [express](https://github.com/expressjs/express) from 4.21.2 to
5.1.0.
- [Release notes](https://github.com/expressjs/express/releases)
-
[Changelog](https://github.com/expressjs/express/blob/master/History.md)
-
[Commits](https://github.com/expressjs/express/compare/4.21.2...v5.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-04 20:29:03 +02:00
80e6d3d8c5 DEV: Add modifier for meta_data_content in ApplicationHelper (#32159)
I've considered some _very_ generic, like:

  ```rb

DiscoursePluginRegistry.apply_modifier(:"meta_data_content_for_#{property}",
content, property, opts)
```


But, I think for now, we can use this one and rely on the plugin to do the filtering (`if property == :title`)
2025-04-04 12:28:38 -03:00
a57925b6db FEATURE: Dynamic size for hot topic IDs cache (#32175)
This change makes the cache size either 100, or the 10% of topics with
activity since the hot topic days cutoff, whatever is lower.

We observed that in sites with a small number of topics, everything is
flagged as hot, which while true, defeats the purpose of the feature.
2025-04-04 11:58:06 -03:00
a88d8a0393 FEATURE: prioritize the user who is getting the reply in the autocomplete (#32086)
When replying to a post, the user who is getting the reply should be
prioritized in the autocomplete

- Added in composer a getter for getting `.replyingToUser`
- Added in d-editor the reference to the user that is getting the
reply(`this.composer.replyingToUser`)
- Passed along the reference to the user that is getting the reply to
the user-search service as `replyingToUser`
- Controller `users_controller.rb` was modified to accept the `user_id`
parameter and pass it to the `UserSearch` model
- The `UserSearch` model was modified to accept the `user_id` parameter
and use it to prioritize the user that is getting the reply in the
autocomplete on the first time you call the autocomplete service and
while the username is included in the searched term
- Had to update the serializer to pass the id of the `replyingToUser`
from the post
2025-04-04 10:11:37 -03:00
f571c3c62e Revert "DEV: refactor password validation helper class to take explic… (#32173)
…it args (#32149)"

This reverts commit 568ccdc19d0ab5090e21023c7f5709b02aca6102.

Need to resolve some incompatibilities with plugins
2025-04-04 14:10:35 +01:00
ae2bc240af PERF: Set JOBS=1 for low-memory build environments (#32171)
Recent testing has shown that this config requires significantly less
memory for a successful build, which should improve the situation for
people running Discourse on low-memory servers.

Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
2025-04-04 13:48:19 +01:00
aebb1f0968 DEV: Pass full model for tag to sidebar serializer (#32170)
We are currently only passing a few attributes of a tag when serializing
sidebar tags.

This commit passes the `Tag` into the serializer instead.
2025-04-04 16:29:57 +08:00
aa5fd55e71 FIX: Archiving messages from group inbox (#32166)
Bulk archiving group messages can be done from two places: a) from the user's view (/u/ted/messages/group/swedes) and b) from the group's view (/g/swedes/messages/inbox). Only the former is currently working. From the latter view, the action looks like a success, but is actually a no-op.
2025-04-04 16:05:43 +08:00
4c8420833e FEATURE: One-click chat reaction settings (#32150)
Adds a one-click chat reactions setting to the chat preferences page
where members can determine what one-click reactions are shown in chat.

- Frequent: This will be the default setting. (Automatically set based
on most used chat reactions)
- Custom: Members can choose up to three reactions they want to see in
their one-click chat/DM reactions menu. Defaults are `❤️`, `👍` ,
and `😄`.


![image](https://github.com/user-attachments/assets/8913db0e-d6ec-4347-ad91-2329206b127c)

This pull request is essentially the work of @dsims in
https://github.com/discourse/discourse/pull/31761

---------

Co-authored-by: dsims <1041068+dsims@users.noreply.github.com>
2025-04-04 09:15:13 +02:00
33748895a9 FEATURE: Highlight watched words found in reviewables. (#32167)
This change highlights watched words found in any reviewable posts.
2025-04-04 17:26:14 +11:00
0724b03fb8 DEV: Bump Capybara.default_max_wait_time to 20 on CI (#32143)
There are flaky system tests that have been exhausting the 10 seconds
default max wait time which we have set previously on CI. However, I
have yet to be able to figure out why and lack the tools to be able to
figure out why. The hope here is that the upcoming playwright driver
will provide us with better tooling to debug such problems.

I've attempted to use `Capybara::Session#using_wait_time` by there is
some race condition going on where the session's default max wait time
is sometimes not set properly. I can't figure out why and have spent too
much time trying to figure out why. Instead, I will just bump up the
`default_max_wait_time` to `20`. This may the build take longer when
there are test failures but it is a trade-off we will make right now.
2025-04-04 12:50:28 +08:00
e3e5f20cb6 FIX: flaky admin_sidebar_navigation_spec (#32168)
Wait till all sections are expanded before checking expected links.
2025-04-04 12:38:31 +08:00
3d6b7e2574 FEATURE: Copy thread messages when copying thread OP (#32139)
This introduces functionality to chat transcripts. If
you select _only_ a thread's OP and press the Copy button,
we will now copy the OP plus all of the thread's replies
into the transcript.

This is being done to make it easier to copy all the context
of a thread easily. The old way of selecting only some messages
inside a thread still works too.

This commit also unskips and refactors some transcript specs.
2025-04-04 13:45:37 +10:00
568ccdc19d DEV: refactor password validation helper class to take explicit args (#32149)
This aligns closer to how we are passing data through to such helper
classes (for example, the UserFieldsHelperClass
https://github.com/discourse/discourse/pull/31670) and reduces coupling
with the component itself.
2025-04-04 11:13:49 +08:00
564edc52eb UX: add flex to mentions mixin + update units (#32145)
Fixing hashtag text glued to the icon, and updated some related properties to using better units.

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2025-04-04 12:20:35 +10:00
c4d971ea2c FIX: Consistent search shortcuts (#32099)
We now have 3 search UX variations:

* Header search
* Welcome banner search
* Icon search

And within each of these there is a `<SearchMenu />`
component with an input that needs to be focused based
on either Ctrl+F or `/` shortcuts. This commit makes
sure that each has a unique ID, and moves the functionality
of determining the "current" input ID and focusing the
input to the search service.

This fixes issues like where pressing Ctrl+F twice on
the header search would not reveal the regular browser
search.
2025-04-04 11:54:46 +10:00
aaa648ceac Build(deps-dev): Bump rubocop from 1.75.1 to 1.75.2 (#32155)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.75.1 to
1.75.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.75.1...v1.75.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-04 01:07:39 +02:00
57c0ac02d1 Build(deps-dev): Bump puppeteer-core from 24.5.0 to 24.6.0 (#32161)
Bumps [puppeteer-core](https://github.com/puppeteer/puppeteer) from
24.5.0 to 24.6.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.5.0...puppeteer-core-v24.6.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-04-04 01:07:18 +02:00
f91be52d5f Build(deps): Bump mini_racer from 0.18.0 to 0.18.1 (#32154)
Bumps [mini_racer](https://github.com/discourse/mini_racer) from 0.18.0
to 0.18.1.
- [Changelog](https://github.com/rubyjs/mini_racer/blob/main/CHANGELOG)
-
[Commits](https://github.com/discourse/mini_racer/compare/v0.18.0...v0.18.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 23:51:05 +02:00
4761a7a363 Build(deps): Bump faraday-retry from 2.3.0 to 2.3.1 (#32153)
Bumps [faraday-retry](https://github.com/lostisland/faraday-retry) from
2.3.0 to 2.3.1.
- [Release notes](https://github.com/lostisland/faraday-retry/releases)
-
[Changelog](https://github.com/lostisland/faraday-retry/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/lostisland/faraday-retry/compare/v2.3.0...v2.3.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 23:50:57 +02:00
239634e325 Build(deps): Bump irb from 1.15.1 to 1.15.2 (#32156)
Bumps [irb](https://github.com/ruby/irb) from 1.15.1 to 1.15.2.
- [Release notes](https://github.com/ruby/irb/releases)
- [Commits](https://github.com/ruby/irb/compare/v1.15.1...v1.15.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 23:50:46 +02:00
1d94c39bef Build(deps-dev): Bump rubocop-ast from 1.43.0 to 1.44.0 (#32157)
Bumps [rubocop-ast](https://github.com/rubocop/rubocop-ast) from 1.43.0
to 1.44.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.43.0...v1.44.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 23:50:32 +02:00
abeb8de7b5 UX: Button fixes (#32152) 2025-04-03 16:13:34 -05:00
eb7e1613a0 DEV: Update plugin outlet wrappers on user-summary-topic.gjs (#31455)
Co-authored-by: Guhyoun Nam <70915823+rngus2344@users.noreply.github.com>
Co-authored-by: Isaac Janzen <50783505+janzenisaac@users.noreply.github.com>
Co-authored-by: rngus2344 <nam@discourse.org>
2025-04-03 15:20:51 -05:00
9140285569 DEV: Remove rotate-center css animation (#32151)
The code that introduced/used it is gone.
2025-04-03 19:12:55 +02:00