diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/AdminMenu.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/AdminMenu.cs new file mode 100644 index 000000000..122e42a31 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/AdminMenu.cs @@ -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()); + } + } +} diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs new file mode 100644 index 000000000..4f2e3ab55 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs @@ -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); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj index ce753fbf0..7f5f7faf7 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj @@ -43,7 +43,12 @@ + + + + + @@ -61,6 +66,16 @@ + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Permissions.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Permissions.cs new file mode 100644 index 000000000..00c5fcb4a --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Permissions.cs @@ -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 GetPermissions() { + return new[] { Import, Export }; + } + + public IEnumerable GetDefaultStereotypes() { + return new[] { + new PermissionStereotype { + Name = "Administrator", + Permissions = new[] {Import, Export} + } + }; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportViewModel.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportViewModel.cs new file mode 100644 index 000000000..ba64fa457 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportViewModel.cs @@ -0,0 +1,4 @@ +namespace Orchard.ImportExport.ViewModels { + public class ExportViewModel { + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ImportViewModel.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ImportViewModel.cs new file mode 100644 index 000000000..ff350a79b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ImportViewModel.cs @@ -0,0 +1,4 @@ +namespace Orchard.ImportExport.ViewModels { + public class ImportViewModel { + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Export.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Export.cshtml new file mode 100644 index 000000000..cd1c11c3b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Export.cshtml @@ -0,0 +1,4 @@ +@model Orchard.ImportExport.ViewModels.ExportViewModel + +@{ Layout.Title = T("Export").ToString(); } + diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml new file mode 100644 index 000000000..32a934aea --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml @@ -0,0 +1,4 @@ +@model Orchard.ImportExport.ViewModels.ImportViewModel + +@{ Layout.Title = T("Import").ToString(); } + diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Web.config b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Web.config new file mode 100644 index 000000000..b7d215131 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Web.config @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +