diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogArchivesPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogArchivesPartDriver.cs index 0c0406ea7..5952ce6ff 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogArchivesPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogArchivesPartDriver.cs @@ -1,5 +1,7 @@ -using Orchard.Blogs.Models; +using System.Linq; +using Orchard.Blogs.Models; using Orchard.Blogs.Services; +using Orchard.Blogs.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; @@ -28,12 +30,21 @@ namespace Orchard.Blogs.Drivers { } protected override DriverResult Editor(BlogArchivesPart part, dynamic shapeHelper) { + var viewModel = new BlogArchivesViewModel { + Slug = part.ForBlog, + Blogs = _blogService.Get().ToList().OrderBy(b => b.Name) + }; + return ContentShape("Parts_Blogs_BlogArchives_Edit", - () => shapeHelper.EditorTemplate(TemplateName: "Parts.Blogs.BlogArchives", Model: part, Prefix: Prefix)); + () => shapeHelper.EditorTemplate(TemplateName: "Parts.Blogs.BlogArchives", Model: viewModel, Prefix: Prefix)); } protected override DriverResult Editor(BlogArchivesPart part, IUpdateModel updater, dynamic shapeHelper) { - updater.TryUpdateModel(part, Prefix, null, null); + var viewModel = new BlogArchivesViewModel(); + if (updater.TryUpdateModel(viewModel, Prefix, null, null)) { + part.ForBlog = viewModel.Slug; + } + return Editor(part, shapeHelper); } } diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj index f5dbbc399..9f6da5166 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj @@ -96,6 +96,7 @@ + diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/BlogArchivesViewModel.cs b/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/BlogArchivesViewModel.cs new file mode 100644 index 000000000..82ac0a459 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/BlogArchivesViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using Orchard.Blogs.Models; + +namespace Orchard.Blogs.ViewModels { + public class BlogArchivesViewModel { + public string Slug { get; set; } + public IEnumerable Blogs { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.BlogArchives.cshtml b/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.BlogArchives.cshtml index 81ed5d01d..64204dc39 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.BlogArchives.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.BlogArchives.cshtml @@ -1,8 +1,17 @@ -@model Orchard.Blogs.Models.BlogArchivesPart +@model Orchard.Blogs.ViewModels.BlogArchivesViewModel + +@using Orchard.Blogs.Models; +@using Orchard.Core.Routable.Models; +@using Orchard.ContentManagement; +
- @Html.LabelFor(m => m.ForBlog, T("For Blog")) - @Html.TextBoxFor(m => m.ForBlog) - @T("Show the archives for which blog? Note: specify the blog's slug.") + @Html.LabelFor(m => m.Slug, T("For Blog")) + + @T("Select which blog you want to display the archives for")
\ No newline at end of file