@kwiz/common 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/base64.js +10 -21
- package/dist/helpers/base64.js.map +1 -1
- package/dist/helpers/browser.d.ts +13 -5
- package/dist/helpers/browser.js +61 -39
- package/dist/helpers/browser.js.map +1 -1
- package/dist/helpers/collections.base.js +46 -65
- package/dist/helpers/collections.base.js.map +1 -1
- package/dist/helpers/collections.js +4 -1
- package/dist/helpers/collections.js.map +1 -1
- package/dist/helpers/date.d.ts +2 -1
- package/dist/helpers/date.js +22 -3
- package/dist/helpers/date.js.map +1 -1
- package/dist/helpers/debug.js +9 -20
- package/dist/helpers/debug.js.map +1 -1
- package/dist/helpers/objects.js +2 -11
- package/dist/helpers/objects.js.map +1 -1
- package/dist/helpers/promises.js +28 -41
- package/dist/helpers/promises.js.map +1 -1
- package/dist/helpers/strings.js +2 -1
- package/dist/helpers/strings.js.map +1 -1
- package/dist/utils/base64.js +18 -29
- package/dist/utils/base64.js.map +1 -1
- package/dist/utils/consolelogger.js +16 -27
- package/dist/utils/consolelogger.js.map +1 -1
- package/dist/utils/emails.js +5 -2
- package/dist/utils/emails.js.map +1 -1
- package/dist/utils/knownscript.js +4 -15
- package/dist/utils/knownscript.js.map +1 -1
- package/dist/utils/localstoragecache.js +3 -3
- package/dist/utils/localstoragecache.js.map +1 -1
- package/dist/utils/rest.d.ts +2 -0
- package/dist/utils/rest.js +18 -5
- package/dist/utils/rest.js.map +1 -1
- package/dist/utils/script.js +25 -40
- package/dist/utils/script.js.map +1 -1
- package/dist/utils/sharepoint.rest/file.folder.d.ts +2 -0
- package/dist/utils/sharepoint.rest/file.folder.js +123 -123
- package/dist/utils/sharepoint.rest/file.folder.js.map +1 -1
- package/dist/utils/sharepoint.rest/item.d.ts +10 -0
- package/dist/utils/sharepoint.rest/item.js +233 -237
- package/dist/utils/sharepoint.rest/item.js.map +1 -1
- package/dist/utils/sharepoint.rest/list.d.ts +30 -1
- package/dist/utils/sharepoint.rest/list.js +296 -289
- package/dist/utils/sharepoint.rest/list.js.map +1 -1
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js +352 -360
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js.map +1 -1
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js +47 -58
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js.map +1 -1
- package/dist/utils/sharepoint.rest/user-search.d.ts +5 -10
- package/dist/utils/sharepoint.rest/user-search.js +129 -148
- package/dist/utils/sharepoint.rest/user-search.js.map +1 -1
- package/dist/utils/sharepoint.rest/user.d.ts +1 -0
- package/dist/utils/sharepoint.rest/user.js +200 -169
- package/dist/utils/sharepoint.rest/user.js.map +1 -1
- package/dist/utils/sharepoint.rest/web.d.ts +10 -1
- package/dist/utils/sharepoint.rest/web.js +381 -401
- package/dist/utils/sharepoint.rest/web.js.map +1 -1
- package/dist/utils/sod.js +8 -19
- package/dist/utils/sod.js.map +1 -1
- package/package.json +5 -4
- package/src/helpers/browser.ts +56 -13
- package/src/helpers/date.ts +23 -1
- package/src/helpers/strings.test.js +14 -2
- package/src/helpers/strings.ts +2 -1
- package/src/utils/rest.ts +7 -0
- package/src/utils/sharepoint.rest/file.folder.ts +18 -1
- package/src/utils/sharepoint.rest/item.ts +54 -1
- package/src/utils/sharepoint.rest/list.ts +144 -0
- package/src/utils/sharepoint.rest/user-search.ts +10 -14
- package/src/utils/sharepoint.rest/user.ts +49 -3
- package/src/utils/sharepoint.rest/web.ts +23 -1
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RemoveWebPermission = exports.AssignWebPermission = exports.BreakWebPermissionInheritance = exports.WebHasUniquePermissions = exports.ensureLegacyProps = exports.getFormDigest = exports.GetWebPropertyByName = exports.GetAllWebProperties = exports.GetRegionalSettings = exports.GetUserCustomActions = exports.GetContextWebInformationSync = exports.SPServerLocalTime = exports.SPServerLocalTimeSync = exports.UTCToSPServerLocalTimeSync = exports.UTCToSPServerLocalTime = exports.SPServerLocalTimeToUTCSync = exports.SPServerLocalTimeToUTC = exports.SPServerLocalTimeToUTCDateSync = exports.SPServerLocalTimeToUTCDate = exports.GetServerTimeZone = exports.GetAppTilesSync = exports.GetAppTiles = exports.GetSubWebs = exports.GetWebRoleDefinitions = exports.GetWebInfoSync = exports.GetWebInfo = exports.__getSubSites = exports.GetAllSubWebs = exports.GetListsSync = exports.GetLists = exports.GetContentTypesSync = exports.GetContentTypes = exports.UserHasManageSitePermissions = exports.UserHasAllPermissions = exports.IsRootWeb = exports.GetWebIdSync = exports.GetWebId = exports.GetWebTitle = exports.GetRootWebInfo = exports.GetSiteIdSync = exports.GetSiteId = exports.GetSiteInfoSync = exports.GetSiteInfo = void 0;
|
|
3
|
+
exports.SetUserAsSiteAdmin = exports.RemoveWebPermission = exports.AssignWebPermission = exports.BreakWebPermissionInheritance = exports.WebHasUniquePermissions = exports.ensureLegacyProps = exports.getFormDigest = exports.GetWebPropertyByName = exports.GetAllWebProperties = exports.GetRegionalSettings = exports.GetUserCustomActions = exports.GetContextWebInformationSync = exports.SPServerLocalTime = exports.SPServerLocalTimeSync = exports.UTCToSPServerLocalTimeSync = exports.UTCToSPServerLocalTime = exports.SPServerLocalTimeToUTCSync = exports.SPServerLocalTimeToUTC = exports.SPServerLocalTimeToUTCDateSync = exports.SPServerLocalTimeToUTCDate = exports.GetServerTimeZone = exports.GetAppTilesSync = exports.GetAppTiles = exports.GetSubWebs = exports.GetRoleAssignments = exports.GetWebRoleDefinitions = exports.GetWebInfoSync = exports.GetWebInfo = exports.__getSubSites = exports.GetAllSubWebs = exports.GetListsSync = exports.GetLists = exports.GetContentTypesSync = exports.GetContentTypes = exports.UserHasManageSitePermissions = exports.UserHasAllPermissions = exports.IsRootWeb = exports.GetWebIdSync = exports.GetWebId = exports.GetWebTitle = exports.GetRootWebInfo = exports.GetSiteIdSync = exports.GetSiteId = exports.GetSiteInfoSync = exports.GetSiteInfo = void 0;
|
|
13
4
|
const _dependencies_1 = require("../_dependencies");
|
|
14
5
|
const consolelogger_1 = require("../consolelogger");
|
|
15
6
|
const date_1 = require("../date");
|
|
@@ -19,7 +10,7 @@ const list_1 = require("./list");
|
|
|
19
10
|
const logger = consolelogger_1.ConsoleLogger.get("SharePoint.Rest.Web");
|
|
20
11
|
function GetSiteInfo(siteUrl) {
|
|
21
12
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
22
|
-
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null,
|
|
13
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache })
|
|
23
14
|
.then(r => {
|
|
24
15
|
var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
|
|
25
16
|
var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
|
|
@@ -33,7 +24,7 @@ function GetSiteInfo(siteUrl) {
|
|
|
33
24
|
exports.GetSiteInfo = GetSiteInfo;
|
|
34
25
|
function GetSiteInfoSync(siteUrl) {
|
|
35
26
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
36
|
-
let result = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null,
|
|
27
|
+
let result = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache });
|
|
37
28
|
if (result.success) {
|
|
38
29
|
var id = (0, _dependencies_1.normalizeGuid)(result.result.d.Id);
|
|
39
30
|
var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(result.result.d.ServerRelativeUrl);
|
|
@@ -67,20 +58,18 @@ function _getSiteIdFromContext(siteUrl) {
|
|
|
67
58
|
return null;
|
|
68
59
|
}
|
|
69
60
|
/** Get site id lower case no {} */
|
|
70
|
-
function GetSiteId(siteUrl) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
61
|
+
async function GetSiteId(siteUrl) {
|
|
62
|
+
let siteId = _getSiteIdFromContext(siteUrl);
|
|
63
|
+
if (!(0, _dependencies_1.isNullOrEmptyString)(siteId)) {
|
|
64
|
+
return siteId;
|
|
65
|
+
}
|
|
66
|
+
return GetSiteInfo(siteUrl).then((info) => {
|
|
67
|
+
if (!(0, _dependencies_1.isNullOrUndefined)(info) && !(0, _dependencies_1.isNullOrEmptyString)(info.Id)) {
|
|
68
|
+
return (0, _dependencies_1.normalizeGuid)(info.Id);
|
|
75
69
|
}
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
return null;
|
|
81
|
-
}).catch(() => {
|
|
82
|
-
return null;
|
|
83
|
-
});
|
|
70
|
+
return null;
|
|
71
|
+
}).catch(() => {
|
|
72
|
+
return null;
|
|
84
73
|
});
|
|
85
74
|
}
|
|
86
75
|
exports.GetSiteId = GetSiteId;
|
|
@@ -97,7 +86,7 @@ exports.GetSiteIdSync = GetSiteIdSync;
|
|
|
97
86
|
/** Get root web id lower case no {} */
|
|
98
87
|
function GetRootWebInfo(siteUrl) {
|
|
99
88
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
100
|
-
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site/rootWeb?$select=id,serverRelativeUrl", null,
|
|
89
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site/rootWeb?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache })
|
|
101
90
|
.then(r => {
|
|
102
91
|
var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
|
|
103
92
|
var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
|
|
@@ -110,7 +99,7 @@ exports.GetRootWebInfo = GetRootWebInfo;
|
|
|
110
99
|
/** Return the web Title */
|
|
111
100
|
function GetWebTitle(siteUrl) {
|
|
112
101
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
113
|
-
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/Title`, null,
|
|
102
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/Title`, null, { ...rest_1.shortLocalCache })
|
|
114
103
|
.then(r => {
|
|
115
104
|
return r.d.Title;
|
|
116
105
|
})
|
|
@@ -122,7 +111,7 @@ function _getWebIdRequestUrl(siteUrl) {
|
|
|
122
111
|
}
|
|
123
112
|
/** Return the web id */
|
|
124
113
|
function GetWebId(siteUrl) {
|
|
125
|
-
return (0, rest_1.GetJson)(_getWebIdRequestUrl(siteUrl), null,
|
|
114
|
+
return (0, rest_1.GetJson)(_getWebIdRequestUrl(siteUrl), null, { ...rest_1.longLocalCache })
|
|
126
115
|
.then(r => {
|
|
127
116
|
return (0, _dependencies_1.normalizeGuid)(r.d.Id);
|
|
128
117
|
})
|
|
@@ -131,7 +120,7 @@ function GetWebId(siteUrl) {
|
|
|
131
120
|
exports.GetWebId = GetWebId;
|
|
132
121
|
/** Return the web id */
|
|
133
122
|
function GetWebIdSync(siteUrl) {
|
|
134
|
-
let syncResult = (0, rest_1.GetJsonSync)(_getWebIdRequestUrl(siteUrl), null,
|
|
123
|
+
let syncResult = (0, rest_1.GetJsonSync)(_getWebIdRequestUrl(siteUrl), null, { ...rest_1.longLocalCache });
|
|
135
124
|
if (syncResult.success)
|
|
136
125
|
return syncResult.result.d.Id;
|
|
137
126
|
else
|
|
@@ -139,18 +128,16 @@ function GetWebIdSync(siteUrl) {
|
|
|
139
128
|
}
|
|
140
129
|
exports.GetWebIdSync = GetWebIdSync;
|
|
141
130
|
/** Return the web id */
|
|
142
|
-
function IsRootWeb(siteUrl) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return webId === rootWeb.Id;
|
|
148
|
-
});
|
|
131
|
+
async function IsRootWeb(siteUrl) {
|
|
132
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
133
|
+
let webId = await GetWebId(siteUrl);
|
|
134
|
+
let rootWeb = await GetRootWebInfo(siteUrl);
|
|
135
|
+
return webId === rootWeb.Id;
|
|
149
136
|
}
|
|
150
137
|
exports.IsRootWeb = IsRootWeb;
|
|
151
138
|
function UserHasAllPermissions(siteUrl, permissions) {
|
|
152
139
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
153
|
-
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null,
|
|
140
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, { ...rest_1.shortLocalCache })
|
|
154
141
|
.then(r => {
|
|
155
142
|
var effectivePermissions = new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions);
|
|
156
143
|
return permissions.every((perm) => {
|
|
@@ -162,7 +149,7 @@ function UserHasAllPermissions(siteUrl, permissions) {
|
|
|
162
149
|
exports.UserHasAllPermissions = UserHasAllPermissions;
|
|
163
150
|
function UserHasManageSitePermissions(siteUrl) {
|
|
164
151
|
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
165
|
-
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null,
|
|
152
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, { ...rest_1.shortLocalCache })
|
|
166
153
|
.then(r => {
|
|
167
154
|
return new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions).has(_dependencies_1.SPBasePermissionKind.ManageWeb);
|
|
168
155
|
})
|
|
@@ -207,22 +194,20 @@ function _postProcessGetContentTypes(contentTypes, options = {}, allListFields)
|
|
|
207
194
|
}
|
|
208
195
|
return null;
|
|
209
196
|
}
|
|
210
|
-
function GetContentTypes(siteUrl, options = {}) {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
197
|
+
async function GetContentTypes(siteUrl, options = {}) {
|
|
198
|
+
let url = _getContentTypesRequestUrl(siteUrl, options);
|
|
199
|
+
let allListFields = null;
|
|
200
|
+
if (options.includeFields) {
|
|
201
|
+
allListFields = await (0, list_1.GetListFields)(siteUrl, options.listIdOrTitle);
|
|
202
|
+
}
|
|
203
|
+
return (0, rest_1.GetJson)(url, null, { allowCache: true, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
|
|
204
|
+
.then(result => {
|
|
205
|
+
if (!(0, _dependencies_1.isNullOrUndefined)(result)) {
|
|
206
|
+
return _postProcessGetContentTypes(result.value, options, allListFields);
|
|
216
207
|
}
|
|
217
|
-
return
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return _postProcessGetContentTypes(result.value, options, allListFields);
|
|
221
|
-
}
|
|
222
|
-
return null;
|
|
223
|
-
})
|
|
224
|
-
.catch(() => null);
|
|
225
|
-
});
|
|
208
|
+
return null;
|
|
209
|
+
})
|
|
210
|
+
.catch(() => null);
|
|
226
211
|
}
|
|
227
212
|
exports.GetContentTypes = GetContentTypes;
|
|
228
213
|
function GetContentTypesSync(siteUrl, options = {}) {
|
|
@@ -283,7 +268,7 @@ function GetLists(siteUrl, options = {}) {
|
|
|
283
268
|
exports.GetLists = GetLists;
|
|
284
269
|
function GetListsSync(siteUrl, options = {}) {
|
|
285
270
|
let url = _getListsRequestUrl(siteUrl, options);
|
|
286
|
-
let response = (0, rest_1.GetJsonSync)(url, null,
|
|
271
|
+
let response = (0, rest_1.GetJsonSync)(url, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
287
272
|
if (response && response.success && response.result && (0, _dependencies_1.isNotEmptyArray)(response.result.value)) {
|
|
288
273
|
return _postProcessGetLists(response.result.value, options);
|
|
289
274
|
}
|
|
@@ -295,169 +280,165 @@ exports.GetListsSync = GetListsSync;
|
|
|
295
280
|
* @param siteUrl the starting URL you want to get the sites for
|
|
296
281
|
* @param allowAppWebs send true if you would like to inlucde app webs as well
|
|
297
282
|
*/
|
|
298
|
-
function GetAllSubWebs(siteUrl, options) {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}
|
|
349
|
-
break;
|
|
350
|
-
}
|
|
351
|
-
if (skip)
|
|
352
|
-
break; //stop the cells loop
|
|
353
|
-
allPropsFound =
|
|
354
|
-
Title !== null &&
|
|
355
|
-
Url !== null &&
|
|
356
|
-
WebId !== null &&
|
|
357
|
-
WebTemplate !== null;
|
|
358
|
-
if (allPropsFound)
|
|
283
|
+
async function GetAllSubWebs(siteUrl, options) {
|
|
284
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
285
|
+
let sites = [];
|
|
286
|
+
options = options || {};
|
|
287
|
+
var currentSite;
|
|
288
|
+
var queryFailed = false;
|
|
289
|
+
try {
|
|
290
|
+
currentSite = await GetWebInfo(siteUrl);
|
|
291
|
+
let queryFilter = '';
|
|
292
|
+
if (!options.allSiteCollections) {
|
|
293
|
+
//filter by site id
|
|
294
|
+
let siteId = await GetSiteId(siteUrl);
|
|
295
|
+
queryFilter = `SiteId:${siteId}`;
|
|
296
|
+
}
|
|
297
|
+
//Issue 6735 missing WebId for some customer (US, government GCC tenant will not return WebId)
|
|
298
|
+
let queryUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/search/query?querytext=%27${queryFilter}(contentclass:STS_Site)%20(contentclass:STS_Web)%27&trimduplicates=false&rowlimit=5000&selectproperties=%27Title,Url,WebTemplate,WebId%27`;
|
|
299
|
+
let response = await (0, rest_1.GetJson)(queryUrl, null, { ...rest_1.shortLocalCache });
|
|
300
|
+
let results = response && response.d && response.d.query && response.d.query.PrimaryQueryResult;
|
|
301
|
+
let addedSites = [];
|
|
302
|
+
if (results && results.RelevantResults.RowCount >= 0) {
|
|
303
|
+
let allPropsFound = false;
|
|
304
|
+
results.RelevantResults.Table.Rows.results.forEach(row => {
|
|
305
|
+
let Title = null;
|
|
306
|
+
let Url = null;
|
|
307
|
+
let WebId = null;
|
|
308
|
+
let WebTemplate = null;
|
|
309
|
+
let skip = false;
|
|
310
|
+
for (var i = 0; i < row.Cells.results.length; i++) {
|
|
311
|
+
let cell = row.Cells.results[i];
|
|
312
|
+
let value = (0, _dependencies_1.isNullOrEmptyString)(cell.Value) ? "" : cell.Value;
|
|
313
|
+
switch (cell.Key) {
|
|
314
|
+
case "WebTemplate":
|
|
315
|
+
WebTemplate = value;
|
|
316
|
+
if (!options.allowAppWebs && value === "APP")
|
|
317
|
+
skip = true;
|
|
318
|
+
break;
|
|
319
|
+
case "Title":
|
|
320
|
+
Title = value;
|
|
321
|
+
break;
|
|
322
|
+
case "WebId":
|
|
323
|
+
WebId = (0, _dependencies_1.normalizeGuid)(value);
|
|
324
|
+
break;
|
|
325
|
+
case "Url":
|
|
326
|
+
if (addedSites.indexOf(value.toLowerCase()) >= 0) {
|
|
327
|
+
//duplicate, skip
|
|
328
|
+
skip = true;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
Url = value;
|
|
332
|
+
}
|
|
359
333
|
break;
|
|
360
334
|
}
|
|
361
|
-
if (
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
WebId
|
|
367
|
-
WebTemplate
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
335
|
+
if (skip)
|
|
336
|
+
break; //stop the cells loop
|
|
337
|
+
allPropsFound =
|
|
338
|
+
Title !== null &&
|
|
339
|
+
Url !== null &&
|
|
340
|
+
WebId !== null &&
|
|
341
|
+
WebTemplate !== null;
|
|
342
|
+
if (allPropsFound)
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
if (!skip && allPropsFound) //don't skip, and we found all needed props
|
|
346
|
+
{
|
|
347
|
+
sites.push({
|
|
348
|
+
Title: Title,
|
|
349
|
+
ServerRelativeUrl: (0, _dependencies_1.makeServerRelativeUrl)(Url),
|
|
350
|
+
WebId: WebId,
|
|
351
|
+
WebTemplate: WebTemplate,
|
|
352
|
+
WebType: WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
|
|
353
|
+
WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
|
|
354
|
+
WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
|
|
355
|
+
_dependencies_1.WebTypes.Other
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
});
|
|
382
359
|
}
|
|
383
|
-
|
|
360
|
+
//Issue 7161
|
|
361
|
+
if (sites.length === 1 || (!(0, _dependencies_1.isNullOrUndefined)(currentSite) && !sites.filter((site) => {
|
|
362
|
+
return site.WebId !== currentSite.WebId;
|
|
363
|
+
})[0])) {
|
|
384
364
|
queryFailed = true;
|
|
385
365
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
sites.push(currentSite);
|
|
404
|
-
}
|
|
405
|
-
//Issue 6651
|
|
406
|
-
//add sub sites
|
|
407
|
-
//if the query failed, we can't rely on search to get the subwebs
|
|
408
|
-
var currentSiteSubSites = yield __getSubSites(siteUrl, options.allowAppWebs);
|
|
409
|
-
if ((0, _dependencies_1.isNotEmptyArray)(currentSiteSubSites)) {
|
|
410
|
-
sites = [...sites, ...currentSiteSubSites];
|
|
366
|
+
}
|
|
367
|
+
catch (e) {
|
|
368
|
+
queryFailed = true;
|
|
369
|
+
}
|
|
370
|
+
if (queryFailed) {
|
|
371
|
+
// Igor: Issue #7702
|
|
372
|
+
if (_spPageContextInfo && _spPageContextInfo.siteServerRelativeUrl.toLowerCase() !== siteUrl.toLowerCase()) {
|
|
373
|
+
//siteUrl = _spPageContextInfo.siteServerRelativeUrl;
|
|
374
|
+
//currentSite = await GetWebInfo(siteUrl);
|
|
375
|
+
//Kevin: Issue 1028
|
|
376
|
+
//The user may not have permission to the site collection root web. Instead of overwirting the currentSite/siteUrl,
|
|
377
|
+
//we make a request for the site collection root web. If we get a valid response, replace currentSite/siteUrl with
|
|
378
|
+
//the site collection root web info.
|
|
379
|
+
let currentSiteCollection = await GetWebInfo(_spPageContextInfo.siteServerRelativeUrl);
|
|
380
|
+
if (currentSiteCollection && !(0, _dependencies_1.isNullOrEmptyString)(currentSiteCollection.ServerRelativeUrl)) {
|
|
381
|
+
currentSite = currentSiteCollection;
|
|
382
|
+
siteUrl = _spPageContextInfo.siteServerRelativeUrl;
|
|
411
383
|
}
|
|
412
384
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
if (webIds.indexOf(site.WebId) === -1) {
|
|
417
|
-
webIds.push(site.WebId);
|
|
418
|
-
filteredSites.push(site);
|
|
419
|
-
}
|
|
385
|
+
//add current site
|
|
386
|
+
if (currentSite && (options.allowAppWebs || currentSite.WebType !== _dependencies_1.WebTypes.App)) {
|
|
387
|
+
sites.push(currentSite);
|
|
420
388
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
389
|
+
//Issue 6651
|
|
390
|
+
//add sub sites
|
|
391
|
+
//if the query failed, we can't rely on search to get the subwebs
|
|
392
|
+
var currentSiteSubSites = await __getSubSites(siteUrl, options.allowAppWebs);
|
|
393
|
+
if ((0, _dependencies_1.isNotEmptyArray)(currentSiteSubSites)) {
|
|
394
|
+
sites = [...sites, ...currentSiteSubSites];
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
var webIds = [];
|
|
398
|
+
var filteredSites = [];
|
|
399
|
+
for (let site of sites) {
|
|
400
|
+
if (webIds.indexOf(site.WebId) === -1) {
|
|
401
|
+
webIds.push(site.WebId);
|
|
402
|
+
filteredSites.push(site);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
(0, _dependencies_1.sortArray)(filteredSites, s => s.ServerRelativeUrl);
|
|
406
|
+
return filteredSites;
|
|
424
407
|
}
|
|
425
408
|
exports.GetAllSubWebs = GetAllSubWebs;
|
|
426
|
-
function __getSubSites(siteUrl, allowAppWebs) {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
s.WebTemplate === "
|
|
445
|
-
|
|
446
|
-
_dependencies_1.WebTypes.Other
|
|
447
|
-
});
|
|
448
|
-
promises.push(__getSubSites(s.ServerRelativeUrl, allowAppWebs));
|
|
449
|
-
});
|
|
450
|
-
//loop and add all sub sites
|
|
451
|
-
let allSubs = yield Promise.all(promises);
|
|
452
|
-
allSubs.forEach(subSubs => {
|
|
453
|
-
sites.push(...subSubs);
|
|
409
|
+
async function __getSubSites(siteUrl, allowAppWebs) {
|
|
410
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
411
|
+
let sites = [];
|
|
412
|
+
//try {
|
|
413
|
+
//maybe search is not wokring? use regular REST API
|
|
414
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getsubwebsfilteredforcurrentuser(nwebtemplatefilter=-1,nconfigurationfilter=0)?$Select=Title,ServerRelativeUrl,Id,WebTemplate`;
|
|
415
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache });
|
|
416
|
+
if (result && result.d && (0, _dependencies_1.isNotEmptyArray)(result.d.results)) {
|
|
417
|
+
let results = (allowAppWebs) ? result.d.results : result.d.results.filter(s => s.WebTemplate !== "APP");
|
|
418
|
+
let promises = [];
|
|
419
|
+
results.forEach(s => {
|
|
420
|
+
sites.push({
|
|
421
|
+
Title: s.Title,
|
|
422
|
+
ServerRelativeUrl: s.ServerRelativeUrl,
|
|
423
|
+
WebId: s.Id,
|
|
424
|
+
WebTemplate: s.WebTemplate,
|
|
425
|
+
WebType: s.WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
|
|
426
|
+
s.WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
|
|
427
|
+
s.WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
|
|
428
|
+
_dependencies_1.WebTypes.Other
|
|
454
429
|
});
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
//
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
430
|
+
promises.push(__getSubSites(s.ServerRelativeUrl, allowAppWebs));
|
|
431
|
+
});
|
|
432
|
+
//loop and add all sub sites
|
|
433
|
+
let allSubs = await Promise.all(promises);
|
|
434
|
+
allSubs.forEach(subSubs => {
|
|
435
|
+
sites.push(...subSubs);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
//}
|
|
439
|
+
//catch {
|
|
440
|
+
//}
|
|
441
|
+
return sites;
|
|
461
442
|
}
|
|
462
443
|
exports.__getSubSites = __getSubSites;
|
|
463
444
|
function _getWebInfoByIdRequestUrl(siteUrl, webId) {
|
|
@@ -480,26 +461,32 @@ function _postProcessGetWebInfo(webInfo) {
|
|
|
480
461
|
}
|
|
481
462
|
return null;
|
|
482
463
|
}
|
|
483
|
-
function GetWebInfo(siteUrl, webId, refreshCache) {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
let url = _getCurrentWebInfoRequestUrl(siteUrl);
|
|
497
|
-
webInfoResponse = yield (0, rest_1.GetJson)(url, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata, allowCache: refreshCache !== true }));
|
|
464
|
+
async function GetWebInfo(siteUrl, webId, refreshCache) {
|
|
465
|
+
let webInfoResponse = null;
|
|
466
|
+
try {
|
|
467
|
+
if (!(0, _dependencies_1.isNullOrEmptyString)(webId) && (0, _dependencies_1.isValidGuid)(webId)) {
|
|
468
|
+
webId = (0, _dependencies_1.normalizeGuid)(webId);
|
|
469
|
+
let currentWebId = await GetWebId(siteUrl);
|
|
470
|
+
if (currentWebId !== webId) {
|
|
471
|
+
let url = _getWebInfoByIdRequestUrl(siteUrl, webId);
|
|
472
|
+
webInfoResponse = await (0, rest_1.GetJson)(url, null, {
|
|
473
|
+
method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl), ...rest_1.shortLocalCache,
|
|
474
|
+
jsonMetadata: _dependencies_1.jsonTypes.nometadata,
|
|
475
|
+
allowCache: refreshCache !== true
|
|
476
|
+
});
|
|
498
477
|
}
|
|
499
478
|
}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
479
|
+
if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
|
|
480
|
+
let url = _getCurrentWebInfoRequestUrl(siteUrl);
|
|
481
|
+
webInfoResponse = await (0, rest_1.GetJson)(url, null, {
|
|
482
|
+
...rest_1.shortLocalCache,
|
|
483
|
+
jsonMetadata: _dependencies_1.jsonTypes.nometadata,
|
|
484
|
+
allowCache: refreshCache !== true
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
catch (e) { }
|
|
489
|
+
return _postProcessGetWebInfo(webInfoResponse);
|
|
503
490
|
}
|
|
504
491
|
exports.GetWebInfo = GetWebInfo;
|
|
505
492
|
function GetWebInfoSync(siteUrl, webId) {
|
|
@@ -509,7 +496,10 @@ function GetWebInfoSync(siteUrl, webId) {
|
|
|
509
496
|
let currentWebId = GetWebIdSync(siteUrl);
|
|
510
497
|
if (currentWebId !== webId) {
|
|
511
498
|
let url = _getWebInfoByIdRequestUrl(siteUrl, webId);
|
|
512
|
-
let syncResult = (0, rest_1.GetJsonSync)(url, null,
|
|
499
|
+
let syncResult = (0, rest_1.GetJsonSync)(url, null, {
|
|
500
|
+
method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl), ...rest_1.shortLocalCache,
|
|
501
|
+
jsonMetadata: _dependencies_1.jsonTypes.nometadata
|
|
502
|
+
});
|
|
513
503
|
if (syncResult.success) {
|
|
514
504
|
webInfoResponse = syncResult.result;
|
|
515
505
|
}
|
|
@@ -517,7 +507,10 @@ function GetWebInfoSync(siteUrl, webId) {
|
|
|
517
507
|
}
|
|
518
508
|
if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
|
|
519
509
|
let url = _getCurrentWebInfoRequestUrl(siteUrl);
|
|
520
|
-
let syncResult = (0, rest_1.GetJsonSync)(url, null,
|
|
510
|
+
let syncResult = (0, rest_1.GetJsonSync)(url, null, {
|
|
511
|
+
...rest_1.shortLocalCache,
|
|
512
|
+
jsonMetadata: _dependencies_1.jsonTypes.nometadata
|
|
513
|
+
});
|
|
521
514
|
if (syncResult.success) {
|
|
522
515
|
webInfoResponse = syncResult.result;
|
|
523
516
|
}
|
|
@@ -525,46 +518,48 @@ function GetWebInfoSync(siteUrl, webId) {
|
|
|
525
518
|
return _postProcessGetWebInfo(webInfoResponse);
|
|
526
519
|
}
|
|
527
520
|
exports.GetWebInfoSync = GetWebInfoSync;
|
|
528
|
-
function GetWebRoleDefinitions(siteUrl) {
|
|
529
|
-
return
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
.catch(() => []);
|
|
535
|
-
});
|
|
521
|
+
async function GetWebRoleDefinitions(siteUrl) {
|
|
522
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/RoleDefinitions?filter=Hidden ne true`, null, { ...rest_1.longLocalCache })
|
|
523
|
+
.then(r => {
|
|
524
|
+
return r.d.results || [];
|
|
525
|
+
})
|
|
526
|
+
.catch(() => []);
|
|
536
527
|
}
|
|
537
528
|
exports.GetWebRoleDefinitions = GetWebRoleDefinitions;
|
|
529
|
+
;
|
|
530
|
+
/** get roles for site or list */
|
|
531
|
+
async function GetRoleAssignments(siteUrl, listIdOrTitle) {
|
|
532
|
+
const url = `${(0, _dependencies_1.isNullOrEmptyString)(listIdOrTitle) ? (0, common_1.GetRestBaseUrl)(siteUrl) + "/web" : (0, list_1.GetListRestUrl)(siteUrl, listIdOrTitle)}/roleassignments?$expand=Member/users,RoleDefinitionBindings`;
|
|
533
|
+
const result = await (0, rest_1.GetJson)(url, undefined, { jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
534
|
+
return result.value;
|
|
535
|
+
}
|
|
536
|
+
exports.GetRoleAssignments = GetRoleAssignments;
|
|
538
537
|
/** Web sub webs for the selected site */
|
|
539
|
-
function GetSubWebs(siteUrl, options) {
|
|
540
|
-
return
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
.catch(() => []);
|
|
546
|
-
});
|
|
538
|
+
async function GetSubWebs(siteUrl, options) {
|
|
539
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/webs${options && options.allowAppWebs ? "" : "&$filter=WebTemplate ne 'APP'"}`, null, { ...rest_1.shortLocalCache })
|
|
540
|
+
.then(r => {
|
|
541
|
+
return r.d.results;
|
|
542
|
+
})
|
|
543
|
+
.catch(() => []);
|
|
547
544
|
}
|
|
548
545
|
exports.GetSubWebs = GetSubWebs;
|
|
549
546
|
/** Web sub webs for the selected site */
|
|
550
|
-
function GetAppTiles(siteUrl) {
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
return
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
.catch(() => []);
|
|
567
|
-
});
|
|
547
|
+
async function GetAppTiles(siteUrl) {
|
|
548
|
+
//Issue 933 this api does not work in a classic app web
|
|
549
|
+
if ((0, common_1.hasGlobalContext)() && _spPageContextInfo.isAppWeb) {
|
|
550
|
+
logger.warn('GetAppTiles does not work in an app web');
|
|
551
|
+
return null;
|
|
552
|
+
}
|
|
553
|
+
return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
|
|
554
|
+
.then(r => {
|
|
555
|
+
return (0, _dependencies_1.isNotEmptyArray)(r.value) ? r.value.map(t => {
|
|
556
|
+
return {
|
|
557
|
+
Title: t.Title,
|
|
558
|
+
ProductId: (0, _dependencies_1.normalizeGuid)(t.ProductId)
|
|
559
|
+
};
|
|
560
|
+
}) : [];
|
|
561
|
+
})
|
|
562
|
+
.catch(() => []);
|
|
568
563
|
}
|
|
569
564
|
exports.GetAppTiles = GetAppTiles;
|
|
570
565
|
/** Web sub webs for the selected site */
|
|
@@ -575,7 +570,7 @@ function GetAppTilesSync(siteUrl) {
|
|
|
575
570
|
logger.warn('GetAppTiles does not work in an app web');
|
|
576
571
|
return null;
|
|
577
572
|
}
|
|
578
|
-
let r = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null,
|
|
573
|
+
let r = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
579
574
|
return r.success && r.result && (0, _dependencies_1.isNotEmptyArray)(r.result.value) ? r.result.value.map(t => {
|
|
580
575
|
return {
|
|
581
576
|
Title: t.Title,
|
|
@@ -590,17 +585,15 @@ function GetWebType(WebTemplate) {
|
|
|
590
585
|
WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
|
|
591
586
|
_dependencies_1.WebTypes.Other;
|
|
592
587
|
}
|
|
593
|
-
function GetServerTimeZone(siteUrl) {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
return null;
|
|
603
|
-
});
|
|
588
|
+
async function GetServerTimeZone(siteUrl) {
|
|
589
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
590
|
+
let getTimeZoneUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone`;
|
|
591
|
+
let result = await (0, rest_1.GetJson)(getTimeZoneUrl, null, { ...rest_1.longLocalCache });
|
|
592
|
+
if (result && result.d && !(0, _dependencies_1.isNullOrUndefined)(result.d)) {
|
|
593
|
+
return result.d;
|
|
594
|
+
}
|
|
595
|
+
else
|
|
596
|
+
return null;
|
|
604
597
|
}
|
|
605
598
|
exports.GetServerTimeZone = GetServerTimeZone;
|
|
606
599
|
/**
|
|
@@ -611,20 +604,18 @@ exports.GetServerTimeZone = GetServerTimeZone;
|
|
|
611
604
|
* We must send a date in, since places like Israel have different offset for specific dates (GMT+2 or GMT+3)
|
|
612
605
|
* or just call SPServerLocalTimeToUTCDate
|
|
613
606
|
*/
|
|
614
|
-
function GetServerTimeOffset(siteUrl, date) {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
return 0;
|
|
627
|
-
});
|
|
607
|
+
async function GetServerTimeOffset(siteUrl, date) {
|
|
608
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
609
|
+
let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
|
|
610
|
+
let inputDate = new Date(dateStr);
|
|
611
|
+
let getTimeZoneOffsetUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(dateStr)}'`;
|
|
612
|
+
let result = await (0, rest_1.GetJson)(getTimeZoneOffsetUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
613
|
+
if (result && !(0, _dependencies_1.isNullOrEmptyString)(result.value)) {
|
|
614
|
+
let resultDate = new Date(result.value.slice(0, result.value.length - 1)); //remove Z and get as date.
|
|
615
|
+
return (resultDate.getTime() - inputDate.getTime());
|
|
616
|
+
}
|
|
617
|
+
else
|
|
618
|
+
return 0;
|
|
628
619
|
}
|
|
629
620
|
/**
|
|
630
621
|
* to be used when parsing string date to date object in JavaScript like so:
|
|
@@ -639,7 +630,7 @@ function GetServerTimeOffsetSync(siteUrl, date) {
|
|
|
639
630
|
let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
|
|
640
631
|
let inputDate = new Date(dateStr);
|
|
641
632
|
let getTimeZoneOffsetUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(dateStr)}'`;
|
|
642
|
-
let result = (0, rest_1.GetJsonSync)(getTimeZoneOffsetUrl, null,
|
|
633
|
+
let result = (0, rest_1.GetJsonSync)(getTimeZoneOffsetUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
643
634
|
if (result && result.success && !(0, _dependencies_1.isNullOrEmptyString)(result.result.value)) {
|
|
644
635
|
let resultDate = new Date(result.result.value.slice(0, result.result.value.length - 1)); //remove Z and get as date.
|
|
645
636
|
return (resultDate.getTime() - inputDate.getTime());
|
|
@@ -648,17 +639,15 @@ function GetServerTimeOffsetSync(siteUrl, date) {
|
|
|
648
639
|
return 0;
|
|
649
640
|
}
|
|
650
641
|
/** get date yyyy:MM:ddTHH:mm:ss NO ZED, or a date object created in the server local time, and return a date object of the corrected UTC time */
|
|
651
|
-
function SPServerLocalTimeToUTCDate(siteUrl, date) {
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
return _SPServerLocalTimeToUTCDate(date, serverTimeOffset);
|
|
661
|
-
});
|
|
642
|
+
async function SPServerLocalTimeToUTCDate(siteUrl, date) {
|
|
643
|
+
//used in 7700
|
|
644
|
+
if ((0, _dependencies_1.isNullOrEmptyString)(date))
|
|
645
|
+
return null;
|
|
646
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
647
|
+
if (!(0, _dependencies_1.isDate)(date))
|
|
648
|
+
date = new Date(date);
|
|
649
|
+
let serverTimeOffset = await GetServerTimeOffset(siteUrl, date);
|
|
650
|
+
return _SPServerLocalTimeToUTCDate(date, serverTimeOffset);
|
|
662
651
|
}
|
|
663
652
|
exports.SPServerLocalTimeToUTCDate = SPServerLocalTimeToUTCDate;
|
|
664
653
|
/** get date yyyy:MM:ddTHH:mm:ss NO ZED, or a date object created in the server local time, and return a date object of the corrected UTC time */
|
|
@@ -682,16 +671,14 @@ function _SPServerLocalTimeToUTCDate(date, serverTimeOffset) {
|
|
|
682
671
|
* expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(GetServerTimeOffset + date.getTime()))
|
|
683
672
|
* or: SPServerLocalTimeToUTCDate
|
|
684
673
|
*/
|
|
685
|
-
function SPServerLocalTimeToUTC(siteUrl, date) {
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
return result && result.value || null;
|
|
694
|
-
});
|
|
674
|
+
async function SPServerLocalTimeToUTC(siteUrl, date) {
|
|
675
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
676
|
+
if ((0, _dependencies_1.isDate)(date)) {
|
|
677
|
+
date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
|
|
678
|
+
}
|
|
679
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(date)}'`;
|
|
680
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
681
|
+
return result && result.value || null;
|
|
695
682
|
}
|
|
696
683
|
exports.SPServerLocalTimeToUTC = SPServerLocalTimeToUTC;
|
|
697
684
|
/**
|
|
@@ -706,7 +693,7 @@ function SPServerLocalTimeToUTCSync(siteUrl, date) {
|
|
|
706
693
|
date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
|
|
707
694
|
}
|
|
708
695
|
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(date)}'`;
|
|
709
|
-
let result = (0, rest_1.GetJsonSync)(restUrl, null,
|
|
696
|
+
let result = (0, rest_1.GetJsonSync)(restUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
710
697
|
return result.success && result.result.value || null;
|
|
711
698
|
}
|
|
712
699
|
exports.SPServerLocalTimeToUTCSync = SPServerLocalTimeToUTCSync;
|
|
@@ -714,16 +701,14 @@ exports.SPServerLocalTimeToUTCSync = SPServerLocalTimeToUTCSync;
|
|
|
714
701
|
* returns yyyy:MM:ddTHH:mm:ss NO ZED
|
|
715
702
|
* expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(date.getTime()-GetServerTimeOffset,{omitZ:true}))
|
|
716
703
|
*/
|
|
717
|
-
function UTCToSPServerLocalTime(siteUrl, date) {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
return result && result.value || null;
|
|
726
|
-
});
|
|
704
|
+
async function UTCToSPServerLocalTime(siteUrl, date) {
|
|
705
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
706
|
+
if ((0, _dependencies_1.isDate)(date)) {
|
|
707
|
+
date = (0, date_1.toIsoDateFormat)(date);
|
|
708
|
+
}
|
|
709
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/utcToLocalTime(@date)?@date='${encodeURIComponent(date)}'`;
|
|
710
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.longLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
711
|
+
return result && result.value || null;
|
|
727
712
|
}
|
|
728
713
|
exports.UTCToSPServerLocalTime = UTCToSPServerLocalTime;
|
|
729
714
|
/** get utc date yyyy:MM:ddTHH:mm:ssZ
|
|
@@ -736,7 +721,7 @@ function UTCToSPServerLocalTimeSync(siteUrl, date) {
|
|
|
736
721
|
date = (0, date_1.toIsoDateFormat)(date);
|
|
737
722
|
}
|
|
738
723
|
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/utcToLocalTime(@date)?@date='${encodeURIComponent(date)}'`;
|
|
739
|
-
let result = (0, rest_1.GetJsonSync)(restUrl, null,
|
|
724
|
+
let result = (0, rest_1.GetJsonSync)(restUrl, null, { ...rest_1.longLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
740
725
|
return result.success && result.result.value || null;
|
|
741
726
|
}
|
|
742
727
|
exports.UTCToSPServerLocalTimeSync = UTCToSPServerLocalTimeSync;
|
|
@@ -754,20 +739,18 @@ function SPServerLocalTimeSync(siteUrl) {
|
|
|
754
739
|
return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
|
|
755
740
|
}
|
|
756
741
|
exports.SPServerLocalTimeSync = SPServerLocalTimeSync;
|
|
757
|
-
function SPServerLocalTime(siteUrl) {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
|
|
770
|
-
});
|
|
742
|
+
async function SPServerLocalTime(siteUrl) {
|
|
743
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
744
|
+
var clientNowServerDeltas = (0, _dependencies_1.getGlobal)("ClientNowServerDeltas");
|
|
745
|
+
var clientNowServerDelta = clientNowServerDeltas[siteUrl];
|
|
746
|
+
var now = new Date();
|
|
747
|
+
if ((0, _dependencies_1.isNullOrUndefined)(clientNowServerDelta)) {
|
|
748
|
+
var local = await UTCToSPServerLocalTime(siteUrl, now.toISOString());
|
|
749
|
+
clientNowServerDelta = (+now - +(new Date(local)));
|
|
750
|
+
clientNowServerDeltas[siteUrl] = clientNowServerDelta;
|
|
751
|
+
}
|
|
752
|
+
var newdate = new Date(+now - clientNowServerDelta);
|
|
753
|
+
return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
|
|
771
754
|
}
|
|
772
755
|
exports.SPServerLocalTime = SPServerLocalTime;
|
|
773
756
|
function GetContextWebInformationSync(siteUrl) {
|
|
@@ -799,62 +782,57 @@ function GetContextWebInformationSync(siteUrl) {
|
|
|
799
782
|
}
|
|
800
783
|
exports.GetContextWebInformationSync = GetContextWebInformationSync;
|
|
801
784
|
/** Get UserCustomActions for web */
|
|
802
|
-
function GetUserCustomActions(siteUrl, allowCache = true) {
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
785
|
+
async function GetUserCustomActions(siteUrl, allowCache = true) {
|
|
786
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
787
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/UserCustomActions?&select=Name,ScriptSrc,Title`;
|
|
788
|
+
let cacheOptions = allowCache === true ? rest_1.shortLocalCache : { allowCache: false };
|
|
789
|
+
let restOptions = {
|
|
790
|
+
jsonMetadata: _dependencies_1.jsonTypes.nometadata,
|
|
791
|
+
...cacheOptions
|
|
792
|
+
};
|
|
793
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, restOptions);
|
|
794
|
+
return result && result.value || null;
|
|
811
795
|
}
|
|
812
796
|
exports.GetUserCustomActions = GetUserCustomActions;
|
|
813
797
|
/** Get web regional settings */
|
|
814
|
-
function GetRegionalSettings(siteUrl) {
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
return null;
|
|
825
|
-
});
|
|
798
|
+
async function GetRegionalSettings(siteUrl) {
|
|
799
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
800
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings`;
|
|
801
|
+
try {
|
|
802
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.mediumLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
803
|
+
return result;
|
|
804
|
+
}
|
|
805
|
+
catch {
|
|
806
|
+
}
|
|
807
|
+
return null;
|
|
826
808
|
}
|
|
827
809
|
exports.GetRegionalSettings = GetRegionalSettings;
|
|
828
810
|
/** Get all web properties */
|
|
829
|
-
function GetAllWebProperties(siteUrl) {
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
return null;
|
|
840
|
-
});
|
|
811
|
+
async function GetAllWebProperties(siteUrl) {
|
|
812
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
813
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties`;
|
|
814
|
+
try {
|
|
815
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
816
|
+
return result;
|
|
817
|
+
}
|
|
818
|
+
catch {
|
|
819
|
+
}
|
|
820
|
+
return null;
|
|
841
821
|
}
|
|
842
822
|
exports.GetAllWebProperties = GetAllWebProperties;
|
|
843
823
|
/** Get web property by name */
|
|
844
|
-
function GetWebPropertyByName(name, siteUrl) {
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
return result[name];
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
catch (_a) {
|
|
824
|
+
async function GetWebPropertyByName(name, siteUrl) {
|
|
825
|
+
siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
|
|
826
|
+
let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties?$select=${name}`;
|
|
827
|
+
try {
|
|
828
|
+
let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
829
|
+
if (!(0, _dependencies_1.isNullOrUndefined)(result) && !(0, _dependencies_1.isNullOrUndefined)(result[name])) {
|
|
830
|
+
return result[name];
|
|
855
831
|
}
|
|
856
|
-
|
|
857
|
-
|
|
832
|
+
}
|
|
833
|
+
catch {
|
|
834
|
+
}
|
|
835
|
+
return null;
|
|
858
836
|
}
|
|
859
837
|
exports.GetWebPropertyByName = GetWebPropertyByName;
|
|
860
838
|
function getFormDigest(serverRelativeWebUrl) {
|
|
@@ -897,33 +875,35 @@ function ensureLegacyProps(pageContext) {
|
|
|
897
875
|
}
|
|
898
876
|
}
|
|
899
877
|
exports.ensureLegacyProps = ensureLegacyProps;
|
|
900
|
-
function WebHasUniquePermissions(siteUrl) {
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
return has.HasUniqueRoleAssignments === true;
|
|
905
|
-
});
|
|
878
|
+
async function WebHasUniquePermissions(siteUrl) {
|
|
879
|
+
let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web?$select=hasuniqueroleassignments`;
|
|
880
|
+
let has = await (0, rest_1.GetJson)(url, undefined, { allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
881
|
+
return has.HasUniqueRoleAssignments === true;
|
|
906
882
|
}
|
|
907
883
|
exports.WebHasUniquePermissions = WebHasUniquePermissions;
|
|
908
|
-
function BreakWebPermissionInheritance(siteUrl, clear = true) {
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
912
|
-
});
|
|
884
|
+
async function BreakWebPermissionInheritance(siteUrl, clear = true) {
|
|
885
|
+
let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/breakroleinheritance(copyRoleAssignments=${clear ? 'false' : 'true'}, clearSubscopes=true)`;
|
|
886
|
+
await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
913
887
|
}
|
|
914
888
|
exports.BreakWebPermissionInheritance = BreakWebPermissionInheritance;
|
|
915
|
-
function AssignWebPermission(siteUrl, principalId, roleId) {
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
919
|
-
});
|
|
889
|
+
async function AssignWebPermission(siteUrl, principalId, roleId) {
|
|
890
|
+
let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/addroleassignment(principalid=${principalId},roleDefId=${roleId})`;
|
|
891
|
+
await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
920
892
|
}
|
|
921
893
|
exports.AssignWebPermission = AssignWebPermission;
|
|
922
|
-
function RemoveWebPermission(siteUrl, principalId, roleId) {
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
926
|
-
});
|
|
894
|
+
async function RemoveWebPermission(siteUrl, principalId, roleId) {
|
|
895
|
+
let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/removeroleassignment(principalid=${principalId},roleDefId=${roleId})`;
|
|
896
|
+
await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
|
|
927
897
|
}
|
|
928
898
|
exports.RemoveWebPermission = RemoveWebPermission;
|
|
899
|
+
/** set a user as site admin - rejects/throws if not successful */
|
|
900
|
+
async function SetUserAsSiteAdmin(siteUrl, userId) {
|
|
901
|
+
const url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getuserbyid(${userId})`;
|
|
902
|
+
await (0, rest_1.GetJson)(url, (0, _dependencies_1.jsonStringify)({
|
|
903
|
+
"__metadata": { "type": "SP.User" },
|
|
904
|
+
"IsSiteAdmin": true
|
|
905
|
+
}), { method: 'POST', xHttpMethod: 'MERGE' });
|
|
906
|
+
return true;
|
|
907
|
+
}
|
|
908
|
+
exports.SetUserAsSiteAdmin = SetUserAsSiteAdmin;
|
|
929
909
|
//# sourceMappingURL=web.js.map
|