Commit Graph

31039 Commits

Author SHA1 Message Date
Martin Brennan 1fc0ce1ac2
FIX: with_secure_uploads? could return nil in some cases (#24592)
When we check upload security, one of the checks is to
run `access_control_post.with_secure_uploads?`. The problem
here is that the `topic` for the post could be deleted,
which would make the check return `nil` sometimes instead
of false because of safe navigation. We just need to be
more explicit.
2023-11-28 13:12:28 +10:00
Krzysztof Kotlarek 5551a71c55
FEATURE: increase tag description limit to 1000 (#24561)
Admin can add tag description up to 1000 characters.

Full description is displayed on tag page, however on topic list it is truncated to 80 characters.
2023-11-28 08:45:40 +11:00
Penar Musaraj 633deb5af8
UX: Submit security key edit form on Enter (#24532)
Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2023-11-27 16:11:12 -05:00
David Taylor 6f3b087907 DEV: Generate Ember5 lockfile 2023-11-27 16:40:22 +00:00
David Taylor 16b6e86932 DEV: Introduce feature-flag for Ember 5 upgrade
This commit introduces the scaffolding for us to easily switch between Ember 3.28 and Ember 5 on the `main` branch of Discourse. Unfortunately, there is no built-in system to apply this kind of flagging within yarn / ember-cli. There are projects like `ember-try` which are designed for running against multiple version of a dependency, but they do not allow us to 'lock' dependency/sub-dependency versions, and are therefore unsuitable for our use in production.

Instead, we will be maintaining two root `package.json` files, and two `yarn.lock` files. For ember-3, they remain as-is. For ember5, we use a yarn 'resolution' to override the version for ember-source across the entire yarn workspace.

To allow for easy switching with minimal diff against the repository, `package.json` and `yarn.lock` are symlinks which point to `package-ember3.json` and `yarn-ember3.lock` by default. To switch to Ember 5, we can run `script/switch ember version 5` to update the symlinks to point to `package-ember5.json` and `package-ember3.json` respectively. In production, and when using `bin/ember-cli` for development, the ember version can also be upgraded using the `EMBER_VERSION=5` environment variable.

When making changes to dependencies, these should be made against the default `ember3` versions, and then `script/regen_ember_5_lockfile` should be used to regenerate `yarn-ember5.lock` accordingly. A new 'Ember Version Lockfiles' GitHub workflow will automate this process on Dependabot PRs.

When running a local environment against Ember 5, the two symlink changes will show up as git diffs. To avoid us accidentally committing/pushing that change, another GitHub workflow is introduced which checks the default Ember version and raises an error if it is greater than v3.

Supporting two ember versions simultaneously obviously carries significant overhead, so our aim will be to get themes/plugins updated as quickly as possible, and then drop this flag.
2023-11-27 16:40:22 +00:00
David Taylor bdd71d49b5 DEV: Rename files in preparation for version feature-flagging 2023-11-27 16:40:22 +00:00
Renato Atilio d93be8c7a1
FIX: remove trailing slashes and query params on meta-tag-updater's canonical url (#24445)
* FIX: remove trailing slashes and query params on meta-tag-updater's canonical url
2023-11-27 12:28:07 -03:00
Duc Manh d506721eee
Fix: Handle failing to update parent category (#24401)
Co-authored-by: Jan Cernik <jancernik12@gmail.com>
2023-11-27 11:33:31 -03:00
David Taylor a9bc732837
DEV: Prepare jquery integration for Ember upgrade (#24566)
- Update optional-features to tie the `jquery-integration` flag to the current ember version
- Wrap ember-4-specific logic in ember-cli-build with a version check
- Update global-compat.js to add the jquery global if it doesn't exist (i.e. if we're on a modern ember version)

Extracted from https://github.com/discourse/discourse/pull/21720. This is a no-op under our current Ember 3.28 version.
2023-11-27 14:01:27 +00:00
David Taylor 04164f7dda
DEV: Prepare lib/ember-events for Ember upgrade (#24565)
Extracted from https://github.com/discourse/discourse/pull/21720. This is a no-op under our current Ember 3.28 version.
2023-11-27 14:00:30 +00:00
David Taylor 056898c55f
DEV: Prepare modal implementation for Ember upgrade (#24564)
- Skip rendering DModalLegacy when running Ember 5
- Move named outlet inside the DModalLegacy component file
- Exclude that DModalLegacy template from the build when running Ember 5
- Skip LegacySupport version of modal service when running Ember 5
- Add error popup for legacy modals when running Ember 5

Extracted from https://github.com/discourse/discourse/pull/21720. This is a no-op under our current Ember 3.28 version.
2023-11-27 13:50:25 +00:00
David Taylor 59bae95190
DEV: Prepare module-shims for Ember upgrade (#24569)
Replaces console error with comment so that we can defer removing this code while we run modern Ember behind a feature flag
2023-11-27 13:50:09 +00:00
David Taylor 60b5800745
DEV: Prepare deprecation-workflow for Ember upgrade (#24568)
Extracted from https://github.com/discourse/discourse/pull/21720
2023-11-27 13:43:22 +00:00
David Taylor 824878f315
DEV: Prepare plugin-outlet for ember upgrade (#24567)
In modern versions of Ember, `this.parentView` is called internally during component init. We don't want our deprecation message to be triggered by that internal call, so we need an additional check.

Extracted from https://github.com/discourse/discourse/pull/21720
2023-11-27 13:43:02 +00:00
David Taylor 86f3e86596
FIX: Ensure topic route does not replaceState after navigation (#24563)
This hook is `cancel()`'d in a willTransition hook, but that isn't always enough. It might still be scheduled if there is a scroll event between `willTransition`, and the transition actually completing. Following c2d94be06e, this kind of scroll event happens when the loading indicator is set to 'spinner'. This would put the router in a weird state and cause navigation issues.

Also takes the opportunity to remove JQuery from this code path

https://meta.discourse.org/t/286463/15
2023-11-27 11:35:59 +00:00
Jarek Radosz b1e43425bf
DEV: Don't use `attrs` (#24323) 2023-11-27 12:16:31 +01:00
dependabot[bot] e05dbba845
Build(deps): Bump ember-auto-import in /app/assets/javascripts (#24556) 2023-11-27 11:12:00 +01:00
dependabot[bot] 68803a6b7d
Build(deps-dev): Bump jsdom in /app/assets/javascripts (#24557) 2023-11-27 11:09:42 +01:00
Martin Brennan 91232847e3
FIX: Video placeholders not auto-linking post uploads (#24559)
Followup to 2443446e62

We introduced video placeholders which prevent preloading
metadata for videos in posts. The structure looks like this
in HTML when the post is cooked:

```
<div class="video-placeholder-container" data-video-src="http://some-url.com/video.mp4" dir="ltr" style="cursor: pointer;">
  <div class="video-placeholder-wrapper">
    <div class="video-placeholder-overlay">
      <svg class="fa d-icon d-icon-play svg-icon svg-string" xmlns="http://www.w3.org/2000/svg">
        <use href="#play"></use>
      </svg>
    </div>
  </div>
</div>
```

However, we did not update the code that links post uploads
to the post via UploadReference, so any videos uploaded since
this change are essentially dangling and liable to be deleted.
This also causes some uploads to be marked secure when they
shouldn't be, because they are not picked up and analysed in the
CookedPostProcessor flow.
2023-11-27 12:38:52 +10:00
Martin Brennan eb1a622d38
FIX: Improve group mention copy for small groups (#24558)
If a group is < 5 members, the mention warning doesn't need to
be so harsh. This commit changes the copy for the existing warning
and adds a new one for groups that are >= 5 members.
2023-11-27 10:31:24 +10:00
Krzysztof Kotlarek dc2a0854b0
UX: add gift emoji styling for new features (#24523)
When admin has unseen new feature, gift emoji is added to a link.

In addition, `/new-features` path was changed to `/whats-new`
2023-11-27 09:32:28 +11:00
Jarek Radosz 24532653e6
FIX: A typo bug in an import script (#24553) 2023-11-25 18:10:42 +01:00
Jarek Radosz 68960b26be
DEV: Consistently use kebab-case in service lookups (#24552) 2023-11-25 18:10:10 +01:00
Jarek Radosz 3912a2dc24
DEV: Don't reload looping tests when cancelling (#24551) 2023-11-25 18:09:36 +01:00
David Taylor 34a859d628
FIX: disable browser `history.scrollRestoration` feature (#24550)
When going 'back', default browser behavior is to restore the scroll position. Unfortunately sites are given no control over the timing of this restoration, which means it can happen halfway through an Ember transition. Therefore we disable it, and re-implement the functionality in our scroll-manager service.

We inadvertently dropped this configuration in 7c9cf666da, which led to issues like https://meta.discourse.org/t/286463
2023-11-25 00:56:19 +00:00
Renato Atilio bf9c0c4889
DEV: ensure discovery getters don't fail with a missing #routeAttrs (#24549) 2023-11-24 15:54:16 -03:00
Bianca Nenciu d5f459db14
FIX: Use same names for category CSS variables (#24527)
--category-bg-color and --category-badge-color were both used to
represent category.color. --category-badge-color is now used instead for
all of them.
2023-11-24 16:42:24 +02:00
David Taylor 3a67a0280f
DEV: Remove unneeded Model injections (#24546)
These are handled by our implicit-injections shim, or explicit injections
2023-11-24 14:20:02 +00:00
Jarek Radosz 1da4e1be0a
DEV: Convert relative-time-picker to gjs (#24324) 2023-11-24 14:16:17 +01:00
Jarek Radosz e98ac4736e
DEV: Add "loop until failure" feature to QUnit (#24545) 2023-11-24 13:15:43 +01:00
Jarek Radosz 1f2a25331b
DEV: Fix settledState debug message (#24544)
A properly formatted string instead of circular-JSON error
2023-11-24 12:18:28 +01:00
David Taylor 0253cba9be
DEV: Load svg icons in dev-environment qunit tests (#24542)
Making the icons available generally in tests is tricky because they're generated dynamically by the rails server. However, if we restrict it to dev-mode (`/tests` in a browser) then it's possible to load them from the running rails server. This is purely a visual thing to make debugging easier - it should not affect test behavior.
2023-11-24 10:12:10 +00:00
David Taylor 46782a9f1c
DEV: Cleanup unused markdownItUrl references (#24541)
These are unused since 9a1695ccc1
2023-11-24 10:00:07 +00:00
chapoi 0b352ce7fb
UX: fix date time modal on mobile (#24531)
* UX: fix date time modal
2023-11-24 10:28:46 +01:00
Sam c2fd090d7d
DEV: revert missing license for maxmind changes (#24538)
Reverts
 
 - DEV: maxmind license checking failing tests #24534 
 - UX: Show if MaxMind key is missing on IP lookup #18993

These changes are leading to surprising results, our logs are now filling up with warnings on dev environments 

We need the change to be redone
2023-11-24 11:31:11 +11:00
MichaIng c58a41cb3e
UX: Show on IP lookup if MaxMind key is missing (#18993)
as discussed in https://meta.discourse.org/t/maxminddb-not-found-error/148512/7.
 
shows a warning to the admin if no license for maxmind is found
2023-11-24 08:02:05 +11:00
Bianca Nenciu 012541b045
FIX: Serialize parent categories first (#24530)
The parent category needs to be serialized before the child category
because they are parsed in order. Otherwise the client will not build
the parent-child relationship correctly.
2023-11-23 19:03:05 +02:00
Godfrey Chan 2228f75645
DEV: Modernize Wizard model implementation (#23640)
+ native classes
+ tracked properties
- Ember.Object
- Ember.Evented
- observers
- mixins
- computed/discourseComputed

Also removes unused wizard infrastructure for warnings. It appears
that once upon on time, either the server can generate warnings,
or some client code can generate them, which requires an extra 
confirmation from the user before they can continue to the next step.

This code is not tested and appears unused and defunct. Nothing
generates such warning and the server does not serialize them.

Extracted from https://github.com/discourse/discourse/pull/23678
2023-11-23 16:35:51 +00:00
David Taylor 7c9cf666da
DEV: Replace discourse-location with Ember version (#24365) 2023-11-23 15:40:24 +00:00
chapoi 6ac5f34ad7
UX: fix icon-lock size on email-login page (#24529) 2023-11-23 15:36:20 +01:00
Jarek Radosz ec03db7199
DEV: Stringify settledState debug info (#24526)
So it actually shows up in CI (in a form other than `[Object object]`)
2023-11-23 13:29:04 +00:00
Martin Brennan e395e5e002
FIX: Use plugin category name for plugin list (#24477)
Followup to e37fb3042d

Some plugins like discourse-ai and discourse-saml do not
nicely change from kebab-case to Title Case (e.g. Ai, Saml),
and anyway this method of getting the plugin name is not
translated either.

Better to use the plugin setting category if it exists,
since that is written by a human and is translated.
2023-11-23 08:40:55 +10:00
dependabot[bot] 9f7c2d310a
Build(deps-dev): Bump the types group (#24519)
Bumps the types group in /app/assets/javascripts with 1 update: [@types/jquery](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jquery).

- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jquery)

---
updated-dependencies:
- dependency-name: "@types/jquery"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 23:38:00 +01:00
Daniel Waterworth 6aa69bdaea
DEV: Allow setting different custom field length limits by key (#24505) 2023-11-22 12:00:42 -06:00
Blake Erickson 8a45f84277
DEV: Convert approve_new_topics_unless_trust_level to groups (#24504)
* DEV: Convert approve_new_topics_unless_trust_level to groups

This change converts the `approve_new_topics_unless_trust_level` site
setting to `approve_new_topics_unless_allowed_groups`.

See: https://meta.discourse.org/t/283408

- Hides the old setting
- Adds the new site setting
- Add a deprecation warning
- Updates to use the new setting
- Adds a migration to fill in the new setting if the old setting was
  changed
- Adds an entry to the site_setting.keywords section
- Updates tests to account for the new change

After a couple of months we will remove the
`approve_new_topics_unless_trust_level` setting entirely.

Internal ref: /t/115696

* add missing translation

* Add keyword entry

* Add migration
2023-11-22 10:44:59 -07:00
David Taylor ed1dece517
DEV: Introduce history-store service (#24486)
This commit extracts the storage part of the route-scroll-manager into a dedicated service. This provides a key/value store which will reset for each navigation, and restore previous values when the user uses the back/forward buttons in their browser.

This gives us a reliable replacement for the old `DiscourseRoute.isPoppedState` function, which would not work under all situations.

Previously reverted in e6370decfd. This version has been significantly refactored, and includes an additional system spec for the issue we identified.
2023-11-22 14:25:52 +00:00
dependabot[bot] e9e70bd3b8
Build(deps-dev): Bump the types group (#24502)
Bumps the types group in /app/assets/javascripts with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [@types/ember](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember) | `4.0.9` | `4.0.10` |
| [@types/ember__array](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__array) | `4.0.8` | `4.0.9` |
| [@types/ember__component](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__component) | `4.0.20` | `4.0.21` |
| [@types/ember__controller](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__controller) | `4.0.10` | `4.0.11` |
| [@types/ember__engine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__engine) | `4.0.9` | `4.0.10` |
| [@types/ember__object](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__object) | `4.0.10` | `4.0.11` |
| [@types/ember__routing](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__routing) | `4.0.18` | `4.0.19` |
| [@types/ember__service](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ember__service) | `4.0.7` | `4.0.8` |
| [@types/jquery](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jquery) | `3.5.27` | `3.5.28` |
| [@types/qunit](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qunit) | `2.19.8` | `2.19.9` |
| [@types/rsvp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/rsvp) | `4.0.7` | `4.0.8` |


Updates `@types/ember` from 4.0.9 to 4.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember)

Updates `@types/ember__array` from 4.0.8 to 4.0.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__array)

Updates `@types/ember__component` from 4.0.20 to 4.0.21
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__component)

Updates `@types/ember__controller` from 4.0.10 to 4.0.11
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__controller)

Updates `@types/ember__engine` from 4.0.9 to 4.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__engine)

Updates `@types/ember__object` from 4.0.10 to 4.0.11
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__object)

Updates `@types/ember__routing` from 4.0.18 to 4.0.19
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Changelog](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/ember__routing/history-location.d.ts)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__routing)

Updates `@types/ember__service` from 4.0.7 to 4.0.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ember__service)

Updates `@types/jquery` from 3.5.27 to 3.5.28
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jquery)

Updates `@types/qunit` from 2.19.8 to 2.19.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qunit)

Updates `@types/rsvp` from 4.0.7 to 4.0.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/rsvp)

---
updated-dependencies:
- dependency-name: "@types/ember"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__array"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__component"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__controller"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__engine"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__object"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__routing"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/ember__service"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/jquery"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/qunit"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: "@types/rsvp"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 22:40:04 +01:00
Jordan Vidrine e9f604b567
FIX: Fix custom login input label animations (#24497) 2023-11-21 15:28:18 -06:00
Daniel Waterworth 0059e6807c
DEV: Refactor save_custom_fields methods (#24495)
Operate a key at a time, to make it clearer what's going on.

This also fixes a bug where array integer fields would get re-written
even when there wasn't a change.
2023-11-21 12:40:15 -06:00
Blake Erickson 447d9b2105
DEV: Convert approve_unless_trust_level to groups (#24357)
This change converts the `approve_unless_trust_level` site setting to
`approve_unless_allowed_groups`.

See: https://meta.discourse.org/t/283408

- Adds the new site setting
- Adds a deprecation warning
- Updates core to use the new settings.
- Adds a migration to fill in the new setting of the old setting was
  changed
- Adds an entry to the site_setting.keywords section
- Updates many tests to account for the new change

After a couple of months we will remove the `approve_unless_trust_level`
setting entirely.

Internal ref: /t/115696
2023-11-21 11:31:42 -07:00
Bianca Nenciu b19b4b4215
PERF: Cache results of Category.asyncSearch (#23975) 2023-11-21 19:28:27 +02:00
Daniel Waterworth ced21fa5c1
DEV: Deprecate array custom fields (#24492)
Array custom fields use separate rows for each value, but whenever we
update an array, we have always destroy the existing rows and create new
ones. Therefore, there's no benefit over using the json type.
2023-11-21 11:05:49 -06:00
Daniel Waterworth b3c67a78b8
FIX: Preserve custom field array order (#24491) 2023-11-21 10:55:22 -06:00
David Taylor c2d94be06e
DEV: Make loading spinner implementation consistent with slider (#24480)
In the past, our loading spinner implementation used Ember's loading substate. That meant that, when the site setting was toggled, there would be fundamental changes in the routing behavior.

This commit simplifies things so that the (non-default) loading spinner implementation is purely a styling thing, and behaves exactly the same as the spinner which appears under the 'slider' configuration when loading takes too long.

This does involve a slight UX change. Now, the entire page will be replaced by a loading spinner instead of just the relevant `{{outlet}}`. We strongly recommend sites use the new default 'slider' behavior.
2023-11-21 16:40:10 +00:00
Roman Rizzi 75e2c6b506
DEV: Pass the user who requested the summary to the strategy. (#24489)
This change allows the `discourse-ai` plugin to log the user who requested the summary in the `AiApiAuditLog`.
2023-11-21 13:27:27 -03:00
Meghna 35c66b8285
UX: properly alight close button icon on topic navigation popup (#24487) 2023-11-21 21:17:48 +05:30
chapoi 03937bd987
UX: adapt modal to new changes (#24488) 2023-11-21 16:42:54 +01:00
Jordan Vidrine e073f4e5a6
UX: Adjust topic progress wrapper border radius (#24470) 2023-11-21 09:15:20 -06:00
chapoi a12f4ebee2
UX: select kit name > flex (#24479) 2023-11-21 11:02:16 +01:00
Kris 97404741db
UX: set badge color for new category preview (#24473) 2023-11-21 19:53:41 +11:00
Natalie Tay a934804464
UX: Vertically align the svg in checkbox slider component (#24478) 2023-11-21 14:48:11 +08:00
Martin Brennan e37fb3042d
FEATURE: Admin plugin list redesign (#24363)
* Remove checkmark for official plugins
* Add author for plugin, which is By Discourse for all discourse
  and discourse-org github plugins
* Link to meta topic instead of github repo
* Add experimental flag for plugin metadata and show this as a
  badge on the plugin list if present

---------

Co-authored-by: chapoi <101828855+chapoi@users.noreply.github.com>
2023-11-21 09:37:11 +10:00
Martin Brennan 10b546d8c7
FIX: Make fullscreen code modal occupy as much of the screen as needed (#24403)
This commit makes it so the fullscreen code modal grows
to fit its content, and doesn't show horizontal scrollbars
unless the entire screen is filled by the modal already.

The code syntax highlighting and copy buttons were also
broken in fullscreen because of modal changes over time.
2023-11-21 09:36:42 +10:00
Kris a48c43dfae
FIX: render page title on tag routes (#24474) 2023-11-20 23:30:17 +00:00
Mark VanLandingham aff3d36f35
FIX: Only labels for bold & italic in composer when language doesn't match icon 2023-11-20 15:58:46 -06:00
dependabot[bot] 30d5caa9e9
Build(deps): Bump the babel group (#24472)
Bumps the babel group in /app/assets/javascripts with 1 update: [@babel/standalone](https://github.com/babel/babel/tree/HEAD/packages/babel-standalone).

- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.4/packages/babel-standalone)

---
updated-dependencies:
- dependency-name: "@babel/standalone"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 22:54:30 +01:00
David Taylor e6370decfd
Revert history-store changes (#24471)
This reverts commit 20e562bd99, 161256eef8 and a8292d25f8.

It looks like this affected cache-restoration of topic lists in some circumstances. It also looks like routing behavior may vary when toggling the loading indicator between spinner and slider.

More investigation and testing required.
2023-11-20 21:15:50 +00:00
David Taylor d641a63236
UX: Ensure loading slider does not 'reset' halfway through a transition (#24446)
For transitions to nested routes (e.g. /u/blah/activity), where each layer has an async model hook, the `loading` event will be fired twice within the same transition. This was causing the loading slider to jump backwards halfway through loading. This commit fixes things to handle nested loading events with a single animation.
2023-11-20 20:14:02 +00:00
David Taylor 20e562bd99 FIX: Use history-store service to check `isPoppedState()`
The old heuristic was 'a transition to a URL (i.e. not a named route) which was not triggered by DiscourseURL'. That logic is flawed now that we're increasingly using Ember's routing methods.
2023-11-20 20:04:40 +00:00
David Taylor 161256eef8 DEV: Update topic-list-item focus to use history-store
This avoids the need for manually reading and checking the history uuid.
2023-11-20 20:04:40 +00:00
David Taylor a8292d25f8 DEV: Introduce history-store service
This commit extracts the storage part of the route-scroll-manager into a dedicated service. This provides a key/value store which will reset for each navigation, and restore previous values when the user uses the back/forward buttons in their browser.
2023-11-20 20:04:40 +00:00
David Taylor 299989b85e
FIX: Sorting toggles on topic list (#24465)
- Correctly interpret string queryParams
- On first click of a new column, use "descending". Otherwise, toggle.
- Add system specs for behavior
2023-11-20 17:45:13 +00:00
Penar Musaraj 36606a2157
FIX: Modals on Android when keyboard is visible (#24442) 2023-11-20 11:56:06 -05:00
Penar Musaraj f8a27dcbec
FIX: Rendering a single item in a grid (#24464)
Should fix https://meta.discourse.org/t/-/285768.

Appending without cloning was causing the item to be removed from the
DOM but on a 1-item grid we skip the rest of the grid's rendering,
hence the item was never re-inserted. Cloning ensures we don't remove
the item during processing (it does get removed later on when rendering
the grid's columns).
2023-11-20 11:53:35 -05:00
Jarek Radosz 8968887e24
DEV: Fix various typos (#24461)
November 2023 edition
2023-11-20 16:49:49 +01:00
David Taylor 3408db94f0
UX: Ensure tag-info does not persist onto non-tag routes (#24462) 2023-11-20 15:43:35 +00:00
Jarek Radosz 1a43010603
DEV: Add selectText option to auto-focus modifier (#24458) 2023-11-20 14:53:20 +01:00
David Taylor c5affa9ca2
FIX: Navigating to home via route name (#24460) 2023-11-20 13:51:03 +00:00
David Taylor 5276afa9b2
DEV: Refactor bowerDependencies patch (#24437)
Moves the patch from ember-source to ember-cli so that it's easier for us to feature-flag an ember-source upgrade without fighting with patch-package. We'll be able to remove this patch once we're fully on Ember 5.x.

(ref https://github.com/discourse/discourse/pull/21720)
2023-11-20 13:28:02 +00:00
David Taylor 0a58564ddd
DEV: Make DTooltipInstance destroy synchronous (#24439)
Having async cleanup on a modifier is problematic because it means it might persist beyond the end of a test, leading to flaky 'Test is not isolated' errors.
2023-11-20 13:27:44 +00:00
David Taylor 9d8abcbdfe
DEV: Print version info to console on boot (#24444)
Discourse already includes version information in a `<meta` tag on the page. This commit surfaces it to the console on boot for easier access, and also adds the Ember version (which will be particularly useful as we start rolling out the upgrade to Ember 5)
2023-11-20 13:27:29 +00:00
David Taylor c803cc7067
DEV: Update login-required-test modal-close selector (#24438)
This was accidentally selecting the close button on `<DModalLegacy />`, which is present in the DOM with `display: none`. The close button logic would close any active modal, so the test would pass. However, it will stop passing when we remove the legacy modal system.
2023-11-20 13:27:13 +00:00
David Taylor ff3204cc91
DEV: Update auth-complete to use public router service (#24436)
`router:main` is private and has an unstable API (e.g. the `didTransition` event does not fire in Ember 5)
2023-11-20 13:27:00 +00:00
David Taylor 18461e38cf
DEV: Update custom array implementations for Ember 5 compatibility (#24435)
In the long term we should aim to modernize these places, but for now this change will make them compatible with Ember 5.x (while maintaining compatibility with Ember 3.28)
2023-11-20 13:26:46 +00:00
chapoi ba61ea17b6
UX: Revert grey search inputs (#24459)
* UX: search menu undo background

* UX: undo cmd-k bg + add focus
2023-11-20 13:45:59 +01:00
chapoi f2d3e3ed3f
UX: Fixes login/create modal (#24457)
* UX: fix > hide alt login method on mobile create acc

* UX: login modal > fix long names on login buttons

* UX: fix login overflow
2023-11-20 11:52:50 +01:00
Krzysztof Kotlarek 190a7f8c7a
UX: smaller new feature emoji (#24454)
Moved the new feature emoji to the left of the title and made it smaller.
2023-11-20 16:08:10 +11:00
Martin Brennan 146da75fd7
FEATURE: Add setting & preference for search sort default order (#24428)
This commit adds a new `search_default_sort_order` site setting,
set to "relevance" by default, that controls the default sort order
for the full page /search route.

If the user changes the order in the dropdown on that page, we remember
their preference automatically, and it takes precedence over the site
setting as a default from then on. This way people who prefer e.g.
Latest Post as their default can make it so.
2023-11-20 10:43:58 +10:00
Martin Brennan 186e415e38
DEV: Housekeeping for CleanUpUploads job (#24361)
Followup to 9db8f00b3d, we
don't need this dead code any more. Also made some minor
improvements and comments.
2023-11-20 09:50:09 +10:00
Krzysztof Kotlarek 96c5a6c9ca
FEATURE: dedicated admin section for new features (#24292)
New tab in admin panel with list of new features. Presentation was enhanced by screenshot and markdown description.

Related PR https://github.com/discourse-org/discourse-new-features-feeds/pull/23
2023-11-20 09:59:04 +11:00
Krzysztof Kotlarek 265b8bf987
UX: normal cursor on custom sidebar link icon (#24427)
Recently, we disabled the option to reorder links directly from the sidebar. Instead, user has to go to edit modal.

https://github.com/discourse/discourse/pull/24188

However, move cursor was left, which is misleading.
2023-11-20 09:13:08 +11:00
dependabot[bot] 96093a73d1
Build(deps-dev): Bump the embroider group (#24447)
Bumps the embroider group in /app/assets/javascripts with 1 update: [@embroider/core](https://github.com/embroider-build/embroider/tree/HEAD/packages/core).

- [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)

---
updated-dependencies:
- dependency-name: "@embroider/core"
  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>
2023-11-19 23:05:49 +01:00
David Taylor 04a58a6e64
PERF: Only invalidate other translations when en changes (#24443)
en is the only fallback locale we use, so there's no need to invalidate everything when other languages change. Limiting this also helps to prevent circular dependent_field relations which could cause issues in some situations.

Followup to eda79186ee
2023-11-18 12:36:25 +00:00
David Taylor 8c16482932
DEV: Rebuild JS app when files change in discourse-markdown-it (#24379)
Based on a workaround shared in https://github.com/embroider-build/embroider/issues/1635#issue-1935759857
2023-11-17 18:55:14 +00:00
Daniel Waterworth 0c712eaa3a
DEV: Don't define methods in an included block (#24433) 2023-11-17 12:22:32 -06:00
Isaac Janzen c55c354a13
FIX: Include missing search service on login modal (#24432) 2023-11-17 11:13:37 -07:00
Mark VanLandingham 1e0de818e6
DEV: Support search menu APIs in glimmer version (#24061) 2023-11-17 11:17:45 -06:00
Kris 878b9ce549
UX: improve json_schema setting styles (#24424) 2023-11-17 11:23:40 -05:00
Mark VanLandingham 7d35e406ba
DEV: Add support for limit in notifications index w/o recent param (#24423)
Currently to use a limit in the notifications index, you have to also pass recent: true as a param.

This PR:

Adds optional limit param to be used in the notifications query, regardless of the presence of recent
Raises the max limit of the response with recent present from 50 -> 60. It is super weird we have a hard-limit of 50 before with recent param, and 60 without the param.
2023-11-17 08:22:18 -06:00
Kelv a5ed0ea5d6
DEV: add deprecation notice for decorateTopicTitle API (#24429)
* DEV: add deprecation notice for decorateTopicTitle API
2023-11-17 18:36:03 +08:00