* 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>
* Moved refactor from V12 based branch
* Remove obsolete config property to avoid obsoletion warnings
* Clean up test models
* Make the datatype API a little less confusing by introducing explicit models for create and update
* Remame "Configuration" to "Data" to make FE happy :)
* Safeguard deserialization of empty configs
* Less strict number handling for deserialization
* Prepare for data type config migrations
* Attempt to have contextual config serializers
* Update OpenAPI spec with (temporary) data type controller
* Fix unit tests
* Update compat suppressions (allow breakage for datatype and configuration editor)
* Make the duplicate JsonObjectConverter implementation private
* Added dictionary import/export
* Added umb tree to dictionary import & level for displaying preview dictionary import
* Indented dictionaries for import, added new text for choosing where to import dictionary items
* Removed console.log for dictionary/import.controller.js
Co-authored-by: Michael <michael@crossingpaths.be>
* 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.
* Ensured container collections retrieved from content type services return empty rather than nullable.
* Reverted change to ILocalLinkParser.
* Reverted change to ILocalLinkParser (2).
* Update GetByParentOrChildId in IRelationService to return non-nullable result.
* Added obsoleted constructor due to change in MemberTypeService.
* Updated nullability of Compare method parameters in IServiceConnector.
* Adjusted nullability of method on IValueConnector.
* Removed nullability of ArtifactDeployState.
* 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>
* cherry-pick 13a51d32 (V8 History cleanup import/export)
Support import/export for doc type history cleanup policy (#11660)
* Support import/export for doc type history cleanup policy
* Support unset/null history cleanup value
* Resolve issue when api endpoints called without cleanup policy.
noop isn't good enough as map fails for response.
* null conditional vs null coalesce assignment
* Don't overwrite existing policy if omitted in import XML
* Update history cleanup warning and translations
* Change history cleanup alert to infomational styling
* Remove margin around history cleanup config
Co-authored-by: Ronald Barendse <ronald@barend.se>
# Conflicts:
# src/Umbraco.Core/Models/IContentType.cs
# src/Umbraco.Core/Packaging/PackageDataInstallation.cs
# src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
# src/Umbraco.Infrastructure/Services/Implement/EntityXmlSerializer.cs
# src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs
# src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
# src/Umbraco.Tests/Umbraco.Tests.csproj
# src/Umbraco.Web.UI/umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
# src/Umbraco.Web/Models/Mapping/ContentTypeMapDefinition.cs
# tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.resx
# tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/Importing/SingleDocType-WithCleanupPolicy.xml
* Remove namespace aliases
* Update IContentTypeWithHistoryCleanup documentation
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Exposes the entity containers (folders) created during a package installation in the summary available from the ImportedPackageNotification.
* Restored original constructors.
* Refactored to use out parameters for tracking installed entity containers.
* Removed unnecessary variable initialization.
* Introduce an opt-out options from the import of embedded schema files.
* Moved the initialization of the static service provider into CoreRuntime as this runs before the IStartupFilters, and otherwise the static service provider is not available in hosted services. E.g. for migrations
* fix build
* Minor code tidy and naming alignment.
* Update src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
* Removed default installation of starter kit.
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add folderkeys to package xml.
* Cleanup
* Use folderKeys to find child
* Fix potential issue with when no folder
* Fixed logic issue.
Co-authored-by: Andy Butland <abutland73@gmail.com>
Did not load media items if the folder was still there but the nested media was deleted/missing
## Testcase:
Add folder to media..
add multiple images into the folder
Create package with the folder and include decendents
Remove one of the items inside the folder + empty recycle bin
Install the package - Now the missing item is still added (it was not before)
This means we don't have to inject Lazy<T> all over the place when dealing with
colleciton builders and circular references since this will automatically just work OOTB.
This in theory should also allocate less instances during startup.