diff --git a/src/Orchard.Web/Core/Shapes/Scripts/base.js b/src/Orchard.Web/Core/Shapes/Scripts/base.js index 49a8fe9ab..73a87d6c8 100644 --- a/src/Orchard.Web/Core/Shapes/Scripts/base.js +++ b/src/Orchard.Web/Core/Shapes/Scripts/base.js @@ -178,9 +178,10 @@ $("[name=" + controller.attr("name") + "]").click(function () { $("[name=" + $(this).attr("name") + "]").each($(this).toggleWhatYouControl); }); } else if (controller.is("option")) { - controller.parent().change(function () { + controller.parent().change(function() { controller.toggleWhatYouControl(); - }).each($(this).toggleWhatYouControl); + }); + controller.each($(this).toggleWhatYouControl); } }); }); diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js index 8c906365e..c60c6f6c3 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js @@ -54,6 +54,7 @@ var baseUrl = $(self).data("base-url"); var partName = $(self).data("part-name"); var fieldName = $(self).data("field-name"); + var types = $(self).data("types"); var refreshIds = function() { var id = $("[name='" + selectedItemsFieldname + "']"); @@ -90,7 +91,8 @@ }, baseUrl: baseUrl, part: partName, - field: fieldName + field: fieldName, + types: types }); }); diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.Edit.cshtml index 2e4ff3ac9..704be8779 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.Edit.cshtml @@ -15,6 +15,7 @@ var partName = Model.PartName; var fieldName = Model.FieldName; var baseUrl = Url.Content("~/") + WorkContext.Resolve().RequestUrlPrefix; + var types = String.Join(",", (IEnumerable)Model.Types ?? Enumerable.Empty()); }
+ data-not-published-text="@T("Not Published")" + data-types="@types"> @if (!String.IsNullOrWhiteSpace(displayName)) { - + }
@T("You need to save your changes.")
@@ -38,7 +40,7 @@ - + @@ -48,7 +50,7 @@
 ↓ ↓ @T("Content Item")  
  - @Html.ItemEditLink(contentItem) @if(!contentItem.HasPublished()) { - @T("Not Published")} + @Html.ItemEditLink(contentItem) @if (!contentItem.HasPublished()){ - @T("Not Published")} @T("Remove") @@ -59,6 +61,6 @@
@T("Add") - + @hint
\ No newline at end of file diff --git a/src/Orchard/Mvc/Filters/OrchardFilterProvider.cs b/src/Orchard/Mvc/Filters/OrchardFilterProvider.cs index cd60fd6b3..ef095b1ed 100644 --- a/src/Orchard/Mvc/Filters/OrchardFilterProvider.cs +++ b/src/Orchard/Mvc/Filters/OrchardFilterProvider.cs @@ -7,8 +7,16 @@ namespace Orchard.Mvc.Filters { public IEnumerable GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) { var workContext = controllerContext.GetWorkContext(); - var filterProviders = workContext.Resolve>(); - return filterProviders.Select(x => new Filter(x, FilterScope.Action, null)); + + // Map IFilterProvider implementations to MVC Filter objects + // Need to provide order values since Filter objects of identical + // scope and order would run in undefined order. + // We create negative order values to avoid conflicts with other + // potential user-provided MVC Filter objects, which hopefully use + // positive order values. We do this by reversing the list and + // negating the index. + var filters = workContext.Resolve>(); + return filters.Reverse().Select((filter, index) => new Filter(filter, FilterScope.Action, -(index + 1))); } } } \ No newline at end of file