From b7414e6f423b8e70d3bf2972fec7e2424cceb6cd Mon Sep 17 00:00:00 2001 From: jtkech Date: Thu, 26 May 2016 21:51:12 +0200 Subject: [PATCH] Fix Comments and Audit Trail issue Fixes #6733 --- .../Providers/Content/GlobalContentHandler.cs | 10 ++++++++-- .../Orchard.AuditTrail/Services/DiffGramAnalyzer.cs | 4 +++- .../Orchard.Comments/Controllers/CommentController.cs | 4 +++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/GlobalContentHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/GlobalContentHandler.cs index a127aff0b..0d684dcc0 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/GlobalContentHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/GlobalContentHandler.cs @@ -34,7 +34,10 @@ namespace Orchard.AuditTrail.Providers.Content { protected override void Updating(UpdateContentContext context) { var contentItem = context.ContentItem; - _ignoreExportHandlerFor = contentItem; + if (contentItem.IsNew()) + return; + + _ignoreExportHandlerFor = contentItem; _previousVersionXml = _contentItemCreated ? default(XElement) // No need to do a diff on a newly created content item. : _contentManager.Export(contentItem); @@ -43,7 +46,10 @@ namespace Orchard.AuditTrail.Providers.Content { protected override void Updated(UpdateContentContext context) { var contentItem = context.ContentItem; - + + if (contentItem.IsNew()) + return; + if (_contentItemCreated) { RecordAuditTrailEvent(ContentAuditTrailEventProvider.Created, context.ContentItem); } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs index d9e4ad708..839eb4441 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs @@ -35,7 +35,9 @@ namespace Orchard.AuditTrail.Services { case XmlNodeType.Element: var match = reader.GetAttribute("match"); var isAttributeChange = match != null && match.StartsWith("@"); - var index = match == null || isAttributeChange ? default(int?) : Int32.Parse(match) - 1; + int matchInt; + var index = match == null || isAttributeChange || !Int32.TryParse(match, out matchInt) + ? default(int?) : matchInt - 1; var diffType = reader.LocalName; var currentElement = stack.Peek(); diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs index a239e3c5c..5def988b9 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs @@ -46,7 +46,9 @@ namespace Orchard.Comments.Controllers { } if (ModelState.IsValid) { - Services.ContentManager.Create(comment); + Services.ContentManager.Create(comment, VersionOptions.Draft); + Services.ContentManager.UpdateEditor(comment, this); + Services.ContentManager.Publish(comment.ContentItem); var commentPart = comment.As();