Skip to content

Instantly share code, notes, and snippets.

(async () => {
console.log('starting...');
const webUrl = '<weburl>'
if (!window.SP) {
for (const src of ['init.js','MicrosoftAjax.js','SP.Runtime.js','SP.js','sp.workflowservices.js']) {
await new Promise(done => {
const script = document.createElement('script');
script.async = true;
(async () => {
console.log('starting...');
const webUrl = '<weburl>'
if (!window.SP) {
for (const src of ['init.js','MicrosoftAjax.js','SP.Runtime.js','SP.js','sp.workflowservices.js']) {
await new Promise(done => {
const script = document.createElement('script');
script.async = true;
@kaffeskogen
kaffeskogen / Update-Flows.ps1
Created January 26, 2022 09:45 — forked from zplume/Update-Flows.ps1
PowerShell script to update multiple Flows that have been exported from one environment for deployment to another environment. The script will unzip a set of Flow zip files from a source directory into a temp folder, replace source values with destination values, then save updated zip files into a destination directory.
param(
[Parameter(Mandatory = $true)]
[string]$SourceEnv,
[Parameter(Mandatory = $true)]
[string]$DestinationEnv
)
$ErrorActionPreference = "Stop"
# Note: these values could be loaded from elsewhere, e.g. CSV/XML (or dynamically if you want to get fancy)
@kaffeskogen
kaffeskogen / ConvertSelectedFolderToOneNote.js
Last active September 20, 2021 06:17
SharePoint Classic - Convert selected folder to list item
(async () => {
const listId = SP.ListOperation.Selection.getSelectedList()?.replace(/{|}/g,'');
const itemId = SP.ListOperation.Selection.getSelectedItems()?.[0]?.id;
if (!listId || !itemId) {
throw new Error('You havn\'t selected a list item');
}
const ctx = SP.ClientContext.get_current();
const web = ctx.get_web();
(async () => {
console.log('starting...');
await new Promise(done => SP.SOD.executeFunc('sp.js', 'SP.ClientContext', done));
console.log('scripts loaded...');
SP.ClientContext.prototype.execute = function() {
return new Promise((resolve,reject) =>
this.executeQueryAsync(resolve, (sender, args) => reject(args.get_message()))
);
(async () => {
console.log('starting...');
if (!window.SP) {
for (const src of ['init.js','MicrosoftAjax.js','SP.Runtime.js','SP.js']) {
await new Promise((resolve,reject) => {
const scriptEl = document.createElement('script');
scriptEl.src = `/_layouts/15/${src}`;
scriptEl.addEventListener('load', () => resolve());
scriptEl.addEventListener('error', () => reject());
@kaffeskogen
kaffeskogen / SharePoint chrome snippet boilerplate.js
Last active February 10, 2023 07:17
SharePoint chrome snippet boilerplate.js
(async () => {
console.log('starting...');
const siteUrl =
location.href.split('/')
.slice(0, location.href.toLowerCase().includes('/sites/') ? 5 : 3)
.join('/');
if (!window.SP) {
for (const fileName of ['init.js','MicrosoftAjax.js','SP.Runtime.js','SP.js']) {
(async () => {
console.log('starting...');
await new Promise(done => SP.SOD.executeFunc('sp.js', 'SP.ClientContext', done));
console.log('scripts loaded...');
SP.ClientContext.prototype.execute = function() {
return new Promise((resolve,reject) =>
this.executeQueryAsync(resolve, (sender, args) => reject(args.get_message()))
);
@kaffeskogen
kaffeskogen / sharepoint-wp-updater.js
Last active February 24, 2017 08:43
ES6 CSOM SharePoint WebPart Update
(async () => {
SP.ClientContext.prototype.executeQuery = async function() {
return new Promise((resolve, reject) => this.executeQueryAsync(resolve, (a, b) => { reject(b.get_message()); }));
};
SP.WebParts.WebPartDefinitionCollection.prototype.toArray = function() {
let retArr = [];
for (let i = 0, len = this.get_count(); i < len; i++)
retArr.push(this.get_item(i));
return retArr;
getFileBuffer(file)
.then(
function(arrayBuffer) {
// var bytes = new Uint8Array(arrayBuffer);
// var content = new SP.Base64EncodedByteArray(); //base64 encoding
// for (var b = 0; b < bytes.length; b++) {
// content.append(bytes[b]);