--HG--
branch : dev
This commit is contained in:
Dave Reed
2010-11-19 16:40:29 -08:00
6 changed files with 12 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ namespace Orchard.Core.Contents {
var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName); var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName);
if (contentTypes.Count() > 0) { if (contentTypes.Count() > 0) {
builder.Add(T("New"), "-1", menu => { builder.Add(T("New"), "-1", menu => {
menu.LinkToFirstChild(false);
foreach (var contentTypeDefinition in contentTypes) { foreach (var contentTypeDefinition in contentTypes) {
var ci = _contentManager.New(contentTypeDefinition.Name); var ci = _contentManager.New(contentTypeDefinition.Name);
var cim = _contentManager.GetItemMetadata(ci); var cim = _contentManager.GetItemMetadata(ci);

View File

@@ -16,7 +16,7 @@
var firstOfTheSecond = secondLevelMenuItems.FirstOrDefault(); var firstOfTheSecond = secondLevelMenuItems.FirstOrDefault();
var sectionHeaderMarkup = firstLevelMenuItem.RouteValues != null || HasText(firstLevelMenuItem.Url) var sectionHeaderMarkup = firstLevelMenuItem.RouteValues != null || HasText(firstLevelMenuItem.Url)
? Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href) ? Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href)
: firstOfTheSecond != null : firstOfTheSecond != null && firstLevelMenuItem.LinkToFirstChild
? Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href) ? Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href)
: new HtmlString(string.Format("<span>{0}</span>", Html.Encode(sectionHeaderText))); : new HtmlString(string.Format("<span>{0}</span>", Html.Encode(sectionHeaderText)));

View File

@@ -41,6 +41,7 @@ namespace Orchard.UI.Navigation {
var menuItemShape = shapeFactory.MenuItem() var menuItemShape = shapeFactory.MenuItem()
.Text(menuItem.Text) .Text(menuItem.Text)
.Href(menuItem.Href) .Href(menuItem.Href)
.LinkToFirstChild(menuItem.LinkToFirstChild)
.RouteValues(menuItem.RouteValues) .RouteValues(menuItem.RouteValues)
.Item(menuItem) .Item(menuItem)
.Menu(menu) .Menu(menu)

View File

@@ -7,12 +7,14 @@ namespace Orchard.UI.Navigation {
public class MenuItem { public class MenuItem {
public MenuItem() { public MenuItem() {
Permissions = Enumerable.Empty<Permission>(); Permissions = Enumerable.Empty<Permission>();
LinkToFirstChild = true;
} }
public string Text { get; set; } public string Text { get; set; }
public string Url { get; set; } public string Url { get; set; }
public string Href { get; set; } public string Href { get; set; }
public string Position { get; set; } public string Position { get; set; }
public bool LinkToFirstChild { get; set; }
public RouteValueDictionary RouteValues { get; set; } public RouteValueDictionary RouteValues { get; set; }
public IEnumerable<MenuItem> Items { get; set; } public IEnumerable<MenuItem> Items { get; set; }
public IEnumerable<Permission> Permissions { get; set; } public IEnumerable<Permission> Permissions { get; set; }

View File

@@ -28,6 +28,11 @@ namespace Orchard.UI.Navigation {
return this; return this;
} }
public NavigationItemBuilder LinkToFirstChild(bool value) {
_item.LinkToFirstChild = value;
return this;
}
public NavigationItemBuilder Permission(Permission permission) { public NavigationItemBuilder Permission(Permission permission) {
_item.Permissions = _item.Permissions.Concat(new[]{permission}); _item.Permissions = _item.Permissions.Concat(new[]{permission});
return this; return this;

View File

@@ -73,6 +73,7 @@ namespace Orchard.UI.Navigation {
RouteValues = item.RouteValues, RouteValues = item.RouteValues,
Text = item.Text, Text = item.Text,
Url = item.Url, Url = item.Url,
LinkToFirstChild = item.LinkToFirstChild,
Href = item.Href Href = item.Href
}; };
} }
@@ -106,6 +107,7 @@ namespace Orchard.UI.Navigation {
Text = items.First().Text, Text = items.First().Text,
Url = items.First().Url, Url = items.First().Url,
Href = items.First().Href, Href = items.First().Href,
LinkToFirstChild = items.First().LinkToFirstChild,
RouteValues = items.First().RouteValues, RouteValues = items.First().RouteValues,
Items = Merge(items.Select(x => x.Items)).ToArray(), Items = Merge(items.Select(x => x.Items)).ToArray(),
Position = SelectBestPositionValue(items.Select(x => x.Position)), Position = SelectBestPositionValue(items.Select(x => x.Position)),