Commit Graph

54029 Commits

Author SHA1 Message Date
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
a538e2f153 DEV: Import script should use case-insensitive check for tag names (#26699) 2024-04-29 19:27:28 +02:00
8dd883d4e5 DEV: Refactor topic admin menu to use <DMenu> (#26678)
* DEV: Refactor topic admin menu to use `<DMenu>`

This PR also introduces a new plugin API to add buttons to the topic admin menu

```javascript
api.addTopicAdminMenuButton((topic) => {
  return {
    action: () => {
      alert('Sunrise!');
    },
    icon: 'sun',
    className: 'sunrise-button',
    label: 'actions.rise',
  };
});
```

The plugins that needed to be updated are:

- [discourse-zoom](https://github.com/discourse/discourse-zoom/pull/73)
- [discourse-salesforce](https://github.com/discourse/discourse-salesforce/pull/74)
- [discourse-topic-noindex](https://github.com/discourse/discourse-topic-noindex/pull/11)
2024-04-29 12:44:38 -03:00
9fb888923d FIX: Do not show hidden posts in search results (#26800) 2024-04-29 12:32:02 -03:00
f7a1272fa4 DEV: cleanup custom filters to prevent leaks
Ensures we clean up any custom filters added in the specs to prevent any leaks when running the specs.

Follow up to https://github.com/discourse/discourse/pull/26770#discussion_r1582464760
2024-04-29 16:11:12 +02:00
271ca2c968 FIX: correctly check the user id of the original message (#26805)
Followup: write a test for this
2024-04-29 13:34:49 +02:00
143f06f2c6 FEATURE: Allow watched words to be created as a group (#26632)
At the moment, there is no way to create a group of related watched words together.  If a user needed a set of words to be created together, they'll have to create them individually one at a time.

This change attempts to allow related watched words to be created as a group. The idea here is to have a list of words be tied together via a common `WatchedWordGroup` record.  Given a list of words, a `WatchedWordGroup` record is created and assigned to each `WatchedWord` record. The existing WatchedWord creation behaviour remains largely unchanged.

Co-authored-by: Selase Krakani <skrakani@gmail.com>
Co-authored-by: Martin Brennan <martin@discourse.org>
2024-04-29 15:50:55 +05:30