示例#1
0
        private void RegisterListItemTab()
        {
            var lcid = Thread.CurrentThread.CurrentUICulture.LCID;

            var listItemTab = new RibbonTab("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem")
                                  {
                                      Title = LocalizationHelper.GetStringFromCoreResource("cui_TabItems"),
                                      Sequence = 400
                                  };

            var newGroup = new RibbonGroup("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.New")
                               {
                                   Sequence = 10,
                                   Title = LocalizationHelper.GetStringFromCoreResource("cui_GrpNew"),
                                   Image32By32Popup = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                                   Image32By32PopupLeft = -64,
                                   Image32By32PopupTop = -320,
                                   GroupTemplate = RibbonGroupTemplate.Flexible2
                               };
            newGroup.MaxSizes.Add(new RibbonMaxSize("Ribbon.ListItem.Scaling.New.MaxSize")
                                      {Sequence = 10, Group = newGroup, Size = RibbonSize.LargeLarge});
            newGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.New.Popup")
                                    {Sequence = 160, Group = newGroup, Size = RibbonSize.Popup});

            listItemTab.Groups.Add(newGroup);

            RegisterRibbonControls(newGroup);

            RegisterAddListItemControl(newGroup, lcid);

            var btnNewFolder =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.New.Controls.NewFolder")
                    {
                        Sequence = 20,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButNewFolder"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -16,
                        Image16By16Left = -248,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -448,
                        Image32By32Left = -320,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButNewFolder"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButNewListFolder"),
                        TemplateAlias = "c1"
                    };

            if (EnableAddNewItem && List.EnableFolderCreation)
            {
                var command = new StringBuilder();
                command.Append("var options = SP.UI.$create_DialogOptions();");
                command.AppendFormat(
                    "options.url = '{0}/_layouts/listform.aspx?&Type=1&PageType=8&ListId={1}&RootFolder={2}';",
                    Utilities.GetWebUrl(SPContext.Current.Web.Url), List.ID, SPEncode.UrlEncode(Page.Request.QueryString["RootFolder"]));
                command.Append("options.dialogReturnValueCallback = Function.createDelegate(null, function(result, target){if(result == SP.UI.DialogResult.OK){");
                command.AppendFormat("$('#{0}').val('True');", hdfAddNewItem.ClientID);
                command.Append("SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);");
                command.Append("}});");
                command.Append("SP.UI.ModalDialog.showModalDialog(options);");

                var newItemCommand =
                    new SPRibbonCommand("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Commands.NewFolder")
                    {
                        HandlerStatement = command.ToString()
                    };
                btnNewFolder.Command = newItemCommand;
            }

            newGroup.Controls.Add(btnNewFolder);

            var manageGroup =
                new RibbonGroup("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage")
                    {
                        Sequence = 20,
                        Title = LocalizationHelper.GetStringFromCoreResource("GrpManage"),
                        Image32By32Popup = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32PopupLeft = -64,
                        Image32By32PopupTop = -448,
                        GroupTemplate = RibbonGroupTemplate.Flexible2
                    };
            manageGroup.MaxSizes.Add(new RibbonMaxSize("Ribbon.ListItem.Scaling.Manage.MaxSize")
                                         {Sequence = 10, Group = manageGroup, Size = RibbonSize.LargeMedium});
            manageGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.Manage.LargeSmall")
                                       {Group = manageGroup, Sequence = 100, Size = RibbonSize.LargeSmall});
            manageGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.Manage.Popup")
                                       {Group = manageGroup, Sequence = 150, Size = RibbonSize.Popup});
            listItemTab.Groups.Add(manageGroup);
            RegisterRibbonControls(manageGroup);

            var handlerStatement = new StringBuilder();
            handlerStatement.Append("var item = getSelectedItems()[0];");
            handlerStatement.Append("var options = SP.UI.$create_DialogOptions();");
            handlerStatement.AppendFormat(
                "options.url = '{0}/_layouts/listform.aspx?PageType=4&ListId=' + item.refListId + '&ID=' + item.refId;",
                Utilities.GetWebUrl(SPContext.Current.Web.Url));
            handlerStatement.Append(
                "options.dialogReturnValueCallback = Function.createDelegate(null, function(result, target){if(result == SP.UI.DialogResult.OK){SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);}});");
            handlerStatement.Append("SP.UI.ModalDialog.showModalDialog(options);");

            var viewPropertiesCommand =
                new SPRibbonCommand("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Commands.ViewItem")
                    {
                        HandlerStatement = handlerStatement.ToString(),
                        EnabledStatement = "(getSelectedItems().length == 1)"
                    };

            var btnViewProperties =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage.Controls.ViewProperties")
                    {
                        Sequence = 20,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButViewItem"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -32,
                        Image16By16Left = -80,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -96,
                        Image32By32Left = -448,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButViewItem"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButViewItem"),
                        Command = viewPropertiesCommand,
                        TemplateAlias = "c1"
                    };
            manageGroup.Controls.Add(btnViewProperties);

            var btnEditProperties =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage.Controls.EditProperties")
                    {
                        Sequence = 20,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButEditItem"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -128,
                        Image16By16Left = -224,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -128,
                        Image32By32Left = -96,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButEditItem"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButEditItem"),
                        TemplateAlias = "c1"
                    };
            manageGroup.Controls.Add(btnEditProperties);

            if (EnableEditItem)
            {
                handlerStatement = new StringBuilder();
                handlerStatement.Append("var item = getSelectedItems()[0];");
                handlerStatement.Append("var options = SP.UI.$create_DialogOptions();");
                handlerStatement.AppendFormat(
                    "options.url = '{0}/_layouts/listform.aspx?PageType=6&ListId=' + item.refListId + '&ID=' + item.refId;",
                    Utilities.GetWebUrl(SPContext.Current.Web.Url));
                handlerStatement.Append(
                    "options.dialogReturnValueCallback = Function.createDelegate(null, function(result, target){if(result == SP.UI.DialogResult.OK){SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);}});");
                handlerStatement.Append("SP.UI.ModalDialog.showModalDialog(options);");

                var editPropertiesCommand =
                    new SPRibbonCommand("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Commands.EditItem")
                        {
                            HandlerStatement = handlerStatement.ToString(),
                            EnabledStatement = "(getSelectedItems().length == 1)"
                        };
                btnEditProperties.Command = editPropertiesCommand;
            }

            var btnViewVersions =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage.Controls.ViewVersions")
                    {
                        Sequence = 30,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButVersionHistory"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -48,
                        Image16By16Left = -80,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -64,
                        Image32By32Left = -448,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButVersionHistory"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButItemVersionHistory"),
                        TemplateAlias = "c2"
                    };
            manageGroup.Controls.Add(btnViewVersions);

            var btnManagePermissions =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage.Controls.ManagePermissions")
                    {
                        Sequence = 40,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButItemPermissions"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -128,
                        Image16By16Left = 0,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = 0,
                        Image32By32Left = -416,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButItemPermissions"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButItemPermissions"),
                        TemplateAlias = "c2"
                    };
            manageGroup.Controls.Add(btnManagePermissions);

            var btnDelete =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Manage.Controls.Delete")
                    {
                        Sequence = 50,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButDeleteItem"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -112,
                        Image16By16Left = -224,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -128,
                        Image32By32Left = -128,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButDeleteItem"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButDeleteItem"),
                        TemplateAlias = "c2"
                    };
            manageGroup.Controls.Add(btnDelete);

            if (EnableDeleteItem)
            {
                handlerStatement = new StringBuilder();
                handlerStatement.Append(
                    "if(!confirm('Are you sure you want to send the item(s) to the site Recycle Bin?')) return;");
                handlerStatement.Append("var items = getSelectedItems();");
                handlerStatement.Append("var ctx = new SP.ClientContext.get_current();");
                if (SPContext.Current.Site.WebApplication.RecycleBinEnabled)
                {
                    handlerStatement.Append("$.each(items, function(index, item){var list = ctx.get_web().get_lists().getById(item.refListId);var listItem = list.getItemById(item.refId);listItem.recycle();});");
                }
                else
                {
                    handlerStatement.Append("$.each(items, function(index, item){var list = ctx.get_web().get_lists().getById(item.refListId);var listItem = list.getItemById(item.refId);listItem.deleteObject();});");
                }

                handlerStatement.Append("ctx.executeQueryAsync(Function.createDelegate(null, function(){SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);}), null);");

                var deleteItemCommand =
                    new SPRibbonCommand(
                        "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Commands.DeleteItem")
                        {
                            HandlerStatement = handlerStatement.ToString(),
                            EnabledStatement = "(getSelectedItems().length > 0)"
                        };
                btnDelete.Command = deleteItemCommand;
            }

            var actionsGroup =
                new RibbonGroup("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Actions")
                    {
                        Sequence = 30,
                        Title = LocalizationHelper.GetStringFromCoreResource("cui_GrpActions"),
                        Image32By32Popup = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32PopupLeft = -352,
                        Image32By32PopupTop = -128,
                        GroupTemplate = RibbonGroupTemplate.Flexible2
                    };
            actionsGroup.MaxSizes.Add(new RibbonMaxSize("Ribbon.ListItem.Scaling.Actions.MaxSize")
                                          {Sequence = 30, Group = actionsGroup, Size = RibbonSize.LargeLarge});
            actionsGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.Actions.Popup")
                                        {Sequence = 130, Group = actionsGroup, Size = RibbonSize.Popup});
            listItemTab.Groups.Add(actionsGroup);
            RegisterRibbonControls(actionsGroup);

            var btnAttachFile =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Actions.Controls.AttachFile")
                    {
                        Sequence = 10,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButAttachFile"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -128,
                        Image16By16Left = -144,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -352,
                        Image32By32Left = -128,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButAttachFile"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButAttachFile"),
                        TemplateAlias = "c1"
                    };
            actionsGroup.Controls.Add(btnAttachFile);

            var workflowGroup =
                new RibbonGroup("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Workflows")
                    {
                        Sequence = 50,
                        Title = LocalizationHelper.GetStringFromCoreResource("GrpWorkflow"),
                        Image32By32Popup = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32PopupLeft = -192,
                        Image32By32PopupTop = -416,
                        GroupTemplate = RibbonGroupTemplate.Flexible2
                    };
            workflowGroup.MaxSizes.Add(new RibbonMaxSize("Ribbon.ListItem.Scaling.Workflows.MaxSize")
                                           {Sequence = 50, Group = workflowGroup, Size = RibbonSize.LargeLarge});
            workflowGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.Workflows.MediumMedium")
                                         {Sequence = 70, Group = workflowGroup, Size = RibbonSize.MediumMedium});
            workflowGroup.Scales.Add(new RibbonScale("Ribbon.ListItem.Scaling.Workflows.Popup")
                                         {Sequence = 110, Group = workflowGroup, Size = RibbonSize.Popup});
            listItemTab.Groups.Add(workflowGroup);
            RegisterRibbonControls(workflowGroup);

            var btnViewWorkflows =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Workflows.Controls.ViewWorkflows")
                    {
                        Sequence = 10,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButWorkflows"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -48,
                        Image16By16Left = -208,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -192,
                        Image32By32Left = -416,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButWorkflows"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButItemManageWorkflow"),
                        TemplateAlias = "c1"
                    };
            workflowGroup.Controls.Add(btnViewWorkflows);

            var btnModerate =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.Workflows.Controls.Moderate")
                    {
                        Sequence = 10,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButApproveReject"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -48,
                        Image16By16Left = -240,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -448,
                        Image32By32Left = -384,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButApproveReject"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButItemApproveReject"),
                        TemplateAlias = "c1"
                    };
            workflowGroup.Controls.Add(btnModerate);

            // Register custom ribbon groups
            RegisterRibbonGroups(listItemTab);

            ((BaseUserControl) NamingContainer).RegisterRibbonTab(listItemTab);
            ((BaseUserControl) NamingContainer).LoadRibbonTab(listItemTab);
        }
示例#2
0
        protected virtual void RegisterAddListItemControl(RibbonGroup newGroup, int lcid)
        {
            var btnNewItem =
                new RibbonButton(
                    "VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Groups.New.Controls.NewItem")
                    {
                        Sequence = 10,
                        LabelText = LocalizationHelper.GetStringFromCoreResource("cui_ButNewItem"),
                        Image16By16 = string.Format("/_layouts/{0}/images/formatmap16x16.png", lcid),
                        Image16By16Top = -176,
                        Image16By16Left = -64,
                        Image32By32 = string.Format("/_layouts/{0}/images/formatmap32x32.png", lcid),
                        Image32By32Top = -320,
                        Image32By32Left = -64,
                        ToolTipTitle = LocalizationHelper.GetStringFromCoreResource("cui_ButNewItem"),
                        ToolTipDescription = LocalizationHelper.GetStringFromCoreResource("cui_STT_ButNewItem"),
                        TemplateAlias = "c1"
                    };
            newGroup.Controls.Add(btnNewItem);

            if (EnableAddNewItem)
            {
                var handlerStatement = new StringBuilder();
                handlerStatement.Append("var options = SP.UI.$create_DialogOptions();");
                handlerStatement.AppendFormat(
                    "options.url = '{0}/_layouts/listform.aspx?PageType=8&ListId={1}&RootFolder={2}';",
                    Utilities.GetWebUrl(SPContext.Current.Web.Url), List.ID, SPEncode.UrlEncode(Page.Request.QueryString["RootFolder"]));
                handlerStatement.Append("options.dialogReturnValueCallback = Function.createDelegate(null, function(result, target){if(result == SP.UI.DialogResult.OK){");
                handlerStatement.AppendFormat("$('#{0}').val('True');", hdfAddNewItem.ClientID);
                handlerStatement.Append("SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);");
                handlerStatement.Append("}});");
                handlerStatement.Append("SP.UI.ModalDialog.showModalDialog(options);");

                var newItemCommand =
                    new SPRibbonCommand("VP.Sharepoint.CQ.Core.Ribbon.Tabs.ListItem.Commands.NewItem")
                        {
                            HandlerStatement = handlerStatement.ToString()
                        };
                btnNewItem.Command = newItemCommand;
            }
        }