diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs index 5d53bf200..3c7a9a71a 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Providers/ExportActions/BuildRecipeAction.cs @@ -38,7 +38,8 @@ namespace Orchard.ImportExport.Providers.ExportActions { Name = x.Name, DisplayName = x.DisplayName, Description = x.Description, - Editor = x.BuildEditor(shapeFactory) + Editor = x.BuildEditor(shapeFactory), + IsVisible = x.IsVisible }); var viewModel = new RecipeBuilderViewModel { diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Recipes/Builders/CustomStepsStep.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Recipes/Builders/CustomStepsStep.cs index 8729c06d4..d944fff42 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Recipes/Builders/CustomStepsStep.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Recipes/Builders/CustomStepsStep.cs @@ -32,6 +32,10 @@ namespace Orchard.ImportExport.Recipes.Builders { get { return T("Exports additional items."); } } + public override bool IsVisible { + get { return CustomSteps.Any(); } + } + public override int Priority { get { return -50; } } public override int Position { get { return 500; } } diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportStepViewModel.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportStepViewModel.cs index cdd53aae5..ba644db40 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportStepViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/ViewModels/ExportStepViewModel.cs @@ -7,5 +7,6 @@ namespace Orchard.ImportExport.ViewModels { public LocalizedString Description { get; set; } public bool IsSelected { get; set; } public dynamic Editor { get; set; } + public bool IsVisible { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml index 1e60195c2..436103e31 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Views/EditorTemplates/ExportActions/BuildRecipe.cshtml @@ -4,26 +4,27 @@ Script.Require("ShapesBase"); } @{ - var exportStepIndex = 0; - foreach (var exportStep in Model.Steps) { - var stepName = Html.NameFor(m => m.Steps[exportStepIndex].IsSelected).ToString(); + var stepIndex = 0; + var steps = Model.Steps.Where(x => x.IsVisible).ToArray(); + foreach (var step in steps) { + var stepName = Html.NameFor(m => m.Steps[stepIndex].IsSelected).ToString(); var stepId = stepName.HtmlClassify(); -
+
- + - + - @Html.Hint(@exportStep.Description) - @if (exportStep.Editor != null) { + @Html.Hint(step.Description) + @if (step.Editor != null) {
- @Display(exportStep.Editor) + @Display(step.Editor)
}
- exportStepIndex++; - if (exportStepIndex < Model.Steps.Count) { + stepIndex++; + if (stepIndex < steps.Count()) {
} } diff --git a/src/Orchard/Recipes/Services/IRecipeBuilderStep.cs b/src/Orchard/Recipes/Services/IRecipeBuilderStep.cs index a05d4c91f..067e0be74 100644 --- a/src/Orchard/Recipes/Services/IRecipeBuilderStep.cs +++ b/src/Orchard/Recipes/Services/IRecipeBuilderStep.cs @@ -18,6 +18,7 @@ namespace Orchard.Recipes.Services { /// The order in which this builder should be displayed. /// int Position { get; } + bool IsVisible { get; } dynamic BuildEditor(dynamic shapeFactory); dynamic UpdateEditor(dynamic shapeFactory, IUpdateModel updater); diff --git a/src/Orchard/Recipes/Services/RecipeBuilderStep.cs b/src/Orchard/Recipes/Services/RecipeBuilderStep.cs index 6a871e260..75b984cec 100644 --- a/src/Orchard/Recipes/Services/RecipeBuilderStep.cs +++ b/src/Orchard/Recipes/Services/RecipeBuilderStep.cs @@ -9,6 +9,7 @@ namespace Orchard.Recipes.Services { public abstract LocalizedString Description { get; } public virtual int Priority { get { return 0; } } public virtual int Position { get { return 0; } } + public virtual bool IsVisible { get { return true; } } protected virtual string Prefix { get { return GetType().Name; }