From 7a289ca1ad2a6efa12f998e4cf07cbf7a971e030 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 23 Sep 2015 17:12:59 -0700 Subject: [PATCH] [Fixes #5846] Saving settings would reset Markdown part settings --- .../MarkdownSiteSettingsPartHandler.cs | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/src/Orchard.Web/Modules/Markdown/Handlers/MarkdownSiteSettingsPartHandler.cs b/src/Orchard.Web/Modules/Markdown/Handlers/MarkdownSiteSettingsPartHandler.cs index e4a15c45f..8e72b0b25 100644 --- a/src/Orchard.Web/Modules/Markdown/Handlers/MarkdownSiteSettingsPartHandler.cs +++ b/src/Orchard.Web/Modules/Markdown/Handlers/MarkdownSiteSettingsPartHandler.cs @@ -1,9 +1,9 @@ -using System.Linq; +using System; +using System.Linq; using Markdown.Models; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.MetaData; -using Orchard.ContentManagement.MetaData.Builders; using Orchard.Localization; namespace Markdown.Handlers { @@ -18,24 +18,6 @@ namespace Markdown.Handlers { part.UseMarkdownForBlogs = false; }); - OnUpdated((context, part) => { - var blogPost = _contentDefinitionManager.GetTypeDefinition("BlogPost"); - if (blogPost == null) { - return; - } - - var bodyPart = blogPost.Parts.FirstOrDefault(x => x.PartDefinition.Name == "BodyPart"); - if (bodyPart == null) { - return; - } - - _contentDefinitionManager.AlterTypeDefinition("BlogPost", build => build - .WithPart("BodyPart", cfg => cfg - .WithSetting("BodyTypePartSettings.Flavor", part.UseMarkdownForBlogs ? "markdown" : "html") - ) - ); - }); - T = NullLocalizer.Instance; } @@ -46,5 +28,33 @@ namespace Markdown.Handlers { base.GetItemMetadata(context); context.Metadata.EditorGroupInfo.Add(new GroupInfo(T("Markdown"))); } + + protected override void UpdateEditorShape(UpdateEditorContext context) { + if (!string.Equals("markdown", context.GroupId, StringComparison.OrdinalIgnoreCase)) + return; + + var part = context.ContentItem.As(); + if (part == null) { + return; + } + + base.UpdateEditorShape(context); + + var blogPost = _contentDefinitionManager.GetTypeDefinition("BlogPost"); + if (blogPost == null) { + return; + } + + var bodyPart = blogPost.Parts.FirstOrDefault(x => x.PartDefinition.Name == "BodyPart"); + if (bodyPart == null) { + return; + } + + _contentDefinitionManager.AlterTypeDefinition("BlogPost", build => build + .WithPart("BodyPart", cfg => cfg + .WithSetting("BodyTypePartSettings.Flavor", part.UseMarkdownForBlogs ? "markdown" : "html") + ) + ); + } } } \ No newline at end of file