diff --git a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs index cc35b3ad2..51bf15cd5 100644 --- a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs @@ -23,13 +23,17 @@ namespace Orchard.Core.Navigation.Controllers { private Localizer T { get; set; } - public ActionResult Index() { + public ActionResult Index(NavigationManagementViewModel model) { if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Not allowed to manage the main menu"))) return new HttpUnauthorizedResult(); - var model = new NavigationManagementViewModel { Menu = _navigationManager.BuildMenu("main") }; + if (model == null) + model = new NavigationManagementViewModel(); - return View(model); + if (model.Menu == null || model.Menu.Count() < 1) + model.Menu = _navigationManager.BuildMenu("main"); + + return View("Index", model); } [HttpPost, ActionName("Index")] @@ -50,7 +54,7 @@ namespace Orchard.Core.Navigation.Controllers { if (!ModelState.IsValid) { _services.TransactionManager.Cancel(); - return Index(); + return Index(new NavigationManagementViewModel {NewMenuItem = model}); } if (string.IsNullOrEmpty(menuItem.As().MenuPosition)) diff --git a/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs b/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs index 4a3d029eb..120eb2f42 100644 --- a/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs +++ b/src/Orchard.Web/Core/Navigation/Models/MenuPart.cs @@ -1,4 +1,5 @@ -using System.Web.Mvc; +using System.ComponentModel.DataAnnotations; +using System.Web.Mvc; using Orchard.ContentManagement; using Orchard.Core.Navigation.Records; @@ -12,6 +13,7 @@ namespace Orchard.Core.Navigation.Models { set { Record.OnMainMenu = value; } } + [Required] public string MenuText { get { return Record.MenuText; } set { Record.MenuText = value; } @@ -21,7 +23,5 @@ namespace Orchard.Core.Navigation.Models { get { return Record.MenuPosition; } set { Record.MenuPosition = value; } } - - } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationManagementViewModel.cs b/src/Orchard.Web/Core/Navigation/ViewModels/NavigationManagementViewModel.cs index aa99a2cda..eb5aaebda 100644 --- a/src/Orchard.Web/Core/Navigation/ViewModels/NavigationManagementViewModel.cs +++ b/src/Orchard.Web/Core/Navigation/ViewModels/NavigationManagementViewModel.cs @@ -2,5 +2,6 @@ namespace Orchard.Core.Navigation.ViewModels { public class NavigationManagementViewModel : AdminViewModel { + public CreateMenuItemViewModel NewMenuItem { get; set; } } } diff --git a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx index a6c3ef8aa..a612ffba8 100644 --- a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx +++ b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.ascx @@ -1,4 +1,6 @@ <%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Import Namespace="Orchard.ContentManagement"%> +<%@ Import Namespace="Orchard.Core.Navigation.Models"%> <%@ Import Namespace="Orchard.Core.Navigation.ViewModels"%><% var menu = Model.Menu.FirstOrDefault(); %>

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

<% @@ -31,7 +33,9 @@ using (Html.BeginFormAntiForgeryPost()) { %>
<% } -%>

<%=_Encoded("Add New Item") %>

<% +%> + +

<%=_Encoded("Add New Item") %>

<% using (Html.BeginFormAntiForgeryPost("/admin/navigation/create", FormMethod.Post)) { %> @@ -43,16 +47,16 @@ using (Html.BeginFormAntiForgeryPost("/admin/navigation/create", FormMethod.Post