Improved handling of events whose content items were deleted or nonexistent at all.

This commit is contained in:
Sipke Schoorstra
2014-08-01 12:18:45 -07:00
parent 07e98693c7
commit 6f9a137793
3 changed files with 15 additions and 9 deletions

View File

@@ -30,7 +30,7 @@ namespace Orchard.AuditTrail.Providers.Content {
var previousContentItemVersionId = eventData.Get<int>("PreviousVersionId"); var previousContentItemVersionId = eventData.Get<int>("PreviousVersionId");
var previousVersionXml = GetXml(eventData, "PreviousVersionXml"); var previousVersionXml = GetXml(eventData, "PreviousVersionXml");
var diffGram = GetXml(eventData, "DiffGram"); var diffGram = GetXml(eventData, "DiffGram");
var contentItem = _contentManager.Value.Get(contentItemId, VersionOptions.Latest); var contentItem = _contentManager.Value.Get(contentItemId, VersionOptions.AllVersions);
var previousVersion = previousContentItemVersionId > 0 ? _contentManager.Value.Get(contentItemId, VersionOptions.VersionRecord(previousContentItemVersionId)) : default(ContentItem); var previousVersion = previousContentItemVersionId > 0 ? _contentManager.Value.Get(contentItemId, VersionOptions.VersionRecord(previousContentItemVersionId)) : default(ContentItem);
if (diffGram != null) { if (diffGram != null) {

View File

@@ -4,25 +4,30 @@
@{ @{
var descriptor = (AuditTrailEventDescriptor)Model.Descriptor; var descriptor = (AuditTrailEventDescriptor)Model.Descriptor;
var eventData = (IDictionary<string, object>) Model.EventData; var eventData = (IDictionary<string, object>) Model.EventData;
var eventPastTense = descriptor.Name.Text.ToLower();
var contentItemId = (int)Model.ContentItemId; var contentItemId = (int)Model.ContentItemId;
var contentItem = (ContentItem) Model.ContentItem; var contentItem = (ContentItem) Model.ContentItem;
var eventVersionNumber = eventData.Get<int>("VersionNumber"); var eventVersionNumber = eventData.Get<int>("VersionNumber");
var isPublishedEvent = eventData.Get<bool>("Published"); var isPublishedEvent = eventData.Get<bool>("Published");
var title = eventData.Get<string>("Title") ?? "[untitled]"; var title = contentItem != null ? Html.ItemDisplayText(contentItem).ToString() : eventData.Get<string>("Title") ?? "[untitled]";
} }
<section class="audittrail-content-eventsummary"> <section class="audittrail-content-eventsummary">
@if (contentItem != null) { @if (contentItem != null) {
var contentType = contentItem.ContentType; var contentType = contentItem.ContentType;
var isLatest = contentItem.VersionRecord.Number == eventVersionNumber; var isLatest = contentItem.VersionRecord.Number == eventVersionNumber;
var isRemoved = !contentItem.VersionRecord.Latest && !contentItem.VersionRecord.Published;
if (isPublishedEvent || isLatest) { if (isPublishedEvent || isLatest) {
@T("{0} of the {1} {2} was {3}.", Html.ActionLink(T("Version {0}", eventVersionNumber).Text, "Detail", "Content", new { area = "Orchard.AuditTrail", id = contentItemId, version = eventVersionNumber }, null), contentType.ToLower(), Html.ItemEditLink(title, contentItemId), descriptor.Name.Text.ToLower()) @T("{0} of the {1} {2} was {3}.", Html.ActionLink(T("Version {0}", eventVersionNumber).Text, "Detail", "Content", new { area = "Orchard.AuditTrail", id = contentItemId, version = eventVersionNumber }, null), contentType.ToLower(), isRemoved ? "<strong>" + title + "</strong>" : Html.ItemEditLink(title, contentItemId).ToString(), eventPastTense)
}
else if (isRemoved) {
@T("The {0} <strong>{1}</strong> was {2}.", contentType.ToLower(), title, eventPastTense)
} }
else { else {
@T("The {0} {1} was {2}.", contentType.ToLower(), Html.ItemEditLink(title, contentItemId), descriptor.Name.Text.ToLower()) @T("The {0} {1} was {2}.", contentType.ToLower(), Html.ItemEditLink(title, contentItemId), eventPastTense)
} }
} }
else { else {
@T("<strong>Version {0}</strong> of content item with ID <strong>{1}</strong> was {2}.", eventVersionNumber, contentItemId, descriptor.Name.Text.ToLower()) @T("<strong>Version {0}</strong> of content item <strong>{1}</strong> was {2}.", eventVersionNumber, title, eventPastTense)
} }
</section> </section>

View File

@@ -13,15 +13,16 @@
var eventVersionNumber = eventData.Get<int>("VersionNumber"); var eventVersionNumber = eventData.Get<int>("VersionNumber");
var isPublishedEvent = eventData.Get<bool>("Published"); var isPublishedEvent = eventData.Get<bool>("Published");
var diffNodes = (IList<DiffNode>)Model.DiffNodes; var diffNodes = (IList<DiffNode>)Model.DiffNodes;
var title = eventData.Get<string>("Title") ?? "[untitled]"; var title = contentItem != null ? Html.ItemDisplayText(contentItem).ToString() : eventData.Get<string>("Title") ?? "[untitled]";
} }
<section class="audittrail-content-eventmetadata"> <section class="audittrail-content-eventmetadata">
@T("ID:") <strong>@contentItemId</strong><br /> @T("ID:") <strong>@contentItemId</strong><br />
@if (contentItem != null) { @if (contentItem != null) {
var isLatest = contentItem.VersionRecord.Number == eventVersionNumber; var isLatest = contentItem.VersionRecord.Number == eventVersionNumber;
@(contentItem.ContentType)<text>: </text>@Html.ItemEditLink(title, contentItemId)<br /> var isRemoved = !contentItem.VersionRecord.Latest && !contentItem.VersionRecord.Published;
@(contentItem.ContentType)<text>: </text>if (isRemoved) {<strong>@title</strong>} else {@Html.ItemEditLink(title, contentItemId)}<br />
if (isPublishedEvent || isLatest) { if (isPublishedEvent || isLatest) {
@Html.ActionLink(T("Version {0}", eventVersionNumber).Text, "Detail", "Content", new { area = "Orchard.AuditTrail", id = contentItem.Id, version = contentItem.Version }, null)<br /> @Html.ActionLink(T("Version {0}", eventVersionNumber).Text, "Detail", "Content", new { area = "Orchard.AuditTrail", id = contentItem.Id, version = eventVersionNumber }, null)<br />
} }
} }
else { else {