- Added synchronization of multiple concurrent content regeneration on cache miss.
- Added support for grace time, configurable per route.
- Refactored and cleaned up code and comments througout the module.
- Made many members "protected virtual" on OutputCacheFilter for easier substitution.
- Made various usability improvements in admin UI.
- Added support for "vary by authentication state".
CultureCommand change actually fixes a benign bug in one of the commands (extra space at the end).
DisplayHelper is clarified by better typing of intermediate results.
This changeset cleans up Orchard.Caching by having the service accept and return plain objects to support both class and value types, while providing extension methods offering a strongly typed approach.
Orchard.Redis is updated as the changes break any implementation of ICacheService and ICacheStorageProvider.
Before this change, the StopRoutingHandler wouldn't work, since the wrapping HttpHandler would invoke the GetHttpHandler on the nested route handler, which in the case of StopRoutingHandler would throw a NotSupportedException.
Maybe a better, more generic way would be to somehow identify which routing handlers should be wrapped and which shouldn't be, maybe based on the result of the GetVirtualPath method on the RouteData object (e.g. if it returns "null", don't wrap).
This fixes an issue causing a YSOD on the AuditTrail screen by recording all relevant data for the AuditTrailSettings event provider, such that the event providers themselves can be disabled without breaking the recorded events (which relied on the Event Descriptor to be available when rendering the event, which is unavailable if its providing feature is disabled).
Work Item: 21091
The issue was that if you first "new up" a content item, update its content fields, and then invoke "create", its version record will be created, effectively wiping out the content fields' state.
Since we already know we want to create the content item, we can new up the content item and go ahead and create its version record, deferring event handlers from being triggered when we would start out with "Create".
The problem before this change was that the cache manager would cache an empty list of elements when trying to locate a blueprint element without specifying a content item.
The VaryByParam property allows additional control over the cache key.
This allows for more granular control over what gets rendered when.
One scenario that this enables is where one can create an Element Blueprint and use it as a widget via the ElementWrapperPart.
- Removed all the infrastructural code that enabled each element to contribute to the index.
- Indexing now happens in the LayoutPartHandler, where the LayoutPart is rendered to HTML, which is then being indexed.
- Removed png image for toolbar buttons in mediapicker and medialibrary plugins and replaced with vector icon to harmonize with other toolbar buttons.
- Fixed styling of menu items and enabled menu bar and status bar.
- Improved toolbar button ordering.
- Enabled more features.
- Added styling of pre and code elements in editor.
- Cleaned up JavaScript formatting.
Because Orchard.Pages no longer adds the BodyPart by default, the Core recipe will have to add it, since it uses the "page create" command which expects the BodyPart to be there.