Skip to content

Instantly share code, notes, and snippets.

@vaderj
vaderj / JS-array-to-obj.js
Last active June 12, 2018 17:02
JS - Array to Object #Javascript
//From https://stackoverflow.com/questions/4215737/convert-array-to-object
//Given the following array:
var testArray = ["a","b","c","d"]
//Simplest data transformation method:
function toObject(arr) {
var rv = {};
@vaderj
vaderj / assign-SPREST-userPerms.js
Last active June 11, 2018 20:56
SP REST: Assign user permissions #Javascript #SharePoint #REST
function assignPerms(libraryName, folderName, usersPrincipalID, roleDefID)
{
// To List the required Role Definition ID's : /_api/web/roleDefinitions() ;
// /_api/web/lists/getByTitle('Test')/roleassignments/addroleassignment(principalid=20,roleDefId=" + + ")"
var assignPerms = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('" + _spPageContextInfo.siteServerRelativeUrl + "/" + libraryName + "/" + folderName + "/ListItemAllFields/roleassignments/addroleassignment(principalid=" + usersPrincipalID + ",roleDefId=" + roleDefID + ")",
type: 'POST',
contentType: 'application/json;odata=verbose',
headers: {
@vaderj
vaderj / break-SPREST-roleInheritance.js
Last active June 12, 2018 15:03
SP REST: Break role inheritance on a folder #Javascript #REST #SharePoint
function breakroleinheritance(folderName)
{// https://mysite/_api/web/GetFolderByServerRelativeUrl('/DocLib/folder1')/ListItemAllFields/breakroleinheritance(copyRoleAssignments=true,clearSubscopes=true)
var breakPerms = jQuery.ajax({
//URL to just break inheritance
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('/p/flonboarding/Secured/" + folderName + "')/ListItemAllFields/breakroleinheritance(copyRoleAssignments=true,clearSubscopes=true)",
// URL to remove all perms
//url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('/p/flonboarding/Secured/" + folderName + "')/ListItemAllFields/breakroleinheritance/",
type: 'POST',
@vaderj
vaderj / new-SPREST-folder.js
Last active June 30, 2023 14:43
SP REST: Create new folder in SP Library #Javascript #REST #SharePoint
function createFolder(libraryName,newFolderName)
{
var folder = jQuery.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Folders/add('" + libraryName + "/" + newFolderName + "')",
type: 'POST',
contentType: 'application/json;odata=verbose',
headers: {
'Accept': 'application/json;odata=verbose',
'content-type':'application/json;odata=verbose',
'X-RequestDigest': $("#__REQUESTDIGEST").val()
@vaderj
vaderj / Delete-SPListItem.js
Last active June 12, 2018 15:10
Delete SharePoint List Item #Javascript #REST #SharePoint
function removeEnrollment(userId,listItemID)
{
var removeUserFromClass = jQuery.ajax({
//url: webUrl + "_api/web/lists/getbytitle('" + classesListName + "')/items?'" + classesColumns + "'&$filter=Title eq '" + lookup + "'" ,
url: webUrl + "_api/web/lists/getbytitle('Enrollees')/items(" + listItemID + ")",
method: "POST",
headers:
{
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*",
@vaderj
vaderj / New SPListItem via SPREST API.js
Last active June 30, 2023 14:43
New SPListItem via SPREST API #Javascript #REST #SharePoint
function newEnrollment(firstName, lastName, email, team, classNameId )
{
var item = {
"__metadata": { "type": "SP.Data.EnrolleesListItem" },
"Title": firstName,
"LastName": lastName,
"Team": team,
"Email": email,
"ClassNameId": classNameId
};
@vaderj
vaderj / SPOpenApprovalModalDialog.js
Last active June 30, 2023 14:44
Open a SharePoint out of box Approval dialog #Javascript #SharePoint
function openApproveModal(docId)
{
//NavigateToApproveRejectAspx(event, '' + _spPageContextInfo.webAbsoluteUrl + '/_layouts/15/approve.aspx?List={4DBD7524-4A5F-49BF-B105-F139B4CA8983}&ID=' + docId + '&RootFolder=' + fileFolderEncoded + '' )
fileName = jQuery("#" + docId + " a")[0].pathname ;
fileNameEncoded = fileName.replace(/\//g,"%2F") ;
fileFolderEncoded = fileName.replace(fileName.split('/')[fileName.split('/').length-1],"").slice(0,-1).replace(/\//g,"%2F") ;
var url = _spPageContextInfo.webAbsoluteUrl + '/_layouts/15/approve.aspx?List={' + listId + '}&ID=' + docId + '&RootFolder=' + fileFolderEncoded
@vaderj
vaderj / newSPlistItemViaREST.js
Last active June 30, 2023 14:44
Add a new SP list item via REST API #Javascript #SharePoint #REST
function newEnrollment(firstName, lastName, email, team, classNameId )
{
var item = {
"__metadata": { "type": "SP.Data.EnrolleesListItem" }, // <=="type" derived from the target Lists name - getbytitle('Enrollees') = "SP.Data.EnrolleesListItem"
"Title": firstName,
"LastName": lastName,
"Team": team,
"Email": email,
"ClassNameId": classNameId
@vaderj
vaderj / SP-New-Item-Form-Edits.js
Last active June 11, 2018 20:39
SharePoint new list item form - reading / hiding to fields with JavaScript / jQuery #Javascript #SharePoint
//Lookup Column: Allow multiple values
// jQuery Select:
jQuery("select[title='Vehicle']") ;
// read selected options
jQuery("select[title='Vehicle'] option:selected").text() ;
// Hide one of the OPTIONS in the drop down selector (addressed via value, NOT text):
jQuery("select[title='Vehicle'] option[value='2']").remove()
// Hide the field and its label from view
jQuery("select[title='Vehicle']").closest('tr').hide()
@vaderj
vaderj / SPInfoBar.js
Last active June 12, 2018 17:02
SharePoint information bar #Javascript #SharePoint
// Information bar
// https://msdn.microsoft.com/en-us/pnp_articles/customize-your-sharepoint-site-ui-by-using-javascript
//
function RemoteManager_Inject() {
loadScript(jQuery, function () {
$(document).ready(function () {
var message = "<img src='/_Layouts/Images/STS_ListItem_43216.gif' align='absmiddle'> <font color='#AA0000'>JavaScript customization is <i>fun</i>!</font>"
// Execute status setter only after SP.JS has been loaded