mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-11-28 17:32:44 +08:00
Added an admin blog management page and changed some links throughout the blog admin to point to it instead of the blog edit page.
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4043012
This commit is contained in:
@@ -51,6 +51,19 @@ namespace Orchard.Blogs.Controllers {
|
|||||||
return View(new BlogViewModel { Blog = blog, Posts = posts });
|
return View(new BlogViewModel { Blog = blog, Posts = posts });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: (erikpo) Should move the slug parameter and get call and null check up into a model binder
|
||||||
|
public ActionResult ItemForAdmin(string blogSlug)
|
||||||
|
{
|
||||||
|
Blog blog = _blogService.Get(blogSlug);
|
||||||
|
|
||||||
|
if (blog == null)
|
||||||
|
return new NotFoundResult();
|
||||||
|
|
||||||
|
IEnumerable<BlogPost> posts = _blogPostService.Get(blog);
|
||||||
|
|
||||||
|
return View(new BlogForAdminViewModel { Blog = blog, Posts = posts });
|
||||||
|
}
|
||||||
|
|
||||||
public ActionResult Create() {
|
public ActionResult Create() {
|
||||||
return View(new CreateBlogViewModel());
|
return View(new CreateBlogViewModel());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ namespace Orchard.Blogs.Extensions {
|
|||||||
return urlHelper.Action("Item", "Blog", new {blogSlug, area = "Orchard.Blogs"});
|
return urlHelper.Action("Item", "Blog", new {blogSlug, area = "Orchard.Blogs"});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string BlogForAdmin(this UrlHelper urlHelper, string blogSlug) {
|
||||||
|
return urlHelper.Action("ItemForAdmin", "Blog", new {blogSlug, area = "Orchard.Blogs"});
|
||||||
|
}
|
||||||
|
|
||||||
public static string BlogCreate(this UrlHelper urlHelper) {
|
public static string BlogCreate(this UrlHelper urlHelper) {
|
||||||
return urlHelper.Action("Create", "Blog", new {area = "Orchard.Blogs"});
|
return urlHelper.Action("Create", "Blog", new {area = "Orchard.Blogs"});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,7 @@
|
|||||||
<Compile Include="ViewModels\BlogPostViewModel.cs" />
|
<Compile Include="ViewModels\BlogPostViewModel.cs" />
|
||||||
<Compile Include="ViewModels\BlogPostEditViewModel.cs" />
|
<Compile Include="ViewModels\BlogPostEditViewModel.cs" />
|
||||||
<Compile Include="ViewModels\BlogsViewModel.cs" />
|
<Compile Include="ViewModels\BlogsViewModel.cs" />
|
||||||
|
<Compile Include="ViewModels\BlogForAdminViewModel.cs" />
|
||||||
<Compile Include="ViewModels\CreateBlogPostViewModel.cs" />
|
<Compile Include="ViewModels\CreateBlogPostViewModel.cs" />
|
||||||
<Compile Include="ViewModels\CreateBlogViewModel.cs" />
|
<Compile Include="ViewModels\CreateBlogViewModel.cs" />
|
||||||
<Compile Include="ViewModels\BlogEditViewModel.cs" />
|
<Compile Include="ViewModels\BlogEditViewModel.cs" />
|
||||||
@@ -102,6 +103,8 @@
|
|||||||
<Content Include="Views\BlogPost\Create.aspx" />
|
<Content Include="Views\BlogPost\Create.aspx" />
|
||||||
<Content Include="Views\BlogPost\Edit.aspx" />
|
<Content Include="Views\BlogPost\Edit.aspx" />
|
||||||
<Content Include="Views\BlogPost\EditorTemplates\BlogPostEditViewModel.ascx" />
|
<Content Include="Views\BlogPost\EditorTemplates\BlogPostEditViewModel.ascx" />
|
||||||
|
<Content Include="Views\Blog\DisplayTemplates\BlogForAdminViewModel.ascx" />
|
||||||
|
<Content Include="Views\Blog\ItemForAdmin.aspx" />
|
||||||
<Content Include="Views\Blog\DisplayTemplates\BlogsForAdminViewModel.ascx" />
|
<Content Include="Views\Blog\DisplayTemplates\BlogsForAdminViewModel.ascx" />
|
||||||
<Content Include="Views\Blog\DisplayTemplates\BlogForAdmin.ascx" />
|
<Content Include="Views\Blog\DisplayTemplates\BlogForAdmin.ascx" />
|
||||||
<Content Include="Views\Blog\List.aspx" />
|
<Content Include="Views\Blog\List.aspx" />
|
||||||
|
|||||||
@@ -51,6 +51,22 @@ namespace Orchard.Blogs {
|
|||||||
},
|
},
|
||||||
new MvcRouteHandler())
|
new MvcRouteHandler())
|
||||||
},
|
},
|
||||||
|
new RouteDescriptor {
|
||||||
|
Route = new Route(
|
||||||
|
"Admin/Blogs/{blogSlug}",
|
||||||
|
new RouteValueDictionary {
|
||||||
|
{"area", "Orchard.Blogs"},
|
||||||
|
{"controller", "Blog"},
|
||||||
|
{"action", "ItemForAdmin"}
|
||||||
|
},
|
||||||
|
new RouteValueDictionary {
|
||||||
|
{"blogSlug", new IsBlogConstraint(_blogService)}
|
||||||
|
},
|
||||||
|
new RouteValueDictionary {
|
||||||
|
{"area", "Orchard.Blogs"}
|
||||||
|
},
|
||||||
|
new MvcRouteHandler())
|
||||||
|
},
|
||||||
new RouteDescriptor {
|
new RouteDescriptor {
|
||||||
Route = new Route(
|
Route = new Route(
|
||||||
"Admin/Blogs/{blogSlug}/Posts/Create",
|
"Admin/Blogs/{blogSlug}/Posts/Create",
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using Orchard.Blogs.Models;
|
||||||
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
|
namespace Orchard.Blogs.ViewModels {
|
||||||
|
public class BlogForAdminViewModel : AdminViewModel {
|
||||||
|
public Blog Blog { get; set; }
|
||||||
|
public IEnumerable<BlogPost> Posts { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
<h2>
|
<h2>
|
||||||
<a href="<%=Url.Blog(Model.Slug) %>"><%=Html.Encode(Model.Name) %></a>
|
<a href="<%=Url.BlogForAdmin(Model.Slug) %>"><%=Html.Encode(Model.Name) %></a>
|
||||||
<span>(<%=Model.PostCount %> post<%=Model.PostCount == 1 ? "" : "s" %>)</span>
|
<span>(<%=Model.PostCount %> post<%=Model.PostCount == 1 ? "" : "s" %>)</span>
|
||||||
</h2>
|
</h2>
|
||||||
<p><%=Model.Description %></p>
|
<p><%=Model.Description %></p>
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Blog>" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Blog>" %>
|
||||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
<h3><a href="<%=Url.BlogEdit(Model.Slug) %>"><%=Html.Encode(Model.Name) %></a></h3>
|
<h3><a href="<%=Url.BlogForAdmin(Model.Slug) %>"><%=Html.Encode(Model.Name) %></a></h3>
|
||||||
<%--<p>[list of authors] [modify blog access]</p>--%>
|
<%--<p>[list of authors] [modify blog access]</p>--%>
|
||||||
<p><%=Model.Description %></p>
|
<p><%=Model.Description %></p>
|
||||||
<p class="actions">
|
<p class="actions">
|
||||||
<%-- todo: (heskew) make into a ul --%>
|
<%-- todo: (heskew) make into a ul --%>
|
||||||
<span class="construct">
|
<span class="construct">
|
||||||
<a href="<%=Url.Blog(Model.Slug) %>">manage posts</a>
|
<a href="<%=Url.BlogForAdmin(Model.Slug) %>">manage posts</a>
|
||||||
| <a href="#">edit</a>
|
| <a href="<%=Url.BlogEdit(Model.Slug) %>">edit</a>
|
||||||
| <a href="#">view</a>
|
| <a href="<%=Url.Blog(Model.Slug) %>">view</a>
|
||||||
| <a href="#">create post</a>
|
| <a href="<%=Url.BlogPostCreate(Model.Slug) %>">create post</a>
|
||||||
</span>
|
</span>
|
||||||
<span class="destruct"><a href="#">delete</a></span>
|
<span class="destruct"><a href="#">delete</a></span>
|
||||||
</p>
|
</p>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogForAdminViewModel>" %>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
|
<h1><a href="<%=Url.BlogForAdmin(Model.Blog.Slug) %>"><%=Html.Encode(Model.Blog.Name) %></a></h1>
|
||||||
|
<p><%=Model.Blog.Description %></p>
|
||||||
|
<div><a href="<%=Url.BlogEdit(Model.Blog.Slug) %>">(edit)</a></div><%
|
||||||
|
//TODO: (erikpo) Move this into a helper
|
||||||
|
if (Model.Posts.Count() > 0) { %>
|
||||||
|
<ul><%
|
||||||
|
foreach (BlogPost post in Model.Posts) { %>
|
||||||
|
<li><% Html.RenderPartial("BlogPostPreview", post); %></li><%
|
||||||
|
} %>
|
||||||
|
</ul><%
|
||||||
|
} %>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogForAdminViewModel>" %>
|
||||||
|
<%@ Import Namespace="Orchard.Core.Common.Models"%>
|
||||||
|
<%@ Import Namespace="Orchard.Models"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
|
<%@ Import Namespace="Orchard.Mvc.Html"%>
|
||||||
|
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||||
|
<% Html.Include("AdminHead"); %>
|
||||||
|
<%=Html.DisplayForModel() %>
|
||||||
|
<% Html.Include("AdminFoot"); %>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
<% Html.Include("AdminHead"); %>
|
<% Html.Include("AdminHead"); %>
|
||||||
<h2>Edit Blog Post</h2>
|
<h2>Edit Blog Post</h2>
|
||||||
<p><a href="<%=Url.BlogsForAdmin() %>">Manage Blogs</a> > <a href="<%=Url.BlogEdit(Model.Blog.Slug) %>"><%=Html.Encode(Model.Blog.Name)%></a> > <a href="<%=Url.BlogPostEdit(Model.Blog.Slug, Model.Post.Slug) %>"><%=Model.Title %></a></p>
|
<p><a href="<%=Url.BlogsForAdmin() %>">Manage Blogs</a> > <a href="<%=Url.BlogForAdmin(Model.Blog.Slug) %>"><%=Html.Encode(Model.Blog.Name)%></a> > <a href="<%=Url.BlogPostEdit(Model.Blog.Slug, Model.Post.Slug) %>"><%=Model.Title %></a></p>
|
||||||
<% using (Html.BeginForm()) { %>
|
<% using (Html.BeginForm()) { %>
|
||||||
<%=Html.ValidationSummary() %>
|
<%=Html.ValidationSummary() %>
|
||||||
<%=Html.EditorForModel() %>
|
<%=Html.EditorForModel() %>
|
||||||
|
|||||||
Reference in New Issue
Block a user