mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-24 05:23:33 +08:00
Some work on "Manage Main Menu". Some controller actions stubbed out and create hooked up (validation lacking).
--HG-- branch : dev rename : src/Orchard.Web/Core/Navigation/Models/MenuItemDriver.cs => src/Orchard.Web/Core/Navigation/Drivers/MenuItemDriver.cs rename : src/Orchard.Web/Core/Navigation/Models/MenuPartDriver.cs => src/Orchard.Web/Core/Navigation/Drivers/MenuPartDriver.cs rename : src/Orchard.Web/Core/Navigation/Models/MenuItemHandler.cs => src/Orchard.Web/Core/Navigation/Handlers/MenuItemHandler.cs rename : src/Orchard.Web/Core/Navigation/Models/MenuPartHandler.cs => src/Orchard.Web/Core/Navigation/Handlers/MenuPartHandler.cs
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
using System.Web.Mvc;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Navigation.Models;
|
||||
using Orchard.Core.Navigation.ViewModels;
|
||||
using Orchard.Localization;
|
||||
using Orchard.UI.Navigation;
|
||||
using MenuItem=Orchard.Core.Navigation.Models.MenuItem;
|
||||
|
||||
namespace Orchard.Core.Navigation.Controllers {
|
||||
[ValidateInput(false)]
|
||||
public class AdminController : Controller {
|
||||
public class AdminController : Controller, IUpdateModel {
|
||||
private readonly IOrchardServices _services;
|
||||
private readonly INavigationManager _navigationManager;
|
||||
|
||||
@@ -15,12 +18,62 @@ namespace Orchard.Core.Navigation.Controllers {
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
private Localizer T { get; set; }
|
||||
|
||||
public ActionResult Index() {
|
||||
var model = new NavigationManagementViewModel {Menu = _navigationManager.BuildMenu("main")};
|
||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Not allowed to manage the main menu")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var model = new ViewModels.NavigationManagementViewModel { Menu = _navigationManager.BuildMenu("main") };
|
||||
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpPost, ActionName("Index")]
|
||||
public ActionResult IndexPOST() {
|
||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Couldn't manage the main menu")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult Create(CreateMenuItemViewModel model) {
|
||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Couldn't manage the main menu")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
var menuItem = _services.ContentManager.New<MenuItem>(MenuItemDriver.ContentType.Name);
|
||||
model.MenuItem = _services.ContentManager.UpdateEditorModel(menuItem, this);
|
||||
|
||||
if (!ModelState.IsValid) {
|
||||
_services.TransactionManager.Cancel();
|
||||
return Index();
|
||||
}
|
||||
|
||||
menuItem.As<MenuPart>().OnMainMenu = true;
|
||||
_services.ContentManager.Create(model.MenuItem.Item.ContentItem);
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
//[ValidateAntiForgeryTokenOrchard, ActionName("Delete")]
|
||||
[HttpPost, ActionName("Delete")]
|
||||
public ActionResult DeletePOST(int menuItemId)
|
||||
{
|
||||
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Couldn't manage the main menu")))
|
||||
return new HttpUnauthorizedResult();
|
||||
|
||||
//todo -> delete
|
||||
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
bool IUpdateModel.TryUpdateModel<TModel>(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) {
|
||||
return TryUpdateModel(model, prefix, includeProperties, excludeProperties);
|
||||
}
|
||||
|
||||
void IUpdateModel.AddModelError(string key, LocalizedString errorMessage) {
|
||||
ModelState.AddModelError(key, errorMessage.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user