* 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 parent key to CopyingNotification
* Use parentkey on notifications
* Implement ParentKeys for Copying notification
* Obsolete parentId
* Implement MoveToEventInfoBase
* Refactor MovingToRecycleBinNotification to use the new MoveEVentInfoBase
* Refactor MediaMovingToRecycleBinNotification
* Refactor MovedToRecycleBinNotification to use new MoveEventInfo
* Refactor ContentMovedToRecycleBinNotification to use new MoveEventInfo
* Start implementing parent key in moveinfo
* Add FIXME's to move methods
* Refactor Move to get parentKey for descendants
* Add FIXME for move method
* Use MoveToRecycleBinEventInfo in RelateOnTrashNotificationHandler
* Add fixme's to DataTypeRepository
* Add obsolete messages
* Revert changes in ContentTypeServiceBaseOfTRepositoryTItemTService.cs
* Fix bad indentation
* Pass the recursive variable
* Revert changes in ContentService.cs
* Refactor MoveEventInfo to not duplicate equals method
* Refactor Equals to not duplicate code
* Add UnitTests of Equals
* make equals public and add non-happy path tests
* Remvoe duplicate call to base
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Amended GetAll() on IDataTypeService to return an empty collection rather than null.
* Added a ClearSessionValue method to ISessionManager (given you can no longer set a value to null).
* Allow for null values in a StatefulNotification.
* Removed obsoletion of synchronous messages on TreeControllerBase.
* Fixed further CS8620 warnings in core project.
* Further fix to nullable warning.
* Aligned nullablility of retreiving tree nodes and menus, synchronously or asynchronously (such that we no longer can get null values, always empty collection objects).
* Adding TrackedReferencesController
* Adding/changing views
* Adding/Editing js files
* RelationService changes
* RelationRepository changes
* Adding missing translations
* Adding/Modifying tests
* Beginning of #9125 migration
* Introducing a new component + refactoring based on that
* Abstracting + refactoring
* Work on content unpublishing
* Work on media.delete
* Various small changes
* Beginning of #9119 migration
* Changes on content.delete
* Various fixes
* Adding new keys used in the listview bulk actions
* Adding methods to get the items used in relations from array of ids
* Adding the checkLinkedItems function to the trackedReferencesResource
* Passing the selected items from a listview to unpublish and delete
* Adding umb-tracked-references-listview
* Adding umb-tracked-references-listview-table with language column
* Fixes for tracked references
* Changes in listview unpublish dialog
* Changes in listview delete dialog
* Removing Variants logic as it is not currently supported
* Visual fixes
* Closing dialogs on click
* Fix wording
* Fix breaking changes
* Change to a single title "Items in use" instead of 2 different for Content and Media
* No need for obsoleting because we can change new controllers
* Return ActionResult from actions
* V9: Prevent delete or unpublish of items that have references (#12047)
* Introducing config settings that prevent delete or unpublish of items referenced by other items
* Disable deletion of content items and show a new warning
* Disable deletion of media items and show a new warning
* Disable deletion of list view items
* Disable unpublish and bulk unpublish
* Add a new warning
* V9: Displaying descendants in use as part of item tracking (#12039)
* Replace HasReferencesInDescendants with GetPagedDescendantsInReferences
* Display descendants in use on parent's info tab
* Add getPagedDescendantsInReferences to trackedReferencesResource
* Add lang keys for Descendants in use
* Refactoring controller actions
* Don't call check descendants usage when it is a new item
* rename busfy to busy
* always show references
* rearrange for scrollbar to appear at the edge of the dialog
* use the word referenced instead of used
* change fallback texts
* Added "IsDependency" to relation types
* refactor of umb-tracked-references
* rename checkLinkedItems to getPagedReferencedItems
* rename check to load, to be consistent with the rest.
* Refactored backend . Needs frontend fixes
* Cleanup
* Use filters
* Front-end refactor to match refactored end-points
* Fixed bug + warning
* Fixed query (more then 2100 descensdants) and optimized it (using nested select instead of inner join).
* remove comment
* hideNoneDependencies including varying text for the configuration
* Hack for SqlCE :(
* some final adjustments for item tracking ui
* Unbreak change
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Deleting media via services results in a published MediaDeletedNotification
via scope.Notifications, these are fired on Scope.Complete() and picked up
by the registered handlers.
* Add failing test to demo issue with handlers + scoped dependencies.
* Make using scoped services in notification handlers less painful.
* Update comments for accuracy.
* Try to update admin user unattended
This will fail because we're not in install runtime state
* Create a new user instead of trying to update the default admin
* Create a new user instead of trying to update the default admin
* Use same logic from NewInstallStep to modify the SuperUser aka -1
* Add back stuff after merge conflict from v8/dev
* Add event to be raised
* Trying to wire up events
* Remove commented out code - just need to figure out why event is not hit/triggered
* Read Appsettings as opposed to ENV variables
* Use a JSON file that deletes itself as storing secrets in web.config will be accidently committed
* Remove component based event - Component were only initialized after DB creation
* Move UnattendedInstall down after _factory
* Remove commented out code
* Fixed issue where upgrader UI would show up - needed to recheck the Runtimelevel after UnattenedInstall
* Apply suggestions from code review - Thanks Marc :)
Co-authored-by: Marc Goodson <marc@moriyama.co.uk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Marc Goodson <marc@moriyama.co.uk>
* Gather all notifications in Umbraco.Cms.Core.Notifications
* Rename notifications to match convention
* Move and rename missed notifications
* Move the three remaining public notification into Umbraco.Cms.Core.Notifications
* Allow IMediaFileSystem to be replace in the DI, or registered with inner filesystem
* Remove GetFileSystem from Filesystems
It was only used by tests.
* Make MediaFileSystem inherit from PhysicalFileSystem directly
* Remove FileSystemWrapper
* Remove inner filesystem from MediaFileSystem
* Add MediaFileManager and bare minimum to make it testable
* Remove MediaFileSystem
* Fix unit tests using MediaFileManager
* Remove IFileSystem and rely only on FileSystem
* Hide dangerous methods in FileSystems and do some cleaning
* Apply stylecop warnings to MediaFileManager
* Add FilesystemsCreator to Tests.Common
This allows you to create an instance if FileSystems with your own specified IFileSystem for testing purposes outside our own test suite.
* Allow the stylesheet filesystem to be replaced.
* Fix tests
* Don't save stylesheetWrapper in a temporary var
* refactor(FileSystems): change how stylesheet filesystem is registered
* fix(FileSystems): unable to overwrite media filesystem
SetMediaFileSystem added the MediaManager as a Singleton instead of
replacing the existing instance.
* fix(FileSystems): calling AddFileSystems replaces MediaManager
When calling AddFileSystems after SetMediaFileSystem the MediaManager
gets replaced by the default PhysicalFileSystem, so instead of calling
SetMediaFileSystem in AddFileSystems we now call TrySetMediaFileSystem
instead. This method will not replace any existing instance of the
MediaManager if there's already a MediaManager registered.
* Use SetMediaFileSystem instead of TrySet, and rename AddFilesystems to ConfigureFileSystems
Also don't call AddFileSystems again in ConfigureFilesystems
* Don't wrap CSS filesystem twice
* Add CreateShadowWrapperInternal to avoid casting
* Throw UnauthorizedAccessException isntead of InvalidOperationException
* Remove ResetShadowId
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>
* Remove ScopeEntityRemove from ContentRepositoryBase and rely on "ing" notifications
* Remove old event handler from ContentEventsTests
* Remove ScopedVersionRemove from ContentRepositoryBase and rely on service notifications instead
* Remove unused ScopedVersionEventArgs from ContentRepositoryBase
* Migrate ScopeEntityRefresh to notification pattern
Unfortunately it's still published from the repository base
* Add simple content type notifications
* Publish Notifications instead of events in ContentTypeServiceBase for simple events
* Switch OnChanged to use Notifications for ContentTypeServices
* Publish notifications instead of raising ScopedRefreshedEntity on ContentTypeServiceBase
* Hook up to the new ContentType notifications
* Remove DistributedCacheBinderTests
There are no longer any events to really test on.
* Remove ContentTypeChange EventArgs
* Remove ContentService_Copied from DistributedCacheBinder
It's no longer used
* Cleanup
* Cleanup
* Removed uncommented code
* Fixed issue with unattented installs
* Re-add ContentTreeChangeNotification to DistributedCache
* Add new notification for ScopedEntityRemove
Marked as obsolete/hidden in editor, since this should only be used for nucache for now, and should really be changed in the future
* Mark Refresh notifications as obsolete/hidden
These should not be used anywhere outside Nucache, and should be changed to tree change at some point.
* Raise ScopedEntityRemoveNotification on repos and use in nucache
Co-authored-by: Bjarke Berg <mail@bergmania.dk>