Adding ItemsShowDefault to ContainerPartSettings

This commit is contained in:
Stanley Goldman
2014-07-31 14:44:27 -07:00
committed by Sebastien Ros
parent 9877d8488f
commit 2de8e91b58
4 changed files with 25 additions and 1 deletions

View File

@@ -26,7 +26,8 @@ namespace Orchard.Core.Containers.Handlers {
_containerService = containerService;
Filters.Add(StorageFilter.For(repository));
OnInitializing<ContainerPart>((context, part) => {
part.Record.ItemsShown = true;
part.Record.ItemsShown = part.Settings.GetModel<ContainerTypePartSettings>().ItemsShownDefault
?? part.PartDefinition.Settings.GetModel<ContainerPartSettings>().ItemsShownDefault;
part.Record.PageSize = part.Settings.GetModel<ContainerTypePartSettings>().PageSizeDefault
?? part.PartDefinition.Settings.GetModel<ContainerPartSettings>().PageSizeDefault;
part.Record.Paginated = part.Settings.GetModel<ContainerTypePartSettings>().PaginatedDefault

View File

@@ -11,12 +11,23 @@ using Orchard.Core.Containers.ViewModels;
namespace Orchard.Core.Containers.Settings {
public class ContainerPartSettings {
public const bool ItemsShownDefaultDefault = true;
public const int PageSizeDefaultDefault = 10;
public const bool PaginatedDefaultDefault = true;
private bool? _itemsShownDefault;
private int? _pageSizeDefault;
private bool? _paginiatedDefault;
public bool ItemsShownDefault {
get {
return _itemsShownDefault != null
? (bool)_itemsShownDefault
: ItemsShownDefaultDefault;
}
set { _itemsShownDefault = value; }
}
public int PageSizeDefault {
get {
return _pageSizeDefault != null
@@ -37,6 +48,7 @@ namespace Orchard.Core.Containers.Settings {
}
public class ContainerTypePartSettings {
public bool? ItemsShownDefault { get; set; }
public int? PageSizeDefault { get; set; }
public bool? PaginatedDefault { get; set; }
public string RestrictedItemContentTypes { get; set; }
@@ -62,6 +74,9 @@ namespace Orchard.Core.Containers.Settings {
var model = definition.Settings.GetModel<ContainerTypePartSettings>();
var partModel = definition.PartDefinition.Settings.GetModel<ContainerPartSettings>();
if (model.ItemsShownDefault == null)
model.ItemsShownDefault = partModel.ItemsShownDefault;
if (model.PageSizeDefault == null)
model.PageSizeDefault = partModel.PageSizeDefault;
@@ -70,6 +85,7 @@ namespace Orchard.Core.Containers.Settings {
model.PaginatedDefault = partModel.PaginatedDefault;
var viewModel = new ContainerTypePartSettingsViewModel {
ItemsShownDefault = model.ItemsShownDefault,
PageSizeDefault = model.PageSizeDefault,
PaginatedDefault = model.PaginatedDefault,
RestrictedItemContentTypes = _contentDefinitionManager.ParseContentTypeDefinitions(model.RestrictedItemContentTypes).Select(x => x.Name).ToList(),
@@ -99,6 +115,7 @@ namespace Orchard.Core.Containers.Settings {
AvailableItemContentTypes = _containerService.GetContainableTypes().ToList()
};
updateModel.TryUpdateModel(viewModel, "ContainerTypePartSettingsViewModel", null, new[] { "AvailableItemContentTypes" });
builder.WithSetting("ContainerTypePartSettings.ItemsShownDefault", viewModel.ItemsShownDefault.ToString());
builder.WithSetting("ContainerTypePartSettings.PageSizeDefault", viewModel.PageSizeDefault.ToString());
builder.WithSetting("ContainerTypePartSettings.PaginatedDefault", viewModel.PaginatedDefault.ToString());
builder.WithSetting("ContainerTypePartSettings.RestrictedItemContentTypes", viewModel.RestrictedItemContentTypes != null ? string.Join(",", viewModel.RestrictedItemContentTypes) : "");
@@ -114,6 +131,7 @@ namespace Orchard.Core.Containers.Settings {
var model = new ContainerPartSettings();
updateModel.TryUpdateModel(model, "ContainerPartSettings", null, null);
builder.WithSetting("ContainerPartSettings.ItemsShownDefault", model.ItemsShownDefault.ToString());
builder.WithSetting("ContainerPartSettings.PageSizeDefault", model.PageSizeDefault.ToString());
builder.WithSetting("ContainerPartSettings.PaginatedDefault", model.PaginatedDefault.ToString());
yield return DefinitionTemplate(model);

View File

@@ -5,6 +5,7 @@ using Orchard.Core.Containers.Services;
namespace Orchard.Core.Containers.ViewModels {
public class ContainerTypePartSettingsViewModel {
public bool? ItemsShownDefault { get; set; }
public int? PageSizeDefault { get; set; }
public bool? PaginatedDefault { get; set; }
public bool RestrictItemContentTypes { get; set; }

View File

@@ -2,6 +2,10 @@
@{
Script.Require("ShapesBase");
}
<fieldset>
<label for="@Html.FieldIdFor(m => m.ItemsShownDefault)">@T("Default Items Shown")</label>
@Html.EditorFor(m => m.ItemsShownDefault)
</fieldset>
<fieldset>
<label for="@Html.FieldIdFor(m => m.PageSizeDefault)">@T("Default Page Size")</label>
@Html.EditorFor(m => m.PageSizeDefault)