updated namespaces, improved page management,
This commit is contained in:
68
Oqtane.Client/Themes/Controls/Menu2.razor
Normal file
68
Oqtane.Client/Themes/Controls/Menu2.razor
Normal file
@ -0,0 +1,68 @@
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Oqtane.Themes
|
||||
@using Oqtane.Services
|
||||
@using Oqtane.Models;
|
||||
@using Oqtane.Security
|
||||
@namespace Oqtane.Themes.Controls
|
||||
@inherits ThemeObjectBase
|
||||
@inject IUserService UserService
|
||||
|
||||
@if (menu != "")
|
||||
{
|
||||
@((MarkupString)menu)
|
||||
}
|
||||
|
||||
@code {
|
||||
string menu = "";
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
int level = -1;
|
||||
int securitylevel = int.MaxValue;
|
||||
|
||||
menu = "<ul class=\"nav flex-column\">\n";
|
||||
foreach (Page p in PageState.Pages.Where(item => item.IsNavigation))
|
||||
{
|
||||
for (int l = p.Level; l < level; l++)
|
||||
{
|
||||
menu += "</ul>\n";
|
||||
menu += "</div>\n";
|
||||
}
|
||||
if (UserSecurity.IsAuthorized(PageState.User, "View", p.Permissions) && p.Level <= securitylevel)
|
||||
{
|
||||
securitylevel = int.MaxValue;
|
||||
if (p.HasChildren)
|
||||
{
|
||||
menu += "<li class=\"nav-item px-3\">\n";
|
||||
menu += "<a class=\"nav-link collapsed\" href=\"#submenu" + p.PageId.ToString() + "\" data-toggle=\"collapse\" data-target=\"#submenu" + p.PageId.ToString() + "\">";
|
||||
menu += "<span class=\"oi " + p.Icon + "\" aria-hidden=\"true\"></span>" + p.Name;
|
||||
menu += "</a>\n";
|
||||
menu += "<div class=\"collapse\" id=\"submenu" + p.PageId.ToString() + "\" aria-expanded=\"false\">\n";
|
||||
menu += "<ul class=\"nav flex-column\">\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
menu += "<li class=\"nav-item px-3\">\n";
|
||||
menu += "<a class=\"nav-link\" href=\"" + NavigateUrl(p.Path) + "\">";
|
||||
menu += "<span class=\"oi " + p.Icon + "\" aria-hidden=\"true\"></span>" + p.Name;
|
||||
menu += "</a>\n";
|
||||
menu += "</li>\n";
|
||||
}
|
||||
level = p.Level;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (securitylevel == int.MaxValue)
|
||||
{
|
||||
securitylevel = p.Level;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int l = 0; l < level; l++)
|
||||
{
|
||||
menu += "</ul>\n";
|
||||
menu += "</div>\n";
|
||||
}
|
||||
menu += "</ul>";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user