JSOM: Create Duplicate View in SharePoint List

  1. //Author: Shantha Kumar T  
  2. //Method used: SP.List.saveAsNewView( oldView, newName, privateView, uri) (SP.js)  
  3. //Paramteres:  
  4. ////oldView: Guid of the view  
  5. ////newName: Name for the new view  
  6. ////privateView: Boolean value to set private view or public view   
  7. ////uri: url for new view  
  8. //Supports: SharePoint 2013 + and SharePoint Online  
  9.   
  10. function CreateDuplicateView(listTitle, oldView, newView) {  
  11.     var clientContext = new SP.ClientContext();  
  12.     oList = clientContext.get_web().get_lists().getByTitle(listTitle);  
  13.   
  14.     //The below method used to create a new view based on old view in the list  
  15.     oList.saveAsNewView(oldView, newView, false"duplicateview.aspx");  
  16.   
  17.     var newViewValue = oList.get_views().getByTitle(newView);  
  18.     clientContext.load(newViewValue);  
  19.     clientContext.executeQueryAsync(  
  20.         Function.createDelegate(thisfunction() {  
  21.             var successInfo = '';  
  22.             successInfo += newViewValue.get_title() + " view duplicated successfully";  
  23.             //console.log(successInfo.toString());  
  24.             alert(successInfo.toString());  
  25.         }),  
  26.         Function.createDelegate(thisfunction(sender, args) {  
  27.             //console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());  
  28.             alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());  
  29.         }));  
  30.   
  31. }  
  32.   
  33. function injectMethod() {  
  34.     var lisTitle = "ListName";  
  35.     var strviewGuid = "59A88256-510F-4C66-836E-E91C6D30A73A";  
  36.     var strnewViewTitle = "Duplicate View";  
  37.     //SP.Guid.isValid method used to validate the GUID and returns the boolean value  
  38.     if (SP.Guid.isValid(strviewGuid)) {  
  39.         CreateDuplicateView(lisTitle, new SP.Guid(strviewGuid), strnewViewTitle);  
  40.     } else {  
  41.         alert("Provided GUID is not a valid one!");  
  42.     }  
  43. }  
  44. ExecuteOrDelayUntilScriptLoaded(injectMethod, "sp.js");