Commit Graph

58194 Commits

Author SHA1 Message Date
17e1bfe069 SECURITY: Preload data only when rendering application layout
This commit drops the `before_action :preload_json` callback in `ApplicationController` as it adds unnecessary complexity to `ApplicationController` as well as other controllers which has to skip this callback. The source of the complexity comes mainly from the following two conditionals in the `preload_json` method:

```
    # We don't preload JSON on xhr or JSON request
    return if request.xhr? || request.format.json?

    # if we are posting in makes no sense to preload
    return if request.method != "GET"
```

Basically, the conditionals solely exists for optimization purposes to ensure that we don't run the preloading code when the request is not a GET request and the response is not expected to be HTML. The key problem here is that the conditionals are trying to expect what the content type of the response will be and this has proven to be hard to get right. Instead, we can simplify this problem by running the preloading code in a more deterministic way which is to preload only when the `application` layout is being rendered and this is main change that this commit introduces.
2025-02-04 13:32:30 -03:00
14d1d11536 SECURITY: Sanitize video placeholder urls
Make sure video placeholder urls are valid. An error message is
displayed instead of an infinite loading spinner after clicking play.
2025-02-04 13:32:20 -03:00
5055a071b8 FIX: Allow to follow non-ASCII canonical links for oneboxes 2025-02-04 15:40:23 +01:00
324857c4c4 Update translations (#31163) 2025-02-04 15:18:03 +01:00
2ceb40ffa4 DEV: Resolve flaky trust_level spec (#31165) 2025-02-04 13:46:31 +00:00
649505d869 DEV: Add 'include' statements for outlets in nginx config (#30929)
The 'include' statements serve as extension outlets that are populated
by discourse/discourse_docker.
2025-02-04 15:21:33 +02:00
65324b6e5d DEV: enable raise_error in test envs for deprecated icons in svg_sprite.rb (#30980)
This PR raises an error on any deprecated icon names being converted by
svg_sprite.rb, which will result in any deprecated icons being processed
by the ruby lib to fail tests.
2025-02-04 21:21:20 +08:00
8ad34862e4 DEV: adds includeNone param to form-kit select (#31162)
This option allows to force the presence of none when a value is
selected.
2025-02-04 11:46:24 +01:00
294ed87a6f UX: restore shared sidebar link for posts and drafts (#31159)
While introducing the new drafts dropdown menu component, we also made
some changes to how the sidebar link works for Drafts. However, after
following user feedback and internal discussions we decided to revert
back to the shared link approach that combines My Posts and My Drafts.
2025-02-04 14:40:18 +04:00
acad83199e DEV: Make api version optional (#31160)
We'll be making this change more deeply soon. For now, this is the
minimum change required to a this version-free syntax work under
Discourse 3.4.0.
2025-02-04 10:19:04 +00:00
50337a7595 DEV: Pin pnpm to v9 (#31158)
pnpm 10 changed the lockfile syntax slightly, so we need to keep
everyone using v9 until we handle the upgrade.
2025-02-04 09:18:15 +00:00
1a8b5b9d42 FIX: better standalone checkbox support (#31130)
Before this commit it was complicated to render a `Checkbox` outside of
a `CheckboxGroup` as you would get no title, no description, no optional
hint and not tooltip.

This commits makes all of this possible by adding a special case for
checkboxes, and sharing code for tooltips and optional hint.

This commit also uses this opportunity to refactor part of the code to
use curryComponent and reduce code duplication.
2025-02-04 09:58:00 +01:00
41ce3d868e UX: improve drafts list (#31122)
Improves the layout for the drafts list page, including the addition of
icons to represent the content type.

Internal ref: /t/129117
2025-02-04 11:42:17 +04:00
503f9b6f02 DEV: Use default admin routes for plugins with settings (#30941)
This change adds a sidebar link for each plugin that fulfils the following criteria:

- Does not have an explicit admin route defined in the plugin.
- Has at least one site setting (not including enabled/disabled.)

That sidebar link leads to the automatically generated plugin show settings page.
2025-02-04 14:57:28 +08:00
9991eacef4 UX: More selectors for transparent buttons (#31155) 2025-02-04 03:04:16 +01:00
Sam
0b35f72e6a DEV: upgrade mini_racer (#31154)
Previous upgrade had a runaway CPU issue due to
overly aggressive GC running.

MiniRacer was running V8 GC every 2 seconds.

New change fixes the parameter so it only issues a GC
if 2 seconds past since last MiniRacer eval.
2025-02-04 12:33:19 +11:00
91e9c1c813 UX: Hide inner site settings sidebar if admin sidebar enabled (#31047)
This experiment hides the list of categories in the inner
sidebar for the main site settings page if the admin sidebar
is enabled. It also defaults the list of settings to "All"
instead of a specific category.

Our theory here is that people who use this page are using
it to find an exact setting, not to go through the categories
one by one. Our admin sidebar also has several groups of important
settings already too, so that can be used for browsing.

Finally, the input on the page focuses when you load it, so
filtering is faster.
2025-02-04 09:24:03 +10:00
a961f92cc7 DEV: Add removed & back to transparent styling (#31149) 2025-02-03 17:03:45 -06:00
9d7764bb21 UX: prevent topic map link menu from overflowing when there are many links (#31147)
Before (overflows, can't reach bottom): 

<img
src="https://github.com/user-attachments/assets/fd3cf28a-9735-452e-82ca-8415da9fd66f"
height="500">

After (max-height clipped, can scroll contents): 

<img
src="https://github.com/user-attachments/assets/3b26bf84-a535-4931-9406-6a3354b76534"
height="500">
2025-02-03 18:02:41 -05:00
7245292fe1 FIX: chat was enqueueing too many "chat summary" emails (#31133)
due to an issue with LEFT JOIN, we were enqueue a "chat summary" email
for every new messages in a channel, instead of for every new mentions 😬

This bloated the sidekiq queue with a lot of unecessary jobs as seen in

- https://meta.discourse.org/t/-/347197
- https://meta.discourse.org/t/-/346542

Thankfully, it wasn't sending those emails as the query for listing the
unread mentions and dms was correct when generating the chat summary
email.
2025-02-03 23:56:47 +01:00
585c2b9ed3 UX: Replace href cancel with DButton (#31138) 2025-02-03 16:24:53 -06:00
0ad05e022f DEV: Fix unwanted stylelint changes, do cleanup (#31140) 2025-02-03 22:05:22 +01:00
ab4ca0be6e FIX: quote from thread in drawer mode (#31137)
Due to a recent regression the selection management was failing in
drawer mode for threads. We were not correctly setting the active
thread.

This commit fixes the issue and adds a spec.
2025-02-03 21:20:50 +01:00
4b037a7f90 UX: Remove half-pixel border from loading dots (#31105)
That didn't render well (and was visible in dark themes only)
2025-02-03 20:26:24 +01:00
fe9086fdfa Build(deps): Bump ember-template-imports from 4.2.0 to 4.3.0 (#31111)
Bumps
[ember-template-imports](https://github.com/ember-template-imports/ember-template-imports)
from 4.2.0 to 4.3.0.
- [Release
notes](https://github.com/ember-template-imports/ember-template-imports/releases)
-
[Changelog](https://github.com/ember-cli/ember-template-imports/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/ember-template-imports/ember-template-imports/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 19:56:12 +01:00
c982593088 DEV: Warn admins about topic-list deprecations (#31136) 2025-02-03 18:35:35 +00:00
71eb2f6cda UX: unblock clicking through progress bar wrapper (#31135)
Reported here:
https://meta.discourse.org/t/topic-navigation-toggle-prevents-interactions-on-the-page-in-a-certain-area/350073

The purple wrapper shown here prevents elements underneath it from being
clicked/tapped, this can sometimes interfere with post controls


![image](https://github.com/user-attachments/assets/18cec59d-f150-495c-86c9-572b261f95e3)

The fix is to disable pointer events on the wrapping element, so clicks
pass through. Then clicks are re-enabled on the child element.
2025-02-03 13:18:28 -05:00
c731a918e5 DEV: Mark topic-list-columns transformer as mutable (#31127)
`topic-list-columns` expects consumers to mutate the DAG, not return a
new one. This change means that themes/plugins do not need to remember
to `return columns` when using the transformer.

Also removes the exception when someone returns a value to a mutable
valueTransformer. This is essential for backward-compatibility.
2025-02-03 17:57:58 +00:00
a8e10521c3 DEV: Use transformed useMobileLayout value in topic-list/item (#31128) 2025-02-03 17:57:44 +00:00
7c50543da5 UX: fix topic progress position when composer is open (#31134)
I'm not sure what the original intention was @ZogStriP, but it seems
this causes a lot of overflow...


Before: 

![image](https://github.com/user-attachments/assets/64e12179-d948-4311-9cba-4271ebe8559e)


After: 

![image](https://github.com/user-attachments/assets/416d28b6-f116-42ab-8b8e-cfdeb477637e)
2025-02-03 12:40:18 -05:00
80d7075171 UX: Fix user-select regressions (#31129)
…and cases that didn't take webkit into account at all.
2025-02-03 18:14:11 +01:00
e55d00d405 DEV: Update content-tag to 3.1.1 (#31131) 2025-02-03 17:59:41 +01:00
30bea25631 DEV: Tweak db:create re-exec (#31132)
Rake allows env variables to specified in arguments, so we need to use
the list of top_level_tasks which excludes those env

Followup to c8718a64dd7a26165efe91706ce5507e6999044a.
2025-02-03 16:57:01 +00:00
0989c4b0a4 UX: update system font stack to system-ui (#31125)
support for the `system-ui` value is widely available now, so we can
drop the device specific values:
https://highperformancewebfonts.com/read/ditch-BlinkMacSystemFont-and-apple-system

https://caniuse.com/?search=system-ui
2025-02-03 11:28:17 -05:00
c8718a64dd DEV: Re-exec rake after creating database (#31120)
By design, db:create initializes the Rails app with SKIP_DB=true. That
means that SiteSettings get set up with the LocalProcessProvider instead
of the DBProvider. In other words: any calls to site settings will
return the default, rather then the actual value in the database.

Running db:migrate in the same rake invocation means that rails will not
be re-initialized, and so skip_db will remain true. Site settings
accessed during migrations and fixtures will therefore return incorrect
values.

One example of this is that running bin/rake db:create db:migrate
repeatedly in a development environment will cause the FAQ topic to be
seeded repeatedly, because the seed logic does not have access to the
site setting which stores the already-seeded topic id.

This commit will automatically re-exec the Rake command if any tasks are
specified after `db:create`
2025-02-03 15:51:52 +00:00
8d810f9271 Update translations (#31123) 2025-02-03 16:37:54 +01:00
92bc85da0e Build(deps): Bump json_schemer from 2.3.0 to 2.4.0 (#31114)
Bumps [json_schemer](https://github.com/davishmcclurg/json_schemer) from
2.3.0 to 2.4.0.
-
[Changelog](https://github.com/davishmcclurg/json_schemer/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/davishmcclurg/json_schemer/compare/v2.3.0...v2.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 16:03:07 +01:00
a6fb065924 UX: clean up post action menu styles, fix issues, add variables (#31100)
Related to
https://meta.discourse.org/t/double-button-inconsistencies-post-menu/349845

This does some general clean up...

* **Moves shared mobile/desktop styles into /common** 
We had some mobile hover states for some reason, and desktop hover/focus
states can be moved to common and gated with `.discourse-no-touch`...
this means we're applying them on capabilities rather than device type
  
* **Adds some `-d-post-control-` variables to make theming easier** 
Theme authors can replace the variables without worrying about selector
specificity
  
* **Removes an overridden fade-out class from likes**
  We were overriding the effect here anyway 
  
* **Fixes a janky hover transition effect on the like button**
   This was being incorrectly inherited from another button
  
...and fixes some issues

* **Corrects border radius on double buttons (likes, flags)** 
   

![image](https://github.com/user-attachments/assets/e3bf45b4-3d72-4858-94b1-dad41ff3e274)

* **Corrects double button height issues for flags**

   

![image](https://github.com/user-attachments/assets/eb5624ea-f434-43b6-8ffc-de9baf1fa0fd)


* **Adjusts the flag count to avoid the lumpy circle CSS problem**

   

![image](https://github.com/user-attachments/assets/7c0d85bc-7d72-4b99-ab1a-ec45bab05750)
   
* **Removes lingering post-tap focus/hover states on mobile by applying
`.discourse-no-touch` and `focus-visible`**

Tested both glimmer and legacy.
2025-02-03 09:31:17 -05:00
80fdb6f2e6 DEV: refactor username validation mixin to helper class (#31107)
This PR refactors the use of the UsernameValidation mixin to a helper
class for the SignupController component. We'll extend this to the
CreateAccount modal and InvitesShowController in follow-up PRs.
2025-02-03 22:27:45 +08:00
c8ccf79545 FIX: supports height/preview form-kit composer (#31121)
- `@height` was supported but not working correctly, this is now fixed
and tested
- `@preview` was not supported, we would always hide the preview in form
kit. You now have control over this, default `false`.
2025-02-03 12:56:20 +01:00
Sam
b76c5406bd DEV: revert mini_racer upgrade (#31119)
There are reports of high CPU usage, so we will revert for now
2025-02-03 17:17:35 +11:00
4d42df365f DEV: Remove code that is unused (#31117) 2025-02-03 09:53:38 +08:00
0b8a686531 DEV: Nuke dead code from 12 years ago (#31116) 2025-02-03 09:32:12 +08:00
d28a4edd1f FIX: Hacker News onebox favicon (#31115)
This file has changed at some point to an svg instead
of a gif
2025-02-03 09:17:13 +10:00
4fbbfd45f5 Build(deps-dev): Bump rubocop-discourse from 3.9.2 to 3.9.3 (#31112)
Bumps
[rubocop-discourse](https://github.com/discourse/rubocop-discourse) from
3.9.2 to 3.9.3.
-
[Commits](https://github.com/discourse/rubocop-discourse/compare/v3.9.2...v3.9.3)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 09:05:45 +11:00
69889317e1 UX: Fix discourse topic onebox styling (#31106)
Regressed possibly in https://github.com/discourse/discourse/pull/24198

Before / After

<img width="706" alt="Screenshot 2025-02-01 at 02 59 37"
src="https://github.com/user-attachments/assets/328a0a20-152e-4e3b-bb71-45cc19cce92c"
/>
<img width="706" alt="Screenshot 2025-02-01 at 02 59 13"
src="https://github.com/user-attachments/assets/d151b175-1ca4-4e40-87ee-90fa92de1f30"
/>
2025-02-01 12:27:58 +01:00
58f75ed205 UX: allow msg select buttons to wrap (#31084)
Before
![CleanShot 2025-01-31 at 13 47
32@2x](https://github.com/user-attachments/assets/b23ead7a-0d2d-4e37-b7dd-89fc7e60959b)

After
![CleanShot 2025-01-31 at 13 47
51@2x](https://github.com/user-attachments/assets/633984f7-c989-4f82-ac31-91ef9f7acc30)
2025-02-01 03:41:39 +01:00
5e178f9c7b Update INSTALL-cloud.md (#31089)
Mention our hosting and link it to the /pricing page.

Internal: /t/134402/13
2025-02-01 09:52:20 +09:00
2fb9188608 Update README.md description and screenshots (#31088)
Internal: /t/134402/13
2025-02-01 09:45:50 +09:00
3a93a61092 FEATURE: Remove unnecessary org names from PR oneboxes (#31102)
Instead of displaying:

`discourse:main <- discourse:feature` or `discourse:main <-
user:feature`

shows:

`main <- feature` or `main <- user:feature`
2025-02-01 01:05:08 +01:00