#197: Show audit trail event comment only in read only view.

This commit is contained in:
Sipke Schoorstra
2014-07-24 00:48:54 -07:00
parent 799bd79d20
commit e894497016
8 changed files with 29 additions and 9 deletions

View File

@@ -1,4 +1,5 @@
using System.Web.Mvc;
using Orchard.AuditTrail.Models;
using Orchard.ContentManagement;
using Orchard.Security;
using Orchard.UI.Admin;
@@ -19,6 +20,12 @@ namespace Orchard.AuditTrail.Controllers {
if (!_authorizer.Authorize(Core.Contents.Permissions.ViewContent, contentItem))
return new HttpUnauthorizedResult();
var auditTrailPart = contentItem.As<AuditTrailPart>();
if (auditTrailPart != null) {
auditTrailPart.ShowComment = true;
}
var editor = _contentManager.BuildEditor(contentItem);
return View(editor);
}

View File

@@ -32,10 +32,18 @@ namespace Orchard.AuditTrail.Drivers {
if (settings.ShowAuditTrailCommentInput) {
results.Add(ContentShape("Parts_AuditTrail_Comment", () => {
if (updater != null) {
updater.TryUpdateModel(part, Prefix, null, null);
var viewModel = new AuditTrailCommentViewModel();
if (part.ShowComment) {
viewModel.Comment = part.Comment;
}
return shapeHelper.EditorTemplate(Model: part, TemplateName: "Parts.AuditTrail.Comment", Prefix: Prefix);
if (updater != null) {
if (updater.TryUpdateModel(viewModel, Prefix, null, null)) {
part.Comment = viewModel.Comment;
}
}
return shapeHelper.EditorTemplate(Model: viewModel, TemplateName: "Parts.AuditTrail.Comment", Prefix: Prefix);
}));
}
if (_services.Authorizer.Authorize(Permissions.ViewAuditTrail)) {

View File

@@ -3,8 +3,10 @@
namespace Orchard.AuditTrail.Models {
public class AuditTrailPart : ContentPart {
public string Comment {
get { return this.Retrieve(x => x.Comment); }
set { this.Store(x => x.Comment, value); }
get { return RetrieveVersioned<string>("Comment"); }
set { StoreVersioned("Comment", value); }
}
public bool ShowComment { get; set; }
}
}

View File

@@ -255,6 +255,7 @@
<Compile Include="Providers\Content\ContentAuditTrailEventProvider.cs" />
<Compile Include="Services\IAuditTrailEventHandler.cs" />
<Compile Include="Services\IAuditTrailEventProvider.cs" />
<Compile Include="ViewModels\AuditTrailCommentViewModel.cs" />
<Compile Include="ViewModels\CommonAuditTrailFilterViewModel.cs" />
<Compile Include="Services\Models\AuditTrailOrderBy.cs" />
<Compile Include="ViewModels\AuditTrailViewModel.cs" />

View File

@@ -13,7 +13,6 @@ namespace Orchard.AuditTrail.Providers.Content {
return;
context.Comment = auditTrailPart.Comment;
auditTrailPart.Comment = null; // Reset the comment.
}
}
}

View File

@@ -58,8 +58,6 @@ namespace Orchard.AuditTrail.Providers.Content {
if (blackList.Contains(content.ContentItem.ContentType))
return;
var title = _contentManager.GetItemMetadata(content).DisplayText;
var properties = new Dictionary<string, object> {
{"Content", content}
};

View File

@@ -0,0 +1,5 @@
namespace Orchard.AuditTrail.ViewModels {
public class AuditTrailCommentViewModel {
public string Comment { get; set; }
}
}

View File

@@ -1,4 +1,4 @@
@model Orchard.AuditTrail.Models.AuditTrailPart
@model Orchard.AuditTrail.ViewModels.AuditTrailCommentViewModel
<fieldset>
@Html.LabelFor(m => m.Comment, T("Comment"))
@Html.TextAreaFor(m => m.Comment)