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); }
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); }
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]); } }
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; }