mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Starting to deprecate the AdminViewModel
All references are changed to BaseViewModel AdminViewModel class still present, but only temporarily as a stepping stone to smooth transition BaseViewModel.Menu now represents either the "admin" or "main" navigation depending on location MenuFilter now uses the AdminFilter.IsApplied flag to determine which primary nav to use IsApplied property moved to AdminFilter which is a better location for a universal flag than the theme selector --HG-- branch : dev
This commit is contained in:
@@ -158,6 +158,7 @@
|
|||||||
<Compile Include="Tasks\SweepGeneratorTests.cs" />
|
<Compile Include="Tasks\SweepGeneratorTests.cs" />
|
||||||
<Compile Include="UI\Admin\AdminAuthorizationFilterTests.cs" />
|
<Compile Include="UI\Admin\AdminAuthorizationFilterTests.cs" />
|
||||||
<Compile Include="UI\Admin\AdminThemeSelectorTests.cs" />
|
<Compile Include="UI\Admin\AdminThemeSelectorTests.cs" />
|
||||||
|
<Compile Include="UI\Navigation\MenuFilterTests.cs" />
|
||||||
<Compile Include="UI\Notify\NotifierTests.cs" />
|
<Compile Include="UI\Notify\NotifierTests.cs" />
|
||||||
<Compile Include="UI\Notify\NotifyFilterTests.cs" />
|
<Compile Include="UI\Notify\NotifyFilterTests.cs" />
|
||||||
<Compile Include="Services\ClockTests.cs" />
|
<Compile Include="Services\ClockTests.cs" />
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace Orchard.Tests.UI.Admin {
|
|||||||
public void NormalRequestShouldNotBeAffected() {
|
public void NormalRequestShouldNotBeAffected() {
|
||||||
var authorizationContext = GetAuthorizationContext<NormalController>();
|
var authorizationContext = GetAuthorizationContext<NormalController>();
|
||||||
|
|
||||||
var filter = new AdminAuthorizationFilter(GetAuthorizer(false));
|
var filter = new AdminFilter(GetAuthorizer(false));
|
||||||
filter.OnAuthorization(authorizationContext);
|
filter.OnAuthorization(authorizationContext);
|
||||||
|
|
||||||
Assert.That(authorizationContext.Result, Is.Null);
|
Assert.That(authorizationContext.Result, Is.Null);
|
||||||
@@ -39,16 +39,16 @@ namespace Orchard.Tests.UI.Admin {
|
|||||||
|
|
||||||
private static void TestActionThatShouldRequirePermission<TController>() where TController : ControllerBase, new() {
|
private static void TestActionThatShouldRequirePermission<TController>() where TController : ControllerBase, new() {
|
||||||
var authorizationContext = GetAuthorizationContext<TController>();
|
var authorizationContext = GetAuthorizationContext<TController>();
|
||||||
var filter = new AdminAuthorizationFilter(GetAuthorizer(false));
|
var filter = new AdminFilter(GetAuthorizer(false));
|
||||||
filter.OnAuthorization(authorizationContext);
|
filter.OnAuthorization(authorizationContext);
|
||||||
Assert.That(authorizationContext.Result, Is.InstanceOf<HttpUnauthorizedResult>());
|
Assert.That(authorizationContext.Result, Is.InstanceOf<HttpUnauthorizedResult>());
|
||||||
Assert.That(AdminThemeSelector.IsApplied(authorizationContext.RequestContext), Is.True);
|
Assert.That(AdminFilter.IsApplied(authorizationContext.RequestContext), Is.True);
|
||||||
|
|
||||||
var authorizationContext2 = GetAuthorizationContext<TController>();
|
var authorizationContext2 = GetAuthorizationContext<TController>();
|
||||||
var filter2 = new AdminAuthorizationFilter(GetAuthorizer(true));
|
var filter2 = new AdminFilter(GetAuthorizer(true));
|
||||||
filter2.OnAuthorization(authorizationContext2);
|
filter2.OnAuthorization(authorizationContext2);
|
||||||
Assert.That(authorizationContext2.Result, Is.Null);
|
Assert.That(authorizationContext2.Result, Is.Null);
|
||||||
Assert.That(AdminThemeSelector.IsApplied(authorizationContext2.RequestContext), Is.True);
|
Assert.That(AdminFilter.IsApplied(authorizationContext2.RequestContext), Is.True);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,27 +9,27 @@ namespace Orchard.Tests.UI.Admin {
|
|||||||
[Test]
|
[Test]
|
||||||
public void IsAppliedShouldBeFalseByDefault() {
|
public void IsAppliedShouldBeFalseByDefault() {
|
||||||
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
||||||
var isApplied = AdminThemeSelector.IsApplied(context);
|
var isApplied = AdminFilter.IsApplied(context);
|
||||||
Assert.That(isApplied, Is.False);
|
Assert.That(isApplied, Is.False);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void IsAppliedShouldBeTrueAfterBeingApplied() {
|
public void IsAppliedShouldBeTrueAfterBeingApplied() {
|
||||||
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
||||||
Assert.That(AdminThemeSelector.IsApplied(context), Is.False);
|
Assert.That(AdminFilter.IsApplied(context), Is.False);
|
||||||
AdminThemeSelector.Apply(context);
|
AdminFilter.Apply(context);
|
||||||
Assert.That(AdminThemeSelector.IsApplied(context), Is.True);
|
Assert.That(AdminFilter.IsApplied(context), Is.True);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void IsAppliedIsFalseOnNewContext() {
|
public void IsAppliedIsFalseOnNewContext() {
|
||||||
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
||||||
Assert.That(AdminThemeSelector.IsApplied(context), Is.False);
|
Assert.That(AdminFilter.IsApplied(context), Is.False);
|
||||||
AdminThemeSelector.Apply(context);
|
AdminFilter.Apply(context);
|
||||||
Assert.That(AdminThemeSelector.IsApplied(context), Is.True);
|
Assert.That(AdminFilter.IsApplied(context), Is.True);
|
||||||
context = new RequestContext(new StubHttpContext(), new RouteData());
|
context = new RequestContext(new StubHttpContext(), new RouteData());
|
||||||
Assert.That(AdminThemeSelector.IsApplied(context), Is.False);
|
Assert.That(AdminFilter.IsApplied(context), Is.False);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@@ -46,7 +46,7 @@ namespace Orchard.Tests.UI.Admin {
|
|||||||
public void ThemeResultShouldBeTheAdminAt100AfterBeingSet() {
|
public void ThemeResultShouldBeTheAdminAt100AfterBeingSet() {
|
||||||
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
var context = new RequestContext(new StubHttpContext(), new RouteData());
|
||||||
|
|
||||||
AdminThemeSelector.Apply(context);
|
AdminFilter.Apply(context);
|
||||||
|
|
||||||
var selector = new AdminThemeSelector();
|
var selector = new AdminThemeSelector();
|
||||||
var result = selector.GetTheme(context);
|
var result = selector.GetTheme(context);
|
||||||
|
|||||||
100
src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs
Normal file
100
src/Orchard.Tests/UI/Navigation/MenuFilterTests.cs
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using Moq;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using Orchard.Localization;
|
||||||
|
using Orchard.Mvc.ViewModels;
|
||||||
|
using Orchard.Security;
|
||||||
|
using Orchard.Tests.Stubs;
|
||||||
|
using Orchard.UI.Admin;
|
||||||
|
using Orchard.UI.Navigation;
|
||||||
|
|
||||||
|
namespace Orchard.Tests.UI.Navigation {
|
||||||
|
[TestFixture]
|
||||||
|
public class MenuFilterTests {
|
||||||
|
|
||||||
|
private static AuthorizationContext GetAuthorizationContext<TController>() where TController : ControllerBase, new() {
|
||||||
|
var controllerDescriptor = new ReflectedControllerDescriptor(typeof(TController));
|
||||||
|
var controllerContext = new ControllerContext(new StubHttpContext(), new RouteData(), new TController());
|
||||||
|
return new AuthorizationContext(
|
||||||
|
controllerContext,
|
||||||
|
controllerDescriptor.FindAction(controllerContext, "Index"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IAuthorizer GetAuthorizer(bool result) {
|
||||||
|
var authorizer = new Mock<IAuthorizer>();
|
||||||
|
authorizer
|
||||||
|
.Setup(x => x.Authorize(StandardPermissions.AccessAdminPanel, It.IsAny<LocalizedString>())).
|
||||||
|
Returns(result);
|
||||||
|
return authorizer.Object;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Mock<INavigationManager> GetNavigationManager() {
|
||||||
|
var mainMenu = new[] { new MenuItem { Text = "The Main Menu" } };
|
||||||
|
var adminMenu = new[] { new MenuItem { Text = "The Admin Menu" } };
|
||||||
|
var navigationManager = new Mock<INavigationManager>();
|
||||||
|
navigationManager.Setup(x => x.BuildMenu("main")).Returns(mainMenu);
|
||||||
|
navigationManager.Setup(x => x.BuildMenu("admin")).Returns(adminMenu);
|
||||||
|
return navigationManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void MockNavManagerWorks() {
|
||||||
|
var main = GetNavigationManager().Object.BuildMenu("main");
|
||||||
|
Assert.That(main.Count(), Is.EqualTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void MainMenuShouldBeCalledNormally() {
|
||||||
|
Mock<INavigationManager> navigationManager = GetNavigationManager();
|
||||||
|
|
||||||
|
var authorizationContext = GetAuthorizationContext<NormalController>();
|
||||||
|
var adminFilter = new AdminFilter(GetAuthorizer(true));
|
||||||
|
adminFilter.OnAuthorization(authorizationContext);
|
||||||
|
|
||||||
|
var viewModel = new BaseViewModel();
|
||||||
|
var resultExecutingContext = new ResultExecutingContext(
|
||||||
|
authorizationContext,
|
||||||
|
new ViewResult { ViewData = new ViewDataDictionary<BaseViewModel>(viewModel) });
|
||||||
|
var menuFilter = new MenuFilter(navigationManager.Object);
|
||||||
|
menuFilter.OnResultExecuting(resultExecutingContext);
|
||||||
|
|
||||||
|
Assert.That(viewModel.Menu, Is.Not.Null);
|
||||||
|
Assert.That(viewModel.Menu.Single().Text, Is.SameAs("The Main Menu"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void AdminMenuShouldHaveDifferentNavigation() {
|
||||||
|
Mock<INavigationManager> navigationManager = GetNavigationManager();
|
||||||
|
|
||||||
|
var authorizationContext = GetAuthorizationContext<AdminController>();
|
||||||
|
var adminFilter = new AdminFilter(GetAuthorizer(true));
|
||||||
|
adminFilter.OnAuthorization(authorizationContext);
|
||||||
|
|
||||||
|
var viewModel = new BaseViewModel();
|
||||||
|
var resultExecutingContext = new ResultExecutingContext(
|
||||||
|
authorizationContext,
|
||||||
|
new ViewResult { ViewData = new ViewDataDictionary<BaseViewModel>(viewModel) });
|
||||||
|
var menuFilter = new MenuFilter(navigationManager.Object);
|
||||||
|
menuFilter.OnResultExecuting(resultExecutingContext);
|
||||||
|
|
||||||
|
Assert.That(viewModel.Menu, Is.Not.Null);
|
||||||
|
Assert.That(viewModel.Menu.Single().Text, Is.SameAs("The Admin Menu"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class NormalController : Controller {
|
||||||
|
public ActionResult Index() {
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AdminController : Controller {
|
||||||
|
public ActionResult Index() {
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
using System;
|
using System.Web.Routing;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Web.Routing;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Orchard.UI.Navigation;
|
using Orchard.UI.Navigation;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Orchard.UI.Navigation;
|
using Orchard.UI.Navigation;
|
||||||
|
|
||||||
|
|||||||
@@ -62,12 +62,12 @@ namespace Orchard.Tests.UI.Notify {
|
|||||||
var filter = new NotifyFilter(sink);
|
var filter = new NotifyFilter(sink);
|
||||||
sink.Information("Working");
|
sink.Information("Working");
|
||||||
|
|
||||||
var model = new AdminViewModel();
|
var model = new BaseViewModel();
|
||||||
|
|
||||||
var context = BuildContext();
|
var context = BuildContext();
|
||||||
context.Controller.TempData.Add("messages", "dont-destroy" + System.Environment.NewLine + "-" + System.Environment.NewLine);
|
context.Controller.TempData.Add("messages", "dont-destroy" + System.Environment.NewLine + "-" + System.Environment.NewLine);
|
||||||
context.Result = new ViewResult {
|
context.Result = new ViewResult {
|
||||||
ViewData = new ViewDataDictionary<AdminViewModel>(model),
|
ViewData = new ViewDataDictionary<BaseViewModel>(model),
|
||||||
TempData = context.Controller.TempData
|
TempData = context.Controller.TempData
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using Orchard.Core.Navigation.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Core.Navigation.ViewModels {
|
namespace Orchard.Core.Navigation.ViewModels {
|
||||||
public class CreateMenuItemViewModel : AdminViewModel {
|
public class CreateMenuItemViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<MenuPart> MenuItem { get; set; }
|
public ContentItemViewModel<MenuPart> MenuItem { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@ using System.Linq;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Core.Navigation.ViewModels {
|
namespace Orchard.Core.Navigation.ViewModels {
|
||||||
public class NavigationManagementViewModel : AdminViewModel {
|
public class NavigationManagementViewModel : BaseViewModel {
|
||||||
public NavigationManagementViewModel() {
|
public NavigationManagementViewModel() {
|
||||||
MenuItemEntries = Enumerable.Empty<MenuItemEntry>().ToList();
|
MenuItemEntries = Enumerable.Empty<MenuItemEntry>().ToList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,6 @@
|
|||||||
<Compile Include="Navigation\Records\MenuItemRecord.cs" />
|
<Compile Include="Navigation\Records\MenuItemRecord.cs" />
|
||||||
<Compile Include="Navigation\Records\MenuPartRecord.cs" />
|
<Compile Include="Navigation\Records\MenuPartRecord.cs" />
|
||||||
<Compile Include="Navigation\Services\MainMenu.cs" />
|
<Compile Include="Navigation\Services\MainMenu.cs" />
|
||||||
<Compile Include="Navigation\Filters\MainMenuFilter.cs" />
|
|
||||||
<Compile Include="Navigation\ViewModels\CreateMenuItemViewModel.cs" />
|
<Compile Include="Navigation\ViewModels\CreateMenuItemViewModel.cs" />
|
||||||
<Compile Include="Navigation\ViewModels\MenuItemEntry.cs" />
|
<Compile Include="Navigation\ViewModels\MenuItemEntry.cs" />
|
||||||
<Compile Include="Navigation\ViewModels\NavigationManagementViewModel.cs" />
|
<Compile Include="Navigation\ViewModels\NavigationManagementViewModel.cs" />
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Core.Settings.Models;
|
using Orchard.Core.Settings.Models;
|
||||||
|
|
||||||
namespace Orchard.Core.Settings.ViewModels {
|
namespace Orchard.Core.Settings.ViewModels {
|
||||||
public class SettingsIndexViewModel : AdminViewModel {
|
public class SettingsIndexViewModel : BaseViewModel {
|
||||||
public SiteSettings Site { get; set; }
|
public SiteSettings Site { get; set; }
|
||||||
public ContentItemViewModel ViewModel { get; set; }
|
public ContentItemViewModel ViewModel { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ namespace Orchard.Core.Themes.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Install() {
|
public ActionResult Install() {
|
||||||
return View(new AdminViewModel());
|
return View(new BaseViewModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Themes;
|
using Orchard.Themes;
|
||||||
|
|
||||||
namespace Orchard.Core.Themes.ViewModels {
|
namespace Orchard.Core.Themes.ViewModels {
|
||||||
public class ThemesIndexViewModel : AdminViewModel {
|
public class ThemesIndexViewModel : BaseViewModel {
|
||||||
public ITheme CurrentTheme { get; set; }
|
public ITheme CurrentTheme { get; set; }
|
||||||
public IEnumerable<ITheme> Themes { get; set; }
|
public IEnumerable<ITheme> Themes { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class AdminBlogsViewModel : AdminViewModel {
|
public class AdminBlogsViewModel : BaseViewModel {
|
||||||
public IEnumerable<AdminBlogEntry> Entries { get; set; }
|
public IEnumerable<AdminBlogEntry> Entries { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class BlogEditViewModel : AdminViewModel {
|
public class BlogEditViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||||
public bool PromoteToHomePage { get; set; }
|
public bool PromoteToHomePage { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class BlogForAdminViewModel : AdminViewModel {
|
public class BlogForAdminViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class BlogPostEditViewModel : AdminViewModel {
|
public class BlogPostEditViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class CreateBlogPostViewModel : AdminViewModel {
|
public class CreateBlogPostViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
public ContentItemViewModel<BlogPost> BlogPost { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Blogs.ViewModels {
|
namespace Orchard.Blogs.ViewModels {
|
||||||
public class CreateBlogViewModel : AdminViewModel {
|
public class CreateBlogViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<Blog> Blog { get; set; }
|
public ContentItemViewModel<Blog> Blog { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Comments.ViewModels {
|
namespace Orchard.Comments.ViewModels {
|
||||||
public class CommentsCreateViewModel : AdminViewModel {
|
public class CommentsCreateViewModel : BaseViewModel {
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Email { get; set; }
|
public string Email { get; set; }
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Comments.ViewModels {
|
namespace Orchard.Comments.ViewModels {
|
||||||
public class CommentsDetailsViewModel : AdminViewModel {
|
public class CommentsDetailsViewModel : BaseViewModel {
|
||||||
public IList<CommentEntry> Comments { get; set; }
|
public IList<CommentEntry> Comments { get; set; }
|
||||||
public CommentDetailsOptions Options { get; set; }
|
public CommentDetailsOptions Options { get; set; }
|
||||||
public string DisplayNameForCommentedItem { get; set; }
|
public string DisplayNameForCommentedItem { get; set; }
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Comments.Models;
|
using Orchard.Comments.Models;
|
||||||
|
|
||||||
namespace Orchard.Comments.ViewModels {
|
namespace Orchard.Comments.ViewModels {
|
||||||
public class CommentsEditViewModel : AdminViewModel {
|
public class CommentsEditViewModel : BaseViewModel {
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Email { get; set; }
|
public string Email { get; set; }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Comments.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Comments.ViewModels {
|
namespace Orchard.Comments.ViewModels {
|
||||||
public class CommentsIndexViewModel : AdminViewModel {
|
public class CommentsIndexViewModel : BaseViewModel {
|
||||||
public IList<CommentEntry> Comments { get; set; }
|
public IList<CommentEntry> Comments { get; set; }
|
||||||
public CommentIndexOptions Options { get; set; }
|
public CommentIndexOptions Options { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaFolderCreateViewModel : AdminViewModel {
|
public class MediaFolderCreateViewModel : BaseViewModel {
|
||||||
[Required, DisplayName("Folder Name:")]
|
[Required, DisplayName("Folder Name:")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string MediaPath { get; set; }
|
public string MediaPath { get; set; }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaFolderEditPropertiesViewModel : AdminViewModel {
|
public class MediaFolderEditPropertiesViewModel : BaseViewModel {
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string MediaPath { get; set; }
|
public string MediaPath { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Media.Models;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaFolderEditViewModel : AdminViewModel {
|
public class MediaFolderEditViewModel : BaseViewModel {
|
||||||
public string FolderName { get; set; }
|
public string FolderName { get; set; }
|
||||||
public string MediaPath { get; set; }
|
public string MediaPath { get; set; }
|
||||||
public IEnumerable<MediaFolder> MediaFolders { get; set; }
|
public IEnumerable<MediaFolder> MediaFolders { get; set; }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Media.Models;
|
using Orchard.Media.Models;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaFolderIndexViewModel : AdminViewModel {
|
public class MediaFolderIndexViewModel : BaseViewModel {
|
||||||
public IEnumerable<MediaFolder> MediaFolders { get; set; }
|
public IEnumerable<MediaFolder> MediaFolders { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaItemAddViewModel : AdminViewModel {
|
public class MediaItemAddViewModel : BaseViewModel {
|
||||||
public string FolderName { get; set; }
|
public string FolderName { get; set; }
|
||||||
public string MediaPath { get; set; }
|
public string MediaPath { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Media.ViewModels {
|
namespace Orchard.Media.ViewModels {
|
||||||
public class MediaItemEditViewModel : AdminViewModel {
|
public class MediaItemEditViewModel : BaseViewModel {
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Caption { get; set; }
|
public string Caption { get; set; }
|
||||||
public long Size { get; set; }
|
public long Size { get; set; }
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Pages.Models;
|
using Orchard.Pages.Models;
|
||||||
|
|
||||||
namespace Orchard.Pages.ViewModels {
|
namespace Orchard.Pages.ViewModels {
|
||||||
public class PageCreateViewModel : AdminViewModel {
|
public class PageCreateViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<Page> Page { get; set; }
|
public ContentItemViewModel<Page> Page { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Pages.ViewModels {
|
namespace Orchard.Pages.ViewModels {
|
||||||
public class PageEditViewModel : AdminViewModel {
|
public class PageEditViewModel : BaseViewModel {
|
||||||
public ContentItemViewModel<Page> Page { get; set; }
|
public ContentItemViewModel<Page> Page { get; set; }
|
||||||
public bool PromoteToHomePage { get; set; }
|
public bool PromoteToHomePage { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Pages.Models;
|
using Orchard.Pages.Models;
|
||||||
|
|
||||||
namespace Orchard.Pages.ViewModels {
|
namespace Orchard.Pages.ViewModels {
|
||||||
public class PagesViewModel : AdminViewModel {
|
public class PagesViewModel : BaseViewModel {
|
||||||
public IList<PageEntry> PageEntries { get; set; }
|
public IList<PageEntry> PageEntries { get; set; }
|
||||||
public PagesOptions Options { get; set; }
|
public PagesOptions Options { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Security.Permissions;
|
using Orchard.Security.Permissions;
|
||||||
|
|
||||||
namespace Orchard.Roles.ViewModels {
|
namespace Orchard.Roles.ViewModels {
|
||||||
public class RoleCreateViewModel : AdminViewModel {
|
public class RoleCreateViewModel : BaseViewModel {
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public IDictionary<string, IEnumerable<Permission>> ModulePermissions { get; set; }
|
public IDictionary<string, IEnumerable<Permission>> ModulePermissions { get; set; }
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Security.Permissions;
|
using Orchard.Security.Permissions;
|
||||||
|
|
||||||
namespace Orchard.Roles.ViewModels {
|
namespace Orchard.Roles.ViewModels {
|
||||||
public class RoleEditViewModel : AdminViewModel {
|
public class RoleEditViewModel : BaseViewModel {
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Roles.Records;
|
using Orchard.Roles.Records;
|
||||||
|
|
||||||
namespace Orchard.Roles.ViewModels {
|
namespace Orchard.Roles.ViewModels {
|
||||||
public class RolesIndexViewModel : AdminViewModel {
|
public class RolesIndexViewModel : BaseViewModel {
|
||||||
public IList<RoleRecord> Rows { get; set; }
|
public IList<RoleRecord> Rows { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Tags.ViewModels {
|
namespace Orchard.Tags.ViewModels {
|
||||||
public class TagsAdminCreateViewModel : AdminViewModel {
|
public class TagsAdminCreateViewModel : BaseViewModel {
|
||||||
[Required, DisplayName("Name:")]
|
[Required, DisplayName("Name:")]
|
||||||
public string TagName { get; set; }
|
public string TagName { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Tags.ViewModels {
|
namespace Orchard.Tags.ViewModels {
|
||||||
public class TagsAdminEditViewModel : AdminViewModel {
|
public class TagsAdminEditViewModel : BaseViewModel {
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
[Required, DisplayName("Name:")]
|
[Required, DisplayName("Name:")]
|
||||||
public string TagName { get; set; }
|
public string TagName { get; set; }
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Tags.Models;
|
using Orchard.Tags.Models;
|
||||||
|
|
||||||
namespace Orchard.Tags.ViewModels {
|
namespace Orchard.Tags.ViewModels {
|
||||||
public class TagsAdminIndexViewModel : AdminViewModel {
|
public class TagsAdminIndexViewModel : BaseViewModel {
|
||||||
public IList<TagEntry> Tags { get; set; }
|
public IList<TagEntry> Tags { get; set; }
|
||||||
public TagAdminIndexBulkAction BulkAction { get; set; }
|
public TagAdminIndexBulkAction BulkAction { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using Orchard.ContentManagement;
|
|||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
|
|
||||||
namespace Orchard.Tags.ViewModels {
|
namespace Orchard.Tags.ViewModels {
|
||||||
public class TagsAdminSearchViewModel : AdminViewModel {
|
public class TagsAdminSearchViewModel : BaseViewModel {
|
||||||
public string TagName { get; set; }
|
public string TagName { get; set; }
|
||||||
public IEnumerable<IContent> Contents { get; set; }
|
public IEnumerable<IContent> Contents { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using Orchard.Security;
|
|||||||
using Orchard.Users.Models;
|
using Orchard.Users.Models;
|
||||||
|
|
||||||
namespace Orchard.Users.ViewModels {
|
namespace Orchard.Users.ViewModels {
|
||||||
public class UserCreateViewModel : AdminViewModel {
|
public class UserCreateViewModel : BaseViewModel {
|
||||||
[Required]
|
[Required]
|
||||||
public string UserName { get; set; }
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Orchard.Mvc.ViewModels;
|
|||||||
using Orchard.Users.Models;
|
using Orchard.Users.Models;
|
||||||
|
|
||||||
namespace Orchard.Users.ViewModels {
|
namespace Orchard.Users.ViewModels {
|
||||||
public class UserEditViewModel : AdminViewModel {
|
public class UserEditViewModel : BaseViewModel {
|
||||||
[HiddenInput(DisplayValue = false)]
|
[HiddenInput(DisplayValue = false)]
|
||||||
public int Id {
|
public int Id {
|
||||||
get { return User.Item.Id; }
|
get { return User.Item.Id; }
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using Orchard.Users.Models;
|
|||||||
|
|
||||||
namespace Orchard.Users.ViewModels {
|
namespace Orchard.Users.ViewModels {
|
||||||
|
|
||||||
public class UsersIndexViewModel : AdminViewModel {
|
public class UsersIndexViewModel : BaseViewModel {
|
||||||
public class Row {
|
public class Row {
|
||||||
public User User { get; set; }
|
public User User { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<AdminViewModel>" %>
|
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||||
<div id="app"><%=Html.ActionLink(T("Project Orchard").ToString(), "Index", new { Area = "", Controller = "Home" })%></div>
|
<div id="app"><%=Html.ActionLink(T("Project Orchard").ToString(), "Index", new { Area = "", Controller = "Home" })%></div>
|
||||||
<div id="site"><%=Html.ActionLink(T("Your Site").ToString(), "Index", new { Area = "", Controller = "Home" })%></div>
|
<div id="site"><%=Html.ActionLink(T("Your Site").ToString(), "Index", new { Area = "", Controller = "Home" })%></div>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<AdminViewModel>" %>
|
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||||
<%@ Import Namespace="Orchard.Mvc.Html"%><%
|
<%@ Import Namespace="Orchard.Mvc.Html"%><%
|
||||||
Html.RegisterStyle("site.css");
|
Html.RegisterStyle("site.css");
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<AdminViewModel>" %>
|
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||||
<ul id="navigation" role="navigation">
|
<ul id="navigation" role="navigation">
|
||||||
<li class="first"><h3><span><%=_Encoded("Dashboard")%></span></h3></li>
|
<li class="first"><h3><span><%=_Encoded("Dashboard")%></span></h3></li>
|
||||||
<%if (Model.AdminMenu != null) {
|
<%if (Model.Menu != null) {
|
||||||
foreach (var menuSection in Model.AdminMenu) {
|
foreach (var menuSection in Model.Menu) {
|
||||||
// todo: (heskew) need some help(er)
|
// todo: (heskew) need some help(er)
|
||||||
var firstSectionItem = menuSection.Items.FirstOrDefault();
|
var firstSectionItem = menuSection.Items.FirstOrDefault();
|
||||||
var sectionHeaderMarkup = firstSectionItem != null
|
var sectionHeaderMarkup = firstSectionItem != null
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<AdminViewModel>" %>
|
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<BaseViewModel>" %>
|
||||||
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
<%@ Import Namespace="Orchard.Mvc.ViewModels"%>
|
||||||
<% if (Model.CurrentUser != null) {
|
<% if (Model.CurrentUser != null) {
|
||||||
%><div id="login"><%=_Encoded("User:")%> <%=Html.Encode(Model.CurrentUser.UserName)%> | <%=Html.ActionLink(T("Logout").ToString(), "LogOff", new { Area = "Orchard.Users", Controller = "Account" }) %></div><%
|
%><div id="login"><%=_Encoded("User:")%> <%=Html.Encode(Model.CurrentUser.UserName)%> | <%=Html.ActionLink(T("Logout").ToString(), "LogOff", new { Area = "Orchard.Users", Controller = "Account" }) %></div><%
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using Orchard.UI.Navigation;
|
|
||||||
|
|
||||||
namespace Orchard.Mvc.ViewModels {
|
|
||||||
public class AdminViewModel : BaseViewModel {
|
|
||||||
public IEnumerable<MenuItem> AdminMenu { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Orchard.Security;
|
using Orchard.Security;
|
||||||
using Orchard.UI.Navigation;
|
using Orchard.UI.Navigation;
|
||||||
using Orchard.UI.Notify;
|
using Orchard.UI.Notify;
|
||||||
@@ -6,15 +7,23 @@ using Orchard.UI.Zones;
|
|||||||
|
|
||||||
namespace Orchard.Mvc.ViewModels {
|
namespace Orchard.Mvc.ViewModels {
|
||||||
public class BaseViewModel : IZoneContainer {
|
public class BaseViewModel : IZoneContainer {
|
||||||
public BaseViewModel() {
|
private ZoneCollection _zones = new ZoneCollection();
|
||||||
Messages = new List<NotifyEntry>();
|
private IList<NotifyEntry> _messages = new List<NotifyEntry>();
|
||||||
Zones = new ZoneCollection();
|
|
||||||
|
public virtual ZoneCollection Zones {
|
||||||
|
get { return _zones; }
|
||||||
|
set { _zones = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public IList<NotifyEntry> Messages { get; set; }
|
public virtual IList<NotifyEntry> Messages {
|
||||||
public IUser CurrentUser { get; set; }
|
get { return _messages; }
|
||||||
public ZoneCollection Zones { get; set; }
|
set { _messages = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<MenuItem> Menu { get; set; }
|
public virtual IUser CurrentUser { get; set; }
|
||||||
|
public virtual IEnumerable<MenuItem> Menu { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("Please change your code to use BaseViewModel, as AdminViewModel will likely be removed in the near future.")]
|
||||||
|
public class AdminViewModel : BaseViewModel { }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,7 +226,7 @@
|
|||||||
<Compile Include="Extensions\ExtensionEntry.cs" />
|
<Compile Include="Extensions\ExtensionEntry.cs" />
|
||||||
<Compile Include="IOrchardServices.cs" />
|
<Compile Include="IOrchardServices.cs" />
|
||||||
<Compile Include="UI\Admin\AdminAttribute.cs" />
|
<Compile Include="UI\Admin\AdminAttribute.cs" />
|
||||||
<Compile Include="UI\Admin\AdminAuthorizationFilter.cs" />
|
<Compile Include="UI\Admin\AdminFilter.cs" />
|
||||||
<Compile Include="Mvc\AntiForgery\AntiForgeryAuthorizationFilter.cs" />
|
<Compile Include="Mvc\AntiForgery\AntiForgeryAuthorizationFilter.cs" />
|
||||||
<Compile Include="Mvc\Html\FileRegistrationContext.cs" />
|
<Compile Include="Mvc\Html\FileRegistrationContext.cs" />
|
||||||
<Compile Include="Mvc\Html\MvcFormAntiForgeryPost.cs" />
|
<Compile Include="Mvc\Html\MvcFormAntiForgeryPost.cs" />
|
||||||
@@ -286,7 +286,6 @@
|
|||||||
<Compile Include="Mvc\ViewEngines\LayoutViewContext.cs" />
|
<Compile Include="Mvc\ViewEngines\LayoutViewContext.cs" />
|
||||||
<Compile Include="Mvc\ViewEngines\ViewEngineFilter.cs" />
|
<Compile Include="Mvc\ViewEngines\ViewEngineFilter.cs" />
|
||||||
<Compile Include="Mvc\ViewEngines\WebFormsViewEngineProvider.cs" />
|
<Compile Include="Mvc\ViewEngines\WebFormsViewEngineProvider.cs" />
|
||||||
<Compile Include="Mvc\ViewModels\AdminViewModel.cs" />
|
|
||||||
<Compile Include="Mvc\ViewModels\BaseViewModel.cs" />
|
<Compile Include="Mvc\ViewModels\BaseViewModel.cs" />
|
||||||
<Compile Include="UI\Admin\AdminThemeSelector.cs" />
|
<Compile Include="UI\Admin\AdminThemeSelector.cs" />
|
||||||
<Compile Include="UI\Navigation\INavigationManager.cs" />
|
<Compile Include="UI\Navigation\INavigationManager.cs" />
|
||||||
@@ -325,7 +324,7 @@
|
|||||||
<Compile Include="Themes\IThemeSelector.cs" />
|
<Compile Include="Themes\IThemeSelector.cs" />
|
||||||
<Compile Include="Themes\IThemeService.cs" />
|
<Compile Include="Themes\IThemeService.cs" />
|
||||||
<Compile Include="Themes\ThemesModule.cs" />
|
<Compile Include="Themes\ThemesModule.cs" />
|
||||||
<Compile Include="UI\Menus\AdminMenuFilter.cs" />
|
<Compile Include="UI\Navigation\MenuFilter.cs" />
|
||||||
<Compile Include="UI\Navigation\NavigationBuilder.cs" />
|
<Compile Include="UI\Navigation\NavigationBuilder.cs" />
|
||||||
<Compile Include="UI\Navigation\INavigationProvider.cs" />
|
<Compile Include="UI\Navigation\INavigationProvider.cs" />
|
||||||
<Compile Include="UI\Navigation\MenuItem.cs" />
|
<Compile Include="UI\Navigation\MenuItem.cs" />
|
||||||
|
|||||||
@@ -2,15 +2,16 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Routing;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
using Orchard.Mvc.Filters;
|
using Orchard.Mvc.Filters;
|
||||||
using Orchard.Security;
|
using Orchard.Security;
|
||||||
|
|
||||||
namespace Orchard.UI.Admin {
|
namespace Orchard.UI.Admin {
|
||||||
public class AdminAuthorizationFilter : FilterProvider, IAuthorizationFilter {
|
public class AdminFilter : FilterProvider, IAuthorizationFilter {
|
||||||
private readonly IAuthorizer _authorizer;
|
private readonly IAuthorizer _authorizer;
|
||||||
|
|
||||||
public AdminAuthorizationFilter(IAuthorizer authorizer) {
|
public AdminFilter(IAuthorizer authorizer) {
|
||||||
_authorizer = authorizer;
|
_authorizer = authorizer;
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
@@ -23,10 +24,19 @@ namespace Orchard.UI.Admin {
|
|||||||
filterContext.Result = new HttpUnauthorizedResult();
|
filterContext.Result = new HttpUnauthorizedResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
AdminThemeSelector.Apply(filterContext.RequestContext);
|
Apply(filterContext.RequestContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void Apply(RequestContext context) {
|
||||||
|
// the value isn't important
|
||||||
|
context.HttpContext.Items[typeof(AdminThemeSelector)] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsApplied(RequestContext context) {
|
||||||
|
return context.HttpContext.Items.Contains(typeof(AdminThemeSelector));
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsAdmin(AuthorizationContext filterContext) {
|
private static bool IsAdmin(AuthorizationContext filterContext) {
|
||||||
if (IsNameAdmin(filterContext) || IsNameAdminProxy(filterContext)) {
|
if (IsNameAdmin(filterContext) || IsNameAdminProxy(filterContext)) {
|
||||||
return true;
|
return true;
|
||||||
@@ -4,20 +4,12 @@ using Orchard.Themes;
|
|||||||
namespace Orchard.UI.Admin {
|
namespace Orchard.UI.Admin {
|
||||||
public class AdminThemeSelector : IThemeSelector {
|
public class AdminThemeSelector : IThemeSelector {
|
||||||
public ThemeSelectorResult GetTheme(RequestContext context) {
|
public ThemeSelectorResult GetTheme(RequestContext context) {
|
||||||
if (IsApplied(context)) {
|
if (AdminFilter.IsApplied(context)) {
|
||||||
return new ThemeSelectorResult { Priority = 100, ThemeName = "TheAdmin" };
|
return new ThemeSelectorResult { Priority = 100, ThemeName = "TheAdmin" };
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Apply(RequestContext context) {
|
|
||||||
// the value isn't important
|
|
||||||
context.HttpContext.Items[typeof(AdminThemeSelector)] = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsApplied(RequestContext context) {
|
|
||||||
return context.HttpContext.Items.Contains(typeof(AdminThemeSelector));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
using System.Web.Mvc;
|
|
||||||
using Orchard.Mvc.Filters;
|
|
||||||
using Orchard.Mvc.ViewModels;
|
|
||||||
using Orchard.UI.Navigation;
|
|
||||||
|
|
||||||
namespace Orchard.UI.Menus {
|
|
||||||
public class AdminMenuFilter : FilterProvider, IResultFilter {
|
|
||||||
private readonly INavigationManager _navigationManager;
|
|
||||||
|
|
||||||
public AdminMenuFilter(INavigationManager navigationManager ) {
|
|
||||||
_navigationManager = navigationManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnResultExecuting(ResultExecutingContext filterContext) {
|
|
||||||
var viewResult = filterContext.Result as ViewResult;
|
|
||||||
if (viewResult == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var adminViewModel = viewResult.ViewData.Model as AdminViewModel;
|
|
||||||
if (adminViewModel == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
adminViewModel.AdminMenu = _navigationManager.BuildMenu("admin");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnResultExecuted(ResultExecutedContext filterContext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using Orchard.Mvc.Filters;
|
using Orchard.Mvc.Filters;
|
||||||
using Orchard.Mvc.ViewModels;
|
using Orchard.Mvc.ViewModels;
|
||||||
using Orchard.UI.Navigation;
|
using Orchard.UI.Admin;
|
||||||
|
|
||||||
namespace Orchard.Core.Navigation.Filters {
|
namespace Orchard.UI.Navigation {
|
||||||
public class MainMenuFilter : FilterProvider, IResultFilter {
|
public class MenuFilter : FilterProvider, IResultFilter {
|
||||||
private readonly INavigationManager _navigationManager;
|
private readonly INavigationManager _navigationManager;
|
||||||
|
|
||||||
public MainMenuFilter(INavigationManager navigationManager) {
|
public MenuFilter(INavigationManager navigationManager) {
|
||||||
_navigationManager = navigationManager;
|
_navigationManager = navigationManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,10 +20,15 @@ namespace Orchard.Core.Navigation.Filters {
|
|||||||
if (baseViewModel == null)
|
if (baseViewModel == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
baseViewModel.Menu = _navigationManager.BuildMenu("main");
|
var menuName = "main";
|
||||||
|
if (AdminFilter.IsApplied(filterContext.RequestContext))
|
||||||
|
menuName = "admin";
|
||||||
|
|
||||||
|
baseViewModel.Menu = _navigationManager.BuildMenu(menuName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnResultExecuted(ResultExecutedContext filterContext) {
|
public void OnResultExecuted(ResultExecutedContext filterContext) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user