From 6cbb51787ffcbfe1db5dfda52d45aa27b939d122 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 24 May 2013 15:57:02 -0700 Subject: [PATCH] #19457: Allowing draft elements to be added to the navigation If the resulting MenuItemLink is empty, don't display it in the navigation Work Item: 19457 --HG-- branch : 1.x --- .../Core/Shapes/Views/MenuItem.cshtml | 50 +++++++++++-------- .../Drivers/ContentMenuItemPartDriver.cs | 2 +- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/Orchard.Web/Core/Shapes/Views/MenuItem.cshtml b/src/Orchard.Web/Core/Shapes/Views/MenuItem.cshtml index e4f147950..ff21cb36e 100644 --- a/src/Orchard.Web/Core/Shapes/Views/MenuItem.cshtml +++ b/src/Orchard.Web/Core/Shapes/Views/MenuItem.cshtml @@ -3,29 +3,35 @@ var items = Enumerable.Cast((System.Collections.IEnumerable)Model); } @{ -if (!HasText(Model.Text)) { - @DisplayChildren(Model) -} else { - if((bool)Model.Selected) { - Model.Classes.Add("current"); - } - - if(items.Any()) { - Model.Classes.Add("dropdown"); - } - var tag = Tag(Model, "li"); - @tag.StartElement - - @* morphing the shape to keep Model untouched*@ - Model.Metadata.Alternates.Clear(); - Model.Metadata.Type = "MenuItemLink"; - @Display(Model) - - if (items.Any()) { - } - @tag.EndElement + else { + if ((bool) Model.Selected) { + Model.Classes.Add("current"); + } + + if (items.Any()) { + Model.Classes.Add("dropdown"); + } + + @* morphing the shape to keep Model untouched*@ + Model.Metadata.Alternates.Clear(); + Model.Metadata.Type = "MenuItemLink"; + + @* render the menu item only if it has some content *@ + var renderedMenuItemLink = Display(Model); + if (HasText(renderedMenuItemLink)) { + var tag = Tag(Model, "li"); + @tag.StartElement + @renderedMenuItemLink + @tag.EndElement + } + + if (items.Any()) { + + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs index 67e3b1939..d5c090f04 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Drivers/ContentMenuItemPartDriver.cs @@ -49,7 +49,7 @@ namespace Orchard.ContentPicker.Drivers { var model = new ContentMenuItemEditViewModel(); if(updater.TryUpdateModel(model, Prefix, null, null)) { - var contentItem = _contentManager.Get(model.ContentItemId); + var contentItem = _contentManager.Get(model.ContentItemId, VersionOptions.Latest); if(contentItem == null) { updater.AddModelError("ContentItemId", T("You must select a Content Item")); }