Adding menu and a tabbed import/export management in the admin.

--HG--
branch : dev
This commit is contained in:
Suha Can
2011-03-10 11:42:30 -08:00
parent ab6632e0ba
commit ec409007d0
9 changed files with 146 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
using Orchard.Localization;
using Orchard.UI.Navigation;
namespace Orchard.ImportExport {
public class AdminMenu : INavigationProvider {
public Localizer T { get; set; }
public string MenuName {
get { return "admin"; }
}
public void GetNavigation(NavigationBuilder builder) {
builder.AddImageSet("importexport")
.Add(T("Import/Export"), "4", BuildMenu);
}
private void BuildMenu(NavigationItemBuilder menu) {
menu.Add(T("Import"), "0", item => item.Action("Import", "Admin", new {area = "Orchard.ImportExport"}).Permission(Permissions.Import).LocalNav());
menu.Add(T("Export"), "0", item => item.Action("Export", "Admin", new {area = "Orchard.ImportExport"}).Permission(Permissions.Export).LocalNav());
}
}
}

View File

@@ -0,0 +1,27 @@
using System.Web.Mvc;
using Orchard.ImportExport.ViewModels;
using Orchard.Localization;
namespace Orchard.ImportExport.Controllers {
public class AdminController : Controller {
public AdminController(IOrchardServices services) {
Services = services;
T = NullLocalizer.Instance;
}
public IOrchardServices Services { get; private set; }
public Localizer T { get; set; }
public ActionResult Import() {
var viewModel = new ImportViewModel();
return View(viewModel);
}
public ActionResult Export() {
var viewModel = new ExportViewModel();
return View(viewModel);
}
}
}

View File

@@ -43,7 +43,12 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AdminMenu.cs" />
<Compile Include="Controllers\AdminController.cs" />
<Compile Include="Permissions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\ExportViewModel.cs" />
<Compile Include="ViewModels\ImportViewModel.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Module.txt" />
@@ -61,6 +66,16 @@
<ItemGroup>
<Content Include="web.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Views\Web.config" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Content Include="Views\Admin\Import.cshtml" />
</ItemGroup>
<ItemGroup>
<Content Include="Views\Admin\Export.cshtml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<ProjectExtensions>

View File

@@ -0,0 +1,25 @@
using System.Collections.Generic;
using Orchard.Environment.Extensions.Models;
using Orchard.Security.Permissions;
namespace Orchard.ImportExport {
public class Permissions : IPermissionProvider {
public static readonly Permission Import = new Permission { Description = "Import Data", Name = "Import" };
public static readonly Permission Export = new Permission { Description = "Export Data", Name = "Export" };
public virtual Feature Feature { get; set; }
public IEnumerable<Permission> GetPermissions() {
return new[] { Import, Export };
}
public IEnumerable<PermissionStereotype> GetDefaultStereotypes() {
return new[] {
new PermissionStereotype {
Name = "Administrator",
Permissions = new[] {Import, Export}
}
};
}
}
}

View File

@@ -0,0 +1,4 @@
namespace Orchard.ImportExport.ViewModels {
public class ExportViewModel {
}
}

View File

@@ -0,0 +1,4 @@
namespace Orchard.ImportExport.ViewModels {
public class ImportViewModel {
}
}

View File

@@ -0,0 +1,4 @@
@model Orchard.ImportExport.ViewModels.ExportViewModel
@{ Layout.Title = T("Export").ToString(); }

View File

@@ -0,0 +1,4 @@
@model Orchard.ImportExport.ViewModels.ImportViewModel
@{ Layout.Title = T("Import").ToString(); }

View File

@@ -0,0 +1,41 @@
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
<httpHandlers>
</httpHandlers>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<controls>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>