private string GetTopMenuSitesHtml() { var siteIdList = AuthRequest.AdminPermissions.SiteIdList; if (siteIdList.Count == 0) { return(string.Empty); } //操作者拥有的站点列表 var mySystemInfoList = new List <SiteInfo>(); var parentWithChildren = new Dictionary <int, List <SiteInfo> >(); if (AuthRequest.AdminPermissions.IsSystemAdministrator) { foreach (var siteId in siteIdList) { AddToMySystemInfoList(mySystemInfoList, parentWithChildren, siteId); } } else { var permissionSiteIdList = AuthRequest.AdminPermissions.SiteIdList; var permissionChannelIdList = AuthRequest.AdminPermissions.ChannelPermissionChannelIdList; foreach (var siteId in siteIdList) { var showSite = IsShowSite(siteId, permissionSiteIdList, permissionChannelIdList); if (showSite) { AddToMySystemInfoList(mySystemInfoList, parentWithChildren, siteId); } } } var builder = new StringBuilder(); if (_hqSiteInfo != null || mySystemInfoList.Count > 0) { if (_hqSiteInfo != null) { AddSite(builder, _hqSiteInfo, parentWithChildren, 0); } if (mySystemInfoList.Count > 0) { var count = 0; foreach (var siteInfo in mySystemInfoList) { if (siteInfo.IsRoot == false) { count++; AddSite(builder, siteInfo, parentWithChildren, 0); } if (count == 13) { builder.Append( $@"<li><a href=""javascript:;"" onclick=""{ModalSiteSelect.GetOpenLayerString(SiteId)}"">列出全部站点...</a></li>"); break; } } } } var clazz = "has-submenu"; var menuText = "站点管理"; if (_siteInfo != null && _siteInfo.Id > 0) { clazz = "has-submenu active"; menuText = _siteInfo.SiteName; if (_siteInfo.ParentId > 0) { menuText += $" ({SiteManager.GetSiteLevel(_siteInfo.Id) + 1}级)"; } } return($@"<li class=""{clazz}""> <a href=""javascript:;"">{menuText}</a> <ul class=""submenu""> {builder} </ul> </li>"); }
private static List <Tab> GetTopMenus(SiteInfo siteInfo, bool isSuperAdmin, List <int> siteIdListLatestAccessed, List <int> siteIdListWithPermissions, List <string> permissionList) { var menus = new List <Tab>(); if (siteInfo != null && siteIdListWithPermissions.Contains(siteInfo.Id)) { var siteMenus = new List <Tab>(); if (siteIdListWithPermissions.Count == 1) { menus.Add(new Tab { Text = siteInfo.SiteName, Children = siteMenus.ToArray() }); } else { var siteIdList = AdminManager.GetLatestTop10SiteIdList(siteIdListLatestAccessed, siteIdListWithPermissions); foreach (var siteId in siteIdList) { var site = SiteManager.GetSiteInfo(siteId); if (site == null) { continue; } siteMenus.Add(new Tab { Href = PageUtils.GetMainUrl(site.Id), Target = "_top", Text = site.SiteName }); } siteMenus.Add(new Tab { Href = ModalSiteSelect.GetRedirectUrl(siteInfo.Id), Target = "_layer", Text = "全部站点..." }); menus.Add(new Tab { Text = siteInfo.SiteName, Href = ModalSiteSelect.GetRedirectUrl(siteInfo.Id), Target = "_layer", Children = siteMenus.ToArray() }); } var linkMenus = new List <Tab> { new Tab { Href = PageUtility.GetSiteUrl(siteInfo, false), Target = "_blank", Text = "访问站点" }, new Tab { Href = ApiRoutePreview.GetSiteUrl(siteInfo.Id), Target = "_blank", Text = "预览站点" } }; menus.Add(new Tab { Text = "站点链接", Children = linkMenus.ToArray() }); } if (isSuperAdmin) { foreach (var tab in TabManager.GetTopMenuTabs()) { var tabs = TabManager.GetTabList(tab.Id, 0); tab.Children = tabs.ToArray(); menus.Add(tab); } } else { foreach (var tab in TabManager.GetTopMenuTabs()) { if (!TabManager.IsValid(tab, permissionList)) { continue; } var tabToAdd = new Tab { Id = tab.Id, Name = tab.Name, Text = tab.Text, Target = tab.Target, Href = tab.Href }; var tabs = TabManager.GetTabList(tab.Id, 0); var tabsToAdd = new List <Tab>(); foreach (var menu in tabs) { if (!TabManager.IsValid(menu, permissionList)) { continue; } Tab[] children = null; if (menu.Children != null) { children = menu.Children.Where(child => TabManager.IsValid(child, permissionList)) .ToArray(); } var menuToAdd = new Tab { Id = menu.Id, Name = menu.Name, Text = menu.Text, Target = menu.Target, Href = menu.Href, Children = children }; tabsToAdd.Add(menuToAdd); } tabToAdd.Children = tabsToAdd.ToArray(); menus.Add(tabToAdd); } } return(menus); }
private static List <Tab> GetTopMenus(SiteInfo siteInfo, bool isSuperAdmin, List <int> siteIdListLatestAccessed, List <int> siteIdListWithPermissions) { var menus = new List <Tab>(); if (siteInfo != null && siteIdListWithPermissions.Contains(siteInfo.Id)) { var siteMenus = new List <Tab>(); if (siteIdListWithPermissions.Count == 1) { menus.Add(new Tab { Text = siteInfo.SiteName, Children = siteMenus.ToArray() }); } else { var siteIdList = AdminManager.GetLatestTop10SiteIdList(siteIdListLatestAccessed, siteIdListWithPermissions); foreach (var siteId in siteIdList) { var site = SiteManager.GetSiteInfo(siteId); if (site == null) { continue; } siteMenus.Add(new Tab { Href = PageUtils.GetMainUrl(site.Id), Target = "_top", Text = site.SiteName }); } siteMenus.Add(new Tab { Href = ModalSiteSelect.GetRedirectUrl(siteInfo.Id), Target = "_layer", Text = "全部站点..." }); menus.Add(new Tab { Text = siteInfo.SiteName, Href = ModalSiteSelect.GetRedirectUrl(siteInfo.Id), Target = "_layer", Children = siteMenus.ToArray() }); } var linkMenus = new List <Tab> { new Tab { Href = PageUtility.GetSiteUrl(siteInfo, false), Target = "_blank", Text = "访问站点" }, new Tab { Href = ApiRoutePreview.GetSiteUrl(siteInfo), Target = "_blank", Text = "预览站点" } }; menus.Add(new Tab { Text = "站点链接", Children = linkMenus.ToArray() }); } if (isSuperAdmin) { foreach (var tab in TabManager.GetTopMenuTabs()) { var tabs = TabManager.GetTabList(tab.Id, 0); tab.Children = tabs.ToArray(); menus.Add(tab); } } return(menus); }
private static string GetTopMenuSitesHtml(PermissionsImpl permissions, List <SiteInfo> siteInfoList, SiteInfo rootSiteInfo, List <int> addedSiteIdList, SiteInfo currentSiteInfo) { if (siteInfoList.Count == 0) { return(string.Empty); } //操作者拥有的站点列表 var mySiteInfoList = new List <SiteInfo>(); var parentWithChildren = new Dictionary <int, List <SiteInfo> >(); if (permissions.IsSystemAdministrator) { foreach (var siteInfo in siteInfoList) { AddToMySiteInfoList(mySiteInfoList, siteInfo, parentWithChildren); } } else { var permissionChannelIdList = permissions.ChannelPermissionChannelIdList; foreach (var siteInfo in siteInfoList) { var showSite = IsShowSite(siteInfo.Id, permissionChannelIdList); if (showSite) { AddToMySiteInfoList(mySiteInfoList, siteInfo, parentWithChildren); } } } var builder = new StringBuilder(); if (rootSiteInfo != null || mySiteInfoList.Count > 0) { if (rootSiteInfo != null) { AddSite(builder, rootSiteInfo, parentWithChildren, 0, addedSiteIdList, currentSiteInfo); } if (mySiteInfoList.Count > 0) { var count = 0; var list = mySiteInfoList.OrderByDescending(o => o.Taxis).ToList(); foreach (var siteInfo in list) { if (siteInfo.IsRoot == false) { count++; AddSite(builder, siteInfo, parentWithChildren, 0, addedSiteIdList, currentSiteInfo); } if (count == 13) { break; } } builder.Append( $@"<li><a href=""javascript:;"" onclick=""{ModalSiteSelect.GetOpenLayerString(currentSiteInfo.Id)}"">全部站点...</a></li>"); } } var clazz = "has-submenu"; var menuText = "站点管理"; if (currentSiteInfo != null && currentSiteInfo.Id > 0) { clazz = "has-submenu active"; menuText = currentSiteInfo.SiteName; if (currentSiteInfo.ParentId > 0) { menuText += $" ({SiteManager.GetSiteLevel(currentSiteInfo.Id) + 1}级)"; } } return($@"<li class=""{clazz}""> <a href=""javascript:;"">{menuText}</a> <ul class=""submenu""> {builder} </ul> </li>"); }