146: Added custom controller for read-only view of content.

This commit is contained in:
Sipke Schoorstra
2014-07-01 17:57:54 -07:00
parent bb341d1261
commit abc9acf2e1
10 changed files with 73 additions and 8 deletions

View File

@@ -1,7 +1,5 @@
using System;
using System.Linq;
using System.Linq;
using System.Web.Mvc;
using Orchard.AuditTrail.Models;
using Orchard.AuditTrail.Services;
using Orchard.AuditTrail.Services.Models;
using Orchard.AuditTrail.ViewModels;

View File

@@ -0,0 +1,26 @@
using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.Security;
using Orchard.UI.Admin;
namespace Orchard.AuditTrail.Controllers {
[Admin]
public class ContentController : Controller {
private readonly IAuthorizer _authorizer;
private readonly IContentManager _contentManager;
public ContentController(IAuthorizer authorizer, IContentManager contentManager) {
_authorizer = authorizer;
_contentManager = contentManager;
}
public ActionResult Detail(int id, int version) {
var contentItem = _contentManager.Get(id, VersionOptions.Number(version));
if (!_authorizer.Authorize(Core.Contents.Permissions.ViewContent, contentItem))
return new HttpUnauthorizedResult();
var editor = _contentManager.BuildEditor(contentItem);
return View(editor);
}
}
}

View File

@@ -83,6 +83,7 @@
<Content Include="Styles\custom-grid.css" />
<Content Include="Styles\menu.audit-trail-admin.css" />
<Content Include="Styles\menu.audit-trail.png" />
<Content Include="Styles\overlay.png" />
<Content Include="Web.config" />
<Content Include="Scripts\Web.config" />
<Content Include="Styles\Web.config" />
@@ -134,6 +135,7 @@
<Content Include="Views\AuditTrailFilter-Common-Date.cshtml" />
<Content Include="Views\AuditTrailFilter-ContentItem.cshtml" />
<Content Include="Views\AuditTrailFilter-Common-Category.cshtml" />
<Content Include="Views\Content\Detail.cshtml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
@@ -151,6 +153,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AdminMenu.cs" />
<Compile Include="Controllers\ContentController.cs" />
<Compile Include="Controllers\AdminController.cs" />
<Compile Include="Drivers\AuditTrailTrimmingSettingsPartDriver.cs" />
<Compile Include="Drivers\AuditTrailSettingsPartDriver.cs" />

View File

@@ -1,7 +1,6 @@
(function($) {
var initExpandoControl = function() {
// Initialize Expando control
$(".expando-wrapper legend").expandoControl(
function(controller) {
return controller.nextAll(".expando");
@@ -12,7 +11,6 @@
};
var initCheckAll = function() {
// Check all / uncheck all.
$("table.check-all").each(function() {
var table = $(this);
var controller = table.find("thead input[type=\"checkbox\"]");
@@ -36,9 +34,16 @@
});
};
var disableContentEditor = function () {
$(".content-disabled input").prop("disabled", true);
$(".content-disabled textarea").prop("disabled", true);
$(".content-disabled button").prop("disabled", true);
};
$(function() {
initExpandoControl();
initCheckAll();
disableContentEditor();
});
})(jQuery);

View File

@@ -31,3 +31,22 @@
.audit-trail-site-settings table th.event-enabled {
width: 60px;
}
.content-disabled {
position: relative;
}
.content-disabled .overlay {
position: absolute;
left: -24px;
top: -16px;
right: -24px;
bottom: -28px;
background: url('overlay.png');
}
.content-disabled .edit-item-secondary,
.content-disabled .audit-trail.expando-wrapper,
.content-disabled .audit-trail-link {
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -8,5 +8,5 @@
<section class="event-content">
<span class="version">@T("version {0}", contentItemVersionNumber)</span>@T(" - ")
<a href="@Url.Action("Preview", "Item", new { area = "Contents", id = contentItemId, version = contentItemVersionNumber })" class="event-contentitem">@title</a>
<a href="@Url.Action("Detail", "Content", new { area = "Orchard.AuditTrail", id = contentItemId, version = contentItemVersionNumber })" class="event-contentitem">@title</a>
</section>

View File

@@ -0,0 +1,14 @@
@using Orchard.ContentManagement
@{
Style.Include("admin.css");
Script.Require("ShapesBase");
Script.Include("~/Themes/TheAdmin/scripts/admin.js").AtFoot();
Script.Include("audit-trail-admin.js").AtFoot();
var contentItem = (ContentItem)Model.ContentItem;
Layout.Title = T("{0} - (version {1})", contentItem.ContentType, contentItem.Version);
}
<div class="content-disabled">
@Display(Model)
<div class="overlay"></div>
</div>

View File

@@ -2,7 +2,7 @@
var contentId = (int)Model.ContentPart.Id;
}
@if (contentId > 0) {
<fieldset>
<fieldset class="audit-trail-link">
@Html.ActionLink(T("View Audit Trail").Text, "Index", "Admin", new { content = contentId, area = "Orchard.AuditTrail" }, null)
</fieldset>
}

View File

@@ -11,7 +11,7 @@
}
@if (auditTrailPart.Id > 0) {
<fieldset class="expando-wrapper">
<fieldset class="expando-wrapper audit-trail">
<legend>@T("Audit Trail")</legend>
<div class="expando">
<section class="audit-trail-list">