From bb9d8818cf74b1105e6ceafb2f4cb5beabffebf1 Mon Sep 17 00:00:00 2001 From: sfmskywalker Date: Sun, 25 May 2014 15:46:28 +0200 Subject: [PATCH] Incremental work on AuditTrailPart settings. --- ...tPartDriver.cs => AuditTrailPartDriver.cs} | 10 +++---- .../Handlers/AuditTrailEventHandler.cs | 2 +- .../Modules/Orchard.AuditTrail/Migrations.cs | 2 +- ...tTrailCommentPart.cs => AuditTrailPart.cs} | 2 +- .../Orchard.AuditTrail.csproj | 9 ++++-- .../Modules/Orchard.AuditTrail/Placement.info | 2 +- .../Recipes/audit-trail.recipe.xml | 4 +-- .../Settings/AuditTrailPartSettings.cs | 14 +++++++++ .../Settings/AuditTrailPartSettingsEvents.cs | 30 +++++++++++++++++++ .../AuditTrailPartSettings.cshtml | 15 ++++++++++ ...Comment.cshtml => Parts.AuditTrail.cshtml} | 0 11 files changed, 76 insertions(+), 14 deletions(-) rename src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/{AuditTrailCommentPartDriver.cs => AuditTrailPartDriver.cs} (50%) rename src/Orchard.Web/Modules/Orchard.AuditTrail/Models/{AuditTrailCommentPart.cs => AuditTrailPart.cs} (81%) create mode 100644 src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettings.cs create mode 100644 src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettingsEvents.cs create mode 100644 src/Orchard.Web/Modules/Orchard.AuditTrail/Views/DefinitionTemplates/AuditTrailPartSettings.cshtml rename src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/{Parts.AuditTrailComment.cshtml => Parts.AuditTrail.cshtml} (100%) diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailCommentPartDriver.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailPartDriver.cs similarity index 50% rename from src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailCommentPartDriver.cs rename to src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailPartDriver.cs index 2ae27de6f..41c332748 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailCommentPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Drivers/AuditTrailPartDriver.cs @@ -3,17 +3,17 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; namespace Orchard.AuditTrail.Drivers { - public class AuditTrailCommentPartDriver : ContentPartDriver { - protected override DriverResult Editor(AuditTrailCommentPart part, dynamic shapeHelper) { + public class AuditTrailPartDriver : ContentPartDriver { + protected override DriverResult Editor(AuditTrailPart part, dynamic shapeHelper) { return Editor(part, null, shapeHelper); } - protected override DriverResult Editor(AuditTrailCommentPart part, IUpdateModel updater, dynamic shapeHelper) { - return ContentShape("Parts_AuditTrailComment_Edit", () => { + protected override DriverResult Editor(AuditTrailPart part, IUpdateModel updater, dynamic shapeHelper) { + return ContentShape("Parts_AuditTrail_Edit", () => { if (updater != null) { updater.TryUpdateModel(part, Prefix, null, null); } - return shapeHelper.EditorTemplate(Model: part, TemplateName: "Parts.AuditTrailComment", Prefix: Prefix); + return shapeHelper.EditorTemplate(Model: part, TemplateName: "Parts.AuditTrail", Prefix: Prefix); }); } } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Handlers/AuditTrailEventHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Handlers/AuditTrailEventHandler.cs index 700539037..d37ce91dd 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Handlers/AuditTrailEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Handlers/AuditTrailEventHandler.cs @@ -6,7 +6,7 @@ namespace Orchard.AuditTrail.Handlers { public class AuditTrailEventHandler : IAuditTrailEventHandler { public void Create(AuditTrailCreateContext context) { var content = (IContent)context.Properties["Content"]; - var auditTrailPart = content != null ? content.As() : default(AuditTrailCommentPart); + var auditTrailPart = content != null ? content.As() : default(AuditTrailPart); if (auditTrailPart == null) return; diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Migrations.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Migrations.cs index 5704bdfd7..f399c1756 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Migrations.cs @@ -18,7 +18,7 @@ namespace Orchard.AuditTrail { .Column("EventFilterData", c => c.WithLength(256)) .Column("Comment", c => c.Unlimited())); - ContentDefinitionManager.AlterPartDefinition("AuditTrailCommentPart", part => part + ContentDefinitionManager.AlterPartDefinition("AuditTrailPart", part => part .Attachable() .WithDescription("Enables the user to enter a comment about the change when saving a content item.")); diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailCommentPart.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailPart.cs similarity index 81% rename from src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailCommentPart.cs rename to src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailPart.cs index 77237d640..5a425c949 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailCommentPart.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailPart.cs @@ -1,7 +1,7 @@ using Orchard.ContentManagement; namespace Orchard.AuditTrail.Models { - public class AuditTrailCommentPart : ContentPart { + public class AuditTrailPart : ContentPart { public string Comment { get { return this.Retrieve(x => x.Comment); } set { this.Store(x => x.Comment, value); } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index a64df20dd..d244f0be3 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -82,6 +82,7 @@ + @@ -100,10 +101,12 @@ + + - + - + @@ -148,7 +151,7 @@ - + 10.0 diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Placement.info b/src/Orchard.Web/Modules/Orchard.AuditTrail/Placement.info index e5c4dfd4f..99196942a 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Placement.info +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Placement.info @@ -1,5 +1,5 @@  - + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Recipes/audit-trail.recipe.xml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Recipes/audit-trail.recipe.xml index 914e7d0b1..5774a8009 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Recipes/audit-trail.recipe.xml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Recipes/audit-trail.recipe.xml @@ -2,7 +2,7 @@ Audit Trail - Attaches the AuditTrailCommentPart to the Page content type. + Attaches the AuditTrailPart to the Page content type. The Orchard Team http://orchardproject.net developer @@ -12,7 +12,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettings.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettings.cs new file mode 100644 index 000000000..8acda67e2 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettings.cs @@ -0,0 +1,14 @@ +using System.Globalization; +using Orchard.ContentManagement.MetaData.Builders; + +namespace Orchard.AuditTrail.Settings { + public class AuditTrailPartSettings { + public bool ShowAuditTrailLink { get; set; } + public bool ShowAuditTrail { get; set; } + + public void Build(ContentTypePartDefinitionBuilder builder) { + builder.WithSetting("AuditTrailPartSettings.ShowAuditTrailLink", ShowAuditTrailLink.ToString(CultureInfo.InvariantCulture)); + builder.WithSetting("AuditTrailPartSettings.ShowAuditTrail", ShowAuditTrail.ToString(CultureInfo.InvariantCulture)); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettingsEvents.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettingsEvents.cs new file mode 100644 index 000000000..f5965c104 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Settings/AuditTrailPartSettingsEvents.cs @@ -0,0 +1,30 @@ +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.AuditTrail.Settings { + public class AuditTrailPartSettingsEvents : ContentDefinitionEditorEventsBase { + + public override IEnumerable TypePartEditor(ContentTypePartDefinition definition) { + if (definition.PartDefinition.Name != "AuditTrailPart") + yield break; + + var settings = definition.Settings.GetModel(); + yield return DefinitionTemplate(settings); + } + + public override IEnumerable TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) { + if (builder.Name != "AuditTrailPart") + yield break; + + var settings = new AuditTrailPartSettings(); + updateModel.TryUpdateModel(settings, "AuditTrailPartSettings", null, null); + settings.Build(builder); + + yield return DefinitionTemplate(settings); + } + } +} diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/DefinitionTemplates/AuditTrailPartSettings.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/DefinitionTemplates/AuditTrailPartSettings.cshtml new file mode 100644 index 000000000..5a6b6995f --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/DefinitionTemplates/AuditTrailPartSettings.cshtml @@ -0,0 +1,15 @@ +@model Orchard.AuditTrail.Settings.AuditTrailPartSettings +
+
+ @Html.CheckBoxFor(m => m.ShowAuditTrailLink) + @Html.LabelFor(m => m.ShowAuditTrailLink, T("Show audit trail link").Text, new { @class = "forcheckbox" }) + @T("Renders a link to the audit trail of the content item.") +
+
+
+
+ @Html.CheckBoxFor(m => m.ShowAuditTrail) + @Html.LabelFor(m => m.ShowAuditTrail, T("Show inline audit trail").Text, new { @class = "forcheckbox" }) + @T("Renders an inline view of the audit trail of the content item.") +
+
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailComment.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrail.cshtml similarity index 100% rename from src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailComment.cshtml rename to src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrail.cshtml