Commit Graph

34232 Commits

Author SHA1 Message Date
bcc34420bb UX: Remove version from "What's new?" items (#30596)
This version number is a technical detail that controls
what items show up on certain sites, most admins don't
need this level of detail. Remove it here, maybe we can
add it back in some hidden way later if needed.
2025-01-07 10:06:10 +10:00
d8692faf00 UX: More translations for admin dashboard (#30570)
Followup 8d5c4ecc3398611764a4459c0e92f0fb90edd90f

Implement review suggestions from https://github.com/discourse/discourse/pull/30541
after merge, and also fix other hardcoded strings on this
dashboard.
2025-01-07 09:49:34 +10:00
f0ac25cf35 UX: adjust mobile to avoid progress bar jitter (#30591) 2025-01-06 17:57:24 -05:00
210559edc8 DEV: Support expand-pinned modifier in legacy topic-list (#30587)
This provides an easier upgrade path for themes/plugins. Matches the strategy used for other new topic-list-related modifiers.
2025-01-06 22:33:36 +00:00
116c3f7f8d UX: improve table hover states, fix table button margin issue (#30585) 2025-01-06 13:59:48 -05:00
3dfe1a9fda UX: add missing icon for open_topic small action (#30586) 2025-01-06 13:50:58 -05:00
1ae341fa38 UX: only show red count in IP lookup when greater than 0 (#30584) 2025-01-06 11:58:12 -05:00
486ff2a564 UX: Do not anchor scroll on topic navigation/map (#30580)
topic-navigation and topic-map appear in the DOM before the post stream, and are then rearranged with CSS grid. That means that, if they are entirely within the viewport, and does not have a fixed/sticky position, then they will be chosen as the browser's scroll anchor point.

We never want these elements to be used as the anchor, so we can set `overflow-anchor: none`.

https://meta.discourse.org/t/344386/16
2025-01-06 10:13:29 +00:00
f5126199f6 UX: Admin setting page consistency - Navigation (#30574)
Create a basic config page that only contains navigation-related settings, to replace the setting filtered view linked to from "Navigation" in the admin sidebar.
2025-01-06 17:44:33 +11:00
17f4052068 UX: Admin setting page consistency - Search (#30528) (#30573)
Followup c2282439b32d879a73217eec62449f042914d7d0

Make the Search config page reached from the sidebar
use our consistent site setting page rules.
2025-01-06 16:36:48 +10:00
9a87baaab4 UX: Admin setting page consistency - Legal (#30572)
Followup c2282439b32d879a73217eec62449f042914d7d0

Make the Legal config page reached from the sidebar
use our consistent site setting page rules.
2025-01-06 16:08:42 +10:00
21470e4afd UX: Admin setting page consistency - Trust levels (#30571)
Followup c2282439b32d879a73217eec62449f042914d7d0

Make the trust levels config page reached from the sidebar
use our consistent site setting page rules.
2025-01-06 15:53:18 +10:00
e987874204 FIX: Dashboard last checked date was always English (#30569)
The `problemsTimestamp` on the admin dashboard was always
forcing the "en" locale for some reason, we can remove the locale
entirely because we already set the locale for moment.js using
I18n on the server-side.

c.f. https://meta.discourse.org/t/last-check-date-not-localized-in-admin-dashboard/345483
2025-01-06 14:59:21 +10:00
5463b845e3 UX: Admin setting page consistency - Site Logo (#30567)
Create a basic config page that only contains site logo settings, to replace the "branding" category linked to from "Site logo" in the admin sidebar.
2025-01-06 15:45:19 +11:00
01ceeae2d6 UX: Admin setting page consistency - Fonts (#30564)
Create a basic config page that only contains font-related settings, to replace the setting filtered view linked to from "Font style" in the admin sidebar.
2025-01-06 15:05:40 +11:00
b07e7cc70f DEV: refactor setting object mixin to helper class (#30529)
This PR moves the logic from the setting-object mixin to a helper class. I've opted to maintain the interface of the previous classes (ThemeSettings / SiteSetting) that used the mixed-in methods through aliases so that we limit the amount of changes here (these are referenced in the string form and across classes/templates).

Another option we may consider in future if we want to optimize for performance is straight duplication which would trade off this overhead of aliasing/chaining calls through the helper for some duplicate code - only 2 models require these methods at the time of this PR.
2025-01-06 12:02:46 +08:00
d400fe6623 FEATURE: add new setting to select view for category page on mobile (#30519) 2025-01-06 09:25:25 +05:30
407fa69778 UX: admins embedding page follows admin ux guideline (#30122)
Conversion of /admin/customize/embedding page to follow admin UX guidelines.
2025-01-06 13:01:08 +11:00
02113fc22a DEV: Add isTablet to capabilities service (#30562)
We already had isIpadOS, but for some themes and components
we really need to do different things if the user is on
a tablet, including Android tablets.

isTablet and isTabletScreen have been introduced to the
capabilities service.

isTablet is true if the screen size is a tablet, touch
is detected, or we have already detected iPad OS, or
the device matches tablet UAs

isTabletScreen checks both portrait and landscape dimensions
of 1280x600 which should cover most cases.
2025-01-06 11:28:38 +10:00
53b51e0d56 Build(deps-dev): Bump ember-cli from 6.0.1 to 6.1.0 (#30459)
Bumps [ember-cli](https://github.com/ember-cli/ember-cli) from 6.0.1 to 6.1.0.
- [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.0.1...v6.1.0)

---
updated-dependencies:
- dependency-name: ember-cli
  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>
2025-01-05 00:23:20 +01:00
e2129dc07c FIX: Allow signups when full names are disabled (#30551)
Follow-up to 3187606d34

When the `enable_names` setting is false and the `full_name_requirement` setting is set to `required_at_signup`, the name field in the signup form should effectively be not required (and hidden). However, that is not actually the case at the moment because the `name-validation.js` mixin only checks for the `full_name_requirement` setting when determining whether the name field should block a new signup.

This commit fixes the issue by making the `full_name_required_for_signup` and `full_name_visible_in_signup` site attributes check for the `enable_names` setting themselves. This spares any consumers of these properties from having to remember to include a check for the `enable_names` setting.
2025-01-04 15:13:44 +03:00
b4f0a8748d UX: avoid triggering the autocomplete mid-word (#30042)
With the previous logic, autocompletes were being opened mid-word, which was annoying and didn't properly work – selecting an option would generate an invalid format, mixing existing with new.

This PR makes a simple change: only ever trigger an autocomplete on word ends, and close them when arrow-navigating out of the word-end boundary.

ref /t/-/143169
2025-01-03 16:27:44 -03:00
dacb5d5d33 UX: use em for code font-size (#30547) 2025-01-03 13:09:29 -05:00
4d5be463f6 Use lambda to dynamically evaluate allowed user api key client scopes (#30544) 2025-01-03 10:25:21 -05:00
13b9493bf0 DEV: Add subcategories with featured topics list plugin outlet (#30538)
This adds plugin outlets for mobile and desktop views of the subcategories with featured topics list.
2025-01-03 10:18:57 -03:00
1c893d1725 FIX: Show error message when password is too common (#30507) 2025-01-03 09:23:14 -03:00
d8e8c9f1e4 DEV: Convert UserFlagPercentage to gjs (#30453) 2025-01-03 13:20:26 +01:00
91f7ae2741 DEV: Allow export user archive (job) to be requested and sent to an admin (#30543)
It is not possible for an admin to generate a suspended user's archive now, disallowing SAR (subject access requests) under the GDPR.

This commit expands the export_user_archive job to allow specifying a requesting_user_id which will send the archive to an admin. When not specified, this defaults to the user itself.
2025-01-03 14:27:10 +08:00
5a55c9062a DEV: Add reviewables:populate rake task (#30540)
Adds a new reviewables:populate rake task that works in a similar fashion to the existing *:populate rake tasks. The rake task creates pending reviewable of all core types, with possibility for plugins to extend the task to populate their own reviewable types.
2025-01-03 10:05:04 +08:00
4aa7a89371 DEV: Round 1 converting admin site setting components to gjs (#30526)
Converts the following site setting components:

* Bool
* Category
* Colors
* Category
* CompactList
* EmojiList
2025-01-03 11:34:28 +10:00
8d5c4ecc33 FIX: Dashboard report change tooltip was not translated (#30541)
Use i18n in the JS code instead of concatenating English
strings.

c.f. https://meta.discourse.org/t/titles-on-graphs-in-community-health-dashboard-are-not-localized/302776/8?u=martin
2025-01-03 11:20:29 +10:00
3260654505 UX: Admin setting page consistency - Notifications (#30528)
Followup c2282439b32d879a73217eec62449f042914d7d0

Make the Notifications config page reached from the sidebar
use our consistent site setting page rules.
2025-01-03 10:34:40 +10:00
b552d7214b DEV: Add PluginOutlet on full-page-search-above-search-header and filters (#30454)
This PR adds PluginOutlets on full-page-search-above-search-header and full-page-search-filters.
2025-01-02 14:35:10 -06:00
b1602d0e7f DEV: Add topic-list-item-expand-pinned value transformer (#30537)
- Add `topic-list-item-expand-pinned` value transformer
2025-01-02 13:51:46 -06:00
b3772e23bf UX: inherit font-size for code in headings (#30536)
* UX: inherit font-size for code in headings

* UX: use descendant selector

* FIX: linting
2025-01-02 13:30:01 -05:00
35f8b1d5d3 DEV: use isFocused dom helper (#30533) 2025-01-02 15:02:20 +01:00
8c94e17b6b Build(deps): Bump the highlightjs group across 1 directory with 2 updates (#30465)
Bumps the highlightjs group with 2 updates in the / directory: [@highlightjs/cdn-assets](https://github.com/highlightjs/highlight.js) and [highlight.js](https://github.com/highlightjs/highlight.js).


Updates `@highlightjs/cdn-assets` from 11.10.0 to 11.11.1
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/main/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/11.10.0...11.11.1)

Updates `highlight.js` from 11.10.0 to 11.11.1
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/main/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/11.10.0...11.11.1)

---
updated-dependencies:
- dependency-name: "@highlightjs/cdn-assets"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: highlightjs
- dependency-name: highlight.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: highlightjs
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 13:37:16 +01:00
72d7d683a6 Build(deps-dev): Bump ember-cli-deprecation-workflow from 3.0.2 to 3.1.0 (#30492)
Bumps [ember-cli-deprecation-workflow](https://github.com/ember-cli/ember-cli-deprecation-workflow) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/ember-cli/ember-cli-deprecation-workflow/releases)
- [Changelog](https://github.com/ember-cli/ember-cli-deprecation-workflow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ember-cli/ember-cli-deprecation-workflow/commits)

---
updated-dependencies:
- dependency-name: ember-cli-deprecation-workflow
  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>
2025-01-02 13:18:48 +01:00
d345cbef06 Build(deps-dev): Bump @swc/core from 1.10.1 to 1.10.4 (#30502)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.10.1 to 1.10.4.
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/swc-project/swc/compare/v1.10.1...v1.10.4)

---
updated-dependencies:
- dependency-name: "@swc/core"
  dependency-type: direct:development
  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>
2025-01-02 13:05:10 +01:00
9b7fc3797e UX: do not tab to an already active tab (#30531) 2025-01-02 12:28:57 +01:00
a5ba788a23 DEV: allows d-menu to refocus trigger (#30522) 2025-01-02 09:31:15 +01:00
e04af92740 UX: Add highlight for active nav in admin secondary sidebar (#30486)
This PR makes the secondary sidebar in the admin UI more consistent
navigation experience:

* Added a coloured background for links on hover
* Replaced the bold text and line style with a distinct background
highlight, ensuring it complements the admin sidebar while maintaining
its own identity
* Bringing in arrow indicators to match the active navigation state in
the category settings

### Before
<img width="488" alt="image"
src="https://github.com/user-attachments/assets/aa843766-0ed7-435a-8880-6f0598aa4782"
/>


### After
<img width="475" alt="image"
src="https://github.com/user-attachments/assets/ec31bab9-0f51-4757-ab06-95a961ae17ee"
/>
2025-01-01 23:50:16 -07:00
50ac0a5702 DEV: refactor singleton mixin to class decorator (#30498)
Refactors the Singleton mixin into a class decorator that directly mutates target classes with the same static property & functions as the mixin. This maintains the public interface of such singleton classes.

Classes refactored to use the singleton class decorator:

Session
User
Site
I removed singleton functionality from LogsNotice since services are already singletons and what we had previously defined in its customized createCurrent method could be replaced by directly injecting the relevant services into the class. This also allowed us to get rid of the logs-notice initializer.

We are adding a deprecation warning to the Singleton mixin instead of deleting since there are plugins that could still be using it.
2025-01-02 12:57:48 +08:00
9a12eb5c3c FIX: Wizard branding step null logo (#30523)
Followup 3135f472e2c4221a9348aec27514d3e2947bc9ab

Fixes an issue where the wizard branding step would
error if SiteSetting.logo was null, this did not come
up during testing because in our testing discourse-logo-sketch-small.png
is used for the logo settings.
2025-01-02 10:44:31 +10:00
3135f472e2 FEATURE: Improve wizard quality and rearrange steps (#30055)
This commit contains various quality improvements to
our site setup wizard, along with some rearrangement of
steps to improve the admin setup experience and encourage
admins to customize the site early to avoid "all sites look the
same" sentiment.

#### Step rearrangement

* “Your site is ready” from 3 → 4
* “Logos” from 4 → 5
* “Look and feel” from 5 → 3

#### Font selector improvements

Changes the wizard font selector dropdown to show
a preview of all fonts with a CSS class so you don't
have to choose the font to get a preview.

Also makes the fonts appear in alphabetical order.

#### Preview improvements

Placeholder text changed from lorem ipsum to actual topic titles,
category names, and post content. This makes it feel more "real".

Fixes "undefined" categories. Added a date to the topic timeline.

Fixes button rectangles and other UI elements not changing in
size when the font changed, leading to cut off text which looked super
messy. Also fixed some font color issues.

Fixed table header alignment for Latest topic list.

#### Homepage style selector improvements

Limited the big list of homepage styles to Latest, Hot, Categories with latest topics,
and Category boxes based on research into the most common options.

#### Preview header

Changed the preview header to move the hamburger to the left
and add a chat icon

#### And more!

Changed the background of the wizard to use our branded blob style.
2025-01-02 09:28:23 +10:00
c2282439b3 UX: Move first settings admin route to config page (#30510)
For consistency, we are updating all sidebar links that
point to an /admin/customize/site_settings URL to their
own config pages, in preparation for more focused config
pages in future. This will mitigate the issue we have now,
which is that every sidebar link you click showing a different
UI to admins.

This commit moves admin/config/login-and-authentication to
establish the pattern.
2025-01-02 09:13:37 +10:00
5711bf6f27 DEV: Move admin config pages out of /customize/ sub-route (#30511)
The customize routes add CSS classes that make these admin
config pages look different from the ones under /admin/config.
We want all config routes to be under /admin/config as well.

This commit moves the emoji, user fields, and permalinks pages
out of customize and into config, updating all references and
adding more rails routes as needed.

Also renames admin emojis route to emoji, emoji is singular and plural.
2025-01-02 09:13:11 +10:00
2ff3f44b95 DEV: User page layout backwards compatibility (#30515)
Followup to #30499, fixes CSS for older browsers.
2024-12-31 11:43:49 -05:00
9497a6165f DEV: refactor email_controller.rb
- Make an `includes(:user)` explicit rather than implicit.
- Refactor the `unsubscribe` action to bail early when `key` is invalid
2024-12-31 15:28:59 +01:00
25351bdb8e FIX: Switch back to using a temp table for moving posts. (#30509) 2024-12-31 17:02:27 +11:00