|
(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; |
|
}; |
|
|
|
let ctx = SP.ClientContext.get_current(); |
|
let pageFile = ctx.get_web().getFileByServerRelativeUrl(_spPageContextInfo.serverRequestPath); |
|
let limitedWebPartManager = pageFile.getLimitedWebPartManager(SP.WebParts.PersonalizationScope.shared); |
|
let webPartDefinitionCollection = limitedWebPartManager.get_webParts(); |
|
|
|
ctx.load(webPartDefinitionCollection, 'Include(Id,WebPart,WebPart.Title,WebPart.Properties)'); |
|
await ctx.executeQuery(); |
|
|
|
/* |
|
let wpArr = webPartDefinitionCollection |
|
.toArray() |
|
.map(wpDef => wpDef.get_webPart().get_properties().get_fieldValues()); |
|
|
|
console.table(wpArr, ['Title', 'TitleUrl', 'WorkbookUri', 'ListName', 'ContentLink']); |
|
*/ |
|
|
|
webPartDefinitionCollection |
|
.toArray() |
|
.filter(wpDef => { |
|
let titleUrl = wpDef.get_webPart().get_properties().get_item('TitleUrl'); |
|
return titleUrl.includes('/faulty/path'); |
|
}) |
|
.forEach(wpDef => { |
|
let wp = wpDef.get_webPart(); |
|
let wpProps = wp.get_properties(); |
|
let wpPropsFieldValues = wpProps.get_fieldValues(); |
|
console.log(wpPropsFieldValues); // logs properties as json |
|
// let titleUrl = wpProps.get_item('TitleUrl'); |
|
wpProps.set_item('TitleUrl', 'https://google.se'); |
|
wpDef.saveWebPartChanges(); |
|
}); |
|
|
|
await ctx.executeQuery(); |
|
|
|
console.log('%cDone!', 'color: green;'); |
|
|
|
})(); |