diff --git a/src/Orchard.Web/Core/Dashboard/AdminMenu.cs b/src/Orchard.Web/Core/Dashboard/AdminMenu.cs index b886e51fc..fcdf1623d 100644 --- a/src/Orchard.Web/Core/Dashboard/AdminMenu.cs +++ b/src/Orchard.Web/Core/Dashboard/AdminMenu.cs @@ -8,8 +8,11 @@ namespace Orchard.Core.Dashboard { public string MenuName { get { return "admin"; } } public void GetNavigation(NavigationBuilder builder) { - builder.Add(T("Dashboard"), "-5", - menu => menu.Add(T("Orchard"), "-5", item => item.Action("Index", "Admin", new { area = "Dashboard" }) + builder.AddImageSet("dashboard.menu") + .Add(T("Dashboard"), "-5", + menu => menu.Add(T("Orchard"), "-5", + item => item + .Action("Index", "Admin", new { area = "Dashboard" }) .Permission(StandardPermissions.AccessAdminPanel))); } } diff --git a/src/Orchard.Web/Core/Dashboard/styles/dashboard.admin.css b/src/Orchard.Web/Core/Dashboard/styles/dashboard.admin.css deleted file mode 100644 index 0e7eed028..000000000 --- a/src/Orchard.Web/Core/Dashboard/styles/dashboard.admin.css +++ /dev/null @@ -1,7 +0,0 @@ -#menu .menu-admin .section-dashboard h3 a { -background-image:url(images/menu-dashboard.png); -background-position:0 5px; -} -#menu .menu-admin .section-dashboard h3 a:hover { -background-position:0 -16px; -} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Dashboard/styles/dashboard.menu.css b/src/Orchard.Web/Core/Dashboard/styles/dashboard.menu.css new file mode 100644 index 000000000..a01b7e187 --- /dev/null +++ b/src/Orchard.Web/Core/Dashboard/styles/dashboard.menu.css @@ -0,0 +1,7 @@ +.navicon-dashboard { +background-image:url(images/dashboard.menu.png) !important; +background-position:0 2px !important; +} +.navicon-dashboard:hover { +background-position:0 -30px !important; +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/AdminMenu.cs b/src/Orchard.Web/Core/Navigation/AdminMenu.cs index 37fd05e56..6ea72c455 100644 --- a/src/Orchard.Web/Core/Navigation/AdminMenu.cs +++ b/src/Orchard.Web/Core/Navigation/AdminMenu.cs @@ -9,7 +9,8 @@ namespace Orchard.Core.Navigation { public void GetNavigation(NavigationBuilder builder) { //todo: - add new menu? and list menus? ...and remove hard-coded menu name here builder.Add(T("Navigation"), "8", - menu => menu.Add(T("Main Menu"), "0", item => item.Action("Index", "Admin", new { area = "Navigation" }) + menu => menu + .Add(T("Main Menu"), "0", item => item.Action("Index", "Admin", new { area = "Navigation" }) .Permission(Permissions.ManageMainMenu))); } } diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index fce0058b5..4f62a46a5 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -239,6 +239,8 @@ + + @@ -378,6 +380,9 @@ + + + + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Styles/page.menu.css b/src/Orchard.Web/Modules/Orchard.Pages/Styles/page.menu.css new file mode 100644 index 000000000..a01b7e187 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Pages/Styles/page.menu.css @@ -0,0 +1,7 @@ +.navicon-dashboard { +background-image:url(images/dashboard.menu.png) !important; +background-position:0 2px !important; +} +.navicon-dashboard:hover { +background-position:0 -30px !important; +} \ No newline at end of file diff --git a/src/Orchard.Web/Themes/TheAdmin/Styles/site.css b/src/Orchard.Web/Themes/TheAdmin/Styles/site.css index eddb95168..f26bad9c3 100644 --- a/src/Orchard.Web/Themes/TheAdmin/Styles/site.css +++ b/src/Orchard.Web/Themes/TheAdmin/Styles/site.css @@ -343,19 +343,20 @@ form.link button:hover { padding:0 0 0 10px; } #menu .menu-admin li h3 a { - background:url(images/menu-all.png) no-repeat 0 5px; + background:url(images/menu-all.png) no-repeat 0 4px; padding:0 0 0 16px; } #menu .menu-admin li h3 a:hover { + background-position:0 -17px; color:#fff; } -/* todo: (heskew) pull out into the appropriate modules somehow when this is baked */ +/* todo: (heskew) pull out into the appropriate modules somehow when this is baked * / #menu .menu-admin .section-dashboard h3 a { background-position:0 -36px; } #menu .menu-admin .section-dashboard h3 a:hover { background-position:0 -56px; } -/* todo: need to get the "New" sub items */ +/* todo: need to get the "New" sub items * / #menu .menu-admin .section-content h3 a { background-position:0 -247px; } #menu .menu-admin .section-content h3 a:hover { background-position:0 -268px; } -/* todo: need an icon for "Blogs" */ +/* todo: need an icon for "Blogs" * / #menu .menu-admin .section-comments h3 a { background-position:0 -539px; } #menu .menu-admin .section-comments h3 a:hover { background-position:0 -559px; } #menu .menu-admin .section-lists h3 a { background-position:0 -289px; } @@ -374,7 +375,7 @@ form.link button:hover { #menu .menu-admin .section-themes h3 a:hover { background-position:0 -518px; } #menu .menu-admin .section-users h3 a { background-position:0 -619px; } #menu .menu-admin .section-users h3 a:hover { background-position:0 -640px; } - +*/ #menu .menu-admin li h3 a, #menu .menu-admin li h3 span { line-height:16px; color:#aec3ce; diff --git a/src/Orchard.Web/Themes/TheAdmin/Views/Menu.cshtml b/src/Orchard.Web/Themes/TheAdmin/Views/Menu.cshtml index 0394a2ef6..6f0474064 100644 --- a/src/Orchard.Web/Themes/TheAdmin/Views/Menu.cshtml +++ b/src/Orchard.Web/Themes/TheAdmin/Views/Menu.cshtml @@ -5,6 +5,10 @@ Script.Include("admin.js"); IEnumerable firstLevelMenuItems = Model; + foreach (var imageSet in Model.ImageSets) { + RegisterImageSet(imageSet, Model.MenuName /* style */, 16 /* bounding box */); + } + Model.Attributes.Add("role", "navigation"); var tag = Tag(Model, "ul"); } @@ -14,11 +18,28 @@ string sectionHeaderText = firstLevelMenuItem.Text; var firstOfTheSecond = secondLevelMenuItems.FirstOrDefault(); - var sectionHeaderMarkup = firstLevelMenuItem.RouteValues != null || HasText(firstLevelMenuItem.Url) - ? Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href) - : firstOfTheSecond != null && firstLevelMenuItem.LinkToFirstChild - ? Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href) - : new HtmlString(string.Format("{0}", Html.Encode(sectionHeaderText))); + + var imageClassName = "navicon-" + sectionHeaderText.TextHint.HtmlClassify(); + var imageId = HasText(firstLevelMenuItem.ImageId) + ? "navicon-" + firstLevelMenuItem.ImageId + : null; + + IHtmlString sectionHeaderMarkup; + if (firstLevelMenuItem.RouteValues != null || HasText(firstLevelMenuItem.Url)) { + sectionHeaderMarkup = HasText(imageId) + ? Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href, new { @class = imageClassName, id = imageId }) + : Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href, new { @class = imageClassName }); + } + else if (firstOfTheSecond != null && firstLevelMenuItem.LinkToFirstChild && (firstOfTheSecond.RouteValues != null || HasText(firstOfTheSecond.Url))) { + sectionHeaderMarkup = HasText(imageId) + ? Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href, new { @class = imageClassName, id = imageId }) + : Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href, new { @class = imageClassName }); + } + else { + sectionHeaderMarkup = HasText(imageId) + ? new HtmlString(string.Format(@"{0}", Html.Encode(sectionHeaderText), Html.Encode(imageClassName), Html.Encode(imageId))) + : new HtmlString(string.Format(@"{0}", Html.Encode(sectionHeaderText), Html.Encode(imageClassName))); + } if (firstLevelMenuItem == firstLevelMenuItems.First()) { firstLevelMenuItem.Classes.Add("first"); @@ -26,12 +47,11 @@ if (firstLevelMenuItem == firstLevelMenuItems.Last()) { firstLevelMenuItem.Classes.Add("last"); } - if (firstLevelMenuItem.Selected) { firstLevelMenuItem.Classes.Add("selected"); } - firstLevelMenuItem.Classes.Add("section-" + sectionHeaderText.HtmlClassify()); + firstLevelMenuItem.Classes.Add("section-" + sectionHeaderText.TextHint.HtmlClassify()); var firstLevelTag = Tag(firstLevelMenuItem, "li"); @firstLevelTag.StartElement

@sectionHeaderMarkup

@@ -39,7 +59,7 @@