Adding AJAX-support to the content item controller, fixes #2703

This commit is contained in:
Lombiq
2015-07-16 15:08:39 +02:00
parent 1471ab8cd5
commit 76b7121935

View File

@@ -9,9 +9,14 @@ namespace Orchard.Core.Contents.Controllers {
[Themed] [Themed]
public class ItemController : Controller { public class ItemController : Controller {
private readonly IContentManager _contentManager; private readonly IContentManager _contentManager;
private readonly IHttpContextAccessor _hca;
public ItemController(IContentManager contentManager, IShapeFactory shapeFactory, IOrchardServices services) { public ItemController(IContentManager contentManager,
IShapeFactory shapeFactory,
IOrchardServices services,
IHttpContextAccessor hca) {
_contentManager = contentManager; _contentManager = contentManager;
_hca = hca;
Shape = shapeFactory; Shape = shapeFactory;
Services = services; Services = services;
T = NullLocalizer.Instance; T = NullLocalizer.Instance;
@@ -37,8 +42,12 @@ namespace Orchard.Core.Contents.Controllers {
if (!Services.Authorizer.Authorize(Permissions.ViewContent, contentItem, T("Cannot view content"))) { if (!Services.Authorizer.Authorize(Permissions.ViewContent, contentItem, T("Cannot view content"))) {
return new HttpUnauthorizedResult(); return new HttpUnauthorizedResult();
} }
var model = _contentManager.BuildDisplay(contentItem); var model = _contentManager.BuildDisplay(contentItem);
if (_hca.Current().Request.IsAjaxRequest()) {
return new ShapePartialResult(this,model);
}
return View(model); return View(model);
} }
@@ -62,6 +71,10 @@ namespace Orchard.Core.Contents.Controllers {
} }
var model = _contentManager.BuildDisplay(contentItem); var model = _contentManager.BuildDisplay(contentItem);
if (_hca.Current().Request.IsAjaxRequest()) {
return new ShapePartialResult(this, model);
}
return View(model); return View(model);
} }
} }