mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Some work on the Blogs admin including a rework of the create blog post (page)
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4042268
This commit is contained in:
@@ -243,10 +243,6 @@ a:hover, a:active, a:focus {
|
|||||||
padding:0 0 0 12px;
|
padding:0 0 0 12px;
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
/* todo: (heskew) what's the point of a :visited color for an admin nav?
|
|
||||||
#navigation ul a:visited{
|
|
||||||
color: #2b2b2b;
|
|
||||||
} */
|
|
||||||
#navigation ul a:hover, #navigation ul a:focus {
|
#navigation ul a:hover, #navigation ul a:focus {
|
||||||
background:#f0ecd2;
|
background:#f0ecd2;
|
||||||
color: #3e4301;
|
color: #3e4301;
|
||||||
@@ -255,16 +251,17 @@ a:hover, a:active, a:focus {
|
|||||||
|
|
||||||
/* Content
|
/* Content
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
#main h2, #main h3, #main h4, #main p, #main form {
|
#main h2, #main h3, #main h4, #main p {
|
||||||
margin:.23em 0 1em;
|
margin:.23em 0 1em;
|
||||||
}
|
}
|
||||||
|
#main form {
|
||||||
|
margin:.345em 0 1.5em;
|
||||||
|
}
|
||||||
#main h2, #main h3 {
|
#main h2, #main h3 {
|
||||||
border-bottom:1px dashed #e4e7dc;
|
border-bottom:1px dashed #e4e7dc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Confirmations, Messages and the like
|
||||||
|
|
||||||
/* Confirmations;
|
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
.message {
|
.message {
|
||||||
margin:10px 0 4px 0;
|
margin:10px 0 4px 0;
|
||||||
@@ -346,10 +343,6 @@ textarea {
|
|||||||
width:98.662%;
|
width:98.662%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.radioButton {
|
|
||||||
margin:0 6px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button, .button, .button:link, .button:visited {
|
button, .button, .button:link, .button:visited {
|
||||||
background:#dddfcb url(images/tableHeaderBackground.gif) repeat-x top left;
|
background:#dddfcb url(images/tableHeaderBackground.gif) repeat-x top left;
|
||||||
border:1px solid #d2d6c6;
|
border:1px solid #d2d6c6;
|
||||||
@@ -381,8 +374,8 @@ button:focus, .button:focus {
|
|||||||
}
|
}
|
||||||
#main .manage {
|
#main .manage {
|
||||||
float:right;
|
float:right;
|
||||||
overflow:hidden;
|
|
||||||
margin:3px 0 6px 4px;
|
margin:3px 0 6px 4px;
|
||||||
|
overflow:hidden;
|
||||||
}
|
}
|
||||||
#main div.actions {
|
#main div.actions {
|
||||||
height:2em;
|
height:2em;
|
||||||
@@ -398,124 +391,115 @@ button:focus, .button:focus {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* todo: (heskew) needs attention */
|
||||||
#permalink{
|
#permalink{
|
||||||
width:200px;
|
width:200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input.large.text {
|
input.large.text {
|
||||||
font-size:130%;
|
font-size:130%;
|
||||||
font-weight:500;
|
font-weight:500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.helperText {
|
.helperText {
|
||||||
margin:-4px 0 8px 0;
|
margin:-4px 0 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#Revision_Slug{
|
#Revision_Slug{
|
||||||
width:245px;
|
width:245px;
|
||||||
}
|
}
|
||||||
/* ---------- Sidebar forms ---------- */
|
/* ---------- Sidebar forms ---------- */
|
||||||
|
|
||||||
.sideBar fieldset {margin:0px; border:none;}
|
.sideBar fieldset {margin:0px; border:none;}
|
||||||
|
|
||||||
#Date {width:80px; margin:4px 4px 4px 16px;}
|
#Date {width:80px; margin:4px 4px 4px 16px;}
|
||||||
#Hour, #Minutes {width:30px;}
|
#Hour, #Minutes {width:30px;}
|
||||||
|
|
||||||
/* ---------- Actions form elements and filtering ---------- */
|
/* ---------- Actions form elements and filtering ---------- */
|
||||||
ol.actions {margin:20px 0 0 0;}
|
ol.actions {margin:20px 0 0 0;}
|
||||||
|
|
||||||
ol.actions .button {margin:4px 4px 4px -8px;}
|
ol.actions .button {margin:4px 4px 4px -8px;}
|
||||||
|
|
||||||
ol.actions label {
|
ol.actions label {
|
||||||
margin:9px 0 0;
|
margin:9px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filterActions {
|
.filterActions {
|
||||||
float:right;
|
float:right;
|
||||||
margin:10px 2px 0 0;
|
margin:10px 2px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tables;
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Tables
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
table {
|
table {
|
||||||
border-collapse: separate;
|
|
||||||
width: 100%;
|
|
||||||
border-spacing: 0px;
|
|
||||||
border:1px solid #B0B083;
|
|
||||||
background:#fff;
|
background:#fff;
|
||||||
|
border:1px solid #B0B083;
|
||||||
|
border-collapse:separate;
|
||||||
|
border-spacing:0;
|
||||||
|
width:100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody
|
tbody
|
||||||
{
|
{
|
||||||
border-spacing: 0px;
|
border-spacing:0;
|
||||||
vertical-align: middle;
|
vertical-align:middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
thead, th {
|
thead, th {
|
||||||
font-weight:700;
|
|
||||||
text-align:left;
|
|
||||||
background:url(images/tableHeaderBackground.gif) repeat-x top left #dddfcb;
|
background:url(images/tableHeaderBackground.gif) repeat-x top left #dddfcb;
|
||||||
|
font-weight:700;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
|
text-align:left;
|
||||||
}
|
}
|
||||||
|
/* todo: (heskew) hook back up */
|
||||||
|
|
||||||
.trhover{background-color:#f0f3d6;}
|
.trhover{background-color:#f0f3d6;}
|
||||||
|
|
||||||
th, td {
|
th, td {
|
||||||
padding: 8px 12px;
|
border-bottom:1px solid #EAE9D9;
|
||||||
border-spacing: 0px;
|
border-spacing:0px;
|
||||||
display:table-cell;
|
display:table-cell;
|
||||||
vertical-align: middle;
|
padding:8px 12px;
|
||||||
border-bottom: 1px solid #EAE9D9;
|
vertical-align:middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
caption {
|
caption {
|
||||||
text-indent: 0px;
|
|
||||||
font-size:110%;
|
font-size:110%;
|
||||||
padding:8px 0 8px 0;
|
padding:8px 0 8px 0;
|
||||||
|
text-indent:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
col {
|
col {
|
||||||
border-spacing: 0px;
|
border-spacing:;
|
||||||
display: table-column;
|
display:table-column;
|
||||||
}
|
}
|
||||||
|
|
||||||
colgroup
|
colgroup
|
||||||
{
|
{
|
||||||
border-spacing: 0px;
|
border-spacing:0;
|
||||||
display: table-column-group;
|
display:table-column-group;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.critical {background:#e68585; border:inherit;}
|
tr.critical {background:#e68585; border:inherit;}
|
||||||
|
|
||||||
tr.warning {background:#fdf5bc; border:inherit;}
|
tr.warning {background:#fdf5bc; border:inherit;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* todo: (heskew) needs attention */
|
||||||
/* Horizontal lists
|
/* Horizontal lists
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
|
|
||||||
ul.horizontal, ol.horizontal {
|
ul.horizontal, ol.horizontal {
|
||||||
margin:0;
|
margin:0;
|
||||||
padding:0;
|
padding:0;
|
||||||
list-style:none;
|
list-style:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.horizontal li, ol.horizontal li {
|
ul.horizontal li, ol.horizontal li {
|
||||||
float:left;
|
float:left;
|
||||||
margin:0 4px;
|
margin:0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.horizontal li a, ul.horizontal li a:visited, ul.horizontal li a:active, ol.horizontal li a, ol.horizontal li a:visited, ol.horizontal li a:active {
|
ul.horizontal li a, ul.horizontal li a:visited, ul.horizontal li a:active, ol.horizontal li a, ol.horizontal li a:visited, ol.horizontal li a:active {
|
||||||
display:block;
|
display:block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Miscellaneous;
|
|
||||||
|
|
||||||
|
|
||||||
|
/* MISC.
|
||||||
|
todo: (heskew) pull out into relevant modules where appropriate
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
|
|
||||||
/* CMSPages */
|
/* CMSPages
|
||||||
|
----------------------------------------------------------*/
|
||||||
.templates fieldset {
|
.templates fieldset {
|
||||||
margin:0 0 .933%;
|
margin:0 0 .933%;
|
||||||
}
|
}
|
||||||
@@ -528,43 +512,37 @@ ul.horizontal li a, ul.horizontal li a:visited, ul.horizontal li a:active, ol.ho
|
|||||||
margin:.27em .93em .93em .54em;
|
margin:.27em .93em .93em .54em;
|
||||||
width:124px;
|
width:124px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.previewImage {
|
.previewImage {
|
||||||
width:70%;
|
|
||||||
height:70%;
|
|
||||||
border:1px solid #525e50;
|
border:1px solid #525e50;
|
||||||
|
height:70%;
|
||||||
|
width:70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blogs
|
||||||
|
----------------------------------------------------------*/
|
||||||
|
ul.blogs li {
|
||||||
|
margin:0.575em 0 2.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* todo: (heskew) needs attention */
|
||||||
/* Extensions;
|
/* Extensions;
|
||||||
----------------------------------------------------------*/
|
----------------------------------------------------------*/
|
||||||
|
|
||||||
.floatLeft {float: left;} /*Use this class to float anything to the left*/
|
.floatLeft {float: left;} /*Use this class to float anything to the left*/
|
||||||
|
|
||||||
.floatRight {float: right;} /*Use this class to float anything to the right*/
|
.floatRight {float: right;} /*Use this class to float anything to the right*/
|
||||||
|
|
||||||
.alignRight {text-align: right;}
|
.alignRight {text-align: right;}
|
||||||
|
|
||||||
.Inline {display: inline;}
|
.Inline {display: inline;}
|
||||||
|
|
||||||
.center {margin:0 auto;} /*Center*/
|
.center {margin:0 auto;} /*Center*/
|
||||||
|
|
||||||
.clearLayout {clear:both;} /*Use this class clear layout*/
|
.clearLayout {clear:both;} /*Use this class clear layout*/
|
||||||
|
|
||||||
.disabled {color:#CCC;}
|
.disabled {color:#CCC;}
|
||||||
|
|
||||||
.topSpacer{margin-top: 20px;}
|
.topSpacer{margin-top: 20px;}
|
||||||
|
|
||||||
.bottomSpacer{margin-bottom: 20px;}
|
.bottomSpacer{margin-bottom: 20px;}
|
||||||
|
|
||||||
.displayText {display:none;}
|
.displayText {display:none;}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
.separator {border-bottom:1px dashed #E4E7DC; margin-bottom:8px; padding-bottom:2px;}
|
.separator {border-bottom:1px dashed #E4E7DC; margin-bottom:8px; padding-bottom:2px;}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*TODO - Remove roundCorners class*/
|
/* todo: (heskew) remove roundCorners class */
|
||||||
#content, #navigation li,
|
#content, #navigation li,
|
||||||
table, textarea, .button, input.text, input.text-box, .inputTextLarge,
|
table, textarea, .button, input.text, input.text-box, .inputTextLarge,
|
||||||
.inputTextPermalink, .linkButton, .confirmation.message,
|
.inputTextPermalink, .linkButton, .confirmation.message,
|
||||||
|
|||||||
@@ -96,9 +96,11 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Package.txt" />
|
<Content Include="Package.txt" />
|
||||||
<Content Include="Views\BlogPost\Create.aspx" />
|
<Content Include="Views\BlogPost\Create.aspx" />
|
||||||
|
<Content Include="Views\BlogPost\EditorTemplates\CreateBlogPostViewModel.ascx" />
|
||||||
<Content Include="Views\BlogPost\Item.aspx" />
|
<Content Include="Views\BlogPost\Item.aspx" />
|
||||||
<Content Include="Views\Blog\Create.aspx" />
|
<Content Include="Views\Blog\Create.aspx" />
|
||||||
<Content Include="Views\BlogPost\ListByBlog.aspx" />
|
<Content Include="Views\BlogPost\ListByBlog.aspx" />
|
||||||
|
<Content Include="Views\Blog\DisplayTemplates\Blog.ascx" />
|
||||||
<Content Include="Views\Blog\Edit.aspx" />
|
<Content Include="Views\Blog\Edit.aspx" />
|
||||||
<Content Include="Views\Blog\EditorTemplates\BlogEditViewModel.ascx" />
|
<Content Include="Views\Blog\EditorTemplates\BlogEditViewModel.ascx" />
|
||||||
<Content Include="Views\Blog\EditorTemplates\BlogPermalink.ascx" />
|
<Content Include="Views\Blog\EditorTemplates\BlogPermalink.ascx" />
|
||||||
|
|||||||
@@ -4,9 +4,10 @@
|
|||||||
<%@ Import Namespace="Orchard.Mvc.Html" %>
|
<%@ Import Namespace="Orchard.Mvc.Html" %>
|
||||||
<% Html.Include("Head"); %>
|
<% Html.Include("Head"); %>
|
||||||
<h2>Create New Blog</h2>
|
<h2>Create New Blog</h2>
|
||||||
<p><a href="<%=Url.Blogs() %>">Manage Blogs</a> > Create Blog</p>
|
<p><a href="<%=Url.Blogs() %>">Manage Blogs</a> > Create Blog</p>
|
||||||
<% using (Html.BeginForm()) { %>
|
<% using (Html.BeginForm()) { %>
|
||||||
<%=Html.ValidationSummary() %>
|
<%=Html.ValidationSummary() %>
|
||||||
<%=Html.EditorForModel() %>
|
<%=Html.EditorForModel() %>
|
||||||
|
<fieldset><input class="button" type="submit" value="Create" /></fieldset>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% Html.Include("Foot"); %>
|
<% Html.Include("Foot"); %>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Blog>" %>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
|
<h3><a href="<%=Url.BlogEdit(Model.Slug) %>"><%=Html.Encode(Model.Name) %></a> <span>(<a href="<%=Url.Blog(Model.Slug) %>">view</a>)</span> <span>(<a href="<%=Url.BlogPostCreate(Model.Slug) %>">post</a>)</span></h3>
|
||||||
|
<p>[list of authors] [modify blog access]</p>
|
||||||
|
<p><%=Model.Description %></p>
|
||||||
@@ -1,17 +1,10 @@
|
|||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogsViewModel>" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogsViewModel>" %>
|
||||||
|
<%@ Import Namespace="Orchard.Mvc.Html"%>
|
||||||
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
<%@ Import Namespace="Orchard.Blogs.Extensions"%>
|
||||||
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
<%@ Import Namespace="Orchard.Blogs.Models"%>
|
||||||
<%@ Import Namespace="Orchard.Blogs.ViewModels"
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"
|
||||||
%><div class="actions"><a class="add button" href="<%=Url.BlogCreate() %>">Create a New Blog</a></div><%
|
%><div class="actions"><a class="add button" href="<%=Url.BlogCreate() %>">Create a New Blog</a></div><%
|
||||||
if (Model.Blogs.Count() > 0) { %>
|
if (Model.Blogs.Count() > 0) { %>
|
||||||
<ul><%
|
<%=Html.UnorderedList(Model.Blogs, (b, i) => Html.DisplayFor(blog => b).ToHtmlString(), "blogs") %>
|
||||||
foreach (Blog blog in Model.Blogs) { %>
|
|
||||||
<li>
|
|
||||||
<h3><a href="<%=Url.BlogEdit(blog.Slug) %>"><%=Html.Encode(blog.Name) %></a> <span>(<a href="<%=Url.Blog(blog.Slug) %>">view</a>)</span> <span>(<a href="<%=Url.BlogPostCreate(blog.Slug) %>">post</a>)</span></h3>
|
|
||||||
<p>[list of authors] [modify blog access]</p>
|
|
||||||
<p><%=blog.Description %></p>
|
|
||||||
</li><%
|
|
||||||
} %>
|
|
||||||
</ul>
|
|
||||||
<div class="actions"><a class="add button" href="<%=Url.BlogCreate() %>">Create a New Blog</a></div><%
|
<div class="actions"><a class="add button" href="<%=Url.BlogCreate() %>">Create a New Blog</a></div><%
|
||||||
} %>
|
} %>
|
||||||
@@ -4,9 +4,10 @@
|
|||||||
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
<% Html.Include("Head"); %>
|
<% Html.Include("Head"); %>
|
||||||
<h2>Edit Blog</h2>
|
<h2>Edit Blog</h2>
|
||||||
<p><a href="<%=Url.Blogs() %>">Manage Blogs</a> > Editing <strong><%=Html.Encode(Model.Name)%></strong></p>
|
<p><a href="<%=Url.Blogs() %>">Manage Blogs</a> > Editing <strong><%=Html.Encode(Model.Name)%></strong></p>
|
||||||
<% using (Html.BeginForm()) { %>
|
<% using (Html.BeginForm()) { %>
|
||||||
<%=Html.ValidationSummary() %>
|
<%=Html.ValidationSummary() %>
|
||||||
<%=Html.EditorForModel() %>
|
<%=Html.EditorForModel() %>
|
||||||
|
<fieldset><input class="button" type="submit" value="Save" /></fieldset>
|
||||||
<% } %>
|
<% } %>
|
||||||
<% Html.Include("Foot"); %>
|
<% Html.Include("Foot"); %>
|
||||||
@@ -1,14 +1,11 @@
|
|||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogEditViewModel>" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BlogEditViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="">Blog Name</label>
|
<label for="">Blog Name:</label>
|
||||||
<%=Html.EditorFor(m => m.Name) %>
|
<%=Html.EditorFor(m => m.Name) %>
|
||||||
<fieldset>
|
</fieldset>
|
||||||
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %>
|
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %>
|
||||||
</fieldset>
|
|
||||||
<label for="">Description</label>
|
|
||||||
<%=Html.TextAreaFor(m => m.Description, 5, 60, null)%>
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
</fieldset>
|
<label for="">Description:</label>
|
||||||
<input class="button" type="submit" value="Save" />
|
<%=Html.TextAreaFor(m => m.Description, 5, 60, null) %>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -1,14 +1,11 @@
|
|||||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CreateBlogViewModel>" %>
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CreateBlogViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<label for="">Blog Name</label>
|
<label for="">Blog Name:</label>
|
||||||
<%=Html.EditorFor(m => m.Name) %>
|
<%=Html.EditorFor(m => m.Name) %>
|
||||||
<fieldset>
|
</fieldset>
|
||||||
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %>
|
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %>
|
||||||
</fieldset>
|
|
||||||
<label for="">Description</label>
|
|
||||||
<%=Html.TextAreaFor(m => m.Description, 5, 60, null) %>
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
</fieldset>
|
<label for="">Description:</label>
|
||||||
<input class="button" type="submit" value="Create" />
|
<%=Html.TextAreaFor(m => m.Description, 5, 60, null) %>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -4,23 +4,11 @@
|
|||||||
<%@ Import Namespace="Orchard.Security" %>
|
<%@ Import Namespace="Orchard.Security" %>
|
||||||
<%@ Import Namespace="Orchard.Mvc.Html" %>
|
<%@ Import Namespace="Orchard.Mvc.Html" %>
|
||||||
<% Html.Include("Head"); %>
|
<% Html.Include("Head"); %>
|
||||||
<div class="yui-u">
|
<h2>Create a New Blog Post</h2>
|
||||||
<h2 class="separator">
|
<p><a href="<%=Url.Blogs() %>">Manage Blogs</a> > <a href="<%=Url.BlogEdit(Model.Blog.Slug) %>"><%=Html.Encode(Model.Blog.Name) %></a> > Create Blog Post</p>
|
||||||
Create a New Blog Post</h2>
|
<%using (Html.BeginForm()) { %>
|
||||||
<p class="bottomSpacer">
|
<%= Html.ValidationSummary() %>
|
||||||
<a href="<%=Url.Blogs() %>">Manage Blogs</a> > <a href="<%=Url.BlogEdit(Model.Blog.Slug) %>"><%=Html.Encode(Model.Blog.Name) %></a> > Create Blog Post
|
<%= Html.EditorForModel() %>
|
||||||
</p>
|
<fieldset><input class="button" type="submit" value="Create" /></fieldset>
|
||||||
</div>
|
<% } %>
|
||||||
<div class="yui-u">
|
|
||||||
<%using (Html.BeginForm()) { %>
|
|
||||||
<ol>
|
|
||||||
<%= Html.ValidationSummary() %>
|
|
||||||
<%= Html.EditorForModel() %>
|
|
||||||
<li class="clearLayout">
|
|
||||||
<input class="button" type="submit" value="Create" />
|
|
||||||
<a href="<%=Url.Blogs() %>" class="button">Cancel</a>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<%}/*EndForm*/%>
|
|
||||||
</div>
|
|
||||||
<% Html.Include("Foot"); %>
|
<% Html.Include("Foot"); %>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CreateBlogPostViewModel>" %>
|
||||||
|
<%@ Import Namespace="Orchard.Blogs.ViewModels"%>
|
||||||
|
<div class="sections">
|
||||||
|
<div class="primary">
|
||||||
|
<h3>Blog Post Content</h3>
|
||||||
|
<%-- todo: (heskew) thin out the fieldsets if they become overkill --%>
|
||||||
|
<fieldset>
|
||||||
|
<label for="title">Title:</label>
|
||||||
|
<span><%=Html.TextBoxFor(m => m.Title, new { id = "title", @class = "text" })%></span>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label class="sub" for="permalink">Permalink: <span>http://localhost/<%=Model.Blog.Slug %>/</span></label>
|
||||||
|
<span><%=Html.TextBoxFor(m => m.Slug, new { id = "permalink", @class = "text" })%> <span> « How to write a permalink. » </span></span>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="body">Body:</label>
|
||||||
|
<span><%=Html.TextAreaFor(m => m.Body, new { id = "body", @class = "html" })%></span>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<div class="secondary">
|
||||||
|
<h3>Publish Settings</h3>
|
||||||
|
<fieldset>
|
||||||
|
<label for="Command_PublishNow"><%=Html.RadioButton("Command", "PublishNow", new { id = "Command_PublishNow" }) %> Publish Now</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="Command_PublishLater"><%=Html.RadioButton("Command", "PublishLater", new { id = "Command_PublishLater" }) %> Publish Later</label>
|
||||||
|
<%=Html.EditorFor(m => m.Published) %>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<label for="Command_SaveDraft"><%=Html.RadioButton("Command", "SaveDraft", new { id = "Command_SaveDraft" }) %> Save Draft</label></li>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<input class="button" type="submit" name="submit.Save" value="Save"/>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<p class="bottomSpacer"><%=_Encoded("about setting up a page") %></p>
|
<p class="bottomSpacer"><%=_Encoded("about setting up a page") %></p>
|
||||||
<%=Html.ValidationSummary() %>
|
<%=Html.ValidationSummary() %>
|
||||||
<div class="sections">
|
<div class="sections">
|
||||||
<%using (Html.BeginForm()) { %>
|
<% using (Html.BeginForm()) { %>
|
||||||
<div class="primary">
|
<div class="primary">
|
||||||
<h3><%=_Encoded("Page Content") %></h3>
|
<h3><%=_Encoded("Page Content") %></h3>
|
||||||
<%-- todo: (heskew) change the editors to be self-contained (fieldset > editor) --%>
|
<%-- todo: (heskew) change the editors to be self-contained (fieldset > editor) --%>
|
||||||
@@ -45,6 +45,6 @@
|
|||||||
<input class="delete button" type="submit" name="submit.DeleteDraft" value="Delete Draft" <%=Model.CanDeleteDraft ? "" : "disabled" %>/>
|
<input class="delete button" type="submit" name="submit.DeleteDraft" value="Delete Draft" <%=Model.CanDeleteDraft ? "" : "disabled" %>/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<%}/*EndForm*/%>
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
<% Html.Include("Foot"); %>
|
<% Html.Include("Foot"); %>
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using System.Text;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using Orchard.Utility;
|
using Orchard.Utility;
|
||||||
|
|
||||||
@@ -30,5 +33,56 @@ namespace Orchard.Mvc.Html {
|
|||||||
|
|
||||||
return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
|
return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region UnorderedList
|
||||||
|
|
||||||
|
public static string UnorderedList<T>(this HtmlHelper htmlHelper, IEnumerable<T> items, Func<T, int, string> generateContent, string cssClass) {
|
||||||
|
return htmlHelper.UnorderedList(items, generateContent, cssClass, null, (string)null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string UnorderedList<T>(this HtmlHelper htmlHelper, IEnumerable<T> items, Func<T, int, string> generateContent, string cssClass, string itemCssClass, string alternatingItemCssClass) {
|
||||||
|
return UnorderedList(items, generateContent, cssClass, t => itemCssClass, t => alternatingItemCssClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string UnorderedList<T>(IEnumerable<T> items, Func<T, int, string> generateContent, string cssClass, Func<T, string> generateItemCssClass, Func<T, string> generateAlternatingItemCssClass) {
|
||||||
|
if (items == null || items.Count() == 0) return "";
|
||||||
|
|
||||||
|
var sb = new StringBuilder(250);
|
||||||
|
int counter = 0, count = items.Count() - 1;
|
||||||
|
|
||||||
|
sb.AppendFormat(
|
||||||
|
!string.IsNullOrEmpty(cssClass) ? "<ul class=\"{0}\">" : "<ul>",
|
||||||
|
cssClass
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach (var item in items) {
|
||||||
|
var sbClass = new StringBuilder(50);
|
||||||
|
|
||||||
|
if (counter == 0)
|
||||||
|
sbClass.Append("first ");
|
||||||
|
if (counter == count)
|
||||||
|
sbClass.Append("last ");
|
||||||
|
if (generateItemCssClass != null)
|
||||||
|
sbClass.AppendFormat("{0} ", generateItemCssClass(item));
|
||||||
|
if (counter % 2 != 0 && generateAlternatingItemCssClass != null)
|
||||||
|
sbClass.AppendFormat("{0} ", generateAlternatingItemCssClass(item));
|
||||||
|
|
||||||
|
sb.AppendFormat(
|
||||||
|
sbClass.Length > 0
|
||||||
|
? string.Format("<li class=\"{0}\">{{0}}</li>", sbClass.ToString().TrimEnd())
|
||||||
|
: "<li>{0}</li>",
|
||||||
|
generateContent(item, counter)
|
||||||
|
);
|
||||||
|
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.Append("</ul>");
|
||||||
|
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user