@rh-support/cases 1.0.6 → 1.0.8
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/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +1 -1
- package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.js +4 -1
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +4 -4
- package/lib/esm/utils/caseListUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseListUtils.js +14 -9
- package/lib/esm/utils/caseSearchUtils.d.ts +1 -1
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +84 -9
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAsBA,UAAU,MAAM;IACZ,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAsBA,UAAU,MAAM;IACZ,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,eAoLvC"}
|
|
@@ -60,7 +60,7 @@ export function CaseSearch(props) {
|
|
|
60
60
|
const onSearchTypeChange = (newType) => {
|
|
61
61
|
var _a, _b;
|
|
62
62
|
if (newType === CaseSearchQueryType.ADVANCED) {
|
|
63
|
-
const parsedQuery = createUserFriendlyQueryFromFilterStateAdvancedSearch(filterState.filterInfo, (_a = filterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.queryString
|
|
63
|
+
const parsedQuery = createUserFriendlyQueryFromFilterStateAdvancedSearch(filterState.filterInfo, (_a = filterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.queryString);
|
|
64
64
|
updateFilterQuery(dispatch, {
|
|
65
65
|
type: CaseSearchQueryType.ADVANCED,
|
|
66
66
|
queryString: (_b = filterState.filterQueryInfo) === null || _b === void 0 ? void 0 : _b.queryString,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA4BA,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAClB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA4BA,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAClB,EAAE,MAAM,eA4QR"}
|
|
@@ -135,7 +135,10 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
|
|
|
135
135
|
: currentCaseSearchString;
|
|
136
136
|
}
|
|
137
137
|
else if (selectedSearchNameToEdit && previousBookmarkedSearchesObj[selectedSearchNameToEdit]) {
|
|
138
|
-
queryStr =
|
|
138
|
+
queryStr =
|
|
139
|
+
currentSearchType === CaseSearchQueryType.BASIC
|
|
140
|
+
? createUserFriendlyQueryFromFilterState(previousBookmarkedSearchesObj[selectedSearchNameToEdit].filterState, previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString)
|
|
141
|
+
: previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString;
|
|
139
142
|
}
|
|
140
143
|
else {
|
|
141
144
|
queryStr = previousBookmarkedSearchesObj[localSavedSearchName] || '';
|
|
@@ -94,7 +94,7 @@ export default function useAdvanceSearchParser({ onInit }) {
|
|
|
94
94
|
multipleValue = "(" val:(value)+ ")" { return joinByOr(val); }
|
|
95
95
|
stringOrMulti = string / multipleValue
|
|
96
96
|
|
|
97
|
-
basicFieldName = "
|
|
97
|
+
basicFieldName = "assignedToName" {return "${SolrKeys.ownerName}";}
|
|
98
98
|
/ "createdByName" {return "${SolrKeys.createdBy}";}
|
|
99
99
|
/ "createdDate" {return "${SolrKeys.createdDate}";}
|
|
100
100
|
/ "closedDate" {return "${SolrKeys.caseClosedDate}";}
|
|
@@ -102,7 +102,7 @@ export default function useAdvanceSearchParser({ onInit }) {
|
|
|
102
102
|
/ "summary" {return "${SolrKeys.caseSummary}";}
|
|
103
103
|
/ "lastModifiedDate" {return "${SolrKeys.modifiedDate}";}
|
|
104
104
|
/ "lastModifiedByName" {return "${SolrKeys.modifiedBy}";}
|
|
105
|
-
/ "ownerName" {return "${SolrKeys.
|
|
105
|
+
/ "ownerName" {return "${SolrKeys.contactName}";}
|
|
106
106
|
/ "caseNumber" {return "${SolrKeys.caseNumber}";}
|
|
107
107
|
/ "openshiftClusterId" {return "${SolrKeys.openshiftClusterId}";}
|
|
108
108
|
/ "alternateCaseId" {return "${SolrKeys.alternateId}";}
|
|
@@ -110,8 +110,8 @@ export default function useAdvanceSearchParser({ onInit }) {
|
|
|
110
110
|
cepFieldName = "CEP" {return "${SolrKeys.cep}";}
|
|
111
111
|
ftsFieldName = "FTS" {return "${SolrKeys.fts}";}
|
|
112
112
|
escalatedFieldName = "escalated" {return "${SolrKeys.escalation}";}
|
|
113
|
-
contactSSOFieldName = "
|
|
114
|
-
ownerSSOFieldName = "
|
|
113
|
+
contactSSOFieldName = "ownerSSO" {return "${SolrKeys.caseContactSSO}";}
|
|
114
|
+
ownerSSOFieldName = "assignedToContactSSO" {return "${SolrKeys.caseOwner}";}
|
|
115
115
|
createdBySSOFieldName = "createdBySSO" {return "${SolrKeys.createdBySsoUsername}";}
|
|
116
116
|
textFieldName = "text" {return "";}
|
|
117
117
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caseListUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"caseListUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAErF,OAAO,EAAuC,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAOlG,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,CAAC,CAAC,EAAE,KAAK,CAAC;CACb;AAED,UAAU,iBAAiB;IACvB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAiBD,wBAAsB,WAAW,CAC7B,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,EACtC,WAAW,EAAE,WAAW,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAwF5B;AAED,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,WAAW,EACxB,eAAe,GAAE,OAAe,GACjC,OAAO,CAAC,uBAAuB,CAAC,CASlC"}
|
|
@@ -20,7 +20,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
};
|
|
21
21
|
import { publicApi, search } from '@cee-eng/hydrajs';
|
|
22
22
|
import { promiseReflection } from '@rh-support/utils';
|
|
23
|
-
import {
|
|
23
|
+
import { isNoFilterApplied } from '../components/case-list/CaseListFilterHelpers';
|
|
24
|
+
import { CaseSearchQueryType } from '../enums/caseSearch';
|
|
24
25
|
import { createSFDCQueryFromFilterState, createSolrQueryFromFilterState, mapSFDCCaseListToSolrCaseList, } from './caseSearchUtils';
|
|
25
26
|
const throwErrorOnAbort = (message) => {
|
|
26
27
|
const isAbortError = message && message.toLowerCase().includes('abort');
|
|
@@ -37,14 +38,18 @@ const throwErrorOnAbort = (message) => {
|
|
|
37
38
|
// Even though SFDC support most of the filters but another problem with SFDC is it doesnot support multiple values for a praticular filter.
|
|
38
39
|
// if user applies any filter apart from default filter we will always call solr and assume that(not safely) 10 sec scenario is not bound to happen.
|
|
39
40
|
export function getCaseList(filterState, loggedInUser, loggedInUserAccount, abortSignal) {
|
|
40
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
41
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
41
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
43
|
let isSolrSearchDownSFDCUp = false;
|
|
43
44
|
let showErrorMessage = false;
|
|
44
45
|
let caseListResponse;
|
|
45
46
|
const solrFilter = createSolrQueryFromFilterState(filterState, loggedInUser);
|
|
46
47
|
const partnerSearch = loggedInUser.hasManagedAccounts();
|
|
47
|
-
|
|
48
|
+
//sfdc returns wrong result, for now only call sfdc when we have no filter applied
|
|
49
|
+
const isSfdcSearchRequired = isNoFilterApplied(filterState) &&
|
|
50
|
+
!filterState.filterQueryInfo.queryString &&
|
|
51
|
+
!partnerSearch &&
|
|
52
|
+
((_a = filterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.type) !== CaseSearchQueryType.ADVANCED;
|
|
48
53
|
let solrPromise = getCaseListFromSolr(solrFilter, partnerSearch, abortSignal, loggedInUserAccount === null || loggedInUserAccount === void 0 ? void 0 : loggedInUserAccount.secureSupport);
|
|
49
54
|
const sfdcAPICall = () => publicApi.caseList.getCaseListFromSFDC(createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserAccount), partnerSearch, loggedInUserAccount === null || loggedInUserAccount === void 0 ? void 0 : loggedInUserAccount.secureSupport, abortSignal);
|
|
50
55
|
const sfdcPromise = isSfdcSearchRequired ? sfdcAPICall() : Promise.resolve(undefined);
|
|
@@ -54,8 +59,8 @@ export function getCaseList(filterState, loggedInUser, loggedInUserAccount, abor
|
|
|
54
59
|
throwErrorOnAbort(solrResponse === null || solrResponse === void 0 ? void 0 : solrResponse.e.message);
|
|
55
60
|
if (sfdcResponse.e)
|
|
56
61
|
throwErrorOnAbort(sfdcResponse === null || sfdcResponse === void 0 ? void 0 : sfdcResponse.e.message);
|
|
57
|
-
const solrFullfilled = !!(solrResponse.status === 'fulfilled' && ((
|
|
58
|
-
let sfdcFullfilled = !!(sfdcResponse.status === 'fulfilled' && ((
|
|
62
|
+
const solrFullfilled = !!(solrResponse.status === 'fulfilled' && ((_b = solrResponse.v) === null || _b === void 0 ? void 0 : _b.response));
|
|
63
|
+
let sfdcFullfilled = !!(sfdcResponse.status === 'fulfilled' && ((_c = sfdcResponse.v) === null || _c === void 0 ? void 0 : _c.cases));
|
|
59
64
|
const sfdcCallIsMadeAndFailed = !sfdcFullfilled && isSfdcSearchRequired;
|
|
60
65
|
const sfdcCallNotMade = !sfdcFullfilled && !isSfdcSearchRequired;
|
|
61
66
|
if (!solrFullfilled && sfdcCallIsMadeAndFailed) {
|
|
@@ -65,10 +70,10 @@ export function getCaseList(filterState, loggedInUser, loggedInUserAccount, abor
|
|
|
65
70
|
// SFDC call didn't make because we had filters that SFDC doesn't support
|
|
66
71
|
try {
|
|
67
72
|
const sfdcRes = yield promiseReflection(sfdcAPICall());
|
|
68
|
-
sfdcFullfilled = !!(sfdcRes.status === 'fulfilled' && ((
|
|
73
|
+
sfdcFullfilled = !!(sfdcRes.status === 'fulfilled' && ((_d = sfdcRes.v) === null || _d === void 0 ? void 0 : _d.cases));
|
|
69
74
|
if (sfdcFullfilled) {
|
|
70
75
|
isSolrSearchDownSFDCUp = true;
|
|
71
|
-
const mappedSfdcRes = mapSFDCCaseListToSolrCaseList((
|
|
76
|
+
const mappedSfdcRes = mapSFDCCaseListToSolrCaseList((_f = (_e = sfdcRes === null || sfdcRes === void 0 ? void 0 : sfdcRes.v) === null || _e === void 0 ? void 0 : _e.cases) !== null && _f !== void 0 ? _f : []);
|
|
72
77
|
caseListResponse = {
|
|
73
78
|
response: {
|
|
74
79
|
docs: mappedSfdcRes,
|
|
@@ -85,7 +90,7 @@ export function getCaseList(filterState, loggedInUser, loggedInUserAccount, abor
|
|
|
85
90
|
}
|
|
86
91
|
else if (solrFullfilled && sfdcFullfilled) {
|
|
87
92
|
caseListResponse = Object.assign(Object.assign({}, solrResponse.v), { response: {
|
|
88
|
-
docs: mapSFDCCaseListToSolrCaseList((
|
|
93
|
+
docs: mapSFDCCaseListToSolrCaseList((_h = (_g = sfdcResponse === null || sfdcResponse === void 0 ? void 0 : sfdcResponse.v) === null || _g === void 0 ? void 0 : _g.cases) !== null && _h !== void 0 ? _h : []),
|
|
89
94
|
numFound: sfdcResponse.v.totalCount,
|
|
90
95
|
} });
|
|
91
96
|
}
|
|
@@ -93,7 +98,7 @@ export function getCaseList(filterState, loggedInUser, loggedInUserAccount, abor
|
|
|
93
98
|
isSolrSearchDownSFDCUp = true;
|
|
94
99
|
caseListResponse = {
|
|
95
100
|
response: {
|
|
96
|
-
docs: mapSFDCCaseListToSolrCaseList((
|
|
101
|
+
docs: mapSFDCCaseListToSolrCaseList((_k = (_j = sfdcResponse === null || sfdcResponse === void 0 ? void 0 : sfdcResponse.v) === null || _j === void 0 ? void 0 : _j.cases) !== null && _k !== void 0 ? _k : []),
|
|
97
102
|
numFound: sfdcResponse.v.totalCount,
|
|
98
103
|
},
|
|
99
104
|
};
|
|
@@ -11,7 +11,7 @@ export declare const FILTER_URL_PAGE_SIZE_SEARCH_PARAM = "size";
|
|
|
11
11
|
export declare const FILTER_URL_QUERY_TYPE = "searchType";
|
|
12
12
|
declare function createSolrQueryFromFilterState(filterState: ICaseListFilterState, loggedInUser: UserAuth): any;
|
|
13
13
|
declare function createUserFriendlyQueryFromFilterState(filterInfo: Partial<IFilterInfo>, filterQuery: string, useKeyForKVPair?: boolean): string;
|
|
14
|
-
declare function createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo: Partial<IFilterInfo>, filterQuery: string
|
|
14
|
+
declare function createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo: Partial<IFilterInfo>, filterQuery: string): string;
|
|
15
15
|
declare function createAdvancedSearchQueryFromFilterState(filterInfo: Partial<IFilterInfo>, keyword: string, useKeyForKVPair?: any[]): string;
|
|
16
16
|
declare function createQueryForCSVDownload(filterState: ICaseListFilterState, loggedInUserRights: UserAuth, loggedInUsersAccount: any, startValue?: number, limitValue?: number): any;
|
|
17
17
|
declare function createSFDCQueryFromFilterState(filterState: ICaseListFilterState, loggedInUser: UserAuth, loggedInUserAccount: Partial<IAccount>): Partial<ISFDCCaseFilter>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caseSearchUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseSearchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAUxD,OAAO,EACH,oBAAoB,EACpB,WAAW,EAId,MAAM,+CAA+C,CAAC;AAOvD,OAAO,EAEH,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,oCAAoC,MAAM,CAAC;AACxD,eAAO,MAAM,iCAAiC,SAAS,CAAC;AACxD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,iBAAS,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,OA4DhG;AAED,iBAAS,sCAAsC,CAC3C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,OAAe,UAwBnC;AAED,iBAAS,oDAAoD,
|
|
1
|
+
{"version":3,"file":"caseSearchUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseSearchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAUxD,OAAO,EACH,oBAAoB,EACpB,WAAW,EAId,MAAM,+CAA+C,CAAC;AAOvD,OAAO,EAEH,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,oCAAoC,MAAM,CAAC;AACxD,eAAO,MAAM,iCAAiC,SAAS,CAAC;AACxD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,iBAAS,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,OA4DhG;AAED,iBAAS,sCAAsC,CAC3C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,OAAe,UAwBnC;AAED,iBAAS,oDAAoD,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,UA6ClH;AAkBD,iBAAS,wCAAwC,CAC7C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,OAAO,EAAE,MAAM,EACf,eAAe,QAAK,UA6BvB;AASD,iBAAS,yBAAyB,CAC9B,WAAW,EAAE,oBAAoB,EACjC,kBAAkB,EAAE,QAAQ,EAC5B,oBAAoB,KAAA,EACpB,UAAU,SAAI,EACd,UAAU,SAAO,OAcpB;AAkBD,iBAAS,8BAA8B,CACnC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,CAgE1B;AAED,iBAAS,6BAA6B,CAAC,QAAQ,GAAE,qBAAqB,EAAO,GAAG,qBAAqB,EAAE,CAEtG;AAcD,iBAAS,6BAA6B,CAAC,WAAW,EAAE,oBAAoB,UAUvE;AAED,iBAAS,6BAA6B,CAClC,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,oBAAoB,EACzC,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,GAAE,mBAA+C,wBAsD9D;AAGD,iBAAS,kCAAkC,CACvC,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,oBAAoB,EACzC,kBAAkB,EAAE,oBAAoB,EACxC,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,mBAA+C,wBA2DxD;AAuKD,OAAO,EACH,8BAA8B,EAC9B,sCAAsC,EACtC,oDAAoD,EACpD,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,wCAAwC,EACxC,kCAAkC,GACrC,CAAC"}
|
|
@@ -96,7 +96,7 @@ function createUserFriendlyQueryFromFilterState(filterInfo, filterQuery, useKeyF
|
|
|
96
96
|
filtersQuery !== '*:*' && finalQueryArr.push(filtersQuery);
|
|
97
97
|
return finalQueryArr.join(' AND ');
|
|
98
98
|
}
|
|
99
|
-
function createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, filterQuery
|
|
99
|
+
function createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, filterQuery) {
|
|
100
100
|
// if query contains quotes then we need to escape it so that solr parser can parse it successfully
|
|
101
101
|
//const searchTextQuery = filterQuery ? `keyword: "${filterQuery.replace(/"/g, '\\"')}"` : '';
|
|
102
102
|
let solrQuery = new SolrQueryBuilder();
|
|
@@ -105,7 +105,7 @@ function createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, filter
|
|
|
105
105
|
? fieldNameToSolrFieldMapping[_filterKey]
|
|
106
106
|
: _filterKey;
|
|
107
107
|
const fieldValue = isKeyValuePair(filterInfo[_filterKey])
|
|
108
|
-
? filterInfo[_filterKey].map((item) => (
|
|
108
|
+
? filterInfo[_filterKey].map((item) => (SolrKeys.accountNumber ? item.key : item.value))
|
|
109
109
|
: filterInfo[_filterKey];
|
|
110
110
|
if (_filterKey !== ProductVersionKey) {
|
|
111
111
|
Array.isArray(fieldValue) && fieldValue.length > 0 && solrQuery.where(fieldLabel).in(flatMap(fieldValue));
|
|
@@ -326,7 +326,7 @@ function createFilterStateFromUrlQuery(urlQuery, globalMetadataState, pageSize,
|
|
|
326
326
|
}
|
|
327
327
|
});
|
|
328
328
|
const parsedQuery = filterQueryInfo.type === CaseSearchQueryType.ADVANCED
|
|
329
|
-
? createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, filterQueryInfo.queryString
|
|
329
|
+
? createUserFriendlyQueryFromFilterStateAdvancedSearch(filterInfo, filterQueryInfo.queryString)
|
|
330
330
|
: '';
|
|
331
331
|
const filterQuery = {
|
|
332
332
|
sortInfo,
|
|
@@ -336,7 +336,7 @@ function createFilterStateFromUrlQuery(urlQuery, globalMetadataState, pageSize,
|
|
|
336
336
|
};
|
|
337
337
|
return filterQuery;
|
|
338
338
|
}
|
|
339
|
-
//
|
|
339
|
+
// advanced query
|
|
340
340
|
function createFilterStateFromAdvancedQuery(queryString, globalMetadataState, currentFilterState, parsedQuery = '', type = CaseSearchQueryType.BASIC) {
|
|
341
341
|
const filterObj = parseSolrQuery(queryString);
|
|
342
342
|
const newFilterInfo = {};
|
|
@@ -352,7 +352,7 @@ function createFilterStateFromAdvancedQuery(queryString, globalMetadataState, cu
|
|
|
352
352
|
else {
|
|
353
353
|
// if field is present in this map, it means field is supported in basic search mode too
|
|
354
354
|
if (fieldNameToSolrFieldMapping[_key]) {
|
|
355
|
-
newFilterInfo[_key] = generateFilterValue(_key, filterObj[_key], globalMetadataState);
|
|
355
|
+
newFilterInfo[_key] = generateFilterValue(_key, filterObj[_key], globalMetadataState, true);
|
|
356
356
|
}
|
|
357
357
|
else {
|
|
358
358
|
// if it's supported in basic search mode then add it as a query string in the search input
|
|
@@ -363,13 +363,36 @@ function createFilterStateFromAdvancedQuery(queryString, globalMetadataState, cu
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
});
|
|
366
|
+
// here is a hack to match product and vrsions. need to find better way...
|
|
367
|
+
// ( productName: ".NET Core" and ( productVersion: "2.0" ) ) => is processed corectly
|
|
368
|
+
// (productName: ".NET Core" and productVersion: "2.0") => needs to be matched manually
|
|
369
|
+
// productName: ".NET Core" and productVersion: "2.0" => needs to be matched manually
|
|
370
|
+
if (filterObj[SolrKeys.version] && filterObj[SolrKeys.version].length !== 0) {
|
|
371
|
+
if (newFilterInfo[SolrPivotKeys.product_version] && newFilterInfo[SolrPivotKeys.product_version].length !== 0) {
|
|
372
|
+
newFilterInfo[SolrPivotKeys.product_version].forEach((p) => {
|
|
373
|
+
if (p[SolrKeys.version].length === 0)
|
|
374
|
+
p[SolrKeys.version] = (filterObj[SolrKeys.version] || []).map((i) => ({
|
|
375
|
+
field: SolrKeys.version,
|
|
376
|
+
value: i,
|
|
377
|
+
}));
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
filterObj[SolrKeys.version].forEach((i) => {
|
|
382
|
+
advanceToBasicQuery.push(`${SolrKeys.version}:"${i}"`);
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
delete newFilterInfo[SolrKeys.version];
|
|
386
|
+
}
|
|
366
387
|
const filterState = Object.assign(Object.assign({}, currentFilterState), { filterQueryInfo: Object.assign(Object.assign({}, currentFilterState.filterQueryInfo), { queryString: advanceToBasicQuery.join(' AND '), parsedQuery,
|
|
367
388
|
type }), filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), newFilterInfo) });
|
|
368
389
|
return filterState;
|
|
369
390
|
}
|
|
370
|
-
function generateFilterValue(solrFieldName, value, globalMetadataState) {
|
|
391
|
+
function generateFilterValue(solrFieldName, value, globalMetadataState, isAdvancedSearch = false) {
|
|
371
392
|
const valueArr = Array.isArray(value) ? value : value ? [value] : [];
|
|
372
|
-
return
|
|
393
|
+
return isAdvancedSearch
|
|
394
|
+
? getValidValuesAdvancedSearch(solrFieldName, valueArr, globalMetadataState)
|
|
395
|
+
: getValidValues(solrFieldName, valueArr, globalMetadataState);
|
|
373
396
|
}
|
|
374
397
|
function getValidValues(solrFieldName, itemValues = [], globalMetadataState) {
|
|
375
398
|
var _a, _b, _c, _d;
|
|
@@ -422,6 +445,56 @@ function getValidValues(solrFieldName, itemValues = [], globalMetadataState) {
|
|
|
422
445
|
}
|
|
423
446
|
return mappedValues;
|
|
424
447
|
}
|
|
448
|
+
function getValidValuesAdvancedSearch(solrFieldName, itemValues = [], globalMetadataState) {
|
|
449
|
+
var _a, _b, _c, _d;
|
|
450
|
+
if (itemValues.length < 1)
|
|
451
|
+
return itemValues;
|
|
452
|
+
let mappedValues = [];
|
|
453
|
+
if (solrFieldName === SolrKeys.group) {
|
|
454
|
+
const caseGroupsMap = (((_a = globalMetadataState.caseGroups) === null || _a === void 0 ? void 0 : _a.data) || []).reduce((acc, { groupNum, name = 'Ungrouped' }) => {
|
|
455
|
+
acc[name] = groupNum;
|
|
456
|
+
return acc;
|
|
457
|
+
}, {});
|
|
458
|
+
itemValues.forEach((item) => {
|
|
459
|
+
caseGroupsMap[item] && mappedValues.push({ key: caseGroupsMap[item], value: item });
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
else if (solrFieldName === SolrKeys.accountNumber) {
|
|
463
|
+
let bookmarkedAccountsMap = (((_b = globalMetadataState.bookmarkedAccounts) === null || _b === void 0 ? void 0 : _b.data) || []).reduce((acc, { accountNumber, name }) => {
|
|
464
|
+
acc[accountNumber] = getLabel(accountNumber, name);
|
|
465
|
+
return acc;
|
|
466
|
+
}, {});
|
|
467
|
+
bookmarkedAccountsMap = (((_c = globalMetadataState.bookmarkedGroupAccounts) === null || _c === void 0 ? void 0 : _c.data) || []).reduce((acc, { accountNumber, name }) => {
|
|
468
|
+
acc[accountNumber] = getLabel(accountNumber, name);
|
|
469
|
+
return acc;
|
|
470
|
+
}, {});
|
|
471
|
+
const managedAccountsMap = (((_d = globalMetadataState.managedAccounts) === null || _d === void 0 ? void 0 : _d.data) || []).reduce((acc, { accountNum, name }) => {
|
|
472
|
+
acc[accountNum] = getLabel(accountNum, name);
|
|
473
|
+
return acc;
|
|
474
|
+
}, {});
|
|
475
|
+
itemValues.forEach((item) => {
|
|
476
|
+
if (bookmarkedAccountsMap[item]) {
|
|
477
|
+
mappedValues.push({ key: item, value: bookmarkedAccountsMap[item] });
|
|
478
|
+
}
|
|
479
|
+
else if (managedAccountsMap[item]) {
|
|
480
|
+
mappedValues.push({ key: item, value: managedAccountsMap[item] });
|
|
481
|
+
}
|
|
482
|
+
else if (isEmpty(managedAccountsMap)) {
|
|
483
|
+
mappedValues.push({ key: item, value: item });
|
|
484
|
+
}
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
else if (solrFieldName === SolrKeys.escalation) {
|
|
488
|
+
mappedValues = itemValues.map((item) => ({
|
|
489
|
+
key: item,
|
|
490
|
+
value: AdditionalFilterLabels[solrFieldName],
|
|
491
|
+
}));
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
mappedValues = itemValues;
|
|
495
|
+
}
|
|
496
|
+
return mappedValues;
|
|
497
|
+
}
|
|
425
498
|
function generateProductVersionPivotValue(values) {
|
|
426
499
|
return (values || []).map((item) => {
|
|
427
500
|
return typeof item === 'string'
|
|
@@ -433,9 +506,11 @@ function generateProductVersionPivotValue(values) {
|
|
|
433
506
|
: {
|
|
434
507
|
field: SolrKeys.product,
|
|
435
508
|
value: item.value,
|
|
436
|
-
[SolrKeys.version]: (item[
|
|
509
|
+
[SolrKeys.version]: (item[SolrKeys.version] ||
|
|
510
|
+
item[fieldNameToSolrFieldMapping[SolrKeys.version]] ||
|
|
511
|
+
[]).map((version) => ({
|
|
437
512
|
field: SolrKeys.version,
|
|
438
|
-
value:
|
|
513
|
+
value: version,
|
|
439
514
|
})),
|
|
440
515
|
};
|
|
441
516
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/cases",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -99,5 +99,5 @@
|
|
|
99
99
|
"not ie <= 11",
|
|
100
100
|
"not op_mini all"
|
|
101
101
|
],
|
|
102
|
-
"gitHead": "
|
|
102
|
+
"gitHead": "5150711347277f20bdf111df96f295dad6fbfa3c"
|
|
103
103
|
}
|