Adding version history options to data export.

--HG--
branch : dev
This commit is contained in:
Suha Can
2011-03-10 17:06:05 -08:00
parent e29bda40af
commit 31bb2d8a68
7 changed files with 40 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ using Orchard.ImportExport.Services;
using Orchard.ImportExport.ViewModels;
using Orchard.Localization;
using Orchard.UI.Notify;
using Orchard.ImportExport.Models;
namespace Orchard.ImportExport.Controllers {
public class AdminController : Controller {
@@ -68,7 +69,12 @@ namespace Orchard.ImportExport.Controllers {
try {
UpdateModel(viewModel);
var contentTypesToExport = viewModel.ContentTypes.Where(c => c.IsChecked).Select(c => c.ContentTypeName);
var exportFile = _importExportService.Export(contentTypesToExport, viewModel.Metadata, viewModel.Data, viewModel.SiteSettings);
var dataExportOptions = new DataExportOptions();
if (viewModel.Data) {
dataExportOptions.ExportData = true;
dataExportOptions.VersionHistoryOptions = (VersionHistoryOptions)Enum.Parse(typeof(VersionHistoryOptions), viewModel.DataImportChoice, true);
}
var exportFile = _importExportService.Export(contentTypesToExport, dataExportOptions, viewModel.Metadata, viewModel.SiteSettings);
Services.Notifier.Information(T("Your export file has been created at <a href=\"{0}\" />", exportFile));
return RedirectToAction("Export");

View File

@@ -0,0 +1,12 @@
namespace Orchard.ImportExport.Models {
public class DataExportOptions {
public bool ExportData { get; set; }
public VersionHistoryOptions VersionHistoryOptions { get; set; }
}
public enum VersionHistoryOptions {
Published,
Draft,
AllVersions
}
}

View File

@@ -46,6 +46,7 @@
<ItemGroup>
<Compile Include="AdminMenu.cs" />
<Compile Include="Controllers\AdminController.cs" />
<Compile Include="Models\DataExportOptions.cs" />
<Compile Include="Permissions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\IImportExportService.cs" />

View File

@@ -1,10 +1,12 @@
using System.Collections.Generic;
using Orchard.ImportExport.Models;
namespace Orchard.ImportExport.Services {
public interface IImportExportService : IDependency {
void Import(string recipeText);
string Export(IEnumerable<string> contentTypes, bool exportMetadata, bool exportData, bool exportSettings);
string Export(IEnumerable<string> contentTypes, DataExportOptions dataExportOptions, bool exportMetadata, bool exportSettings);
}
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using JetBrains.Annotations;
using Orchard.Environment.Descriptor;
using Orchard.ImportExport.Models;
using Orchard.Localization;
using Orchard.Logging;
using Orchard.Recipes.Models;
@@ -32,7 +33,7 @@ namespace Orchard.ImportExport.Services {
UpdateShell();
}
public string Export(IEnumerable<string> contentTypes, bool exportMetadata, bool exportData, bool exportSettings) {
public string Export(IEnumerable<string> contentTypes, DataExportOptions dataExportOptions, bool exportMetadata, bool exportSettings) {
return String.Empty;
}

View File

@@ -5,6 +5,7 @@ namespace Orchard.ImportExport.ViewModels {
public IList<ContentTypeEntry> ContentTypes { get; set; }
public virtual bool Metadata { get; set; }
public virtual bool Data { get; set; }
public virtual string DataImportChoice { get; set; }
public virtual bool SiteSettings { get; set; }
}

View File

@@ -27,8 +27,21 @@
<div>
@Html.EditorFor(m => m.Data)
<label class="forcheckbox" for="@Html.FieldIdFor( m => m.Data)">@T("Data")</label>
<p>@T("Data is the actual content of your site.")</p><br />
<p>@T("Data is the actual content of your site.")</p>
<p>@T("Version History")</p>
</div>
<div>
@Html.RadioButtonFor(m => m.DataImportChoice, "Published", new { id = "Published", Checked = "Checked" })
<label for="@Html.FieldIdFor(m => m.DataImportChoice)" class="forcheckbox">@T("Only Published Versions")</label>
</div>
<div>
@Html.RadioButtonFor(m => m.DataImportChoice, "Draft", new { id = "Draft" })
<label for="@Html.FieldIdFor(m => m.DataImportChoice)" class="forcheckbox">@T("Only Drafts")</label>
</div>
<div>
@Html.RadioButtonFor(m => m.DataImportChoice, "AllVersions", new { id = "AllVersions" })
<label for="@Html.FieldIdFor(m => m.DataImportChoice)" class="forcheckbox">@T("All Versions")</label>
</div><br />
<div>
@Html.EditorFor(m => m.SiteSettings)
<label class="forcheckbox" for="@Html.FieldIdFor( m => m.SiteSettings)">@T("Site Settings")</label><br />