public static void Populate(CommandProperties commandProperties) { _resources = (Dictionary<string, string>)Script.Literal("window.top._quickNav__resources"); _userPriviledgeNames = (Dictionary<string, string>)Script.Literal("window.top._quickNav__userPriviledgeNames"); _siteMap = (SiteMap)Script.Literal("window.top._quickNav__siteMap"); uniquePrefix = "dev1_" + DateTime.Now.GetTime().ToString() + "|"; bool isOnForm = (Page.Ui != null); LoadResources(); RibbonMenu quickNav = new RibbonMenu("dev1.QuickNav"); RibbonMenuSection topSection = new RibbonMenuSection("dev1.SiteMapMenuSection", "", 2, RibbonDisplayMode.Menu16); quickNav.AddSection(topSection); // Only show Sitemap in web client if (Page.Context.Client.GetClient() == ClientType.Web) { if (isOnForm) { RibbonFlyoutAnchor siteMapMenuFlyout = new RibbonFlyoutAnchor(uniquePrefix + "SiteMapButton", 1, ReplaceResourceToken("$Site_Map"), "Mscrm.Enabled", "/_imgs/FormEditorRibbon/Subgrid_16.png", null); topSection.AddButton((RibbonButton)(object)siteMapMenuFlyout); siteMapMenuFlyout.Menu = new RibbonMenu("dev1.SiteMapButton.Menu"); RibbonMenuSection siteMapMenuFlyoutSection = new RibbonMenuSection(uniquePrefix + "SiteMapButton.Menu.Section", "", 1, RibbonDisplayMode.Menu16); siteMapMenuFlyout.Menu.AddSection(siteMapMenuFlyoutSection); GetSiteMap(siteMapMenuFlyoutSection); } else GetSiteMap(topSection); } // Add Advanced Find RibbonButton advFind = new RibbonButton("dev1.OpenAdvancedFind.Button", 1, ReplaceResourceToken("$Advanced_Find"), "dev1.OpenAdvancedFind", "/_imgs/ribbon/AdvancedFind_16.png", null); topSection.AddButton(advFind); GetFormTabs(quickNav); GetFormNav(quickNav); commandProperties.PopulationXML = quickNav.SerialiseToRibbonXml(); // Store for next time Script.Literal("window.top._quickNav__resources={0}",_resources); Script.Literal("window.top._quickNav__userPriviledgeNames={0}",_userPriviledgeNames); Script.Literal("window.top._quickNav__siteMap={0}",_siteMap); }
private static void GetFormNav(RibbonMenu quickNav) { SELECT_NAV_COMMAND_PREFIX = uniquePrefix + "QuickNav.Nav"; if (Page.Ui != null && Page.Ui.Navigation != null) { RibbonMenuSection navSection = new RibbonMenuSection(uniquePrefix + "QuickNav.Nav", "Related", 1, RibbonDisplayMode.Menu16); quickNav.AddSection(navSection); int i = 0; Page.Ui.Navigation.Items.ForEach(delegate(NavigationItem nav, int index) { RibbonButton button = new RibbonButton(SELECT_NAV_COMMAND_PREFIX + nav.GetId(), i, nav.GetLabel(), "dev1.QuickNav.SelectNav", "/_imgs/FormEditorRibbon/Subgrid_16.png", ""); navSection.AddButton(button); i++; return true; }); } }
private static void GetFormTabs(RibbonMenu quickNav) { SELECT_TAB_COMMAND_PREFIX = uniquePrefix + "QuickNav.Tabs."; if (Page.Ui!=null && Page.Ui.FormSelector != null) { FormSelectorItem form = Page.Ui.FormSelector.GetCurrentItem(); string formSectionName = "Form"; if (form != null) { formSectionName = form.GetLabel(); } RibbonMenuSection tabsSection = new RibbonMenuSection(uniquePrefix + "QuickNav.Tabs", formSectionName, 1, RibbonDisplayMode.Menu16); quickNav.AddSection(tabsSection); int i = 0; // Get the tabs and sections on the form Page.Ui.Tabs.ForEach(delegate(TabItem tab, int index) { RibbonButton button = new RibbonButton(SELECT_TAB_COMMAND_PREFIX + tab.GetName(), i, tab.GetLabel(), "dev1.QuickNav.SelectTab", "/_imgs/FormEditorRibbon/Subgrid_16.png", ""); tabsSection.AddButton(button); i++; return true; }); } }