From f2de649a3e075298a9ae3135fbc45261bd514603 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 15 Jul 2015 18:26:31 +0100 Subject: [PATCH] Simplified step names and added ResetSiteAction skeleton. --- .../Controllers/AdminController.cs | 8 ++--- .../Orchard.ImportExport.csproj | 11 +++++-- ...{RecipeBuilder.cs => BuildRecipeAction.cs} | 10 +++--- .../ImportActions/ResetSiteAction.cs | 33 +++++++++++++++++++ ...{UploadRecipe.cs => UploadRecipeAction.cs} | 4 +-- .../ViewModels/ResetSiteViewModel.cs | 5 +++ .../Views/Admin/Import.cshtml | 23 ++++++------- ...ecipeBuilder.cshtml => BuildRecipe.cshtml} | 0 .../ImportActions/ResetSite.cshtml | 8 +++++ .../ImportActions/UploadRecipe.cshtml | 3 +- .../Providers/Builders/ContentStep.cs | 2 +- .../Providers/Builders/RecipeMetadataStep.cs | 2 +- .../Providers/Builders/SettingsStep.cs | 2 +- 13 files changed, 80 insertions(+), 31 deletions(-) rename src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/{RecipeBuilder.cs => BuildRecipeAction.cs} (87%) create mode 100644 src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/ResetSiteAction.cs rename src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/{UploadRecipe.cs => UploadRecipeAction.cs} (91%) create mode 100644 src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ResetSiteViewModel.cs rename src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/{RecipeBuilder.cshtml => BuildRecipe.cshtml} (100%) create mode 100644 src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/ResetSite.cshtml diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs index 20d678544..49851f720 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs @@ -36,7 +36,7 @@ namespace Orchard.ImportExport.Controllers { public Localizer T { get; set; } public ActionResult Import() { - var actions = _importActions.OrderBy(x => x.Priority).Select(x => new ImportActionViewModel { + var actions = _importActions.OrderByDescending(x => x.Priority).Select(x => new ImportActionViewModel { Editor = x.BuildEditor(Services.New) }).Where(x => x != null).ToList(); @@ -52,7 +52,7 @@ namespace Orchard.ImportExport.Controllers { if (!Services.Authorizer.Authorize(Permissions.Import, T("Not allowed to import."))) return new HttpUnauthorizedResult(); - var actions = _importActions.OrderBy(x => x.Priority).ToList(); + var actions = _importActions.OrderByDescending(x => x.Priority).ToList(); var viewModel = new ImportViewModel { Actions = actions.Select(x => new ImportActionViewModel { Editor = x.UpdateEditor(Services.New, this) @@ -82,7 +82,7 @@ namespace Orchard.ImportExport.Controllers { } public ActionResult Export() { - var actions = _exportActions.OrderBy(x => x.Priority).Select(x => new ExportActionViewModel { + var actions = _exportActions.OrderByDescending(x => x.Priority).Select(x => new ExportActionViewModel { Editor = x.BuildEditor(Services.New) }).Where(x => x != null).ToList(); @@ -98,7 +98,7 @@ namespace Orchard.ImportExport.Controllers { if (!Services.Authorizer.Authorize(Permissions.Export, T("Not allowed to export."))) return new HttpUnauthorizedResult(); - var actions = _exportActions.OrderBy(x => x.Priority).ToList(); + var actions = _exportActions.OrderByDescending(x => x.Priority).ToList(); foreach (var action in actions) { action.UpdateEditor(Services.New, this); diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj index 228f1aab2..a999979ff 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj @@ -71,8 +71,10 @@ - - + + + + @@ -141,7 +143,10 @@ - + + + + 10.0 diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/RecipeBuilder.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs similarity index 87% rename from src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/RecipeBuilder.cs rename to src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs index 0b9fac155..0975eaba7 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/RecipeBuilder.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs @@ -11,12 +11,12 @@ using Orchard.Recipes.Services; using Orchard.Utility.Extensions; namespace Orchard.ImportExport.Providers.ExportActions { - public class RecipeBuilder : ExportAction { + public class BuildRecipeAction : ExportAction { private readonly IEnumerable _recipeBuilderSteps; private readonly IImportExportService _importExportService; private readonly IRecipeParser _recipeParser; - public RecipeBuilder(IEnumerable recipeBuilderSteps, IImportExportService importExportService, IRecipeParser recipeParser) { + public BuildRecipeAction(IEnumerable recipeBuilderSteps, IImportExportService importExportService, IRecipeParser recipeParser) { _recipeBuilderSteps = recipeBuilderSteps; _importExportService = importExportService; _recipeParser = recipeParser; @@ -24,7 +24,7 @@ namespace Orchard.ImportExport.Providers.ExportActions { RecipeBuilderSteps = new List(); } - public override string Name { get { return "RecipeBuilder"; } } + public override string Name { get { return "BuildRecipe"; } } public IList RecipeBuilderSteps { get; set; } @@ -33,7 +33,7 @@ namespace Orchard.ImportExport.Providers.ExportActions { } public override dynamic UpdateEditor(dynamic shapeFactory, IUpdateModel updater) { - var builderSteps = _recipeBuilderSteps.OrderBy(x => x.Priority).Select(x => new ExportStepViewModel { + var builderSteps = _recipeBuilderSteps.OrderByDescending(x => x.Priority).Select(x => new ExportStepViewModel { Name = x.Name, DisplayName = x.DisplayName, Description = x.Description, @@ -61,7 +61,7 @@ namespace Orchard.ImportExport.Providers.ExportActions { } } - return shapeFactory.EditorTemplate(TemplateName: "ExportActions/RecipeBuilder", Model: viewModel, Prefix: Prefix); + return shapeFactory.EditorTemplate(TemplateName: "ExportActions/BuildRecipe", Model: viewModel, Prefix: Prefix); } public override void Execute(ExportActionContext context) { diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/ResetSiteAction.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/ResetSiteAction.cs new file mode 100644 index 000000000..1e9beae7e --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/ResetSiteAction.cs @@ -0,0 +1,33 @@ +using Orchard.ContentManagement; +using Orchard.ImportExport.Services; +using Orchard.ImportExport.ViewModels; + +namespace Orchard.ImportExport.Providers.ImportActions { + public class ResetSiteAction : ImportAction { + + public override string Name { get { return "ResetSite"; } } + + public override int Priority { + get { return 500; } + } + + public override dynamic BuildEditor(dynamic shapeFactory) { + return UpdateEditor(shapeFactory, null); + } + + public bool ResetSite { get; set; } + + public override dynamic UpdateEditor(dynamic shapeFactory, IUpdateModel updater) { + var viewModel = new ResetSiteViewModel(); + if (updater != null) { + ResetSite = viewModel.ResetSite; + } + + return shapeFactory.EditorTemplate(TemplateName: "ImportActions/ResetSite", Model: viewModel, Prefix: Prefix); + } + + public override void Execute(ImportActionContext context) { + // Reset site. + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipe.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipeAction.cs similarity index 91% rename from src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipe.cs rename to src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipeAction.cs index b77336a80..3f96ed9b9 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipe.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ImportActions/UploadRecipeAction.cs @@ -8,11 +8,11 @@ using Orchard.ImportExport.Services; using Orchard.UI.Notify; namespace Orchard.ImportExport.Providers.ImportActions { - public class UploadRecipe : ImportAction { + public class UploadRecipeAction : ImportAction { private readonly IOrchardServices _orchardServices; private readonly IImportExportService _importExportService; - public UploadRecipe(IOrchardServices orchardServices, IImportExportService importExportService) { + public UploadRecipeAction(IOrchardServices orchardServices, IImportExportService importExportService) { _orchardServices = orchardServices; _importExportService = importExportService; } diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ResetSiteViewModel.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ResetSiteViewModel.cs new file mode 100644 index 000000000..cbc3bc300 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ResetSiteViewModel.cs @@ -0,0 +1,5 @@ +namespace Orchard.ImportExport.ViewModels { + public class ResetSiteViewModel { + public bool ResetSite { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml index 4480600fc..4be81325e 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/Admin/Import.cshtml @@ -1,16 +1,13 @@ @model Orchard.ImportExport.ViewModels.ImportViewModel - @{ - Layout.Title = T("Import").ToString(); - - using (Html.BeginFormAntiForgeryPost(Url.Action("Import", new { area = "Orchard.ImportExport" }), FormMethod.Post, new { enctype = "multipart/form-data" })) { - @Html.ValidationSummary(); -

@T("Choose a recipe file to import. Please consider {0} or backing up your data first.", - @Html.Link(T("exporting").Text, Url.Action("Export", "Admin", new { area = "Orchard.ImportExport" })))

-
- - -
- - } + Layout.Title = T("Import").ToString(); +} +@using (Html.BeginFormAntiForgeryPost(Url.Action("Import", new { area = "Orchard.ImportExport" }), FormMethod.Post, new { enctype = "multipart/form-data" })) { + @Html.ValidationSummary(); + foreach(var action in Model.Actions) { +
+ @Display(action.Editor) +
+ } + } diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/RecipeBuilder.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml similarity index 100% rename from src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/RecipeBuilder.cshtml rename to src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/ResetSite.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/ResetSite.cshtml new file mode 100644 index 000000000..6f2dc715b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/ResetSite.cshtml @@ -0,0 +1,8 @@ +@model Orchard.ImportExport.ViewModels.ResetSiteViewModel +
+
+ @Html.CheckBoxFor(m => m.ResetSite) + @Html.LabelFor(m => m.ResetSite, T("Reset Site").ToString(), new { @class = "forcheckbox" }) + @Html.Hint(T("Check this option to completely clean your site before importing the uploaded recipe.")) +
+
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/UploadRecipe.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/UploadRecipe.cshtml index 260d7d5c6..052ca97ca 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/UploadRecipe.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ImportActions/UploadRecipe.cshtml @@ -1,4 +1,5 @@ -

+@model dynamic +

@T("Choose a recipe file to import. Please consider {0} or backing up your data first.", @Html.Link(T("exporting").Text, Url.Action("Export", "Admin", new { area = "Orchard.ImportExport" })))

diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/ContentStep.cs b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/ContentStep.cs index 6994974d1..ff9c16a41 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/ContentStep.cs +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/ContentStep.cs @@ -37,7 +37,7 @@ namespace Orchard.Recipes.Providers.Builders { get { return T("Exports content items and content item definitions."); } } - public override int Priority { get { return 10; } } + public override int Priority { get { return 20; } } public IList SchemaContentTypes { get; set; } public IList DataContentTypes { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/RecipeMetadataStep.cs b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/RecipeMetadataStep.cs index 62198646f..eab769d6b 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/RecipeMetadataStep.cs +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/RecipeMetadataStep.cs @@ -22,7 +22,7 @@ namespace Orchard.Recipes.Providers.Builders { get { return T("Provides additional information about the recipe."); } } - public override int Priority { get { return -10; } } + public override int Priority { get { return 1000; } } public string RecipeName { get; set; } public string RecipeDescription { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/SettingsStep.cs b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/SettingsStep.cs index 18df7d5a4..21189f68c 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/SettingsStep.cs +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Providers/Builders/SettingsStep.cs @@ -26,7 +26,7 @@ namespace Orchard.Recipes.Providers.Builders { get { return T("Exports settings."); } } - public override int Priority { get { return 20; } } + public override int Priority { get { return 10; } } public override dynamic BuildEditor(dynamic shapeFactory) { return UpdateEditor(shapeFactory, null);