Commit Graph

52354 Commits

Author SHA1 Message Date
dependabot[bot]
dac8187120
Build(deps-dev): Bump rubocop from 1.58.0 to 1.59.0 (#24834)
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.58.0 to 1.59.0.
- [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.58.0...v1.59.0)

---
updated-dependencies:
- dependency-name: rubocop
  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>
2023-12-11 22:44:51 +01:00
Jarek Radosz
3999f3e826
DEV: Convert PreferenceCheckbox to gjs (#24817) 2023-12-11 22:03:03 +01:00
Mark VanLandingham
c6a2c80441
UX: Adjust notification items when avatar is shown (#24832) 2023-12-11 14:44:14 -06:00
Jeff Wong
4e8f9e8fd2
DEV: remove animating class (#24830)
class is no longer needed to detect animations since the change in:

c2295b9d5d
2023-12-11 11:55:14 -08:00
David Taylor
598961086c
FIX: Correct and improve autohighlight_all_code setting description (#24828)
We allow HTML in site setting descriptions, so `<code>` was being rendered as HTML instead of text. This commit fixes that, and adds an additional sentence about how to control markdown-authored code blocks.
2023-12-11 18:29:05 +00:00
David Taylor
683c038ec0 UX: Add some missing hljs classes 2023-12-11 18:11:27 +00:00
David Taylor
a48595ae7a DEV: Remove unused hljs css selectors
In modern hljs, languages should be targetted with `lang-` prefixes. These selectors haven't worked in Discourse for a long time, so let's drop them to reduce confusion
2023-12-11 18:11:27 +00:00
Mark VanLandingham
6fc992f66a
FIX: Color of notification icons in user-notifications index (#24826) 2023-12-11 11:35:02 -06:00
Osama Sayegh
102e1b4faf
DEV: Remove legacy hamburger menu code (#24788)
We no longer offer the option to use the legacy hamburger menu since October 9th 2023, see 832b3b9e60. However, the code for the legacy hamburger menu is still around and needs to be removed. All plugins and themes that we know of that customize the legacy hamburger menu have been updated to either remove the customizations or migrate the customizations to the new sidebar, so now we can safely remove the legacy hamburger menu code from core.

Internal topic: t/113137.
2023-12-11 20:17:00 +03:00
Mark VanLandingham
223e413a6c
DEV: Render glimmer notification items for user notification list (#24802)
This removes the widget notifications list and renders the glimmer user menu notification items instead.
2023-12-11 11:04:43 -06:00
Jan Cernik
4904c2f11b
DEV: Skip chat transcript spec (#24819) 2023-12-11 13:09:22 -03:00
Penar Musaraj
695ec99cea
UX: Fix highlighting regressions (#24825)
Two regressions fixed here, one introduced in 6dc5fe0c83
and the other introduced a few months ago.
2023-12-11 11:02:48 -05:00
Bianca Nenciu
81b0420614
FEATURE: Add pagination to categories page (#23976)
When `lazy_load_categories` is enabled, the categories are no longer
preloaded in the `Site` object, but instead they are being requested
on a need basis.

The categories page still loaded all categories at once, which was not
ideal for sites with many categories because ti would take a lot of
time to build and parse the response.

This commit adds pagination to the categories page using the LoadMore
helper. As the user scrolls through the categories page, more categories
are requested from the server and appended to the page.

<!-- NOTE: All pull requests should have tests (rspec in Ruby, qunit in JavaScript). If your code does not include test coverage, please include an explanation of why it was omitted. -->
2023-12-11 17:58:45 +02:00
Penar Musaraj
af23fec835
FIX: Reload page after adding 2FA when it is enforced (#24803)
When 2FA is enforced and the user has no key or TOTP on their account, we
block navigating away from the page until they have added one. However,
we don't reload the page after they have added one, so the user is left
with a page that still says they need to add 2FA.
2023-12-11 10:56:30 -05:00
David Taylor
b5fb8e89eb
FIX: Resolve computed property override when inviting to PM (#24823)
This was raising a deprecation under Ember 3, and an error under Ember 4+
2023-12-11 15:39:50 +00:00
Joffrey JAFFEUX
dacb06842e
FIX: allow to click on thread indicator (#24821)
We can also now control tabindex, and other html attributes, which allows to lick on the thread indicator but not tab to it for example.

By default the tabindex will be 0.
2023-12-11 16:35:29 +01:00
Joffrey JAFFEUX
a7a4aaa6b9
FIX: ensures side panel is closed (#24822)
When navigating to /chat/threads we were not closing the side panel. It would not show as the route doesn't support it, but after if we would open a channel from the sidebar it would open the channel with an empty opened sidepanel .
2023-12-11 16:35:18 +01:00
Gerhard Schlager
dc8c6b8958 DEV: Lots of improvements to the generic_bulk import script
Notable changes:
* Imports a lot more tables from core and plugins
  * site settings
  * uploads with necessary upload references
  * groups and group members
  * user profiles
  * user options
  * user fields & values
  * muted users
  * user notes (plugin)
  * user followers (plugin)
  * user avatars
  * tag groups and tags
  * tag users (notification settings for tags / user)
  * category permissions
  * polls with options and votes
  * post votes (plugin)
  * solutions (plugin)
  * gamification scores (plugin)
  * events (plugin)
  * badges and badge groupings
  * user badges
  * optimized images
  * topic users (notification settings for topics)
  * post custom fields
  * permalinks and permalink normalizations

* It creates the `migration_mappings` table which is used to store the mapping for a handful of imported tables

* Detects duplicate group names and renames them

* Pre-cooking for attachments, images and mentions

* Outputs instructions when gems are missing

* Supports importing uploads from a DB generated by `uploads_importer.rb`

* Checks that all required plugins exists and enables them if needed

* A couple of optimizations and additions in `import.rake`
2023-12-11 16:23:07 +01:00
Gerhard Schlager
d725b3ca9e DEV: Add script for preprocessing uploads as part of a migration
This script preprocesses all uploads within a intermediate DB (output of converters) and uploads those files to S3. It does the same for optimized images. This speeds up migrations when you have to run them multiple times, because you only have to preprocess and upload the files once.

This script is very hacky and mostly undocumented for now. That will change in the future.
2023-12-11 16:23:07 +01:00
Gerhard Schlager
1cb600270e DEV: Convert dependencies of generic import script into optional gem group 2023-12-11 16:23:07 +01:00
Jarek Radosz
81de91751e
DEV: Remove incorrect "for" attributes (#24805)
(and correct some html whitespace)
2023-12-11 15:44:38 +01:00
Jarek Radosz
cc74bcdc85
DEV: Correct i18n helper invocation case (#24806) 2023-12-11 15:44:28 +01:00
David Taylor
4a62676512
DEV: Identify errors/deprecations triggered by browser extensions (#24820)
It's possible for browser extensions to trigger JS errors and deprecation warnings. That can lead to significant confusion and noise in our logs/metrics. One recent example we've identified is the 'Wappalyzer' extension triggering the `ember-global` deprecation.

This commit will clearly identify these errors/deprecations with a `[BROWSER EXTENSION]` prefix in the console.
2023-12-11 14:22:44 +00:00
Joffrey JAFFEUX
2e25e95ce1
UI: ensures emojis are correctly aligned in reactions (#24814)
Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
2023-12-11 14:29:16 +01:00
Jan Cernik
72872297f5
FIX: Allow quoting thread's original message (#24773) 2023-12-11 09:58:00 -03:00
Joffrey JAFFEUX
54724f7c09
UX: allow users to click thread title to open it (#24816) 2023-12-11 13:54:00 +01:00
Jan Cernik
549513e25d
DEV: Unskip chat transcript spec (#24778) 2023-12-11 09:46:46 -03:00
Jan Cernik
cf9bef0499
FIX: Navigating out of thread shows other unread threads (#24693)
* FIX: Navigating out of thread shows other unread threads

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
2023-12-11 09:44:50 -03:00
chapoi
2eed8753fb
UX: fix icon colour on signup CTA (#24818) 2023-12-11 12:26:00 +01:00
chapoi
8e373bc167
UX: prevent chat channel avatar from getting squished (#24815) 2023-12-11 09:52:12 +01:00
dependabot[bot]
7392071c28
Build(deps): Bump actions/stale from 8 to 9 (#24812)
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/stale
  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>
2023-12-11 09:44:52 +01:00
Joffrey JAFFEUX
09277bc543
FEATURE: my threads page (#24771)
This commit adds a new "My threads" link in sidebar and drawer. This link will open the "/chat/threads" page which contains all threads where the current user is a member. It's ordered by activity (unread and then last message created).

Moreover, the threads list of a channel page is now showing every threads of a channel, and not just the ones where you are a member.
2023-12-11 07:38:07 +01:00
dependabot[bot]
4949d85c15
Build(deps): Bump markdown-it from 13.0.2 to 14.0.0 in /app/assets/javascripts (#24809)
* Build(deps): Bump markdown-it in /app/assets/javascripts

Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 13.0.2 to 14.0.0.
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](https://github.com/markdown-it/markdown-it/compare/13.0.2...14.0.0)

---
updated-dependencies:
- dependency-name: markdown-it
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update lockfiles for ember version flag

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: discoursebuild <build@discourse.org>
2023-12-10 22:38:03 +01:00
dependabot[bot]
240b01789f
Build(deps-dev): Bump shoulda-matchers from 3654e5c to f2db1f2 (#24808)
Bumps [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) from `3654e5c` to `f2db1f2`.
- [Release notes](https://github.com/thoughtbot/shoulda-matchers/releases)
- [Commits](3654e5ca7f...f2db1f2f56)

---
updated-dependencies:
- dependency-name: shoulda-matchers
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-10 22:34:22 +01:00
dependabot[bot]
ba2f291d8f
Build(deps): Bump addressable from 2.8.5 to 2.8.6 (#24807)
---
updated-dependencies:
- dependency-name: addressable
  dependency-type: direct:production
  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>
2023-12-10 22:33:50 +01:00
David Taylor
6388d929d6
UX: Ensure wizard previews display at correct width (#24801) 2023-12-08 20:45:54 +00:00
Jarek Radosz
601510f730
DEV: Increase per-spec timeout to 45s (#24798) 2023-12-08 21:14:41 +01:00
Jarek Radosz
b4f65540f2
DEV: Update Gemfile.lock (#24797)
After 28956a5415 merge
2023-12-08 15:05:52 -05:00
David Taylor
4adbcf3f2a
DEV: Update before-header-panel outlet arguments (#24796)
Passing through `attrs` is problematic for a few reasons:

1. Connectors could mutate it and cause issues in the parent widget

2. It doesn't provide a clean API boundary. The connector can access all attrs of the widget. As we move towards refactoring the header away from widgets, this may change. Better to explicitly call out the things we expect plugins/themes to access

3. `attrs` is a reserved property for classic components. Passing an argument called `attrs` into a classic component raises a 'computed property override' deprecation error under Ember 3.28, and causes an error in Ember 4+.

Unfortunately this will be a breaking change to the outlet. Fortunately, it was introduced fairly recently and does not have too many users. We will make immediate updates to themes/plugins we are aware of.

Followup to 9cc2b5cc20
2023-12-08 17:02:25 +00:00
Penar Musaraj
ce723caae2
DEV: Remove flaky spec (#24795) 2023-12-08 11:43:17 -05:00
chapoi
e227008c65
UX: login modal sizing fixes (#24794) 2023-12-08 17:21:37 +01:00
Bianca Nenciu
b4cf175daf
DEV: Use category objects as values for category select kits (#24793)
Commit dcd81d56c0 changed this, but that
implementation is not ideal because the initialization of the select kit
can result in requests to the server.

This implementation has the advantage that it also fixes the user and
group properties that return categories.
2023-12-08 18:09:48 +02:00
Penar Musaraj
80d5acc0ce
FIX: Navigate search results using J/K keys (#24787) 2023-12-08 11:06:59 -05:00
Penar Musaraj
6dc5fe0c83
A11Y: improve setting focus to a post (#24786)
See https://github.com/discourse/discourse/pull/23367 for implementation details.
2023-12-08 11:06:21 -05:00
Neil Lalonde
27144f188c
UX: if no login options are configured, show a message (#24777)
Admins will be instructed to login via /u/admin-login to change their
site settings.
2023-12-08 10:49:54 -05:00
Penar Musaraj
28956a5415
DEV: Switch to sassc-embedded (#24639)
Sassc-embedded fixes a performance issue with a leaking DartSass process. And it also fixes an issue with source map file paths (without any extra flags).
2023-12-08 10:34:03 -05:00
David Taylor
ed7a675e59
DEV: Remove GitHub gjs highlighting workaround (#24791)
Native gjs highlighting just landed, so this override shouldn't be needed any more.
2023-12-08 11:55:20 +00:00
David Taylor
efbe5b7dda
DEV: Catch errors in theme/plugin onPageChange handlers (#24784)
This makes the errors easier for admins to identify/resolve, and also prevents failures from affecting core functionality.
2023-12-08 10:01:37 +00:00
Bianca Nenciu
dcd81d56c0
FIX: category selectors for lazy loaded categories (#24533)
A lot of work has been put in the select kits used for selecting
categories: CategorySelector, CategoryChooser, CategoryDrop, however
they still do not work as expected when these selectors already have
values set, because the category were still looked up in the list of
categories stored on the client-side Categrories.list().

This PR fixes that by looking up the categories when the selector is
initialized. This required altering the /categories/find.json endpoint
to accept a list of IDs that need to be looked up. The API is called
using Category.asyncFindByIds on the client-side.

CategorySelector was also updated to receive a list of category IDs as
attribute, instead of the list of categories, because the list of
categories may have not been loaded.

During this development, I noticed that SiteCategorySerializer did not
serializer all fields (such as permission and notification_level)
which are not a property of category, but a property of the relationship
between users and categories. To make this more efficient, the
preload_user_fields! method was implemented that can be used to
preload these attributes for a user and a list of categories.
2023-12-08 12:01:08 +02:00
Martin Brennan
d9a422cf61
FIX: Do not attempt S3 ACL call if secure status did not change (#24785)
When rebaking and in various other places for posts, we
run through the uploads and call `update_secure_status` on
each of them.

However, if the secure status didn't change, we were still
calling S3 to change the ACL, which would have been a noop
in many cases and takes ~1 second per call, slowing things
down a lot.

Also, we didn't account for the s3_acls_enabled site setting
being false here, and in the specs doing an assertion
that `Discourse.store.update_ACL` is not called doesn't
work; `Discourse.store` isn't a singleton, it re-initializes
`FileStore::S3Store.new` every single time.
2023-12-08 12:58:45 +10:00