This commitreworks the validation and handling of color pickers in
the category edit page so they're simpler and more predictable. In
particular:
* It no longer attempts to "autocomplete" 3-digits hex values to the
equivalent 6-digits format -- we now accept both 3 and 6 digits formats
* It no longer disables the save button if the input color value is
invalid. The save button is always clickable, and if the admin attempts
to save with an invalid color value, the form will display errors
explaining which input is invalid and what's wrong with the color value
Internal topic: t/163062.
Reverts discourse/discourse#34639
We understood the main culprit for cookie overflows was storing
`destination_url` in the session, so we don’t really need that debug
code anymore.
We have this slightly awkward UX on the Preferences > Security page, where we offer to remove the password from an account if it has other means of signing in. You need to first click a cryptic Show button which may or may not lead you to the button you want. This button loads the associated accounts so we can evaluate whether to show the Remove password button or not.
This PR loads that data when entering the route, so that we can just show the button up-front. If removing password isn't possible, the button is disabled and shows an explainer underneath.
Before this change, impersonating a user would result in that user's
`last_seen_at` being updated. This PR fixes that for the new
impersonation feature gated behind the `experimental_impersonation` site
setting.
The old impersonation feature that logs in as the impersonated user has
a completely separate code path. If we decide to backport this change it
will be in a separate PR.
We need to initially create a MediaConvert client without an endpoint.
Rather than passing in nil for the endpoint just don't pass the endpoint
parameter at all otherwise you will get an error from aws.
Followup 9a9a0e5c1b
The "Show more" button in the sidebar categories modal was not working
when a root-level category had more than 5 subcategories (e.g., a
grandparent category with 6+ parent categories as children).
Root-level categories have `parent_category_id: undefined`, but the
`findPartialCategories` function was checking `categoriesById.has(id)`
before creating "Show more" buttons. Since `undefined` is never in the
categoriesById map, no button was created for root-level pagination.
The fix adds special handling for `undefined` parent IDs throughout the
component, treating root-level categories as a valid case for
pagination.
When authenticating to aws mediaconvert we need to also allow the use of
`iam_profile` and not just assume `s3_access_key_id` and
`s3_secret_access_key` are being used.
Added subfolder support for #discourse-id automated registration in
874c875e02 but we were missing returning the "path" in the response
from the "discourse_id_challenge".
This ensures we also return the "path" field in the challenge so it can
properly be validatated by id.discourse.com.
Internal ref - t/161934/21
### What is this change?
Scheduled problem checks without trackers weren't being run. This is
because we directly tried to look for trackers instead of going through
the checks.
When overriding, we should keep the breadcrumb and header. This change
ensures consistency with other outlets (webhooks, themes).
See also internal ticket t/161658
Now that `ServerSession` can store arbitrary data, we can move some more
data into it.
This PR moves some data related to authentication into it, as sometimes
that kind of data can be pretty big.
was showing up inconditionnaly even if you didn't have the permissions
to edit other people's comments.
This was only a UX issue as the server is doing the correct check.
The issue was the `hasPermission` method which wasn't a getter so it
wasn't checked for all the instances of the post comments but rather
once.
Also added some acceptance tests to ensure we don't regress.
Internal ref - t/163347
Following the update to v5.100.0, changes to files under `app/static/*`
are no longer reflected live in development mode.
Previously pinned in 712af920ce, but it
was undone by dependabot. This time I've removed the `^` from the
version specifiers, so it shouldn't be auto-upgraded any more.
Long term we're planning to move away from webpack, so it's not worth
the investment to find the cause of the bug.
This was a regression introduced in
f0069a4fab where clicking on an email
log's subject link did not open a modal that displays the details of the
incoming email.
In this commit, the following changes were also made:
1. Make all `admin-email-logs/*` routes inherit from the same parent
route.
Having two different parent routes doing the same thing was probably
something that was missed in the refactor previously.
Replaces deprecated usage of the Ember's native array extension `.any()`
function with `.some()` across several JavaScript files in the project.
This is a purely refactoring change intended to modernize the codebase
to follow current JavaScript standards.
**Main Changes:**
* Replaced .any() with .some() for array handling in 25 instances across
various files.
* Updated deprecation workflow to handle the any() and related
deprecations explicitly.
* Replace uses of Ember’s deprecated array extension .replace with
native .splice, using TrackedArray where reactivity is needed
(components and tests)
* Modernize TopicController computed properties to getters with
@dependentKeyCompat to preserve reactivity without Ember array
extensions
* Adjust history modal action signature to destructure the argument as
[bodyDiff]
* Add a deprecation-workflow entry for
discourse.native-array-extensions.replace to improve logging
* Add an Ember 6.6.0 patch to ensure isMutableArray excludes native
arrays, preventing false detection as MutableArray
The invite system uses the inviter's timezone to determine the
expiration time (see
0dd1ee2e09)
Now that DST change is less than 90 days away for me, the spec started
failing locally. We should update the spec to use the inviter's
timezone, just like core's own logic