diff --git a/src/Orchard.Web/Content/Admin/css/base.css b/src/Orchard.Web/Content/Admin/css/base.css index 0ba72e5a2..2727147a9 100644 --- a/src/Orchard.Web/Content/Admin/css/base.css +++ b/src/Orchard.Web/Content/Admin/css/base.css @@ -243,10 +243,6 @@ a:hover, a:active, a:focus { padding:0 0 0 12px; 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 { background:#f0ecd2; color: #3e4301; @@ -255,16 +251,17 @@ a:hover, a:active, a:focus { /* Content ----------------------------------------------------------*/ -#main h2, #main h3, #main h4, #main p, #main form { +#main h2, #main h3, #main h4, #main p { margin:.23em 0 1em; } +#main form { + margin:.345em 0 1.5em; +} #main h2, #main h3 { border-bottom:1px dashed #e4e7dc; } - - -/* Confirmations; +/* Confirmations, Messages and the like ----------------------------------------------------------*/ .message { margin:10px 0 4px 0; @@ -346,10 +343,6 @@ textarea { width:98.662%; } -.radioButton { -margin:0 6px 0 0; -} - button, .button, .button:link, .button:visited { background:#dddfcb url(images/tableHeaderBackground.gif) repeat-x top left; border:1px solid #d2d6c6; @@ -381,8 +374,8 @@ button:focus, .button:focus { } #main .manage { float:right; - overflow:hidden; margin:3px 0 6px 4px; + overflow:hidden; } #main div.actions { height:2em; @@ -398,124 +391,115 @@ button:focus, .button:focus { + +/* todo: (heskew) needs attention */ #permalink{ width:200px; } - input.large.text { font-size:130%; font-weight:500; } - .helperText { margin:-4px 0 8px 0; } - - #Revision_Slug{ width:245px; } /* ---------- Sidebar forms ---------- */ - .sideBar fieldset {margin:0px; border:none;} - #Date {width:80px; margin:4px 4px 4px 16px;} #Hour, #Minutes {width:30px;} - /* ---------- Actions form elements and filtering ---------- */ ol.actions {margin:20px 0 0 0;} - ol.actions .button {margin:4px 4px 4px -8px;} - ol.actions label { margin:9px 0 0; } - .filterActions { float:right; margin:10px 2px 0 0; } -/* Tables; + + + +/* Tables ----------------------------------------------------------*/ - - table { - border-collapse: separate; - width: 100%; - border-spacing: 0px; - border:1px solid #B0B083; background:#fff; + border:1px solid #B0B083; + border-collapse:separate; + border-spacing:0; + width:100%; } - tbody { - border-spacing: 0px; - vertical-align: middle; + border-spacing:0; + vertical-align:middle; } - thead, th { - font-weight:700; - text-align:left; background:url(images/tableHeaderBackground.gif) repeat-x top left #dddfcb; + font-weight:700; overflow:hidden; + text-align:left; } - - +/* todo: (heskew) hook back up */ .trhover{background-color:#f0f3d6;} - th, td { - padding: 8px 12px; - border-spacing: 0px; + border-bottom:1px solid #EAE9D9; + border-spacing:0px; display:table-cell; - vertical-align: middle; - border-bottom: 1px solid #EAE9D9; + padding:8px 12px; + vertical-align:middle; } - caption { - text-indent: 0px; font-size:110%; padding:8px 0 8px 0; + text-indent:0; } - col { - border-spacing: 0px; - display: table-column; - } - + border-spacing:; + display:table-column; +} colgroup { - border-spacing: 0px; - display: table-column-group; + border-spacing:0; + display:table-column-group; } tr.critical {background:#e68585; border:inherit;} - tr.warning {background:#fdf5bc; border:inherit;} + + + +/* todo: (heskew) needs attention */ /* Horizontal lists ----------------------------------------------------------*/ - ul.horizontal, ol.horizontal { margin:0; padding:0; list-style:none; } - ul.horizontal li, ol.horizontal li { float:left; 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 { display:block; text-decoration: none; } -/* Miscellaneous; + + + +/* MISC. +todo: (heskew) pull out into relevant modules where appropriate ----------------------------------------------------------*/ -/* CMSPages */ +/* CMSPages +----------------------------------------------------------*/ .templates fieldset { 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; width:124px; } - .previewImage { - width:70%; - height:70%; border:1px solid #525e50; + height:70%; + width:70%; +} + +/* Blogs +----------------------------------------------------------*/ +ul.blogs li { + margin:0.575em 0 2.5em; } - +/* todo: (heskew) needs attention */ /* Extensions; ----------------------------------------------------------*/ - .floatLeft {float: left;} /*Use this class to float anything to the left*/ - .floatRight {float: right;} /*Use this class to float anything to the right*/ - .alignRight {text-align: right;} - .Inline {display: inline;} - .center {margin:0 auto;} /*Center*/ - .clearLayout {clear:both;} /*Use this class clear layout*/ - .disabled {color:#CCC;} - .topSpacer{margin-top: 20px;} - .bottomSpacer{margin-bottom: 20px;} - .displayText {display:none;} - /* .separator {border-bottom:1px dashed #E4E7DC; margin-bottom:8px; padding-bottom:2px;} */ -/*TODO - Remove roundCorners class*/ +/* todo: (heskew) remove roundCorners class */ #content, #navigation li, table, textarea, .button, input.text, input.text-box, .inputTextLarge, .inputTextPermalink, .linkButton, .confirmation.message, diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Packages/Orchard.Blogs/Orchard.Blogs.csproj index bca24f89a..d7a9b8918 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Orchard.Blogs.csproj @@ -96,9 +96,11 @@ + + diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Create.aspx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Create.aspx index 3d6d27e41..4b7ebe2aa 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Create.aspx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Create.aspx @@ -4,9 +4,10 @@ <%@ Import Namespace="Orchard.Mvc.Html" %> <% Html.Include("Head"); %>

Create New Blog

-

Manage Blogs > Create Blog

+

Manage Blogs > Create Blog

<% using (Html.BeginForm()) { %> <%=Html.ValidationSummary() %> <%=Html.EditorForModel() %> +
<% } %> <% Html.Include("Foot"); %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/Blog.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/Blog.ascx new file mode 100644 index 000000000..71e979d63 --- /dev/null +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/Blog.ascx @@ -0,0 +1,6 @@ +<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.Blogs.Extensions"%> +<%@ Import Namespace="Orchard.Blogs.Models"%> +

<%=Html.Encode(Model.Name) %> (view) (post)

+

[list of authors] [modify blog access]

+

<%=Model.Description %>

diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/BlogsViewModel.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/BlogsViewModel.ascx index 79921966d..4cee2075c 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/BlogsViewModel.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/DisplayTemplates/BlogsViewModel.ascx @@ -1,17 +1,10 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.Mvc.Html"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Blogs.ViewModels" %><% if (Model.Blogs.Count() > 0) { %> - +<%=Html.UnorderedList(Model.Blogs, (b, i) => Html.DisplayFor(blog => b).ToHtmlString(), "blogs") %> <% } %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Edit.aspx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Edit.aspx index 77174a618..500722983 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Edit.aspx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/Edit.aspx @@ -4,9 +4,10 @@ <%@ Import Namespace="Orchard.Blogs.ViewModels"%> <% Html.Include("Head"); %>

Edit Blog

-

Manage Blogs > Editing <%=Html.Encode(Model.Name)%>

+

Manage Blogs > Editing <%=Html.Encode(Model.Name)%>

<% using (Html.BeginForm()) { %> <%=Html.ValidationSummary() %> <%=Html.EditorForModel() %> +
<% } %> <% Html.Include("Foot"); %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/BlogEditViewModel.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/BlogEditViewModel.ascx index f603cbd23..02ca0e878 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/BlogEditViewModel.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/BlogEditViewModel.ascx @@ -1,14 +1,11 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Blogs.ViewModels"%>
- + <%=Html.EditorFor(m => m.Name) %> -
+
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %> -
- - <%=Html.TextAreaFor(m => m.Description, 5, 60, null)%>
-
- + + <%=Html.TextAreaFor(m => m.Description, 5, 60, null) %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/CreateBlogViewModel.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/CreateBlogViewModel.ascx index dbe55e224..3bc93b0f7 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/CreateBlogViewModel.ascx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/Blog/EditorTemplates/CreateBlogViewModel.ascx @@ -1,14 +1,11 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Blogs.ViewModels"%>
- + <%=Html.EditorFor(m => m.Name) %> -
+
<%=Html.EditorFor(m => m.Slug, "BlogPermalink") %> -
- - <%=Html.TextAreaFor(m => m.Description, 5, 60, null) %>
-
- + + <%=Html.TextAreaFor(m => m.Description, 5, 60, null) %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/Create.aspx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/Create.aspx index 014d2312a..a38263af2 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/Create.aspx +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/Create.aspx @@ -4,23 +4,11 @@ <%@ Import Namespace="Orchard.Security" %> <%@ Import Namespace="Orchard.Mvc.Html" %> <% Html.Include("Head"); %> -
-

- Create a New Blog Post

-

- Manage Blogs > <%=Html.Encode(Model.Blog.Name) %> > Create Blog Post -

-
-
- <%using (Html.BeginForm()) { %> -
    - <%= Html.ValidationSummary() %> - <%= Html.EditorForModel() %> -
  1. - - Cancel -
  2. -
- <%}/*EndForm*/%> -
+

Create a New Blog Post

+

Manage Blogs > <%=Html.Encode(Model.Blog.Name) %> > Create Blog Post

+ <%using (Html.BeginForm()) { %> + <%= Html.ValidationSummary() %> + <%= Html.EditorForModel() %> +
+ <% } %> <% Html.Include("Foot"); %> \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/EditorTemplates/CreateBlogPostViewModel.ascx b/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/EditorTemplates/CreateBlogPostViewModel.ascx new file mode 100644 index 000000000..ad7d86db9 --- /dev/null +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Views/BlogPost/EditorTemplates/CreateBlogPostViewModel.ascx @@ -0,0 +1,36 @@ +<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.Blogs.ViewModels"%> +
+
+

Blog Post Content

+ <%-- todo: (heskew) thin out the fieldsets if they become overkill --%> +
+ + <%=Html.TextBoxFor(m => m.Title, new { id = "title", @class = "text" })%> +
+
+ + <%=Html.TextBoxFor(m => m.Slug, new { id = "permalink", @class = "text" })%> « How to write a permalink. » +
+
+ + <%=Html.TextAreaFor(m => m.Body, new { id = "body", @class = "html" })%> +
+
+
+

Publish Settings

+
+ +
+
+ + <%=Html.EditorFor(m => m.Published) %> +
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages/Views/Admin/Edit.aspx b/src/Orchard.Web/Packages/Orchard.CmsPages/Views/Admin/Edit.aspx index aacd5b31c..a6ae99be7 100644 --- a/src/Orchard.Web/Packages/Orchard.CmsPages/Views/Admin/Edit.aspx +++ b/src/Orchard.Web/Packages/Orchard.CmsPages/Views/Admin/Edit.aspx @@ -6,7 +6,7 @@

<%=_Encoded("about setting up a page") %>

<%=Html.ValidationSummary() %>
- <%using (Html.BeginForm()) { %> + <% using (Html.BeginForm()) { %>

<%=_Encoded("Page Content") %>

<%-- todo: (heskew) change the editors to be self-contained (fieldset > editor) --%> @@ -45,6 +45,6 @@ />
- <%}/*EndForm*/%> + <% } %>
<% Html.Include("Foot"); %> \ No newline at end of file diff --git a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs index fba191fb5..82dde32d0 100644 --- a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs +++ b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs @@ -1,5 +1,8 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Linq.Expressions; +using System.Text; using System.Web.Mvc; using Orchard.Utility; @@ -30,5 +33,56 @@ namespace Orchard.Mvc.Html { return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal)); } + + #region UnorderedList + + public static string UnorderedList(this HtmlHelper htmlHelper, IEnumerable items, Func generateContent, string cssClass) { + return htmlHelper.UnorderedList(items, generateContent, cssClass, null, (string)null); + } + + public static string UnorderedList(this HtmlHelper htmlHelper, IEnumerable items, Func generateContent, string cssClass, string itemCssClass, string alternatingItemCssClass) { + return UnorderedList(items, generateContent, cssClass, t => itemCssClass, t => alternatingItemCssClass); + } + + private static string UnorderedList(IEnumerable items, Func generateContent, string cssClass, Func generateItemCssClass, Func 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) ? "
    " : "
      ", + 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("
    • {{0}}
    • ", sbClass.ToString().TrimEnd()) + : "
    • {0}
    • ", + generateContent(item, counter) + ); + + counter++; + } + + sb.Append("
    "); + + return sb.ToString(); + } + + #endregion + } }