diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs index e80efac2f..1dbddfa99 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs @@ -100,6 +100,24 @@ namespace Orchard.Blogs.Controllers { } [HttpPost, ActionName("Edit")] + [FormValueRequired("submit.Delete")] + public ActionResult EditDeletePOST(int blogId) { + if (!Services.Authorizer.Authorize(Permissions.ManageBlogs, T("Couldn't delete blog"))) + return new HttpUnauthorizedResult(); + + var blog = _blogService.Get(blogId, VersionOptions.DraftRequired); + if (blog == null) + return HttpNotFound(); + _blogService.Delete(blog); + + Services.Notifier.Information(T("Blog deleted")); + + return Redirect(Url.BlogsForAdmin()); + } + + + [HttpPost, ActionName("Edit")] + [FormValueRequired("submit.Save")] public ActionResult EditPOST(int blogId) { if (!Services.Authorizer.Authorize(Permissions.ManageBlogs, T("Couldn't edit blog"))) return new HttpUnauthorizedResult(); diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogPartDriver.cs index fe04d3db0..90133430c 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/BlogPartDriver.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using JetBrains.Annotations; using Orchard.Blogs.Models; using Orchard.ContentManagement; @@ -10,19 +11,28 @@ namespace Orchard.Blogs.Drivers { protected override DriverResult Display(BlogPart part, string displayType, dynamic shapeHelper) { return Combined( ContentShape("Parts_Blogs_Blog_Manage", - () => shapeHelper.Parts_Blogs_Blog_Manage(ContentPart: part)), + () => shapeHelper.Parts_Blogs_Blog_Manage(ContentPart: part)), ContentShape("Parts_Blogs_Blog_Description", - () => shapeHelper.Parts_Blogs_Blog_Description(ContentPart: part, Description: part.Description)), + () => shapeHelper.Parts_Blogs_Blog_Description(ContentPart: part, Description: part.Description)), ContentShape("Parts_Blogs_Blog_SummaryAdmin", - () => shapeHelper.Parts_Blogs_Blog_SummaryAdmin(ContentPart: part, ContentItem: part.ContentItem)), + () => shapeHelper.Parts_Blogs_Blog_SummaryAdmin(ContentPart: part, ContentItem: part.ContentItem)), ContentShape("Parts_Blogs_Blog_BlogPostCount", - () => shapeHelper.Parts_Blogs_Blog_BlogPostCount(ContentPart: part, PostCount: part.PostCount)) + () => shapeHelper.Parts_Blogs_Blog_BlogPostCount(ContentPart: part, PostCount: part.PostCount)) ); } protected override DriverResult Editor(BlogPart blogPart, dynamic shapeHelper) { - return ContentShape("Parts_Blogs_Blog_Fields", - () => shapeHelper.EditorTemplate(TemplateName: "Parts.Blogs.Blog.Fields", Model: blogPart, Prefix: Prefix)); + var results = new List { + ContentShape("Parts_Blogs_Blog_Fields", + () => shapeHelper.EditorTemplate(TemplateName: "Parts.Blogs.Blog.Fields", Model: blogPart, Prefix: Prefix)) + }; + + + if (blogPart.Id > 0) + results.Add(ContentShape("Blog_DeleteButton", + deleteButton => deleteButton)); + + return Combined(results.ToArray()); } protected override DriverResult Editor(BlogPart blogPart, IUpdateModel updater, dynamic shapeHelper) { diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj index f0bba2831..e74eafbf5 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj @@ -18,6 +18,7 @@ 3.5 + false true @@ -166,6 +167,9 @@ + + + diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/Blog.DeleteButton.cshtml b/src/Orchard.Web/Modules/Orchard.Blogs/Views/Blog.DeleteButton.cshtml new file mode 100644 index 000000000..791c01106 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/Blog.DeleteButton.cshtml @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file