* 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>
* 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>
* Update to dotnet 9 and update nuget packages
* Update umbraco code version
* Update Directory.Build.props
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Include preview version in pipeline
* update template projects
* update global json with specific version
* Update version.json to v15
* Rename TrimStart and TrimEnd to string specific
* Rename to Exact
* Update global.json
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Remove includePreviewVersion
* Rename to trim exact
* Add new Hybridcache project
* Add tests
* Start implementing PublishedContent.cs
* Implement repository for content
* Refactor to use async everywhere
* 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
* Use init for ContentSourceDto
* Fix get by key in PublishedContentTypeCache
* Remove ContentType from PublishedContentTypeCache when contenttype is deleted
* Update to preview 7
* Fix versions
* Increase timeout for sqlite integration tests
* Undo timeout increase
* Try and undo init change to ContentSourceDto
* That wasn't it chief
* Try and make DomainAndUrlsTests non NonParallelizable
* Update versions
* Only run cache tests on linux for now
---------
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Tests
* Remove props and use local vars
* Adding preliminary navigation service and content implementation
* Adding preliminary unit tests
* Change from async methods
* Refactor GetParentKey to TryGetParentKey
* Refactor GetChildrenKeys to TryGetChildrenKeys
* Refactor GetDescendantsKeys to TryGetDescendantsKeys
* Refactor GetAncestorsKeys to TryGetAncestorsKeys
* Refactor GetSiblingsKeys to TryGetSiblingsKeys
* Refactor TryGetChildrenKeys
* Initial integration tests
* Use ContentEditingService instead of ContentService
* Remove INavigationService.Copy implementation and unit tests
* Rename var
* Adding clarification
* Initial ContentNavigationRepository
* Initial NavigationFactory
* Remove filtering from factory
* NavigationRepository and implementation
* InitializationService responsible for seeding the in-memory structure
* Register repository and service
* Adding NavigationDto and NavigationNode
* Adding INavigationService dependency and Enlist updating navigation structure actions
* Documentation
* Adding tests for removing descendants as well
* Changed to ConcurrentDictionary
* Remove keys comments for tests
* Adding documentation
* Forgotten ConcurrentDictionary change
* Isolating the operations on the model
* Splitting the INavigationService to separate the querying from the managing functionality
* Introducing specific navigation services for document, document recycle bin, media and media recycle bin
* Making ContentNavigationService into a base as the functionality will be shared between the document, document recycle bin, media and media recycle bin services
* Adding the implementations of document, document recycle bin, media and media recycle bin navigation services
* Fixing comments
* Initializing all 4 collections
* Adapting the navigation unit tests to the base now
* Adapting integration tests to specific navigation service
* Adding test for rebuilding the structure
* Adding implementation for Adding and Getting a node - needed for moving to and restoring from the recycle bin + tests
* Updating the document navigation structure from the ContentService
* Fix typo
* Adding trashed items implementation in base - currently managing 2 structures
* Removing no longer relevant GetNavigationNode and AddNavigationNode
* Fix removing parent when child is removed supporting methods
* Added restoring functionality
* Adding Bin functionality to DocumentNavigationService
* Removing Move signature from IDocumentNavigationService
* Adding RecycleBin query and management services
* Re-adding Move and removing GetNavigationNode and AddNavigationNode signatures from interface
* Rebuilding bin structure using _documentNavigationService, instead of _documentRecycleBinNavigationService
* Fixing test name
* Adding more tests for remove
* Adding tests for restore and removing ones for GetNavigationNode and AddNavigationNode
* Remove comments
* Removing document and media RecycleBinNavigationService and their interfaces
* Adding media rebuild bin
* Fixing initialization with correct interfaces
* Removing RecycleBinNavigationServices' registration
* Remove IDocumentRecycleBinNavigationService dependency
* Updating in-memory nav structure when content updates happen
* Adding the rest of the integration tests
* Clean up IMediaNavigationService
* Fix comments
* Remove CustomTestSetup in integration tests as the structure is updated when content updates happen
* Adding and fixing comments
* Making RebuildBinAsync abstract as well
* Adding DocumentNavigationServiceTestsBase
* Splitting DocumentNavigationServiceTests into partial test classes
* Cleaning up DocumentNavigationServiceTests since tests have been moved to specific partial classes
* Reuse a method for creating content in tests
* Change type in test base
* Adding navigation structure updates in media service
* Adding MediaNavigationServiceTestsBase
* Adding integration tests for media nav str
* Remove services as we will have more concrete ones
* Add document and media IXNavigationQueryService and IXNavigationManagementService
* Inject ManagementService in ContentService.cs and MediaService.cs
* Change implementation to implement the new services + registration
* Make classes sealed
* Inject correct services in InitializationService
* Using the right services in integration tests
* Adding comments
* Removing bin interfaces from main navigation ones
* Rename Remove to MoveToBin
* V14 QA added block list editor tests (#16862)
* Added tests for blocklistEditor
* Added more tets
* Removed faker
* Added blockTest
* Updates
* Added tests
* Removed dependencies
* Fixes
* Clean up
* Fixed naming
* Cleaned up
* Bumped version
* Added missing semicolons
* Added tags
* Only runs the new tests
* Updates
* Bumped version
* Fixed tests
* Cleaned up
* Updated version
* Fixes, not done
* Fixed tests
* Bumped helpers
* Bumped helpers
* Fixed conflict
* Fixed comment
* Reverted to run smokeTests
* Updated helpers
* improve missingProperties data returned for missing propertie values (#16910)
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* update backoffice submodule
* Rename initialization service to initialization hosted service
* Refactor repository to return a collection
* Add interface for the NavigationDto
* Add constants to bind property names between DTOs
* Move factory and fix input type
* Use constants for column names
* Use factory from base
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Treat warnings as errors for Umbraco.Cms, Umbraco.Cms.Api.Common and Umbraco.Cms.Api.Delivery projects.
* Treat warnings as errors for Umbraco.Cms.Imaging.ImageSharp and Umbraco.Cms.Imaging.ImageSharp2 projects
* Treat warnings as errors for Umbraco.Cms.Persistence.EFCore.Sqlite, Umbraco.Cms.Persistence.EFCore.SqlServer and Umbraco.Cms.StaticAssets
* Treat warnings as errors for Umbraco.Cms.Targets
* Treat warnings as errors for templates/Umbraco.Templates and Umbraco.JsonSchema
* More projects with warnings as errors.
* Reverted warnings as errors due to some file changes since the update.
* Remove unwanted tag
* Removed warnings as errors on TestData project
* Implement warnings as errors in props file, and exclude specific warnings where appropriate as per PR review suggestions.
* Reverted spaces
* Revert "Reverted spaces"
This reverts commit 3734c45e2270c3324768b33e459aefcc6a8c4739.
* Update sdk version to fully support Umbraco.code 2.2.0 dependency on Microsoft.CodeAnalysis.CSharp.Workspaces 4.10.0
* Ignore PathToLongErrors for now in static assets
---------
Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Fix wrong service name
* Move tests to correct place and fix naming
* Introducing a test base
* Tests IContentBlueprintEditingService
* Remove comment
* Adding Assert.Multiple
* More Assert.Multiple + Can_Create_With_Basic_Model() and Cannot_Create_When_Content_Type_Not_Found()
* Adding response/request models
* Adding mapping
* Adding factory
* Adding controllers
* Moved to correct (generic domain) namespace
* Renamed to reflect the correct domain + renamed IsAllowed to IsCompatible
* Renaming + TODO
* Removed presentation logic + TODO
* Fixed controller
* Attempt for generic implementation
* Enable composition of media types + refactor content/media type editing tests to prove it (and a little renaming of a mis-named property)
* Remove unused classes
* Introducing GetAvailableCompositionsAsync to EditingServices
* Implement GetAvailableCompositionsAsync
* Base share implementation
* Tests
* Tests
* Renaming
* Clean up controller
* Clean up test
* Remove redundant check
* Create and use generic models
* Add shared implementation
* Fix and rename doc type mapper
* Fix document Type factory
* Add missing response type
* Create a base request model
* Make key nullable when new item
* Media type response models
* Default isElement to false and remove isElement param from media type related things
* Create mappings for media type compositions
* Inject generic base service to reuse implementation amongst concrete services
* Add new composition endpoints for media type
* Use specific type
* Add a reference comment to other test suite
* Add more test cases
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Use version overrides for ImageSharp 2
* Move Directory.Packages.props to root, use GlobalPackageReference and replace Microsoft.CSharp with Microsoft.CodeAnalysis.CSharp
* Replace NPoco.SqlServer with NPoco and remove unused System dependencies
* Fix package validation and MSBuild warnings
* Add nuget.config and enable package source mapping
* Remove explicitly set C# language version
* Add empty Directory.Packages.props file for acceptance test
* Downgrade SixLabors.ImageSharp back to 3.0.2 because of breaking changes
* Update ImageSharp/ImageSharp.Web to 3.1.0 and use ComputeHMAC
* Moved to centralized nuget packages
* Handle JsonSchema
* Change PackageReference to PackageVersion
* Opt out of central package management for mangement api (at least for versions less than 14) and the UI project
* ManagePackageVersionsCentrally = false
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* change working directory
* workingDirectory
* Force the template to use local nuget packages
* Force the template to use local nuget packages
* clean up
* added wait on
* added wait on
* make CoreScopeProvider available for derived classes
* Create publish controller
* Add publish functionality
* Remove unneeded using
* Implement publish for multiple cultures
* support multiple cultures in controler
* Dont validate properties
* Refactor to use PublishingOperationStatus
* refactor to use proper publish async methods
* Refactor publish logic into own service
* Commit some demo code
* Add notes about what errors can happen when publishing
* Rework ContentPublishingService and introduce explicit Publish and PublishBranch methods in ContentService
* Fix merge
* Allow the publishing strategy to do its job
* Improved check for unsaved changes
* Make the old content controller work (as best possible)
* Remove SaveAndPublish (SaveAndPublishBranch) from all tests
* Proper guards for invalid cultures when publishing
* Fix edge cases for property validation and content unpublishing + add unpublishing to ContentPublishingService
* Clear out a few TODOs - we'll accept the behavior for now
* Unpublish controller
* Fix merge
* Fix branch publish notifications
* Added extra test for publishing unpublished cultures and added FIXME comments for when we fix the state of published cultures in content
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Fix Umbraco.Web.UI.Login not showing up in solution
* Update PackageValidationBaselineVersion to 13.0.0-rc1 and remove all CompatibilitySuppressions.xml files
* Remove unnecessary package references
* Move Microsoft.EntityFrameworkCore.Design reference and add comment
* Disable package validation and fix override in tests
* Inherit package validation setting for EF Core projects
* Add configuration/code to not run certain tests based on variables/release builds
* Applied longrunning testAttribute to the worst offenders (>200ms on my machine)
* Fix yaml notation
* split up windows/non windows test runs
* Added supression for moved tests
* Fix yaml validation issues
* Change yaml string parameter null value to empty string
* Convert empty strings to whitespace strings
* Rename and cleanup some paramater to better reflect why we use them
* Nightly build test
* Change nightly build authentication type
* template paramater fix
* Update nightly pipeline name
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Add content and media sorting to the Management API
* Rename "id" to "key" throughout the ContentEditingService
* Update Open API json file
* Use "key" instead of "id" in ContentEditingServiceBase
* Use "key" instead of "id" in IMediaEditingService and MediaEditingService
* Turn delegates into abstracts + fix bug that allowed deleting items outside of the recycle bin
* Use PUT instead of POST
* Update src/Umbraco.Core/Services/MediaEditingService.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Services/MediaEditingService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Update Open API JSON
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add GetAsync method
* Fix up delete document type controller
* Add scope to delete async
* Add some scaffolding
* Add create model
* Start working on validation
* Move validation to its own service
* Use GetAllAsync instead of GetAsync
* Add initial composition support
Still need to figure out some kinks
* Validate compositions when creating
* Add initial folder support
* Initial handling of generic properties
* Add operation status responses
* Move create operation into service
* Add first test
* Fix issued shown by test
* Ensure a specific key can be specified when creating
* Rename container id to container key
Let's try and be consistent
* Create basic composition test
* Ensure new property groups are created with the correct key
* Add test showing property type issue
* Fix property types not using the expected key.
* Validate against model fetched from content type service
Just to make sure nothing explodes on the round trip
* Make helper for creating create models
* Add helper for creating container
* Make helper methods simpler to use
* Add test for compositions using compositions
* Add more composition tests
* Fix bug allowing element types to be composed by non element types
* Remove validators
This can just be a part of the editing service
* Minor cleanup
* Ensure that multiple levels of inheritance is possible
* Ensure doctype cannot be used as both composition and inheritance on the same doctype
* Ensure no duplicate aliases from composition and that compositions exists
* Minor cleanup
* Address todos
* Add SaveAsync method
* Renamed some models
* Rename from DocumentType to ContentType
* Clarify ParentKey as being container only + untangle things a tiny bit
* Clean out another TODO (less duplicate code) + more tests
* Refactor for reuse across different content types + add media type editing service + unit tests
* Refactor in preparation for update handling
* More tests + fixed bugs found while testing
* Simplify things a bit
* Content type update + a lot of unit tests + some refactor + fix bugs found while testing
* Begin building presentation factories for mapping view models to editing models
* Use async save
* Mapping factories and some clean-up
* Rename Key to Id (ParentKey to ParentId)
* Fix slight typo
* Use editing service in document type controllers and introduce media type controllers
* Validate containers and align container aliases with the current backoffice
* Remove ParentId from response
* Fix scope handling in DeleteAsync
* Refactor ContentTypeSort
* A little renaming for clarity + safeguard against changes to inheritance
* Persist allowed content types
* Fix bad merge + update controller response annotations
* Update OpenAPI JSON
* Update src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentTypeControllerBase.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fix review comments
* Update usage of MapCreateAsync to ValidateAndMapForCreationAsync
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>