Commit Graph

70078 Commits

Author SHA1 Message Date
Mads Rasmussen
94692cccb7 Document/Media Recycle Bin: Show full breadcrumb (#20547)
* register structure context for recycle bin

* Update manifests.ts

* export consts

* move href construction to context + override for document and media
2025-10-20 13:43:10 +02:00
Lee Kelleher
ab4be79da0 Preview: Redirect to published URL on exit (#20556)
* 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

(cherry picked from commit d5a2f0572e)
2025-10-20 10:55:08 +01:00
Andy Butland
a808e3ab46 Added direct dependency to secure version of Microsoft.Build.Tasks.Core in Umbraco.Web.UI (#20546)
Added direct dependency to secure version of Microsoft.Build.Tasks.Core in Umbraco.Web.UI.
2025-10-20 11:54:26 +02:00
Mads Rasmussen
92dbaf7162 Document/Media: Readonly when in recycle bin (#20541)
* make document and media readonly when trashed + reload the entity

* introduce restore event + remove readonly

* handle media audit log todos

* disable content type picker when trashed

* disable template picker when trashed
2025-10-17 17:49:05 +00:00
Andy Butland
72d44decd4 Update OpenApi.json and client-side models. 2025-10-17 15:30:43 +02:00
Anders Reus
7e7d9da144 Added trashed state so when requesting content from the recycle bin via the management api it will return trashed instead of published state (#20542)
Added trashed state so when requesting content from the recycle bin via the management api, the state will be trashed instead of published.
2025-10-17 15:22:11 +02:00
Lee Kelleher
f82c0a90e7 UFM: Adds $index support to Block editors (fixes #20470) (#20488)
* 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.
2025-10-17 15:03:21 +02:00
Andy Butland
65798b5722 Templates: Retain layout from file when loading template (closes #20524) (#20529)
Retain layout from file when loading template.
2025-10-17 10:46:54 +02:00
Jacob Overgaard
7d0adc4755 build(deps): bumps @umbraco-ui/uui from 1.16.0-rc.0 to 1.16.0 2025-10-17 10:36:38 +02:00
Andreas Zerbst
11bf60a67c E2E: Updated exisiting acceptance tests to match updates from front end (#20525)
* Updated tests

* E2E: Updated acceptance tests to match changes (#20493)

* Updated tests to match changes

* More updates

* Bumped version

* Reverted change
2025-10-17 09:37:44 +02:00
Mads Rasmussen
8beb7f2acc Collection menu item extension point (#20506)
* add extension option for collection menu item

* Add collection menu module export

* remove unused css

* register user collection menu item

* register user collection menu

* use collection modal for user picker

* Delete user-picker-modal.element.ts

* Update manifests.ts

* explicit exports to avoid name collision

* hack to avoid circular dependency

* fix lint errors

* fix missing const export

* Update collection-menu-item.element.ts
2025-10-16 12:57:15 +01:00
Kenn Jacobsen
498754e170 Explicitly flush isolated caches by key for content updates (#20519)
* Explicitly flush isolated caches by key for content updates

* Apply suggestions from code review

---------

Co-authored-by: Andy Butland <abutland73@gmail.com>
2025-10-16 10:56:32 +00:00
Andy Butland
3830d75413 Obsolete GetAtRoot on DocumentCache (#20514)
Obsolete GetAtRoot on DocumentCache.
2025-10-16 08:23:20 +02:00
Andy Butland
f1f2f702c0 Restored and obsoleted removed extension method AsEnumerableOfOne. 2025-10-15 20:22:58 +02:00
Andy Butland
2503cabbce Dependencies: Update to .NET 10 RC 2 (#20508)
* Update to .NET 10 RC 2.

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-15 20:12:11 +02:00
Niels Lyngsø
7e8a7f0b40 Cherry picked 4c05a114c5 2025-10-15 14:11:25 +02:00
Niels Lyngsø
126c8a56d5 variant selector: hint badge should render in append slotfor the variant selector (#20504)
ensure variant-selector badge gets rendered at the right spot
2025-10-15 09:29:49 +00:00
Andy Butland
99ea8b9087 Back Office: Fixes link to workspace root from breadcrumb trail (closes: #20455) (#20459)
Fixes link to workspace root from breadcrumb trail.
2025-10-15 10:12:58 +02:00
Andy Butland
86dda9f9b3 Content Types: Prevent creation of document type with an alias that case insensitively matches an existing alias (closes #20467) (#20471)
Prevent creation of document type with an alias that case insensitively matches an existing alias.
2025-10-15 09:49:32 +02:00
Nikolaj Geisle
9c082c613e bump version to beta2 2025-10-15 08:55:15 +02:00
Copilot
5af9df1871 UFM: Add camelCase aliases for UFM filters to support UFMJS expressions (closes #20500) (#20501)
* Initial plan

* Add camelCase aliases for UFM filters with hyphens (stripHtml, titleCase, wordLimit)

Co-authored-by: iOvergaard <752371+iOvergaard@users.noreply.github.com>

* Add manifest tests for camelCase filter aliases

Co-authored-by: iOvergaard <752371+iOvergaard@users.noreply.github.com>

* discards tests that are not useful

* test: updates imports for stripHtml api

* Exports `UmbUfmStripHtmlFilterApi` class

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: iOvergaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: leekelleher <leekelleher@gmail.com>
(cherry picked from commit a19b9fb5fe)
2025-10-14 17:42:22 +01:00
Mads Rasmussen
12297ea617 Picker data source: Add support for pickable filters (#20491)
* add pickable to vs code dictionary

* set up types for pickable filters in data sources

* pass search pickable filter to search result

* apply filter config in document data source example

* add pickable filters to custom tree example

* Update input-entity-data.context.ts

* remove unused

* Update types.ts
2025-10-14 17:11:34 +01:00
Anders Reus
3892670d92 Added culture to the ApiContentRouteBuilder to include variant languages. (#20366) (#20499)
Added culture to the ApiContentRouteBuilder to include variant languages.
2025-10-14 16:14:02 +02:00
Mads Rasmussen
d9de69c40f fix import in storybook of moved file 2025-10-14 12:27:21 +02:00
Sven Geusens
49f3fc9993 Delivery API: Fix not reindexing branch descendants when branch root already published but unchanged (closes #20370) (#20462)
* Fix deliveryApi not reindexing branch descendants when branch root already published and unchanged

* Commit update and name improvement
2025-10-14 12:18:26 +02:00
Andreas Zerbst
7f1cdf8ef5 Auhorization: Cherrypicked integration tests from V15 (#20492)
* V15 QA Added the authorization integration tests (#18419)

* Added authorization integration tests

* Removed unnecessary tests and update tests for preview controller

* Updated to use the newest changes from v15/dev and added an override for the AuthenticateClientAsync to use the userGroupKey

* Updated CompatibilitySuppressions to include changes from integration tests

* Updated pipelines

* Skips managementApi tests

* Only run necessary tests

* Added new schema per fixture to reduce test setup time

* Fixed failing tests

* Updated test setup

* Updated test

* Added suppression

* Fixed failing tests

* Updated addOnTeardown methods to protected

* Added method for clearing the host

* Added teardown

* Updated model usage

* Added a lot of cleanup for memory leak issues when running tests

* Added CompatibilitySuppressions.xml

* Updated tests

* Cleaned up

* Adjusted base classes

* Updated pipeline

* Updated CompatibilitySuppressions.xml

* Updated test logging

* Fixed reponse

* Updated condition to skip tests

* Updated tests, not done

* Reworked test to expect correct responses with correct setup

* Updated tests

* More updates to tests

* Updated tests

* Cleaned up tests

* Updated setup

* Cleaned up tests to match setup

* Cleaned up setup

* Removed suppression

* Fixed tests

* Move order of checks

* Fix naming

* Formatting

* Dispose of host

* Keep track of if we're disposed

* Compat suppression

* Dont dispose

* Fix failing tests

* removed unused virtual

* Updated CompatibilitySuppressions.xml

---------

Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
# Conflicts:
#	tests/Umbraco.Tests.Integration/CompatibilitySuppressions.xml
#	tests/Umbraco.Tests.Integration/ManagementApi/ManagementApiTest.cs
#	tests/Umbraco.Tests.Integration/ManagementApi/Policies/AllCultureControllerTests.cs
#	tests/Umbraco.Tests.Integration/ManagementApi/Policies/CreateDocumentTests.cs
#	tests/Umbraco.Tests.Integration/ManagementApi/Policies/UpdateDocumentTests.cs
#	tests/Umbraco.Tests.Integration/ManagementApi/Preview/EndPreviewTests.cs
#	tests/Umbraco.Tests.Integration/ManagementApi/Preview/EnterPreviewTests.cs
#	tests/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs

* Updated test

* Updates

* Removed unnessecary test

---------

Co-authored-by: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2025-10-14 10:04:10 +00:00
Andy Butland
37b239b8ca Performance: Reduce number of database calls in save and publish operations (#20485)
* 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.

(cherry picked from commit 12adfd52bd)
2025-10-14 11:29:24 +02:00
Laura Neto
ea44850804 Dependencies: Remove Microsoft.CodeAnalysis.CSharp dependency from Umbraco.Infrastructure (#20481)
* Remove Microsoft.CodeAnalysis.CSharp from Infrastructure project

This was only needed for runtime compilation and thus is no longer needed in Infrastructure.
It also caused dependency problems with EF Core Design in previous versions.

* Disable CPM for UI project to better reflect consumers

This will ensure that we face any potential dependency issues consumers are also likely to run into.

* Add `Microsoft.CodeAnalysis.CSharp` reference to `Umbraco.Cms.DevelopmentMode.Backoffice`
2025-10-14 09:49:46 +02:00
Mads Rasmussen
8be2d77006 Only register the Entity Data Picker when we have some registered Data Sources (#20484)
Add conditional registration for Entity Data Picker

Introduces an entry point for the Entity Data Picker property editor that registers its manifests only if picker data sources are present, preventing an unusable UI from appearing by default.
2025-10-13 20:56:07 +02:00
Niels Lyngsø
a6eb2a1527 Modals: Make Create Actions open a Dialogs (#20489)
* generic create dialog

* document create dialog

* media create dialog

* member create

* partial view
2025-10-13 20:53:29 +02:00
Nicklas Kramer
11fcfba091 News dashboard: API and rendering of news stories on dashboard (#20416)
* Adding controller

* Lower case route to match other endpoints

* Adding service and typed output

* Renaming to NewsDashboard

* Moving more stuff to service

* Removing unused code

* Some refactoring in accordance with better architecture

* Created repository and mock data source for the news dashboard also display some data in the UI.

* Minor refactoring: naming, aligning with existing controller patterns.

* Update OpenApi.json.

* Update typed client sdk and types.

* Provide language to API endpoint, just in case we want to localize news in the future.

* Obsoleted configuration

* Moved mock data to mocks folder and updated repository to use the actual response model and service from the Api

* Prepared news repository with server data source.

* Rendered news items according to required group structure.
Added TODOs for remaining tasks.

* Fixed FE build issues.

* Update src/Umbraco.Core/Constants-Configuration.cs

* Fixed grid spacing, sanitize code and make the styles closer to the v13.

* Added container query and padding to the card body.

* Fix padding

* Fixed title according to priority.

* Relocated/renamed the news server data-source file

* Simplified the news repo/data-source classes

by extending `UmbControllerBase`, the host constructor is handled for us.

* Added `types.ts` export type files

* Refactored interface name + typing

* Added `uui-loader` component

* Tweaked styles, added box-shadow to cards

Added flexbox gap to the card body.

* Sorted import order

---------

Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: engjlr <enl@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
2025-10-13 20:27:07 +02:00
Mads Rasmussen
d6b9eb61b2 Entity data picker: Hide tree root (#20473)
Change tree root visibility in entity data picker
2025-10-13 06:44:11 +00:00
Bjarne Fyrstenborg
0367e56db6 UX: Center align log type in media history view (#20469)
Center align log type in media
2025-10-13 06:35:24 +02:00
Mads Rasmussen
2ce6c8f8c8 Make data source field mandatory, when supported, in data type details (#20463)
Make data source field mandatory in data type details
2025-10-12 17:52:35 +00:00
Andy Butland
fd1c9f1673 Refactoring: Fixed spelling mistake in method name (#20460)
* Fixed spelling mistake in method name.

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-10 15:06:49 +02:00
Mads Rasmussen
c68a26cb5f Input Entity Data Picker: wire up client validation (#20456)
trigger client validation if the amount configuration is not met
2025-10-10 14:47:39 +02:00
Engiber Lozada
c037323910 PropertyType workspace: layout & labeling adjustments (#20131)
* Property workspace update

* Fixed error with updating the properties

* Unused variable

* Added data-mark to description textarea

* make select 100% width

* tiny appearance-option style adjustments

* Make placeholder property inside the input-with-alias optional

* Moving variations and member type option to their own boxes

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
2025-10-10 12:37:26 +02:00
Mads Rasmussen
f60436270f Property Editor Data Source (#20375)
* Add property editor data source extension types

Introduces types and extension interfaces for property editor data sources, including manifest and API definitions. Updates the main property-editor types export to include the new data source types.

* add test data sources

* wip collection and item repos

* export consts

* fix picker modal token

* make global components file

* render picker in data type

* wire up repositories

* append editor data source alias to data type detail model

* fix global manifest declaration

* make optional

* fix types

* register collection item picker modal element + wip collection menu extension

* register collection menu for property editor data source

* wire up modal tokens

* fix circular

* register as global element

* register default kind for collection menu

* wip fleshing out collection menu

* pass props + listen for selection events

* fix imports

* accept icon in manifest

* extend base type

* use correct data to calculate length

* export types

* add load more button

* wire up load more

* remove debugger

* add search for property editor data sources

* only select one data source

* rename file

* add entity type

* add manifest for search result item

* fix imports/exports

* fix manifest imports

* wire up data source value with workspace

* remove debugger

* wip property editor + input

* move data-source files

* more specific extension types

* remove copy from file name

* allow settings in manifests

* export types

* merge settings

* fix ui alias

* remerge if data source is removed

* Update data-type-details-workspace-view.element.ts

* reset data

* Update data-type-workspace.context.ts

* update merging + move mapping to data source

* Fix mutation of data.values in data type detail mapping

Refactored #mapServerResponseModelToEntityDetailModel to avoid mutating the original data.values array when removing the editorDataSourceAlias. This ensures the original server response remains unchanged and improves data integrity.

* add  forDataSourceTypes to manifest

* update interfaces

* test data source implementations

* only show data source select if property editor supports it

* remove custom context

* remove unused token

* use generic collection item picker modal

* remove custom modal

* export types

* render data source alias on data type into view

* pass data source alias

* allow data source alias

* allow data source alias

* pass data source alias

* add prop for data source alias

* Add property editor data source alias support

* Add editor data source alias to property context

Introduces support for storing and retrieving the editor data source alias in UmbPropertyContext. Updates UmbPropertyElement to use the context for managing the data source alias and ensures the alias is set on the property editor element.

* pass data source alias to input

* pass data source alias to context

* update js docs

* split types from token file

* fix import

* update error message

* add more test sources

* Refactor repository manager initialization logic

Changed the initialization flow in UmbRepositoryItemsManager to support optional repository alias and deferred repository setup. Added setItemRepository and getItemRepository methods for explicit repository management, and moved repository initialization logic to a dedicated private method.

* remove support for passing a filter

* wip wire up input with modal

* add constant

* test user data source

* add todo

* require entityType on webhook items

* add entityType

* use id as unique

* add default icon

* wire up search

* add search to media

* pass config

* support configuration in data sources + temp test cases

* remove temp text

* change to one generic extension type with a data type sub type

* search in label

* pass filter args to collection item picker

* clean up

* aligning interfaces

* iterate status instead of item

* simplify examples

* add types for config

* move to examples

* add custom data examples for collection and tree

* update imports

* add manifests for collection and tree custom data examples

* add type guards

* add type guards

* Update types.ts

* add return type

* remove debuggers

* make observables optional

* add null checks for observables

* use statuses

* extend picker input context

* map config

* use data to set value when there is no observable

* store as string array

* Add getDefaultApiConstructor to tree item element

* make it optional

* fix search types

* add fallback icon and name

* remove unused imports

* pass stored value to input

* rename file

* remove unused config value

* make api observable

* add search to custom collection example

* render fallback item

* fix import order

* add fallback render to tree item element

* Update tree-item.element.ts

* Revert "Update tree-item.element.ts"

This reverts commit 3458877de91359f8b7a242a7936ae2bd7641ae1f.

* Revert "add fallback render to tree item element"

This reverts commit b30219d3ed66c6b0f8a6ca010adcc137fffcd00c.

* move from data type to property editor

* align file names

* introduce picker-property-editor module

* remove custom types

* use basic types

* use tree item type

* Update input-entity-data.context.ts

* update types

* add interface for item model

* force unique on collection item model

* require an item model in picker context

* allow icon to be null

* extend item model from user group item model

* add entity type to mapped data

* Update user-group-item.server.data-source.ts

* align static file models

* correct types for user picker

* extend item model

* fix types

* more type fixing

* align models

* align models

* fix types

* add utils for fallback name and icon

* add todo

* use fallback name and icon functions

* Update default-picker-search-result-item.element.ts

* add fallback tree item if none is registered

* add search to example

* extract data source config and pass to api

* align naming

* temp type cast

* move search module into core

* fix illegal imports

* add missing const exports

* make property-editor-data-source module

* register property editor data source ref item + render description

* remove console log

* remove indention

* simplify data source type

* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/entity-data-picker/input/input-entity-data.element.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Umbraco.Web.UI.Client/src/packages/core/property-editor-data-source/input/input-property-editor-data-source.element.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Umbraco.Web.UI.Client/src/packages/core/collection/menu/default/default-collection-menu.element.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* add todo

* hide add button when readonly

* check correct amount config

* Update input-entity-data.element.ts

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-10 09:46:48 +00:00
Bjarne Fyrstenborg
9b0b60e6cb Icon Picker: Fit icons scroll container to modal height (#20438)
* Fill height and align icons to top

* Auto scrollbar instead

* Auto height of grid rows

* Enforce scroll again
2025-10-10 10:33:21 +02:00
Laura Neto
f539a27a19 Migrations: Adjust the JsonBlockValueConverter to handle conflicts with 'values' property (#20429)
* 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>
2025-10-09 10:17:20 +02:00
Nikolaj Geisle
832bd7eb61 bump version to beta 2025-10-09 08:58:24 +02:00
Nikolaj Geisle
fb91ade164 Merge branch 'main' into v17/dev 2025-10-08 19:18:04 +02:00
Niels Lyngsø
9a18dd547d Content Type Designer: Fix moving a group to an inherited tab (#20138)
move group to inherited tab
2025-10-08 16:49:48 +00:00
Niels Lyngsø
7ecc6ece7e Block Workspace: dynamic headline & browser title (#20424)
* get content type name method

* use local virtual render for the workspace headline and browser title
2025-10-08 15:40:42 +00:00
Engiber Lozada
a676dc4bad Announce newest notification using live region (#19979)
* 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>
2025-10-08 15:27:56 +00:00
Niels Lyngsø
38a9a79c75 Merge branch 'main' into v17/dev 2025-10-08 17:23:48 +02:00
Bjarne Fyrstenborg
9fe8b2162b Adjust styling for inherited content type property (#20261)
* Adjust styling for inherited content type property

* Slight style adjustments inherited property

---------

Co-authored-by: leekelleher <leekelleher@gmail.com>
2025-10-08 15:22:09 +00:00
Mads Rasmussen
429f8b0bed Permissions: Added User fallback permission condition (closes #20097) (#20224)
* add user fallback permission condition

* add example
2025-10-08 16:17:35 +01:00
Niels Lyngsø
1a462bcc7d Content Workspace: Invariant Breadcrumbs does not work (fix #20423) (#20428)
fix navigating to an invariant document via breadcrumb
2025-10-08 15:09:15 +00:00
Niels Lyngsø
924b1446e3 Merge branch 'main' into v17/dev 2025-10-08 16:37:50 +02:00