Commit Graph

69615 Commits

Author SHA1 Message Date
Andy Butland
da7454e987 Ensure the directory exists before creating the SQLite database (#19980)
Ensure the directory exists before creating the SQLite database.
2025-08-26 19:54:19 +02:00
Jacob Overgaard
b23906a6b6 V16: Unwarranted redirect after auth (#19935)
* fix: uses isAuthorized to check if user is logged in before terminating the observer

* feat: adds new function to redirect to stored path

* fix: always redirect to stored path even on failure

the user may have landed up on the page by mistake

* Revert "fix: always redirect to stored path even on failure"

This reverts commit 0c0cc0253c175ae8910e0cd26fc6df238374e6b2.

* fix: sends back the result

* fix: waits for the initial authorization request to come back before listening to the authorization signal (and then only listen once for it)

also check if the request was null, which means we can safely redirect the user

* docs: clarify what happens

* chore: converts the promise code to async/await pattern

* fix: tokenResponse should validate its internal object state

* feat: allows function to force a window redirect

* fix: checks if the user happens to already be authorized, because then we do not need a new code check

* Update src/Umbraco.Web.UI.Client/src/packages/core/utils/path/stored-path.function.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-26 15:48:46 +01:00
NguyenThuyLan
ae8411ed7b Tiptap RTE: Toolbar configuration sorter (#19901)
* Fix issue dragging tiptap toolbar buttons

* Moved the `.items` CSS rules to the group element

* Refactored the toolbar-group element

- Renamed "toolbar-item-click" event to "remove", to show intent
- Reordered the method names alphabetically
- Renamed `value` to `items`, to show intent
- Removed `toolbarValue`, as not required
- Added `data-mark` for menu/styleMenu buttons

* Renamed/relocated "umb-tiptap-toolbar-group-configuration" element

* Updated tag name

---------

Co-authored-by: Lan Nguyen Thuy <lnt@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
2025-08-26 13:32:34 +00:00
Jacob Overgaard
1bd9583cf1 V16: Bump @hey-api/openapi-ts to 0.81.1 (#19982)
* build(deps): bump @hey-api/openapi-ts to 0.81.1 and pin the version to ensure compatibility between backoffice and extensions

* chore: regenerate api types and replace where necessary

* feat: pin version of @hey-api/openapi-ts and regenerate umbraco-extension files

* chore: removes unused 'client' field

* build(deps-dev): bump @hey-api/openapi-ts to 0.81.1 for the login app
2025-08-26 12:40:06 +01:00
Jacob Overgaard
a0cea4bcb4 build(deps-dev): bump vite from v6 to v7 (#19974)
* build(deps-dev): bump vite from 7.1.2 to 7.1.3

* build(deps-dev): bump vite from v6 to v7
2025-08-26 12:29:22 +01:00
Jacob Overgaard
6a4c7794b8 V16: Replacing media files does not update the preview (#19912)
* fix: adds documentation to the UmbImagingRepository and makes the internal store optional, and deprecates an old method

* fix: uses new method to request thumbnails

* fix: ensures the internal data store has at least been attempted to be consumed before proceeding

* feat: adds methods to clear cached resized images

* feat: awaits the store before attempting to clear cache

* fix: attempts to clear the imaging cache when a media item entity is updated or deleted

* fix: awaits the store

* fix: set unique as property

* fix: ensures that the imaging component reloads its thumbnail if it has already been loaded once

* chore: removes duplicate check for isLoading

* chore: cleans imports

* feat: marks method as internal so that we may change it later on

* disable eslint check
2025-08-26 11:23:12 +02:00
Nhu Dinh
bd967b3f75 V16 QA Fixed the E2E failing tests (#19993)
Bumped version
2025-08-26 15:27:58 +07:00
Nhu Dinh
fb5b997090 V16 QA Added acceptance tests for removing user groups from a user (#19994)
* Added tests for removing user group from a user

* Added skip tag and related issue to the failing tests

* Bumped version
2025-08-26 15:26:16 +07:00
Jacob Overgaard
577a43eafe Merge remote-tracking branch 'origin/release/16.2' 2025-08-26 10:15:01 +02:00
Jacob Overgaard
d895032e22 build(deps): bump @umbraco-ui/uui to 1.15.0 (#19981) 2025-08-26 10:11:07 +02:00
Niels Lyngsø
d063f344bc Block workspace view validation badges (#19987)
block workspace view validation badges
2025-08-25 13:26:53 +02:00
NguyenThuyLan
2537411fc6 Fix issue console error when navigating to document type template tab (#19913)
Co-authored-by: Lan Nguyen Thuy <lnt@umbraco.dk>
2025-08-25 10:59:02 +00:00
Engiber Lozada
9f887846bc Allow open split view using the keyboard (#19927)
* Allow open split view using the keyboard

* Add localize method to the label

* Add a method to localize terms with a language parameter

* adjust localization wording

* support segments in label

* localize texts

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
2025-08-25 09:16:32 +00:00
Jacob Overgaard
5a22e50120 Revert "build(deps): bump @umbraco-ui/uui to 1.15.0"
This reverts commit 9cb5a12143.
2025-08-25 08:57:29 +02:00
Jacob Overgaard
9cb5a12143 build(deps): bump @umbraco-ui/uui to 1.15.0 2025-08-25 08:55:56 +02:00
Copilot
1085eebb84 Fix language server events to emit 'Updated' instead of 'Created' for updates (#19941)
* Initial plan

* Fix language server events to emit 'Updated' instead of 'Created' for updates

Co-authored-by: AndyButland <1993459+AndyButland@users.noreply.github.com>

* Removed the added test and instead added the assertion of the added behaviour to an existing test.

* Applied the same test and fix to the dictionary item service.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AndyButland <1993459+AndyButland@users.noreply.github.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
2025-08-22 13:55:03 +02:00
Mads Rasmussen
fee6722ecc Add timestamps to cache entries and server events (#19976) 2025-08-22 13:49:46 +02:00
Niels Lyngsø
7f2d515763 Workspace view navigation context (#19255)
* todos

* navigation context

* replace raw manifests with view context

* Array State has method

* rename to hint and much more

* Notes for later

* correcting one word

* more notes

* update JS Docs

* update tests for getHasOne

* fix context api usage

* update code for v.16

* correct test

* export UMB_WORKSPACE_VIEW_CONTEXT

* minor corrections

* rename to _hintMap

* refactor part 1

* update version number in comment

* clear method for array states

* declare hint import map

* mega refactor

* final corrections for working POC

* clean up path logic

* implement scaffold

* propagation and inheritance from view to workspace

* separate types from classes

* refactor to view context

* rename editor navigation context to editor context

* propagate removals

* clean up notes

* Hints for Content Tabs

* use const path

* handle gone parent

* added comments on something to be looked at

* hints context types

* contentTypeMergedContainers

* lint fixes

* public contentTypeMergedContainers

* refactor property structure helper class

* a few notes for Presets

* set variant ID instead of parsing it to the constructor

* do not inject root to the path

* adjust structure manager logic

* UmbPropertyTypeContainerMergedModel type update

* correct mergedContainersOfParentIdAndType

* fix lint errors

* fix missing import

* Update src/Umbraco.Web.UI.Client/src/packages/core/hint/context/hints.controller.ts

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

* Update src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-validation-to-hints.manager.ts

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

* Update src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/content-validation-to-hints.manager.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-22 13:46:01 +02:00
Andy Butland
486f1baecb Merge branch 'main' of https://github.com/umbraco/Umbraco-CMS 2025-08-22 09:29:43 +02:00
Andy Butland
28cb2c12e4 Fixed map definitions. 2025-08-22 09:29:30 +02:00
Niels Lyngsø
2bfeb74a46 fix validation context initialization (#19973) 2025-08-22 08:36:57 +02:00
Mads Rasmussen
032236318f Feature: Inflight Request Cache for Document Types and Data Types (#19956)
* extend controller base

* extend controller base

* add package for management api

* add signalr as external package

* connect to server event hub

* do no act on undefined

* add event subject

* correct alias

* export token

* add helper methods

* cache server responses

* fix import

* use helpers

* add detail request manager

* implement for document type

* implement for data type

* add method for update

* add support for create method

* align code

* Update detail-request.manager.ts

* move explicit naming

* move into folder

* collect server code in folder

* add implementation for data type request manager

* implement for document type

* only cache when we have connection to the server events

* poc inflight request cache

* clean up

* update

* add management api inflight request cache

* Update document-type-detail.server.request-manager.ts

* Update src/Umbraco.Web.UI.Client/src/packages/management-api/detail/detail-data.request-manager.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-22 08:36:13 +02:00
dependabot[bot]
7425d10bbe Bump vite-plugin-static-copy in /src/Umbraco.Web.UI.Client
Bumps [vite-plugin-static-copy](https://github.com/sapphi-red/vite-plugin-static-copy) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/sapphi-red/vite-plugin-static-copy/releases)
- [Changelog](https://github.com/sapphi-red/vite-plugin-static-copy/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sapphi-red/vite-plugin-static-copy/compare/vite-plugin-static-copy@3.1.1...vite-plugin-static-copy@3.1.2)

---
updated-dependencies:
- dependency-name: vite-plugin-static-copy
  dependency-version: 3.1.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-22 08:26:38 +02:00
Mads Rasmussen
fd5de7212e Feature: add client runtime cache for all item endpoints (#19960)
* extend controller base

* extend controller base

* add package for management api

* add signalr as external package

* connect to server event hub

* do no act on undefined

* add event subject

* correct alias

* export token

* add helper methods

* cache server responses

* fix import

* use helpers

* add detail request manager

* implement for document type

* implement for data type

* add method for update

* add support for create method

* align code

* Update detail-request.manager.ts

* move explicit naming

* move into folder

* collect server code in folder

* add implementation for data type request manager

* implement for document type

* only cache when we have connection to the server events

* update

* fix imports

* introduce item cache

* call trough get items controller

* remove log

* add unit tests for item cache

* Create cache.test.ts

* use sync method to lookup data type item

* use correct alias

* remove unused code

* data type item cache

* add client document type item cache

* add client cache for dictionary items

* add media item client cache

* add client cache for media type item

* add client cache for member and member type items

* add member group item cache

* split detail cache invalidation from request manager

* introduce item cache invalidation manager

* remove arg

* add data type item cache manager

* add memeber group item cache invalidation manager

* remove unused

* invalidate documents when document types changes

* align naming

* add method to get unique

* add dictionary item cache manager

* use server model instead of mapping

* call method

* update args

* update document type item cache invalidation

* add cache invalidation for member items

* update

* update

* update

* add item caching for languages

* add template item cache

* cache stylesheet items

* add caching for script items

* cache partial view items

* cache user items

* cache user group items

* add document blueprint item cache

* Removed readonly Signs property to re-align client models.

* Regenerate client types.

* Applied changes from code review.

* cache static file items

* add webhook item cache

* update mocks with signs data

* update mocks

* fix lint error

* fix eslint errors

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
2025-08-22 08:26:04 +02:00
Mads Rasmussen
6f51a7946b Generate new Server API Models (#19958)
* update mocks with signs data

* update mocks

* fix lint error
2025-08-21 09:23:08 +00:00
Jacob Overgaard
e60acfe437 bump version to 16.2.0-rc2 2025-08-21 10:35:37 +02:00
Andy Butland
0b1d8dd188 Fix to management API models reverting addition of read-only property (#19951)
* Removed readonly Signs property to re-align client models.

* Regenerate client types.

* Applied changes from code review.
2025-08-21 09:32:39 +02:00
Engiber Lozada
806fde4c25 Navigating the App Language Selector with the keyboard (#19887)
* dropdown keyboard accessibility issue

* Eslint update

* Improve accessibility of the app language dropdown.

* Bring back combobox list element

* Add keyboard support for arrowup and arrowdown

* use change event for value change

* Change button element for a div as trigger

* Unused import

---------

Co-authored-by: Mads Rasmussen <madsr@hey.com>
2025-08-20 16:21:43 +02:00
Andy Butland
1a65f27ac1 Handle content blueprint server events (#19949)
Handle content blueprint server events.
2025-08-20 13:26:37 +00:00
Andy Butland
43f0ff0957 Adds id to the webhook item response model (#19947)
Adds id to the webhook item response model.
2025-08-20 15:15:40 +02:00
Andy Butland
cebfb21eec Introduced sign providers for trees and implemented one for documents with schedule pending (#19806)
* Create sign provider collection and call registered providers on rendering a page of tree item view models.
Re-work tree controller constructors to provide registered providers as a collection.

* Stub implementation of sign provider for documents with a scheduled publish pending.

* Complete implementation of tree sign for pending scheduled publish.

* Added integration test for new method on IContentService.

* Added unit test for HasScheduleSignProvider.

* Apply suggestions from code review

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

* Tidied usings and clarified method header comments.

* Adding a fixed prefix to all future signs, and removing the provider property

* Adding a sign for protected tree documents.

* Adding IsProtectedSignProviderTest.cs & correcting HasScheduleSignProviderTests.cs to no longer assert the provider

* Fixing minor things in accordance with CR

* Adding collection items compatibility

* Introduced IHasSigns interface to provide more re-use across trees and collections.
Fixed updates to base content controllers (no need to introduce a new type variable).
Removed passing entities for populating tree signs (we aren't using it, so simplifies things).

* Refactoring a bit to make existing code less duplicated and fixing some constructor obsoletion

* Introducing a has pending changes sign.

* Applying changes based on CR

* Introducing tests for HasPendingChangesSignProvider.cs and stopped the use of contentService

* Introducing tests for HasPendingChangesSignProvider.cs and slight logic change

* Introduced HasCollectionSignProvider.cs and tests.

* Introducing collection signs to Media Tree & Media Collection items

* Introducing Plain Items and tests. Refactoring tests as well

* Introduced alternative CanProvideSigns() implementation on IsProtectedSignProvider.cs

* Slight refactoring to reduce bloating.

* Adding [ActivatorUtilitiesConstructor] since it threw an error otherwise

* Minor cleanup.

* Updated OpenApi.json.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: NillasKA <kramernicklas@gmail.com>
2025-08-20 10:32:23 +01:00
Andy Butland
467e55c5aa Refactoring DatabaseCacheRepository to de-duplicate code and remove warnings (#19942)
* Refactoring to de-duplicate code and remove warnings.

* Update src/Umbraco.PublishedCache.HybridCache/Persistence/DatabaseCacheRepository.cs

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-20 10:48:50 +02:00
Copilot
5068b93f44 Add comprehensive GitHub Copilot instructions for Umbraco CMS development (#19946)
* Initial plan

* Add comprehensive GitHub Copilot instructions for Umbraco CMS development

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

* Remove hardcoded versions from copilot instructions

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

* added instructions on how to test and lint the frontend

* Update .github/copilot-instructions.md

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

* update instructions on how to disable the frontend build

* Update .github/copilot-instructions.md

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

---------

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: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-20 10:44:24 +02:00
Copilot
c436c4288b Fix TipTap word count extension state sharing between multiple editors (#19943)
* Initial plan

* Fix TipTap word count extension state sharing by using configure()

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

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: iOvergaard <752371+iOvergaard@users.noreply.github.com>
2025-08-20 09:42:21 +02:00
Copilot
9f5827f0ca Fix TipTap word count extension state sharing between multiple editors (#19943)
* Initial plan

* Fix TipTap word count extension state sharing by using configure()

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

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: iOvergaard <752371+iOvergaard@users.noreply.github.com>
2025-08-20 09:42:01 +02:00
Warren Buckley
4852e49041 Update dotnet new umbraco-extension template with newer @hey-api/openapi-ts (#19825)
* Updated hey-api as the client-fetch is bundled as part of @hey-api/openapi-ts in newer versions

* Regenerated a new package-lock.json file

* Fix typescript issue

* Update templates/UmbracoExtension/Client/package.json

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

* Updated client dependencies

* Vite, TypeScript, hey-api
* Chalk & Cross-Env for the generate-client script

* Explicitly remove package-lock.json as it will be out of sync due to UMBRACO_VERSION_FROM_TEMPLATE

* Regenerated Hey API client that now ships client rather than dependancy

* Vite and Hey-API were already out of date (updated to the very latest)

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2025-08-20 08:04:17 +02:00
Nhu Dinh
1c157b2910 V16 QA Fixed failing E2E test (#19931)
Bumped version
2025-08-19 14:49:14 +07:00
Mads Rasmussen
56c49b0aeb Feature: Client Cache for Document Item Models (#19923)
* extend controller base

* extend controller base

* add package for management api

* add signalr as external package

* connect to server event hub

* do no act on undefined

* add event subject

* correct alias

* export token

* add helper methods

* cache server responses

* fix import

* use helpers

* add detail request manager

* implement for document type

* implement for data type

* add method for update

* add support for create method

* align code

* Update detail-request.manager.ts

* move explicit naming

* move into folder

* collect server code in folder

* add implementation for data type request manager

* implement for document type

* only cache when we have connection to the server events

* update

* fix imports

* introduce item cache

* call trough get items controller

* remove log

* add unit tests for item cache

* Create cache.test.ts

* use sync method to lookup data type item

* use correct alias

* remove unused code

* split detail cache invalidation from request manager

* introduce item cache invalidation manager

* remove unused

* invalidate documents when document types changes

* align naming

* add method to get unique

* use server model instead of mapping

* call method

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2025-08-19 08:42:48 +02:00
Andy Butland
a5f9bba481 Ensure appropriate create and update dates are set on updated dictionary items to allow distinguishing between created and update for server events. (#19925) 2025-08-18 11:42:36 +02:00
Mads Rasmussen
a39bc0e269 Feature: Client Cache for Document Type and Data Type Detail Models (#19904)
* extend controller base

* extend controller base

* add package for management api

* add signalr as external package

* connect to server event hub

* do no act on undefined

* add event subject

* correct alias

* export token

* add helper methods

* cache server responses

* fix import

* use helpers

* add detail request manager

* implement for document type

* implement for data type

* add method for update

* add support for create method

* align code

* Update detail-request.manager.ts

* move explicit naming

* move into folder

* collect server code in folder

* add implementation for data type request manager

* implement for document type

* only cache when we have connection to the server events

* update

* fix imports

* Create cache.test.ts

* use sync method to lookup data type item

* use correct alias
2025-08-18 09:57:52 +02:00
Jacob Overgaard
7c3f4f99de build(deps-dev): bump typescript from 5.8.3 to 5.9.2 2025-08-15 10:19:37 +02:00
Jacob Overgaard
df507a5354 test: rearrange attributes 2025-08-15 10:19:37 +02:00
Jacob Overgaard
79f6a179c1 chore(eslint): ignores .storybook files 2025-08-15 10:19:37 +02:00
Jacob Overgaard
22339309a5 build(deps-dev): lock storybook to 9.0.14 and typescript to 5.8.3 to ensure compatibility with old version of MSW (v1) 2025-08-15 10:19:37 +02:00
Dirk Seefeld
e2d7bb660c Fix and enable some unit tests which are not running locally or on pipeline builds (#19910)
* fix some test which are not running

* resolve code review comments

* Moved cleaned up tests to unit tests (as they are unit tests, not integration tests).
Removed tests marked as no longer necessary.
Update tests name to better reflect test case.

* Made explict test faster so it could run on the pipeline.

---------

Co-authored-by: Andy Butland <abutland73@gmail.com>
2025-08-15 07:23:39 +00:00
Niels Lyngsø
74c9510b56 Chore: upgrade typescript to 5.9 + other minors (#19914)
* update typescript

* update other minors

* revert storybook version

* package lock update

* revert storybook update

* chore: generate new icons

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2025-08-15 08:34:53 +02:00
Andy Butland
b77a63a929 Bumped LTS version in template to 13.10.0. 2025-08-14 09:51:01 +01:00
Andy Butland
229f1e0ce0 Fixed behaviour on database cache rebuild to update only for requested content types (#19905)
Fixed behaviour on database cache rebuild to update only for requested content types.

(cherry picked from commit b8b61cd326)
2025-08-14 09:44:13 +02:00
Andy Butland
b8b61cd326 Fixed behaviour on database cache rebuild to update only for requested content types (#19905)
Fixed behaviour on database cache rebuild to update only for requested content types.
2025-08-14 09:13:35 +02:00
Jacob Overgaard
4f84885133 set version to 16.3.0-rc 2025-08-14 07:32:45 +02:00