Getting field setting editors displayed in the content type editor (still need to hook up update...and refactor relevant actions)

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-06-29 16:00:01 -07:00
parent d6158e316b
commit cce58c6a11
7 changed files with 74 additions and 2 deletions

View File

@@ -56,6 +56,7 @@
<ItemGroup>
<Content Include="Module.txt" />
<Content Include="Views\Admin\Index.ascx" />
<Content Include="Views\DefinitionTemplates\IndexingSettings.ascx" />
<Content Include="Web.config" />
</ItemGroup>
<ItemGroup>
@@ -77,6 +78,7 @@
<Compile Include="Models\LuceneSearchHit.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\IndexService.cs" />
<Compile Include="Settings\IndexingSettings.cs" />
<Compile Include="ViewModels\IndexViewModel.cs" />
</ItemGroup>
<ItemGroup>

View File

@@ -0,0 +1,26 @@
using System.Collections.Generic;
using Orchard.ContentManagement;
using Orchard.ContentManagement.MetaData;
using Orchard.ContentManagement.MetaData.Builders;
using Orchard.ContentManagement.MetaData.Models;
using Orchard.ContentManagement.ViewModels;
namespace Orchard.Indexing.Settings {
public class IndexingSettings {
public bool IncludeInIndex { get; set; }
}
public class IndexingSettingsHooks : ContentDefinitionEditorEventsBase {
public override IEnumerable<TemplateViewModel> PartFieldEditor(ContentPartDefinition.Field definition) {
var model = definition.Settings.GetModel<IndexingSettings>();
yield return DefinitionTemplate(model);
}
public override IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel) {
var model = new IndexingSettings();
updateModel.TryUpdateModel(model, "IndexingSettings", null, null);
builder.WithSetting("IndexingSettings.IncludeInIndex", model.IncludeInIndex ? true.ToString() : null);
yield return DefinitionTemplate(model);
}
}
}

View File

@@ -0,0 +1,7 @@
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Indexing.Settings.IndexingSettings>" %>
<%@ Import Namespace="Orchard.Mvc.Html" %>
<fieldset>
<%:Html.EditorFor(m=>m.IncludeInIndex) %>
<label for="<%:Html.FieldIdFor(m => m.IncludeInIndex) %>" class="forcheckbox"><%:T("Include in the index") %></label>
<%:Html.ValidationMessageFor(m => m.IncludeInIndex)%>
</fieldset>