Skip to content

Commit

Permalink
Add PagerOptions (#12207)
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeAlhayek authored Aug 17, 2022
1 parent bf80581 commit 7c7727a
Show file tree
Hide file tree
Showing 38 changed files with 205 additions and 232 deletions.
7 changes: 7 additions & 0 deletions src/OrchardCore.Cms.Web/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,13 @@
// "CdnBaseUrl": "",
// "AppendVersion": true
//},
//"OrchardCore_Navigation": {
// "PagerOptions": {
// "PageSize": 10,
// "MaxPageSize": 100,
// "MaxPagedCount": 500
// }
//},

// WARNING: AutoSetup section given as an example for Development only, for Production use "Environment Variables" instead
//"OrchardCore_AutoSetup": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
using OrchardCore.DisplayManagement;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.DisplayManagement.Notify;
using OrchardCore.Settings;

namespace OrchardCore.AdminDashboard.Controllers
{
Expand All @@ -32,7 +31,6 @@ public class DashboardController : Controller
private readonly IContentManager _contentManager;
private readonly IContentItemDisplayManager _contentItemDisplayManager;
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly ISiteService _siteService;
private readonly IUpdateModelAccessor _updateModelAccessor;
private readonly INotifier _notifier;
private readonly IStringLocalizer S;
Expand All @@ -47,7 +45,6 @@ public DashboardController(
IContentManager contentManager,
IContentItemDisplayManager contentItemDisplayManager,
IContentDefinitionManager contentDefinitionManager,
ISiteService siteService,
IUpdateModelAccessor updateModelAccessor,
IShapeFactory shapeFactory,
INotifier notifier,
Expand All @@ -61,7 +58,6 @@ public DashboardController(
_contentManager = contentManager;
_contentItemDisplayManager = contentItemDisplayManager;
_contentDefinitionManager = contentDefinitionManager;
_siteService = siteService;
_updateModelAccessor = updateModelAccessor;
New = shapeFactory;
_notifier = notifier;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,15 @@
using System;
using System.Threading.Tasks;
using OrchardCore.AdminDashboard.Models;
using OrchardCore.AdminDashboard.ViewModels;
using OrchardCore.ContentManagement;
using OrchardCore.ContentManagement.Display.ContentDisplay;
using OrchardCore.ContentManagement.Display.Models;
using OrchardCore.ContentManagement.Metadata;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.DisplayManagement.Views;
using OrchardCore.Settings;

namespace OrchardCore.AdminDashboard.Drivers
{
public class DashboardPartDisplayDriver : ContentPartDisplayDriver<DashboardPart>
{
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly IContentManager _contentManager;
private readonly IServiceProvider _serviceProvider;
private readonly ISiteService _siteService;

public DashboardPartDisplayDriver(
IContentManager contentManager,
IContentDefinitionManager contentDefinitionManager,
IServiceProvider serviceProvider,
ISiteService siteService
)
{
_contentDefinitionManager = contentDefinitionManager;
_contentManager = contentManager;
_serviceProvider = serviceProvider;
_siteService = siteService;
}

public override Task<IDisplayResult> DisplayAsync(DashboardPart part, BuildPartDisplayContext context)
{
return Task.FromResult<IDisplayResult>(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OrchardCore.Admin;
using OrchardCore.AdminMenu.Services;
using OrchardCore.AdminMenu.ViewModels;
using OrchardCore.DisplayManagement;
using OrchardCore.DisplayManagement.Notify;
using OrchardCore.Navigation;
using OrchardCore.Routing;
using OrchardCore.Settings;

namespace OrchardCore.AdminMenu.Controllers
{
Expand All @@ -25,7 +25,7 @@ public class MenuController : Controller
{
private readonly IAuthorizationService _authorizationService;
private readonly IAdminMenuService _adminMenuService;
private readonly ISiteService _siteService;
private readonly PagerOptions _pagerOptions;
private readonly INotifier _notifier;
private readonly IStringLocalizer S;
private readonly IHtmlLocalizer H;
Expand All @@ -35,7 +35,7 @@ public class MenuController : Controller
public MenuController(
IAuthorizationService authorizationService,
IAdminMenuService adminMenuService,
ISiteService siteService,
IOptions<PagerOptions> pagerOptions,
IShapeFactory shapeFactory,
INotifier notifier,
IStringLocalizer<MenuController> stringLocalizer,
Expand All @@ -44,7 +44,7 @@ public MenuController(
{
_authorizationService = authorizationService;
_adminMenuService = adminMenuService;
_siteService = siteService;
_pagerOptions = pagerOptions.Value;
New = shapeFactory;
_notifier = notifier;
S = stringLocalizer;
Expand All @@ -59,8 +59,7 @@ public async Task<IActionResult> List(ContentOptions options, PagerParameters pa
return Forbid();
}

var siteSettings = await _siteService.GetSiteSettingsAsync();
var pager = new Pager(pagerParameters, siteSettings.PageSize);
var pager = new Pager(pagerParameters, _pagerOptions.PageSize);

var adminMenuList = (await _adminMenuService.GetAdminMenuListAsync()).AdminMenu;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using OrchardCore.AuditTrail.Models;
using OrchardCore.AuditTrail.Services;
using OrchardCore.AuditTrail.ViewModels;
using OrchardCore.DisplayManagement;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.Navigation;
using OrchardCore.Routing;
using OrchardCore.Settings;
using YesSql.Filters.Query;

namespace OrchardCore.AuditTrail.Controllers
{
public class AdminController : Controller
{
private readonly ISiteService _siteService;
private readonly PagerOptions _pagerOptions;
private readonly IShapeFactory _shapeFactory;
private readonly IAuditTrailManager _auditTrailManager;
private readonly IUpdateModelAccessor _updateModelAccessor;
Expand All @@ -30,7 +30,7 @@ public class AdminController : Controller
private readonly IStringLocalizer S;

public AdminController(
ISiteService siteService,
IOptions<PagerOptions> pagerOptions,
IShapeFactory shapeFactory,
IAuditTrailManager auditTrailManager,
IUpdateModelAccessor updateModelAccessor,
Expand All @@ -40,7 +40,7 @@ public AdminController(
IDisplayManager<AuditTrailIndexOptions> auditTrailOptionsDisplayManager,
IStringLocalizer<AdminController> stringLocalizer)
{
_siteService = siteService;
_pagerOptions = pagerOptions.Value;
_shapeFactory = shapeFactory;
_auditTrailManager = auditTrailManager;
_updateModelAccessor = updateModelAccessor;
Expand Down Expand Up @@ -76,8 +76,7 @@ public async Task<ActionResult> Index([ModelBinder(BinderType = typeof(AuditTrai
options.FilterResult.TryAddOrReplace(new CorrelationIdFilterNode(options.CorrelationId));
}

var siteSettings = await _siteService.GetSiteSettingsAsync();
var pager = new Pager(pagerParameters, siteSettings.PageSize);
var pager = new Pager(pagerParameters, _pagerOptions.PageSize);

// With the options populated we filter the query, allowing the filters to alter the options.
var result = await _auditTrailAdminListQueryService.QueryAsync(pager.Page, pager.PageSize, options);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using OrchardCore.Admin;
using OrchardCore.BackgroundTasks.Services;
using OrchardCore.BackgroundTasks.ViewModels;
using OrchardCore.DisplayManagement;
using OrchardCore.Environment.Shell;
using OrchardCore.Navigation;
using OrchardCore.Settings;

namespace OrchardCore.BackgroundTasks.Controllers
{
Expand All @@ -22,7 +22,7 @@ public class BackgroundTaskController : Controller
private readonly IAuthorizationService _authorizationService;
private readonly IEnumerable<IBackgroundTask> _backgroundTasks;
private readonly BackgroundTaskManager _backgroundTaskManager;
private readonly ISiteService _siteService;
private readonly PagerOptions _pagerOptions;
private readonly IStringLocalizer S;
private readonly dynamic New;

Expand All @@ -32,15 +32,16 @@ public BackgroundTaskController(
IEnumerable<IBackgroundTask> backgroundTasks,
BackgroundTaskManager backgroundTaskManager,
IShapeFactory shapeFactory,
ISiteService siteService,
IOptions<PagerOptions> pagerOptions,
IStringLocalizer<BackgroundTaskController> stringLocalizer)
{
_tenant = shellSettings.Name;
_authorizationService = authorizationService;
_backgroundTasks = backgroundTasks;
_backgroundTaskManager = backgroundTaskManager;
_pagerOptions = pagerOptions.Value;

New = shapeFactory;
_siteService = siteService;
S = stringLocalizer;
}

Expand All @@ -51,8 +52,7 @@ public async Task<IActionResult> Index(PagerParameters pagerParameters)
return Forbid();
}

var siteSettings = await _siteService.GetSiteSettingsAsync();
var pager = new Pager(pagerParameters, siteSettings.PageSize);
var pager = new Pager(pagerParameters, _pagerOptions.PageSize);
var document = await _backgroundTaskManager.GetDocumentAsync();

var taskEntries = _backgroundTasks.Select(t =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using OrchardCore.ContentManagement;
using OrchardCore.ContentManagement.Display;
using OrchardCore.ContentManagement.Metadata;
Expand All @@ -24,7 +25,6 @@
using OrchardCore.Navigation;
using OrchardCore.Routing;
using OrchardCore.Security.Permissions;
using OrchardCore.Settings;
using YesSql;
using YesSql.Filters.Query;
using YesSql.Services;
Expand All @@ -35,8 +35,8 @@ public class AdminController : Controller
{
private readonly IContentManager _contentManager;
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly ISiteService _siteService;
private readonly YesSql.ISession _session;
private readonly PagerOptions _pagerOptions;
private readonly ISession _session;
private readonly IContentItemDisplayManager _contentItemDisplayManager;
private readonly INotifier _notifier;
private readonly IAuthorizationService _authorizationService;
Expand All @@ -54,9 +54,9 @@ public AdminController(
IContentManager contentManager,
IContentItemDisplayManager contentItemDisplayManager,
IContentDefinitionManager contentDefinitionManager,
ISiteService siteService,
IOptions<PagerOptions> pagerOptions,
INotifier notifier,
YesSql.ISession session,
ISession session,
IShapeFactory shapeFactory,
IDisplayManager<ContentOptionsViewModel> contentOptionsDisplayManager,
IContentsAdminListQueryService contentsAdminListQueryService,
Expand All @@ -69,7 +69,7 @@ public AdminController(
_notifier = notifier;
_contentItemDisplayManager = contentItemDisplayManager;
_session = session;
_siteService = siteService;
_pagerOptions = pagerOptions.Value;
_contentManager = contentManager;
_contentDefinitionManager = contentDefinitionManager;
_updateModelAccessor = updateModelAccessor;
Expand Down Expand Up @@ -99,8 +99,7 @@ public async Task<IActionResult> List(
return Forbid();
}

var siteSettings = await _siteService.GetSiteSettingsAsync();
var pager = new Pager(pagerParameters, siteSettings.PageSize);
var pager = new Pager(pagerParameters, _pagerOptions.PageSize);

// This is used by the AdminMenus so needs to be passed into the options.
if (!String.IsNullOrEmpty(contentTypeId))
Expand Down Expand Up @@ -240,13 +239,13 @@ public async Task<IActionResult> List(
options.RouteValues.TryAdd("q", options.FilterResult.ToString());

var routeData = new RouteData(options.RouteValues);
var maxPagedCount = siteSettings.MaxPagedCount;
if (maxPagedCount > 0 && pager.PageSize > maxPagedCount)

if (_pagerOptions.MaxPagedCount > 0 && pager.PageSize > _pagerOptions.MaxPagedCount)
{
pager.PageSize = maxPagedCount;
pager.PageSize = _pagerOptions.MaxPagedCount;
}

var pagerShape = (await New.Pager(pager)).TotalItemCount(maxPagedCount > 0 ? maxPagedCount : await query.CountAsync()).RouteData(routeData);
var pagerShape = (await New.Pager(pager)).TotalItemCount(_pagerOptions.MaxPagedCount > 0 ? _pagerOptions.MaxPagedCount : await query.CountAsync()).RouteData(routeData);

// Load items so that loading handlers are invoked.
var pageOfContentItems = await query.Skip(pager.GetStartIndex()).Take(pager.PageSize).ListAsync(_contentManager);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using OrchardCore.Admin;
using OrchardCore.Deployment.Remote.Services;
using OrchardCore.Deployment.Remote.ViewModels;
using OrchardCore.DisplayManagement;
using OrchardCore.DisplayManagement.Notify;
using OrchardCore.Navigation;
using OrchardCore.Routing;
using OrchardCore.Settings;

namespace OrchardCore.Deployment.Remote.Controllers
{
Expand All @@ -26,7 +26,7 @@ public class RemoteClientController : Controller
{
private readonly IDataProtector _dataProtector;
private readonly IAuthorizationService _authorizationService;
private readonly ISiteService _siteService;
private readonly PagerOptions _pagerOptions;
private readonly RemoteClientService _remoteClientService;
private readonly INotifier _notifier;
private readonly dynamic New;
Expand All @@ -37,15 +37,15 @@ public RemoteClientController(
IDataProtectionProvider dataProtectionProvider,
RemoteClientService remoteClientService,
IAuthorizationService authorizationService,
ISiteService siteService,
IOptions<PagerOptions> pagerOptions,
IShapeFactory shapeFactory,
IStringLocalizer<RemoteClientController> stringLocalizer,
IHtmlLocalizer<RemoteClientController> htmlLocalizer,
INotifier notifier
)
{
_authorizationService = authorizationService;
_siteService = siteService;
_pagerOptions = pagerOptions.Value;
New = shapeFactory;
S = stringLocalizer;
H = htmlLocalizer;
Expand All @@ -61,8 +61,7 @@ public async Task<IActionResult> Index(ContentOptions options, PagerParameters p
return Forbid();
}

var siteSettings = await _siteService.GetSiteSettingsAsync();
var pager = new Pager(pagerParameters, siteSettings.PageSize);
var pager = new Pager(pagerParameters, _pagerOptions.PageSize);

var remoteClients = (await _remoteClientService.GetRemoteClientListAsync()).RemoteClients;

Expand Down
Loading

0 comments on commit 7c7727a

Please sign in to comment.