From 7ee31c8e7cc66f49f913f4762a6e037b729dc0ee Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 30 Jun 2010 13:28:14 -0700 Subject: [PATCH] Getting the rest of the field settings (edit) hooked up when editing a content type --HG-- branch : dev --- .../Orchard.ContentTypes/Controllers/AdminController.cs | 6 +++++- .../Orchard.ContentTypes/Views/EditorTemplates/Part.ascx | 2 +- .../Modules/Orchard.Indexing/Settings/EditorEvents.cs | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs index d7239a282..407b8006e 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs @@ -79,6 +79,7 @@ namespace Orchard.ContentTypes.Controllers { d => d.PartDefinition.Name, (model, definition) => new {model, definition}); foreach (var entry in entries) { + entry.model.PartDefinition.Fields = entry.model.PartDefinition.Fields.ToArray(); entry.model.Templates = _extendViewModels.TypePartEditor(entry.definition); var fields = entry.model.PartDefinition.Fields.Join(entry.definition.PartDefinition.Fields, @@ -132,6 +133,7 @@ namespace Orchard.ContentTypes.Controllers { var partViewModel = entry.part; // enable updater to be aware of changing part prefix + // todo: stick this info on the view model so the strings don't need to be in code & view var firstHalf = "Parts[" + entry.index + "]."; updater._prefix = secondHalf => firstHalf + secondHalf; @@ -145,10 +147,11 @@ namespace Orchard.ContentTypes.Controllers { _contentDefinitionManager.AlterPartDefinition(partViewModel.PartDefinition.Name, partBuilder => { foreach (var fieldEntry in partViewModel.PartDefinition.Fields.Select((field, index) => new { field, index })) { + partViewModel.PartDefinition.Fields = partViewModel.PartDefinition.Fields.ToArray(); var fieldViewModel = fieldEntry.field; // enable updater to be aware of changing field prefix - var firstHalfFieldName = "Fields[" + fieldEntry.index + "]."; + var firstHalfFieldName = firstHalf + "PartDefinition.Fields[" + fieldEntry.index + "]."; updater._prefix = secondHalf => firstHalfFieldName + secondHalf; // allow extensions to alter partField configuration @@ -161,6 +164,7 @@ namespace Orchard.ContentTypes.Controllers { if (viewModel.Fields.Any()) { _contentDefinitionManager.AlterPartDefinition(viewModel.Name, partBuilder => { + viewModel.Fields = viewModel.Fields.ToArray(); foreach (var fieldEntry in viewModel.Fields.Select((field, index) => new { field, index })) { var fieldViewModel = fieldEntry.field; diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/Part.ascx b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/Part.ascx index c66916f20..78cb2e201 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/Part.ascx +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/EditorTemplates/Part.ascx @@ -15,6 +15,6 @@

<%:T("Global configuration") %>

<%:Html.ActionLink(T("Edit").Text, "EditPart", new { area = "Orchard.ContentTypes", id = Model.PartDefinition.Name }) %>
<%:Html.DisplayFor(m => m.PartDefinition.Settings, "Settings", "PartDefinition") %> - <%:Html.DisplayFor(m => m.PartDefinition.Fields, "Fields") %> + <%:Html.EditorFor(m => m.PartDefinition.Fields, "Fields", "PartDefinition") %> <%:Html.Hidden("PartDefinition.Name", Model.PartDefinition.Name) %> \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs b/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs index 13678cb14..6ffd62caf 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs @@ -26,8 +26,8 @@ namespace Orchard.Indexing.Settings { public override IEnumerable PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) { var model = new FieldIndexing(); - updateModel.TryUpdateModel(model, "IndexingSettings", null, null); - builder.WithSetting("IndexingSettings.Included", model.Included ? true.ToString() : null); + updateModel.TryUpdateModel(model, "FieldIndexing", null, null); + builder.WithSetting("FieldIndexing.Included", model.Included ? true.ToString() : null); yield return DefinitionTemplate(model); } }