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 @@