diff --git a/src/Orchard.Web/Core/Containers/Drivers/ContainablePartDriver.cs b/src/Orchard.Web/Core/Containers/Drivers/ContainablePartDriver.cs index c2b79ecc9..c068f61da 100644 --- a/src/Orchard.Web/Core/Containers/Drivers/ContainablePartDriver.cs +++ b/src/Orchard.Web/Core/Containers/Drivers/ContainablePartDriver.cs @@ -63,5 +63,6 @@ namespace Orchard.Core.Containers.Drivers { return shapeHelper.EditorTemplate(TemplateName: "Containable", Model: model, Prefix: "Containable"); }); } + } } diff --git a/src/Orchard.Web/Core/Containers/Drivers/ContainerWidgetPartDriver.cs b/src/Orchard.Web/Core/Containers/Drivers/ContainerWidgetPartDriver.cs index 95c0aa681..bc95121eb 100644 --- a/src/Orchard.Web/Core/Containers/Drivers/ContainerWidgetPartDriver.cs +++ b/src/Orchard.Web/Core/Containers/Drivers/ContainerWidgetPartDriver.cs @@ -67,7 +67,7 @@ namespace Orchard.Core.Containers.Drivers { ? new[] {new SelectListItem {Text = T("(None - create container enabled items first)").Text, Value = "0"}} : containers.Select(x => new SelectListItem { Value = Convert.ToString(x.Id), - Text = x.ContentItem.TypeDefinition.DisplayName + ": " + x.As().Title, + Text = x.ContentItem.TypeDefinition.DisplayName + ": " + _contentManager.GetItemMetadata(x.ContentItem).DisplayText, Selected = x.Id == model.Part.Record.ContainerId, }); diff --git a/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs b/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs index 39b150c41..5b782f1fa 100644 --- a/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs +++ b/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs @@ -4,6 +4,7 @@ using Orchard.ContentManagement; using Orchard.Core.Common.Models; using Orchard.Core.Containers.Models; using Orchard.Core.Routable.Models; +using Orchard.Core.Title.Models; namespace Orchard.Core.Containers.Extensions { @@ -11,6 +12,11 @@ namespace Orchard.Core.Containers.Extensions public static IContentQuery OrderBy(this IContentQuery query, string partAndProperty, bool descendingOrder) where T : IContent { //todo: (heskew) order by custom part properties switch (partAndProperty) { + case "TitlePart.Title": + query = descendingOrder + ? query.OrderByDescending(record => record.Title) + : query.OrderBy(record => record.Title); + break; case "RoutePart.Title": query = descendingOrder ? query.OrderByDescending(record => record.Title) @@ -61,6 +67,10 @@ namespace Orchard.Core.Containers.Extensions // convoluted: yes; quick and works for now: yes; technical debt: not much private static readonly Dictionary, string, IContentQuery>> _filters = new Dictionary, string, IContentQuery>> { + {"TitlePart.Title|<", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == -1*/))}, + {"TitlePart.Title|>", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == 1*/))}, + {"TitlePart.Title|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.Equals(s, StringComparison.OrdinalIgnoreCase)))}, + {"TitlePart.Title|^=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.StartsWith(s, StringComparison.OrdinalIgnoreCase)))}, {"RoutePart.Title|<", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == -1*/))}, {"RoutePart.Title|>", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == 1*/))}, {"RoutePart.Title|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.Equals(s, StringComparison.OrdinalIgnoreCase)))}, diff --git a/src/Orchard.Web/Core/Containers/Views/EditorTemplates/Container.cshtml b/src/Orchard.Web/Core/Containers/Views/EditorTemplates/Container.cshtml index 8e68d9231..3ffc307f8 100644 --- a/src/Orchard.Web/Core/Containers/Views/EditorTemplates/Container.cshtml +++ b/src/Orchard.Web/Core/Containers/Views/EditorTemplates/Container.cshtml @@ -10,7 +10,8 @@ @Html.SelectOption(Model.Part.Record.OrderByProperty, "CommonPart.CreatedUtc", T("Date Created").Text) @Html.SelectOption(Model.Part.Record.OrderByProperty, "CommonPart.PublishedUtc", T("Date Published").Text) - @Html.SelectOption(Model.Part.Record.OrderByProperty, "RoutePart.Title", T("Title").Text) + @Html.SelectOption(Model.Part.Record.OrderByProperty, "TitlePart.Title", T("Title").Text) + @Html.SelectOption(Model.Part.Record.OrderByProperty, "RoutePart.Title", T("Routable Title").Text) @Html.SelectOption(Model.Part.Record.OrderByProperty, "RoutePart.Slug", T("Slug").Text) @Html.SelectOption(Model.Part.Record.OrderByProperty, "CustomPropertiesPart.CustomOne", T("Custom 1").Text) @Html.SelectOption(Model.Part.Record.OrderByProperty, "CustomPropertiesPart.CustomTwo", T("Custom 2").Text) @@ -39,7 +40,8 @@