Merge pull request #860 from sbwalker/master
load module settings automatically so that they are part of the ModuleState and can be easily accessed by developers
This commit is contained in:
commit
c52d255a30
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
|
@ -18,15 +18,17 @@ namespace Oqtane.Controllers
|
||||||
private readonly IPageModuleRepository _pageModules;
|
private readonly IPageModuleRepository _pageModules;
|
||||||
private readonly IPageRepository _pages;
|
private readonly IPageRepository _pages;
|
||||||
private readonly IModuleDefinitionRepository _moduleDefinitions;
|
private readonly IModuleDefinitionRepository _moduleDefinitions;
|
||||||
|
private readonly ISettingRepository _settings;
|
||||||
private readonly IUserPermissions _userPermissions;
|
private readonly IUserPermissions _userPermissions;
|
||||||
private readonly ILogManager _logger;
|
private readonly ILogManager _logger;
|
||||||
|
|
||||||
public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IPageRepository pages, IModuleDefinitionRepository moduleDefinitions, IUserPermissions userPermissions, ILogManager logger)
|
public ModuleController(IModuleRepository modules, IPageModuleRepository pageModules, IPageRepository pages, IModuleDefinitionRepository moduleDefinitions, ISettingRepository settings, IUserPermissions userPermissions, ILogManager logger)
|
||||||
{
|
{
|
||||||
_modules = modules;
|
_modules = modules;
|
||||||
_pageModules = pageModules;
|
_pageModules = pageModules;
|
||||||
_pages = pages;
|
_pages = pages;
|
||||||
_moduleDefinitions = moduleDefinitions;
|
_moduleDefinitions = moduleDefinitions;
|
||||||
|
_settings = settings;
|
||||||
_userPermissions = userPermissions;
|
_userPermissions = userPermissions;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +38,8 @@ namespace Oqtane.Controllers
|
||||||
public IEnumerable<Module> Get(string siteid)
|
public IEnumerable<Module> Get(string siteid)
|
||||||
{
|
{
|
||||||
List<ModuleDefinition> moduledefinitions = _moduleDefinitions.GetModuleDefinitions(int.Parse(siteid)).ToList();
|
List<ModuleDefinition> moduledefinitions = _moduleDefinitions.GetModuleDefinitions(int.Parse(siteid)).ToList();
|
||||||
|
List<Setting> settings = _settings.GetSettings(EntityNames.Module).ToList();
|
||||||
|
|
||||||
List<Module> modules = new List<Module>();
|
List<Module> modules = new List<Module>();
|
||||||
foreach (PageModule pagemodule in _pageModules.GetPageModules(int.Parse(siteid)))
|
foreach (PageModule pagemodule in _pageModules.GetPageModules(int.Parse(siteid)))
|
||||||
{
|
{
|
||||||
|
@ -61,6 +65,8 @@ namespace Oqtane.Controllers
|
||||||
module.ContainerType = pagemodule.ContainerType;
|
module.ContainerType = pagemodule.ContainerType;
|
||||||
|
|
||||||
module.ModuleDefinition = moduledefinitions.Find(item => item.ModuleDefinitionName == module.ModuleDefinitionName);
|
module.ModuleDefinition = moduledefinitions.Find(item => item.ModuleDefinitionName == module.ModuleDefinitionName);
|
||||||
|
module.Settings = settings.Where(item => item.EntityId == pagemodule.ModuleId)
|
||||||
|
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
||||||
|
|
||||||
modules.Add(module);
|
modules.Add(module);
|
||||||
}
|
}
|
||||||
|
@ -77,6 +83,9 @@ namespace Oqtane.Controllers
|
||||||
{
|
{
|
||||||
List<ModuleDefinition> moduledefinitions = _moduleDefinitions.GetModuleDefinitions(module.SiteId).ToList();
|
List<ModuleDefinition> moduledefinitions = _moduleDefinitions.GetModuleDefinitions(module.SiteId).ToList();
|
||||||
module.ModuleDefinition = moduledefinitions.Find(item => item.ModuleDefinitionName == module.ModuleDefinitionName);
|
module.ModuleDefinition = moduledefinitions.Find(item => item.ModuleDefinitionName == module.ModuleDefinitionName);
|
||||||
|
module.Settings = _settings.GetSettings(EntityNames.Module, id)
|
||||||
|
.ToDictionary(setting => setting.SettingName, setting => setting.SettingValue);
|
||||||
|
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
|
|
||||||
namespace Oqtane.Repository
|
namespace Oqtane.Repository
|
||||||
{
|
{
|
||||||
public interface ISettingRepository
|
public interface ISettingRepository
|
||||||
{
|
{
|
||||||
|
IEnumerable<Setting> GetSettings(string entityName);
|
||||||
IEnumerable<Setting> GetSettings(string entityName, int entityId);
|
IEnumerable<Setting> GetSettings(string entityName, int entityId);
|
||||||
Setting AddSetting(Setting setting);
|
Setting AddSetting(Setting setting);
|
||||||
Setting UpdateSetting(Setting setting);
|
Setting UpdateSetting(Setting setting);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
|
@ -14,6 +14,11 @@ namespace Oqtane.Repository
|
||||||
_db = context;
|
_db = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Setting> GetSettings(string entityName)
|
||||||
|
{
|
||||||
|
return _db.Setting.Where(item => item.EntityName == entityName);
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<Setting> GetSettings(string entityName, int entityId)
|
public IEnumerable<Setting> GetSettings(string entityName, int entityId)
|
||||||
{
|
{
|
||||||
return _db.Setting.Where(item => item.EntityName == entityName)
|
return _db.Setting.Where(item => item.EntityName == entityName)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using Oqtane.Shared;
|
using Oqtane.Shared;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Oqtane.Models
|
namespace Oqtane.Models
|
||||||
|
@ -26,6 +27,9 @@ namespace Oqtane.Models
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public string Permissions { get; set; }
|
public string Permissions { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public Dictionary<string, string> Settings { get; set; }
|
||||||
|
|
||||||
// PageModule properties
|
// PageModule properties
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
public int PageModuleId { get; set; }
|
public int PageModuleId { get; set; }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user