JSOM - JackHu88/Comm GitHub Wiki

Update Author

 var ctx = new SP.ClientContext.get_current();
      var list = ctx.get_web().get_lists().getByTitle("Test");
      var item = list.getItemById(26);
      item.set_item("Author", 764);
      item.update();
      ctx.executeQueryAsync(
         function () {console.log("Done") },
      function () {console.log("Error")}
);

Start Workflow

<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.core.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.workflowservices.js"></script>


function startWorkflow(itemID, subID) {

    var context = SP.ClientContext.get_current();
    var web = context.get_web();

    var wfServiceManager = SP.WorkflowServices.WorkflowServicesManager.newObject(context, web);

    var subscription = wfServiceManager.getWorkflowSubscriptionService().getSubscription(subID);

    context.load(subscription);

    context.executeQueryAsync(
        function(sender, args){
            console.log("Subscription load success. Attempting to start workflow.");        
            var inputParameters = {};

            wfServiceManager.getWorkflowInstanceService().startWorkflowOnListItem(subscription, itemID, inputParameters);

            context.executeQueryAsync(
                function(sender, args){ console.log("Successfully starting workflow."); },
                function(sender, args){ 
                    console.log("Failed to start workflow.");
                    console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace());
                }
            );
        },
        function(sender,args){
            console.log("Failed to load subscription.");
            console.log("Error: " + args.get_message() + "\n" + args.get_stackTrace());
        }
    );
}

EecuteOrDelayUntilScriptLoaded(function () {
  startWorkflow(20,'{BFBD8116-D9D8-4B5B-8C06-BE759043B739}')
}, "sp.workflowservices.js");



### 
SP.SOD.executeFunc("sp.js", "SP.ClientContext" , function(){
	SP.SOD.registerSod('sp.workflowservices.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.workflowservices.js'));
	SP.SOD.executeFunc('sp.workflowservices.js', "SP.WorkflowServices.WorkflowServicesManager", function(){
		var query="<View><Query><Where>";
			query+='<Eq><FieldRef Name="Status"/><Value Type="Text">Active</Value></Eq>';
			query+='</Where>';
			query+='</Query><RowLimit>0</RowLimit></View>';
			var licenceContext=SP.ClientContext.get_current();                     
            var licenceWeb=licenceContext.get_web();
            var licenceList=licenceWeb.get_lists().getByTitle("Test List");
            var query_licence=new SP.CamlQuery();
            query_licence.set_viewXml(query);
            var licenceCollListItem=licenceList.getItems(query_licence);
            licenceContext.load(licenceCollListItem);
            licenceContext.executeQueryAsync(Function.createDelegate(this, function (){            
                var listEnumerator=licenceCollListItem.getEnumerator();
                console.log(licenceCollListItem.get_count());
                while(listEnumerator.moveNext())
                {
                    var currentItem=listEnumerator.get_current();
                    
				    var id=currentItem.get_item('ID');
                    startWorkflow(id,'{E760DF24-2EAD-45B1-8D85-3227D2A8C491}')
	                
				}
			}),function (sender, args) { console.log(args.get_message()); });
	});
})

Inherit Permission

function inheritPermission(id){
    var ctx = new SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle("Team Documents");
    var item = list.getItemById(id);
    //item.breakRoleInheritance(false, true);
    item.resetRoleInheritance();
    //item.update();
    ctx.executeQueryAsync(
      function () {console.log("Done") },
      function () {console.log("Error")}
    );
}

Set permission for specific user

var context = SP.ClientContext.get_current();
 var oUser = context.get_web().get_siteUsers().getById("1073741822");
 var oWeb=context.get_web();
 var collRoleDefinitionBinding = SP.RoleDefinitionBindingCollection.newObject(context);
 collRoleDefinitionBinding.add(context.get_web().get_roleDefinitions().getByType(SP.RoleType.administrator));
 oWeb.get_roleAssignments().add(oUser, collRoleDefinitionBinding);

context.load(oWeb);
context.load(oUser);

 context.executeQueryAsync(onQuerySucceeded, onQueryFailed);

 function onQuerySucceeded(sender, args) {
  
 console.log('given access to specific users');
 }
  
 function onQueryFailed(sender, args) {
  
 console.log(args);
 }

Set permission for specific group

var context = SP.ClientContext.get_current();
 var oUser = context.get_web().get_siteUsers().getByLoginName("c:0-.f|rolemanager|spo-grid-all-users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");;
 var oWeb=context.get_web();
 var collRoleDefinitionBinding = SP.RoleDefinitionBindingCollection.newObject(context);
 collRoleDefinitionBinding.add(context.get_web().get_roleDefinitions().getByType(SP.RoleType.contributor));
 oWeb.get_roleAssignments().add(oUser, collRoleDefinitionBinding);

context.load(oWeb);
context.load(oUser);

 context.executeQueryAsync(onQuerySucceeded, onQueryFailed);

 function onQuerySucceeded(sender, args) {
  
 console.log('given access to specific users');
 }
  
 function onQueryFailed(sender, args) {
  
 console.log(args);
 }

Delete all items for list

var cnt=0;
var clientContext;
var website;
var oList;
function deleteAllItemsFromList() {
clientContext = SP.ClientContext.get_current();
website = clientContext.get_web();
oList = website.get_lists().getByTitle('Cash');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><RowLimit>2000</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(website);
clientContext.load(collListItem, 'Include(Id)');
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
var ID = oListItem.get_id();
var oListItemDel = oList.getItemById(ID);
oListItemDel.deleteObject();
clientContext.executeQueryAsync(Function.createDelegate(this, this.onDeleteSucceeded), Function.createDelegate(this, this.onDeleteFailed));
}
}
function onQueryFailed(sender, args) {
console.log('Failed');
}
function onDeleteFailed(sender, args) {
console.log('Failed');
}
function onDeleteSucceeded(sender, args) {
cnt = cnt + 1;
console.log('Delete success : ' + cnt);
}

Batch Update items

var oContext=SP.ClientContext.get_current();
var oWeb=oContext.get_web();
var oList=oWeb.get_lists().getByTitle("SKU List");
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<View><Query><Where>\
    <Eq><FieldRef Name=\"License_ID\" /><Value Type=\"Text\">"+licenseId+"</Value></Eq>\
    </Where></Query></View>");
var oListItems = oList.getItems(camlQuery); 
oContext.load(oListItems);
oContext.executeQueryAsync(function(){   
    var currentItemArray = [];      
    var listEnumerator=oListItems.getEnumerator();
    var childContext=SP.ClientContext.get_current();
    while(listEnumerator.moveNext())
    {
        if(oListItems.get_count()>0){
            var currentItem = listEnumerator.get_current();
            var currentId = currentItem.get_item("ID");
            var oListItem = oList.getItemById(currentId);    		
            oListItem.set_item('Status', 'Inactive');                  							           		 	
            oListItem.update();	  
            currentItemArray.push(oListItem);
            childContext.load(currentItemArray[currentItemArray.length - 1]);
        }
    }
    childContext.executeQueryAsync(function(){
        //
    },function(sender, args){
        console.log(args.get_message());
    });				                
}); 

PreSaveAction

function PreSaveAction() {  
    var myAttachments = document.getElementById("idAttachmentsTable");  
    if (myAttachments == null || myAttachments.rows.length == 0) {  
        document.getElementById("idAttachmentsRow").style.display = 'none';  
        alert("Attachments are mandatory for this list. Please attach the appropriate files");  
        return false;  
    } else {  
    return true  
    }  
} 
⚠️ **GitHub.com Fallback** ⚠️