performance optimizations in site router and remove dependency between page and module in route specification
This commit is contained in:
parent
73feb1f93f
commit
1cc58ea150
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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>
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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>
|
||||||
|
@ -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)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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());
|
||||||
|
@ -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))
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
@ -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> <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> <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 = "",
|
||||||
|
@ -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; }
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user