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