From 100a876fafbd180113c6036788450805cb2ca884 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Fri, 21 Dec 2018 10:04:58 +0100 Subject: [PATCH] #205 - Sort order fix in TermPicker --- src/controls/taxonomyPicker/TermParent.tsx | 6 ++---- src/services/SPTermStorePickerService.ts | 17 ++++++++--------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/controls/taxonomyPicker/TermParent.tsx b/src/controls/taxonomyPicker/TermParent.tsx index 8e4e3fa3e..11fc527ca 100644 --- a/src/controls/taxonomyPicker/TermParent.tsx +++ b/src/controls/taxonomyPicker/TermParent.tsx @@ -31,14 +31,12 @@ export default class TermParent extends React.Component t.Id.toLowerCase() === this.props.anchorId.toLowerCase()).shift(); - if (anchorTerm) - { + if (anchorTerm) { const anchorDepth = anchorTerm.PathDepth; this._anchorName = anchorTerm.Name; var anchorTerms : ITerm[] = this._terms.filter(t => t.PathOfTerm.substring(0, anchorTerm.PathOfTerm.length) === anchorTerm.PathOfTerm && t.Id !== anchorTerm.Id); diff --git a/src/services/SPTermStorePickerService.ts b/src/services/SPTermStorePickerService.ts index 3b6604590..05496eff1 100644 --- a/src/services/SPTermStorePickerService.ts +++ b/src/services/SPTermStorePickerService.ts @@ -57,7 +57,7 @@ export default class SPTermStorePickerService { return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => { return serviceResponse.json().then((serviceJSONResponse: any) => { // Construct results - let termStoreResult: ITermStore[] = serviceJSONResponse.filter(r => r['_ObjectType_'] === 'SP.Taxonomy.TermStore'); + let termStoreResult: ITermStore[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermStore'); // Check if term store was retrieved if (termStoreResult.length > 0) { // Check if the termstore needs to be filtered or limited @@ -146,13 +146,13 @@ export default class SPTermStorePickerService { return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => { return serviceResponse.json().then((serviceJSONResponse: any) => { - const termStoreResultTermSets: ITermSet[] = serviceJSONResponse.filter(r => r['_ObjectType_'] === 'SP.Taxonomy.TermSet'); + const termStoreResultTermSets: ITermSet[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermSet'); if (termStoreResultTermSets.length > 0) { var termStoreResultTermSet = termStoreResultTermSets[0]; termStoreResultTermSet.Terms = []; // Retrieve the term collection results - const termStoreResultTerms: ITerms[] = serviceJSONResponse.filter(r => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection'); + const termStoreResultTerms: ITerms[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection'); if (termStoreResultTerms.length > 0) { // Retrieve all terms let terms = termStoreResultTerms[0]._Child_Items_; @@ -264,7 +264,7 @@ export default class SPTermStorePickerService { return this.context.spHttpClient.post(this.clientServiceUrl, SPHttpClient.configurations.v1, httpPostOptions).then((serviceResponse: SPHttpClientResponse) => { return serviceResponse.json().then((serviceJSONResponse: any) => { // Retrieve the term collection results - const termStoreResult: ITerms[] = serviceJSONResponse.filter(r => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection'); + const termStoreResult: ITerms[] = serviceJSONResponse.filter((r: { [x: string]: string; }) => r['_ObjectType_'] === 'SP.Taxonomy.TermCollection'); if (termStoreResult.length > 0) { // Retrieve all terms @@ -302,15 +302,15 @@ export default class SPTermStorePickerService { * @param b term 2 */ private _sortTerms(a: ITerm, b: ITerm) { - if(a.CustomSortOrderIndex === -1){ - if (a.PathOfTerm < b.PathOfTerm) { + if (a.CustomSortOrderIndex === -1) { + if (a.PathOfTerm.toLowerCase() < b.PathOfTerm.toLowerCase()) { return -1; } - if (a.PathOfTerm > b.PathOfTerm) { + if (a.PathOfTerm.toLowerCase() > b.PathOfTerm.toLowerCase()) { return 1; } return 0; - }else{ + } else { if (a.CustomSortOrderIndex < b.CustomSortOrderIndex) { return -1; } @@ -319,7 +319,6 @@ export default class SPTermStorePickerService { } return 0; } - } /**