* 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>
* 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>
* Clean up DistributedCache and add additional checks
* Add IEnumerable overloads to DistributedCacheExtensions
* Update handlers to use new IEnumerable overloads
* Move DistributedCacheExtensions to Core
* Restructure cache refreshers into folders
* Add IDistributedCacheNotificationHandler
* Rewrite DistributedCacheBinder into seperate IDistributedCacheNotificationHandler implementations
* Obsolete DistributedCacheBinder and use new IDistributedCacheHandler implementations
* Clean up ServerMessengerBase
* Ensure cache refreshers only process distinct values
* Add support for publishing multiple notifications and filter on handler type
* Suppress compatibility issues
* Remove DistributedCacheBinder and suppress compatibility issues
* Add ScopedNotificationPublisher<TNotificationHandler>
* Improve notification type lookup/enumeration
* Ensure INotificationAsyncHandler handles multiple notitications sequentially
* Minimize cache instruction JSON
* Chunk notifications by type to keep publish order
* Only serialize required RefreshInstruction properties
* Add default super user key to migrations
* Start refactoring all interfaces signatures with ids
* Refactor datatype service to use userKey pattern instead
* Refactor ContentEditingService to use userkeys
* Refactor services to userKey
* Refactor more services to use userkey instead of id
* Refactor RelationService to use userKeys
* Refactor template service to use keys instead of ids
* Refactor fileservice to use keys instead of ids
* Refactor LocalizationService to use keys instead of ids
* Refactor PackagingService to use keys instead of ids
* Refactor TemplateController to use current user keys
* Refactor DataTypeContainerService.cs
* Refactor DataTypeService to use keys instead of ids
* Fix up tests
* Fix up media editing service to use userkey instead of ID
* Update service ctor to avoid ambigious ctors
* refactor DataTypeService
* Refactor DataTypeService to not have a default value for parentKey
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Update comment
* Add suppression file
* Add backoffice CompatibilitySuppressions
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Use language ISO code for language fallback instead of language ID
* Remove language and language ID from dictionary item and dictionary item translation
* ADd unit test for dictionary item translation value extension
* Make the internal service implementations sealed
* Rename translation ISO code to be more explicit in its origin (Language)
* Add breaking changes suppression
* Handle save of invalid fallback iso code
* Fixed test
* Only allow non-UserCustomCulture's
* Fixed and added tests
* Rename ISO code validation method
* Fix language telemetry test (create Swedish with the correct ISO code)
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Rework language service and API
* Revert unintended commit of Directory.Build.props
* Create OS conditional test for invalid ISO codes
* Reintroduce and obsolete old Delete method on ILocalizationService + make new Delete method delete by ISO code + add obsoletion attrs to service implementation
* Review comments + utilize new Delete method
* Do not allow model reuse when creating a new language
* Fix bad merge
* Split localization service into dedicated services for language and dictionary item handling
* Replaced ILocalizationService usage in management API (as much as can be done for now)
* Ensure we can create dictionary items with explicit keys (but no duplicates)
* Fix culture controller so it works properly with pagination
* Update OpenAPI JSON
* Actually update the language being updated...
* Unit test for invalid ISO now no longer needs to differ between OS :)
* A little bit of code health improvements
* A litte less code duplication
* Remove duplicate validation
* Rework dictionary CRUD operations
* Update OpenAPI json
* Move responsibility to localization service, introduce new attempt pattern for create and update operations, update unit tests accordingly
* Fix merge
* Rollback assumption that we can map entities from scratch (entity relations got in the way)
* Update OpenAPI JSON
* Add breakage supressions
* Add compat suppressions for integration test project
* Make dictionary item deletion follow same pattern as create and update
* Review comments + update delete to use new pattern
* Update breakage suppressions to match the new Delete method
* Add Umbraco specific global usings
* Enable implicit usings
* v10: Wait for updated ConnectionStrings during install (#12536)
* Do not change/reload configuration
* Wait for updated connection string options
* recase assigndomain (#12448)
* Add depth property to ICoreScope (#12540)
* Remove ambient scope stack from httpcontext.items. (#12539)
This change makes it easier to use service calls in parallel whilst
a httpcontext is available.
* v10: Prefer SQLite primitive types to flexible types (#12541)
* Prefer SQLite primitive types to flexible types.
* SQLite - column mappings use TEXT for decimals
Thanks @mattbrailsford for sense check.
* Fix issue where languages files are not found in subdir of package dir (#12543)
* Make FindContent return type nullable (#12545)
* Updated nuget dependencies (07-06-2022) (#12525)
* Updated nuget dependencies
* Move Nerdbank.GitVersioning update to Directory.Build.props
* Updated more dependencies
* Improve FlagOutOfDateModels property behaviour.
(cherry picked from commit 54077725c373495fce0d3fbc5cdb6469aad3b676)
* Fix logic error WRT models builder flag out of date models. (#12548)
(cherry picked from commit 6b0149803a879d1c6902a5f61d1f2e9dc8545aac)
* Fixed issue with expected null value. (#12550)
Fixes https://github.com/umbraco/Umbraco-CMS/issues/12526
* Updated Examine to 3.0.0
* Fixes relation issue, when moving a root item to recycle bin, the "Relate Parent Media Folder On Delete"/"Relate Parent Document On Delete" cannot get the parent node type, because it is a fake root.
* Fix possible null error
* Bump version to 10.0.0 final
* Fix attempting to write lock files to LocalTempPath before it exists (#12563)
* Re fix usage statements
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Separate legacy scope provider interface and explicitly implement.
* Don't rely on legacy scope provider for existing tests.
* Assert correct type returned when using legacy scope provider.
* Update language models to get and set manual name
* Save custom language name in controller
* Rewrite AngularJS language edit view and controller
* Cleanup language overview
* Remove icon from language overview
* Make styling of control group the same as properties
* Ensure both ISO code and culture name are set in language model
* Use new language model constructor
* Update tests to use new language constructor
* Update culture name in dictionary package export
* Use language name in dictionary
* Fix language nullability issues
* Cleanup GetAllCultures and added null checks
* Re-add obsolete constructors
* Make language name required and update Cypress test
* Fix routing/saveNewLanguages Cypress test
* Make language name optional (improved backwards compatibility)
Co-authored-by: Ronald Barendse <ronald@panoramastudios.nl>
* Allow changing UmbracoMediaPath to an absolute path. Also ensure Imagesharp are handing requests outside of the wwwroot folder.
* Let UmbracoMediaUrl fallback to UmbracoMediaPath when empty
* Add FileSystemFileProvider to expose an IFileSystem as IFileProvider
* Replace IUmbracoMediaFileProvider with IFileProviderFactory implementation
* Fix issue resolving relative paths when media URL has changed
* Remove FileSystemFileProvider and require explicitly implementing IFileProviderFactory
* Update tests (UnauthorizedAccessException isn't thrown anymore for rooted files)
* Update test to use UmbracoMediaUrl
* Add UmbracoMediaPhysicalRootPath global setting
* Remove MediaFileManagerImageProvider and use composited file providers
* Move CreateFileProvider to IFileSystem extension method
* Add rooted path tests
Co-authored-by: Ronald Barendse <ronald@barend.se>