fix #2777 - module rendering order within pane - moved default module ordering logic to server API for consistency and better performance

This commit is contained in:
sbwalker 2023-05-03 12:25:52 -04:00
parent e4a24df7b4
commit e444c6bcf0
4 changed files with 5 additions and 6 deletions

View File

@ -18,11 +18,7 @@ namespace Oqtane.Services
public async Task<List<Module>> GetModulesAsync(int siteId) public async Task<List<Module>> GetModulesAsync(int siteId)
{ {
List<Module> modules = await GetJsonAsync<List<Module>>($"{Apiurl}?siteid={siteId}"); return await GetJsonAsync<List<Module>>($"{Apiurl}?siteid={siteId}");
modules = modules
.OrderBy(item => item.Order)
.ToList();
return modules;
} }
public async Task<Module> GetModuleAsync(int moduleId) public async Task<Module> GetModuleAsync(int moduleId)

View File

@ -127,7 +127,7 @@ else
} }
else else
{ {
foreach (Module module in PageState.Modules.Where(item => item.PageId == PageState.Page.PageId && item.Pane.ToLower() == Name.ToLower()).OrderBy(x => x.Order).ToArray()) foreach (Module module in PageState.Modules.Where(item => item.PageId == PageState.Page.PageId && item.Pane.ToLower() == Name.ToLower()))
{ {
// check if user is authorized to view module // check if user is authorized to view module
if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, module.PermissionList)) if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, module.PermissionList))

View File

@ -9,6 +9,7 @@ using Oqtane.Infrastructure;
using Oqtane.Repository; using Oqtane.Repository;
using Oqtane.Security; using Oqtane.Security;
using System.Net; using System.Net;
using System.Security.Policy;
namespace Oqtane.Controllers namespace Oqtane.Controllers
{ {
@ -83,6 +84,7 @@ namespace Oqtane.Controllers
modules.Add(module); modules.Add(module);
} }
modules = modules.OrderBy(item => item.PageId).ThenBy(item => item.Pane).ThenBy(item => item.Order).ToList();
} }
} }
else else

View File

@ -137,6 +137,7 @@ namespace Oqtane.Controllers
site.Modules.Add(module); site.Modules.Add(module);
} }
} }
site.Modules = site.Modules.OrderBy(item => item.PageId).ThenBy(item => item.Pane).ThenBy(item => item.Order).ToList();
// languages // languages
site.Languages = _languages.GetLanguages(site.SiteId).ToList(); site.Languages = _languages.GetLanguages(site.SiteId).ToList();