@rh-support/cases 2.6.185 → 2.6.187
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/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +85 -38
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.js +2 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +3 -2
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.js +19 -6
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +29 -0
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +1 -0
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +5 -0
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +5 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +1 -2
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +3 -0
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +11 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +116 -71
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +1 -29
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +11 -5
- package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearch.js +1 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +8 -0
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +8 -0
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +51 -20
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +29 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +16 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +21 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +12 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +31 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +10 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +92 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +20 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +28 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +9 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +241 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +11 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +23 -0
- package/lib/esm/css/caseList.css +13 -1
- package/lib/esm/css/caseSearch.css +114 -0
- package/lib/esm/enums/caseSearch.d.ts +1 -0
- package/lib/esm/enums/caseSearch.d.ts.map +1 -1
- package/lib/esm/enums/caseSearch.js +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
- package/lib/esm/utils/advanceSearchFormMapper.d.ts +11 -0
- package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +1 -0
- package/lib/esm/utils/advanceSearchFormMapper.js +71 -0
- package/lib/esm/utils/advanceSearchUtils.d.ts +24 -0
- package/lib/esm/utils/advanceSearchUtils.d.ts.map +1 -0
- package/lib/esm/utils/advanceSearchUtils.js +149 -0
- package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseListGraphQLUtils.js +55 -19
- package/lib/esm/utils/caseListMapper.js +4 -4
- package/lib/esm/utils/caseListVariablesBuilder.d.ts +1 -0
- package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -1
- package/lib/esm/utils/caseListVariablesBuilder.js +240 -34
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +5 -2
- package/lib/esm/utils/constants.d.ts +2 -0
- package/lib/esm/utils/constants.d.ts.map +1 -1
- package/lib/esm/utils/constants.js +6 -0
- package/package.json +7 -8
|
@@ -7,9 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { GET_CONTACT_BY_SSO, getTechnicalSupportRecordTypeId } from '@rh-support/utils';
|
|
11
|
-
import { caseListSortColumnIdsToGraphQLMap } from '../enums/case';
|
|
10
|
+
import { GET_CONTACT_BY_SSO, GET_GROUP_IDS_BY_NAME, GET_USER_IDS_BY_FEDERATION, getTechnicalSupportRecordTypeId, } from '@rh-support/utils';
|
|
11
|
+
import { CaseListColumnIds, caseListSortColumnIdsToGraphQLMap } from '../enums/case';
|
|
12
12
|
import { SolrKeys, SolrPivotKeys } from '../enums/filters';
|
|
13
|
+
import { parseAdvanceSearchDate } from './advanceSearchUtils';
|
|
13
14
|
import { expandStatusGroupsToApiValues } from './statusUtils';
|
|
14
15
|
export function getOwnerFederationIdsToResolve(filterState) {
|
|
15
16
|
const { filterInfo } = filterState;
|
|
@@ -25,10 +26,14 @@ function buildOrderByFromSortInfo(sortInfo) {
|
|
|
25
26
|
var _a;
|
|
26
27
|
if (!(sortInfo === null || sortInfo === void 0 ? void 0 : sortInfo.column))
|
|
27
28
|
return { LastModifiedDate: { order: 'DESC' } };
|
|
29
|
+
const order = ((_a = sortInfo.direction) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'DESC';
|
|
30
|
+
if (sortInfo.column === CaseListColumnIds.group) {
|
|
31
|
+
return { Group__r: { Name: { order } } };
|
|
32
|
+
}
|
|
28
33
|
const gqlField = caseListSortColumnIdsToGraphQLMap[sortInfo.column];
|
|
29
34
|
if (!gqlField)
|
|
30
35
|
return { LastModifiedDate: { order: 'DESC' } };
|
|
31
|
-
return { [gqlField]: { order
|
|
36
|
+
return { [gqlField]: { order } };
|
|
32
37
|
}
|
|
33
38
|
function flattenAccountNumbers(accountFilters) {
|
|
34
39
|
const numbers = [];
|
|
@@ -62,7 +67,6 @@ function buildProductFilter(products) {
|
|
|
62
67
|
hasVersionIds = true;
|
|
63
68
|
}
|
|
64
69
|
});
|
|
65
|
-
// Fallback: if versions lack IDs (resolution failed), use parent product ID
|
|
66
70
|
if (!hasVersionIds && product.productId) {
|
|
67
71
|
parentProductIds.push(product.productId);
|
|
68
72
|
}
|
|
@@ -79,6 +83,68 @@ function buildProductFilter(products) {
|
|
|
79
83
|
}
|
|
80
84
|
return conditions;
|
|
81
85
|
}
|
|
86
|
+
function buildGroupFilter(groups) {
|
|
87
|
+
var _a;
|
|
88
|
+
const groupIds = (_a = groups === null || groups === void 0 ? void 0 : groups.map((group) => group.key).filter(Boolean)) !== null && _a !== void 0 ? _a : [];
|
|
89
|
+
if (!groupIds.length)
|
|
90
|
+
return undefined;
|
|
91
|
+
if (groupIds.length === 1) {
|
|
92
|
+
return { Group__c: { eq: groupIds[0] } };
|
|
93
|
+
}
|
|
94
|
+
return { Group__c: { in: groupIds } };
|
|
95
|
+
}
|
|
96
|
+
function buildDateTimeRangeFilter(fieldName, range) {
|
|
97
|
+
var _a, _b, _c, _d;
|
|
98
|
+
if (!range) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const operators = {};
|
|
102
|
+
const startTrimmed = (_b = (_a = range.startDate) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
|
|
103
|
+
const endTrimmed = (_d = (_c = range.endDate) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : '';
|
|
104
|
+
if (startTrimmed && parseAdvanceSearchDate(startTrimmed)) {
|
|
105
|
+
operators.gte = { value: `${startTrimmed}T00:00:00.000Z` };
|
|
106
|
+
}
|
|
107
|
+
if (endTrimmed && parseAdvanceSearchDate(endTrimmed)) {
|
|
108
|
+
operators.lte = { value: `${endTrimmed}T23:59:59.999Z` };
|
|
109
|
+
}
|
|
110
|
+
if (!Object.keys(operators).length) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
return { [fieldName]: operators };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Builds a ContactId / OwnerId filter from looked-up IDs.
|
|
117
|
+
* Used for Owner and Assigned To — those fields need IDs, not nested name/SSO filters.
|
|
118
|
+
*/
|
|
119
|
+
function buildIdFilter(fieldName, ids, filterRequested = false) {
|
|
120
|
+
if (!(ids === null || ids === void 0 ? void 0 : ids.length)) {
|
|
121
|
+
// User searched, but nobody matched — return empty so the API finds no cases.
|
|
122
|
+
return filterRequested ? { [fieldName]: { in: [] } } : undefined;
|
|
123
|
+
}
|
|
124
|
+
const uniqueIds = [...new Set(ids)];
|
|
125
|
+
if (uniqueIds.length === 1) {
|
|
126
|
+
return { [fieldName]: { eq: uniqueIds[0] } };
|
|
127
|
+
}
|
|
128
|
+
return { [fieldName]: { in: uniqueIds } };
|
|
129
|
+
}
|
|
130
|
+
function buildSalesforceSupportUserMatch(value) {
|
|
131
|
+
return {
|
|
132
|
+
or: [{ FederationIdentifier: { eq: value } }, { Name: { like: `%${value}%` } }],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function buildSalesforceSupportUserReferenceFilter(fieldName, values) {
|
|
136
|
+
if (!(values === null || values === void 0 ? void 0 : values.length)) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
if (values.length === 1) {
|
|
140
|
+
return { [fieldName]: buildSalesforceSupportUserMatch(values[0]) };
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
or: values.map((value) => ({
|
|
144
|
+
[fieldName]: buildSalesforceSupportUserMatch(value),
|
|
145
|
+
})),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
82
148
|
function buildKeywordSearchFilter(queryString) {
|
|
83
149
|
if (!queryString)
|
|
84
150
|
return undefined;
|
|
@@ -94,29 +160,136 @@ function buildKeywordSearchFilter(queryString) {
|
|
|
94
160
|
or: [{ Subject: { like: likeValue } }, { CaseNumber__c: { like: likeValue } }],
|
|
95
161
|
};
|
|
96
162
|
}
|
|
97
|
-
|
|
163
|
+
/**
|
|
164
|
+
* Owner (case contact): find Contact IDs by SSO or name.
|
|
165
|
+
* We need this because the case query cannot filter by contact name/SSO directly.
|
|
166
|
+
*/
|
|
167
|
+
function resolveContactIdsBySearchTerms(searchTerms, apolloClient) {
|
|
98
168
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
var _a, _b, _c
|
|
100
|
-
if (!
|
|
101
|
-
return
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
169
|
+
var _a, _b, _c;
|
|
170
|
+
if (!(searchTerms === null || searchTerms === void 0 ? void 0 : searchTerms.length)) {
|
|
171
|
+
return [];
|
|
172
|
+
}
|
|
173
|
+
const contactIds = [];
|
|
174
|
+
for (const searchTerm of searchTerms) {
|
|
175
|
+
if (!searchTerm) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
try {
|
|
179
|
+
const { data } = yield apolloClient.query({
|
|
180
|
+
query: GET_CONTACT_BY_SSO,
|
|
181
|
+
variables: {
|
|
182
|
+
searchTerm,
|
|
183
|
+
namePattern: `%${searchTerm}%`,
|
|
184
|
+
},
|
|
185
|
+
fetchPolicy: 'cache-first',
|
|
186
|
+
});
|
|
187
|
+
const edges = ((_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportContact) === null || _c === void 0 ? void 0 : _c.edges) || [];
|
|
188
|
+
edges.forEach((edge) => {
|
|
189
|
+
var _a, _b, _c;
|
|
190
|
+
const ssoUsername = (_b = (_a = edge.node) === null || _a === void 0 ? void 0 : _a.SSOUserName__c) === null || _b === void 0 ? void 0 : _b.value;
|
|
191
|
+
if (((_c = edge.node) === null || _c === void 0 ? void 0 : _c.Id) && ssoUsername) {
|
|
192
|
+
contactIds.push(edge.node.Id);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
console.error('[GraphQL] Failed to resolve contact IDs by SSO or name:', error);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return [...new Set(contactIds)];
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Assigned To (user): find user IDs by federation ID or name.
|
|
205
|
+
* Fallback when IDs were not already resolved earlier.
|
|
206
|
+
*/
|
|
207
|
+
function resolveOwnerUserIdsBySearchTerms(searchTerms, apolloClient) {
|
|
208
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
209
|
+
var _a, _b, _c;
|
|
210
|
+
if (!(searchTerms === null || searchTerms === void 0 ? void 0 : searchTerms.length)) {
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
const userIds = [];
|
|
214
|
+
for (const searchTerm of searchTerms) {
|
|
215
|
+
if (!searchTerm) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const { data } = yield apolloClient.query({
|
|
220
|
+
query: GET_USER_IDS_BY_FEDERATION,
|
|
221
|
+
variables: {
|
|
222
|
+
searchTerm,
|
|
223
|
+
namePattern: `%${searchTerm}%`,
|
|
224
|
+
},
|
|
225
|
+
fetchPolicy: 'cache-first',
|
|
226
|
+
});
|
|
227
|
+
const edges = ((_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportUser) === null || _c === void 0 ? void 0 : _c.edges) || [];
|
|
228
|
+
edges.forEach((edge) => {
|
|
229
|
+
var _a, _b, _c;
|
|
230
|
+
const federationId = (_b = (_a = edge.node) === null || _a === void 0 ? void 0 : _a.FederationIdentifier) === null || _b === void 0 ? void 0 : _b.value;
|
|
231
|
+
if (((_c = edge.node) === null || _c === void 0 ? void 0 : _c.Id) && federationId) {
|
|
232
|
+
userIds.push(edge.node.Id);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
console.error('[GraphQL] Failed to resolve owner user IDs by federation ID or name:', error);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return [...new Set(userIds)];
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Assigned To (group/queue): find group IDs by name.
|
|
245
|
+
* OwnerId can be either a user or a group.
|
|
246
|
+
*/
|
|
247
|
+
function resolveOwnerGroupIdsBySearchTerms(searchTerms, apolloClient) {
|
|
248
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
249
|
+
var _a, _b, _c;
|
|
250
|
+
if (!(searchTerms === null || searchTerms === void 0 ? void 0 : searchTerms.length)) {
|
|
251
|
+
return [];
|
|
110
252
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
253
|
+
const groupIds = [];
|
|
254
|
+
for (const searchTerm of searchTerms) {
|
|
255
|
+
if (!searchTerm) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
const { data } = yield apolloClient.query({
|
|
260
|
+
query: GET_GROUP_IDS_BY_NAME,
|
|
261
|
+
variables: {
|
|
262
|
+
namePattern: `%${searchTerm}%`,
|
|
263
|
+
},
|
|
264
|
+
fetchPolicy: 'cache-first',
|
|
265
|
+
});
|
|
266
|
+
const edges = ((_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportGroup) === null || _c === void 0 ? void 0 : _c.edges) || [];
|
|
267
|
+
edges.forEach((edge) => {
|
|
268
|
+
var _a;
|
|
269
|
+
if ((_a = edge.node) === null || _a === void 0 ? void 0 : _a.Id) {
|
|
270
|
+
groupIds.push(edge.node.Id);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.error('[GraphQL] Failed to resolve owner group IDs by name:', error);
|
|
276
|
+
}
|
|
114
277
|
}
|
|
278
|
+
return [...new Set(groupIds)];
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/** Assigned To: merge user IDs and group IDs into one OwnerId list. */
|
|
282
|
+
function resolveOwnerIdsBySearchTerms(searchTerms, apolloClient) {
|
|
283
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
284
|
+
const [userIds, groupIds] = yield Promise.all([
|
|
285
|
+
resolveOwnerUserIdsBySearchTerms(searchTerms, apolloClient),
|
|
286
|
+
resolveOwnerGroupIdsBySearchTerms(searchTerms, apolloClient),
|
|
287
|
+
]);
|
|
288
|
+
return [...new Set([...userIds, ...groupIds])];
|
|
115
289
|
});
|
|
116
290
|
}
|
|
117
291
|
export function createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds) {
|
|
118
292
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
var _a;
|
|
120
293
|
const { paginationInfo, sortInfo, filterInfo, filterQueryInfo } = filterState;
|
|
121
294
|
const first = (paginationInfo === null || paginationInfo === void 0 ? void 0 : paginationInfo.pageSize) || 10;
|
|
122
295
|
const orderBy = buildOrderByFromSortInfo(sortInfo);
|
|
@@ -136,7 +309,6 @@ export function createGraphQLVariablesFromFilterState(filterState, apolloClient,
|
|
|
136
309
|
andConditions.push({ Account_Number__c: { in: accountNumbers } });
|
|
137
310
|
}
|
|
138
311
|
}
|
|
139
|
-
// Product filter: uses stored parent/child Product2 IDs from filter state
|
|
140
312
|
const products = filterInfo[SolrPivotKeys.product_version];
|
|
141
313
|
if (products === null || products === void 0 ? void 0 : products.length) {
|
|
142
314
|
const productConditions = buildProductFilter(products);
|
|
@@ -151,22 +323,56 @@ export function createGraphQLVariablesFromFilterState(filterState, apolloClient,
|
|
|
151
323
|
if (types === null || types === void 0 ? void 0 : types.length) {
|
|
152
324
|
andConditions.push({ Type: { in: types } });
|
|
153
325
|
}
|
|
154
|
-
const
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
326
|
+
const createdByValues = filterInfo[SolrKeys.createdBySsoUsername];
|
|
327
|
+
const contactValues = filterInfo[SolrKeys.caseContactSSO];
|
|
328
|
+
const assignedToValues = getOwnerFederationIdsToResolve(filterState);
|
|
329
|
+
const alternateIds = filterInfo[SolrKeys.alternateId];
|
|
330
|
+
const openshiftClusterIds = filterInfo[SolrKeys.openshiftClusterId];
|
|
331
|
+
const modifiedByValues = filterInfo[SolrKeys.modifiedBy];
|
|
332
|
+
// Problem: GraphQL will not let us filter cases by Owner name/SSO or Assigned To name
|
|
333
|
+
// nested under Contact/Owner. So for those fields we look up IDs first, then filter by ID.
|
|
334
|
+
// Created By / Last Modified By are fine — they support nested name filters directly.
|
|
335
|
+
const contactIds = yield resolveContactIdsBySearchTerms(contactValues, apolloClient);
|
|
336
|
+
const ownerUserIds = (resolvedUserIds === null || resolvedUserIds === void 0 ? void 0 : resolvedUserIds.ownerUserIds) ||
|
|
337
|
+
(assignedToValues.length ? yield resolveOwnerIdsBySearchTerms(assignedToValues, apolloClient) : []);
|
|
338
|
+
const contactIdFilter = buildIdFilter('ContactId', contactIds, Boolean(contactValues === null || contactValues === void 0 ? void 0 : contactValues.length));
|
|
339
|
+
if (contactIdFilter) {
|
|
340
|
+
andConditions.push(contactIdFilter);
|
|
158
341
|
}
|
|
159
|
-
|
|
160
|
-
|
|
342
|
+
const ownerIdFilter = buildIdFilter('OwnerId', ownerUserIds, assignedToValues.length > 0);
|
|
343
|
+
if (ownerIdFilter) {
|
|
344
|
+
andConditions.push(ownerIdFilter);
|
|
161
345
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
346
|
+
const createdByFilter = buildSalesforceSupportUserReferenceFilter('CreatedBy', createdByValues);
|
|
347
|
+
if (createdByFilter) {
|
|
348
|
+
andConditions.push(createdByFilter);
|
|
349
|
+
}
|
|
350
|
+
const lastModifiedByFilter = buildSalesforceSupportUserReferenceFilter('LastModifiedBy', modifiedByValues);
|
|
351
|
+
if (lastModifiedByFilter) {
|
|
352
|
+
andConditions.push(lastModifiedByFilter);
|
|
353
|
+
}
|
|
354
|
+
if (alternateIds === null || alternateIds === void 0 ? void 0 : alternateIds.length) {
|
|
355
|
+
andConditions.push({ AlternateCaseId__c: { in: alternateIds } });
|
|
356
|
+
}
|
|
357
|
+
if (openshiftClusterIds === null || openshiftClusterIds === void 0 ? void 0 : openshiftClusterIds.length) {
|
|
358
|
+
andConditions.push({ OpenshiftClusterID__c: { in: openshiftClusterIds } });
|
|
359
|
+
}
|
|
360
|
+
const { advanceSearchDateRanges } = filterState;
|
|
361
|
+
if (advanceSearchDateRanges) {
|
|
362
|
+
const createdDateFilter = buildDateTimeRangeFilter('CreatedDate', advanceSearchDateRanges.createdDateRange);
|
|
363
|
+
const lastModifiedDateFilter = buildDateTimeRangeFilter('LastModifiedDate', advanceSearchDateRanges.lastModifiedDateRange);
|
|
364
|
+
const closedDateFilter = buildDateTimeRangeFilter('ClosedDate', advanceSearchDateRanges.closedDateRange);
|
|
365
|
+
if (createdDateFilter)
|
|
366
|
+
andConditions.push(createdDateFilter);
|
|
367
|
+
if (lastModifiedDateFilter)
|
|
368
|
+
andConditions.push(lastModifiedDateFilter);
|
|
369
|
+
if (closedDateFilter)
|
|
370
|
+
andConditions.push(closedDateFilter);
|
|
167
371
|
}
|
|
168
|
-
|
|
169
|
-
|
|
372
|
+
const groups = filterInfo[SolrKeys.group];
|
|
373
|
+
const groupFilter = buildGroupFilter(groups);
|
|
374
|
+
if (groupFilter)
|
|
375
|
+
andConditions.push(groupFilter);
|
|
170
376
|
}
|
|
171
377
|
const escalation = filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo[SolrKeys.escalation];
|
|
172
378
|
const technicalSupportId = getTechnicalSupportRecordTypeId();
|
|
@@ -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;AAkBxD,OAAO,EACH,oBAAoB,EACpB,WAAW,EAId,MAAM,+CAA+C,CAAC;AAOvD,OAAO,EAEH,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAW7B,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,CACnC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,aAAa,GAAE,MAAM,EAAO,OAgE/B;AAED,iBAAS,sCAAsC,CAC3C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,OAAe,UA2BnC;AAED,iBAAS,oDAAoD,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,UA+DlH;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,aAAa,GAAE,MAAM,EAAO,EAC5B,UAAU,SAAI,EACd,UAAU,SAAO,OAoBpB;AAkBD,iBAAS,8BAA8B,CACnC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,EACtC,aAAa,GAAE,MAAM,EAAO,GAC7B,OAAO,CAAC,eAAe,CAAC,CAkE1B;AAED,iBAAS,6BAA6B,CAAC,QAAQ,GAAE,qBAAqB,EAAO,GAAG,qBAAqB,EAAE,CAEtG;AAoBD,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,wBA0D9D;AAGD,iBAAS,kCAAkC,CACvC,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,oBAAoB,EACzC,kBAAkB,EAAE,oBAAoB,EACxC,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,mBAA+C,
|
|
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;AAkBxD,OAAO,EACH,oBAAoB,EACpB,WAAW,EAId,MAAM,+CAA+C,CAAC;AAOvD,OAAO,EAEH,mBAAmB,EAEtB,MAAM,qBAAqB,CAAC;AAW7B,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,CACnC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,aAAa,GAAE,MAAM,EAAO,OAgE/B;AAED,iBAAS,sCAAsC,CAC3C,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,OAAe,UA2BnC;AAED,iBAAS,oDAAoD,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,UA+DlH;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,aAAa,GAAE,MAAM,EAAO,EAC5B,UAAU,SAAI,EACd,UAAU,SAAO,OAoBpB;AAkBD,iBAAS,8BAA8B,CACnC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,QAAQ,EACtB,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC,EACtC,aAAa,GAAE,MAAM,EAAO,GAC7B,OAAO,CAAC,eAAe,CAAC,CAkE1B;AAED,iBAAS,6BAA6B,CAAC,QAAQ,GAAE,qBAAqB,EAAO,GAAG,qBAAqB,EAAE,CAEtG;AAoBD,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,wBA0D9D;AAGD,iBAAS,kCAAkC,CACvC,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,oBAAoB,EACzC,kBAAkB,EAAE,oBAAoB,EACxC,WAAW,GAAE,MAAW,EACxB,IAAI,GAAE,mBAA+C,wBAiExD;AA0LD,OAAO,EACH,8BAA8B,EAC9B,sCAAsC,EACtC,oDAAoD,EACpD,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,wCAAwC,EACxC,kCAAkC,GACrC,CAAC"}
|
|
@@ -383,13 +383,16 @@ function createFilterStateFromAdvancedQuery(queryString, globalMetadataState, cu
|
|
|
383
383
|
if (_key === SolrKeys.product) {
|
|
384
384
|
newFilterInfo[SolrPivotKeys.product_version] = generateProductVersionPivotValue(filterObj[_key]);
|
|
385
385
|
}
|
|
386
|
-
if (_key === SolrKeys.type) {
|
|
386
|
+
else if (_key === SolrKeys.type) {
|
|
387
387
|
newFilterInfo[SolrKeys.type] = toOldCaseTypeMapper(filterObj[_key]);
|
|
388
388
|
}
|
|
389
|
-
// if it's an unnamed field we should add it to free text querystring
|
|
390
389
|
else if (_key === '<implicit>') {
|
|
390
|
+
// if it's an unnamed field we should add it to free text querystring
|
|
391
391
|
advanceToBasicQuery.push(filterObj[_key]);
|
|
392
392
|
}
|
|
393
|
+
else if (_key === SolrKeys.version) {
|
|
394
|
+
// merged into product_version below
|
|
395
|
+
}
|
|
393
396
|
else {
|
|
394
397
|
// if field is present in this map, it means field is supported in basic search mode too
|
|
395
398
|
if (fieldNameToSolrFieldMapping[_key]) {
|
|
@@ -18,6 +18,8 @@ export declare const filterNamesMap: {
|
|
|
18
18
|
readonly case_createdby_sso_username: any;
|
|
19
19
|
readonly case_contact_sso_username: any;
|
|
20
20
|
readonly case_type: any;
|
|
21
|
+
readonly case_alternate_id: any;
|
|
22
|
+
readonly case_openshift_cluster_id: any;
|
|
21
23
|
readonly usernameFilterTitle: any;
|
|
22
24
|
};
|
|
23
25
|
export declare const UpdatedCaseDataEvent = "PCM-Next > case-list-data-background-refresh";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAazD,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAoC,CAAC;AAIzE,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAazD,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAoC,CAAC;AAIzE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CA6D1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iDAAiD,CAAC"}
|
|
@@ -69,6 +69,12 @@ export const filterNamesMap = {
|
|
|
69
69
|
get [SolrKeys.type]() {
|
|
70
70
|
return i18n.t('Support type');
|
|
71
71
|
},
|
|
72
|
+
get [SolrKeys.alternateId]() {
|
|
73
|
+
return i18n.t('Personal reference number');
|
|
74
|
+
},
|
|
75
|
+
get [SolrKeys.openshiftClusterId]() {
|
|
76
|
+
return i18n.t('Cluster ID');
|
|
77
|
+
},
|
|
72
78
|
get usernameFilterTitle() {
|
|
73
79
|
return i18n.t('Username');
|
|
74
80
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/cases",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.187",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"lib/**/*"
|
|
23
23
|
],
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@cee-eng/hydrajs": "4.18.111",
|
|
26
25
|
"@patternfly/patternfly": "6.2.1",
|
|
27
26
|
"@patternfly/react-core": "6.2.1",
|
|
28
27
|
"@patternfly/react-table": "6.2.1",
|
|
@@ -35,15 +34,15 @@
|
|
|
35
34
|
"solr-query-builder": "1.0.1"
|
|
36
35
|
},
|
|
37
36
|
"dependencies": {
|
|
38
|
-
"@cee-eng/hydrajs": "4.18.
|
|
37
|
+
"@cee-eng/hydrajs": "^4.18.113",
|
|
39
38
|
"@patternfly/patternfly": "6.2.1",
|
|
40
39
|
"@patternfly/react-core": "6.2.1",
|
|
41
40
|
"@patternfly/react-table": "6.2.1",
|
|
42
|
-
"@rh-support/components": "2.5.
|
|
43
|
-
"@rh-support/react-context": "2.5.
|
|
41
|
+
"@rh-support/components": "2.5.183",
|
|
42
|
+
"@rh-support/react-context": "2.5.277",
|
|
44
43
|
"@rh-support/types": "2.0.26",
|
|
45
|
-
"@rh-support/user-permissions": "2.5.
|
|
46
|
-
"@rh-support/utils": "2.5.
|
|
44
|
+
"@rh-support/user-permissions": "2.5.129",
|
|
45
|
+
"@rh-support/utils": "2.5.111",
|
|
47
46
|
"localforage": "^1.10.0",
|
|
48
47
|
"lodash": "^4.17.21",
|
|
49
48
|
"pegjs": "^0.10.0",
|
|
@@ -93,5 +92,5 @@
|
|
|
93
92
|
"defaults and supports es6-module",
|
|
94
93
|
"maintained node versions"
|
|
95
94
|
],
|
|
96
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "deb5936155a3b68fc98e231dde9819da0967876b"
|
|
97
96
|
}
|