mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
146: Added custom controller for read-only view of content.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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" />
|
||||
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
}
|
||||
BIN
src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/overlay.png
Normal file
BIN
src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/overlay.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
}
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user