The issue was that the snippets harvester included the Elements_Snippet shape which itself is not a snippet.
This also fixes an issue where it would not find snippets defined in the current theme.
This changeset also renames the service to IClientAddressAccessor and refactors the settings into being configurable from HostComponents instead of through a site settings part.
Work Item: 21237
The reason for doing this is that the Container module itself queries for available _ListViewProviders_, which could potentially yield zero providers if the *Lists* module is not enabled.
The issue was that during page initialization, the Content element's HTML would be serialized with the URL encoded version of its contents, but shortly after that HTML would be URL decoded, causing a difference in the serialized JSON between the initial serialization and final serialization (upon page unload).
The issue was that by combining existing element data with posted element data, the existing items would retain their values in case no such item was posted, which is the case for unchecked checkboxes; their name/value pair will be not posted, so the original value would be retained.
This is fixed by no longer combining existing data with hosted data, but instead relying that an element editor will post all data that it is concerned with.
Merge branch 'IBN-Labs/MailPlusCC' of https://git01.codeplex.com/forks/qt1/orchad4ibn into PR
Conflicts:
src/Orchard.Web/Modules/Orchard.Email/Services/SmtpMessageChannel.cs
Work Item: 21002
This fixes an issue where the remainder of the attributes on an XML element are not being processed if a certain attribute does not exist as a property on the part.
For example, the SiteCultures attribute on the element being imported would not match to a property on the SiteSettingsPart, so the remainder of the attributes would be skipped.
Content is optional context, so if it's null, we can't render the part element.
This typically only happens when the layout editor is used outside the context of a content item and still renders the various content part elements as part of the toolbox.
This change makes implementing element editors more intuitive, since they no longer rely on the initial postback from layout editor to the element editor dialog.
The ObjectStore is a simple database table that serves as a robust data transfer mechanism to share element state without the need for the host (content) to be persisted.
We could have used SessionState, but that would have added configuration requirements when hosting in a web farm.
This issue fixes an issue where multiple drivers for the same element type would throw an exception due to the element type being present more than once in the element type repository.
The issue occurs when rendering an Html.CheckBox whose state contains a "true,false" string for example.
That string cannot be parsed into a boolean, so an error occurs.
This fix simply ignores any additional values for a given key (which presumably is what the default behavior is anyway, since the issue does not occur with the default value providers).
This fixes the issue where blueprint elements were still available even after deleting them.
The fix is to evict the cached element descriptors when a blueprint element is deleted.
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.
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.