Exemple #1
0
        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>");
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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>");
        }