* Reduce log level of image cropper converter to avoid flooding logs with expected exceptions.
* Don't run publish branch long running operation on a background thread such that UmbracoContext is available.
* Revert to background thread and use EnsureUmbracoContext to ensure we can get an IUmbracoContext in the URL providers.
* Updated tests.
* Applied suggestion from code review.
* Clarified comment.
* Be consistent in use of GetOrCreateAsync overload in exists and retrieval.
Ensure nullability of ContentCacheNode is consistent in exists and retrieval.
* Applied suggestion from code review.
* Move seeding to Umbraco application starting rather than started, ensuring an initial request is served.
* Tighten up hybrid cache exists check with locking around check and remove, and use of cancellation token.
* Tiptap toolbar config: enable removal of unregistered extensions
* Tiptap statusbar config: enable removal of unregistered extensions
* Tiptap toolbar config: Typescript tidy-up
* Tiptap toolbar sorting amend
Removed the need for the `tiptap-toolbar-alias` attribute,
we can reuse the `data-mark`.
* Tiptap extension config UI amend
If the extension doesn't have a `description`,
then add the `alias` to the title/tooltip, to give a DX hint.
* Tiptap toolbar: adds `title` to placeholder skeleton
* Added missing `forExtensions` for Style Select and Horizontal Rule toolbar extensions
* Update src/Umbraco.Web.UI.Client/src/packages/tiptap/property-editors/toolbar-configuration/property-editor-ui-tiptap-toolbar-configuration.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/Umbraco.Web.UI.Client/src/packages/tiptap/property-editors/statusbar-configuration/property-editor-ui-tiptap-statusbar-configuration.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Preview Exit: Gets the page's published URL on exit for redirect
* Preview Open Website: Uses the page's published URL
* Tweaked the published URL logic
* Code amends based on @copilot's suggestions
* Added request caching to media picker media retrieval, to improve performance in save operations.
* WIP: Update or insert in bulk when updating property data.
* Add tests verifying UpdateBatch.
* Fixed issue with UpdateBatch and SQL Server.
* Removed stopwatch.
* Fix test on SQLite (failing on SQLServer).
* Added temporary test for direct call to NPoco UpdateBatch.
* Fixed test on SQLServer.
* Add integration test verifying the same property data is persisted as before the performance refactor.
* Log expected warning in DocumentUrlService as debug.
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* Missing localiztion feature, maybe UmbLitElement?
* added localization controller to fetch localized version
* localization successful for viewActionsFor and CreateFor
* clean up button text
* Changed label for content header to display proper name
* clean up code
* Included button labels for media section
* clean code
* Relocated localization keys,
as `actions_viewActionsFor` already existed.
Also made into a function, to support a fallback label.
* Simplified the "Create for" label/localization
Removed the need for a `getCreateAriaLabel()` method.
* Removed the double-localizations (of `actions_viewActionsFor`)
as the "umb-entity-actions-bundle" component handles this now.
* imports tidy-up
* Simplified localization key condition
* switched to new localization key for other sections for new labeling
* Bumped `@umbraco/playwright-testhelpers` 16.0.55
https://github.com/umbraco/Umbraco.Playwright.Testhelpers/releases/tag/release%2F16.0.55
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Block List: adds `$index` support for UFM labels
* Block Grid: adds `$index` support for UFM labels
* Block RTE: adds `$index` support for UFM labels
Which is always zero `0`.
But has been wired up if we do implement the index order in future.
* Configure document/media items to listen for `Trashed` server-events for cache invalidation
* Fire reload event on restore destination tree/menu
* Removed "trashed" part of the code comment
* Add explicit references to Microsoft.CodeAnalysis.* packages to fix conflicts when installing Microsoft.EntityFrameworkCore.Design
This allows consumers to simply install Microsoft.EntityFrameworkCore.Design without having to manually install specific versions to deal with transitive dependency problems.
* Disable CPM for UI project to better reflect consumers
* Update src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* Missing localiztion feature, maybe UmbLitElement?
* added localization controller to fetch localized version
* localization successful for viewActionsFor and CreateFor
* clean up button text
* Changed label for content header to display proper name
* clean up code
* Included button labels for media section
* clean code
* Relocated localization keys,
as `actions_viewActionsFor` already existed.
Also made into a function, to support a fallback label.
* Simplified the "Create for" label/localization
Removed the need for a `getCreateAriaLabel()` method.
* Removed the double-localizations (of `actions_viewActionsFor`)
as the "umb-entity-actions-bundle" component handles this now.
* imports tidy-up
* Simplified localization key condition
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Add `Expiry` header to emails, set default expiry to 30 days and allow user config via `appsettings`
* Remove `IsSmtpExpirationConfigured` as it will always have a value
* Check for `emailExpiration` value
* Removed `EmailExpiration` default value as it should be opt-in
* Simplify SMTP email expiration condition
* Fix APICompat issue
* Add implementation to `NotImplementedEmailSender`
* Rename `emailExpiration` to `expires` to match the SMTP header
* Obsolete interfaces without `expires` parameter, delegate to an existing method.
* Set expiry TimeSpan values from user configurable settings with defaults
* Fix formating
* Handle breaking changes, add obsoletion messages and simplify interfaces.
* Fix default of invite expires timespan (was being parsed as 72 days not 72 hours).
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Added unique color checker to color picker.
* Added Unittest for duplicates
* optimized for codescene
* removed the bump and simplified the function
* Fixed behaviour for duplicate checks so unit test passes.
A little refactoring.
* Adds continue so invalid colors aren't checked for duplicates.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Adjust the `JsonBlockValueConverter` to handle conflicts with 'values' property (due to old data schema)
* Simplify code
* Add unit test to verify change.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Added screen readers notification support
* Making the sr-live div not visible for users
* Moved aria-live outside the repeat
---------
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
* #20035 Updated validation context example to reflect issue
* Fixes#20035 by handling returned promise
* just catch if it was rejected
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>