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 previousVersionXml = GetXml(eventData, "PreviousVersionXml");
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);
if (diffGram != null) {

View File

@@ -4,25 +4,30 @@
@{
var descriptor = (AuditTrailEventDescriptor)Model.Descriptor;
var eventData = (IDictionary<string, object>) Model.EventData;
var eventPastTense = descriptor.Name.Text.ToLower();
var contentItemId = (int)Model.ContentItemId;
var contentItem = (ContentItem) Model.ContentItem;
var eventVersionNumber = eventData.Get<int>("VersionNumber");
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">
@if (contentItem != null) {
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) {
@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 {
@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 {
@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>

View File

@@ -13,15 +13,16 @@
var eventVersionNumber = eventData.Get<int>("VersionNumber");
var isPublishedEvent = eventData.Get<bool>("Published");
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">
@T("ID:") <strong>@contentItemId</strong><br />
@if (contentItem != null) {
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) {
@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 {