Commit Graph

54035 Commits

Author SHA1 Message Date
792e66966c Build(deps): Bump request_store from 1.6.0 to 1.7.0 (#26855)
Bumps [request_store](https://github.com/steveklabnik/request_store) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/steveklabnik/request_store/releases)
- [Commits](https://github.com/steveklabnik/request_store/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: request_store
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 01:16:31 +02:00
243fcb6ffc DEV: Introduce run_theme_migration spec helper in test environment (#26845)
This commit introduces the `run_theme_migration` spec helper to allow
theme developers to write RSpec tests for theme migrations. For example,
this allows the following RSpec test to be written in themes:

```
RSpec.describe "0003-migrate-small-links-setting migration" do
  let!(:theme) { upload_theme_component }

  it "should set target property to `_blank` if previous target component is not valid or empty" do
    theme.theme_settings.create!(
      name: "small_links",
      theme: theme,
      data_type: ThemeSetting.types[:string],
      value: "some text, #|some text 2, #, invalid target",
    )

    run_theme_migration(theme, "0003-migrate-small-links-setting")

    expect(theme.settings[:small_links].value).to eq(
      [
        { "text" => "some text", "url" => "#", "target" => "_blank" },
        { "text" => "some text 2", "url" => "#", "target" => "_blank" },
      ],
    )
  end
end
```

This change is being introduced because we realised that writting just
javascript tests for the migrations is insufficient since javascript
tests do not ensure that the migrated theme settings can actually be
successfully saved into the database. Hence, we are introduce this
helper as a way for theme developers to write "end-to-end" migrations
tests.
2024-05-03 06:29:18 +08:00
6bfc81978c DEV: Improve built-in browser performance marks/measurements (#26758)
- Rename `discourse-booted` to 'discourse-init' (because 'booted' makes it sound like boot was finished. When in fact, it was just starting)

- Introduce `discourse-paint`, which is fired after the Ember application has been painted to the screen by the browser. This happens slightly after DOMContentLoaded

- Add a `performance.measure` call to link those two marks, so they're easily visible in performance traces

Also removes an ember boot-order workaround which is no longer required.
2024-05-02 23:07:36 +01:00
d937f5b098 DEV: Use safer SQL function for string queries when searching groups (#26851)
... so that special characters in 'term' aren't interpreted by ILIKE.
2024-05-02 13:41:49 -05:00
f28742e597 DEV: Update chat scheduled job loading to match skeleton (#26853)
Followup to e949684fc54e629035b8883dabd9ef2916251da1, ref https://github.com/discourse/discourse-plugin-skeleton/pull/47
2024-05-02 19:20:00 +01:00
e949684fc5 DEV: Eager load chat's scheduled jobs in development mode (#26852) 2024-05-02 18:26:30 +01:00
12cb557eb5 Build(deps): Bump decorator-transforms from 1.2.1 to 2.0.0 (#26788)
Bumps [decorator-transforms](https://github.com/ef4/decorator-transforms) from 1.2.1 to 2.0.0.
- [Release notes](https://github.com/ef4/decorator-transforms/releases)
- [Changelog](https://github.com/ef4/decorator-transforms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ef4/decorator-transforms/commits)

---
updated-dependencies:
- dependency-name: decorator-transforms
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 17:16:30 +01:00
a9ca35b671 DEV: Use safer SQL functions for string queries when looking for tags (#26838) 2024-05-02 10:13:45 -05:00
9db5eafb15 PERF: Improve production JS build in low-memory environments (#26849)
- Use 'cheap-source-map' webpack config on low-memory machines

  This results in worse quality sourcemaps in browser dev tools, but it significantly reduces memory use in our webpack build. In approximate local testing it drops from 1100mb to 590mb. This should make the rebuild process on low-memory machines much faster and less likely to trigger OOM errors.

  In development, and on higher-memory machines, the higher-quality 'source-map' option is maintained.

- Disable Webpack's built-in `minimize` feature. Embroider already applies Terser after the webpack build is complete. There is no need to double-minimize the output.

- Update ember-cli-progress-ci to print to stderr instead of stdout. For some reason, pups (used by discourse_docker) buffers the stdout of commands and only prints when they are finished. stderr does not have this same limitation, so switching will mean sysadmins can see the progress of the ember build in real-time.

Given the number of variables it's hard to promise exact numbers. But, in my tests on a DO droplet with 1GB RAM (+2GB swap), this reduced the `ember build` portion of a `./launcher rebuild app` from ~50 minutes to ~15 minutes.
2024-05-02 11:43:59 +01:00
dda4bb0f7c DEV: allows to disable strip_whitespaces in messages (#26848)
The TextCleaner step has been moved from chat message’s validation to create_message/update_message services. It allows us to easily tweak part of its behavior depending on the needs.

For example we will now disable strip_whitespaces by default when streaming messages as we want to keep newlines and spaces at the end of the message.
2024-05-02 11:59:18 +02:00
08e0a6b2cc DEV: Fix admin sidebar filter flaky (#26844)
`within` is the devil, let's try this fix to
followup 79cccaf61fe5ab23f0305464919d03edeab33023
and prevent `Selenium::WebDriver::Error::StaleElementReferenceError`
2024-05-02 13:27:24 +10:00
f25054417c Build(deps): Bump simpleidn from 0.2.1 to 0.2.2 (#26792)
Bumps [simpleidn](https://github.com/mmriis/simpleidn) from 0.2.1 to 0.2.2.
- [Commits](https://github.com/mmriis/simpleidn/commits)

---
updated-dependencies:
- dependency-name: simpleidn
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 10:03:53 +08:00
914f93b896 DEV: Add more structure for admin plugin config nav (#26707)
* Simplify config nav link generation to always inject the Settings
  tab
* Auto-redirect to the first non-settings config link (if there is one)
  when the user lands on /admin/plugins/:plugin_id
* Add `extras` to admin plugin serializer so plugins can add more
  data on first load
* Add PikadayCalendar page object for system specs, extracted from the
CalendarDateTimePicker to make it more generic.
2024-05-02 11:36:46 +10:00
1e02355fdf Build(deps): Bump sassc-embedded from 1.75.2 to 1.76.0 (#26840)
Bumps [sassc-embedded](https://github.com/sass-contrib/sassc-embedded-shim-ruby) from 1.75.2 to 1.76.0.
- [Commits](https://github.com/sass-contrib/sassc-embedded-shim-ruby/compare/v1.75.2...v1.76.0)

---
updated-dependencies:
- dependency-name: sassc-embedded
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 09:28:50 +08:00
f4994fdda8 Build(deps): Bump multi_xml from 0.7.0 to 0.7.1 (#26841)
Bumps [multi_xml](https://github.com/sferik/multi_xml) from 0.7.0 to 0.7.1.
- [Changelog](https://github.com/sferik/multi_xml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sferik/multi_xml/compare/v0.7.0...v0.7.1)

---
updated-dependencies:
- dependency-name: multi_xml
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 09:28:36 +08:00
9f9c7f0a23 FIX: Handle tags with underscores correctly (#26839) 2024-05-01 20:01:39 -05:00
3c4a15a35f DEV: fix flaky admin_customize_themes spec (#26842)
Because the spec is searching for "5" and checking that only one result is returned, we need to control all names generated by theme fabricator.
2024-05-02 08:26:07 +08:00
07dc6efdc9 DEV: Use safer SQL functions for string queries in CategoryHashTagDataSource (#26836)
Instead of `LIKE`, use either `starts_with` or `position`. This way the
term isn't interpreted as a pattern.
2024-05-01 13:27:46 -05:00
dc54884c1a DEV: Backport after-header-panel plugin outlet to widget header (#26837) 2024-05-01 13:08:11 -05:00
b8333d7aa2 DEV: Add after-header-panel plugin outlet (#26835) 2024-05-01 12:41:25 -05:00
b2fe8510e4 FIX: Order categories in SQL for Categories#search (#26810)
Otherwise, the results don't make sense if the number of categories is
more than the limit provided.
2024-05-01 12:21:10 -05:00
c1f6ec5f62 FIX: add excerpt fallback for chat message replies (#26834) 2024-05-01 16:39:47 +02:00
acdaa3b579 Build(deps): Bump multi_xml from 0.6.0 to 0.7.0 (#26831)
Bumps [multi_xml](https://github.com/sferik/multi_xml) from 0.6.0 to 0.7.0.
- [Changelog](https://github.com/sferik/multi_xml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sferik/multi_xml/compare/v0.6.0...v0.7.0)

---
updated-dependencies:
- dependency-name: multi_xml
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 12:30:13 +02:00
2b6f4f4a7f Build(deps-dev): Bump the embroider group with 3 updates (#26832)
Bumps the embroider group with 3 updates: [@embroider/compat](https://github.com/embroider-build/embroider/tree/HEAD/packages/compat), [@embroider/core](https://github.com/embroider-build/embroider/tree/HEAD/packages/core) and [@embroider/macros](https://github.com/embroider-build/embroider/tree/HEAD/packages/macros).


Updates `@embroider/compat` from 3.4.8 to 3.4.9
- [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)

Updates `@embroider/core` from 3.4.8 to 3.4.9
- [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/core)

Updates `@embroider/macros` from 1.16.0 to 1.16.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/macros)

---
updated-dependencies:
- dependency-name: "@embroider/compat"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: embroider
- dependency-name: "@embroider/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: embroider
- dependency-name: "@embroider/macros"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: embroider
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 12:29:27 +02:00
51cd244bf8 Build(deps-dev): Bump sass from 1.75.0 to 1.76.0 (#26833)
Bumps [sass](https://github.com/sass/dart-sass) from 1.75.0 to 1.76.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.75.0...1.76.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 12:24:45 +02:00
c97d58f377 DEV: Add placement: center option to float-kit (#26830)
Implements this custom placement strategy: https://floating-ui.com/docs/offset#creating-custom-placements
2024-05-01 12:12:00 +02:00
b39736a167 DEV: Add autofocus option to d-menu (#26829)
(to be used by the glimmer replacement of topic-entrance component)
2024-05-01 12:11:11 +02:00
3a69824ffb DEV: remove repetitive words (#26684) 2024-05-01 17:58:02 +10:00
8ed684312f FIX: Prevent race condition in recurring automations (#26828)
Recurring automations are triggered by a scheduled job that runs every minute and checks for due automations, runs them and then marks as them as completed (by deleting the `PendingAutomation` record). However, the job is currently subject to a race condition where a recurring automation can be executed more than once at its due date if it takes more than a minute to finish.

This commit adds a mutex around the code that triggers the recurring automation so that no concurrent executions can happen for a single automation.

Meta topic: https://meta.discourse.org/t/daily-summary-9pm-utc/291850/119?u=osama.
2024-05-01 09:01:58 +03:00
d1f008a2fc Update translations (#26821) 2024-04-30 21:57:28 +02:00
038236fcca FIX: prevents long URL to overflow thread title (#26827) 2024-04-30 21:44:35 +02:00
7a7a214c11 FIX: Watched Words (+ Groups) with missing action (#26826)
This defaults the action to

- Censor if there are no "replacement"
- Replace if there's a "replacement"

It also fixes the `WatchedWordGroups` action to the action of one of their `WatchedWords`
2024-04-30 15:36:02 -04:00
ddf7bbfa97 FIX: Do not show empty list in the topic admin menu (#26825) 2024-04-30 14:31:39 -03:00
f4acb43ee7 DEV: add watched words system spec 2024-04-30 19:16:47 +02:00
e7d0083dbe FIX: creating watched words...
... wasn't working because it wasn't storing the proper "action" value.

Issue was that we were using the "action" parameter which is being used by Rails to determine which controller action to call.

We need to use the "action_key" parameter instead.
2024-04-30 19:16:47 +02:00
0e44072b2b FIX: Prevent infinite loop of automations triggering each other (#26814)
It's currently possible to setup multiple automation rules that trigger each other resulting in an infinite loop. To prevent that, this commit adds a global "circuit breaker" that prevents all automations from triggering while an automation rule is executing.

Internal topic: t/124365.
2024-04-30 20:13:29 +03:00
ff8e1f4ed6 FIX: Do not show topic admin menu button to regular users (#26820) 2024-04-30 13:47:36 -03:00
3930064fd1 DEV: Convert various components to gjs (#26782)
Those were all low hanging fruits - all were already glimmer components, so this was mostly merging js and hbs files and adding imports.

(occasionally also adds/fixes class names)
2024-04-30 16:44:49 +02:00
5d1f38a592 Update icon-avatar.gjs (#26819) 2024-04-30 21:46:37 +08:00
a6624af66e DEV: Add isValidUrl helper function to theme migrations (#26817)
This commit adds a `isValidUrl` helper function to the context in
which theme migrations are ran in. This helper function is to make it
easier for theme developers to check if a string is a valid URL or path
when writing theme migrations. This can be helpful in cases when
migrating a string based setting to `type: objects` which contain `type:
string` properties with URL validations enabled.

This commit also introduces the `UrlHelper.is_valid_url?` method
which actually checks that the URL string is of the valid format instead of
only checking if the URL string is parseable which is what `UrlHelper.relaxed_parse` does
and is not sufficient for our needs.
2024-04-30 16:45:07 +08:00
bfc0f3f4cd FIX: prevent duplicate attachments in incoming emails - take 2
This is a follow up of 5fcb7c262d

It was missing the case where secure uploads is enabled, which creates a copy of the upload no matter what.

So this checks for the original_sha1 of the uploads as well when checking for duplicates.
2024-04-30 08:15:07 +02:00
8704499b5a FEATURE: additional links for moderator's sidebar (#26815)
In this PR we introduced an admin sidebar for moderators - https://github.com/discourse/discourse/pull/26795

`What's new` and `all reports` links were missing as moderators have access to those pages.
2024-04-30 10:34:12 +10:00
267b26c8d6 Build(deps): Bump the babel group with 2 updates (#26811) 2024-04-30 01:38:48 +02:00
336a92ba44 Build(deps): Bump terser from 5.30.4 to 5.31.0 (#26812) 2024-04-30 01:38:00 +02:00
e1c133a7a0 Build(deps-dev): Bump rubocop-ast from 1.31.2 to 1.31.3 (#26813) 2024-04-30 01:37:27 +02:00
0842ca7f9e UX: admin sidebar headings are bold (#26801)
Make admin sidebar headings bold.
2024-04-30 09:31:53 +10:00
0548f24208 DEV: Convert topic-title to glimmer/gjs (#26808)
This reverts commit 5d568d0bab1ccbb1e6e89e9f151958b3566bfe1c. (reland of #26775)

Now with removed unnecessary `?.` operators to workaround a terser/babel/??? issue.
2024-04-29 23:06:50 +02:00
19b7b22627 DEV: fix the fix for flakey test 😓
We should not be clearing **all** the advanced search filters and orders, because some are required by the application.
2024-04-29 21:43:38 +02:00
967e49af59 DEV: Import script should use case-insensitive lookup for tags (#26780) 2024-04-29 19:54:27 +02:00
e3882a0c48 DEV: Add support for user_associated_accounts to import script (#26779) 2024-04-29 19:48:32 +02:00