diff --git a/src/Orchard.Web.Tests/Routes/RouteTests.cs b/src/Orchard.Web.Tests/Routes/RouteTests.cs index d5e4447d6..f14bc4a87 100644 --- a/src/Orchard.Web.Tests/Routes/RouteTests.cs +++ b/src/Orchard.Web.Tests/Routes/RouteTests.cs @@ -20,57 +20,6 @@ namespace Orchard.Web.Tests.Routes { Assert.That(routeData.RouteHandler, Is.TypeOf()); } - [Test] - public void RouteWithControllerNoActionNoId() { - // Arrange - var context = new StubContext("~/controller1"); - var routes = new RouteCollection(); - MvcApplication.RegisterRoutes(routes); - - // Act - var routeData = routes.GetRouteData(context); - - // Assert - Assert.That(routeData, Is.Not.Null); - Assert.That(routeData.Values["controller"], Is.EqualTo("controller1")); - Assert.That(routeData.Values["action"], Is.EqualTo("Index")); - Assert.That(routeData.Values["id"], Is.EqualTo("")); - } - - [Test] - public void RouteWithControllerWithActionNoId() { - // Arrange - var context = new StubContext("~/controller1/action2"); - var routes = new RouteCollection(); - MvcApplication.RegisterRoutes(routes); - - // Act - var routeData = routes.GetRouteData(context); - - // Assert - Assert.That(routeData, Is.Not.Null); - Assert.That(routeData.Values["controller"], Is.EqualTo("controller1")); - Assert.That(routeData.Values["action"], Is.EqualTo("action2")); - Assert.That(routeData.Values["id"], Is.EqualTo("")); - } - - [Test] - public void RouteWithControllerWithActionWithId() { - // Arrange - var context = new StubContext("~/controller1/action2/id3"); - var routes = new RouteCollection(); - MvcApplication.RegisterRoutes(routes); - - // Act - var routeData = routes.GetRouteData(context); - - // Assert - Assert.That(routeData, Is.Not.Null); - Assert.That(routeData.Values["controller"], Is.EqualTo("controller1")); - Assert.That(routeData.Values["action"], Is.EqualTo("action2")); - Assert.That(routeData.Values["id"], Is.EqualTo("id3")); - } - [Test] public void RouteWithTooManySegments() { // Arrange diff --git a/src/Orchard.Web/Core/Dashboard/AdminMenu.cs b/src/Orchard.Web/Core/Dashboard/AdminMenu.cs new file mode 100644 index 000000000..7dd49f326 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/AdminMenu.cs @@ -0,0 +1,13 @@ +using Orchard.Security; +using Orchard.UI.Navigation; + +namespace Orchard.Core.Dashboard { + public class AdminMenu : INavigationProvider { + public string MenuName { get { return "admin"; } } + + public void GetNavigation(NavigationBuilder builder) { + builder.Add("Dashboard", "0", + menu => menu.Add("Manage Orchard", "0", item => item.Action("Index", "Admin", new { area = "Dashboard" }).Permission(StandardPermissions.AccessAdminPanel))); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Controllers/AdminController.cs b/src/Orchard.Web/Core/Dashboard/Controllers/AdminController.cs new file mode 100644 index 000000000..336cd77da --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/Controllers/AdminController.cs @@ -0,0 +1,10 @@ +using System.Web.Mvc; +using Orchard.Mvc.ViewModels; + +namespace Orchard.Core.Dashboard.Controllers { + public class AdminController : Controller { + public ActionResult Index() { + return View(new AdminViewModel()); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Module.txt b/src/Orchard.Web/Core/Dashboard/Module.txt new file mode 100644 index 000000000..59da47d50 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/Module.txt @@ -0,0 +1 @@ +name: Dashboard \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Routes.cs b/src/Orchard.Web/Core/Dashboard/Routes.cs new file mode 100644 index 000000000..7662158f1 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/Routes.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Web.Mvc; +using System.Web.Routing; +using Orchard.Mvc.Routes; + +namespace Orchard.Core.Dashboard { + public class Routes : IRouteProvider { + public void GetRoutes(ICollection routes) { + foreach (var routeDescriptor in GetRoutes()) + routes.Add(routeDescriptor); + } + + public IEnumerable GetRoutes() { + return new[] { + new RouteDescriptor { + Priority = -5, + Route = new Route( + "Admin", + new RouteValueDictionary { + {"area", "Dashboard"}, + {"controller", "admin"}, + {"action", "index"} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", "Dashboard"} + }, + new MvcRouteHandler()) + } + }; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Views/Admin/Index.ascx b/src/Orchard.Web/Core/Dashboard/Views/Admin/Index.ascx new file mode 100644 index 000000000..4500ada19 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/Views/Admin/Index.ascx @@ -0,0 +1,4 @@ +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.Mvc.ViewModels"%> +

<%=Html.TitleForPage(T("Orchard Admin").ToString())%>

+

<%=T("Insert admin text here -> ·") %>

\ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/Views/Web.config b/src/Orchard.Web/Core/Dashboard/Views/Web.config new file mode 100644 index 000000000..7022197d4 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/Views/Web.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs index ea9a76b21..3c41ffe1a 100644 --- a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs @@ -108,8 +108,12 @@ namespace Orchard.Core.Navigation.Controllers { MenuPart menuPart = _menuService.Get(id); - if (menuPart != null) - _menuService.Delete(menuPart); + if (menuPart != null) { + if (menuPart.Is()) + _menuService.Delete(menuPart); + else + menuPart.OnMainMenu = false; + } return RedirectToAction("Index"); } diff --git a/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs b/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs index 74c057ec0..21c7cfa71 100644 --- a/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs +++ b/src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs @@ -1,7 +1,9 @@ -using JetBrains.Annotations; +using System; +using JetBrains.Annotations; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.Core.Navigation.Models; +using Orchard.Localization; using Orchard.Security; using Orchard.UI.Navigation; using Orchard.Utility; @@ -15,9 +17,11 @@ namespace Orchard.Core.Navigation.Drivers { public MenuPartDriver(IAuthorizationService authorizationService, INavigationManager navigationManager) { _authorizationService = authorizationService; _navigationManager = navigationManager; + T = NullLocalizer.Instance; } public virtual IUser CurrentUser { get; set; } + private Localizer T { get; set; } protected override DriverResult Editor(MenuPart part) { if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, part)) @@ -34,6 +38,9 @@ namespace Orchard.Core.Navigation.Drivers { part.MenuPosition = Position.GetNext(_navigationManager.BuildMenu("main")); updater.TryUpdateModel(part, Prefix, null, null); + if (part.OnMainMenu && String.IsNullOrEmpty(part.MenuText)) { + updater.AddModelError("MenuText", T("The MenuText field is required")); + } return ContentPartTemplate(part, "Parts/Navigation.EditMenuPart").Location("primary", "9"); } } diff --git a/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs b/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs index 120eb2f42..952f7c160 100644 --- a/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs +++ b/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs @@ -13,7 +13,6 @@ namespace Orchard.Core.Navigation.Models { set { Record.OnMainMenu = value; } } - [Required] public string MenuText { get { return Record.MenuText; } set { Record.MenuText = value; } diff --git a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx index 32ccebc10..096602bb8 100644 --- a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx +++ b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx @@ -26,8 +26,8 @@ using (Html.BeginFormAntiForgeryPost()) { %> - <% if (!menuPartEntry.IsMenuItem) { %><% } else { %><% } %> - " class="remove button">delete + <% if (!menuPartEntry.IsMenuItem) { %><% } else { %><% } %> + " class="remove"><%=_Encoded(menuPartEntry.IsMenuItem ? "Delete" : "Remove") %> <% ++menuPartEntryIndex; } %> diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 3179fa878..31316193e 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -84,6 +84,9 @@ + + + @@ -212,6 +215,8 @@ + + @@ -221,6 +226,9 @@ + + + diff --git a/src/Orchard.Web/Core/Themes/Models/Theme.cs b/src/Orchard.Web/Core/Themes/Models/Theme.cs index 3724c25eb..444625c9a 100644 --- a/src/Orchard.Web/Core/Themes/Models/Theme.cs +++ b/src/Orchard.Web/Core/Themes/Models/Theme.cs @@ -14,6 +14,7 @@ namespace Orchard.Core.Themes.Models { public string Version { get; set; } public string Author { get; set; } public string HomePage { get; set; } + public string Tags { get; set; } #endregion } diff --git a/src/Orchard.Web/Core/Themes/Records/ThemeRecord.cs b/src/Orchard.Web/Core/Themes/Records/ThemeRecord.cs index e94479489..6a1f7e02e 100644 --- a/src/Orchard.Web/Core/Themes/Records/ThemeRecord.cs +++ b/src/Orchard.Web/Core/Themes/Records/ThemeRecord.cs @@ -8,5 +8,6 @@ namespace Orchard.Core.Themes.Records { public virtual string Version { get; set; } public virtual string Author { get; set; } public virtual string HomePage { get; set; } + public virtual string Tags { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Themes/Services/ThemeService.cs b/src/Orchard.Web/Core/Themes/Services/ThemeService.cs index 737b88030..0dbc1d4a8 100644 --- a/src/Orchard.Web/Core/Themes/Services/ThemeService.cs +++ b/src/Orchard.Web/Core/Themes/Services/ThemeService.cs @@ -74,6 +74,7 @@ namespace Orchard.Core.Themes.Services { HomePage = descriptor.HomePage ?? String.Empty, ThemeName = descriptor.Name, Version = descriptor.Version ?? String.Empty, + Tags = descriptor.Tags ?? String.Empty }; } } @@ -83,9 +84,7 @@ namespace Orchard.Core.Themes.Services { public IEnumerable GetInstalledThemes() { List themes = new List(); foreach (var descriptor in _extensionManager.AvailableExtensions()) { - //todo: (heskew) filter out Admin themes in a different manner - eventually we'll need a way to select the admin theme so there should be a clear separation - if (String.Equals(descriptor.ExtensionType, "Theme", StringComparison.OrdinalIgnoreCase) - && !(descriptor.Name.EndsWith("Admin", StringComparison.OrdinalIgnoreCase))) { + if (String.Equals(descriptor.ExtensionType, "Theme", StringComparison.OrdinalIgnoreCase)) { Theme theme = new Theme { Author = descriptor.Author ?? String.Empty, Description = descriptor.Description ?? String.Empty, @@ -93,14 +92,16 @@ namespace Orchard.Core.Themes.Services { HomePage = descriptor.HomePage ?? String.Empty, ThemeName = descriptor.Name, Version = descriptor.Version ?? String.Empty, + Tags = descriptor.Tags ?? String.Empty }; - themes.Add(theme); + if (!theme.Tags.Contains("hidden")) { + themes.Add(theme); + } } } return themes; } - public void InstallTheme(HttpPostedFileBase file) { _extensionManager.InstallExtension("Theme", file); } diff --git a/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx b/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx index 36802991e..dbdf3db42 100644 --- a/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx +++ b/src/Orchard.Web/Core/Themes/Views/Admin/Index.aspx @@ -9,15 +9,16 @@ } else { %>

<%=_Encoded("Current Theme")%> - <%=Html.Encode(Model.CurrentTheme.DisplayName) %>

- <%=Html.Image(Html.ThemePath(Model.CurrentTheme, "/Theme.png"), Html.Encode(Model.CurrentTheme.DisplayName), null)%> + <%=Html.Image(Html.ThemePath(Model.CurrentTheme, "/Theme.png"), Html.Encode(Model.CurrentTheme.DisplayName), new { @class = "themePreviewImage" })%>
<%=_Encoded("By") %> <%=Html.Encode(Model.CurrentTheme.Author) %>

<%=_Encoded("Version:") %> <%=Html.Encode(Model.CurrentTheme.Version) %>
<%=Html.Encode(Model.CurrentTheme.Description) %>
- <%=Html.Encode(Model.CurrentTheme.HomePage) %>
- <%=Html.ActionLink(T("Install a new Theme").ToString(), "Install") %> -

+ <%=Html.Encode(Model.CurrentTheme.HomePage) %> +

+ <%=Html.ActionLink(T("Install a new Theme").ToString(), "Install", null, new { @class = "button primaryAction" })%> + <% } %>

<%=_Encoded("Available Themes")%>

    diff --git a/src/Orchard.Web/Core/Themes/Views/User.ascx b/src/Orchard.Web/Core/Themes/Views/User.ascx index e35f6fe07..2baa90434 100644 --- a/src/Orchard.Web/Core/Themes/Views/User.ascx +++ b/src/Orchard.Web/Core/Themes/Views/User.ascx @@ -3,8 +3,8 @@
    <% if (Request.IsAuthenticated) { %> <%=T("Welcome, {0}!", Html.Encode(Page.User.Identity.Name)) %> - <%=Html.Link(T("Admin").ToString(), "/admin/blogs") %> / - <%=Html.ActionLink(T("Log Off").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users" }) %> + <%=Html.ActionLink(T("Log Off").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users" })%> +  | <%= Html.ActionLink("Admin", "Index", new {Area = "Dashboard", Controller = "Admin"})%> <% } else { %> <%=Html.ActionLink(T("Log On").ToString(), "LogOn", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl }) %> <% } %> diff --git a/src/Orchard.Web/Global.asax.cs b/src/Orchard.Web/Global.asax.cs index 9886c450b..1ac2cccbf 100644 --- a/src/Orchard.Web/Global.asax.cs +++ b/src/Orchard.Web/Global.asax.cs @@ -16,12 +16,6 @@ namespace Orchard.Web { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); - - routes.MapRoute( - "Default", // Route name - "{controller}/{action}/{id}", // URL with parameters - new { controller = "Home", action = "Index", id = "" } // Parameter defaults - ); } protected void Application_Start() { diff --git a/src/Orchard.Web/Media/OrchardLogo.png b/src/Orchard.Web/Media/OrchardLogo.png new file mode 100644 index 000000000..f6caf5ca5 Binary files /dev/null and b/src/Orchard.Web/Media/OrchardLogo.png differ diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/BlogAdmin/List.ascx b/src/Orchard.Web/Modules/Orchard.Blogs/Views/BlogAdmin/List.ascx index 00abd5c91..c2a0873bc 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Views/BlogAdmin/List.ascx +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/BlogAdmin/List.ascx @@ -4,7 +4,7 @@

    <%=Html.TitleForPage(T("Manage Blogs").ToString()) %>

    <%-- todo: Add helper text here when ready.

    <%=_Encoded("Possible text about setting up and managing a blog goes here.") %>

    --%><% if (Model.Entries.Count() > 0) { %> - + <%=Html.UnorderedList(Model.Entries, (entry, i) => { // Add blog post count rendering into "meta" zone entry.ContentItemViewModel.Zones.AddAction("meta", html => { @@ -20,7 +20,7 @@ if (Model.Entries.Count() > 0) { %> // Display the summary for the blog post return Html.DisplayForItem(entry.ContentItemViewModel).ToHtmlString(); }, "blogs contentItems")%> -<% +<% } else { %>
    <%=T("There are no blogs for you to see. Want to add one?", Url.BlogCreate()).ToString()%>
    <% } %> \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.Blog.SummaryAdmin.ascx b/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.Blog.SummaryAdmin.ascx index 7934feca6..1bf961365 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.Blog.SummaryAdmin.ascx +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.Blog.SummaryAdmin.ascx @@ -2,23 +2,30 @@ <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> -

    <%=Html.Link(Html.Encode(Model.Item.Name), Url.BlogForAdmin(Model.Item.Slug)) %>

    -
    <%Html.Zone("meta");%>
    + +
    +
    +

    <%=Html.Link(Html.Encode(Model.Item.Name), Url.BlogForAdmin(Model.Item.Slug)) %>

    +

    <%Html.Zone("meta");%>

    <%--

    [list of authors] [modify blog access]

    --%> -

    <%=Html.Encode(Model.Item.Description) %>

    -
    + +
\ No newline at end of file + + + + +
+ \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.BlogPost.SummaryAdmin.ascx b/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.BlogPost.SummaryAdmin.ascx index 173c79d2c..d0b721cdf 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.BlogPost.SummaryAdmin.ascx +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/DisplayTemplates/Items/Blogs.BlogPost.SummaryAdmin.ascx @@ -7,7 +7,7 @@ <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> -
+

<%=Html.Link(Html.Encode(Model.Item.Title), Url.BlogPostEdit(Model.Item.Blog.Slug, Model.Item.Id))%>

diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs index 24ca875e8..2987f2d11 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs @@ -49,10 +49,10 @@ namespace Orchard.Comments.Controllers { CommentText = viewModel.CommentText, Email = viewModel.Email, SiteName = viewModel.SiteName, - CommentedOn = viewModel.CommentedOn, + CommentedOn = viewModel.CommentedOn }; - Comment comment = _commentService.CreateComment(context); + Comment comment = _commentService.CreateComment(context, CurrentSite.As().Record.ModerateComments); if (!String.IsNullOrEmpty(returnUrl)) { if (comment.Record.Status == CommentStatus.Pending) diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentDriver.cs similarity index 57% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/CommentDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentDriver.cs index b17b03bad..4f67910c4 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentDriver.cs @@ -1,14 +1,15 @@ using JetBrains.Annotations; +using Orchard.Comments.Models; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; -namespace Orchard.Comments.Models { +namespace Orchard.Comments.Controllers { [UsedImplicitly] public class CommentDriver : ContentItemDriver { public readonly static ContentType ContentType = new ContentType { - Name = "comment", - DisplayName = "Comment" - }; + Name = "comment", + DisplayName = "Comment" + }; protected override ContentType GetContentType() { return ContentType; diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainerDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsContainerDriver.cs similarity index 93% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainerDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsContainerDriver.cs index f10143124..7c04ff41c 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainerDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsContainerDriver.cs @@ -1,11 +1,12 @@ using System.Linq; using JetBrains.Annotations; +using Orchard.Comments.Models; using Orchard.Comments.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.Core.Common.Records; -namespace Orchard.Comments.Models { +namespace Orchard.Comments.Controllers { [UsedImplicitly] public class HasCommentsContainerDriver : ContentPartDriver { protected override DriverResult Display(HasCommentsContainer part, string displayType) { diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsDriver.cs similarity index 94% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsDriver.cs index 626bfbf6b..36554b1ab 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/HasCommentsDriver.cs @@ -1,9 +1,10 @@ using JetBrains.Annotations; +using Orchard.Comments.Models; using Orchard.Comments.ViewModels; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; -namespace Orchard.Comments.Models { +namespace Orchard.Comments.Controllers { [UsedImplicitly] public class HasCommentsDriver : ContentPartDriver { protected override DriverResult Display(HasComments part, string displayType) { diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentHandler.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentHandler.cs index f05601ad4..1efdaf1d0 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentHandler.cs @@ -1,4 +1,5 @@ using JetBrains.Annotations; +using Orchard.Comments.Controllers; using Orchard.ContentManagement.Handlers; using Orchard.Core.Common.Models; using Orchard.Data; diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs index 998949fda..618a6179e 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs @@ -3,6 +3,7 @@ using Orchard.ContentManagement.Records; namespace Orchard.Comments.Models { public class CommentSettingsRecord : ContentPartRecord { public virtual bool RequireLoginToAddComment { get; set; } + public virtual bool ModerateComments { get; set; } public virtual bool EnableSpamProtection { get; set; } public virtual string AkismetKey { get; set; } public virtual string AkismetUrl { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj index e875b7eb7..4bbd98c5b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj +++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj @@ -68,16 +68,16 @@ + + + - - - diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs index bb53f5ef0..71e4975c7 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs @@ -2,6 +2,7 @@ using System.Linq; using JetBrains.Annotations; using Orchard.Comments.Models; +using Orchard.Comments.Controllers; using Orchard.ContentManagement.Aspects; using Orchard.Data; using Orchard.Logging; @@ -18,7 +19,7 @@ namespace Orchard.Comments.Services { IEnumerable GetCommentsForCommentedContent(int id, CommentStatus status); Comment GetComment(int id); ContentItemMetadata GetDisplayForCommentedContent(int id); - Comment CreateComment(CreateCommentContext commentRecord); + Comment CreateComment(CreateCommentContext commentRecord, bool moderateComments); void UpdateComment(int id, string name, string email, string siteName, string commentText, CommentStatus status); void ApproveComment(int commentId); void PendComment(int commentId); @@ -100,7 +101,7 @@ namespace Orchard.Comments.Services { return _contentManager.GetItemMetadata(content); } - public Comment CreateComment(CreateCommentContext context) { + public Comment CreateComment(CreateCommentContext context, bool moderateComments) { var comment = _contentManager.Create(CommentDriver.ContentType.Name); comment.Record.Author = context.Author; @@ -111,7 +112,7 @@ namespace Orchard.Comments.Services { comment.Record.UserName = (CurrentUser == null ? context.Author : CurrentUser.UserName); comment.Record.CommentedOn = context.CommentedOn; - comment.Record.Status = _commentValidator.ValidateComment(comment) ? CommentStatus.Pending : CommentStatus.Spam; + comment.Record.Status = _commentValidator.ValidateComment(comment) ? moderateComments ? CommentStatus.Pending : CommentStatus.Approved : CommentStatus.Spam; // store id of the next layer for large-grained operations, e.g. rss on blog //TODO:(rpaquay) Get rid of this (comment aspect takes care of container) diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx index fa687e61f..09e78b7c7 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx +++ b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx @@ -7,6 +7,11 @@ <%=Html.ValidationMessage("RequireLoginToAddComment", "*")%>
+
+ <%=Html.EditorFor(m => m.ModerateComments) %> + + <%=Html.ValidationMessage("ModerateComments", "*")%> +
<%=Html.EditorFor(m => m.EnableSpamProtection) %> diff --git a/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.aspx b/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.aspx index 32f41367d..588a44e26 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.aspx +++ b/src/Orchard.Web/Modules/Orchard.Media/Views/Admin/Edit.aspx @@ -48,7 +48,7 @@ "/> - " name="<%=_Encoded("mediaFile.Name") %>" /> + <%=Html.ActionLink(mediaFile.Name, "EditMedia", new { name = mediaFile.Name, diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs index f7d4bf322..b693610d9 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Controllers/AdminController.cs @@ -132,6 +132,7 @@ namespace Orchard.Pages.Controllers { } Services.ContentManager.Create(model.Page.Item.ContentItem, VersionOptions.Draft); + Services.ContentManager.UpdateEditorModel(page, this); // Execute publish command switch (Request.Form["Command"]) { diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Views/Setup/Index.ascx b/src/Orchard.Web/Modules/Orchard.Setup/Views/Setup/Index.ascx index 144fb71eb..450a52095 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Views/Setup/Index.ascx +++ b/src/Orchard.Web/Modules/Orchard.Setup/Views/Setup/Index.ascx @@ -33,6 +33,7 @@ using (Html.BeginFormAntiForgeryPost()) { %> <%=Html.EditorFor(svm => svm.DatabaseConnectionString)%> + <%=_Encoded("Example: Data Source=sqlServerName;Initial Catalog=dbName;Persist Security Info=True;User ID=userName;Password=password") %>
diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Models/TagSettings.cs b/src/Orchard.Web/Modules/Orchard.Tags/Models/TagSettings.cs deleted file mode 100644 index 3e1225773..000000000 --- a/src/Orchard.Web/Modules/Orchard.Tags/Models/TagSettings.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Orchard.Data; -using Orchard.ContentManagement; -using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.Records; - -namespace Orchard.Tags.Models { - public class TagSettings : ContentPart { - } - - public class TagSettingsRecord : ContentPartRecord { - public virtual bool EnableTagsOnPages { get; set; } - } - - public class TagSettingsHandler : ContentHandler { - public TagSettingsHandler(IRepository repository) { - Filters.Add(new ActivatingFilter("site")); - Filters.Add(StorageFilter.For(repository)); - Filters.Add(new TemplateFilterForRecord("TagSettings", "Parts/Tags.SiteSettings")); - OnActivated(DefaultSettings); - } - - private static void DefaultSettings(ActivatedContentContext context, TagSettings settings) { - settings.Record.EnableTagsOnPages = true; - } - } -} diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj index 3b30a2d5f..faf69aac0 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj @@ -70,7 +70,6 @@ - @@ -93,7 +92,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Views/EditorTemplates/Parts/Tags.SiteSettings.ascx b/src/Orchard.Web/Modules/Orchard.Tags/Views/EditorTemplates/Parts/Tags.SiteSettings.ascx deleted file mode 100644 index 48818479a..000000000 --- a/src/Orchard.Web/Modules/Orchard.Tags/Views/EditorTemplates/Parts/Tags.SiteSettings.ascx +++ /dev/null @@ -1,11 +0,0 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> -<%@ Import Namespace="Orchard.Tags.Models"%> -
- <%=_Encoded("Tags")%> -
- <%= Html.EditorFor(x=>x.EnableTagsOnPages) %> - - <%= Html.ValidationMessage("EnableTagsOnPages", "*")%> - <%=_Encoded("In the admin, if the user has permission to.") %> -
-
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Users/Views/Account/ChangePassword.ascx b/src/Orchard.Web/Modules/Orchard.Users/Views/Account/ChangePassword.ascx index ea281b409..f03b46cf6 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Views/Account/ChangePassword.ascx +++ b/src/Orchard.Web/Modules/Orchard.Users/Views/Account/ChangePassword.ascx @@ -6,23 +6,23 @@ <% using (Html.BeginFormAntiForgeryPost()) { %>
<%=_Encoded("Account Information")%> -
+
<%=Html.Password("currentPassword") %> <%=Html.ValidationMessage("currentPassword") %> -
-
+
+
<%= Html.Password("newPassword") %> <%= Html.ValidationMessage("newPassword") %> - -
+
+
<%= Html.Password("confirmPassword") %> <%= Html.ValidationMessage("confirmPassword") %> - -
+
+
" /> - +
<% } %> \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Users/Views/Account/Register.ascx b/src/Orchard.Web/Modules/Orchard.Users/Views/Account/Register.ascx index 0f11dea9b..ca9f03f87 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Views/Account/Register.ascx +++ b/src/Orchard.Web/Modules/Orchard.Users/Views/Account/Register.ascx @@ -6,28 +6,28 @@ <% using (Html.BeginFormAntiForgeryPost()) { %>
<%=_Encoded("Account Information")%> -
+
<%= Html.TextBox("username") %> <%= Html.ValidationMessage("username") %> -
-
+
+
<%= Html.TextBox("email") %> <%= Html.ValidationMessage("email") %> - -
+
+
<%= Html.Password("password") %> <%= Html.ValidationMessage("password") %> - -
+
+
<%= Html.Password("confirmPassword") %> <%= Html.ValidationMessage("confirmPassword") %> - -
+
+
" /> - +
<% } %> \ No newline at end of file diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 35c0935e4..184187747 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -172,6 +172,7 @@ + @@ -197,7 +198,6 @@ - diff --git a/src/Orchard.Web/Themes/Classic/Styles/blog.css b/src/Orchard.Web/Themes/Classic/Styles/blog.css index d0cdbed15..63bd05e21 100644 --- a/src/Orchard.Web/Themes/Classic/Styles/blog.css +++ b/src/Orchard.Web/Themes/Classic/Styles/blog.css @@ -1,31 +1,21 @@ /*Blog specific styles ----------------------------------------------------------*/ -.posted { - margin: 8px 0; - font-size:105%; - font-weight:600; +h3.blogs, h3.blog { + display:block; + border-bottom:1px solid #f1f1f1; } -.meta, .manage { - font-size:105%; - float:right; - margin:-23px 0 0 0; -} - -.blogdescription, .postsummary { +ul.blogs p { clear:both; - } - -div.comment { - margin: 16px 0 8px 0; } - -span.who { - font-weight:600; - font-size:105%; - } - - .text { - border-bottom:1px dotted #e5e5e5; - } + +.post { + margin: -8px 0 12px 0px; +} + +.meta { + font-style:italic; + color:#666666; +} + diff --git a/src/Orchard.Web/Themes/Classic/Styles/site.css b/src/Orchard.Web/Themes/Classic/Styles/site.css index 0d2bcfff3..ffe49c053 100644 --- a/src/Orchard.Web/Themes/Classic/Styles/site.css +++ b/src/Orchard.Web/Themes/Classic/Styles/site.css @@ -20,29 +20,31 @@ html {height: 100%;} body { font: normal 90% "Georgia", Times New Roman, Times, serif; - background:url(../Content/Images/bodyBackgroundgrey.gif) top left repeat-x #e5e5e5; height: 100%; text-align:left; - color:#333; + color:#373737; + background:#fdfdfd; + /*background:#E5E5E5 url(../Content/Images/bodyBackgroundgrey.gif) repeat-x scroll left top;*/ } /* ---------- Headings and defaults ---------- */ -h1,h2,h3,h4,h5,h6, legend {font-weight:normal; font-style: normal; color:#670404; border-bottom:1px dotted #e5e5e5;} +h1,h2,h3,h4,h5,h6,legend {font-weight:normal; font-style: normal; margin:12px 0 4px 0;} -h1 {font-size: 190%;} +h1 {font-size: 180%;} h2 {font-size: 160%;} -h3 {font-size: 150%;} +h3 {font-size: 145%;} h4 {font-size: 130%;} h5 {font-size: 120%;} h6 {font-size: 105%;} +h1.sitename {border-bottom:none;} + p {line-height:24px; margin:12px 0 32px 0;} -p.small {line-height:22px; font-size:85%;} +p.small {line-height:24px; font-size:85%;} a { color:#004386; - color:#05325f; text-decoration:none; } @@ -53,17 +55,17 @@ ol.decimal {list-style:decimal; list-style-position:inside; line-height:24px; ma /* Forms ----------------------------------------------------------*/ -input[type="text"], #CommentText, #password { - border:1px solid #DDDEDF; +input[type="text"], #CommentText, #password, #confirmPassword { + border:1px solid #cacec6; display: block; -} - -fieldset {margin: 20px 0;} + padding:2px; + width:90%; + } fieldset div {margin:16px 0 0 0} legend { - font-size: 105%; + font-size: 110%; border:none; } @@ -72,18 +74,12 @@ label { margin:0 0 2px 0; } -input[type="text"], #CommentText, #password { - border-color:#cacec6; - padding:2px; - width:90%; - } - input[type="checkbox"] { margin:2px 0 20px 10px; } input[type="submit"], input[type="button"], .button { - font:90% Verdana, Geneva, Tahoma, sans-serif; + font: normal 90% "Georgia", Times New Roman, Times, serif; color:#333; padding:2px 14px; display: block; @@ -97,112 +93,182 @@ input[type="submit"], input[type="button"], .button { } +/* Tables +----------------------------------------------------------*/ +table { + background:#fff; + border:1px solid #f1f1f1; + border-collapse:collapse; + width:100%; +} + +table thead, table th { + overflow:hidden; + text-align:left; +} + +table th { + font:70% Verdana, Geneva, Tahoma, sans-serif; + background-color:#69625e; + color:#f1f1f1; + } + +table caption { + padding:8px 0; + text-indent:0; +} + +table col { + display:table-column; +} + +table colgroup { + display:table-column-group; + } + +table tbody { + vertical-align:middle; + } + + +th, td { + font:70% Verdana, Geneva, Tahoma, sans-serif; + padding:6px + } + +td.even { + background-color:#f1f1f1; +} + /* ---------- Layout ---------- */ +#headercontainer { + border:2px solid #69625e; + border-left:0; + border-right:0; + margin:0 auto; + width:930px; +} + #header { - margin:0 38px 0 40px; - height:75px; - border-bottom:1px #d6d6d6 solid; -} + border:1px solid #69625e; + border-left:0; + border-right:0; + margin:3px 0 3px 0; + } - -#header h1{ +#header h1 { + font-size:240%; + color:#333; + border:0; + margin:12px 18px; float:left; - font-size:220%; - color:#000; - padding:42px 0 0 0; - border-bottom:none; } + #logindisplay { - float:right; - margin:58px 8px 0 0; + font:80%; + margin:12px auto; + text-align:right; + width: 930px; } #wrapper { width:985px; - height:100%; display:block; margin:0em auto; - background:url(../Content/Images/mainBackgroundgrey.png) no-repeat center top; + background:#fff; + border:1px solid #f1f1f1; } #main { - clear:both; - margin:32px 0 0 27px; + margin:0 0 0 27px; width:930px; - border:1px #f5f5f5 solid; - border-top:none; background:url(../Content/Images/sidebarBackground.gif) no-repeat right top #fff; } #content { float:left; - margin:0 0 0 27px; + margin:26px 0 0 27px; width:520px; min-height:555px; } #sidebar { float:right; - margin:4px 12px 0 0; + margin:28px 0 0 0; width:325px; } #sidebar h3 { - border-bottom:1px dotted #e5e5e5; + border-bottom:1px solid #f1f1f1; + font-size: 130%; } - -#content ul,#sideBar1 ul { - list-style:none; - line-height:normal; +#footercontainer { + clear:both; + border:2px solid #69625e; + width:930px; + background:#69625e; + margin:18px 0; } #footer { - color:#918e8e; - clear:both; - border-top:1px solid #d6d6d6; - margin:0 12px; - padding:18px 0 18px 8px; + border:1px solid #fff; + margin:3px; } #footer a{ - color:#918e8e; - margin:0 8px; + text-transform:uppercase; + color:#fff; } + /* ---------- Navigation ---------- */ -#menucontainer { - width:960px; +.menucontainer { display:block; - height:35px; - margin:0em auto; -} - -#menucontainer ul, #footer ul { - list-style:none; float:right; + margin:18px 0; } -#menucontainer ul li { +.menucontainer ul, #footer ul { + list-style:none +} + +.menucontainer ul li { margin:8px 0 0 0; float:left; - background:url(../Content/Images/navDivider.gif) no-repeat top right; -} - -#menucontainer ul li.last { - background:none; -} - -#menucontainer ul li a { - margin:0 18px 0 18px; - font-size:110%; - display:block; - text-decoration:none; - float:left; - color:#fff; } +.menucontainer ul li a { + margin:0 18px 0 18px; + display:block; + text-decoration:none; + text-transform:uppercase; + float:left; +} + +#footer .menucontainer { + font-size:80%; + float:left; + margin:0px; +} + +#footer .menucontainer ul li { + margin:12px 0; +} + +/* ---------- Tags and Comments ---------- */ +.tags, .comment { + font-style:italic; + color:#666666; +} + + +/* ---------- Generic ---------- */ + +.clearBoth { + clear:both; +} \ No newline at end of file diff --git a/src/Orchard.Web/Themes/Classic/Theme.png b/src/Orchard.Web/Themes/Classic/Theme.png index 92eb94b4f..2832f9504 100644 Binary files a/src/Orchard.Web/Themes/Classic/Theme.png and b/src/Orchard.Web/Themes/Classic/Theme.png differ diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.Blog.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.Blog.ascx index 7c2dada8e..4bbd140d3 100644 --- a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.Blog.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.Blog.ascx @@ -2,7 +2,7 @@ <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> -

<%=Html.TitleForPage(Model.Item.Name) %>

+

<%=Html.TitleForPage(Model.Item.Name) %>

<%=Html.Encode(Model.Item.Description) %>

<% Html.Zone("primary"); diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx index feabce0b5..751a90cbd 100644 --- a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx @@ -4,6 +4,6 @@ <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> -

<%=Html.Link(Html.Encode(Model.Item.Title), Url.BlogPost(Model.Item.Blog.Slug, Model.Item.Slug)) %>

+

<%=Html.Link(Html.Encode(Model.Item.Title), Url.BlogPost(Model.Item.Blog.Slug, Model.Item.Slug)) %>

<%=Html.PublishedState(Model.Item) %> | <%Html.Zone("meta");%>
<%=Model.Item.As().Text ?? string.Format("

{0}

", _Encoded("there's no content for this blog post"))%>
\ No newline at end of file diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx new file mode 100644 index 000000000..fca8fa506 --- /dev/null +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -0,0 +1,12 @@ +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Import Namespace="Orchard.Mvc.ViewModels"%> +<%@ Import Namespace="Orchard.Blogs.Extensions"%> +<%@ Import Namespace="Orchard.Blogs.Models"%> +

<%=Html.TitleForPage(Model.Item.Title)%>

+ +<% Html.Zone("primary"); + Html.ZonesAny(); %> \ No newline at end of file diff --git a/src/Orchard.Web/Themes/Classic/Views/Footer.ascx b/src/Orchard.Web/Themes/Classic/Views/Footer.ascx index 51512109c..74d5935ba 100644 --- a/src/Orchard.Web/Themes/Classic/Views/Footer.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/Footer.ascx @@ -1,5 +1,10 @@ <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> +
\ No newline at end of file + +
+
+ diff --git a/src/Orchard.Web/Themes/Classic/Views/Layout.ascx b/src/Orchard.Web/Themes/Classic/Views/Layout.ascx index 1baba67a0..d458dc7a6 100644 --- a/src/Orchard.Web/Themes/Classic/Views/Layout.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/Layout.ascx @@ -5,21 +5,28 @@ Html.RegisterStyle("site.css"); Html.RegisterStyle("blog.css"); %> -<%--Top Navigation--%> + <%-- todo:(nheskew) this will need to be a generated menu --%> -<% Html.Include("menu"); %> +
+<%--HTML.Include will render a div with an id="logindisplay" --%> + <% Html.Include("User"); %> + +<%--Top Navigation and branding--%> +
-
+
+ +
- - <%--Main Content--%> - <%Html.ZoneBody("content");%> - + <%--Main Content--%> + <%Html.ZoneBody("content");%>