Example #1
0
        protected override void OnPreRender(EventArgs e)
        {
            SPRibbon ribbon = SPRibbon.GetCurrent(this);
            if (ribbon != null)
            {
                ribbon.CommandUIVisible = true;
                ribbon.MakeTabAvailable("Ribbon.Tabs.MyCustomTab");
                ribbon.InitialTabId = "Ribbon.Tabs.MyCustomTab";
                ribbon.Minimized = false;
                ribbon.CommandUIVisible = true;
                ribbon.ServerRendered = true;

                SPRibbonScriptManager manager = new SPRibbonScriptManager();
                List<IRibbonCommand> commands = new List<IRibbonCommand>();
                commands.Add(new SPRibbonCommand("MyCustomTab", ""));
                commands.Add(new SPRibbonCommand("MyCustomTabActions", ""));
                commands.Add(new SPRibbonCommand("MyCustomSave", "alert(commandId)"));
                
                manager.RegisterGetCommandsFunction(this, "getGlobalCommands", commands);
                manager.RegisterCommandEnabledFunction(this, "commandEnabled", commands);
                manager.RegisterHandleCommandFunction(this, "handleCommand", commands);

                ScriptLink.RegisterScriptAfterUI(this.Page, "CUI.js", false, true);
                ScriptLink.RegisterScriptAfterUI(this.Page, "SP.Ribbon.js", false, true);
                ScriptLink.RegisterScriptAfterUI(this.Page, "/_layouts/15/SharePoint.TestLab.Ribbon/MyCustomRibbon.js", false, true);

                //string script = "<script type=\"text/javascript\" defer=\"true\"> //<![CDATA[ \r\n function InitPageComponent(){SP.Ribbon.UsageReportPageComponent.initialize();} \r\n SP.SOD.executeOrDelayUntilScriptLoaded(InitPageComponent, \"SP.Ribbon.js\" ); \r\n //]]\r\n </script>";
                String script = "<script type=\"text/javascript\" defer=\"true\"> //<![CDATA[ \r\n function InitPageComponent() { MyCustom.Ribbon.RibbonComponent.get_instance().registerWithPageManager()} \r\n SP.SOD.executeOrDelayUntilScriptLoaded(InitPageComponent, \"SP.UI.MyCustomRibbon.debug.js\"); \r\n //]]\r\n</script>";
                this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "InitPageComponent", script, false);
            }
            base.OnPreRender(e);
        }
        protected override void OnPreRender(EventArgs e)
        {
            var list     = SPContext.Current.List;
            var listName = list != null ? list.Title : string.Empty;

            string viewName;
            var    viewContext = SPContext.Current.ViewContext;

            if (viewContext != null && viewContext.View != null)
            {
                viewName = viewContext.View.Title;
            }
            else
            {
                viewName = string.Empty;
            }

            ribbon         = SPRibbon.GetCurrent(Page);
            ribbonCommands = new List <IRibbonCommand>();

            RegisterRibbonExtension(SPContext.Current.Web, listName, viewName);

            if (isRegistedRibbons)
            {
                // Register required scripts
                ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);

                // Register custom page component to handle custom ribbon commands
                if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
                {
                    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                                RibbonCustomizationScript, true);
                }

                // Register custom ribbon commands
                var ribbonScriptManager = new SPRibbonScriptManager();
                ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", ribbonCommands);
                ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", ribbonCommands);
                ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", ribbonCommands);
            }

            base.OnPreRender(e);
        }
Example #3
0
        public static void AddRibbonButtonsToPage(List <ListMetadataAction> ribbonBtns, Page page)
        {
            // Gets the current instance of the ribbon on the page.
            SPRibbon    ribbon           = SPRibbon.GetCurrent(page);
            XmlDocument ribbonExtensions = new XmlDocument();

            //Load the contextual tab XML and register the ribbon.
            ribbonExtensions.LoadXml(string.Format(Constants.Ribbon.VIEW_TAB_TEMPLATE,
                                                   string.Join("", ribbonBtns.Select(b => b.GetButtonAsXml()))));
            ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.Tabs._children");
            //Load the custom templates and register the ribbon.
            ribbonExtensions.LoadXml(Constants.Ribbon.CONTEXTUAL_TAB_TEMPLATE);
            ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.Templates._children");

            ribbon.Minimized        = false;
            ribbon.CommandUIVisible = true;
            const string initialTabId = "Ribbon.RosterTab";

            if (!ribbon.IsTabAvailable(initialTabId))
            {
                ribbon.MakeTabAvailable(initialTabId);
            }
            ribbon.InitialTabId = initialTabId;

            // REGISTER COMMANDS
            var commands = new List <IRibbonCommand>();

            // register the command at the ribbon. Include the callback to the server to generate the xml
            ribbonBtns.ToList().ForEach(b => {
                commands.Add(new SPRibbonCommand(b.GetCommandName(), b.Command, "true"));
            });

            //Register initialize function
            var manager    = new SPRibbonScriptManager();
            var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);

            methodInfo.Invoke(manager, new object[] {
                page, "InitPageComponent", "/_layouts/15/Roster.Presentation/js/PageComponent.js", false, "Roster.PageComponent.initialize()"
            });

            // Register ribbon scripts
            manager.RegisterGetCommandsFunction(page, "getGlobalCommands", commands);
            manager.RegisterCommandEnabledFunction(page, "commandEnabled", commands);
            manager.RegisterHandleCommandFunction(page, "handleCommand", commands);
        }
Example #4
0
        /// <summary>
        /// Builds and adds the custom ribbon menu objects
        /// </summary>
        protected virtual void AddTabEvents()
        {
            try {
                // Register javascript ribbon commands with
                // RibbonCommands.Add()
                // before running this method

                // Register initialize function
                var manager    = new SPRibbonScriptManager();
                var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);
                methodInfo.Invoke(manager, new object[] {
                    Page, "InitPageComponent", "/_layouts/15/spa/scripts/PageComponent.js", false, "SPA.PageComponent.initialize()"
                });

                // Register ribbon scripts
                manager.RegisterGetCommandsFunction(Page, "getGlobalCommands", RibbonCommands);
                manager.RegisterCommandEnabledFunction(Page, "commandEnabled", RibbonCommands);
                manager.RegisterHandleCommandFunction(Page, "handleCommand", RibbonCommands);
            } catch (Exception ex) {
                SPA.Error.WriteError(ex);
            }
        }
Example #5
0
        /// <summary>
        ///   Register the required script for the ribbon extension
        /// </summary>
        protected void RegisterRibbonScript()
        {
            // Register required scripts
            ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);

            // Register custom page component to handle custom ribbon commands
            if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
            {
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                            RibbonCustomizationScript, true);
            }

            // Register custom ribbon commands
            var ribbonScriptManager = new SPRibbonScriptManager();

            ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", RibbonCommands);
            ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", RibbonCommands);
            ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", RibbonCommands);
        }
Example #6
0
        /// <summary>
        ///   Register the required script for the ribbon extension
        /// </summary>
        protected void RegisterRibbonScript()
        {
            // Register required scripts
            Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
            Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
            Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
            Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);


            string commandString = "";

            foreach (var ribbonCommands in RibbonCommands)
            {
                if (commandString != "")
                {
                    commandString += ",";
                }
                commandString += "'" + ribbonCommands.Id + "'";
            }

            string temp = string.Format("[{0}]", commandString);

            // Register custom page component to handle custom ribbon commands

            if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
            {
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                            RibbonCustomizationScript.Replace("getGlobalCommandsTemplate", temp), true);
            }

            // Register custom ribbon commands
            var ribbonScriptManager = new SPRibbonScriptManager();

            ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", RibbonCommands);
            ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", RibbonCommands);
            ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", RibbonCommands);
        }
Example #7
0
        private void AddTabEvents()
        {
            var commands = new List <IRibbonCommand>();

            // register the command at the ribbon. Include the callback to the server     // to generate the xml
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.SaveCloseButton", "SaveAndClose();", "EnableDisableSaveButton()"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.CloseButton", "Close();", "true"));

            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.ShowPool", "ShowPool();", "bCanEditTeam"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.AddResource", "AddResourcePool();", "CanAddResource()"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.AddResColumns", "AddResColumns();", "isResPoolShowing()"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.AddTeamColumns", "AddTeamColumns();", "true"));

            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.Assignments", "Assignments();", "true"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.DisplayReports", "", "true"));

            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.AddToTeam", "AddResource()", "true"));
            commands.Add(new SPRibbonCommand("Ribbon.BuildTeam.RemoveFromTeam", "RemoveResource()", "true"));

            //Register initialize function
            var manager    = new SPRibbonScriptManager();
            var methodInfo = typeof(SPRibbonScriptManager).GetMethod(
                "RegisterInitializeFunction",
                BindingFlags.Instance | BindingFlags.NonPublic);

            methodInfo.Invoke(manager, new object[] {
                Page, "InitPageComponent",
                "/_layouts/epmlive/BuildTeamPageComponent.js", false,
                "BuildTeamPageComponent.PageComponent.initialize()"
            });

            // Register ribbon scripts
            manager.RegisterGetCommandsFunction(Page, "getGlobalCommands", commands);
            manager.RegisterCommandEnabledFunction(Page, "commandEnabled", commands);
            manager.RegisterHandleCommandFunction(Page, "handleCommand", commands);
        }
        protected override void OnPreRender(EventArgs e)
        {
            var list     = SPContext.Current.List;
            var listName = list != null ? list.Title : string.Empty;

            string viewName;
            var    viewContext = SPContext.Current.ViewContext;

            if (viewContext != null && viewContext.View != null)
            {
                viewName = viewContext.View.Title;
            }
            else
            {
                viewName = string.Empty;
            }

            ribbon = SPRibbon.GetCurrent(Page);
            //ribbonCommands = new List<IRibbonCommand>();

            RegisterRibbonExtension(SPContext.Current.Web, listName, viewName);

            //if (isRegistedRibbons)
            //{
            ////Fix error Ribbon is disabled
            // Register required scripts
            //Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
            //Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
            //Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
            //Microsoft.SharePoint.WebControls.ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);

            string commandString = "";

            foreach (var ribbonCommand in RibbonCommands)
            {
                if (commandString != "")
                {
                    commandString += ",";
                }
                commandString += "'" + ribbonCommand.Id + "'";
            }

            string temp = string.Format("return [{0}]", commandString);

            // Register custom page component to handle custom ribbon commands

            if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
            {
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                            RibbonCustomizationScript.Replace("getGlobalCommandsTemplate", temp), true);
            }

            // Register custom ribbon commands
            var ribbonScriptManager = new SPRibbonScriptManager();

            ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", RibbonCommands);
            ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", RibbonCommands);
            ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", RibbonCommands);
            //}

            base.OnPreRender(e);
        }
Example #9
0
        /*
         * protected void Page_Load(object sender, EventArgs e)
         * {
         *  try
         *  {
         *      HtmlGenericControl body = this.Master.FindControl("body") as HtmlGenericControl;
         *      if (body != null)
         *      {
         *          body.Attributes.Add("onload", "if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();");
         *      }
         *  }
         *  catch { };
         * }
         */

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            //EnsureChildControls();
            SPRibbon current = SPRibbon.GetCurrent(this.Page);

            if ((current != null) && HttpContext.Current.User.Identity.IsAuthenticated)
            {
                if (wpsc == null)
                {
                    wpsc = new WebPageStateControl();
                    this.Page.Controls.Add(wpsc);
                }

                WebPageSetHomePageHandler homepage = new WebPageSetHomePageHandler(wpsc);
                this.Controls.Add(homepage);

                ContentRibbon content = new ContentRibbon(wpsc);
                this.Controls.Add(content);

                DesignRibbon design = new DesignRibbon(wpsc);
                this.Controls.Add(design);

                CssRegistration.Register("/_layouts/Hemrika/WebSitePage/Hemrika.SharePresence.WebSite.css");

                TransformDialog();
                var manager    = new SPRibbonScriptManager();
                var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);
                methodInfo.Invoke(manager, new object[] { Page, "InitPageComponent", "/_layouts/Hemrika/WebSitePage/Hemrika.SharePresence.WebSite.Page.js", false, "Hemrika.SharePresence.WebSite.Page.PageComponent.initialize()" });

                current.CommandUIVisible = true;
                current.CheckForInitializationReadiness = true;
                current.MakeTabAvailable("Ribbon.Read", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.EditingTools", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.Page", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.Content", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.Design", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.SEO", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.Analytics", "WSSPageStateVisibilityContext");
                current.MakeTabAvailable("Ribbon.Hemrika.SharePresence.Settings", "WSSPageStateVisibilityContext");
                current.EnableVisibilityContext("WSSPageStateVisibilityContext");
                //current.DisableVisibilityContext("WSSWebPartPage");
                //Allow Browse button for visibility
                //current.TrimById(SPRibbon.ReadTabId);
                current.TrimById("Ribbon.WebPartPage", "WSSWebPartPage");
                current.TrimById("Ribbon.WikiPageTab", "WSSPageStateVisibilityContext");
                current.TrimById("Ribbon.EditingTools.CPEditTab.Layout.PageLayout", "WSSPageStateVisibilityContext");
                current.TrimById("Ribbon.WebPartInsert", "WSSPageStateVisibilityContext");
                current.TrimById("Ribbon.WebPartInsert.Tab", "WSSPageStateVisibilityContext");

                current.CommandUIVisible = true;
                //RegisterWebSitePage(this);

                //AlohaEditor(this);
            }
            else
            {
                EnsureChildControls();

                ScriptManager manager = ScriptManager.GetCurrent(Page);
                manager.LoadScriptsBeforeUI       = false;
                manager.AllowCustomErrorsRedirect = true;
                manager.ScriptMode = ScriptMode.Release;
                //Remove WPSC script block
                this.Page.ClientScript.RegisterStartupScript(typeof(SPWebPartManager), "WPSCScriptBlock", string.Empty);
            }

            //BlogConnector();
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            SPRibbon ribbon = SPRibbon.GetCurrent(this.Page);

            //Prepares an XmlDocument object used to load the ribbon
            XmlDocument ribbonExtensions = new XmlDocument();

            //WorkPlanner Tab
            ribbonExtensions.LoadXml(Properties.Resources.txtMyTimesheetWork_Ribbon);
            ribbon.RegisterDataExtension(ribbonExtensions.FirstChild,
                                         "Ribbon.Tabs._children");

            ribbonExtensions.LoadXml(Properties.Resources.txtMyTimesheetWork_ViewRibbon);
            ribbon.RegisterDataExtension(ribbonExtensions.FirstChild,
                                         "Ribbon.Tabs._children");

            ribbonExtensions.LoadXml(Properties.Resources.txtMyTimesheet_Template);
            ribbon.RegisterDataExtension(ribbonExtensions.FirstChild,
                                         "Ribbon.Templates._children");

            ribbon.Minimized        = false;
            ribbon.CommandUIVisible = true;
            const string initialTabId = "Ribbon.MyTimesheetWorkTab";

            if (!ribbon.IsTabAvailable(initialTabId))
            {
                ribbon.MakeTabAvailable(initialTabId);
            }

            if (!ribbon.IsTabAvailable("Ribbon.MyTimesheetWorkViewsTab"))
            {
                ribbon.MakeTabAvailable("Ribbon.MyTimesheetWorkViewsTab");
            }

            ribbon.InitialTabId = initialTabId;

            var manager = new SPRibbonScriptManager();

            var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);

            methodInfo.Invoke(manager, new object[] { Page, "InitPageComponent", "/_layouts/epmlive/MyTimesheetWorkContextualTabPageComponent.js", false, "MyTimesheetWorkPageComponent.PageComponent.initialize()" });

            var commands = new List <IRibbonCommand>();

            //commands.Add(new SPRibbonCommand("Ribbon.MyTimesheetWork.AddWork", "alert('d');", "true"));

            manager.RegisterGetCommandsFunction(Page, "getGlobalCommands", commands);
            manager.RegisterCommandEnabledFunction(Page, "commandEnabled", commands);
            manager.RegisterHandleCommandFunction(Page, "handleCommand", commands);
            //if(!ribbon.IsTabAvailable("Ribbon.Project"))
            //    ribbon.MakeTabAvailable("Ribbon.Project");

            //if(!ribbon.IsTabAvailable("Ribbon.WorkViews"))
            //    ribbon.MakeTabAvailable("Ribbon.WorkViews");

            if (Request["nonwork"] == "true")
            {
                ribbon.TrimById("Ribbon.MyTimesheetWorkViews.AllWork");
                ribbon.TrimById("Ribbon.MyTimesheetWork.ActionsGroup.Search");
            }
            else
            {
                bool bDisable = BShowAllWork();
                if (!bDisable)
                {
                    ribbon.TrimById("Ribbon.MyTimesheetWorkViews.AllWork");
                }
            }
        }
        protected override void OnPreRender(EventArgs e)
        {
            try
            {
                if (this.Page == null)
                {
                    return;
                }
                if (SPContext.Current == null)
                {
                    return;
                }

                SPRibbon currentRibbon = SPRibbon.GetCurrent(this.Page);

                WorkBox workBox = null;

                // If we're looking at a modal dialog box then we want to
                // leave workBox == null so that no further action is taken:
                if (Request.QueryString["IsDlg"] == null || Request.QueryString["IsDlg"] != "1")
                {
                    workBox = WorkBox.GetIfWorkBox(SPContext.Current);
                }

                if (workBox != null)
                {
                    //OK so we are looking at a work box.
                    isWorkBox = true;
                    SPWeb workBoxWeb = workBox.Web;

                    if (!currentRibbon.IsTabAvailable("WorkBoxFramework.Ribbon.WorkBox"))
                    {
                        currentRibbon.MakeTabAvailable("WorkBoxFramework.Ribbon.WorkBox");
                    }

                    // Now let's register the commands for the tasks flyout button:
                    // Inspired by blogs:
                    // http://www.sharepointnutsandbolts.com/2010/02/ribbon-customizations-dropdown-controls.html
                    // http://patrickboom.wordpress.com/2010/05/25/adding-a-custom-company-menu-tab-with-dynamic-menu-on-the-ribbon/
                    // http://www.wictorwilen.se/Post/Creating-a-SharePoint-2010-Ribbon-extension-part-2.aspx

                    WBLogging.DEBUG.Monitorable("About to do various for Tasks flyout menu:");

                    ScriptLink.RegisterScriptAfterUI(this.Page, "SP.Core.js", false, false);
                    ScriptLink.RegisterScriptAfterUI(this.Page, "CUI.js", false, false);
                    ScriptLink.RegisterScriptAfterUI(this.Page, "core.js", true, false);
                    ScriptLink.RegisterScriptAfterUI(this.Page, "SP.Ribbon.js", false, false);
                    ScriptLink.RegisterScriptAfterUI(this.Page, "SP.Runtime.js", false, false);
                    ScriptLink.RegisterScriptAfterUI(this.Page, "SP.js", false, false);
                    //ScriptLink.RegisterScriptAfterUI(this.Page, "WorkBoxFramework/PageComponent.js", false, true);

                    var commands = new List <IRibbonCommand>();

                    // register the command at the ribbon. Include the callback to the server to generate the xml
                    commands.Add(new SPRibbonCommand("WorkBoxFramework.Command.PopulateDynamicTasks", "if (wbf_callCount==0) WorkBoxFramework_getDynamicTasksMenu('',''); wbf_callCount++; if (wbf_callCount > 1000) wbf_menuXml = WorkBoxFramework_errorMenuXml('Timeout'); if (wbf_menuXml != '') properties.PopulationXML = wbf_menuXml;"));
                    commands.Add(new SPRibbonCommand("WorkBoxFramework.Command.PopulateDynamicTemplates", "if (wbf_callCount==0) WorkBoxFramework_getDynamicTasksMenu('',''); wbf_callCount++; if (wbf_callCount > 1000) wbf_menu2Xml = WorkBoxFramework_errorMenuXml('Timeout'); if (wbf_menu2Xml != '') properties.PopulationXML = wbf_menu2Xml;"));

                    //                commands.Add(new SPRibbonCommand("PopulateDynamicTasksCommand", "properties.PopulationXML = errorMenuXml();"));
                    //commands.Add(new SPRibbonCommand("PopulateDynamicTasksCommand", "alert('Callaa to Popdyn'); if (menuXml == '') { CreateServerMenu('',''); } else { properties.PopulationXML = menuXml; }"));
                    //                commands.Add(new SPRibbonCommand("PopulateDynamicTasksCommand", "alert('Call to Popdyn: ' + menuXml); properties.PopulationXML = menuXml;"));

                    //Register various:
                    var manager = new SPRibbonScriptManager();

                    // Register ribbon scripts
                    manager.RegisterGetCommandsFunction(Page, "getGlobalCommands", commands);
                    manager.RegisterCommandEnabledFunction(Page, "commandEnabled", commands);
                    manager.RegisterHandleCommandFunction(Page, "handleCommand", commands);

                    WBLogging.DEBUG.Monitorable("Registered ribbon scripts");


                    //Register initialize function
                    var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);
                    methodInfo.Invoke(manager, new object[] { Page, "InitPageComponent", "/_layouts/WorkBoxFramework/PageComponent.js", false, "WorkBoxFramework.PageComponent.initialize()" });


                    // register the client callbacks so that the JavaScript can call the server.
                    ClientScriptManager cm = this.Page.ClientScript;

                    String cbReference    = cm.GetCallbackEventReference(this, "arg", "WorkBoxFramework_receiveTasksMenu", "", "WorkBoxFramework_processCallBackError", false);
                    String callbackScript = "function WorkBoxFramework_getDynamicTasksMenu(arg, context) {" + cbReference + "; }";
                    WBLogging.DEBUG.Monitorable("Creating the call back function WorkBoxFramework_getDynamicTasksMenu to call: \n" + callbackScript);
                    cm.RegisterClientScriptBlock(this.GetType(), "WorkBoxFramework_getDynamicTasksMenu", callbackScript, true);


                    // Now let's check or set the last visited Guid:
                    WBUser      user    = new WBUser(workBox);
                    UserProfile profile = user.Profile;

//                    SPSite _site = SPContext.Current.Site;
//                  SPServiceContext _serviceContext = SPServiceContext.GetContext(_site);
//                UserProfileManager _profileManager = new UserProfileManager(_serviceContext);
//                    UserProfile profile = _profileManager.GetUserProfile(true);

                    scriptForSettingGlobalVariables = makeScriptForSettingWorkBoxVariables(workBox, user, profile);

                    UserProfileValueCollection lastVisitedGuidUserProfileValueCollection = profile[WorkBox.USER_PROFILE_PROPERTY__WORK_BOX_LAST_VISITED_GUID];
                    bool needsUpdating = false;
                    if (lastVisitedGuidUserProfileValueCollection == null || lastVisitedGuidUserProfileValueCollection.Count == 0)
                    {
                        needsUpdating = true;
                    }
                    else
                    {
                        Guid lastGuid = new Guid(lastVisitedGuidUserProfileValueCollection.Value.ToString());

                        if (!lastGuid.Equals(workBoxWeb.ID))
                        {
                            needsUpdating = true;
                        }
                    }

                    if (needsUpdating)
                    {
                        workBoxWeb.AllowUnsafeUpdates = true;

                        string currentGuidString = workBoxWeb.ID.ToString();
                        lastVisitedGuidUserProfileValueCollection.Clear();
                        lastVisitedGuidUserProfileValueCollection.Add(currentGuidString);

                        // OK now we're going to make sure that this work box is the latest on the list of recently visited work boxes:
                        WBLogging.WorkBoxes.Verbose("Updating the list of recently visited work boxes - as we've just come to this work box");
                        UserProfileValueCollection workBoxesRecentlyVisited = profile[WorkBox.USER_PROFILE_PROPERTY__MY_RECENTLY_VISITED_WORK_BOXES];


                        //string mostRecentWorkBoxDetails = workBoxWeb.Title + "|" + workBoxWeb.Url + "|" + workBox.UniqueID + "|" + workBoxWeb.ID.ToString() + "|" + DateTime.Now.Ticks;
                        WBLink mostRecentWorkBoxDetails = new WBLink(workBox, true);
                        WBLogging.WorkBoxes.Verbose("The most recent work box details are: " + mostRecentWorkBoxDetails);

                        List <String> newList = new List <String>();
                        newList.Add(mostRecentWorkBoxDetails.ToString());

                        if (workBoxesRecentlyVisited.Value != null)
                        {
                            string[] recentWorkBoxes = workBoxesRecentlyVisited.Value.ToString().Split(';');
                            int      totalLength     = 0;
                            foreach (string recentWorkBox in recentWorkBoxes)
                            {
                                if (totalLength >= 3000)
                                {
                                    break;
                                }
                                if (!recentWorkBox.Contains(currentGuidString))
                                {
                                    newList.Add(recentWorkBox);
                                    totalLength += recentWorkBox.Length + 1;
                                }
                            }
                        }

                        profile[WorkBox.USER_PROFILE_PROPERTY__MY_RECENTLY_VISITED_WORK_BOXES].Value = WBUtils.JoinUpToLimit(";", newList, 3100);

                        profile.Commit();
                        workBoxWeb.AllowUnsafeUpdates = false;
                    }
                }
                else
                {
                    scriptForSettingGlobalVariables = makeScriptForSettingNonWorkBoxVariables(SPContext.Current.Web);
                    if (currentRibbon.IsTabAvailable("WorkBoxFramework.Ribbon.WorkBox"))
                    {
                        currentRibbon.TrimById("WorkBoxFramework.Ribbon.WorkBox");
                    }
                }

                //          currentRibbon.MakeContextualGroupInitiallyVisible("WorkBoxFramework.Ribbon.ContextualGroup", string.Empty);
            }
            catch (Exception exception)
            {
                // If this isn't working - let's just do nothing so that at least the SharePoint site is visible.
                scriptForSettingGlobalVariables = "<!-- Exception thrown in MaybeShowWorkBoxRibbonTools \n\n" + exception.Message + "\n\n" + exception.StackTrace + "\n\n-->";
            }
        }
Example #12
0
        protected override void OnPreRender(System.EventArgs e)
        {
            SPWeb      Web      = SPContext.Current.Web;
            SPList     List     = SPContext.Current.List;
            SPListItem ListItem = SPContext.Current.ListItem;

            CssRegistration.Register("/_layouts/epmlive/modal/modal.css");
            ScriptLink.Register(Page, "/_layouts/epmlive/modal/modal.js", false);


            SPRibbon ribbon = SPRibbon.GetCurrent(this.Page);

            RegisterArchiveRestoreFormButtons(Web, List, ListItem, ribbon);

            ribbon.TrimById("Ribbon.ListForm.Display.Manage.EditItem");

            XmlDocument ribbonExtensions = new XmlDocument();


            if (NavigationService.LPPFEPermissionCheck(List, SPBasePermissions.EditListItems))
            {
                ribbonExtensions.LoadXml(@"<Button
                    Id=""Ribbon.ListForm.Display.Manage.EditItem2""
                    Sequence=""10""
                    Command=""Ribbon.ListForm.Display.Manage.EditItem2""
                    Image16by16=""/_layouts/" + Web.Language + @"/images/formatmap16x16.png"" Image16by16Top=""-128"" Image16by16Left=""-224""
                    Image32by32=""/_layouts/" + Web.Language + @"/images/formatmap32x32.png"" Image32by32Top=""-128"" Image32by32Left=""-96""
                    LabelText=""Edit Item""
                    TemplateAlias=""o1""/>");

                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
            }

            if (!NavigationService.LPPFEPermissionCheck(List, SPBasePermissions.DeleteListItems))
            {
                ribbon.TrimById("Ribbon.ListForm.Display.Manage.DeleteItem");
            }

            EPMLiveCore.GridGanttSettings gSettings = API.ListCommands.GetGridGanttSettings(List);

            ArrayList arrAssoc = API.ListCommands.GetAssociatedLists(List);

            if (gSettings.AssociatedItems)
            {
                StringBuilder sbLists = new StringBuilder();

                foreach (EPMLiveCore.API.AssociatedListInfo ali in arrAssoc)
                {
                    //sbLists.Append("<Button Id=\"Ribbon.ListForm.Display.Manage.LinkedItemsButton\" Sequence=\"20\" Command=\"");
                    sbLists.Append("<Button Sequence=\"20\" Command=\"");
                    sbLists.Append("Ribbon.ListForm.Display.Associated.LinkedItemsButton");
                    sbLists.Append("\" Id=\"Ribbon.ListForm.Display.Associated.");
                    sbLists.Append(HttpUtility.HtmlEncode(ali.Title));
                    sbLists.Append(".");
                    sbLists.Append(ali.LinkedField);
                    sbLists.Append("\" LabelText=\"");
                    sbLists.Append(HttpUtility.HtmlEncode(ali.Title));
                    sbLists.Append("\" TemplateAlias=\"o1\" Image16by16=\"");
                    sbLists.Append(ali.icon);
                    sbLists.Append("\"/>");
                }


                if (sbLists.Length > 0)
                {
                    StringBuilder sbLinkedItems = new StringBuilder();

                    sbLinkedItems.Append("<Group Id=\"Ribbon.ListForm.Display.Associated\" Sequence=\"41\" Command=\"Ribbon.ListForm.Display.Associated.LinkedItems\" Description=\"\" Title=\"Associated Items\" Template=\"Ribbon.Templates.Flexible2\">");
                    sbLinkedItems.Append("<Controls Id=\"Ribbon.ListForm.Display.Associated.Controls\">");

                    sbLinkedItems.Append(sbLists);

                    sbLinkedItems.Append("</Controls>");
                    sbLinkedItems.Append("</Group>");

                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml(sbLinkedItems.ToString());
                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Groups._children");

                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml("<MaxSize Id=\"Ribbon.ListForm.Display.Associated.MaxSize\" Sequence=\"10\" GroupId=\"Ribbon.ListForm.Display.Associated\" Size=\"MediumMedium\" />");
                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Scaling._children");



                    //StringBuilder sbLinkedItems = new StringBuilder();
                    //sbLinkedItems.Append("<FlyoutAnchor Id=\"Ribbon.ListForm.Display.Manage.LinkedItems\" Sequence=\"39\" Command=\"");
                    //sbLinkedItems.Append("Ribbon.ListForm.Display.Manage.LinkedItems");
                    //sbLinkedItems.Append("\" Image32by32=\"/_layouts/epmlive/images/linkeditems.gif\" LabelText=\"Associated Items\" TemplateAlias=\"o1\">");
                    //sbLinkedItems.Append("<Menu Id=\"Ribbon.List.EPMLive.LinkedItems.Menu\">");
                    //sbLinkedItems.Append("<MenuSection Id=\"Ribbon.List.EPMLive.LinkedItems.Menu.Scope\" Sequence=\"10\" DisplayMode=\"Menu16\">");
                    //sbLinkedItems.Append("<Controls Id=\"Ribbon.List.EPMLive.LinkedItems.Menu.Scope.Controls\">");
                    //sbLinkedItems.Append(sbLists);
                    //sbLinkedItems.Append("</Controls>");
                    //sbLinkedItems.Append("</MenuSection>");
                    //sbLinkedItems.Append("</Menu>");
                    //sbLinkedItems.Append("</FlyoutAnchor>");


                    //ribbonExtensions.LoadXml(sbLinkedItems.ToString());

                    //ribbon.RegisterDataExtension(ribbonExtensions.FirstChild,
                    //"Ribbon.ListForm.Display.Manage.Controls._children");
                }
            }
            //======================Planner==================

            API.ListPlannerProps p = API.ListCommands.GetListPlannerInfo(List);

            if (p.PlannerV2Menu != "")
            {
                ribbonExtensions.LoadXml(p.PlannerV2Menu.Replace("EPMLivePlanner", "Ribbon.ListForm.Display.Manage.EPMLivePlanner").Replace("TaskPlanner", "Ribbon.ListForm.Display.Manage.TaskPlanner"));

                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild,
                                             "Ribbon.ListForm.Display.Manage.Controls._children");


                //if(bPlanner == 1)
                //{
                //    EPMLiveWorkPlanner.WorkPlannerAPI.PlannerProps props = EPMLiveWorkPlanner.WorkPlannerAPI.getSettings(Web, sPlannerID);
                //    bUseTeam = props.bUseTeam;
                //    ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.BuildTeam\" Sequence=\"41\" Command=\"Ribbon.ListForm.Display.Manage.BuildTeam\" LabelText=\"Build Team\" TemplateAlias=\"o1\" Image32by32=\"/_layouts/epmlive/images/editteam32.gif\"/>");

                //    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
                //}
            }

            //=====================Create Workspace===========

            if (gSettings.EnableRequests)
            {
                string childitem = "";
                try
                {
                    childitem = ListItem["WorkspaceUrl"].ToString();
                }
                catch { }

                if ((ListItem.ModerationInformation == null || ListItem.ModerationInformation.Status == SPModerationStatusType.Approved) && childitem == "")
                {
                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.CreateWorkspace\" Sequence=\"50\" Command=\"Ribbon.ListForm.Display.Manage.CreateWorkspace\" LabelText=\"Create Workspace\" TemplateAlias=\"o2\" Image16by16=\"_layouts/images/epmlivelogosmall.gif\"/>");
                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
                }
            }

            //=====================Favorite

            if (Web.Features[new Guid("046f0200-30e5-4545-b00f-c8c73aef9f0e")] != null)
            {
                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.FavoriteStatus\" Sequence=\"100\" Command=\"Ribbon.ListForm.Display.Actions.Favorite\" LabelText=\"Favorite\" TemplateAlias=\"o1\" Image32by32=\"_layouts/epmlive/images/star32.png\" Image16by16=\"_layouts/epmlive/images/star16.png\"/>");
                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Actions.Controls._children");

                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.FavoriteStatus\" Sequence=\"100\" Command=\"Ribbon.ListForm.Display.Actions.Favorite\" LabelText=\"Favorite\" TemplateAlias=\"o1\" Image32by32=\"_layouts/epmlive/images/star32.png\" Image16by16=\"_layouts/epmlive/images/star16.png\"/>");
                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Edit.Actions.Controls._children");

                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.FavoriteStatus\" Sequence=\"100\" Command=\"Ribbon.ListForm.Display.Actions.Favorite\" LabelText=\"Favorite\" TemplateAlias=\"o1\" Image32by32=\"_layouts/epmlive/images/star32.png\" Image16by16=\"_layouts/epmlive/images/star16.png\"/>");
                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.DocLibListForm.Edit.Actions.Controls._children");
            }

            EPMLiveCore.API.RibbonProperties rp = (EPMLiveCore.API.RibbonProperties)EPMLiveCore.Infrastructure.CacheStore.Current.Get("GR-" + Web.CurrentUser.ID, "GridSettings-" + List.ID, () =>
            {
                return(EPMLiveCore.API.ListCommands.GetRibbonProps(List));
            }).Value;

            //=====================Build Team===========

            try
            {
                if (rp.bBuildTeam)
                {
                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.BuildTeam\" Sequence=\"50\" Command=\"Ribbon.ListForm.Display.Manage.BuildTeam\" LabelText=\"Edit Team\" TemplateAlias=\"o2\" Image16by16=\"_layouts/epmlive/images/buildteam16.gif\"/>");
                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
                }
            }
            catch { }
            //==========Go To Workspace=================

            string workspaceurl = "";

            try
            {
                workspaceurl = ListItem["WorkspaceUrl"].ToString();
            }
            catch { }

            if (workspaceurl != "")
            {
                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml("<Button Id=\"Ribbon.ListItem.EPMLive.GoToWorkspace\" Sequence=\"55\" Command=\"Ribbon.ListForm.Display.Manage.GoToWorkspace\" LabelText=\"Go To Workspace\" TemplateAlias=\"o1\" Image32by32=\"_layouts/images/spgraphic.gif\" Image32by32Top=\"7\" Image32by32Left=\"4\"/>");
                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
            }

            //================EPK===================



            if (rp.aEPKButtons.Contains("costs"))
            {
                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml(@"<Button
                    Id=""Ribbon.ListItem.Manage.EPKCosts""
                    Sequence=""101""
                    Command=""Ribbon.ListForm.Display.Manage.EPKCost""
                    Image32by32=""/_layouts/epmlive/images/editcosts.png""
                    LabelText=""Edit Costs""
                    TemplateAlias=""o1""
                    />");

                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
            }

            if (rp.aEPKButtons.Contains("resplan"))
            {
                if (rp.aEPKActivex.Contains("resplan"))
                {
                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml(@"<Button
                        Id=""Ribbon.ListItem.Manage.EPKResourcePlanner""
                        Sequence=""103""
                        Command=""Ribbon.ListForm.Display.Manage.EPKRP""
                        Image32by32=""/_layouts/epmlive/images/ribbon32.png"" Image32by32Top=""-65""
                        LabelText=""Edit Resource Plan""
                        TemplateAlias=""o1""
                        />");

                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
                }
                else
                {
                    ribbonExtensions = new XmlDocument();
                    ribbonExtensions.LoadXml(@"<Button
                        Id=""Ribbon.ListItem.Manage.EPKResourcePlanner""
                        Sequence=""103""
                        Command=""Ribbon.ListForm.Display.Manage.EPKRPM""
                        Image16by16=""/_layouts/1033/images/formatmap16x16.png"" Image16by16Top=""-64"" Image16by16Left=""-128""
                        LabelText=""Resource Planner""
                        TemplateAlias=""o2""
                        />");

                    ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
                }
            }

            API.Integration.IntegrationCore core = new API.Integration.IntegrationCore(Web.Site.ID, Web.ID);
            string Errors = "";

            int seq = 130;

            var commands = new List <IRibbonCommand>();

            List <EPMLiveIntegration.IntegrationControl> ics = core.GetItemButtons(ListItem.ParentList.ID, ListItem, out Errors);

            foreach (EPMLiveIntegration.IntegrationControl ic in ics)
            {
                ribbonExtensions = new XmlDocument();
                ribbonExtensions.LoadXml(@"<Button
                        Id=""EPMINT." + ic.Control + @"." + (int)ic.Window + @"""
                        Sequence=""" + (seq++).ToString() + @"""
                        Command=""Ribbon.ListForm.Display.Manage.EPMINT""
                        Image32by32=""/_layouts/15/images/" + ic.Image + @"""
                        LabelText=""" + ic.Title + @"""
                        TemplateAlias=""o1""
                        />");

                ribbon.RegisterDataExtension(ribbonExtensions.FirstChild, "Ribbon.ListForm.Display.Manage.Controls._children");
            }



            //===============================================



            // register the command at the ribbon. Include the callback to the server     // to generate the xml
            //commands.Add(new SPRibbonCommand("Ribbon.ListForm.Display.Manage.EditItem2", "alert('test');", "true"));

            var manager = new SPRibbonScriptManager();

            var methodInfo = typeof(SPRibbonScriptManager).GetMethod("RegisterInitializeFunction", BindingFlags.Instance | BindingFlags.NonPublic);



            methodInfo.Invoke(manager, new object[] { Page, "InitPageComponent", "/_layouts/epmlive/WEDispFormPageComponent.js", false, "WEDispFormPageComponent.PageComponent.initialize()" });


            manager.RegisterGetCommandsFunction(Page, "getGlobalCommands", commands);
            manager.RegisterCommandEnabledFunction(Page, "commandEnabled", commands);
            manager.RegisterHandleCommandFunction(Page, "handleCommand", commands);
        }
Example #13
0
        /// <summary>
        ///   Register the required script for the ribbon extension
        /// </summary>
        protected void RegisterRibbonScript()
        {
            // Register required scripts
            ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
            ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);

            // Register custom page component to handle custom ribbon commands
            if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
            {
                Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                            RibbonCustomizationScript, true);
            }

            // Register custom ribbon commands
            var ribbonScriptManager = new SPRibbonScriptManager();
            ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", RibbonCommands);
            ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", RibbonCommands);
            ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", RibbonCommands);
        }
        protected override void OnPreRender(EventArgs e)
        {
            var list = SPContext.Current.List;
            var listName = list != null ? list.Title : string.Empty;

            string viewName;
            var viewContext = SPContext.Current.ViewContext;
            if (viewContext != null && viewContext.View != null)
            {
                viewName = viewContext.View.Title;
            }
            else
            {
                viewName = string.Empty;
            }

            ribbon = SPRibbon.GetCurrent(Page);
            ribbonCommands = new List<IRibbonCommand>();

            RegisterRibbonExtension(SPContext.Current.Web, listName, viewName);

            if (isRegistedRibbons)
            {
                // Register required scripts
                ScriptLink.RegisterScriptAfterUI(Page, "CUI.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.Runtime.js", false, true);
                ScriptLink.RegisterScriptAfterUI(Page, "SP.Ribbon.js", false, true);

                // Register custom page component to handle custom ribbon commands
                if (!Page.ClientScript.IsClientScriptBlockRegistered(Page.GetType(), "Register Ribbon Customization"))
                {
                    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "Register Ribbon Customization",
                                                                RibbonCustomizationScript, true);
                }

                // Register custom ribbon commands
                var ribbonScriptManager = new SPRibbonScriptManager();
                ribbonScriptManager.RegisterGetCommandsFunction(Page, "getGlobalCommands", ribbonCommands);
                ribbonScriptManager.RegisterCommandEnabledFunction(Page, "commandEnabled", ribbonCommands);
                ribbonScriptManager.RegisterHandleCommandFunction(Page, "handleCommand", ribbonCommands);
            }

            base.OnPreRender(e);
        }