@rh-support/troubleshoot 2.6.90 → 2.6.91
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/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +51 -406
- package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -13
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +0 -12
- package/lib/esm/scss/_pf-overrides.scss +25 -201
- package/package.json +4 -4
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBA6WnD"}
|
|
@@ -8,8 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { escalations, publicApi } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalBody,
|
|
12
|
-
import
|
|
11
|
+
import { Button, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, Popover, TextArea, TextInput, Title, ValidatedOptions, } from '@patternfly/react-core';
|
|
12
|
+
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
13
|
+
import { AlertMessage, AlertType, LoadingIndicator, SingleSelectDropdown, ToastNotification, useFetch, } from '@rh-support/components';
|
|
13
14
|
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
14
15
|
import isEmpty from 'lodash/isEmpty';
|
|
15
16
|
import React, { useEffect, useState } from 'react';
|
|
@@ -18,14 +19,12 @@ import { useCaseDispatch } from '../../../context/CaseContext';
|
|
|
18
19
|
import { useCaseDetailsPageDispatchContext, useCaseDetailsPageStateContext, } from '../../../context/CaseDetailsPageContext';
|
|
19
20
|
import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../../context/CaseDiscussionTabContext';
|
|
20
21
|
import { CustomerGEOs } from '../../../enums/customerGEOs';
|
|
21
|
-
import { ESCALATION_SUBJECT_LENGTH_LIMIT
|
|
22
|
+
import { ESCALATION_SUBJECT_LENGTH_LIMIT } from '../../../reducers/CaseConstNTypes';
|
|
22
23
|
import { fetchCaseEscalations } from '../../../reducers/CaseDetailsPageReducer';
|
|
23
24
|
import { updateDiscussionStateComments } from '../../../reducers/CaseDiscussionTabReducer';
|
|
24
25
|
import { checkForCaseStatusToggleOnAttachOrComment, fetchCaseDetails } from '../../../reducers/CaseReducer';
|
|
25
|
-
import { removeAllChars, trimAndReplacePlus } from '../../shared/utils';
|
|
26
26
|
const customerGEOKeys = Object.keys(CustomerGEOs);
|
|
27
27
|
export function RequestEscalationModal(props) {
|
|
28
|
-
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
29
28
|
const { globalMetadataState: { loggedInUser, loggedInUserRights }, } = useGlobalStateContext();
|
|
30
29
|
const { t } = useTranslation();
|
|
31
30
|
const [categories, setCategories] = useState([]);
|
|
@@ -36,101 +35,12 @@ export function RequestEscalationModal(props) {
|
|
|
36
35
|
geo: '',
|
|
37
36
|
businessImpactDescription: '',
|
|
38
37
|
rmeCategory: '',
|
|
39
|
-
contactName: '',
|
|
40
|
-
contactTitle: '',
|
|
41
|
-
contactPreference: '',
|
|
42
|
-
countryCode: '',
|
|
43
|
-
phoneNumber: '',
|
|
44
|
-
timezone: '',
|
|
45
|
-
preferredTimeFrom: '',
|
|
46
|
-
preferredTimeTo: '',
|
|
47
38
|
};
|
|
48
39
|
const [formState, setFormState] = useState(initialState);
|
|
49
40
|
const [hasLargeSubject, setHasLargeSubject] = useState(false);
|
|
50
41
|
const [submitButtonIsClicked, setSubmitSaveButtonIsClicked] = useState(false);
|
|
51
|
-
const [isPhoneInvalid, setIsPhoneInvalid] = useState(false);
|
|
52
|
-
const isCountryCodeValid = (countryCode) => {
|
|
53
|
-
// Check if the country code exists in the valid country codes list
|
|
54
|
-
if (!countryCode)
|
|
55
|
-
return false;
|
|
56
|
-
const normalizedCode = trimAndReplacePlus(countryCode);
|
|
57
|
-
if (isEmpty(normalizedCode))
|
|
58
|
-
return false;
|
|
59
|
-
return COUNTRY_DATA.some((country) => country[3] === normalizedCode);
|
|
60
|
-
};
|
|
61
|
-
const isPhoneNumberInvalid = (phoneNumber, countryCode) => {
|
|
62
|
-
var _a;
|
|
63
|
-
// Check if country code is given but phone number is empty/only has country code
|
|
64
|
-
return (!isEmpty(phoneNumber) &&
|
|
65
|
-
isEmpty((_a = removeAllChars(phoneNumber || '')) === null || _a === void 0 ? void 0 : _a.replace(trimAndReplacePlus(countryCode || ''), '')));
|
|
66
|
-
};
|
|
67
|
-
const isPhoneLineEmpty = (phoneNumber, countryCode) => {
|
|
68
|
-
var _a;
|
|
69
|
-
// Check if both country code and phone line are empty
|
|
70
|
-
return (isEmpty(trimAndReplacePlus(countryCode || '')) &&
|
|
71
|
-
isEmpty((_a = (phoneNumber || '')) === null || _a === void 0 ? void 0 : _a.replace(countryCode || '', '')));
|
|
72
|
-
};
|
|
73
|
-
const isPhoneNumberValid = (phoneNumber, countryCode) => {
|
|
74
|
-
const trimmedPhone = (phoneNumber || '').trim();
|
|
75
|
-
const phoneObject = getPhoneObj(trimmedPhone);
|
|
76
|
-
const fullPhone = phoneObject.countryCode + ' ' + phoneObject.phoneLine;
|
|
77
|
-
// Check for various invalid states
|
|
78
|
-
if (fullPhone.length > PHONE_LIMIT)
|
|
79
|
-
return false;
|
|
80
|
-
if (isPhoneLineEmpty(phoneNumber, countryCode))
|
|
81
|
-
return false;
|
|
82
|
-
if (isPhoneNumberInvalid(phoneNumber, countryCode))
|
|
83
|
-
return false;
|
|
84
|
-
if (isEmpty(trimAndReplacePlus(countryCode || '')))
|
|
85
|
-
return false;
|
|
86
|
-
if (!isCountryCodeValid(countryCode))
|
|
87
|
-
return false;
|
|
88
|
-
if (trimAndReplacePlus(trimmedPhone) === trimAndReplacePlus(countryCode || ''))
|
|
89
|
-
return false;
|
|
90
|
-
if (trimmedPhone.length < 5)
|
|
91
|
-
return false;
|
|
92
|
-
return true;
|
|
93
|
-
};
|
|
94
|
-
// Function to check if "to" time is after "from" time
|
|
95
|
-
const isValidTimeRange = (fromTime, toTime) => {
|
|
96
|
-
if (!fromTime || !toTime)
|
|
97
|
-
return true; // Don't validate if either is empty
|
|
98
|
-
// Convert time strings to comparable numbers (HH:MM -> HHMM)
|
|
99
|
-
const fromMinutes = fromTime.split(':').map(Number);
|
|
100
|
-
const toMinutes = toTime.split(':').map(Number);
|
|
101
|
-
if (fromMinutes.length !== 2 || toMinutes.length !== 2)
|
|
102
|
-
return true;
|
|
103
|
-
const fromTotal = fromMinutes[0] * 60 + fromMinutes[1];
|
|
104
|
-
const toTotal = toMinutes[0] * 60 + toMinutes[1];
|
|
105
|
-
return toTotal > fromTotal;
|
|
106
|
-
};
|
|
107
42
|
// checks if all the fields have values.
|
|
108
|
-
const hasRequiredInfo = () => {
|
|
109
|
-
const requiredFields = [
|
|
110
|
-
'subject',
|
|
111
|
-
'description',
|
|
112
|
-
'expectations',
|
|
113
|
-
'geo',
|
|
114
|
-
'businessImpactDescription',
|
|
115
|
-
'rmeCategory',
|
|
116
|
-
'contactName',
|
|
117
|
-
'contactTitle',
|
|
118
|
-
'contactPreference',
|
|
119
|
-
];
|
|
120
|
-
if (formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') {
|
|
121
|
-
requiredFields.push('phoneNumber', 'timezone', 'preferredTimeFrom', 'preferredTimeTo');
|
|
122
|
-
}
|
|
123
|
-
const hasAllFields = requiredFields.every((field) => formState[field] && formState[field].toString().trim().length > 0);
|
|
124
|
-
if ((formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') &&
|
|
125
|
-
formState.preferredTimeFrom &&
|
|
126
|
-
formState.preferredTimeTo) {
|
|
127
|
-
return (hasAllFields &&
|
|
128
|
-
isValidTimeRange(formState.preferredTimeFrom, formState.preferredTimeTo) &&
|
|
129
|
-
!isPhoneInvalid &&
|
|
130
|
-
isPhoneNumberValid(formState.phoneNumber, formState.countryCode));
|
|
131
|
-
}
|
|
132
|
-
return hasAllFields;
|
|
133
|
-
};
|
|
43
|
+
const hasRequiredInfo = () => Object.keys(formState).reduce((accumulator, currentValue) => { var _a; return !accumulator ? accumulator : formState[currentValue].length > 0 && ((_a = formState[currentValue]) === null || _a === void 0 ? void 0 : _a.trim()); }, true);
|
|
134
44
|
const setFormStateValue = (key, value) => setFormState((pre) => (Object.assign(Object.assign({}, pre), { [key]: value })));
|
|
135
45
|
const createEscalationFetch = useFetch(escalations.createIceEscalation, { propgateErrors: true });
|
|
136
46
|
const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
|
|
@@ -173,7 +83,6 @@ export function RequestEscalationModal(props) {
|
|
|
173
83
|
setSubmitSaveButtonIsClicked(false);
|
|
174
84
|
setFormState(initialState);
|
|
175
85
|
setHasLargeSubject(false);
|
|
176
|
-
setIsPhoneInvalid(false);
|
|
177
86
|
props.onClose();
|
|
178
87
|
};
|
|
179
88
|
const onSubmit = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -181,72 +90,14 @@ export function RequestEscalationModal(props) {
|
|
|
181
90
|
if (!hasRequiredInfo() || hasLargeSubject)
|
|
182
91
|
return;
|
|
183
92
|
try {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
contactDetailsString += `\nTitle: ${formState.contactTitle}`;
|
|
187
|
-
const contactPrefMap = {
|
|
188
|
-
'call-me': 'Call me',
|
|
189
|
-
'call-if-necessary': 'Call only if necessary',
|
|
190
|
-
'do-not-call': 'Do not call',
|
|
191
|
-
};
|
|
192
|
-
contactDetailsString += `\nContact Preference: ${formState.contactPreference
|
|
193
|
-
? contactPrefMap[formState.contactPreference] || formState.contactPreference
|
|
194
|
-
: ''}`;
|
|
195
|
-
if (formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') {
|
|
196
|
-
contactDetailsString += `\nPhone Number: ${formState.phoneNumber}`;
|
|
197
|
-
contactDetailsString += `\nTimezone: ${formState.timezone}`;
|
|
198
|
-
contactDetailsString += `\nPreferred Time to Call: ${formState.preferredTimeFrom} to ${formState.preferredTimeTo}`;
|
|
199
|
-
}
|
|
200
|
-
const enhancedDescription = formState.description + contactDetailsString;
|
|
201
|
-
// Use contact phone if provided, otherwise use logged in user's phone
|
|
202
|
-
const requestorPhone = (formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') &&
|
|
203
|
-
formState.phoneNumber
|
|
204
|
-
? formState.phoneNumber
|
|
205
|
-
: loggedInUser.data.phone;
|
|
206
|
-
const res = yield createEscalationFetch.request({
|
|
207
|
-
subject: formState.subject,
|
|
208
|
-
description: enhancedDescription,
|
|
209
|
-
expectations: formState.expectations,
|
|
210
|
-
geo: formState.geo,
|
|
211
|
-
businessImpactDescription: formState.businessImpactDescription,
|
|
212
|
-
rmeCategory: formState.rmeCategory,
|
|
213
|
-
recordType: 'Active Customer Escalation',
|
|
214
|
-
escalationSource: 'RME Escalation',
|
|
215
|
-
status: 'New',
|
|
216
|
-
accountNumber: loggedInUserRights.data.getAccountNumber(),
|
|
217
|
-
caseNumber: props.caseNumber,
|
|
218
|
-
requestor: formState.contactName || `${loggedInUser.data.firstName} ${loggedInUser.data.lastName}`,
|
|
219
|
-
requestorEmail: loggedInUser.data.email,
|
|
220
|
-
requestorPhone: requestorPhone,
|
|
221
|
-
alreadyEscalated: false,
|
|
222
|
-
severity: props.severity ? props.severity.charAt(0) : '3',
|
|
223
|
-
});
|
|
224
|
-
const formattedContactPreference = formState.contactPreference
|
|
225
|
-
? contactPrefMap[formState.contactPreference] || formState.contactPreference
|
|
226
|
-
: '';
|
|
227
|
-
// Format time to 12-hour format
|
|
228
|
-
const formatTime = (time24) => {
|
|
229
|
-
if (!time24)
|
|
230
|
-
return '';
|
|
231
|
-
const [hours, minutes] = time24.split(':');
|
|
232
|
-
const hour = parseInt(hours);
|
|
233
|
-
const ampm = hour >= 12 ? 'pm' : 'am';
|
|
234
|
-
const hour12 = hour % 12 || 12;
|
|
235
|
-
return `${hour12}:${minutes}${ampm}`;
|
|
236
|
-
};
|
|
237
|
-
const fullComment = t('### Request Management Escalation:\n\n**Name**\n{{contactName}}\n\n**Title**\n{{contactTitle}}\n\n**Subject**\n{{subject}}\n\n**Category**\n{{rmeCategory}}\n\n**Description**\n{{description}}\n\n**Expectations**\n{{expectations}}\n\n**Business impact**\n{{businessImpactDescription}}\n\n**Contact preference**\n{{contactPreference}}{{phoneDetails}}\n\n', {
|
|
93
|
+
const res = yield createEscalationFetch.request(Object.assign(Object.assign({}, formState), { recordType: 'Active Customer Escalation', escalationSource: 'RME Escalation', status: 'New', accountNumber: loggedInUserRights.data.getAccountNumber(), caseNumber: props.caseNumber, requestor: `${loggedInUser.data.firstName} ${loggedInUser.data.lastName}`, requestorEmail: loggedInUser.data.email, requestorPhone: loggedInUser.data.phone, alreadyEscalated: false, severity: props.severity ? props.severity.charAt(0) : '3' }));
|
|
94
|
+
const fullComment = t('### Request Management Escalation:\n\n**Subject**\n{{subject}}\n\n**Category**\n{{rmeCategory}}\n\n**Description**\n{{description}}\n\n**Expectations**\n{{expectations}}\n\n**Business Impact**\n{{businessImpactDescription}}', {
|
|
238
95
|
category: formState.rmeCategory,
|
|
239
96
|
subject: formState.subject,
|
|
240
97
|
description: formState.description,
|
|
241
98
|
expectations: formState.expectations,
|
|
242
99
|
businessImpactDescription: formState.businessImpactDescription,
|
|
243
100
|
rmeCategory: formState.rmeCategory,
|
|
244
|
-
contactName: formState.contactName || 'Not provided',
|
|
245
|
-
contactTitle: formState.contactTitle || 'Not provided',
|
|
246
|
-
contactPreference: formattedContactPreference || 'Not provided',
|
|
247
|
-
phoneDetails: formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary'
|
|
248
|
-
? `\n\n**Case owner's phone number**\n${formState.phoneNumber}\nNote: Phone number will be stored in case comments for escalation only – not used for marketing.\n\n**Timezone**\n${formState.timezone}\n\n**Best time to connect regarding escalation**\nFrom ${formatTime(formState.preferredTimeFrom || '')} to ${formatTime(formState.preferredTimeTo || '')}`
|
|
249
|
-
: '',
|
|
250
101
|
});
|
|
251
102
|
try {
|
|
252
103
|
yield submitEscalationComment(res.name, fullComment);
|
|
@@ -254,12 +105,6 @@ export function RequestEscalationModal(props) {
|
|
|
254
105
|
catch (e) {
|
|
255
106
|
// silently fails, escalation is created but adding comment fails
|
|
256
107
|
}
|
|
257
|
-
// Reset form state before closing
|
|
258
|
-
setFormState(initialState);
|
|
259
|
-
setSubmitSaveButtonIsClicked(false);
|
|
260
|
-
setHasLargeSubject(false);
|
|
261
|
-
setIsPhoneInvalid(false);
|
|
262
|
-
setCreationError(false);
|
|
263
108
|
props.onClose();
|
|
264
109
|
}
|
|
265
110
|
catch (error) {
|
|
@@ -267,6 +112,11 @@ export function RequestEscalationModal(props) {
|
|
|
267
112
|
setCreationError(true);
|
|
268
113
|
}
|
|
269
114
|
});
|
|
115
|
+
const header = (React.createElement(Title, { className: "pf-v6-u-mb-0", id: "custom-header-label", headingLevel: "h1" },
|
|
116
|
+
React.createElement(Trans, null, "Request an escalation"),
|
|
117
|
+
React.createElement(Popover, { showClose: false, position: 'top', hasAutoWidth: true, bodyContent: () => (React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about escalation cases.') },
|
|
118
|
+
React.createElement(Trans, null, "Learn more about escalation cases."))) },
|
|
119
|
+
React.createElement(InfoCircleIcon, { className: "pf-v6-u-ml-sm" }))));
|
|
270
120
|
// load rme categories as soon as user opens the modal
|
|
271
121
|
useEffect(() => {
|
|
272
122
|
if (!props.show || categories.length !== 0)
|
|
@@ -274,7 +124,7 @@ export function RequestEscalationModal(props) {
|
|
|
274
124
|
const fetchCategories = () => __awaiter(this, void 0, void 0, function* () {
|
|
275
125
|
try {
|
|
276
126
|
const categories = yield getRmeCategories();
|
|
277
|
-
setCategories((
|
|
127
|
+
setCategories((categories === null || categories === void 0 ? void 0 : categories.items) || []);
|
|
278
128
|
}
|
|
279
129
|
catch (e) {
|
|
280
130
|
console.log(e);
|
|
@@ -305,251 +155,46 @@ export function RequestEscalationModal(props) {
|
|
|
305
155
|
value: formState.geo,
|
|
306
156
|
label: findSelectedGeoLabel() || t('Select a location'),
|
|
307
157
|
};
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
return ((formState.rmeCategory || '').trim().length > 0 &&
|
|
317
|
-
(formState.geo || '').trim().length > 0 &&
|
|
318
|
-
(formState.subject || '').trim().length > 0 &&
|
|
319
|
-
!hasLargeSubject &&
|
|
320
|
-
(formState.description || '').trim().length > 0 &&
|
|
321
|
-
(formState.expectations || '').trim().length > 0 &&
|
|
322
|
-
(formState.businessImpactDescription || '').trim().length > 0);
|
|
323
|
-
}
|
|
324
|
-
else if (activeStep.id === 'contact-details') {
|
|
325
|
-
const baseValidation = (formState.contactName || '').trim().length > 0 &&
|
|
326
|
-
(formState.contactTitle || '').trim().length > 0 &&
|
|
327
|
-
(formState.contactPreference || '').trim().length > 0;
|
|
328
|
-
// Additional validation if call options are selected
|
|
329
|
-
if (formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') {
|
|
330
|
-
return (baseValidation &&
|
|
331
|
-
isPhoneNumberValid(formState.phoneNumber, formState.countryCode) &&
|
|
332
|
-
!isPhoneInvalid &&
|
|
333
|
-
(formState.preferredTimeFrom || '').trim().length > 0 &&
|
|
334
|
-
(formState.preferredTimeTo || '').trim().length > 0 &&
|
|
335
|
-
(formState.timezone || '').trim().length > 0);
|
|
336
|
-
}
|
|
337
|
-
return baseValidation;
|
|
338
|
-
}
|
|
339
|
-
return false;
|
|
340
|
-
};
|
|
341
|
-
const handleNext = () => {
|
|
342
|
-
setSubmitSaveButtonIsClicked(true);
|
|
343
|
-
if (isCurrentStepValid()) {
|
|
344
|
-
setSubmitSaveButtonIsClicked(false); // Reset validation state when moving to next step
|
|
345
|
-
goToNextStep({});
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
const handleSubmit = () => {
|
|
349
|
-
setSubmitSaveButtonIsClicked(true);
|
|
350
|
-
if (isCurrentStepValid()) {
|
|
351
|
-
onSubmit();
|
|
352
|
-
}
|
|
353
|
-
};
|
|
354
|
-
return (React.createElement("div", { className: "pf-v6-c-wizard__footer" },
|
|
355
|
-
!isFirstStep && (React.createElement(Button, { variant: "secondary", onClick: () => {
|
|
356
|
-
setSubmitSaveButtonIsClicked(false);
|
|
357
|
-
goToPrevStep({});
|
|
358
|
-
}, isDisabled: isLoading, "data-tracking-id": "request-rme-back" }, t('Back'))),
|
|
359
|
-
React.createElement(Button, { variant: "primary", onClick: isLastStep ? handleSubmit : handleNext, isDisabled: isLoading || (submitButtonIsClicked && !isCurrentStepValid()), isLoading: isLoading, "data-tracking-id": isLastStep ? 'request-rme-submit' : 'request-rme-next' }, isLastStep ? t('Submit') : t('Next')),
|
|
360
|
-
React.createElement(Button, { variant: "link", onClick: onCancel, isDisabled: isLoading, "data-tracking-id": "request-rme-cancel" }, t('Cancel'))));
|
|
361
|
-
};
|
|
362
|
-
const escalationDetailsStep = (React.createElement(WizardStep, { id: "escalation-details", name: t('Escalation details') },
|
|
363
|
-
React.createElement("div", { className: "wizard-step-content" },
|
|
364
|
-
React.createElement(Title, { headingLevel: "h2", size: "2xl", className: "pf-v6-u-mb-lg" }, t('Escalation details')),
|
|
365
|
-
React.createElement(Form, { "aria-label": t('Escalation details form'), className: "request-escalation-form" },
|
|
366
|
-
React.createElement(Grid, { hasGutter: true },
|
|
158
|
+
return (React.createElement(Modal, { id: "request-mgmt-escalation-modal", className: "request-escalation-modal", isOpen: props.show, onClose: onCancel, "aria-label": t('Request an escalation') },
|
|
159
|
+
React.createElement(ModalHeader, null, header),
|
|
160
|
+
React.createElement(ModalBody, null,
|
|
161
|
+
React.createElement("p", { className: "pf-v6-u-mb-md" },
|
|
162
|
+
React.createElement(Trans, { i18nKey: "i18RequestEscalationDescription" }, "Submit an escalation if an issue has become more severe or you feel the case needs a higher priority. A support manager will review your escalation request.")),
|
|
163
|
+
React.createElement(AlertMessage, { variant: AlertType.DANGER, title: t('Could not create case escalation'), show: creationError, onClose: onErrorClose, isInline: true, className: "pf-v6-u-mb-md", "aria-label": t('Could not create case escalation') }),
|
|
164
|
+
React.createElement(Form, { "aria-label": t('form'), className: "request-escalation-form" },
|
|
165
|
+
React.createElement(Grid, { hasGutter: true, md: 12 },
|
|
367
166
|
React.createElement(GridItem, { span: 6 },
|
|
368
167
|
React.createElement(FormGroup, { isRequired: true, label: t('Category'), fieldId: "escalation-category" },
|
|
369
|
-
React.createElement(SingleSelectDropdown, { id: "customer-category-select", ariaLabel: t('Category'), selected: selectedCategory, options: categoryOptions, isDisabled: false, isLoading: isCategoriesFetching, isInvalid: submitButtonIsClicked &&
|
|
168
|
+
React.createElement(SingleSelectDropdown, { id: "customer-category-select", ariaLabel: t('Category'), selected: selectedCategory, options: categoryOptions, isDisabled: false, isLoading: isCategoriesFetching, isInvalid: submitButtonIsClicked && isEmpty(formState.rmeCategory), placeholder: t('Select an option that best fits'), onSelect: (option) => setCategoryState(option), isScrollable: true }))),
|
|
370
169
|
React.createElement(GridItem, { span: 6 },
|
|
371
170
|
React.createElement(FormGroup, { isRequired: true, label: t('My region'), fieldId: "escalation-region" },
|
|
372
|
-
React.createElement(SingleSelectDropdown, { ariaLabel: t('My region'), id: "customer-geo-select", selected: selectedGeo, options: geoOptions, isInvalid: submitButtonIsClicked &&
|
|
373
|
-
React.createElement(
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
React.createElement(
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
(formState.geo || '').trim().length > 0 &&
|
|
402
|
-
(formState.subject || '').trim().length > 0 &&
|
|
403
|
-
!hasLargeSubject &&
|
|
404
|
-
(formState.description || '').trim().length > 0 &&
|
|
405
|
-
(formState.expectations || '').trim().length > 0 &&
|
|
406
|
-
(formState.businessImpactDescription || '').trim().length > 0);
|
|
407
|
-
};
|
|
408
|
-
const customNav = (isExpanded, steps, activeStep, goToStepByIndex) => (React.createElement(WizardNav, { isExpanded: isExpanded }, steps.map((step, index) => {
|
|
409
|
-
// Disable the second step if first step is not complete
|
|
410
|
-
const isDisabled = step.id === 'contact-details' && !isFirstStepComplete();
|
|
411
|
-
return (React.createElement(WizardNavItem, { key: step.id, id: step.id, content: step.name, isCurrent: activeStep.id === step.id, isDisabled: isDisabled, stepIndex: step.index, onClick: () => !isDisabled && goToStepByIndex(step.index) }));
|
|
412
|
-
})));
|
|
413
|
-
const contactDetailsStep = (React.createElement(WizardStep, { id: "contact-details", name: t('Contact details') },
|
|
414
|
-
React.createElement("div", { className: "wizard-step-content" },
|
|
415
|
-
React.createElement(Title, { headingLevel: "h2", size: "2xl", className: "pf-v6-u-mb-lg" }, t('Contact details')),
|
|
416
|
-
React.createElement(Form, { "aria-label": t('Contact details form'), className: "request-escalation-form" },
|
|
417
|
-
React.createElement(Grid, { hasGutter: true },
|
|
418
|
-
React.createElement(GridItem, { span: 6 },
|
|
419
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
420
|
-
t('Name'),
|
|
421
|
-
" "), isRequired: true, fieldId: "contact-name" },
|
|
422
|
-
React.createElement(TextInput, { type: "text", validated: submitButtonIsClicked && !((_h = formState.contactName) === null || _h === void 0 ? void 0 : _h.trim())
|
|
423
|
-
? ValidatedOptions.error
|
|
424
|
-
: ValidatedOptions.default, placeholder: t('Enter your name'), id: "contact-name", value: formState.contactName || '', onChange: (_e, value) => setFormState(Object.assign(Object.assign({}, formState), { contactName: value })), "aria-label": t('Contact name') }),
|
|
425
|
-
submitButtonIsClicked && !((_j = formState.contactName) === null || _j === void 0 ? void 0 : _j.trim()) && (React.createElement(FormHelperText, null,
|
|
426
|
-
React.createElement(HelperText, null,
|
|
427
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Name is required'))))))),
|
|
428
|
-
React.createElement(GridItem, { span: 6 },
|
|
429
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
430
|
-
t('Title'),
|
|
431
|
-
" "), isRequired: true, fieldId: "contact-title" },
|
|
432
|
-
React.createElement(TextInput, { type: "text", validated: submitButtonIsClicked && !((_k = formState.contactTitle) === null || _k === void 0 ? void 0 : _k.trim())
|
|
433
|
-
? ValidatedOptions.error
|
|
434
|
-
: ValidatedOptions.default, placeholder: t('Enter your title (e.g. System Admin, DevOps, Project Man..)'), id: "contact-title", value: formState.contactTitle || '', onChange: (_e, value) => setFormState(Object.assign(Object.assign({}, formState), { contactTitle: value })), "aria-label": t('Contact title') }),
|
|
435
|
-
submitButtonIsClicked && !((_l = formState.contactTitle) === null || _l === void 0 ? void 0 : _l.trim()) && (React.createElement(FormHelperText, null,
|
|
436
|
-
React.createElement(HelperText, null,
|
|
437
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Title is required'))))))),
|
|
438
|
-
React.createElement(GridItem, { span: 12 },
|
|
439
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
440
|
-
t('Contact preference'),
|
|
441
|
-
" "), isRequired: true, fieldId: "contact-preference", role: "radiogroup" },
|
|
442
|
-
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-row contact-preference-group" },
|
|
443
|
-
React.createElement(Radio, { id: "call-me", name: "contact-preference", label: t('Call me'), isChecked: formState.contactPreference === 'call-me', onChange: () => setFormState(Object.assign(Object.assign({}, formState), { contactPreference: 'call-me' })), style: { marginRight: '24px' } }),
|
|
444
|
-
React.createElement(Radio, { id: "call-if-necessary", name: "contact-preference", label: t('Call only if necessary'), isChecked: formState.contactPreference === 'call-if-necessary', onChange: () => setFormState(Object.assign(Object.assign({}, formState), { contactPreference: 'call-if-necessary' })), style: { marginRight: '8px' } }),
|
|
445
|
-
React.createElement(Radio, { id: "do-not-call", name: "contact-preference", label: t('Do not call'), isChecked: formState.contactPreference === 'do-not-call', onChange: () => setFormState(Object.assign(Object.assign({}, formState), { contactPreference: 'do-not-call', phoneNumber: '', timezone: '', preferredTimeFrom: '', preferredTimeTo: '' })) })),
|
|
446
|
-
submitButtonIsClicked && !formState.contactPreference && (React.createElement(FormHelperText, null,
|
|
447
|
-
React.createElement(HelperText, null,
|
|
448
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Contact preference is required'))))))),
|
|
449
|
-
(formState.contactPreference === 'call-me' ||
|
|
450
|
-
formState.contactPreference === 'call-if-necessary') && (React.createElement(React.Fragment, null,
|
|
451
|
-
React.createElement(GridItem, { span: 12 },
|
|
452
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
453
|
-
t("Case owner's phone number"),
|
|
454
|
-
" "), isRequired: true, fieldId: "phone-number" },
|
|
455
|
-
React.createElement(PhoneInput, { phoneValue: formState.phoneNumber || '', countryCode: ((_m = formState.countryCode) === null || _m === void 0 ? void 0 : _m.replace('+', '')) || '', onPhoneValueChange: (phone) => setFormState(Object.assign(Object.assign({}, formState), { phoneNumber: phone })), onCountryCodeChange: (code) => setFormState(Object.assign(Object.assign({}, formState), { countryCode: code })), validations: (submitButtonIsClicked &&
|
|
456
|
-
!isPhoneNumberValid(formState.phoneNumber, formState.countryCode)) ||
|
|
457
|
-
isPhoneInvalid ||
|
|
458
|
-
(submitButtonIsClicked &&
|
|
459
|
-
(getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
460
|
-
' ' +
|
|
461
|
-
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT)
|
|
462
|
-
? 'error'
|
|
463
|
-
: 'default', isDisabled: false, invalid: isPhoneInvalid, setInvalid: setIsPhoneInvalid }),
|
|
464
|
-
!isPhoneInvalid &&
|
|
465
|
-
!((getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
466
|
-
' ' +
|
|
467
|
-
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT) &&
|
|
468
|
-
!(submitButtonIsClicked &&
|
|
469
|
-
!isPhoneNumberValid(formState.phoneNumber, formState.countryCode)) && (React.createElement(FormHelperText, null,
|
|
470
|
-
React.createElement(HelperText, null,
|
|
471
|
-
React.createElement(HelperTextItem, { variant: "default" }, t('Note: A current phone/mobile number with the country code helps us support you better. Phone number will be stored in case comments for escalation only – not used for marketing.'))))),
|
|
472
|
-
isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
473
|
-
React.createElement(HelperText, null,
|
|
474
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number can only have digits.'))))),
|
|
475
|
-
submitButtonIsClicked &&
|
|
476
|
-
(getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
477
|
-
' ' +
|
|
478
|
-
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT && (React.createElement(FormHelperText, null,
|
|
479
|
-
React.createElement(HelperText, null,
|
|
480
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number cannot be more than {{limit}} digits.', {
|
|
481
|
-
limit: PHONE_LIMIT,
|
|
482
|
-
}))))),
|
|
483
|
-
submitButtonIsClicked &&
|
|
484
|
-
isPhoneLineEmpty(formState.phoneNumber, formState.countryCode) && (React.createElement(FormHelperText, null,
|
|
485
|
-
React.createElement(HelperText, null,
|
|
486
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number is required'))))),
|
|
487
|
-
submitButtonIsClicked &&
|
|
488
|
-
isPhoneNumberInvalid(formState.phoneNumber, formState.countryCode) &&
|
|
489
|
-
!isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
490
|
-
React.createElement(HelperText, null,
|
|
491
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number cannot be empty'))))),
|
|
492
|
-
submitButtonIsClicked &&
|
|
493
|
-
!isEmpty(trimAndReplacePlus(formState.countryCode || '')) &&
|
|
494
|
-
!isCountryCodeValid(formState.countryCode) && (React.createElement(FormHelperText, null,
|
|
495
|
-
React.createElement(HelperText, null,
|
|
496
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Country code is invalid'))))),
|
|
497
|
-
submitButtonIsClicked &&
|
|
498
|
-
isEmpty(trimAndReplacePlus(formState.countryCode || '')) &&
|
|
499
|
-
!isPhoneLineEmpty(formState.phoneNumber, formState.countryCode) &&
|
|
500
|
-
!isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
501
|
-
React.createElement(HelperText, null,
|
|
502
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number is not valid'))))))),
|
|
503
|
-
React.createElement(GridItem, { span: 12 },
|
|
504
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
505
|
-
t('Timezone'),
|
|
506
|
-
" "), isRequired: true, fieldId: "timezone" },
|
|
507
|
-
React.createElement("div", { className: "timezone" },
|
|
508
|
-
React.createElement(SingleSelectDropdown, { selected: TIMEZONE_OPTIONS.find((opt) => opt.value === formState.timezone) || {
|
|
509
|
-
value: '',
|
|
510
|
-
label: 'Select timezone',
|
|
511
|
-
}, options: TIMEZONE_OPTIONS, onSelect: (option) => setFormState(Object.assign(Object.assign({}, formState), { timezone: option.value })), placeholder: t('Select timezone') })),
|
|
512
|
-
submitButtonIsClicked && !((_o = formState.timezone) === null || _o === void 0 ? void 0 : _o.trim()) && (React.createElement(FormHelperText, null,
|
|
513
|
-
React.createElement(HelperText, null,
|
|
514
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Timezone is required'))))))),
|
|
515
|
-
React.createElement(GridItem, { span: 12 },
|
|
516
|
-
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
517
|
-
t('Best time to connect regarding escalation'),
|
|
518
|
-
" "), isRequired: true, fieldId: "preferred-time" },
|
|
519
|
-
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-align-items-center pf-v6-u-flex-nowrap time-fields-container" },
|
|
520
|
-
React.createElement("span", { className: "time-label pf-v6-u-mr-sm" }, t('from')),
|
|
521
|
-
React.createElement(TimePicker, { time: formState.preferredTimeFrom || '', onChange: (_event, time) => setFormState(Object.assign(Object.assign({}, formState), { preferredTimeFrom: time })), placeholder: "HH:MM", id: "preferred-time-from", "aria-label": t('Preferred time from'), className: "time-input", is24Hour: true, width: "150px", menuAppendTo: "parent", inputProps: {
|
|
522
|
-
validated: submitButtonIsClicked && !((_p = formState.preferredTimeFrom) === null || _p === void 0 ? void 0 : _p.trim())
|
|
523
|
-
? ValidatedOptions.error
|
|
524
|
-
: ValidatedOptions.default,
|
|
525
|
-
} }),
|
|
526
|
-
React.createElement("span", { className: "time-label pf-v6-u-mx-md" }, t('to')),
|
|
527
|
-
React.createElement(TimePicker, { time: formState.preferredTimeTo || '', onChange: (_event, time) => setFormState(Object.assign(Object.assign({}, formState), { preferredTimeTo: time })), placeholder: "HH:MM", id: "preferred-time-to", "aria-label": t('Preferred time to'), className: "time-input", is24Hour: true, width: "150px", menuAppendTo: "parent", inputProps: {
|
|
528
|
-
validated: submitButtonIsClicked &&
|
|
529
|
-
(!((_q = formState.preferredTimeTo) === null || _q === void 0 ? void 0 : _q.trim()) ||
|
|
530
|
-
!isValidTimeRange(formState.preferredTimeFrom || '', formState.preferredTimeTo || ''))
|
|
531
|
-
? ValidatedOptions.error
|
|
532
|
-
: ValidatedOptions.default,
|
|
533
|
-
} })),
|
|
534
|
-
submitButtonIsClicked &&
|
|
535
|
-
(!((_r = formState.preferredTimeFrom) === null || _r === void 0 ? void 0 : _r.trim()) ||
|
|
536
|
-
!((_s = formState.preferredTimeTo) === null || _s === void 0 ? void 0 : _s.trim())) && (React.createElement(FormHelperText, null,
|
|
537
|
-
React.createElement(HelperText, null,
|
|
538
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Preferred time is required'))))),
|
|
539
|
-
submitButtonIsClicked &&
|
|
540
|
-
((_t = formState.preferredTimeFrom) === null || _t === void 0 ? void 0 : _t.trim()) &&
|
|
541
|
-
((_u = formState.preferredTimeTo) === null || _u === void 0 ? void 0 : _u.trim()) &&
|
|
542
|
-
!isValidTimeRange(formState.preferredTimeFrom, formState.preferredTimeTo) && (React.createElement(FormHelperText, null,
|
|
543
|
-
React.createElement(HelperText, null,
|
|
544
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('End time must be after start time'))))))))))))));
|
|
545
|
-
return (React.createElement(Modal, { id: "request-mgmt-escalation-modal", className: "request-escalation-modal pf-m-width-auto", isOpen: props.show, onClose: onCancel, "aria-label": t('Request an escalation'), variant: ModalVariant.large },
|
|
546
|
-
React.createElement("div", { className: "modal-wizard-header" },
|
|
547
|
-
React.createElement(ModalHeader, { title: t('Request an escalation') }),
|
|
548
|
-
React.createElement("a", { href: "/support/escalation", target: "_blank", rel: "noopener noreferrer", className: "pf-v6-u-font-size-sm pf-v6-u-color-200" },
|
|
549
|
-
React.createElement(Trans, null, "Learn more about escalation cases."))),
|
|
550
|
-
React.createElement(ModalBody, null,
|
|
551
|
-
creationError && (React.createElement(AlertMessage, { variant: AlertType.DANGER, title: t('Could not create case escalation'), show: creationError, onClose: onErrorClose, isInline: true, className: "pf-v6-u-mb-md", "aria-label": t('Could not create case escalation') })),
|
|
552
|
-
React.createElement(Wizard, { navAriaLabel: t('Escalation request steps'), footer: CustomFooter, nav: customNav },
|
|
553
|
-
escalationDetailsStep,
|
|
554
|
-
contactDetailsStep))));
|
|
171
|
+
React.createElement(SingleSelectDropdown, { ariaLabel: t('My region'), id: "customer-geo-select", selected: selectedGeo, options: geoOptions, isInvalid: submitButtonIsClicked && isEmpty(formState.geo), placeholder: t('Select a location'), onSelect: (option) => setGeoState(option) }))),
|
|
172
|
+
React.createElement(FormGroup, { isRequired: true, label: t('Subject'), fieldId: "escalation-subject" },
|
|
173
|
+
submitButtonIsClicked && hasLargeSubject && (React.createElement(FormHelperText, null,
|
|
174
|
+
React.createElement(HelperText, null,
|
|
175
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Subject cannot be more than {{limit}} characters', {
|
|
176
|
+
limit: ESCALATION_SUBJECT_LENGTH_LIMIT,
|
|
177
|
+
}))))),
|
|
178
|
+
React.createElement(TextInput, { isRequired: true, validated: (submitButtonIsClicked && isEmpty(formState.subject)) || hasLargeSubject
|
|
179
|
+
? ValidatedOptions.error
|
|
180
|
+
: ValidatedOptions.default, type: "text", placeholder: t('Enter a subject for your request'), id: "subject-input", name: "subject-input", value: formState.subject, onChange: (_event, subject) => onSubjectChange(subject), "aria-label": t('Subject') })),
|
|
181
|
+
React.createElement(FormGroup, { isRequired: true, label: t('Description'), fieldId: "escalation-description" },
|
|
182
|
+
React.createElement(TextArea, { value: formState.description, onChange: (e, value) => setFormStateValue('description', value), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.description)
|
|
183
|
+
? ValidatedOptions.error
|
|
184
|
+
: ValidatedOptions.default, "aria-label": t('Description'), id: "description-textarea", placeholder: t('Provide a detailed comment for us to best assist you'), resizeOrientation: "vertical" })),
|
|
185
|
+
React.createElement(FormGroup, { isRequired: true, label: t('Expectations'), fieldId: "escalation-expectations" },
|
|
186
|
+
React.createElement(TextArea, { onChange: (e, value) => setFormStateValue('expectations', value), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.expectations)
|
|
187
|
+
? ValidatedOptions.error
|
|
188
|
+
: ValidatedOptions.default, placeholder: t('What do you expect to happen with this escalation?'), id: "expectations-input", value: formState.expectations, "aria-label": t('Expectations'), resizeOrientation: "vertical" })),
|
|
189
|
+
React.createElement(FormGroup, { isRequired: true, label: t('Business impact'), fieldId: "escalation-business-impact" },
|
|
190
|
+
React.createElement(TextArea, { onChange: (e, value) => setFormStateValue('businessImpactDescription', value), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.businessImpactDescription)
|
|
191
|
+
? ValidatedOptions.error
|
|
192
|
+
: ValidatedOptions.default, placeholder: t('Does your business impact change with this escalation? Please describe how it changed.'), id: "business-impact-input", value: formState.businessImpactDescription, "aria-label": t('Business impact'), resizeOrientation: "vertical" }))))),
|
|
193
|
+
React.createElement(ModalFooter, null,
|
|
194
|
+
React.createElement(Button, { key: "submit", variant: "primary", onClick: onSubmit, "data-tracking-id": "request-rme-submit", isDisabled: submitButtonIsClicked &&
|
|
195
|
+
(isPostingComment || isUpdatingCase || createEscalationFetch.isFetching || !hasRequiredInfo()), "aria-label": t('Submit') },
|
|
196
|
+
(isPostingComment || isUpdatingCase || createEscalationFetch.isFetching) && (React.createElement(LoadingIndicator, { key: "loading", isInline: true })),
|
|
197
|
+
' ',
|
|
198
|
+
t('Submit')),
|
|
199
|
+
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, "data-tracking-id": "request-rme-cancel", isDisabled: createEscalationFetch.isFetching || isPostingComment || isUpdatingCase, "aria-label": t('Cancel') }, t('Cancel')))));
|
|
555
200
|
}
|
|
@@ -5,8 +5,6 @@ import { IEntitlement } from '@cee-eng/hydrajs/@types/api/public/entitlements';
|
|
|
5
5
|
import { IAccount } from '@cee-eng/hydrajs/@types/models/account';
|
|
6
6
|
import { ICaseNotificationAddresses } from '@cee-eng/hydrajs/@types/models/case';
|
|
7
7
|
import { IContact } from '@cee-eng/hydrajs/@types/models/contact';
|
|
8
|
-
import { ICaseEscalation } from '@cee-eng/hydrajs/@types/models/escalation';
|
|
9
|
-
import { ISingleSelectDropdownOption } from '@rh-support/components';
|
|
10
8
|
import { IAction, IAPIError, IApiResponseDetails } from '@rh-support/types/shared';
|
|
11
9
|
import { Dispatch } from 'react';
|
|
12
10
|
import { ICVEWorkflowRecommendation } from '../models/caseCreationWorkflows';
|
|
@@ -246,15 +244,4 @@ export declare const ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = "https://access.red
|
|
|
246
244
|
export declare const NON_ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = "https://access.redhat.com/articles/5967831";
|
|
247
245
|
export declare const excludedCaseTypesforARH: string[];
|
|
248
246
|
export declare const appSourceId_ARH = "PCM-001";
|
|
249
|
-
export interface IEscalationFormState extends Partial<ICaseEscalation> {
|
|
250
|
-
contactName?: string;
|
|
251
|
-
contactTitle?: string;
|
|
252
|
-
contactPreference?: string;
|
|
253
|
-
countryCode?: string;
|
|
254
|
-
phoneNumber?: string;
|
|
255
|
-
timezone?: string;
|
|
256
|
-
preferredTimeFrom?: string;
|
|
257
|
-
preferredTimeTo?: string;
|
|
258
|
-
}
|
|
259
|
-
export declare const TIMEZONE_OPTIONS: ISingleSelectDropdownOption[];
|
|
260
247
|
//# sourceMappingURL=CaseConstNTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACjH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -236,15 +236,3 @@ export const ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/
|
|
|
236
236
|
export const NON_ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/articles/5967831';
|
|
237
237
|
export const excludedCaseTypesforARH = ['Feature / Enhancement Request', 'Certification']; //Feature / Enhancement Request casetype is alias for Idea on PCM UI
|
|
238
238
|
export const appSourceId_ARH = 'PCM-001';
|
|
239
|
-
export const TIMEZONE_OPTIONS = [
|
|
240
|
-
{ value: 'UTC-08:00', label: 'UTC-08:00 (Pacific Standard Time)' },
|
|
241
|
-
{ value: 'UTC-07:00', label: 'UTC-07:00 (Mountain Standard Time)' },
|
|
242
|
-
{ value: 'UTC-06:00', label: 'UTC-06:00 (Central Standard Time)' },
|
|
243
|
-
{ value: 'UTC-05:00', label: 'UTC-05:00 (Eastern Standard Time)' },
|
|
244
|
-
{ value: 'UTC+00:00', label: 'UTC+00:00 (Greenwich Mean Time)' },
|
|
245
|
-
{ value: 'UTC+01:00', label: 'UTC+01:00 (Central European Time)' },
|
|
246
|
-
{ value: 'UTC+05:30', label: 'UTC+05:30 (India Standard Time)' },
|
|
247
|
-
{ value: 'UTC+08:00', label: 'UTC+08:00 (China, HK, Singapore Standard Time)' },
|
|
248
|
-
{ value: 'UTC+09:00', label: 'UTC+09:00 (Japan Standard Time)' },
|
|
249
|
-
{ value: 'UTC+10:00', label: 'UTC+10:00 (Australian Eastern Standard Time)' },
|
|
250
|
-
];
|
|
@@ -406,209 +406,37 @@ div#cep-details-modal.pf-v6-c-modal-box__body {
|
|
|
406
406
|
}
|
|
407
407
|
|
|
408
408
|
// To override font weight in Request Escalation Form - PCM-11644
|
|
409
|
-
// Target the modal box with the specific width-auto class
|
|
410
|
-
.pf-v6-c-modal-box.pf-m-width-auto {
|
|
411
|
-
max-width: 70vw !important;
|
|
412
|
-
min-width: 900px !important;
|
|
413
|
-
width: 70vw !important;
|
|
414
|
-
|
|
415
|
-
@media (max-width: 992px) {
|
|
416
|
-
min-width: auto !important;
|
|
417
|
-
max-width: 95vw !important;
|
|
418
|
-
width: 95vw !important;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// Override the global 50% max-width rule for large screens
|
|
422
|
-
@media (min-width: 1320px) {
|
|
423
|
-
width: 70vw !important;
|
|
424
|
-
max-width: 70vw !important;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
409
|
div#request-mgmt-escalation-modal.request-escalation-modal {
|
|
429
|
-
.modal-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
font-size: 0.875rem;
|
|
434
|
-
border-bottom: 1px solid #d2d2d2;
|
|
435
|
-
|
|
436
|
-
a {
|
|
437
|
-
font-size: 14px;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
.pf-v6-c-modal-box__header {
|
|
441
|
-
padding: 0 !important;
|
|
442
|
-
margin-bottom: 8px;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
.pf-v6-c-modal-box__title {
|
|
446
|
-
padding: 0 !important;
|
|
447
|
-
font-size: 28px;
|
|
448
|
-
font-weight: 500;
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
.pf-v6-c-modal-box__body {
|
|
453
|
-
padding: 0 !important;
|
|
454
|
-
|
|
455
|
-
& > div:first-child {
|
|
456
|
-
// margin-bottom: 1.5rem;
|
|
457
|
-
|
|
458
|
-
p {
|
|
459
|
-
color: var(--pf-v6-global--Color--200);
|
|
460
|
-
margin-bottom: 0.5rem;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
a {
|
|
464
|
-
color: var(--pf-v6-global--link--Color);
|
|
465
|
-
font-size: 0.875rem;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
// Wizard specific styles
|
|
471
|
-
.pf-v6-c-wizard {
|
|
472
|
-
height: 760px !important;
|
|
473
|
-
border: 1px solid var(--pf-v6-global--BorderColor--100) !important;
|
|
474
|
-
border-radius: 3px;
|
|
475
|
-
overflow: hidden;
|
|
476
|
-
background: white;
|
|
477
|
-
display: flex;
|
|
478
|
-
|
|
479
|
-
.pf-v6-c-wizard__header {
|
|
480
|
-
display: none;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
.pf-v6-c-wizard__main {
|
|
484
|
-
overflow-y: auto;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.pf-v6-c-wizard__body {
|
|
488
|
-
padding: 2rem;
|
|
489
|
-
flex: 1;
|
|
490
|
-
overflow-y: auto;
|
|
491
|
-
overflow-x: hidden;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
.pf-v6-c-wizard__footer {
|
|
495
|
-
padding: var(--global-spacer-lg, 24px);
|
|
496
|
-
background-color: var(--pf-v6-global--BackgroundColor--100);
|
|
497
|
-
border-top: 1px solid var(--pf-v6-global--BorderColor--100);
|
|
498
|
-
display: flex;
|
|
499
|
-
gap: 0.5rem;
|
|
500
|
-
justify-content: flex-start;
|
|
501
|
-
flex-shrink: 0;
|
|
502
|
-
border-top: 1px solid #d2d2d2;
|
|
503
|
-
|
|
504
|
-
button:last-child {
|
|
505
|
-
margin-left: 48px;
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
.wizard-step-content {
|
|
511
|
-
h2 {
|
|
512
|
-
font-size: var(--global-font-size-lg, 18px);
|
|
513
|
-
font-weight: 500;
|
|
514
|
-
margin-bottom: 1.5rem;
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
form.pf-v6-c-form.request-escalation-form {
|
|
519
|
-
.pf-m-textarea textarea {
|
|
520
|
-
resize: vertical !important;
|
|
521
|
-
min-height: 80px;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
#description-textarea {
|
|
525
|
-
min-height: 100px;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
.pf-v6-u-flex-nowrap {
|
|
529
|
-
white-space: nowrap;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
.pf-v6-c-form__label-text {
|
|
533
|
-
font-weight: 600 !important;
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
.pf-v6-c-radio__input {
|
|
537
|
-
margin: 0 !important;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
.contact-preference-group {
|
|
541
|
-
gap: 24px !important;
|
|
542
|
-
|
|
543
|
-
.pf-v6-c-radio {
|
|
544
|
-
margin-bottom: 0 !important;
|
|
545
|
-
|
|
546
|
-
.pf-v6-c-radio__label {
|
|
547
|
-
font-weight: normal !important;
|
|
548
|
-
margin-left: 8px !important;
|
|
410
|
+
div.pf-v6-c-modal-box__body {
|
|
411
|
+
form.pf-v6-c-form.request-escalation-form {
|
|
412
|
+
.pf-m-textarea textarea {
|
|
413
|
+
resize: none !important;
|
|
549
414
|
}
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
.request-escalation-form {
|
|
554
|
-
.pf-v6-l-grid {
|
|
555
|
-
--pf-v6-l-grid--m-gutter--GridGap: 1.5rem !important;
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
.phone-number-input {
|
|
560
|
-
width: 100% !important;
|
|
561
415
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
align-items: center !important;
|
|
584
|
-
gap: 12px !important;
|
|
585
|
-
|
|
586
|
-
.time-label {
|
|
587
|
-
font-size: 14px !important;
|
|
588
|
-
color: var(--pf-v6-global--Color--100) !important;
|
|
589
|
-
flex-shrink: 0 !important;
|
|
590
|
-
margin: 0 !important;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
// Style the PatternFly TimePicker
|
|
594
|
-
.time-input {
|
|
595
|
-
.pf-v6-c-text-input {
|
|
596
|
-
width: 150px !important;
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
// Force dropdown to open downward
|
|
600
|
-
.pf-v6-c-menu {
|
|
601
|
-
top: 100% !important;
|
|
602
|
-
bottom: auto !important;
|
|
603
|
-
transform: none !important;
|
|
416
|
+
div.pf-v6-l-grid.pf-m-all-12-col-on-md.pf-m-gutter {
|
|
417
|
+
div.pf-v6-l-grid__item.pf-m-6-col {
|
|
418
|
+
div.pf-v6-c-form__group {
|
|
419
|
+
div.pf-v6-c-form__group-label {
|
|
420
|
+
label.pf-v6-c-form__label {
|
|
421
|
+
span.pf-v6-c-form__label-text {
|
|
422
|
+
font-weight: 600 !important;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
div.pf-v6-c-form__group {
|
|
429
|
+
div.pf-v6-c-form__group-label {
|
|
430
|
+
label.pf-v6-c-form__label {
|
|
431
|
+
span.pf-v6-c-form__label-text {
|
|
432
|
+
font-weight: 600 !important;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
604
437
|
}
|
|
605
438
|
}
|
|
606
439
|
}
|
|
607
|
-
|
|
608
|
-
// Additional phone number field overrides
|
|
609
|
-
#phone-number {
|
|
610
|
-
width: 100% !important;
|
|
611
|
-
}
|
|
612
440
|
}
|
|
613
441
|
|
|
614
442
|
// To override font weight on reopen case modal - PCM-11644
|
|
@@ -636,10 +464,6 @@ pfe-accordion {
|
|
|
636
464
|
z-index: 1 !important;
|
|
637
465
|
}
|
|
638
466
|
|
|
639
|
-
#request-mgmt-escalation-modal .pf-v6-c-wizard__footer {
|
|
640
|
-
z-index: 0 !important;
|
|
641
|
-
}
|
|
642
|
-
|
|
643
467
|
nav.pf-v6-c-wizard__nav.pf-m-expanded {
|
|
644
468
|
position: absolute;
|
|
645
469
|
left: 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.91",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"@progress/kendo-licensing": "1.3.5",
|
|
60
60
|
"@progress/kendo-react-pdf": "^5.16.0",
|
|
61
61
|
"@redux-devtools/extension": "^3.3.0",
|
|
62
|
-
"@rh-support/components": "2.5.
|
|
63
|
-
"@rh-support/react-context": "2.5.
|
|
62
|
+
"@rh-support/components": "2.5.62",
|
|
63
|
+
"@rh-support/react-context": "2.5.78",
|
|
64
64
|
"@rh-support/types": "2.0.5",
|
|
65
65
|
"@rh-support/user-permissions": "2.5.29",
|
|
66
66
|
"@rh-support/utils": "2.5.26",
|
|
@@ -133,5 +133,5 @@
|
|
|
133
133
|
"defaults and supports es6-module",
|
|
134
134
|
"maintained node versions"
|
|
135
135
|
],
|
|
136
|
-
"gitHead": "
|
|
136
|
+
"gitHead": "c5f0c0b18e82aff2ad923b11d474c44b75cb3d37"
|
|
137
137
|
}
|