performance optimizations in site router and remove dependency between page and module in route specification

This commit is contained in:
Shaun Walker 2019-10-18 12:23:36 -04:00
parent 73feb1f93f
commit 1cc58ea150
22 changed files with 172 additions and 175 deletions

View File

@ -17,15 +17,15 @@
} }
} }
</div> </div>
<br />
<br />
@code { @code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
List<Page> pages; List<Page> pages;
protected override void OnInitialized() protected override void OnInitialized()
{ {
// display list of pages which are children of current page Page admin = PageState.Pages.Where(item => item.Path == "admin").FirstOrDefault();
pages = PageState.Pages.Where(item => item.ParentId == PageState.Page.PageId).ToList(); pages = PageState.Pages.Where(item => item.ParentId == admin.PageId).ToList();
} }
} }

View File

@ -30,13 +30,14 @@
{ {
ShowProgressIndicator(); ShowProgressIndicator();
if (await FileService.UploadFilesAsync(PageState.Site.SiteRootPath, files, "")) string result = await FileService.UploadFilesAsync(PageState.Site.SiteRootPath, files, "");
if (result == "")
{ {
AddModuleMessage("Files Uploaded Successfully", MessageType.Success); AddModuleMessage("Files Uploaded Successfully", MessageType.Success);
} }
else else
{ {
AddModuleMessage("Upload Failed", MessageType.Error); AddModuleMessage("Upload Failed For " + result.Replace(",",", ") + ". This Could Be Due To A Network Error Or Because A File Type Is Restricted.", MessageType.Error);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -9,7 +9,7 @@
} }
else else
{ {
<ActionLink Action="Add" Text="Add File" Style="float: right; margin: 10px;" /> <ActionLink Action="Add" Text="Add Files" Style="float: right; margin: 10px;" />
<Pager Items="@Files"> <Pager Items="@Files">
<Header> <Header>

View File

@ -74,7 +74,8 @@
{ {
try try
{ {
if (await FileService.UploadFilesAsync("Modules", files, "")) string result = await FileService.UploadFilesAsync("Modules", files, "");
if (result == "")
{ {
AddModuleMessage("Module Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success); AddModuleMessage("Module Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true; uploaded = true;
@ -82,7 +83,7 @@
} }
else else
{ {
AddModuleMessage("Module Upload Failed.", MessageType.Error); AddModuleMessage("Upload Failed For " + result.Replace(",",", ") + ". This Could Be Due To A Network Error Or Because A File Type Is Restricted.", MessageType.Error);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -73,7 +73,8 @@
{ {
try try
{ {
if (await FileService.UploadFilesAsync("Themes", files, "")) string result = await FileService.UploadFilesAsync("Themes", files, "");
if (result == "")
{ {
AddModuleMessage("Theme Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success); AddModuleMessage("Theme Uploaded Successfully. Click Install To Complete Installation.", MessageType.Success);
uploaded = true; uploaded = true;
@ -81,7 +82,7 @@
} }
else else
{ {
AddModuleMessage("Theme Upload Failed.", MessageType.Error); AddModuleMessage("Upload Failed For " + result.Replace(",",", ") + ". This Could Be Due To A Network Error Or Because A File Type Is Restricted.", MessageType.Error);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -62,7 +62,8 @@ else
{ {
try try
{ {
if (await FileService.UploadFilesAsync("Framework", files, "")) string result = await FileService.UploadFilesAsync("Framework", files, "");
if (result == "")
{ {
AddModuleMessage("Framework Uploaded Successfully. Click Upgrade To Complete Installation.", MessageType.Success); AddModuleMessage("Framework Uploaded Successfully. Click Upgrade To Complete Installation.", MessageType.Success);
uploaded = true; uploaded = true;
@ -70,7 +71,7 @@ else
} }
else else
{ {
AddModuleMessage("Framework Upload Failed.", MessageType.Error); AddModuleMessage("Upload Failed For " + result.Replace(",",", ") + ". This Could Be Due To A Network Error Or Because A File Type Is Restricted.", MessageType.Error);
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -6,13 +6,13 @@
@inject HttpClient http @inject HttpClient http
@inject SiteState sitestate @inject SiteState sitestate
<table class="form-group"> <table class="table table-borderless">
<tr> <tr>
<td> <td>
<label for="Name" class="control-label">Content: </label> <label for="Name" class="control-label">Content: </label>
</td> </td>
<td> <td>
<textarea class="form-control" @bind="@content" rows="5" style="width:400px;" /> <textarea class="form-control" @bind="@content" rows="5" />
</td> </td>
</tr> </tr>
</table> </table>

View File

@ -33,17 +33,20 @@ namespace Oqtane.Services
return await http.GetJsonAsync<List<string>>(apiurl + "?folder=" + Folder); return await http.GetJsonAsync<List<string>>(apiurl + "?folder=" + Folder);
} }
public async Task<bool> UploadFilesAsync(string Folder, string[] Files, string FileUploadName) public async Task<string> UploadFilesAsync(string Folder, string[] Files, string FileUploadName)
{ {
bool success = false; string result = "";
var interop = new Interop(jsRuntime); var interop = new Interop(jsRuntime);
await interop.UploadFiles(apiurl + "/upload", Folder, FileUploadName); await interop.UploadFiles(apiurl + "/upload", Folder, FileUploadName);
// uploading files is asynchronous so we need to wait for the upload to complete // uploading files is asynchronous so we need to wait for the upload to complete
bool success = false;
int attempts = 0; int attempts = 0;
while (attempts < 5 && success == false) while (attempts < 5 && success == false)
{ {
Thread.Sleep(2000); // wait 2 seconds Thread.Sleep(2000); // wait 2 seconds
result = "";
List<string> files = await GetFilesAsync(Folder); List<string> files = await GetFilesAsync(Folder);
if (files.Count > 0) if (files.Count > 0)
@ -54,13 +57,18 @@ namespace Oqtane.Services
if (!files.Contains(file)) if (!files.Contains(file))
{ {
success = false; success = false;
result += file + ",";
} }
} }
} }
attempts += 1; attempts += 1;
} }
if (!success)
{
result = result.Substring(0, result.Length - 1);
}
return success; return result;
} }
public async Task DeleteFileAsync(string Folder, string File) public async Task DeleteFileAsync(string Folder, string File)

View File

@ -7,7 +7,7 @@ namespace Oqtane.Services
public interface IFileService public interface IFileService
{ {
Task<List<string>> GetFilesAsync(string Folder); Task<List<string>> GetFilesAsync(string Folder);
Task<bool> UploadFilesAsync(string Folder, string[] Files, string FileUploadName); Task<string> UploadFilesAsync(string Folder, string[] Files, string FileUploadName);
Task DeleteFileAsync(string Folder, string File); Task DeleteFileAsync(string Folder, string File);
} }
} }

View File

@ -6,8 +6,7 @@ namespace Oqtane.Services
{ {
public interface IModuleService public interface IModuleService
{ {
Task<List<Module>> GetModulesAsync(int PageId); Task<List<Module>> GetModulesAsync(int SiteId);
Task<List<Module>> GetModulesAsync(int SiteId, string ModuleDefinitionName);
Task<Module> GetModuleAsync(int ModuleId); Task<Module> GetModuleAsync(int ModuleId);
Task<Module> AddModuleAsync(Module Module); Task<Module> AddModuleAsync(Module Module);
Task<Module> UpdateModuleAsync(Module Module); Task<Module> UpdateModuleAsync(Module Module);

View File

@ -26,21 +26,15 @@ namespace Oqtane.Services
get { return CreateApiUrl(sitestate.Alias, NavigationManager.Uri, "Module"); } get { return CreateApiUrl(sitestate.Alias, NavigationManager.Uri, "Module"); }
} }
public async Task<List<Module>> GetModulesAsync(int PageId) public async Task<List<Module>> GetModulesAsync(int SiteId)
{ {
List<Module> modules = await http.GetJsonAsync<List<Module>>(apiurl + "?pageid=" + PageId.ToString()); List<Module> modules = await http.GetJsonAsync<List<Module>>(apiurl + "?siteid=" + SiteId.ToString());
modules = modules modules = modules
.OrderBy(item => item.Order) .OrderBy(item => item.Order)
.ToList(); .ToList();
return modules; return modules;
} }
public async Task<List<Module>> GetModulesAsync(int SiteId, string ModuleDefinitionName)
{
List<Module> modules = await http.GetJsonAsync<List<Module>>(apiurl + "?siteid=" + SiteId.ToString() + "&moduledefinitionname=" + ModuleDefinitionName);
return modules.ToList();
}
public async Task<Module> GetModuleAsync(int ModuleId) public async Task<Module> GetModuleAsync(int ModuleId)
{ {
return await http.GetJsonAsync<Module>(apiurl + "/" + ModuleId.ToString()); return await http.GetJsonAsync<Module>(apiurl + "/" + ModuleId.ToString());

View File

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

View File

@ -159,18 +159,18 @@
// extract admin route elements from path // extract admin route elements from path
string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); string[] segments = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
int result; int result;
// check if path has moduleid and control specification ie. page/moduleid/control/
if (segments.Length >= 2 && int.TryParse(segments[segments.Length - 2], out result)) if (segments.Length >= 2 && int.TryParse(segments[segments.Length - 2], out result))
{ {
// path has moduleid and control specification ie. page/moduleid/control/
control = segments[segments.Length - 1]; control = segments[segments.Length - 1];
moduleid = result; moduleid = result;
path = path.Replace(moduleid.ToString() + "/" + control + "/", ""); path = path.Replace(moduleid.ToString() + "/" + control + "/", "");
} }
else else
{ {
if (segments.Length >= 2 && int.TryParse(segments[segments.Length - 2], out result)) // check if path has only moduleid specification ie. page/moduleid/
if (segments.Length >= 1 && int.TryParse(segments[segments.Length - 1], out result))
{ {
// path has only moduleid specification ie. page/moduleid/
moduleid = result; moduleid = result;
path = path.Replace(moduleid.ToString() + "/", ""); path = path.Replace(moduleid.ToString() + "/", "");
} }
@ -244,8 +244,8 @@
if (PageState == null || reload >= Reload.Page) if (PageState == null || reload >= Reload.Page)
{ {
modules = await ModuleService.GetModulesAsync(page.PageId); modules = await ModuleService.GetModulesAsync(site.SiteId);
modules = ProcessModules(modules, moduledefinitions, pagestate.Control, page.Panes, site); modules = ProcessModules(modules, moduledefinitions, page.PageId, pagestate.ModuleId, pagestate.Control, page.Panes, site.DefaultContainerType);
} }
else else
{ {
@ -341,15 +341,9 @@
return page; return page;
} }
private List<Module> ProcessModules(List<Module> modules, List<ModuleDefinition> moduledefinitions, string control, string panes, Site site) private List<Module> ProcessModules(List<Module> modules, List<ModuleDefinition> moduledefinitions, int pageid, int moduleid, string control, string panes, string defaultcontainertype)
{ {
ModuleDefinition moduledefinition; ModuleDefinition moduledefinition;
if (control == "")
{
control = Constants.DefaultControl;
}
Dictionary<string, int> paneindex = new Dictionary<string, int>(); Dictionary<string, int> paneindex = new Dictionary<string, int>();
foreach (Module module in modules) foreach (Module module in modules)
{ {
@ -358,62 +352,80 @@
if (moduledefinition != null) if (moduledefinition != null)
{ {
string typename = moduledefinition.ControlTypeTemplate; string typename = moduledefinition.ControlTypeTemplate;
if (moduledefinition.ControlTypeRoutes != "") if (module.ModuleId == moduleid && control != "")
{ {
foreach (string route in moduledefinition.ControlTypeRoutes.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) // check if the module defines custom routes
if (moduledefinition.ControlTypeRoutes != "")
{ {
if (route.StartsWith(control + "=")) foreach (string route in moduledefinition.ControlTypeRoutes.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
{ {
typename = route.Replace(control + "=", ""); if (route.StartsWith(control + "="))
{
typename = route.Replace(control + "=", "");
}
}
}
module.ModuleType = typename.Replace("{Control}", control);
// admin controls need to load additional metadata from the IModuleControl interface
if (moduleid == module.ModuleId)
{
typename = module.ModuleType;
// check for core module actions component
if (Constants.DefaultModuleActions.Contains(control))
{
typename = Constants.DefaultModuleActionsTemplate.Replace("{Control}", control);
}
Type moduletype = Type.GetType(typename);
if (moduletype != null)
{
var moduleobject = Activator.CreateInstance(moduletype);
module.SecurityAccessLevel = (SecurityAccessLevel)moduletype.GetProperty("SecurityAccessLevel").GetValue(moduleobject, null);
module.ControlTitle = (string)moduletype.GetProperty("Title").GetValue(moduleobject);
module.Actions = (string)moduletype.GetProperty("Actions").GetValue(moduleobject);
module.UseAdminContainer = (bool)moduletype.GetProperty("UseAdminContainer").GetValue(moduleobject);
} }
} }
} }
module.ModuleType = typename.Replace("{Control}", control); else
// get IModuleControl properties
typename = module.ModuleType;
// check for core module actions component
if (Constants.DefaultModuleActions.Contains(control))
{ {
typename = Constants.DefaultModuleActionsTemplate.Replace("{Control}", control); module.ModuleType = typename.Replace("{Control}", Constants.DefaultControl);
} }
Type moduletype = Type.GetType(typename);
if (moduletype != null) }
if (module.PageId == pageid)
{
// ensure module's pane exists in current page and if not, assign it to the Admin pane
if (!panes.ToLower().Contains(module.Pane.ToLower()))
{ {
var moduleobject = Activator.CreateInstance(moduletype); module.Pane = Constants.AdminPane;
module.SecurityAccessLevel = (SecurityAccessLevel)moduletype.GetProperty("SecurityAccessLevel").GetValue(moduleobject, null);
module.ControlTitle = (string)moduletype.GetProperty("Title").GetValue(moduleobject);
module.Actions = (string)moduletype.GetProperty("Actions").GetValue(moduleobject);
module.UseAdminContainer = (bool)moduletype.GetProperty("UseAdminContainer").GetValue(moduleobject);
} }
}
// ensure module's pane exists in current page and if not, assign it to the Admin pane // calculate module position within pane
if (!panes.ToLower().Contains(module.Pane.ToLower())) if (paneindex.ContainsKey(module.Pane))
{ {
module.Pane = Constants.AdminPane; paneindex[module.Pane] += 1;
}
else
{
paneindex.Add(module.Pane, 0);
}
module.PaneModuleIndex = paneindex[module.Pane];
} }
// calculate module position within pane
if (paneindex.ContainsKey(module.Pane))
{
paneindex[module.Pane] += 1;
}
else
{
paneindex.Add(module.Pane, 0);
}
module.PaneModuleIndex = paneindex[module.Pane];
if (string.IsNullOrEmpty(module.ContainerType)) if (string.IsNullOrEmpty(module.ContainerType))
{ {
module.ContainerType = site.DefaultContainerType; module.ContainerType = defaultcontainertype;
} }
} }
foreach (Module module in modules) foreach (Module module in modules)
{ {
module.PaneModuleCount = paneindex[module.Pane] + 1; if (module.PageId == pageid)
{
module.PaneModuleCount = paneindex[module.Pane] + 1;
}
} }
return modules; return modules;
} }

View File

@ -152,7 +152,6 @@
string moduleid = ""; string moduleid = "";
List<Module> modules = new List<Module>(); List<Module> modules = new List<Module>();
Dictionary<string, string> containers = new Dictionary<string, string>(); Dictionary<string, string> containers = new Dictionary<string, string>();
int pagemanagementmoduleid = -1;
string moduledefinitionname = ""; string moduledefinitionname = "";
string pane = ""; string pane = "";
string title = ""; string title = "";
@ -162,7 +161,7 @@
string cardclass = "text-white bg-secondary"; string cardclass = "text-white bg-secondary";
string message = ""; string message = "";
protected override async Task OnParametersSetAsync() protected override void OnParametersSet()
{ {
if (!string.IsNullOrEmpty(ButtonClass)) if (!string.IsNullOrEmpty(ButtonClass))
{ {
@ -200,11 +199,6 @@
pane = panes.Count() == 1 ? panes.SingleOrDefault() : ""; pane = panes.Count() == 1 ? panes.SingleOrDefault() : "";
containers = ThemeService.GetContainerTypes(PageState.Themes); containers = ThemeService.GetContainerTypes(PageState.Themes);
containertype = PageState.Site.DefaultContainerType; containertype = PageState.Site.DefaultContainerType;
List<Module> modules = await ModuleService.GetModulesAsync(PageState.Site.SiteId, Constants.PageManagementModule);
if (modules.Count > 0)
{
pagemanagementmoduleid = modules.FirstOrDefault().ModuleId;
}
} }
} }
@ -223,12 +217,12 @@
StateHasChanged(); StateHasChanged();
} }
private async Task PageChanged(ChangeEventArgs e) private void PageChanged(ChangeEventArgs e)
{ {
string pageid = (string)e.Value; string pageid = (string)e.Value;
if (pageid != "") if (pageid != "")
{ {
foreach(Module module in await ModuleService.GetModulesAsync(int.Parse(pageid))) foreach(Module module in PageState.Modules.Where(item => item.PageId == int.Parse(pageid)))
{ {
if (UserSecurity.IsAuthorized(PageState.User, "View", module.Permissions)) if (UserSecurity.IsAuthorized(PageState.User, "View", module.Permissions))
{ {
@ -287,27 +281,6 @@
} }
} }
private string PageUrl(string action)
{
string url = "";
if (pagemanagementmoduleid != -1)
{
switch (action)
{
case "Add":
url = EditUrl("admin/pages", pagemanagementmoduleid, action, "");
break;
case "Edit":
url = EditUrl("admin/pages", pagemanagementmoduleid, action, "id=" + PageState.Page.PageId.ToString());
break;
case "Delete":
url = EditUrl("admin/pages", pagemanagementmoduleid, action, "id=" + PageState.Page.PageId.ToString());
break;
}
}
return url;
}
private void EditMode() private void EditMode()
{ {
if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions)) if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions))
@ -343,15 +316,42 @@
private void Navigate(string location) private void Navigate(string location)
{ {
HideControlPanel(); HideControlPanel();
Module module;
switch (location) switch (location)
{ {
case "Admin": case "Admin":
NavigationManager.NavigateTo(NavigateUrl("admin")); // get admin dashboard moduleid
module = PageState.Modules.Where(item => item.ModuleDefinitionName == Constants.AdminDashboardModule).FirstOrDefault();
if (module != null)
{
NavigationManager.NavigateTo(EditUrl(PageState.Page.Path, module.ModuleId, "Index", ""));
}
break; break;
case "Add": case "Add":
case "Edit": case "Edit":
case "Delete": case "Delete":
NavigationManager.NavigateTo(PageUrl(location)); string url = "";
// get page management moduleid
module = PageState.Modules.Where(item => item.ModuleDefinitionName == Constants.PageManagementModule).FirstOrDefault();
if (module != null)
{
switch (location)
{
case "Add":
url = EditUrl(PageState.Page.Path, module.ModuleId, location, "");
break;
case "Edit":
url = EditUrl(PageState.Page.Path, module.ModuleId, location, "id=" + PageState.Page.PageId.ToString());
break;
case "Delete":
url = EditUrl(PageState.Page.Path, module.ModuleId, location, "id=" + PageState.Page.PageId.ToString());
break;
}
}
if (url != "")
{
NavigationManager.NavigateTo(url);
}
break; break;
} }
} }

View File

@ -29,41 +29,33 @@ namespace Oqtane.Controllers
this.ServiceProvider = ServiceProvider; this.ServiceProvider = ServiceProvider;
} }
// GET: api/<controller>?pageid=x // GET: api/<controller>?siteid=x
// GET: api/<controller>?siteid=x&moduledefinitionname=x
[HttpGet] [HttpGet]
public IEnumerable<Models.Module> Get(string pageid, string siteid, string moduledefinitionname) public IEnumerable<Models.Module> Get(string siteid)
{ {
if (!string.IsNullOrEmpty(pageid)) List<Models.Module> modulelist = new List<Models.Module>();
foreach (PageModule pagemodule in PageModules.GetPageModules(int.Parse(siteid)))
{ {
List<Models.Module> modulelist = new List<Models.Module>(); Models.Module module = new Models.Module();
foreach (PageModule pagemodule in PageModules.GetPageModules(int.Parse(pageid))) module.SiteId = pagemodule.Module.SiteId;
{ module.ModuleDefinitionName = pagemodule.Module.ModuleDefinitionName;
Models.Module module = new Models.Module(); module.Permissions = pagemodule.Module.Permissions;
module.SiteId = pagemodule.Module.SiteId; module.CreatedBy = pagemodule.Module.CreatedBy;
module.ModuleDefinitionName = pagemodule.Module.ModuleDefinitionName; module.CreatedOn = pagemodule.Module.CreatedOn;
module.Permissions = pagemodule.Module.Permissions; module.ModifiedBy = pagemodule.Module.ModifiedBy;
module.CreatedBy = pagemodule.Module.CreatedBy; module.ModifiedOn = pagemodule.Module.ModifiedOn;
module.CreatedOn = pagemodule.Module.CreatedOn; module.IsDeleted = pagemodule.IsDeleted;
module.ModifiedBy = pagemodule.Module.ModifiedBy;
module.ModifiedOn = pagemodule.Module.ModifiedOn;
module.IsDeleted = pagemodule.IsDeleted;
module.PageModuleId = pagemodule.PageModuleId; module.PageModuleId = pagemodule.PageModuleId;
module.ModuleId = pagemodule.ModuleId; module.ModuleId = pagemodule.ModuleId;
module.PageId = pagemodule.PageId; module.PageId = pagemodule.PageId;
module.Title = pagemodule.Title; module.Title = pagemodule.Title;
module.Pane = pagemodule.Pane; module.Pane = pagemodule.Pane;
module.Order = pagemodule.Order; module.Order = pagemodule.Order;
module.ContainerType = pagemodule.ContainerType; module.ContainerType = pagemodule.ContainerType;
modulelist.Add(module); modulelist.Add(module);
}
return modulelist;
}
else
{
return Modules.GetModules(int.Parse(siteid), moduledefinitionname);
} }
return modulelist;
} }
// GET api/<controller>/5 // GET api/<controller>/5

View File

@ -6,7 +6,6 @@ namespace Oqtane.Repository
public interface IModuleRepository public interface IModuleRepository
{ {
IEnumerable<Module> GetModules(); IEnumerable<Module> GetModules();
IEnumerable<Module> GetModules(int SiteId, string ModuleDefinitionName);
Module AddModule(Module Module); Module AddModule(Module Module);
Module UpdateModule(Module Module); Module UpdateModule(Module Module);
Module GetModule(int ModuleId); Module GetModule(int ModuleId);

View File

@ -6,7 +6,7 @@ namespace Oqtane.Repository
public interface IPageModuleRepository public interface IPageModuleRepository
{ {
IEnumerable<PageModule> GetPageModules(); IEnumerable<PageModule> GetPageModules();
IEnumerable<PageModule> GetPageModules(int PageId); IEnumerable<PageModule> GetPageModules(int SiteId);
PageModule AddPageModule(PageModule PageModule); PageModule AddPageModule(PageModule PageModule);
PageModule UpdatePageModule(PageModule PageModule); PageModule UpdatePageModule(PageModule PageModule);
PageModule GetPageModule(int PageModuleId); PageModule GetPageModule(int PageModuleId);

View File

@ -21,19 +21,6 @@ namespace Oqtane.Repository
return db.Module; return db.Module;
} }
public IEnumerable<Module> GetModules(int SiteId, string ModuleDefinitionName)
{
IEnumerable<Permission> permissions = Permissions.GetPermissions(SiteId, "Module").ToList();
IEnumerable<Module> modules = db.Module
.Where(item => item.SiteId == SiteId)
.Where(item => item.ModuleDefinitionName == ModuleDefinitionName);
foreach (Module module in modules)
{
module.Permissions = Permissions.EncodePermissions(module.ModuleId, permissions);
}
return modules;
}
public Module AddModule(Module Module) public Module AddModule(Module Module)
{ {
db.Module.Add(Module); db.Module.Add(Module);

View File

@ -20,10 +20,11 @@ namespace Oqtane.Repository
{ {
return db.PageModule; return db.PageModule;
} }
public IEnumerable<PageModule> GetPageModules(int PageId) public IEnumerable<PageModule> GetPageModules(int SiteId)
{ {
IEnumerable<PageModule> pagemodules = db.PageModule.Where(item => item.PageId == PageId) IEnumerable<PageModule> pagemodules = db.PageModule
.Include(item => item.Module); // eager load modules .Include(item => item.Module) // eager load modules
.Where(item => item.Module.SiteId == SiteId);
if (pagemodules != null && pagemodules.Any()) if (pagemodules != null && pagemodules.Any())
{ {
IEnumerable<Permission> permissions = Permissions.GetPermissions(pagemodules.FirstOrDefault().Module.SiteId, "Module").ToList(); IEnumerable<Permission> permissions = Permissions.GetPermissions(pagemodules.FirstOrDefault().Module.SiteId, "Module").ToList();

View File

@ -35,7 +35,7 @@ namespace Oqtane.Repository
// define the default site template // define the default site template
SiteTemplate = new List<PageTemplate>(); SiteTemplate = new List<PageTemplate>();
SiteTemplate.Add(new PageTemplate { Name = "Home", Parent = "", Path = "", Order = 1, Icon = "home", IsNavigation = true, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Home", Parent = "", Path = "", Icon = "home", IsNavigation = true, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Welcome To Oqtane...", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Welcome To Oqtane...", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]",
Content = "<p><a href=\"https://www.oqtane.org\" target=\"_new\">Oqtane</a> is an open source <b>modular application framework</b> built from the ground up using modern .NET Core technology. It leverages the revolutionary new Blazor component model to create a <b>fully dynamic</b> web development experience which can be executed on a client or server. Whether you are looking for a platform to <b>accelerate your web development</b> efforts, or simply interested in exploring the anatomy of a large-scale Blazor application, Oqtane provides a solid foundation based on proven enterprise architectural principles.</p>" + Content = "<p><a href=\"https://www.oqtane.org\" target=\"_new\">Oqtane</a> is an open source <b>modular application framework</b> built from the ground up using modern .NET Core technology. It leverages the revolutionary new Blazor component model to create a <b>fully dynamic</b> web development experience which can be executed on a client or server. Whether you are looking for a platform to <b>accelerate your web development</b> efforts, or simply interested in exploring the anatomy of a large-scale Blazor application, Oqtane provides a solid foundation based on proven enterprise architectural principles.</p>" +
"<p align=\"center\"><a href=\"https://www.oqtane.org\" target=\"_new\"><img src=\"oqtane.png\"></a><br /><br /><a class=\"btn btn-primary\" href=\"https://www.oqtane.org/Community\" target=\"_new\">Join Our Community</a>&nbsp;&nbsp;<a class=\"btn btn-primary\" href=\"https://github.com/oqtane/oqtane.framework\" target=\"_new\">Clone Our Repo</a><br /><br /></p>" + "<p align=\"center\"><a href=\"https://www.oqtane.org\" target=\"_new\"><img src=\"oqtane.png\"></a><br /><br /><a class=\"btn btn-primary\" href=\"https://www.oqtane.org/Community\" target=\"_new\">Join Our Community</a>&nbsp;&nbsp;<a class=\"btn btn-primary\" href=\"https://github.com/oqtane/oqtane.framework\" target=\"_new\">Clone Our Repo</a><br /><br /></p>" +
@ -50,43 +50,43 @@ namespace Oqtane.Repository
} }
} }
}); });
SiteTemplate.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Order = 1, Icon = "", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Admin", Parent = "", Path = "admin", Icon = "", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", Title = "Administration", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client", Title = "Admin Dashboard", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Path = "admin/sites", Order = 1, Icon = "globe", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Site Management", Parent = "Admin", Path = "admin/sites", Icon = "globe", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", Title = "Site Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Sites, Oqtane.Client", Title = "Site Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Path = "admin/pages", Order = 1, Icon = "layers", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Page Management", Parent = "Admin", Path = "admin/pages", Icon = "layers", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", Title = "Page Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Pages, Oqtane.Client", Title = "Page Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "File Management", Parent = "Admin", Path = "admin/files", Order = 1, Icon = "file", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "File Management", Parent = "Admin", Path = "admin/files", Icon = "file", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Files, Oqtane.Client", Title = "File Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Files, Oqtane.Client", Title = "File Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Path = "admin/users", Order = 1, Icon = "person", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "User Management", Parent = "Admin", Path = "admin/users", Icon = "person", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", Title = "User Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Users, Oqtane.Client", Title = "User Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Path = "admin/roles", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Role Management", Parent = "Admin", Path = "admin/roles", Icon = "lock-locked", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", Title = "Role Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Roles, Oqtane.Client", Title = "Role Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Order = 1, Icon = "list", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Tenant Management", Parent = "Admin", Path = "admin/tenants", Icon = "list", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", Title = "Tenant Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Tenants, Oqtane.Client", Title = "Tenant Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Path = "admin/modules", Order = 1, Icon = "browser", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Module Management", Parent = "Admin", Path = "admin/modules", Icon = "browser", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", Title = "Module Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.ModuleDefinitions, Oqtane.Client", Title = "Module Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Order = 1, Icon = "brush", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Theme Management", Parent = "Admin", Path = "admin/themes", Icon = "brush", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", Title = "Theme Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Themes, Oqtane.Client", Title = "Theme Management", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Upgrade Service", Parent = "Admin", Path = "admin/upgrade", Order = 1, Icon = "aperture", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Upgrade Service", Parent = "Admin", Path = "admin/upgrade", Icon = "aperture", IsNavigation = false, EditMode = true, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Upgrade, Oqtane.Client", Title = "Upgrade Service", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Upgrade, Oqtane.Client", Title = "Upgrade Service", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Order = 1, Icon = "lock-locked", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Login", Parent = "", Path = "login", Icon = "lock-locked", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", Title = "User Login", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Login, Oqtane.Client", Title = "User Login", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Register", Parent = "", Path = "register", Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", Title = "User Registration", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Register, Oqtane.Client", Title = "User Registration", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
SiteTemplate.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Order = 1, Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> { SiteTemplate.Add(new PageTemplate { Name = "Profile", Parent = "", Path = "profile", Icon = "person", IsNavigation = false, EditMode = false, PagePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", PageTemplateModules = new List<PageTemplateModule> {
new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Profile, Oqtane.Client", Title = "User Profile", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" } new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.Admin.Profile, Oqtane.Client", Title = "User Profile", Pane = "Content", ModulePermissions = "[{\"PermissionName\":\"View\",\"Permissions\":\"All Users;Administrators\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"Administrators\"}]", Content = "" }
}}); }});
} }
@ -164,7 +164,7 @@ namespace Oqtane.Repository
ParentId = parentid, ParentId = parentid,
Name = pagetemplate.Name, Name = pagetemplate.Name,
Path = pagetemplate.Path, Path = pagetemplate.Path,
Order = pagetemplate.Order, Order = 1,
IsNavigation = pagetemplate.IsNavigation, IsNavigation = pagetemplate.IsNavigation,
EditMode = pagetemplate.EditMode, EditMode = pagetemplate.EditMode,
ThemeType = "", ThemeType = "",

View File

@ -7,7 +7,6 @@ namespace Oqtane.Models
public string Name { get; set; } public string Name { get; set; }
public string Parent { get; set; } public string Parent { get; set; }
public string Path { get; set; } public string Path { get; set; }
public int Order { get; set; }
public string Icon { get; set; } public string Icon { get; set; }
public bool IsNavigation { get; set; } public bool IsNavigation { get; set; }
public bool EditMode { get; set; } public bool EditMode { get; set; }

View File

@ -13,8 +13,10 @@
public const string DefaultContainer = "Oqtane.Themes.BlazorTheme.Container, Oqtane.Client"; public const string DefaultContainer = "Oqtane.Themes.BlazorTheme.Container, Oqtane.Client";
public const string DefaultAdminContainer = "Oqtane.Themes.AdminContainer, Oqtane.Client"; public const string DefaultAdminContainer = "Oqtane.Themes.AdminContainer, Oqtane.Client";
// Default Module Actions are reserved and should not be used by modules
public static readonly string[] DefaultModuleActions = new[] { "Settings", "Import", "Export" }; public static readonly string[] DefaultModuleActions = new[] { "Settings", "Import", "Export" };
public const string DefaultModuleActionsTemplate = "Oqtane.Modules.Admin.Modules.{Control}, Oqtane.Client"; public const string DefaultModuleActionsTemplate = "Oqtane.Modules.Admin.Modules.{Control}, Oqtane.Client";
public const string AdminDashboardModule = "Oqtane.Modules.Admin.Dashboard, Oqtane.Client";
public const string PageManagementModule = "Oqtane.Modules.Admin.Pages, Oqtane.Client"; public const string PageManagementModule = "Oqtane.Modules.Admin.Pages, Oqtane.Client";
public const string ModuleMessageControl = "Oqtane.Modules.Controls.ModuleMessage, Oqtane.Client"; public const string ModuleMessageControl = "Oqtane.Modules.Controls.ModuleMessage, Oqtane.Client";