updated namespaces, improved page management,
This commit is contained in:
		| @ -4,6 +4,7 @@ | ||||
| @using Oqtane.Themes | ||||
| @using Oqtane.Shared | ||||
| @using Oqtane.Security | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ThemeObjectBase | ||||
| @inject IUriHelper UriHelper | ||||
| @inject IUserService UserService | ||||
| @ -133,9 +134,10 @@ | ||||
|             } | ||||
|             pagemodule.Title = title; | ||||
|             pagemodule.Pane = pane; | ||||
|             pagemodule.Order = 0; | ||||
|             pagemodule.Order = int.MaxValue; | ||||
|             pagemodule.ContainerType = containertype; | ||||
|             await PageModuleService.AddPageModuleAsync(pagemodule); | ||||
|             await PageModuleService.UpdatePageModuleOrderAsync(pagemodule.PageId, pagemodule.Pane); | ||||
|  | ||||
|             PageState.Reload = Constants.ReloadPage; | ||||
|             UriHelper.NavigateTo(NavigateUrl()); | ||||
|  | ||||
| @ -3,6 +3,7 @@ | ||||
| @using Oqtane.Providers | ||||
| @using Oqtane.Shared | ||||
| @using Microsoft.JSInterop | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ThemeObjectBase | ||||
| @inject IUriHelper UriHelper | ||||
| @inject IUserService UserService | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| @using Oqtane.Themes | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ThemeObjectBase | ||||
|  | ||||
| @((MarkupString)logo) | ||||
|  | ||||
| @ -3,6 +3,7 @@ | ||||
| @using Oqtane.Services | ||||
| @using Oqtane.Models; | ||||
| @using Oqtane.Security | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ThemeObjectBase | ||||
| @inject IPageService PageService | ||||
| @inject IUserService UserService | ||||
| @ -23,7 +24,7 @@ | ||||
|         { | ||||
|             string url = NavigateUrl(p.Path); | ||||
|             <li class="nav-item px-3"> | ||||
|                 <NavLink class="nav-link" href="@url" Match="NavLinkMatch.All"> | ||||
|                 <NavLink @key="@p.PageId" class="nav-link" href="@url" Match="NavLinkMatch.All"> | ||||
|                     <span class="oi @p.Icon" aria-hidden="true"></span> @p.Name | ||||
|                 </NavLink> | ||||
|             </li> | ||||
| @ -41,7 +42,7 @@ | ||||
|         if (PageState.Pages.Where(item => item.ParentId == PageState.Page.PageId).FirstOrDefault() == null) | ||||
|         { | ||||
|             // display list of pages which have same parent as current page | ||||
|             pages = PageState.Pages.Where(item => item.ParentId == PageState.Page.ParentId).ToList(); | ||||
|             pages = PageState.Pages.Where(item => item.ParentId == PageState.Page.ParentId).OrderBy(item => item.Order).ToList(); | ||||
|             // if current page has parent | ||||
|             if (PageState.Page.ParentId != null) | ||||
|             { | ||||
| @ -51,7 +52,7 @@ | ||||
|         else | ||||
|         { | ||||
|             // display list of pages which are children of current page | ||||
|             pages = PageState.Pages.Where(item => item.ParentId == PageState.Page.PageId).ToList(); | ||||
|             pages = PageState.Pages.Where(item => item.ParentId == PageState.Page.PageId).OrderBy(item => item.Order).ToList(); | ||||
|             // current page is parent | ||||
|             parent = PageState.Pages.Where(item => item.ParentId == PageState.Page.ParentId).FirstOrDefault(); | ||||
|         } | ||||
|  | ||||
							
								
								
									
										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>"; | ||||
|     } | ||||
| } | ||||
| @ -3,6 +3,7 @@ | ||||
| @using Oqtane.Models | ||||
| @using Oqtane.Shared | ||||
| @using Oqtane.Security | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ContainerBase | ||||
| @inject IUriHelper UriHelper | ||||
| @inject IUserService UserService | ||||
| @ -82,7 +83,7 @@ | ||||
|                     await PageModuleService.UpdatePageModuleOrderAsync(pagemodule.PageId, pagemodule.Pane); | ||||
|                     break; | ||||
|                 case ">>": | ||||
|                     pagemodule.Order = ModuleState.PaneModuleCount * 2; | ||||
|                     pagemodule.Order = int.MaxValue; | ||||
|                     await PageModuleService.UpdatePageModuleAsync(pagemodule); | ||||
|                     await PageModuleService.UpdatePageModuleOrderAsync(pagemodule.PageId, pagemodule.Pane); | ||||
|                     break; | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| @using Oqtane.Themes | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ContainerBase | ||||
|  | ||||
| @title | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| @using Oqtane.Themes | ||||
| @namespace Oqtane.Themes.Controls | ||||
| @inherits ThemeObjectBase | ||||
| @inject IUriHelper UriHelper | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker