Custom actions in the SharePoint Add-in model
The approach you take to modify list item menus and the ribbon in SharePoint is different in the new SharePoint Add-in model than it was with Full Trust Code. In a typical Full Trust Code (FTC) / Farm Solution scenario, list item menus and ribbon modifications were defined in XML (custom actions), packaged in features, and deployed via SharePoint Solutions.
In an SharePoint Add-in model scenario, you use the SharePoint Client-side Object Model (CSOM) or REST API to create custom actions that modify list item menus and the ribbon. This pattern is commonly referred to as the remote provisioning pattern.
As a rule of a thumb, we would like to provide the following high-level guidelines for creating and deploying custom actions in the new SharePoint Add-in model.
- Custom actions may be used to modify list item menus and the ribbon.
- You cannot hide menu items using a custom action directly from an Add-in that implements a custom action.
- This is because the HideCustomAction Element (MSDN API Documentation) is not available in the SharePoint ECMA Clients-ide Object Model (CSOM) - UserCustomAction properties (MSDN API Documentation), or the SharePoint/Office 365 REST APIs - SP.UserCustomActionCollection object (sp.js) (MSDN API Documentation).
- Use the SharePoint Client-side Object Model (CSOM), and/or the SharePoint/Office 365 REST APIs to implement custom actions.
The following sample demonstrates how to add a custom action to the site settings menu in the host web, how to show a dialog in a custom action, how to hide a dialog that hosts a page from a remote add-in web, and how to use a custom action to create lists and set the theme of a web.
Here you can see the link the custom action in the sample adds to the Site Settings menu.
Here you can see the popup window opened via the Modify Site link.
- User controls and Web controls (SharePoint Add-in Recipe)
- Guidance articles at https://aka.ms/OfficeDevPnPGuidance
- References in MSDN at https://aka.ms/OfficeDevPnPMSDN
- Videos at https://aka.ms/OfficeDevPnPVideos
- Provisioning.SiteModifier (O365 PnP Sample)
- Samples and content at Microsoft 365 Patterns and Practices (PnP)
- Office 365 Multi Tenant (MT)
- Office 365 Dedicated (D)
- SharePoint 2013 on-premises