--HG--
branch : dev
This commit is contained in:
Sebastien Ros
2010-06-30 11:26:27 -07:00
3 changed files with 38 additions and 3 deletions

View File

@@ -139,6 +139,41 @@ namespace Orchard.ContentTypes.Controllers {
typeBuilder.WithPart(entry.part.PartDefinition.Name, typePartBuilder => {
partViewModel.Templates = _extendViewModels.TypePartEditorUpdate(typePartBuilder, updater);
});
if (!partViewModel.PartDefinition.Fields.Any())
continue;
_contentDefinitionManager.AlterPartDefinition(partViewModel.PartDefinition.Name, partBuilder => {
foreach (var fieldEntry in partViewModel.PartDefinition.Fields.Select((field, index) => new { field, index })) {
var fieldViewModel = fieldEntry.field;
// enable updater to be aware of changing field prefix
var firstHalfFieldName = "Fields[" + fieldEntry.index + "].";
updater._prefix = secondHalf => firstHalfFieldName + secondHalf;
// allow extensions to alter partField configuration
partBuilder.WithField(fieldViewModel.Name, partFieldBuilder => {
fieldViewModel.Templates = _extendViewModels.PartFieldEditorUpdate(partFieldBuilder, updater);
});
}
});
}
if (viewModel.Fields.Any()) {
_contentDefinitionManager.AlterPartDefinition(viewModel.Name, partBuilder => {
foreach (var fieldEntry in viewModel.Fields.Select((field, index) => new { field, index })) {
var fieldViewModel = fieldEntry.field;
// enable updater to be aware of changing field prefix
var firstHalfFieldName = "Fields[" + fieldEntry.index + "].";
updater._prefix = secondHalf => firstHalfFieldName + secondHalf;
// allow extensions to alter partField configuration
partBuilder.WithField(fieldViewModel.Name, partFieldBuilder => {
fieldViewModel.Templates = _extendViewModels.PartFieldEditorUpdate(partFieldBuilder, updater);
});
}
});
}
});

View File

@@ -16,7 +16,7 @@ namespace Orchard.Indexing.Settings {
yield return DefinitionTemplate(model);
}
public override IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel) {
public override IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) {
var model = new IndexingSettings();
updateModel.TryUpdateModel(model, "IndexingSettings", null, null);
builder.WithSetting("IndexingSettings.IncludeInIndex", model.IncludeInIndex ? true.ToString() : null);

View File

@@ -15,7 +15,7 @@ namespace Orchard.ContentManagement.MetaData {
IEnumerable<TemplateViewModel> TypeEditorUpdate(ContentTypeDefinitionBuilder builder, IUpdateModel updateModel);
IEnumerable<TemplateViewModel> TypePartEditorUpdate(ContentTypeDefinitionBuilder.PartConfigurer builder, IUpdateModel updateModel);
IEnumerable<TemplateViewModel> PartEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel);
IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel);
IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel);
}
public abstract class ContentDefinitionEditorEventsBase : IContentDefinitionEditorEvents {
@@ -47,7 +47,7 @@ namespace Orchard.ContentManagement.MetaData {
return Enumerable.Empty<TemplateViewModel>();
}
public virtual IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel) {
public virtual IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) {
return Enumerable.Empty<TemplateViewModel>();
}