* Property level versioning for the Delivery API using a custom System.Text.Json resolver
* Adding a converter base class that custom converters can implement
* Revert resolver
* Use IHttpContextAccessor for the API version
* Fix attribute and checks in ShouldIncludeProperty
* Fix enumeration
* Fix comment
* Unit tests
* Refactoring
* Remove Assert.Multiple where no needed
* Validate email for member models
* Add null check or more test cases
* return invalid when not a valid email
* Cleanup
* remove private method in favor of extension
* Remove non used, using statement
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
(cherry picked from commit 6b0f8e7b7c)
* Validate email for member models
* Add null check or more test cases
* return invalid when not a valid email
* Cleanup
* remove private method in favor of extension
* Remove non used, using statement
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* feat: conditionally install and build the 'login' and 'backoffice' targets depending on source files
* feat: remove the preconditions target, because we are now compiling a file list to check if we need to build
* feat: remove the 'clean' targets, because the project will be cleaned if any of the compiled file lists do not exist
* feat: remove the preserve.* files as they are no longer needed
* Enable default content items again
* Remove package.json from restore target inputs
* Include generated files as static assets after build
* Clean up project files
* Exclude CS0618 warning as error and fix CA2264
* Exclude CS0612 warning as error
* Suppress removal of test fixture
* Use separate property/item groups for backoffice and login project
---------
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Implement IEmailSenderClient interface and implementation
In an effort to support oauth 2 and other schemes, we extract a emailsenderclient interface, allowing to replace default smtp client with one that fits the usecase, without having to implement all of Umbracos logic that builds the mimemessage
* fix test
* Documentation
* EmailMessageExtensions public, use EmailMessage in interface and impl.
* move mimemessage into implementation
* revert EmailMessageExtensions back to internal
* use StaticServiceProvider to avoid breaking change
* Fix test after changing constructor
* revert constructor change and add new constructor an obsoletes
* Moved a paranthesis so it will build in release-mode
(cherry picked from commit bff321e6f5)
* Add GetUdi() extension methods for IUser and IUserGroup
* Add GetUdi() extension methods for IRelation
* Move GetUdi() extension methods for Script and Stylesheet to interface types
* Register relation, user and user-group as known UDI types
* Obsolete UdiParserServiceConnectors
* Use IScript and IStylesheet types in tests
* Fix UdiTests after obsoleting UdiParserServiceConnectors
* Adding contentType to navigation node
* Loading contentType from DB
* Considering contentTypeKey when adding a navigation node & fixing references
* Using IContentTypeBaseService to load content types
* Adding generics to ContentNavigationServiceBase and fixing references
* Adding TryGetChildrenKeysOfType and implementation
* Refactoring test data
* Adding unit tests for TryGetChildrenKeysOfType
* Update CreateContentCreateModel in tests to receive content type
* Fix references
* Cleanup
* Adding integration tests for TryGetChildrenKeysOfType
* Cleanup
* Cleanup
* Descendants of type implementation
* Descendants of type tests
* Interface updates
* Ancestors of type implementation and tests
* Siblings of type implementation and tests
* Cleanup
* Integration tests
* Adding root of type implementation and tests
* Fix Ancestors extension methods
* Fix descendants extension methods
* Fix children extension methods
* Fix siblings extension methods
* Add helper methods
* Fix a bug
* Fixed unit tests by setting up mocks
* Adding missing extension method
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Replace obsolete UserGroup Alias consts to key equivalent in tests
* Update use of usergroup alias consts to key equivalent in IsSystemgroup extension method
* Obsolete (internally) unused helper function which purpose doesn't even seem true
* Prepped EmbedProviders for proper removal of non async methods and unneeded proxy methods
* Remove obsoleted UmbracoPath and updated internal references
* Corrected mistake and updated unittets
* Update usergroup tests that use aliases for "system" groups
* Replace more uses of globalsettings.UmbracoPath
* Remove GetDateType by key non async
* Cleanup some usages of hostingEnvironment.MapPathContentRoot
* More easy obsoletion cleanup
* Small Typeload cleanup
* More obsolete removal
* Deploy obsoletion cleanup
* Remove obsolete methods from OEmbedProviderBase.cs
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
* Move DocumentCacheService
* Add clear all documentws from memory cache
* Fix RedirectTracker
* Implement refresh node/branch/all/delete
* Only update databasecache in RefreshContentAsync
* Fix tests
* Skip blueprints in cache
* Clear caches when contenttype is updated
* Clear cache on data type update
* Refresh media
* Only update memory cache from refreshers
* Fix imports
* Add named options
* Use cache entry settings in media
* Obsolete nucache settings
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Added new notification to hook in after the premigrations and use this to init different services.
* Force MaxDegreeOfParallelism to 1, while investigating scopes
* Tried some more workarounds
* Updated scopes and changed parallel to non parallel to ensure migration works
* Missing scope
* Make it parallel again - The secret is, the SuppressFlow needs to be when you create the task, but not on the await!.
* Fixed issue when DEBUG_SCOPES is not added to tests.
* Remove test exception
* Try build on ubuntu again, even that we know it can be stuck. Just a test to see if all tests pass
* Updated comment
---------
Co-authored-by: kjac <kja@umbraco.dk>
* fix: anchors and query strings do not work
Since the change from UDIs to localLinks in href, the pattern matched a little too much in the href section completely ignoring any "extras" such as querystrings and anchors after the locallink, which meant that the locallink did not get replaced at all if they were present. This is fixed by limiting the regexp a bit.
* fix: legacy links do not follow the same regexp as new links
Because we are no longer matching the whole `href` attribute but only some of its contents, we need to fix up the old pattern. It has been extended with matching groups that follow the same pattern as the new links.
* feat: allow a-tags to be multiline
example:
```html
<a
type="document"
href="/{localLink:<GUID>}">
Test
</a>
```
* fix: split regex into two parts: first a tokenizer for a-tags and then a type-finder
* fix: ensure only "document" and "media" are matching to speed up the pattern
* feat: allow a-tags to be multiline
(cherry picked from commit 35e8f2e460)
* fix: anchors and query strings do not work
Since the change from UDIs to localLinks in href, the pattern matched a little too much in the href section completely ignoring any "extras" such as querystrings and anchors after the locallink, which meant that the locallink did not get replaced at all if they were present. This is fixed by limiting the regexp a bit.
* fix: legacy links do not follow the same regexp as new links
Because we are no longer matching the whole `href` attribute but only some of its contents, we need to fix up the old pattern. It has been extended with matching groups that follow the same pattern as the new links.
* feat: allow a-tags to be multiline
example:
```html
<a
type="document"
href="/{localLink:<GUID>}">
Test
</a>
```
* fix: split regex into two parts: first a tokenizer for a-tags and then a type-finder
* fix: ensure only "document" and "media" are matching to speed up the pattern
* feat: allow a-tags to be multiline
* bump version to 15.1.0
* V15 Fixed the failing smoke tests in the pipeline v15 (#17158)
* Fixed the failing tests of Member Group due to UI changes
* Fixed the failing tests of Member due to UI changes
* Fixed the failing tests of User due to UI changes
* Fixed failing tests for Dictionary and Document Type
* Updated tests due to test helper changes
* Bumped version
* Updated assert steps due to the response changes
* Updated tests due to api helper changes
* Updated tests due to UI changes
* Fixed tests for delete partial view
* Fixed tests
* Added more waits
* Updated assert steps
* Fixed failing tests for Block Grid and Media
* Added more waits
* Added skip tests
* Removed waits time
* Updated assertion steps for User
* Added todo
* Updated tests due to api helper changes
* Bumped version
* Added skip tests
* Fetch sortOrder for each navigationNode
* Update NavigationNode to have sortOrder and change Parent and Children props to keys instead of NavigationNodes
* Consider sortOrder when building the navigation structures
* Renaming tests
* Adding tests for items being the last in structure when added, moved, etc.
* Updating names
* Cleanup
* Updating cache refreshers with changes due to sorting
* Refactoring due to sorting changes and resolving key to NavigationNode
* Removing sortOrder params from test as they are calculated automatically
* Adding content and media integration tests to test sorting functionality
* Adding sortOrder param for special case when adding new nodes
* Adding new UpdateSortOrder to INavigationManagementService
* Revert "V15 Fixed the failing smoke tests in the pipeline v15 (#17158)"
This reverts commit 31399c3b15.
* Revert "bump version to 15.1.0"
This reverts commit 5e4d15be
* Fix revert
* Add sort order when creating media
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Nhu Dinh <150406148+nhudinh0309@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Updated tests
* Added tests
* Use init for ContentSourceDto
* Startup of setup
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Created interfaces for the builder with the necessary properties
* Created builder for PropertyTypeContainer
* Created builder for PropertyTypeEditing
* Created builder for PropertyTypeValidationEditing
* Made adjustments to the builder
* Updated name of usage
* Commented out to test
* Cleaned up builders
* Updated integration test setup
* Moved tests
* Added interface
* Add IDocumentSeedKeyProvider and migrate existing logic to seed key provider
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Created helper to Convert a IContentType to ContentTypeUpdateModel
* Added interfaces
* Added builder
* Cleaned up builders and added fixes
* Added tests for PublishedContentTypeCache
* Applied changes in builder
* Add BreadthFirstKeyProvider
* Use ISet for seedkey providers
* Implement GetContentSource by key
* Seed the cache with keys provided by seed key providers
* Builder updates
* Test setup updates
* Updated tests
* Dont require contenttype keys for seeding
* Fix cache settings
* Don't inject cache settings into SeedingNotificationHandler
* Fix tests
* Use enlistment for setting updated cache item
* Pin seeded nodes for longer
* Fix BreadthFirstKeyProvider
* Fix ContentTypeSeedKeyProvider
* Fix tests
* Only seed published documents
* Only cache published if contentCacheNode is not draft
* Fix incorrect templateId
* Removed unnecessary setup
* initialized value
* Fixed template test
* Removed test
* Updated tests
* Removed code that was not used
* Removed unused cacheSettings
* Re-organize to support media cache seeding
* Add MediaBreadthFirstKeyProvider
* Seed media
* Don't use IdKeyMap when removing content from cache
* Don't clear IdKeyMap in DocumentCacheService
* Add unit tests
* Don't use IdKeyMap when deleting media
* Add default value to timespan
* Use cancellation tokens when doing loop
* Fixed Models Builder error
* Builder testing
* Media test
* Created builders
* Updated method from getByKey to getById to maintain structure
* Updated test setup
* Moved tests
* Cleaned up builders
* Added helper
* Added space
* Updated tests
* Cleaned setup
* Added tests for MediaTypes
* Uncommented tests
* Added builder extensions
* Added interfaces for builder methods
* Updated to use interface pattern
* Updated name
* Used builder
* Cleaned up test
* Added media scope tests
* Removed PropertyTypeModelBuilder
* moved PropertyTypeModelBuilder to PropertyTypeEditingBuilder
* Removed constructor
* Removed duplicate
* Fixed naming
* Reverted
* Removed space
* Added todos
* Removed only run on linux
* Commet out DocumentHybridCacheTemplateTest again
This is fixed in the release branch
* Update media when media type is updated
* Remove todo the tests pass now
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add cache refresher
* make public as needed for serialization
* Use content type cache to get content type out
* Refactor to use ContentCacheNode model, that goes in the memory cache
* Remove content node kit as its not needed
* Implement tests for ensuring caching
* Implement better asserts
* Implement published property
* Refactor to use mapping
* Rename to document tests
* Update to test properties
* Create more tests
* Refactor mock tests into own file
* Update property test
* Fix published version of content
* Change default cache level to elements
* Refactor to always have draft
* Refactor to not use PublishedModelFactory
* Added tests
* Added and updated tests
* Fixed tests
* Don't return empty object with id
* More tests
* Added key
* Another key
* Refactor CacheService to be responsible for using the hybrid cache
* Use notification handler to remove deleted content from cache
* Add more tests for missing functions
* Implement missing methods
* Remove HasContent as it pertains to routing
* Fik up test
* formatting
* refactor variable names
* Implement variant tests
* Map all the published content properties
* Get item out of cache first, to assert updated
* Implement member cache
* Add member test
* Implement media cache
* Implement property tests for media tests
* Refactor tests to use extension method
* Add more media tests
* Refactor properties to no longer have element caching
* Don't use property cache level
* Start implementing seeding
* Only seed when main
* Add Immutable for performance
* Implement permanent seeding of content
* Implement cache settings
* Implement tests for seeding
* Update package version
* start refactoring nurepo
* Refactor so draft & published nodes are cached individually
* Refactor RefreshContent to take node instead of IContent
* Refactor media to also use cache nodes
* Remove member from repo as it isn't cached
* Refactor media to not include preview, as media has no draft
* create new benchmark project
* POC Integration benchmarks with custom api controllers
* Start implementing content picker tests
* Implement domain cache
* Rework content cache to implement interface
* Start implementing elements cache
* Implement published snapshot service
* Publish snapshot tests
* Use snapshot for elements cache
* Create test proving we don't clear cache when updating content picker
* Clear entire elements cache
* Remove properties from element cache, when content gets updated.
* Rename methods to async
* Refactor to use old cache interfaces instead of new ones
* Remove snapshot, as it is no longer needed
* Fix tests building
* Refactor domaincache to not have snapshots
* Delete benchmarks
* Delete benchmarks
* Add HybridCacheProject to Umbraco
* Add comment to route value transformer
* Implement is draft
* remove snapshot from property
* V15 updated the hybrid caching integration tests to use ContentEditingService (#16947)
* Added builder extension withParentKey
* Created builder with ContentEditingService
* Added usage of the ContentEditingService to SETUP
* Started using ContentEditingService builder in tests
* Updated builder extensions
* Fixed builder
* Clean up
* Clean up, not done
* Added Ids
* Remove entries from cache on delete
* Fix up seeding logic
* Don't register hybrid cache twice
* Change seeded entry options
* Update hybrid cache package
* Fix up published property to work with delivery api again
* Fix dependency injection to work with tests
* Fix naming
* Dont make caches nullable
* Make content node sealed
* Remove path and other unused from content node
* Remove hacky 2 phase ctor
* Refactor to actually set content templates
* Remove umbraco context
* Remove "HasBy" methods
* rename property data
* Delete obsolete legacy stuff
* Add todo for making expiration configurable
* Add todo in UmbracoContext
* Add clarifying comment in content factory
* Remove xml stuff from published property
* Fix according to review
* Make content type cache injectible
* Make content type cache injectible
* Rename to database cache repository
* Rename to document cache
* Add TODO
* Refactor to async
* Rename to async
* Make everything async
* Remove duplicate line from json schema
* Move Hybrid cache project
* Remove leftover file
* Refactor to use keys
* Refactor published content to no longer have content data, as it is on the node itself
* Refactor to member to use proper content node ctor
* Move tests to own folder
* Add immutable objects to property and content data for performance
* Make property data public
* Fix member caching to be singleton
* Obsolete GetContentType
* Remove todo
* Fix naming
* Fix lots of exposed errors due to scope test
* Add final scope tests
* Rename to document cache service
* Rename test files
* Create new doc type tests
* Add ignore to tests
* Start implementing refresh for content type save
* Clear contenttype cache when contenttype is updated
* Fix test
Teh contenttype is not upated unless the property is dirty
* Updated tests
* Added tests
* Use init for ContentSourceDto
* Startup of setup
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Created interfaces for the builder with the necessary properties
* Created builder for PropertyTypeContainer
* Created builder for PropertyTypeEditing
* Created builder for PropertyTypeValidationEditing
* Made adjustments to the builder
* Updated name of usage
* Commented out to test
* Cleaned up builders
* Updated integration test setup
* Moved tests
* Added interface
* Add IDocumentSeedKeyProvider and migrate existing logic to seed key provider
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Created helper to Convert a IContentType to ContentTypeUpdateModel
* Added interfaces
* Added builder
* Cleaned up builders and added fixes
* Added tests for PublishedContentTypeCache
* Applied changes in builder
* Add BreadthFirstKeyProvider
* Use ISet for seedkey providers
* Implement GetContentSource by key
* Seed the cache with keys provided by seed key providers
* Builder updates
* Test setup updates
* Updated tests
* Dont require contenttype keys for seeding
* Fix cache settings
* Don't inject cache settings into SeedingNotificationHandler
* Fix tests
* Use enlistment for setting updated cache item
* Pin seeded nodes for longer
* Fix BreadthFirstKeyProvider
* Fix ContentTypeSeedKeyProvider
* Fix tests
* Only seed published documents
* Only cache published if contentCacheNode is not draft
* Fix incorrect templateId
* Removed unnecessary setup
* initialized value
* Fixed template test
* Removed test
* Updated tests
* Removed code that was not used
* Removed unused cacheSettings
* Re-organize to support media cache seeding
* Add MediaBreadthFirstKeyProvider
* Seed media
* Don't use IdKeyMap when removing content from cache
* Don't clear IdKeyMap in DocumentCacheService
* Add unit tests
* Don't use IdKeyMap when deleting media
* Add default value to timespan
* Use cancellation tokens when doing loop
* Fixed Models Builder error
* Builder testing
* Media test
* Created builders
* Updated method from getByKey to getById to maintain structure
* Updated test setup
* Moved tests
* Cleaned up builders
* Added helper
* Added space
* Updated tests
* Cleaned setup
* Added tests for MediaTypes
* Uncommented tests
* Added builder extensions
* Added interfaces for builder methods
* Updated to use interface pattern
* Updated name
* Used builder
* Cleaned up test
* Added media scope tests
* Removed PropertyTypeModelBuilder
* moved PropertyTypeModelBuilder to PropertyTypeEditingBuilder
* Removed constructor
* Removed duplicate
* Fixed naming
* Reverted
* Removed space
* Added todos
* Removed only run on linux
* Commet out DocumentHybridCacheTemplateTest again
This is fixed in the release branch
* Update media when media type is updated
* Remove todo the tests pass now
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove nucache reference from Web.Common
* Get tests building-ish
* Move ReservedFieldNamesService to the right project
* Remove IPublishedSnapshotStatus
* Added functionality to the INavigationQueryService to get root keys
* Fixed issue with navigation
* Remove IPublishedSnapshot from UmbracoContext
* Begin removing usage of IPublishedSnapshot from PublishedContentExtensions
* Fix PublishedContentExtensions.cs
* Don't use snapshots in delivery media api
* Use IPublishedMediaCache in QueryMediaApiController
* Remove more usages of IPublishedSnapshotAccessor
* Comment out tests
* Remove more usages of PublishedSnapshotAccessor
* Remove PublishedSnapshot from property
* Fixed test build
* Fix errors
* Fix some tests
* Delete NuCache 🎉
* Implement DatabaseCacheRebuilder
* Remove usage of IPublishedSnapshotService
* Remove IPublishedSnapshotService
* Remove TestPublishedSnapshotAccessor and make tests build
* Don't test Snapshot cachelevel
It's no longer supported
* Fix BlockEditorConverter
Element != Element document type
* Remember to set cachemanager
* Fix RichTextParserTests
* Implement TryGetLevel on INavigationQueryService
* Fake level and obsolete it in PublishedContent
* Remove ChildrenForAllCultures
* Hack Path property on PublishedContent
* Remove usages of IPublishedSnapshot in tests
* More ConvertersTests
* Add hybrid cache to integration tests
We can actually do this now because we no longer save files on disk
* Rename IPublishedSnapshotRebuilder to ICacheRebuilder
* Comment out tests
* V15: Replacing the usages of Parent (navigation data) from IPublishedContent (#17125)
* Fix .Parent references in PublishedContentExtensions
* Add missing methods to FriendlyPublishedContentExtensions (ones that you were able to call on the content directly as they now require extra params)
* Fix references from the extension methods
* Fix dependencies in tests
* Replace IPublishedSnapshotAccessor with the content cache in tests
* Resolving more .Parent references
* Fix unit tests
* Obsolete and use extension methods
* Remove private method and use extension instead
* Moving code around
* Fix tests
* Fix more references
* Cleanup
* Fix more usages
* Resolve merge conflict
* Fix tests
* Cleanup
* Fix more tests
* Fixed unit tests
* Cleanup
* Replace last usages
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove usage of IPublishedSnapshotAccessor from IRequestItemProvider
* Post merge fixup
* Remo IPublishedSnapshot
* Add HasAny to IDocumentUrlService
* Fix TextBuilder
* Fix modelsbuilder tests
* Use explicit types
* Implement GetByContentType
* Support element types in PublishedContentTypeCache
* Run enlistments before publishing notifications
* Fix elements cache refreshing
* Implement GetByUdi
* Implement GetAtRoot
* Implement GetByRoute
* Reimplement GetRouteById
* Fix blocks unit tests
* Initialize domain cache on boot
* Only return routes with domains on non default lanauges
* V15: Replacing the usages of `Children` (navigation data) from `IPublishedContent` (#17159)
* Update params in PublishedContentExtensions to the general interfaces for the published cache and navigation service, so that we can use the extension methods on both documents and media
* Introduce GetParent() which uses the right services
* Fix obsolete message on .Parent
* Obsolete .Children
* Fix usages of Children for ApiMediaQueryService
* Fix usage in internal
* Fix usages in views
* Fix indentation
* Fix issue with delete language
* Update nuget pacakges
* Clear elements cache when content is deleted
instead of trying to update it
* Reset publishedModelFactory
* Fixed publishing
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: kjac <kja@umbraco.dk>
* Block level variance - initial commit
* Remove TODOs
* Only convert RTEs with blocks
* Fix JSON paths for block level property validation
* Rename Properties to Values
* Correct the JSON path of block level validation errors
* Make it possible to skip content migration + ensure backwards compat for the new block format
* Partial culture variance publishing at property level
* UDI to key conversion for block editors - draft, WIP, do NOT merge 😄 (#16970)
* Convert block UDIs to GUIDs
* Fix merge
* Fix merge issues
* Rework nested layout item key parsing for backwards compatibility
* Clean-up
* Reverse block layout item key calculation
* Review
* Use IOptions to skip content migrations
* Remove "published" from data editor feature naming, as it can be used in other contexts too
* Parallel migration
* Don't use deprecated constructor
* Ensure that layout follows structure for partial publishing
* Block Grid element level variance + tests (incl. refactor of element level variation tests)
* Rollback unintended changes to Program.cs
* Fix bad casing
* Minor formatting
* RTE element level variance + tests
* Remove obsoleted constructors
* Use Umbraco.RichText instead of Umbraco.TinyMCE as layout alias for blocks in the RTE
* Fix bad merge
* Temporary fix for new cache in integration tests
* Add EditorAlias to block level properties
* Remove the unintended PropertyEditorAlias output for block values
* Add EditorAlias to Datatype Item model
* Update OpenApi.json
* Introduce "expose" for blocks
* Strict (explicit) handling for Expose
* Improve handling of document and element level variance changes
* Refactor variance alignment for published rendering
* Block UDI to Key conversion should also register as a conversion
* Convert newly added RTE unit test to new RTE blocks format
* Minor review changes
* Run memory intensive tests on Linux only
* Add tests proving that AllowEditInvariantFromNonDefault has effect for block level variance too
* Fix the Platform annotations
* Removed Platform annotations for tests.
* Fix merge
* Obsolete old PublishCulture extension
* More fixing bad merge
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>