Example #1
0
        private NavigationTreeNode CreateDataContract(SiteMapNode sNode)
        {
            NavigationTreeNode navigationTreeNode = null;

            if (sNode != null)
            {
                navigationTreeNode = new NavigationTreeNode(sNode);
                foreach (object obj in sNode.ChildNodes)
                {
                    SiteMapNode        sNode2 = (SiteMapNode)obj;
                    NavigationTreeNode navigationTreeNode2 = this.CreateDataContract(sNode2);
                    if (navigationTreeNode2.HasContentPage)
                    {
                        navigationTreeNode.AddChild(navigationTreeNode2);
                    }
                }
                navigationTreeNode.AggregateHybridRole();
            }
            return(navigationTreeNode);
        }
Example #2
0
        private bool SelectStartPage(NavigationTreeNode node, string startPageUrl, string id)
        {
            bool flag = false;

            if (string.Compare(node.ID, id, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(node.Url, startPageUrl, StringComparison.OrdinalIgnoreCase) == 0)
            {
                flag = string.IsNullOrEmpty(node.HybridRole);
            }
            else
            {
                int i = 0;
                while (i < node.Children.Count)
                {
                    NavigationTreeNode navigationTreeNode = node.Children[i];
                    flag = this.SelectStartPage(navigationTreeNode, startPageUrl, id);
                    if (flag)
                    {
                        node.Selected = i;
                        if (!navigationTreeNode.Children.IsNullOrEmpty())
                        {
                            break;
                        }
                        string text = base.Request.QueryString["q"];
                        if (!string.IsNullOrEmpty(text))
                        {
                            NavigationTreeNode navigationTreeNode2 = navigationTreeNode;
                            navigationTreeNode2.Url = navigationTreeNode2.Url + "?" + text;
                            break;
                        }
                        break;
                    }
                    else
                    {
                        i++;
                    }
                }
            }
            return(flag);
        }
Example #3
0
        protected void UpdateNavZoneHtml(int level)
        {
            if (level == 1 && !this.showAdminFeatures.Value)
            {
                base.Response.Output.Write(string.Format("<div id=\"priNavHeader\"><span>{0}</span></div>", OwaOptionStrings.Options));
            }
            NavigationTreeNode navigationTree = this.navigation.NavigationTree;
            string             format         = _Default.itemFormats[level];
            string             text           = _Default.selectedClasses[level];
            string             text2          = _Default.normalClasses[level];
            NavigationTreeNode selectedNode   = this.GetSelectedNode(level - 1, navigationTree);

            if (selectedNode != null && selectedNode.Children.Count > 0)
            {
                int selected = selectedNode.Selected;
                base.Response.Output.Write(_Default.startFormats[level]);
                for (int i = 0; i < selectedNode.Children.Count; i++)
                {
                    NavigationTreeNode navigationTreeNode = selectedNode.Children[i];
                    if (string.IsNullOrEmpty(navigationTreeNode.HybridRole))
                    {
                        bool   flag  = i == selected;
                        string text3 = flag ? text : text2;
                        string text4 = flag ? "true" : "false";
                        string str   = " " + ((level == 1) ? ClientStrings.PrimaryNavigation : ClientStrings.SecondaryNavigation);
                        base.Response.Output.Write(format, new object[]
                        {
                            navigationTreeNode.ID,
                            text3,
                            navigationTreeNode.Title,
                            text4,
                            navigationTreeNode.Title + str
                        });
                    }
                }
                base.Response.Output.Write(_Default.endFormats[level]);
            }
        }
Example #4
0
        private void InitFeatureSetAndStartPage()
        {
            bool flag = false;
            NavigationTreeNode navigationTree = this.navigation.NavigationTree;

            if (navigationTree != null)
            {
                string text = base.Request.QueryString["p"];
                if (!string.IsNullOrEmpty(text) && text != "helpdesk")
                {
                    flag = this.SelectStartPage(navigationTree, EcpUrl.EcpVDir + text, text);
                    if (flag)
                    {
                        this.showAdminFeatures = new bool?(navigationTree.Children[navigationTree.Selected].ID == "myorg");
                    }
                }
                else
                {
                    this.referrer = base.Request.QueryString["rfr"];
                    if (!string.IsNullOrEmpty(this.referrer))
                    {
                        this.referrer = this.referrer.ToLower();
                        string a;
                        if ((a = this.referrer) != null)
                        {
                            if (!(a == "owa") && !(a == "olk"))
                            {
                                if (a == "admin")
                                {
                                    this.showAdminFeatures = new bool?(true);
                                }
                            }
                            else
                            {
                                this.showAdminFeatures = new bool?(false);
                            }
                        }
                    }
                    if (this.showAdminFeatures == null)
                    {
                        this.showAdminFeatures = new bool?(RbacPrincipal.Current.IsInRole("ControlPanelAdmin"));
                    }
                    flag = this.SelectStartPage(navigationTree, null, this.showAdminFeatures.Value ? "myorg" : "myself");
                }
                if (flag)
                {
                    if (navigationTree.Children[navigationTree.Selected].ID == "myself")
                    {
                        this.Context.ThrowIfViewOptionsWithBEParam(FeatureSet.Options);
                        for (int i = navigationTree.Children.Count - 1; i > 1; i--)
                        {
                            navigationTree.Children.RemoveAt(i);
                        }
                    }
                    else if (navigationTree.Children[0].ID == "myself")
                    {
                        navigationTree.Children.RemoveAt(0);
                        navigationTree.Selected = 0;
                    }
                }
            }
            if (!flag)
            {
                throw new UrlNotFoundOrNoAccessException(Strings.UrlNotFoundOrNoAccessMessage);
            }
            base.FeatureSet            = (this.showAdminFeatures.Value ? FeatureSet.Admin : FeatureSet.Options);
            this.helpControl.InAdminUI = this.showAdminFeatures.Value;
        }