* Ports fix to regression of the caching of null representations for missing dictionary items.
* Fixed error raised in code review.
---------
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Retrieve only ISO codes from the database rather than full language objects if that's all we need.
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Removed repository updates and migrated the new service method to an extension method.
* Fixed issue after merge.
* Removed left-over using
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* PropertyType constructor sets the DataTypeKey if passed IDataType has identity
* Updated unit tests to verify behaviour.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Initial adjustment of the projects with package vulnerabilities that errored, to change to ignore the four specific Nuget vulnerability warnings in Debug mode (but not Release) as per https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1901-nu1904 (NU1901,NU1902,NU1903,NU1904)
* Fixed formatting errors with tests
* No trailing whitespace
* Move NuGet vulnerability warnings error suppression to Directory.Build.props, combine WarningsNotAsErrors and fix minor issues
* Update Umbraco.JsonSchema.csproj
Removed unwanted change
* Update Umbraco.JsonSchema.csproj
Removed unwanted change
* Revert unecessary changes since merge
* Tweak more unecessary changes
* Small tweaks
* Remove space
* Reverted spacing changes
* Remove no longer required warning exclusions
* Reverted unwanted change
* Reversed order
* A few tweaks to reduce warnings in Umbraco.TestData
* More warnings removed as no longer an issue
---------
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
* Display the latest update date in document collection view
* Don't consider "" as a missing option when initializing the drop down list.
* Don't flag "" as a missing option when validatng server-side.
---------
Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
* Adding member types sibling endpoints
* Introducing sibling endpoint for Partial Views and logic.
* Introducing sibling endpoint for stylesheets
* Introducing sibling endpoint for scripts
* Introducing FileSystemTreeServiceBase.cs
* Introducing interfaces for implementation specific services
* Introducing services for specific trees
* Modifying controller bases to fit new interface and logic.
* Obsoleting old constructors related to PartialView
* Obsoleting ctors related to Stylesheets
* Obsoleting ctors related to scripts
* Adding tests for scriptsTreeService
* Adding tests for siblings
* Removing unused dependencies
* Removing signs and replacing it with flags
* Fixing breaking changes by obsoletion
* Fixing more breaking changes
* Registering missing service
* Fixing breaking changes again
* Changing name of method GetSiblingsViewModels
* Rewritten tests for less bloat and less duplicate code
* Expanding tests to include other methods from service
* Test refactoring: avoided populating file systems that weren't under test, updated encapsulation, renaming, further re-use.
* Management API: Expanding the existing sibling endpoints to support trashed entities (#20154)
* Refactoring existing logic to include trashed items
* Including tests for trashed entities
* Groundwork for trashed siblings
* Documents trashed siblings endpoint
* Controller for Media trashed items
* Expanding tests to include a test for trashed siblings
* Code review corrections
* Resolving code review
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Directly convert from double or float when possible. Also fixes string parsing to work on all cultures. Fixes#20214
* Added unit tests to verify behaviour.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Initial implementation of non existing property editor
* Adjust `MissingPropertyEditor` to not require registering in PropertyEditorCollection
* Add `MissingPropertyEditor.name` back
* Remove unused dependencies from DataTypeService
* Removed reference to non existing property
* Add parameterless constructor back to MissingPropertyEditor
* Add validation error on document open to property with missing editor
* Update labels
* Removed public editor alias const
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/missing/manifests.ts
* Add test that checks whether the new MissingPropertyEditor is returned when an editor is not found
* Also check if the editor UI alias is correct in the test
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Share property editor instances between properties
* Only store missing property editors in memory in `ContentMapDefinition.MapValueViewModels()`
* Add value converter for the missing property editor to always return a string (same as the Label did previously)
* Small improvements to code block
* Adjust property validation to accept missing property editors
* Return the current value when trying to update a property with a missing editor
Same logic as for when the property is readonly.
* Fix failing unit tests
* Small fix
* Add unit test
* Remove client validation
* UI adjustments
* Adjustments from code review
* Adjust test
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Renaming the providers, collection builder and model
* Renaming the items using signs
* Renaming in controllers
* Renaming mapping flags
* Renaming sign tests to flags
* Changing the test files names from signs to flags
* Updated a couple more references.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Support querystring and anchor for local links in Delivery API output (#20142)
* Support querystring and anchor for local links in Delivery API output
* Add default implementation for backwards compat
* Add default implementation for backwards compat (also on the interface)
* Fix default implementation
* Add extra tests proving that querystring/postfix can be handled for local links in both legacy and current format.
* Initial implementation of non existing property editor
* Adjust `MissingPropertyEditor` to not require registering in PropertyEditorCollection
* Add `MissingPropertyEditor.name` back
* Remove unused dependencies from DataTypeService
* Removed reference to non existing property
* Add parameterless constructor back to MissingPropertyEditor
* Add validation error on document open to property with missing editor
* Update labels
* Removed public editor alias const
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/missing/manifests.ts
* Add test that checks whether the new MissingPropertyEditor is returned when an editor is not found
* Also check if the editor UI alias is correct in the test
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Share property editor instances between properties
* Only store missing property editors in memory in `ContentMapDefinition.MapValueViewModels()`
* Add value converter for the missing property editor to always return a string (same as the Label did previously)
* Small improvements to code block
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Adding signs to variants and adjusting HasPendingChangesSignProvider.cs
* HasPendingChangesSignProvider.cs now populates variants & refactoring to move logic to DocumentPresentationFactory.cs
* Working HasScheduleSignProvider.cs to provide variant signs
* Refactoring ISignProvider.cs to take an IEnumerable again
* Moving code from controllers to factories
* Refactoring HasPendingChangesSignProvider.cs to use the right Interface method
* Refactoring HasScheduleSignProvider.cs to be less bloated, and more readable (hopefully)
* Refactoring tests to look at variants and include a list
* Changing instantiation to be better
* Fixed minor logic issue in HasScheduleSignProvider.cs
* Refactoring to include just 1 database call.
* Adjusting tests to use the new methods.
* Reverted breaking changes
* Added `cultures` property to the Segment models
* Added new endpoint to return the segments of a specific document.
* Mark additional properties and methods as obsolete
* Small indentation fix
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix spell error from Segmment to Segment
* Change for fix the misspell interface in a non breaking way
---------
Co-authored-by: Lucas Bach Bisgaard <lucas.bisgaard@kraftvaerk.com>
* Prevents the removal of all user groups from a user.
* Add additional user group when removing
---------
Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
* 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>
* Added configuration option UseStrictDomainMatching, which allows control over whether content is routed without a matching domain.
* Fixed typo in comment.
* Addressed comments from code review.
* Content picker search with start node configured not taking user start nodes into account (#19800)
* Fix users being able to see nodes they don't have access to when using the picker search
* Readability and naming improvements
* Additional fixes
* Adjust tests
* Additional fixes
* Small improvement
* Replaced the root ids with constants
* Update src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs
Co-authored-by: Andy Butland <abutland73@gmail.com>
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
# Conflicts:
# src/Umbraco.Examine.Lucene/BackOfficeExamineSearcher.cs
# src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs
# src/Umbraco.Web.BackOffice/Trees/MediaTreeController.cs
# src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs
# tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/UmbracoExamine/BackOfficeExamineSearcherTests.cs
* Add new constructor without unused and obsolete parameters
* Use non obsolete constructor in tests
* Add `dataTypeId` as parameter in document and media search endpoints to get `ignoreUserStartNodes` value
* Update backend API generated typed client
* Updated picker search to pass in data type unique
* Move data type retrieval to UmbPickerContext
* Adjust the controller constructors to make it non breaking
* Adjust controller methods to make non-breaking.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Fix moving properties between groups sometimes clearing their values
* Small adjustment
* Fix failing integration test
The mapping method was only setting the property group when it was not null, but for orphaned properties we want to specifically set it to null.
* Adjust 'Can_Move_Properties_To_Another_Container' integration test to check more scenarios and that values are kept
* Adjust to add isElement variable in test (as previously)
* Removed two unnecessary delete clauses when removing content types (they are looking for user group Ids, but we are deleting a content type).
* Renamed table name constant with obsoletion to better reflect name and contents of table.
* Added granular permission for property value records to delete clauses when deleting a document type.
* Delete property value permissions for removed property types.
* Added integration tests to verify behaviour.
* Adds support for the "folders only" flag on retrieving siblings of a node.
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Updated test code.
* Removed double secondary ordering by node Id and ensured we include this clause for all sort orders.
* Ensure that ordering by node Id is always added only once and last, and only if it's not already been included in the order by clause.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer.
* Generalised JSON serialization encoder factory to work for all System.Tex.Json serializers.
Added the serializer's name as a parameter to allow for different encodings per serializer if required.
* Fixed tests by removing use of obsolete constructors.
* Removed name parameter and used a generic type instead.
* Added user start node restrictions to sibling endpoints.
* Further integration tests.
* Tidy up.
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Revert previous update.
* Retrieves item counts before and after the target for sibling endpoints and returns in API response.
* Applied previous update correctly.
* Removed blank line.
* Fix build and test asserts following merge.
* Update OpenApi.json.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: mole <nikolajlauridsen@protonmail.ch>
* Fixes#19654
Adds the propertyAlias to the VariationContext so that products implementing the GetSegment method are aware which propertyAlias it's being called for
* Re-implement original variation context for backwards compatibility
* Fixes hidden overload method
Ensures the `GetSegment` method overload is not hidden when a null `propertyAlias` is passed.
* Resolve backward compatibility issues.
* Improved comments.
---------
# Conflicts:
# src/Umbraco.PublishedCache.NuCache/Property.cs
* Remove date object conversion as valueEditors don't seem to need it
* Update fault summary reference
* Added justification comment.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Cleanup obsoleted methods
* Add a way to disable UmbracoFile default sink
* Abstract LogViewService so only UmbracoFile sink related things are in the default interface implementation.
* Abstract LogViewRepository so only UmbracoFile sink related things are in the default interface implementation.
* Move GetGlobalLogLevelEventMinLevel to base
* Removed unused internal class and obsoleted its base
* Added missing XML header comments and resolved warnings in service and repository classes.
* Made private method static.
* Addressed issues raised in code review.
* Expose repository from the service base class.
* Restored further obsoleted code we can't remove yet.
* Removed log viewer tests on removed class. We have integration tests for the new service.
* Obsoleted ILogViewer interface.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add integration tests that shows the problem
* Fix the problem and add explenation
* Improved comments slightly to help when we come back here!
Moved tests alongside existing ones related to scopes.
Removed long running attribute from tests (they are quite fast).
* Fixed casing in comment.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Fix navigationUrlService and underlying models not being thread safe
* Added migration to plan.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Started implementing new LongRunningOperationService and adjusting tasks to use this service
This service will manage operations that require status to be synced between servers (load balanced setup).
* Missing migration to add new lock. Other simplifications.
* Add job to cleanup the LongRunningOperations entries
* Add new DatabaseCacheRebuilder.RebuildAsync method
This is both async and returns an attempt, which will fail if a rebuild operation is already running.
* Missing LongRunningOperation database table creation on clean install
* Store expire date in the long running operation. Better handling of non-background operations.
Storing an expiration date allows setting different expiration times depending on the type of operation, and whether it is running in the background or not.
* Added integration tests for LongRunningOperationRepository
* Added unit tests for LongRunningOperationService
* Add type as a parameter to more repository calls. Distinguish between expiration and deletion in `LongRunningOperationRepository.CleanOperations`.
* Fix failing unit test
* Fixed `PerformPublishBranchAsync` result not being deserialized correctly
* Remove unnecessary DatabaseCacheRebuildResult value
* Add status to `LongRunningOperationService.GetResult` attempt to inform on why a result could not be retrieved
* General improvements
* Missing rename
* Improve the handling of long running operations that are not in background and stale operations
* Fix failing unit tests
* Fixed small mismatch between interface and implementation
* Use a fire and forget task instead of the background queue
* Apply suggestions from code review
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Make sure exceptions are caught when running in the background
* Alignment with other repositories (async + pagination)
* Additional fixes
* Add Async suffix to service methods
* Missing adjustment
* Moved hardcoded settings to IOptions
* Fix issue in SQL Server where 0 is not accepted as requested number of rows
* Fix issue in SQL Server where query provided to count cannot contain orderby
* Additional SQL Server fixes
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Return 404 on delivery API requests for segments that are invalid or not created.
* Handled case with no segmented properties.
* Let the property decide if it has a value or not
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Add a backing field for EditorUIAlias and track changes when its set.
* Add previously failing unit test to verify fix.
* Aligned backing field casing with property name.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Adds variation by the header name Accept-Language to the develivery API output cache policy
* Removed obsolete constructor (not necessary as the class is internal).
* Introduce contants for header names.