From 47d553f8f0bce15f81c802409b3ada98ae559187 Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez(pragmatismo.io)" Date: Thu, 28 Oct 2021 15:52:18 -0300 Subject: [PATCH] fix(all): Comparison of strings in FIND operators. --- .../basic.gblib/services/SystemKeywords.ts | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts index 8396801d..f13861bf 100644 --- a/packages/basic.gblib/services/SystemKeywords.ts +++ b/packages/basic.gblib/services/SystemKeywords.ts @@ -445,15 +445,15 @@ export class SystemKeywords { await CollectionUtil.asyncForEach(filters, async filter => { let result = results.text[foundIndex][filter.columnIndex]; + let wholeWord = true; + if (this.dk.user && this.dk.user.basicOptions && this.dk.user.basicOptions.wholeWord) { + wholeWord = this.dk.user.basicOptions.wholeWord; + } switch (filter.dataType) { case 'string': switch (filter.operator) { case '=': - let wholeWord = true; - if (this.dk.user && this.dk.user.basicOptions && this.dk.user.basicOptions.wholeWord) { - wholeWord = this.dk.user.basicOptions.wholeWord; - } if (wholeWord) { if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) { filterAcceptCount++; @@ -466,13 +466,27 @@ export class SystemKeywords { } break; case 'not in': - if (filter.value.indexOf(result) === -1) { - filterAcceptCount++; + if (wholeWord) { + if (result && result.toLowerCase().trim() !== filter.value.toLowerCase().trim()) { + filterAcceptCount++; + } + } + else { + if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) === -1) { + filterAcceptCount++; + } } break; case 'in': - if (filter.value.indexOf(result) !== -1) { - filterAcceptCount++; + if (wholeWord) { + if (result && result.toLowerCase().trim() === filter.value.toLowerCase().trim()) { + filterAcceptCount++; + } + } + else { + if (result && result.toLowerCase().trim().indexOf(filter.value.toLowerCase().trim()) > -1) { + filterAcceptCount++; + } } break; }