@@ -33,7 +33,7 @@ export default class SPTermStorePickerService {
33
33
if ( Environment . type !== EnvironmentType . Local ) {
34
34
{
35
35
this . clientServiceUrl = this . context . pageContext . web . absoluteUrl + '/_vti_bin/client.svc/ProcessQuery' ;
36
- this . suggestionServiceUrl = this . context . pageContext . web . absoluteUrl + "/_vti_bin/TaxonomyInternalService.json/GetSuggestions" ;
36
+ this . suggestionServiceUrl = this . context . pageContext . web . absoluteUrl + "/_vti_bin/TaxonomyInternalService.json/GetSuggestions" ;
37
37
}
38
38
}
39
39
}
@@ -192,7 +192,7 @@ export default class SPTermStorePickerService {
192
192
const termStoreResultTermSets : ITermSet [ ] = serviceJSONResponse . filter ( ( r : { [ x : string ] : string ; } ) => r [ '_ObjectType_' ] === 'SP.Taxonomy.TermSet' ) ;
193
193
194
194
if ( termStoreResultTermSets . length > 0 ) {
195
- var termStoreResultTermSet = termStoreResultTermSets [ 0 ] ;
195
+ let termStoreResultTermSet = termStoreResultTermSets [ 0 ] ;
196
196
termStoreResultTermSet . Terms = [ ] ;
197
197
// Retrieve the term collection results
198
198
const termStoreResultTerms : ITerms [ ] = serviceJSONResponse . filter ( ( r : { [ x : string ] : string ; } ) => r [ '_ObjectType_' ] === 'SP.Taxonomy.TermCollection' ) ;
@@ -230,8 +230,13 @@ export default class SPTermStorePickerService {
230
230
termStoreResultTermSet . Terms = terms ;
231
231
}
232
232
}
233
-
234
- sessionStorage . setItem ( termsetId , JSON . stringify ( termStoreResultTermSet ) ) ;
233
+ try {
234
+ if ( window . sessionStorage ) {
235
+ window . sessionStorage . setItem ( termsetId , JSON . stringify ( termStoreResultTermSet ) ) ;
236
+ }
237
+ } catch ( error ) {
238
+ // do nothing, sometimes storage quota exceed error if too many items
239
+ }
235
240
return termStoreResultTermSet ;
236
241
}
237
242
return null ;
@@ -283,11 +288,18 @@ export default class SPTermStorePickerService {
283
288
}
284
289
285
290
private getTermsById ( termId ) {
286
- var terms = sessionStorage . getItem ( termId ) ;
287
- if ( terms )
288
- return JSON . parse ( terms ) ;
289
- else
291
+ try {
292
+ if ( window . sessionStorage ) {
293
+ let terms = window . sessionStorage . getItem ( termId ) ;
294
+ if ( terms ) {
295
+ return JSON . parse ( terms ) ;
296
+ } else {
297
+ return null ;
298
+ }
299
+ }
300
+ } catch ( error ) {
290
301
return null ;
302
+ }
291
303
}
292
304
293
305
private searchTermsBySearchText ( terms , searchText ) {
@@ -303,7 +315,7 @@ export default class SPTermStorePickerService {
303
315
// If the running environment is local, load the data from the mock
304
316
return SPTermStoreMockHttpClient . searchTermsByName ( searchText ) ;
305
317
} else {
306
- var childTerms = this . getTermsById ( termId ) ;
318
+ let childTerms = this . getTermsById ( termId ) ;
307
319
if ( childTerms ) {
308
320
return this . searchTermsBySearchText ( childTerms , searchText ) ;
309
321
}
@@ -361,7 +373,14 @@ export default class SPTermStorePickerService {
361
373
returnTerms . push ( this . convertTermToPickerTerm ( term ) ) ;
362
374
} ) ;
363
375
364
- sessionStorage . setItem ( anchorId , JSON . stringify ( returnTerms ) ) ;
376
+ try {
377
+ if ( window . sessionStorage ) {
378
+ window . sessionStorage . setItem ( anchorId , JSON . stringify ( returnTerms ) ) ;
379
+ }
380
+ }
381
+ catch ( error ) {
382
+ // do nothing
383
+ }
365
384
}
366
385
} else {
367
386
terms . forEach ( term => {
@@ -396,14 +415,14 @@ export default class SPTermStorePickerService {
396
415
return ;
397
416
}
398
417
}
399
- if ( termStore === undefined || termStore . length === 0 ) {
418
+ if ( termStore === undefined || termStore . length === 0 ) {
400
419
resolve ( null ) ;
401
420
return ;
402
421
}
403
422
404
423
let data = {
405
424
start : searchText ,
406
- lcid : this . context . pageContext . web . language , // TODO : get the user's navitation LCID. Here it's the default web language LCID
425
+ lcid : this . context . pageContext . web . language , // TODO : get the user's navitation LCID. Here it's the default web language LCID
407
426
sspList : this . cleanGuid ( termStore [ 0 ] . Id ) ,
408
427
termSetList : TermSetId ,
409
428
anchorId : this . props . anchorId ? this . props . anchorId : EmptyGuid ,
@@ -579,7 +598,7 @@ export default class SPTermStorePickerService {
579
598
if ( term . Paths && term . Paths . length > 0 ) {
580
599
const fullPath = term . Paths [ 0 ] . replace ( / ^ \[ / , "" ) . replace ( / \] $ / , "" ) ;
581
600
const fullPathParts = fullPath . split ( ":" ) ;
582
- path = fullPathParts . join ( ";" ) + ";" + term . DefaultLabel ;
601
+ path = fullPathParts . join ( ";" ) + ";" + term . DefaultLabel ;
583
602
termSetName = fullPathParts [ 0 ] ;
584
603
}
585
604
return {
0 commit comments