@rh-support/troubleshoot 2.1.18 → 2.1.20
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/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +2 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +8 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +2 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts +9 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +69 -0
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts +5 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.js +2 -2
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +2 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +2 -1
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +3 -3
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.js +5 -2
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +25 -9
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +16 -11
- package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileLister.js +2 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +50 -4
- package/lib/esm/reducers/CaseConstNTypes.d.ts +1 -0
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +1 -0
- package/lib/esm/scss/_main.scss +21 -0
- package/lib/esm/scss/_pf4-overrides.scss +24 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,eA+DlD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Tooltip, TooltipPosition } from '@patternfly/react-core';
|
|
2
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
2
3
|
import { LoadingIndicator } from '@rh-support/components';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { Trans } from 'react-i18next';
|
|
@@ -43,5 +44,5 @@ export default function CaseOwnerInfo(props) {
|
|
|
43
44
|
React.createElement(Trans, null, "Office location")),
|
|
44
45
|
": ",
|
|
45
46
|
props.caseDetailsHydra.data.caseOwner.officeLocation)) },
|
|
46
|
-
React.createElement(
|
|
47
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Support Level Info" })))))));
|
|
47
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAA8D,MAAM,OAAO,CAAC;AA8BnF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,MAAM,eA8ejD"}
|
|
@@ -7,7 +7,7 @@ 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 { Alert, AlertVariant, Button, ButtonVariant, ExpandableSection, Label } from '@patternfly/react-core';
|
|
10
|
+
import { Alert, AlertVariant, Button, ButtonVariant, ExpandableSection, Label, ModalVariant, } from '@patternfly/react-core';
|
|
11
11
|
import { ToastNotification, useConfirmation } from '@rh-support/components';
|
|
12
12
|
import { CloseCaseModal, fetchCaseSeverities, fetchCaseTypes, GlobalMetadataDispatchContext, GlobalMetadataStateContext, useCanEditCase, } from '@rh-support/react-context';
|
|
13
13
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -27,6 +27,7 @@ import { ReopenCaseModal } from '../ConfirmationModals/ReopenCaseModal';
|
|
|
27
27
|
import { PDFContext } from '../PDFContainer';
|
|
28
28
|
import { CaseInformation } from '../Tabs/CaseDetails/CaseInformation';
|
|
29
29
|
import { CaseContactPhoneNumberAlert } from '../Tabs/CaseDetails/CasePhoneNumberConfirmAlert';
|
|
30
|
+
import { CasePhoneNumberSev1ConfirmAlert } from '../Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert';
|
|
30
31
|
import Summary from '../Tabs/CaseDetails/Summary';
|
|
31
32
|
import CaseOwnerInfo from './CaseOwnerInfo';
|
|
32
33
|
import CaseStatus from './CaseStatus';
|
|
@@ -172,8 +173,11 @@ export default function CaseOverview(props) {
|
|
|
172
173
|
else {
|
|
173
174
|
yield confirm({
|
|
174
175
|
catchOnCancel: true,
|
|
175
|
-
title: t(`
|
|
176
|
-
description: t('Are you sure you want to change
|
|
176
|
+
title: t(`Update the status of the case?`),
|
|
177
|
+
description: t('Are you sure you want to change the case status to {{newStatus}}?', { newStatus }),
|
|
178
|
+
confirmText: t('Yes, confirm'),
|
|
179
|
+
cancelText: t('No, cancel'),
|
|
180
|
+
modalVariant: ModalVariant.small,
|
|
177
181
|
});
|
|
178
182
|
updateStatusState(newStatus);
|
|
179
183
|
}
|
|
@@ -229,6 +233,7 @@ export default function CaseOverview(props) {
|
|
|
229
233
|
React.createElement("p", { className: "pf-u-mb-sm" },
|
|
230
234
|
React.createElement(Trans, null, "The customer has received two warnings regarding inactivity. This case will be closed soon if we don't receive any input."))) })))),
|
|
231
235
|
React.createElement(CaseContactPhoneNumberAlert, { isReview: true, tabRef: props.tabsRef }),
|
|
236
|
+
React.createElement(CasePhoneNumberSev1ConfirmAlert, { isReview: true, tabRef: props.tabsRef }),
|
|
232
237
|
React.createElement("header", null,
|
|
233
238
|
React.createElement("h2", { className: "case-ID" },
|
|
234
239
|
React.createElement(Trans, null, "Case"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsManagement.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseDetailsManagement.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAkBnD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,KAAK,EAAE,MAAM,eAgE1D"}
|
|
@@ -14,6 +14,7 @@ import { ShareWithPartner } from '../../ShareCase/PartnerShare';
|
|
|
14
14
|
import { CaseContactPhoneNumber } from './CaseContactPhoneNumber';
|
|
15
15
|
import CaseInternalStatus from './CaseInternalStatus';
|
|
16
16
|
import { CaseContactPhoneNumberAlert } from './CasePhoneNumberConfirmAlert';
|
|
17
|
+
import { CasePhoneNumberSev1ConfirmAlert } from './CasePhoneNumberSev1ConfirmAlert';
|
|
17
18
|
import CaseReferenceNumber from './CaseReferenceNumber';
|
|
18
19
|
import CaseSbrGroups from './CaseSbrGroups';
|
|
19
20
|
export default function CaseDetailsManagement(props) {
|
|
@@ -38,6 +39,7 @@ export default function CaseDetailsManagement(props) {
|
|
|
38
39
|
React.createElement(FlexItem, { flex: { default: 'flex_1' } },
|
|
39
40
|
React.createElement(CaseContactPhoneNumber, null))),
|
|
40
41
|
React.createElement(CaseContactPhoneNumberAlert, { isConfirm: true }),
|
|
42
|
+
React.createElement(CasePhoneNumberSev1ConfirmAlert, { isConfirm: true }),
|
|
41
43
|
canSeeInternalStatus && React.createElement(CaseInternalStatus, null),
|
|
42
44
|
canSeeSBRGroups && React.createElement(CaseSbrGroups, null),
|
|
43
45
|
React.createElement(CaseGroup, null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseHostname.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseHostname.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseHostname.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseHostname.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,EAAE,OAAO,CAAC;CAC3B;AAMD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,eAqKlC;kBArKQ,YAAY;;;AAwKrB,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { accounts } from '@cee-eng/hydrajs';
|
|
11
11
|
import { Popover, PopoverPosition, Spinner, Switch } from '@patternfly/react-core';
|
|
12
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
12
13
|
import { InlineEdit, LoadingIndicator, ToastNotification, useFetch, ValueChangedIcon } from '@rh-support/components';
|
|
13
14
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
14
15
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -108,7 +109,7 @@ function CaseHostname(props) {
|
|
|
108
109
|
React.createElement(InlineEdit, { labelProps: { htmlFor: 'case-details-hostname' }, formClassName: props.className || '', labelContent: React.createElement(React.Fragment, null,
|
|
109
110
|
React.createElement(Trans, null, "Hostname"),
|
|
110
111
|
React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localHostnameChange, value: hostname, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.hostname) })), helperContent: React.createElement(Popover, { "aria-label": "Hostname Info", position: PopoverPosition.auto, bodyContent: hostNameVisibilityContent, closeBtnAriaLabel: "Close", headerContent: 'Share hostname?', onShow: () => userOriginalHostnameValue() },
|
|
111
|
-
React.createElement(
|
|
112
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Hostname Info" })), allowInlineEdit: props.inlineEditable, content: hostname, saveDisabled: hostnameState === hostname || isHostnameUpdating || lengthError, onSave: onSave, onCancel: onCancel, initialIsEditing: false, loadingIndicator: isHostnameUpdating ? React.createElement(LoadingIndicator, { show: isHostnameUpdating, isInline: true }) : undefined },
|
|
112
113
|
React.createElement("input", { type: "text", id: "case-details-hostname", className: `form-control${lengthError ? ' form-invalid' : ''}`, name: "case-details-hostname", value: hostnameState, onChange: onHostnameChange, disabled: isHostnameUpdating, "data-tracking-id": "case-details-hostname", "aria-invalid": lengthError })),
|
|
113
114
|
lengthError && (React.createElement("div", { className: "pull-top" },
|
|
114
115
|
React.createElement("p", { className: "form-instructions form-invalid" },
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IProps {
|
|
3
|
+
isReview?: boolean;
|
|
4
|
+
isConfirm?: boolean;
|
|
5
|
+
tabRef?: React.MutableRefObject<HTMLDivElement>;
|
|
6
|
+
}
|
|
7
|
+
export declare function CasePhoneNumberSev1ConfirmAlert(props: IProps): JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=CasePhoneNumberSev1ConfirmAlert.d.ts.map
|
package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CasePhoneNumberSev1ConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AASpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAMD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,eAmG5D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Alert, AlertVariant, Button, ButtonVariant } from '@patternfly/react-core';
|
|
11
|
+
import { ToastNotification } from '@rh-support/components';
|
|
12
|
+
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
13
|
+
import { scrollIntoView } from '@rh-support/utils';
|
|
14
|
+
import isEqual from 'lodash/isEqual';
|
|
15
|
+
import React, { useContext, useState } from 'react';
|
|
16
|
+
import { Trans, useTranslation } from 'react-i18next';
|
|
17
|
+
import { Link } from 'react-router-dom';
|
|
18
|
+
import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
|
|
19
|
+
import { useCaseUpdateErrorMessage } from '../../../../hooks/useCaseUpdateErrorMessage';
|
|
20
|
+
import { updateCaseDetails } from '../../../../reducers/CaseReducer';
|
|
21
|
+
/*
|
|
22
|
+
On case detail page when case owner changes the sevirity to sev1, this alert will be displayed
|
|
23
|
+
// what happens when partner changes ???
|
|
24
|
+
*/
|
|
25
|
+
export function CasePhoneNumberSev1ConfirmAlert(props) {
|
|
26
|
+
const { globalMetadataState: { loggedInUser }, } = useContext(GlobalMetadataStateContext);
|
|
27
|
+
const [isCaseUpdating, setCasUpdating] = useState(false);
|
|
28
|
+
const { caseNumber, suppliedPhoneNumberVerified, contactSSOName, severity } = useCaseSelector((state) => ({
|
|
29
|
+
caseNumber: state.caseDetails.caseNumber,
|
|
30
|
+
suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
|
|
31
|
+
contactSSOName: state.caseDetails.contactSSOName,
|
|
32
|
+
severity: state.caseDetails.severity,
|
|
33
|
+
}), isEqual);
|
|
34
|
+
const { t } = useTranslation();
|
|
35
|
+
const caseDispatch = useCaseDispatch();
|
|
36
|
+
const caseUpdateError = useCaseUpdateErrorMessage();
|
|
37
|
+
const onCaseDetailsChange = (caseDetails) => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
setCasUpdating(true);
|
|
39
|
+
try {
|
|
40
|
+
yield updateCaseDetails(caseDispatch, caseNumber, caseDetails);
|
|
41
|
+
setCasUpdating(false);
|
|
42
|
+
ToastNotification.addSuccessMessage(t(`Phone number has been successfully confirmed`));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
setCasUpdating(false);
|
|
46
|
+
caseUpdateError.showError(e, t(`Phone number failed to be confirmed`));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const goToPhoneField = () => {
|
|
50
|
+
scrollIntoView(props.tabRef);
|
|
51
|
+
};
|
|
52
|
+
const isPhoneNeedsConfirm = contactSSOName === loggedInUser.data.ssoUsername &&
|
|
53
|
+
severity === "1 (Urgent)" /* SEV_1 */ &&
|
|
54
|
+
suppliedPhoneNumberVerified === 'False';
|
|
55
|
+
if (!isPhoneNeedsConfirm)
|
|
56
|
+
return React.createElement(React.Fragment, null);
|
|
57
|
+
return (React.createElement(React.Fragment, null, props.isReview ? (React.createElement(Alert, { className: "pf-u-mb-md", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
|
|
58
|
+
React.createElement(Link, { replace: true, to: {
|
|
59
|
+
pathname: `/case/${caseNumber}/management`,
|
|
60
|
+
search: 'hello',
|
|
61
|
+
}, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
|
|
62
|
+
React.createElement(Trans, null, "Review phone number")),
|
|
63
|
+
] },
|
|
64
|
+
React.createElement(Trans, null, "This case severity is urgent. Please confirm the phone number we have on file is correct."))) : props.isConfirm ? (React.createElement(Alert, { isInline: true, className: "pf-u-mb-md", variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
|
|
65
|
+
React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
|
|
66
|
+
React.createElement(Trans, null, "Confirm phone number")),
|
|
67
|
+
] },
|
|
68
|
+
React.createElement(Trans, null, "This case severity is urgent. Please confirm the phone number we have on file is correct."))) : (React.createElement(React.Fragment, null))));
|
|
69
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContactPhoneNumberPopOver.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberPopOver.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContactPhoneNumberPopOver.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberPopOver.tsx"],"names":[],"mappings":"AAKA,wBAAgB,yBAAyB,gBA2BxC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Popover, PopoverPosition } from '@patternfly/react-core';
|
|
2
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { Trans } from 'react-i18next';
|
|
4
5
|
export function ContactPhoneNumberPopOver() {
|
|
@@ -8,5 +9,5 @@ export function ContactPhoneNumberPopOver() {
|
|
|
8
9
|
' ',
|
|
9
10
|
React.createElement("a", { href: "https://www.redhat.com/wapps/ugc/protected/personalInfo.html", "data-tracking-id": "case-contact-phone-number-account-details", target: "_blank", rel: "noopener noreferrer" }, "your account details"),
|
|
10
11
|
".")), closeBtnAriaLabel: "Close" },
|
|
11
|
-
React.createElement(
|
|
12
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Contact Phone Number Info" })));
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAYA,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAYA,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,eAiCrC"}
|
|
@@ -8,7 +8,7 @@ import { RulesStateContext } from '../../context/RulesContext';
|
|
|
8
8
|
import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
9
9
|
import FileEARule, { getValidAttachmentRules } from '../ImproveCase/FileEARule';
|
|
10
10
|
import { WidgetFileUploader } from '../shared/fileUpload/WidgetFileUploader';
|
|
11
|
-
export function FileDiag() {
|
|
11
|
+
export function FileDiag(props) {
|
|
12
12
|
const { sessionRestore: { activeSessionId }, } = useContext(SessionRestoreStateContext);
|
|
13
13
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
14
14
|
const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
@@ -19,5 +19,5 @@ export function FileDiag() {
|
|
|
19
19
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
20
20
|
if (!canAddAttachments)
|
|
21
21
|
return null;
|
|
22
|
-
return (React.createElement(WidgetFileUploader, { idToUploadTo: activeSessionId, isPrivate: false, needsAnalyzing: isIdea ? false : true, isSessionId: true, isSecureSupport: loggedInUsersAccount.data.secureSupport, autoUploadOnSelect: loggedInUsersAccount.data.secureSupport ? false : true, helperText: getValidAttachmentRules(rulesState.EARules.rules).length > 0 ? React.createElement(FileEARule, null) : null, isIdea: isIdea }));
|
|
22
|
+
return (React.createElement(WidgetFileUploader, { className: props.className, idToUploadTo: activeSessionId, isPrivate: false, needsAnalyzing: isIdea ? false : true, isSessionId: true, isSecureSupport: loggedInUsersAccount.data.secureSupport, autoUploadOnSelect: loggedInUsersAccount.data.secureSupport ? false : true, helperText: getValidAttachmentRules(rulesState.EARules.rules).length > 0 ? React.createElement(FileEARule, null) : null, isIdea: isIdea }));
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAW,MAAM,0BAA0B,CAAC;AAwBrE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChE,oBAAoB,EAAE,OAAO,CAAC;CACjC;AASD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACxD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,eAqR9B;kBArRQ,QAAQ;;;AAuRjB,eAAe,QAAQ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Popover, PopoverPosition, Tooltip, TooltipPosition } from '@patternfly/react-core';
|
|
2
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
2
3
|
import WarningTriangleIcon from '@patternfly/react-icons/dist/js/icons/warning-triangle-icon';
|
|
3
4
|
import { Dropdown, ValueChangedIcon } from '@rh-support/components';
|
|
4
5
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
@@ -159,7 +160,7 @@ function Severity(props) {
|
|
|
159
160
|
' ',
|
|
160
161
|
React.createElement("a", { href: "/support/policy/severity", target: "_blank" },
|
|
161
162
|
React.createElement(Trans, null, "Red Hat Support Severity Level Definitions"))), closeBtnAriaLabel: "Close" },
|
|
162
|
-
React.createElement(
|
|
163
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Support Severity Level Info" }))),
|
|
163
164
|
"\u00A0",
|
|
164
165
|
filteredSeverities.filter((s) => s.disabled).length !== 0 && (React.createElement(Tooltip, { position: TooltipPosition.top, content: React.createElement(Trans, null, "Only the enabled severity levels are supported for selected product and version.") },
|
|
165
166
|
React.createElement(WarningTriangleIcon, { color: "#ec7a08", size: "sm", title: "Support Severity Level warning" }))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAU5D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,eA4HlC;kBA5HQ,YAAY;;;AA8HrB,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Popover, PopoverPosition, Select, SelectOption, SelectVariant, ValidatedOptions, } from '@patternfly/react-core';
|
|
2
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
2
3
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
3
4
|
import { showFtsOnCaseViewEditPage, showFtsOnCreateCasePage } from '@rh-support/utils';
|
|
4
5
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -81,7 +82,7 @@ function SupportLevel(props) {
|
|
|
81
82
|
"Learn more about our",
|
|
82
83
|
' ',
|
|
83
84
|
React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
|
|
84
|
-
React.createElement(
|
|
85
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Support Level Info" })),
|
|
85
86
|
React.createElement(Select, { variant: SelectVariant.single, "aria-label": t('Select Support Level'), onToggle: onToggle, onSelect: onEntitlementChange, selections: selectedSla, isOpen: isOpen, "aria-labelledby": 'get-support-supportLevel', isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), validated: isSupportLevelInValid ? ValidatedOptions.error : ValidatedOptions.default, "data-tracking-id": "get-support-supportLevel" }, getSlaList().map((sla, index) => (React.createElement(SelectOption, { key: index, value: sla })))),
|
|
86
87
|
isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
|
|
87
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cep.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/Cep.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cep.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/Cep.tsx"],"names":[],"mappings":"AAsCA,UAAU,MAAM;CAAG;AAEnB,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,eAkShC"}
|
|
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { Button, Form, FormGroup, Modal, ModalVariant, Popover, PopoverPosition, TextArea, TextInput, ValidatedOptions, } from '@patternfly/react-core';
|
|
11
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
|
|
11
12
|
import { LoadingIndicator, ToastNotification, useConfirmation } from '@rh-support/components';
|
|
12
13
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
13
14
|
import { AbilityContext, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -135,12 +136,11 @@ export function Cep(props) {
|
|
|
135
136
|
return React.createElement(React.Fragment, null);
|
|
136
137
|
}
|
|
137
138
|
return (React.createElement("div", { className: "form-group push-top" },
|
|
138
|
-
React.createElement("input", { type: "checkbox", id: "get-support-cep", name: "get-support-cep", checked: cep, onChange: onCepChange, "data-tracking-id": "get-support-cep" }),
|
|
139
|
+
React.createElement("input", { type: "checkbox", id: "get-support-cep", name: "get-support-cep", checked: isEqual(cep, undefined) ? false : cep, onChange: onCepChange, "data-tracking-id": "get-support-cep" }),
|
|
139
140
|
React.createElement("label", { htmlFor: "get-support-cep" },
|
|
140
141
|
React.createElement(Trans, null, "Consultant has been engaged")),
|
|
141
142
|
React.createElement(Popover, { "aria-label": "CEP info", position: PopoverPosition.top, bodyContent: React.createElement(Trans, null, "Used by consultants to indicate that a consulting engagement is in progress and the issue requires increased attention from support resources."), closeBtnAriaLabel: "Close" },
|
|
142
|
-
React.createElement(
|
|
143
|
-
' ',
|
|
143
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "CEP Info" })),
|
|
144
144
|
React.createElement(LoadingIndicator, { show: isCaseUpdating && isPostingCep, isInline: true, size: "sm" }),
|
|
145
145
|
React.createElement(Modal, { id: "cep-details-modal", title: t('Consultant engagement is in progress'), "aria-describedby": "cep-modal-description", isOpen: isCepModalOpen, showClose: true, variant: ModalVariant.large, onClose: onCancel, actions: [
|
|
146
146
|
React.createElement(Button, { key: "confirm", variant: "primary", className: "btn btn-app btn-primary", onClick: onSubmit, isDisabled: saveButtonIsClicked && isFormInvalid, "data-tracking-id": "cep-details-save" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CriticalSolutionsToast.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/CriticalSolutionsToast.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CriticalSolutionsToast.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/CriticalSolutionsToast.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAOnE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,sBAAsB,EAAE,EAAE,CAAC,MAAM,CA4DtC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -3,14 +3,16 @@ import { PreviousCaseTypes } from '@rh-support/utils';
|
|
|
3
3
|
import isEqual from 'lodash/isEqual';
|
|
4
4
|
import React, { useContext, useEffect, useState } from 'react';
|
|
5
5
|
import { Trans, useTranslation } from 'react-i18next';
|
|
6
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
6
|
+
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
7
7
|
import { RulesDispatchContext, RulesStateContext } from '../../context/RulesContext';
|
|
8
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
8
9
|
import { RulesReducerConstants } from '../../reducers/RulesReducer';
|
|
9
10
|
const CriticalSolutionsToast = (props) => {
|
|
10
11
|
const { t } = useTranslation();
|
|
11
12
|
const [showNotification, setShowNotification] = useState(false);
|
|
12
13
|
const { rulesState } = useContext(RulesStateContext);
|
|
13
14
|
const rulesDispatch = useContext(RulesDispatchContext);
|
|
15
|
+
const caseDispatch = useCaseDispatch();
|
|
14
16
|
const { caseType } = useCaseSelector((state) => ({
|
|
15
17
|
caseType: state.caseDetails.caseType,
|
|
16
18
|
}), isEqual);
|
|
@@ -35,13 +37,14 @@ const CriticalSolutionsToast = (props) => {
|
|
|
35
37
|
});
|
|
36
38
|
};
|
|
37
39
|
const viewCriticalSolution = () => {
|
|
40
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
|
|
38
41
|
onClose();
|
|
39
42
|
setEAModalVisibility(true);
|
|
40
43
|
props.userClosed();
|
|
41
44
|
};
|
|
42
45
|
if (!showNotification && !rulesState.triggerRuleNotification)
|
|
43
46
|
return null;
|
|
44
|
-
return (React.createElement(Alert, { isLiveRegion: true, variant: "success", title: t('File recommendations are ready to view'), "data-tracking-id": "toast-view-
|
|
47
|
+
return (React.createElement(Alert, { isLiveRegion: true, variant: "success", title: t('File recommendations are ready to view'), "data-tracking-id": "toast-view-critical-solutions", actionLinks: React.createElement(Button, { isInline: true, variant: "link", onClick: viewCriticalSolution },
|
|
45
48
|
React.createElement(Trans, null, "Troubleshooting specific for your uploaded files.")), actionClose: React.createElement(AlertActionCloseButton, { variantLabel: "success alert", onClose: onClose }), timeout: caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT }));
|
|
46
49
|
};
|
|
47
50
|
export default CriticalSolutionsToast;
|
|
@@ -7,7 +7,7 @@ export function RecommendationFeedbackModal({ isModalOpen, handleModalToggle, mo
|
|
|
7
7
|
React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-c-button pf-m-primary", to: "/case/list" },
|
|
8
8
|
React.createElement(Trans, null, "View your cases")),
|
|
9
9
|
React.createElement(Button, { "data-tracking-id": "resolved-feedback-continue", key: "continue", variant: "link", onClick: handleModalToggle },
|
|
10
|
-
React.createElement(Trans, null, "Continue")),
|
|
10
|
+
React.createElement(Trans, null, "Continue troubleshooting")),
|
|
11
11
|
] },
|
|
12
12
|
React.createElement("h1", { id: "rec-feedback-modal" }, modalContent)));
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eAyM/C"}
|
|
@@ -8,12 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { pcm } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Accordion, Button, Modal } from '@patternfly/react-core';
|
|
11
|
+
import { Accordion, Button, Card, CardBody, CardExpandableContent, CardHeader, CardTitle, Modal, } from '@patternfly/react-core';
|
|
12
12
|
import { useFetch } from '@rh-support/components';
|
|
13
13
|
import { getResTypeFromUrl } from '@rh-support/utils';
|
|
14
14
|
import React, { useContext, useEffect, useState } from 'react';
|
|
15
15
|
import { Trans, useTranslation } from 'react-i18next';
|
|
16
|
+
import { useCaseDispatch } from '../../context/CaseContext';
|
|
16
17
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
18
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
17
19
|
import { createOrUpdateSessionResources, getSessResFromRecs } from '../../reducers/SessionRestoreReducer';
|
|
18
20
|
import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
|
|
19
21
|
import { EARuleInfoAccordion } from './EARules/EARuleInfoAccordion';
|
|
@@ -40,6 +42,9 @@ export function InsightResultModal(props) {
|
|
|
40
42
|
const { request: resolveSessionRequest, isFetching } = useFetch(pcm.preCase.session.resolveSession);
|
|
41
43
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
42
44
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
45
|
+
const caseDispatch = useCaseDispatch();
|
|
46
|
+
const [isExpanded, setIsExpanded] = React.useState(true);
|
|
47
|
+
// To handle self solving of issues
|
|
43
48
|
const handleSolvedIssue = () => __awaiter(this, void 0, void 0, function* () {
|
|
44
49
|
var _a, _b, _c, _d;
|
|
45
50
|
try {
|
|
@@ -59,6 +64,9 @@ export function InsightResultModal(props) {
|
|
|
59
64
|
const onModalToggle = () => {
|
|
60
65
|
setIsModalVisible((visible) => !visible);
|
|
61
66
|
};
|
|
67
|
+
const onExpand = (event, id) => {
|
|
68
|
+
setIsExpanded(!isExpanded);
|
|
69
|
+
};
|
|
62
70
|
useEffect(() => {
|
|
63
71
|
props.isOpen &&
|
|
64
72
|
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, getSessResFromRecs(props.insightResults, SessionResourceVisibility.PRESENTED));
|
|
@@ -86,14 +94,22 @@ export function InsightResultModal(props) {
|
|
|
86
94
|
setCanShowNewTag(!(total === trueValues));
|
|
87
95
|
}, [selectedLocalFiles, props.EARule]);
|
|
88
96
|
if (props.isRenderedMain) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
|
|
98
|
+
return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations", isExpanded: isExpanded, isCompact: true },
|
|
99
|
+
React.createElement(CardHeader, { onExpand: onExpand, toggleButtonProps: {
|
|
100
|
+
id: 'toggle-button1',
|
|
101
|
+
'aria-label': t('File recommendations'),
|
|
102
|
+
'aria-labelledby': 'expandable-card-title toggle-button1',
|
|
103
|
+
'aria-expanded': isExpanded,
|
|
104
|
+
}, className: "popular-solutions" },
|
|
105
|
+
React.createElement(CardTitle, { id: "expandable-card-title", className: "card-title" },
|
|
106
|
+
React.createElement(Trans, null, "File recommendations"))),
|
|
107
|
+
React.createElement(CardExpandableContent, null,
|
|
108
|
+
React.createElement(CardBody, { className: "file-recommendation" },
|
|
109
|
+
React.createElement(Accordion, { headingLevel: "h5", asDefinitionList: false, isBordered: true },
|
|
110
|
+
props.insightResults.map((doc) => (React.createElement(InsightsRuleInfo, { duplicateKeys: duplicateKeys, showNewTag: canShowNewTag, key: doc.id + doc.attachmentId, doc: doc }))),
|
|
111
|
+
props.EARule.length > 0 &&
|
|
112
|
+
props.EARule.map((rule, index) => (React.createElement(EARuleInfoAccordion, { showNewTag: canShowNewTag, key: `${index}_eaRule`, rule: rule }))))))));
|
|
97
113
|
}
|
|
98
114
|
return (React.createElement(React.Fragment, null,
|
|
99
115
|
React.createElement(RecommendationFeedbackModal, { isModalOpen: isModalVisible, handleModalToggle: onModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAkBA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,eA0GzC;kBA1GQ,mBAAmB;;;AA6G5B,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Card, CardBody, CardHeader, CardTitle } from '@patternfly/react-core';
|
|
1
2
|
import { ErrorBoundary, LoadingDots } from '@rh-support/components';
|
|
2
3
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
3
4
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -31,7 +32,6 @@ function TroubleshootSection(props) {
|
|
|
31
32
|
isCreatingCase: state.isCreatingCase,
|
|
32
33
|
caseType: state.caseDetails.caseType,
|
|
33
34
|
}), isEqual);
|
|
34
|
-
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
35
35
|
const canShowTopProducts = isEmpty(product);
|
|
36
36
|
const canShowTopContent = !canShowTopProducts && ((_a = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
37
37
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
@@ -47,21 +47,26 @@ function TroubleshootSection(props) {
|
|
|
47
47
|
' ',
|
|
48
48
|
React.createElement("p", { className: "pf-u-font-weight-bold selected-product-suggestion" }, product))),
|
|
49
49
|
React.createElement(LoadingDots, { show: topContent.isFetching }),
|
|
50
|
-
topContent.data.length === 0 && (React.createElement(
|
|
51
|
-
React.createElement("
|
|
52
|
-
React.createElement(
|
|
53
|
-
|
|
50
|
+
topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-u-mb-md", isCompact: true },
|
|
51
|
+
React.createElement(CardHeader, { "aria-label": t('Popular solutions and docs'), className: "popular-solutions" },
|
|
52
|
+
React.createElement(CardTitle, { id: "card-title", className: "card-title" },
|
|
53
|
+
React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Popular solutions and docs"))),
|
|
54
|
+
React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "file-recs-no-recommendation pf-u-mt-md" },
|
|
54
55
|
React.createElement(Trans, null, "No recommendations for this product")))),
|
|
55
56
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, null)),
|
|
56
57
|
!isCreatingCase && React.createElement(ClusterRecommendations, { className: "push-top" }))),
|
|
57
58
|
React.createElement("section", { className: "pf-u-mt-lg" },
|
|
58
59
|
isNotAnIdea && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
59
|
-
React.createElement("div", { className: "push-top" }, canAddAttachments ? (React.createElement(FileDiag, null)) : (React.createElement(
|
|
60
|
-
React.createElement(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"."))))))
|
|
60
|
+
React.createElement("div", { className: "push-top" }, canAddAttachments ? (React.createElement(FileDiag, null)) : (React.createElement(React.Fragment, null,
|
|
61
|
+
React.createElement(Card, { id: "card", className: "card-support card-white file-diag", isCompact: true },
|
|
62
|
+
React.createElement(CardHeader, { "aria-label": !isNotAnIdea || loggedInUsersAccount.data.secureSupport
|
|
63
|
+
? t('File uploader')
|
|
64
|
+
: t('Upload file to analyze'), className: "card-heading" },
|
|
65
|
+
React.createElement(CardTitle, { id: "card-title", className: "card-title" }, !isNotAnIdea || loggedInUsersAccount.data.secureSupport ? (React.createElement(Trans, null, "File uploader")) : (React.createElement(Trans, null, "Upload file to analyze")))),
|
|
66
|
+
React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "no-access-file-diag" },
|
|
67
|
+
React.createElement("div", { className: "display-dashed pf-u-font-weight-bold pf-u-text-align-center pf-u-mt-md" },
|
|
68
|
+
React.createElement(Trans, null, "You do not have access to upload files"),
|
|
69
|
+
".")))))))));
|
|
65
70
|
}
|
|
66
71
|
TroubleshootSection.defaultProps = defaultProps;
|
|
67
72
|
export default TroubleshootSection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAiB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGxE,eAAO,MAAM,qBAAqB,2FAAyC,CAAC;AAiB5E,UAAU,MAAM;IACZ,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACtG,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,eAsR/C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { pcm } from '@cee-eng/hydrajs';
|
|
2
2
|
import { Button, ButtonVariant, Label, Progress, ProgressMeasureLocation } from '@patternfly/react-core';
|
|
3
|
+
import HistoryIcon from '@patternfly/react-icons/dist/js/icons/history-icon';
|
|
3
4
|
import { CircularProgressbar } from '@rh-support/components';
|
|
4
5
|
import { humanizeSize } from '@rh-support/utils';
|
|
5
6
|
import capitalize from 'lodash/capitalize';
|
|
@@ -113,7 +114,7 @@ export default function FileLister(props) {
|
|
|
113
114
|
((_a = localFile === null || localFile === void 0 ? void 0 : localFile.description) === null || _a === void 0 ? void 0 : _a.length) > 1 && (React.createElement("span", { className: "character-counter text-muted" }, 255 - localFile.description.length)),
|
|
114
115
|
(isUploadFailed(localFile.uploadProgress.uploadStatus) ||
|
|
115
116
|
isUploadAborted(localFile.uploadProgress.uploadStatus)) && (React.createElement("button", { type: "button", "aria-label": "Failed to upload, Retry", title: "Failed to upload, Retry", className: "btn btn-link btn-xs", "data-tracking-id": "file-lister-retry", onClick: onRetry(index) },
|
|
116
|
-
React.createElement(
|
|
117
|
+
React.createElement(HistoryIcon, null))),
|
|
117
118
|
!isVerifyingUpload(localFile.uploadProgress.uploadStatus) &&
|
|
118
119
|
!isAnalysingFile(localFile.analysisMetadata.analysisStatus) && (React.createElement(React.Fragment, null,
|
|
119
120
|
canShowAbortBtn(localFile.uploadProgress.uploadStatus) && (React.createElement(Button, { variant: ButtonVariant.link, isDanger: true, "aria-label": t('Cancel Upload'), title: t('Cancel Upload'), className: "btn btn-link btn-app remove-file", "data-tracking-id": "file-lister-abort", onClick: onAbortClick(localFile, index), hidden: !localFile.uploadability.ableToUpload, isDisabled: !(localFile.uploadProgress.percentUploaded > 0) },
|
|
@@ -36,7 +36,7 @@ function WizardAside(props) {
|
|
|
36
36
|
canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
37
37
|
React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget }),
|
|
38
38
|
canUseSessionManagement && !isCreatingCase && React.createElement(SessionRestore, { routeProps: props.routeProps }),
|
|
39
|
-
canShowFileUploadWidget() && React.createElement(FileDiag,
|
|
39
|
+
canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-u-mt-md" }))));
|
|
40
40
|
}
|
|
41
41
|
WizardAside.defaultProps = defaultProps;
|
|
42
42
|
export default WizardAside;
|
|
@@ -48,7 +48,7 @@ function WizardMain(props) {
|
|
|
48
48
|
// in useWizard file then add it to step squences in RouteConstNTypes
|
|
49
49
|
const steps = getStepsSequece(showRestFlag);
|
|
50
50
|
return (React.createElement(React.Fragment, null,
|
|
51
|
-
steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue)`, render: () => (React.createElement(Wizard, { navAriaLabel: ` navAriaLabel steps `, mainAriaLabel: ` mainAriaLabel content `, steps: steps, footer: CustomFooter, onNext: onNext, onBack: onBack, hideClose: true, backButtonText: t('Go back'), onCurrentStepChanged: onCurrentStepChanged })) })),
|
|
51
|
+
steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue|open-case)`, render: () => (React.createElement(Wizard, { navAriaLabel: ` navAriaLabel steps `, mainAriaLabel: ` mainAriaLabel content `, steps: steps, footer: CustomFooter, onNext: onNext, onBack: onBack, hideClose: true, backButtonText: t('Go back'), onCurrentStepChanged: onCurrentStepChanged })) })),
|
|
52
52
|
React.createElement(Route, { exact: true, path: `${RouteUtils.seBasePath}/${AppRouteSections.SUBMIT_CASE}`, render: () => renderSubmitCasePage() })));
|
|
53
53
|
}
|
|
54
54
|
export default WizardMain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAK3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,2BAA2B,EAAE,OAAO,EAAE,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,eA4JtC;kBA5JQ,gBAAgB;;;AA8JzB,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { pcm } from '@cee-eng/hydrajs';
|
|
11
|
+
import { Button, ButtonVariant } from '@patternfly/react-core';
|
|
12
|
+
import { useFetch } from '@rh-support/components';
|
|
1
13
|
import { GlobalMetadataStateContext, useCanCreateCase } from '@rh-support/react-context';
|
|
14
|
+
import { getResTypeFromUrl } from '@rh-support/utils';
|
|
2
15
|
import find from 'lodash/find';
|
|
3
16
|
import isEqual from 'lodash/isEqual';
|
|
4
|
-
import React, { useContext } from 'react';
|
|
17
|
+
import React, { useContext, useState } from 'react';
|
|
5
18
|
import { useTranslation } from 'react-i18next';
|
|
6
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
19
|
+
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
7
20
|
import { RouteContext, RouteDispatchContext } from '../../context/RouteContext';
|
|
21
|
+
import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
22
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
8
23
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
9
24
|
import { updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
|
|
25
|
+
import { RecommendationFeedbackModal } from '../Recommendations/RecommendationFeedbackModal';
|
|
10
26
|
import { useIsSectionValid } from '../shared/useIsSectionValid';
|
|
11
27
|
const defaultProps = {};
|
|
12
28
|
function WizardNavigation(props) {
|
|
@@ -22,6 +38,14 @@ function WizardNavigation(props) {
|
|
|
22
38
|
const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
|
|
23
39
|
const dispatchToRouteReducer = useContext(RouteDispatchContext);
|
|
24
40
|
const { activeSectionError, isSectionValidFn } = useIsSectionValid(activeSection);
|
|
41
|
+
const [isRecsModalVisible, setIsRecsModalVisible] = useState(false);
|
|
42
|
+
const { request: resolveSessionRequest } = useFetch(pcm.preCase.session.resolveSession);
|
|
43
|
+
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
44
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
45
|
+
const { isFileRecommendationsTriggered } = useCaseSelector((state) => ({
|
|
46
|
+
isFileRecommendationsTriggered: state.isFileRecommendationsTriggered,
|
|
47
|
+
}), isEqual);
|
|
48
|
+
const caseDispatch = useCaseDispatch();
|
|
25
49
|
const onNext = () => {
|
|
26
50
|
var _a, _b;
|
|
27
51
|
updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, true);
|
|
@@ -59,13 +83,35 @@ function WizardNavigation(props) {
|
|
|
59
83
|
props.onShowRestUpdate(false);
|
|
60
84
|
props.onBack();
|
|
61
85
|
};
|
|
86
|
+
const onRecsFeedbackModalToggle = () => {
|
|
87
|
+
setIsRecsModalVisible((visible) => !visible);
|
|
88
|
+
};
|
|
89
|
+
// To handle self solving through file recommendations
|
|
90
|
+
const handleFileRecsSelfSolved = () => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
var _c, _d, _e, _f;
|
|
92
|
+
try {
|
|
93
|
+
yield resolveSessionRequest(activeSessionId, {
|
|
94
|
+
sessionId: activeSessionId,
|
|
95
|
+
sessionResourceOriginId: (_d = (_c = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _c === void 0 ? void 0 : _c.resourceOriginId) !== null && _d !== void 0 ? _d : '',
|
|
96
|
+
type: getResTypeFromUrl(''),
|
|
97
|
+
source: SessionResourceSource.INSIGHTS,
|
|
98
|
+
resourceEntityId: (_f = (_e = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _e === void 0 ? void 0 : _e.resourceEntityId) !== null && _f !== void 0 ? _f : '',
|
|
99
|
+
url: '',
|
|
100
|
+
});
|
|
101
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: false });
|
|
102
|
+
setIsRecsModalVisible(true);
|
|
103
|
+
}
|
|
104
|
+
catch (e) { }
|
|
105
|
+
});
|
|
62
106
|
// To handle entitled products
|
|
63
107
|
const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
|
|
64
108
|
return (React.createElement(React.Fragment, null,
|
|
65
|
-
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
109
|
+
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
66
110
|
React.createElement("button", { disabled: (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
|
|
67
111
|
(!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
|
|
68
|
-
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
112
|
+
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
113
|
+
activeSection === AppRouteSections.TROUBLESHOOT && isFileRecommendationsTriggered && (React.createElement(Button, { onClick: handleFileRecsSelfSolved, variant: ButtonVariant.secondary, className: "issue-solved-button solved-issue-button", "data-tracking-id": "troubleshoot-self-solved-issue" }, t('I solved my issue'))),
|
|
114
|
+
React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
69
115
|
activeSectionError ? (React.createElement("small", { className: "pf-u-align-self-center pf-u-ml-md text-red" }, t(activeSectionError))) : null));
|
|
70
116
|
}
|
|
71
117
|
WizardNavigation.defaultProps = defaultProps;
|
|
@@ -199,6 +199,7 @@ export interface ICaseState {
|
|
|
199
199
|
caseCreation500ErrorStatus: boolean;
|
|
200
200
|
openshiftDisplayName?: string;
|
|
201
201
|
isCaseOwnerUpdating: boolean;
|
|
202
|
+
isFileRecommendationsTriggered?: boolean;
|
|
202
203
|
}
|
|
203
204
|
export interface ICreateCasePayloadType extends ICaseState {
|
|
204
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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
|
|
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,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,mCAAmC,MAAM,CAAC;AACvD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AACvD,eAAO,MAAM,kCAAkC,QAAQ,CAAC;AACxD,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAC1D,eAAO,MAAM,kDAAkD,MAAM,CAAC;AACtE,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAI7C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,uCAAuC,OAAO,CAAC;AAC5D,eAAO,MAAM,8BAA8B,OAAO,CAAC;AACnD,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D,eAAO,MAAM,4BAA4B,2DAA2D,CAAC;AAGrG,oBAAY,kBAAkB;IAC1B,KAAK,iEAAiE;IACtE,oBAAoB,sDAAsD;IAC1E,WAAW,gEAAgE;IAC3E,kBAAkB,4EAA4E;IAC9F,SAAS,iCAAiC;CAC7C;AAED,0BAAkB,qBAAqB;IACnC,YAAY,gBAAgB;IAC5B,QAAQ,aAAa;IACrB,OAAO,YAAY;CACtB;AACD,0BAAkB,sBAAsB;IACpC,KAAK,eAAe;IACpB,KAAK,aAAa;IAClB,KAAK,eAAe;IACpB,KAAK,YAAY;CACpB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;CAQ/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,yEAAyE,CAAC;AAEnH,oBAAY,oBAAoB;IAC5B,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,+BAA+B,oCAAoC;IACnE,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,uBAAuB,4BAA4B;IACnD,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;IACvD,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;IACzC,6BAA6B,kCAAkC;IAC/D,kCAAkC,uCAAuC;IACzE,gCAAgC,qCAAqC;IACrE,sBAAsB,2BAA2B;IACjD,yBAAyB,8BAA8B;IACvD,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,0BAA0B,+BAA+B;CAC5D;AAED,eAAO,MAAM,gBAAgB,EAAE,UAqF9B,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,iBAAiB,EAAE,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,4BAA4B,EAAE,QAAQ,EAAE,CAAC;IACzC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC;IACpD,sBAAsB,EAAE,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;IAC7E,kBAAkB,EAAE,mBAAmB,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oCAAoC,EAAE,OAAO,CAAC;IAC9C,sCAAsC,EAAE,OAAO,CAAC;IAChD,eAAe,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B,EAAE,OAAO,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;CAAG;AAC7D,oBAAY,eAAe,GAAG,OAAO,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AACpF,oBAAY,uBAAuB,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEhE,eAAO,MAAM,qCAAqC,+CAA+C,CAAC;AAClG,eAAO,MAAM,yCAAyC,+CAA+C,CAAC"}
|
|
@@ -190,6 +190,7 @@ export const initialCaseState = {
|
|
|
190
190
|
caseCreation500ErrorStatus: false,
|
|
191
191
|
openshiftDisplayName: '',
|
|
192
192
|
isCaseOwnerUpdating: false,
|
|
193
|
+
isFileRecommendationsTriggered: false,
|
|
193
194
|
};
|
|
194
195
|
export const ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/articles/5967811';
|
|
195
196
|
export const NON_ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/articles/5967831';
|
package/lib/esm/scss/_main.scss
CHANGED
|
@@ -1077,3 +1077,24 @@ li.pf-c-wizard__nav-item button.pf-m-disabled::before {
|
|
|
1077
1077
|
border: 2px dashed var(--pf-global--palette--black-600);
|
|
1078
1078
|
background-color: var(--pf-global--palette--black-300);
|
|
1079
1079
|
}
|
|
1080
|
+
.pf-c-wizard__footer {
|
|
1081
|
+
display: flex !important;
|
|
1082
|
+
align-items: center !important;
|
|
1083
|
+
padding: 10px !important;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
.main-nav-button {
|
|
1087
|
+
display: flex !important;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
.solved-issue-button {
|
|
1091
|
+
margin-left: auto !important;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
svg.pf-c-spinner.pf-m-md.export-csv-loader {
|
|
1095
|
+
--pf-c-spinner--Color: var(--pf-global--Color--200) !important;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
svg.pf-u-ml-xs.icon-size {
|
|
1099
|
+
width: 14px;
|
|
1100
|
+
}
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
padding: 0 10px;
|
|
148
148
|
|
|
149
149
|
&:hover svg {
|
|
150
|
-
color:
|
|
150
|
+
color: var(--pf-global--palette--blue-500) !important;
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -276,6 +276,29 @@
|
|
|
276
276
|
|
|
277
277
|
.popular-solutions {
|
|
278
278
|
background-color: #286869 !important;
|
|
279
|
+
.card-title {
|
|
280
|
+
color: #fff !important;
|
|
281
|
+
}
|
|
282
|
+
div > button > span > svg {
|
|
283
|
+
color: white !important;
|
|
284
|
+
}
|
|
285
|
+
.file-recs-actions-toggle {
|
|
286
|
+
color: white !important;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
.file-diag {
|
|
290
|
+
border: 1px solid #ededed;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.file-diag > .card-heading {
|
|
294
|
+
display: flex;
|
|
295
|
+
-ms-flex-align: center;
|
|
296
|
+
margin-bottom: 0;
|
|
297
|
+
padding: 0.5rem 0.8rem;
|
|
298
|
+
font-size: 15px;
|
|
299
|
+
background-color: var(--pf-global--palette--black-500);
|
|
300
|
+
border: 1px solid var(--pf-global--palette--black-500);
|
|
301
|
+
color: var(--pf-global--palette--white);
|
|
279
302
|
}
|
|
280
303
|
|
|
281
304
|
.file-diag .file-buttons .pf-c-switch .pf-c-switch__label {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.20",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"@patternfly/react-core": "4.264.0",
|
|
67
67
|
"@progress/kendo-drawing": "^1.6.0",
|
|
68
68
|
"@progress/kendo-react-pdf": "^3.12.0",
|
|
69
|
-
"@rh-support/components": "2.0.
|
|
70
|
-
"@rh-support/react-context": "2.0.
|
|
69
|
+
"@rh-support/components": "2.0.12",
|
|
70
|
+
"@rh-support/react-context": "2.0.12",
|
|
71
71
|
"@rh-support/types": "2.0.2",
|
|
72
72
|
"@rh-support/user-permissions": "2.0.11",
|
|
73
73
|
"@rh-support/utils": "2.0.11",
|
|
@@ -133,5 +133,5 @@
|
|
|
133
133
|
"defaults and supports es6-module",
|
|
134
134
|
"maintained node versions"
|
|
135
135
|
],
|
|
136
|
-
"gitHead": "
|
|
136
|
+
"gitHead": "4a3df080406db9104209fa9fa830c733ada71082"
|
|
137
137
|
}
|