@rh-support/troubleshoot 2.5.14 → 2.5.16
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/ActiveCustomerEscalation.js +12 -12
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +9 -18
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +56 -28
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +6 -6
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +60 -29
- package/lib/esm/components/Cve/CveSidebar.js +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +1 -1
- package/lib/esm/scss/_main.scss +4 -0
- package/package.json +8 -8
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, ButtonVariant, Popover } from '@patternfly/react-core';
|
|
1
|
+
import { Button, ButtonVariant, List, ListItem, Popover } from '@patternfly/react-core';
|
|
2
2
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
3
3
|
import { useCanEditCase } from '@rh-support/react-context';
|
|
4
4
|
import { Can, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -15,7 +15,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
15
15
|
React.createElement("p", null,
|
|
16
16
|
React.createElement(Trans, null, "After submitting, your case will be reviewed by a support manager."))));
|
|
17
17
|
const isInternalElements = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
|
|
18
|
-
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
|
|
18
|
+
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading card-header-bg" },
|
|
19
19
|
React.createElement(Trans, null, "Active Customer Escalation (ACE)"),
|
|
20
20
|
React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about Red Hat support case escalation') },
|
|
21
21
|
React.createElement(InfoCircleIcon, null))),
|
|
@@ -23,11 +23,11 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
23
23
|
React.createElement("p", null,
|
|
24
24
|
React.createElement("strong", null, t('Red Hat associates can open an ACE escalation when')),
|
|
25
25
|
":"),
|
|
26
|
-
React.createElement("
|
|
27
|
-
React.createElement(
|
|
28
|
-
React.createElement(
|
|
29
|
-
React.createElement(
|
|
30
|
-
React.createElement(
|
|
26
|
+
React.createElement(List, { className: "pf-v5-u-pl-lg" },
|
|
27
|
+
React.createElement(ListItem, null, t('The customer wants an update')),
|
|
28
|
+
React.createElement(ListItem, null, t('The customer thinks the case is not moving appropriately')),
|
|
29
|
+
React.createElement(ListItem, null, t('The customer wants a new resource')),
|
|
30
|
+
React.createElement(ListItem, null, t('The issue is more severe than originally thought'))),
|
|
31
31
|
React.createElement("a", { href: `/watchlist/internal/aces/new?caseNumber=${props.caseNumber}`, className: "pf-v5-c-button pf-m-tertiary", target: "_blank", rel: "noopener noreferrer", "data-tracking-id": "request-ace-trigger", "aria-label": t('Request an escalation') }, t('Request an escalation')))));
|
|
32
32
|
const [openRequestEscalationModal, setOpenRequestEscalationModal] = useState(false);
|
|
33
33
|
const toggleModal = () => {
|
|
@@ -36,7 +36,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
36
36
|
setOpenRequestEscalationModal((openRequestEscalationModal) => !openRequestEscalationModal);
|
|
37
37
|
};
|
|
38
38
|
const isNotInternalElements = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
|
|
39
|
-
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
|
|
39
|
+
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading card-header-bg" },
|
|
40
40
|
t('Request an escalation'),
|
|
41
41
|
React.createElement("div", { style: { marginLeft: 'auto' } },
|
|
42
42
|
React.createElement(Popover, { showClose: false, position: 'left', hasAutoWidth: true, bodyContent: (hide) => (React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about escalation cases.') },
|
|
@@ -46,10 +46,10 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
46
46
|
React.createElement("p", null,
|
|
47
47
|
React.createElement("strong", null, t('Request a management escalation if your issue')),
|
|
48
48
|
":"),
|
|
49
|
-
React.createElement("
|
|
50
|
-
React.createElement(
|
|
51
|
-
React.createElement(
|
|
52
|
-
React.createElement(
|
|
49
|
+
React.createElement(List, { className: "pf-v5-u-pl-lg" },
|
|
50
|
+
React.createElement(ListItem, null, t(`Isn't being resolved appropriately.`)),
|
|
51
|
+
React.createElement(ListItem, null, t('Needs a senior resource.')),
|
|
52
|
+
React.createElement(ListItem, null, t('Is more severe or should be a higher priority.'))),
|
|
53
53
|
commonElements,
|
|
54
54
|
React.createElement(Button, { variant: ButtonVariant.secondary, onClick: toggleModal, "data-tracking-id": "request-rme-trigger", "aria-label": t('Request an escalation') }, t('Request an escalation')))));
|
|
55
55
|
return (React.createElement(React.Fragment, null,
|
|
@@ -314,7 +314,7 @@ export const CaseSolutions = forwardRef((props, ref) => {
|
|
|
314
314
|
{ title: '10', value: 10 },
|
|
315
315
|
] }))))))),
|
|
316
316
|
topRecommendations.length > 0 && (React.createElement("div", { className: "card card-white card-support recommendations", ref: ref },
|
|
317
|
-
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
|
|
317
|
+
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading card-header-bg" },
|
|
318
318
|
React.createElement(Trans, null, "Knowledgebase recommendations")),
|
|
319
319
|
React.createElement("div", { className: "card-body" },
|
|
320
320
|
React.createElement(PaginatedList, { id: "case-details-top-recommendations", className: "list-icons list-icons-flush", listItems: topRecommendations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ESSRemoteSession.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ESSRemoteSession.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,+EA+F3B,CAAC"}
|
|
@@ -1,48 +1,39 @@
|
|
|
1
|
-
import { Button, Popover, Tooltip } from '@patternfly/react-core';
|
|
1
|
+
import { Button, List, ListItem, Popover, Tooltip } from '@patternfly/react-core';
|
|
2
2
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
3
3
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
4
4
|
import { TncConstants } from '@rh-support/utils';
|
|
5
5
|
import React, { forwardRef, useContext, useRef, useState } from 'react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
|
-
import { ESSRemoteSessionModal } from './ESSRemoteSessionModal';
|
|
8
7
|
import { NewEssTermsModal } from './NewEssTermsModal';
|
|
9
8
|
export const ESSRemoteSession = forwardRef((props, ref) => {
|
|
10
9
|
const tooltipRef = useRef();
|
|
11
10
|
const { t } = useTranslation();
|
|
12
11
|
const canEditCase = useCanEditCase();
|
|
13
|
-
const { caseNumber, caseStatus, screenSessionRequested, readOnly
|
|
12
|
+
const { caseNumber, caseStatus, screenSessionRequested, readOnly } = props;
|
|
14
13
|
const { globalMetadataState: { loggedInUser, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
15
|
-
const [openESSRemoteSessionModal, setOpenESSRemoteSessionModal] = useState(false);
|
|
16
14
|
const [openNewESSRemoteSessionModal, setOpenNewESSRemoteSessionModal] = useState(false);
|
|
17
|
-
// To toggle ESS RS Modal
|
|
18
|
-
const toggleESSRemoteSessionModal = () => {
|
|
19
|
-
if (canEditCase.alert())
|
|
20
|
-
return;
|
|
21
|
-
setOpenESSRemoteSessionModal((openESSRemoteSessionModal) => !openESSRemoteSessionModal);
|
|
22
|
-
};
|
|
23
15
|
// To toggle New ESS RS Modal
|
|
24
16
|
const toggleNewESSRemoteSessionModal = () => {
|
|
25
17
|
if (canEditCase.alert())
|
|
26
18
|
return;
|
|
27
19
|
setOpenNewESSRemoteSessionModal((openNewESSRemoteSessionModal) => !openNewESSRemoteSessionModal);
|
|
28
20
|
};
|
|
29
|
-
const termsAcked = remoteSessionTermsAcked && !screenSessionRequested;
|
|
30
21
|
// ESS RS Aside Section Body
|
|
31
22
|
const ESSRemoteSessionSectionBody = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
|
|
32
|
-
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between" },
|
|
33
|
-
t('Remote session'),
|
|
23
|
+
React.createElement("h3", { className: "card-heading case-detail-panel-card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between card-header-bg" },
|
|
24
|
+
t('Remote session request'),
|
|
34
25
|
React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('A remote session allows support engineers to view or access your computer to simplify collaboration and troubleshooting.'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
|
|
35
26
|
React.createElement(InfoCircleIcon, null))),
|
|
36
27
|
React.createElement("div", { className: "card-body" },
|
|
37
28
|
React.createElement("p", null,
|
|
38
29
|
React.createElement("strong", null, `${t('Red Hat may agree to remotely access your systems if:')}`)),
|
|
39
|
-
React.createElement("
|
|
40
|
-
React.createElement(
|
|
41
|
-
React.createElement(
|
|
30
|
+
React.createElement(List, { className: "pf-v5-u-pl-xl" },
|
|
31
|
+
React.createElement(ListItem, null, t('Such access will help diagnose, debug or lead to the resolution of a software defect')),
|
|
32
|
+
React.createElement(ListItem, null, t('Agreed upon by both Red Hat and you, the end user'))),
|
|
42
33
|
React.createElement("p", { className: "rrs-light-grey-text" }, t('Red Hat will add a comment to your case to schedule your remote session.')),
|
|
43
34
|
screenSessionRequested && (React.createElement(Tooltip, { content: t('Remote session request has already been submitted.'), triggerRef: tooltipRef, "aria-live": 'polite' })),
|
|
44
|
-
React.createElement(Button, { "aria-label": screenSessionRequested ? t('Remote session requested') : t('Request remote session'), variant: screenSessionRequested ? 'primary' : 'secondary', onClick:
|
|
35
|
+
React.createElement(Button, { "aria-label": screenSessionRequested ? t('Remote session requested') : t('Request remote session'), variant: screenSessionRequested ? 'primary' : 'secondary', onClick: toggleNewESSRemoteSessionModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: screenSessionRequested, ref: tooltipRef }, screenSessionRequested ? t('Remote session requested') : t('Request remote session')))));
|
|
45
36
|
return (React.createElement(React.Fragment, null,
|
|
46
37
|
ESSRemoteSessionSectionBody,
|
|
47
|
-
|
|
38
|
+
React.createElement(NewEssTermsModal, { caseNumber: caseNumber, caseStatus: caseStatus, show: openNewESSRemoteSessionModal, onClose: toggleNewESSRemoteSessionModal, siteCode: TncConstants.REMOTE_RIDER_SITE_CODE, eventCode: TncConstants.REMOTER_RIDER_EVENT_CODE, loggedInUser: loggedInUser.data.ssoUsername === undefined ? '' : loggedInUser.data.ssoUsername, loggedInUserRights: loggedInUserRights, readOnly: readOnly })));
|
|
48
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewEssTermsModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NewEssTermsModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,EAAE,OAAO,CAAC;CACrB;AAiBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAwU7C"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { publicApi } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, ButtonVariant, Checkbox, Modal } from '@patternfly/react-core';
|
|
11
|
+
import { Alert, Button, ButtonVariant, Checkbox, Form, FormGroup, Modal, TextArea, TextInput, } from '@patternfly/react-core';
|
|
12
12
|
import { Select, SelectOption } from '@patternfly/react-core/deprecated';
|
|
13
13
|
import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
|
|
14
14
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
@@ -53,6 +53,10 @@ export function NewEssTermsModal(props) {
|
|
|
53
53
|
});
|
|
54
54
|
const [allTranslations, setAllTranslations] = useState({});
|
|
55
55
|
const [agreeLoading, setAgreeLoading] = useState(false);
|
|
56
|
+
const [isRemoteSessionForm, setIsRemoteSessionForm] = useState(false);
|
|
57
|
+
const [sessionExpectations, setSessionExpectations] = useState('');
|
|
58
|
+
const [impact, setImpact] = useState('');
|
|
59
|
+
const [sessionLink, setSessionLink] = useState('');
|
|
56
60
|
useEffect(() => {
|
|
57
61
|
const fetchTerms = () => __awaiter(this, void 0, void 0, function* () {
|
|
58
62
|
try {
|
|
@@ -82,17 +86,26 @@ export function NewEssTermsModal(props) {
|
|
|
82
86
|
const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
|
|
83
87
|
const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
|
|
84
88
|
const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
|
|
89
|
+
const updateSessionExpectation = (event, value) => setSessionExpectations(value);
|
|
90
|
+
const updateImpact = (event, value) => setImpact(value);
|
|
91
|
+
const updateSessionLink = (event, value) => setSessionLink(value);
|
|
85
92
|
// To handle modal cancel and close
|
|
86
93
|
const onCancel = () => {
|
|
94
|
+
setIsTermsChecked(false);
|
|
95
|
+
setSessionExpectations('');
|
|
96
|
+
setImpact('');
|
|
97
|
+
setSessionLink('');
|
|
98
|
+
setIsRemoteSessionForm(false);
|
|
87
99
|
props.onClose && props.onClose();
|
|
88
100
|
};
|
|
89
101
|
// Function to ack remote session terms and post comment
|
|
90
102
|
const submitRemoteSessionAgreement = (pdfId) => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
const requestComment = t(
|
|
103
|
+
const requestComment = t(`Submitted a remote session request with following details:\n\n**Expectations on time of remote session**\n${sessionExpectations}\n\n**Describe the impact to you or the business**\n${impact}\n\n**Remote session link**\n[${sessionLink}](${sessionLink})\n\nThis action does not initiate a remote session. Please make a case comment if you would like to submit a request.`);
|
|
92
104
|
try {
|
|
93
105
|
yield updateCaseDetails(caseDispatch, props.caseNumber, {
|
|
94
106
|
remoteSessionTermsAcked: true,
|
|
95
107
|
screenSessionRequested: true,
|
|
108
|
+
waitingOnCallback: true,
|
|
96
109
|
});
|
|
97
110
|
try {
|
|
98
111
|
yield postCommentRequest({
|
|
@@ -131,6 +144,7 @@ export function NewEssTermsModal(props) {
|
|
|
131
144
|
}
|
|
132
145
|
}
|
|
133
146
|
});
|
|
147
|
+
const toggleRemoteSessionForm = () => setIsRemoteSessionForm(true);
|
|
134
148
|
// To handle submit
|
|
135
149
|
const onSubmit = () => {
|
|
136
150
|
setAgreeLoading(true);
|
|
@@ -149,35 +163,49 @@ export function NewEssTermsModal(props) {
|
|
|
149
163
|
const onDropdownToggle = (toggle) => setisLangSelectorDropdownOpen(toggle);
|
|
150
164
|
// To check and if I agree button is loading
|
|
151
165
|
const isAgreeLoading = agreeLoading || isPostingComment;
|
|
152
|
-
// ESS RSA Modal Actions
|
|
153
166
|
const modalActions = [
|
|
154
|
-
React.createElement(Button, { key: "submit", "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: onSubmit, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: !isTermsChecked || isAgreeLoading }, t('
|
|
167
|
+
React.createElement(Button, { key: "submit", "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: !isTermsChecked || isAgreeLoading }, t('Submit')),
|
|
168
|
+
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel }, "Cancel"),
|
|
155
169
|
];
|
|
170
|
+
const renderRemoteSessionForm = (React.createElement("div", { id: "remoteSessionForm" },
|
|
171
|
+
React.createElement(Alert, { variant: "info", isInline: true, title: React.createElement(React.Fragment, null,
|
|
172
|
+
"What is a Remote Support Session and how to acknowledge the Remote Access Rider?",
|
|
173
|
+
' ',
|
|
174
|
+
React.createElement("a", { href: "https://access.redhat.com/articles/3566571", target: "_blank", rel: "noopener noreferrer" }, "Read more.")) }),
|
|
175
|
+
React.createElement(Form, { className: "pf-v5-u-pt-md" },
|
|
176
|
+
React.createElement(FormGroup, { label: "Expectations of remote session", type: "string", isRequired: true },
|
|
177
|
+
React.createElement(TextArea, { value: sessionExpectations, onChange: updateSessionExpectation, rows: 3, placeholder: "Please share anything that will help prepare for our meeting?", isRequired: true, "aria-label": "Expectations of remote session" })),
|
|
178
|
+
React.createElement(FormGroup, { label: "Describe the impact to you or the business", type: "string", isRequired: true },
|
|
179
|
+
React.createElement(TextArea, { value: impact, onChange: updateImpact, rows: 3, placeholder: "Describe the user or financial impact.", isRequired: true, "aria-label": "Describe the impact to you or the business" })),
|
|
180
|
+
React.createElement(FormGroup, { label: "Remote session link (optional)" },
|
|
181
|
+
React.createElement(TextInput, { value: sessionLink, onChange: updateSessionLink, type: "text", "aria-label": "Remote session link" }),
|
|
182
|
+
React.createElement("p", { className: "form-instructions" }, "If not provided, the Red Hat Support Associate will share a link with you.")))));
|
|
183
|
+
const renderRemoteSessionAgreement = (React.createElement("div", { id: "remoteSessionAgreement" },
|
|
184
|
+
React.createElement("p", { className: "pf-v5-u-mt-xs" },
|
|
185
|
+
React.createElement(Trans, null,
|
|
186
|
+
"Your acceptance of this remote session agreement is required ",
|
|
187
|
+
React.createElement("strong", null, "for each case"),
|
|
188
|
+
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
189
|
+
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
190
|
+
React.createElement(Trans, null, "Remote access to your network or systems is not a standard Red Hat problem resolution process. Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access.")),
|
|
191
|
+
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
192
|
+
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
193
|
+
React.createElement("div", null,
|
|
194
|
+
React.createElement(Select, { className: "pf-v5-u-mt-md", "aria-label": t('Select language'), id: "terms-language-selector", selections: selectedTranslation.localeCode, onSelect: onLangChange, isOpen: isLangSelectorDropdownOpen, menuAppendTo: document.body, placeholderText: t('Select an option that best fits'), onToggle: (_event, toggle) => onDropdownToggle(toggle), width: 350 }, Object.keys(allTranslations).map((option, index) => (React.createElement(SelectOption, { key: index, value: option }, getLocaleNameFromLocalCode(option))))),
|
|
195
|
+
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v5-u-ml-md", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
196
|
+
t('Download'),
|
|
197
|
+
" ",
|
|
198
|
+
React.createElement(DownloadIcon, { className: "pf-v5-u-ml-xs" }))),
|
|
199
|
+
React.createElement("div", null,
|
|
200
|
+
React.createElement(Checkbox, { className: "pf-v5-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
201
|
+
React.createElement(Trans, null, "I have read and agree to the"),
|
|
202
|
+
' ',
|
|
203
|
+
React.createElement("a", { className: "pf-v5-c-button pf-m-link pf-m-inline align-link-items", rel: "noopener noreferrer", target: "_blank", href: selectedTranslation.pdfDownloadUrl, "data-tracking-id": "case-details-request-remote-session-terms" },
|
|
204
|
+
React.createElement(Trans, null, "terms "),
|
|
205
|
+
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
156
206
|
// Body of ESS RSA Modal
|
|
157
207
|
const EssRSAModalBody = () => {
|
|
158
|
-
return
|
|
159
|
-
React.createElement("p", { className: "pf-v5-u-mt-xs" },
|
|
160
|
-
React.createElement(Trans, null,
|
|
161
|
-
"Your acceptance of this remote session agreement is required ",
|
|
162
|
-
React.createElement("strong", null, "for each case"),
|
|
163
|
-
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
164
|
-
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
165
|
-
React.createElement(Trans, null, "Remote access to your network or systems is not a standard Red Hat problem resolution process. Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access.")),
|
|
166
|
-
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
167
|
-
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
168
|
-
React.createElement("div", null,
|
|
169
|
-
React.createElement(Select, { className: "pf-v5-u-mt-md", "aria-label": t('Select language'), id: "terms-language-selector", selections: selectedTranslation.localeCode, onSelect: onLangChange, isOpen: isLangSelectorDropdownOpen, menuAppendTo: document.body, placeholderText: t('Select an option that best fits'), onToggle: (_event, toggle) => onDropdownToggle(toggle), width: 350 }, Object.keys(allTranslations).map((option, index) => (React.createElement(SelectOption, { key: index, value: option }, getLocaleNameFromLocalCode(option))))),
|
|
170
|
-
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v5-u-ml-md", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
171
|
-
t('Download'),
|
|
172
|
-
" ",
|
|
173
|
-
React.createElement(DownloadIcon, { className: "pf-v5-u-ml-xs" }))),
|
|
174
|
-
React.createElement("div", null,
|
|
175
|
-
React.createElement(Checkbox, { className: "pf-v5-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
176
|
-
React.createElement(Trans, null, "I have read and agree to the"),
|
|
177
|
-
' ',
|
|
178
|
-
React.createElement("a", { className: "pf-v5-c-button pf-m-link pf-m-inline align-link-items", rel: "noopener noreferrer", target: "_blank", href: selectedTranslation.pdfDownloadUrl, "data-tracking-id": "case-details-request-remote-session-terms" },
|
|
179
|
-
React.createElement(Trans, null, "terms "),
|
|
180
|
-
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
208
|
+
return isRemoteSessionForm ? renderRemoteSessionForm : renderRemoteSessionAgreement;
|
|
181
209
|
};
|
|
182
|
-
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": t('
|
|
210
|
+
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": t('Request remote agreement'), title: t('Request remote agreement'), isOpen: props.show, onClose: onCancel, actions: modalActions }, EssRSAModalBody()));
|
|
183
211
|
}
|
package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteSessionAgreement.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,+
|
|
1
|
+
{"version":3,"file":"RemoteSessionAgreement.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,+EAkGjC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, Popover, Tooltip } from '@patternfly/react-core';
|
|
1
|
+
import { Button, List, ListItem, Popover, Tooltip } from '@patternfly/react-core';
|
|
2
2
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
3
3
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
4
4
|
import { TncConstants } from '@rh-support/utils';
|
|
@@ -20,19 +20,19 @@ export const RemoteSessionAgreement = forwardRef((props, ref) => {
|
|
|
20
20
|
};
|
|
21
21
|
// RSA Aside Section Body
|
|
22
22
|
const RemoteSessionAgreementSectionBody = (React.createElement("div", { className: "card card-white card-support escalations", ref: ref },
|
|
23
|
-
React.createElement("h3", { className: "card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between case-detail-panel-card-heading" },
|
|
23
|
+
React.createElement("h3", { className: "card-heading pf-v5-u-display-flex pf-v5-u-justify-content-space-between case-detail-panel-card-heading card-header-bg" },
|
|
24
24
|
t('Remote session agreement'),
|
|
25
25
|
React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
|
|
26
26
|
React.createElement(InfoCircleIcon, null))),
|
|
27
27
|
React.createElement("div", { className: "card-body" },
|
|
28
28
|
React.createElement("p", null,
|
|
29
29
|
React.createElement("strong", null, `${t('Red Hat may agree to remotely access your systems if:')}`)),
|
|
30
|
-
React.createElement("
|
|
31
|
-
React.createElement(
|
|
32
|
-
React.createElement(
|
|
30
|
+
React.createElement(List, { className: "pf-v5-u-pl-lg" },
|
|
31
|
+
React.createElement(ListItem, null, t(`Such access helps diagnose, debug or lead to the resolution of a software defect.`)),
|
|
32
|
+
React.createElement(ListItem, null, t('Both you and Red Hat agree to remote access.'))),
|
|
33
33
|
React.createElement("p", { className: "rrs-light-grey-text" }, t('This action does not initiate a remote session. Please make a case comment if you would like to submit a request.')),
|
|
34
34
|
acceptedRemoteSessionTerms && (React.createElement(Tooltip, { content: t('Remote session agreement has already been accepted.'), triggerRef: tooltipRef, "aria-live": 'polite' })),
|
|
35
|
-
React.createElement(Button, { "aria-label": acceptedRemoteSessionTerms ? t('
|
|
35
|
+
React.createElement(Button, { "aria-label": acceptedRemoteSessionTerms ? t('Remote session requested') : t('Request remote session'), variant: acceptedRemoteSessionTerms ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: acceptedRemoteSessionTerms, ref: tooltipRef }, acceptedRemoteSessionTerms ? t('Remote session requested') : t('Request remote session')))));
|
|
36
36
|
return (React.createElement(React.Fragment, null,
|
|
37
37
|
RemoteSessionAgreementSectionBody,
|
|
38
38
|
React.createElement(RemoteSessionAgreementModal, { caseNumber: caseNumber, caseStatus: caseStatus, show: openRequestRemoteSessionModal, onClose: toggleRemoteSessionAgreementModal, siteCode: TncConstants.REMOTE_RIDER_SITE_CODE, eventCode: TncConstants.REMOTER_RIDER_EVENT_CODE, loggedInUser: loggedInUser.data.ssoUsername === undefined ? '' : loggedInUser.data.ssoUsername, loggedInUserRights: loggedInUserRights, readOnly: readOnly })));
|
package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteSessionAgreementModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RemoteSessionAgreementModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,KAA8B,MAAM,OAAO,CAAC;AAgBnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,EAAE,OAAO,CAAC;CACrB;AAiBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAmUxD"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { publicApi } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, ButtonVariant, Checkbox, Modal } from '@patternfly/react-core';
|
|
11
|
+
import { Alert, Button, ButtonVariant, Checkbox, Form, FormGroup, Modal, TextArea, TextInput, } from '@patternfly/react-core';
|
|
12
12
|
import { Select, SelectOption } from '@patternfly/react-core/deprecated';
|
|
13
13
|
import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
|
|
14
14
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
@@ -53,6 +53,10 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
53
53
|
});
|
|
54
54
|
const [allTranslations, setAllTranslations] = useState({});
|
|
55
55
|
const [agreeLoading, setAgreeLoading] = useState(false);
|
|
56
|
+
const [isRemoteSessionForm, setIsRemoteSessionForm] = useState(false);
|
|
57
|
+
const [sessionExpectations, setSessionExpectations] = useState('');
|
|
58
|
+
const [impact, setImpact] = useState('');
|
|
59
|
+
const [sessionLink, setSessionLink] = useState('');
|
|
56
60
|
useEffect(() => {
|
|
57
61
|
const fetchTerms = () => __awaiter(this, void 0, void 0, function* () {
|
|
58
62
|
try {
|
|
@@ -82,15 +86,27 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
82
86
|
const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
|
|
83
87
|
const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
|
|
84
88
|
const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
|
|
89
|
+
const updateSessionExpectation = (event, value) => setSessionExpectations(value);
|
|
90
|
+
const updateImpact = (event, value) => setImpact(value);
|
|
91
|
+
const updateSessionLink = (event, value) => setSessionLink(value);
|
|
85
92
|
// To handle modal cancel and close
|
|
86
93
|
const onCancel = () => {
|
|
94
|
+
setIsTermsChecked(false);
|
|
95
|
+
setSessionExpectations('');
|
|
96
|
+
setImpact('');
|
|
97
|
+
setSessionLink('');
|
|
98
|
+
setIsRemoteSessionForm(false);
|
|
87
99
|
props.onClose && props.onClose();
|
|
88
100
|
};
|
|
101
|
+
const toggleRemoteSessionForm = () => setIsRemoteSessionForm(true);
|
|
89
102
|
// Function to ack remote session terms and post comment
|
|
90
103
|
const submitRemoteSessionAgreement = (pdfId) => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
const requestComment = t(
|
|
104
|
+
const requestComment = t(`#### Remote Access Rider agreement has been accepted.\n\n**Expectations on time of remote session**\n${sessionExpectations}\n\n**Describe the impact to you or the business**\n${impact}\n\n**Remote session link**\n[${sessionLink}](${sessionLink})\n\nThis action does not initiate a remote session. Please make a case comment if you would like to submit a request.`);
|
|
92
105
|
try {
|
|
93
|
-
yield updateCaseDetails(caseDispatch, props.caseNumber, {
|
|
106
|
+
yield updateCaseDetails(caseDispatch, props.caseNumber, {
|
|
107
|
+
remoteSessionTermsAcked: true,
|
|
108
|
+
waitingOnCallback: true,
|
|
109
|
+
});
|
|
94
110
|
setRemoteRiderFlag(caseDispatch, true);
|
|
95
111
|
try {
|
|
96
112
|
yield postCommentRequest({
|
|
@@ -128,7 +144,7 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
128
144
|
submitRemoteSessionAgreement(selectedTranslation.termsPdfId);
|
|
129
145
|
};
|
|
130
146
|
// Handle terms checkbox
|
|
131
|
-
const onCheckBoxChange = (value) => {
|
|
147
|
+
const onCheckBoxChange = (event, value) => {
|
|
132
148
|
setIsTermsChecked(value);
|
|
133
149
|
};
|
|
134
150
|
// Handle language change
|
|
@@ -142,33 +158,48 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
142
158
|
const isAgreeLoading = agreeLoading || isPostingComment;
|
|
143
159
|
// RSA Modal Actions
|
|
144
160
|
const modalActions = [
|
|
145
|
-
React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: onSubmit, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: !isTermsChecked || isAgreeLoading }, t('
|
|
161
|
+
React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: !isTermsChecked || isAgreeLoading }, t('Submit')),
|
|
162
|
+
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel }, "Cancel"),
|
|
146
163
|
];
|
|
164
|
+
const renderRemoteSessionForm = (React.createElement("div", { id: "remoteSessionForm" },
|
|
165
|
+
React.createElement(Alert, { variant: "info", isInline: true, title: React.createElement(React.Fragment, null,
|
|
166
|
+
"What is a Remote Support Session and how to acknowledge the Remote Access Rider?",
|
|
167
|
+
' ',
|
|
168
|
+
React.createElement("a", { href: "https://access.redhat.com/articles/3566571", target: "_blank", rel: "noopener noreferrer" }, "Read more.")) }),
|
|
169
|
+
React.createElement(Form, { className: "pf-v5-u-pt-md" },
|
|
170
|
+
React.createElement(FormGroup, { label: "Expectations of remote session", type: "string", isRequired: true },
|
|
171
|
+
React.createElement(TextArea, { value: sessionExpectations, onChange: updateSessionExpectation, rows: 3, placeholder: "Please share anything that will help prepare for our meeting?", isRequired: true, "aria-label": "Expectations of remote session" })),
|
|
172
|
+
React.createElement(FormGroup, { label: "Describe the impact to you or the business", type: "string", isRequired: true },
|
|
173
|
+
React.createElement(TextArea, { value: impact, onChange: updateImpact, rows: 3, placeholder: "Describe the user or financial impact.", isRequired: true, "aria-label": "Describe the impact to you or the business" })),
|
|
174
|
+
React.createElement(FormGroup, { label: "Remote session link (optional)" },
|
|
175
|
+
React.createElement(TextInput, { value: sessionLink, onChange: updateSessionLink, type: "text", "aria-label": "Remote session link" }),
|
|
176
|
+
React.createElement("p", { className: "form-instructions" }, "If not provided, the Red Hat Support Associate will share a link with you.")))));
|
|
177
|
+
const renderRemoteSessionAgreement = (React.createElement("div", { id: "remoteSessionAgreement" },
|
|
178
|
+
React.createElement("p", { className: "pf-v5-u-mt-xs" },
|
|
179
|
+
React.createElement(Trans, null,
|
|
180
|
+
"Your acceptance of this remote session agreement is required ",
|
|
181
|
+
React.createElement("strong", null, "for each case"),
|
|
182
|
+
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
183
|
+
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
184
|
+
React.createElement(Trans, null, "Remote access to your network or systems is not a standard Red Hat problem resolution process. Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access.")),
|
|
185
|
+
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
186
|
+
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
187
|
+
React.createElement("div", null,
|
|
188
|
+
React.createElement(Select, { className: "pf-v5-u-mt-md", "aria-label": t('Select language'), id: "terms-language-selector", selections: selectedTranslation.localeCode, onSelect: onLangChange, isOpen: isLangSelectorDropdownOpen, menuAppendTo: document.body, placeholderText: t('Select an option that best fits'), onToggle: (_event, toggle) => onDropdownToggle(toggle), width: 350 }, Object.keys(allTranslations).map((option, index) => (React.createElement(SelectOption, { key: index, value: option }, getLocaleNameFromLocalCode(option))))),
|
|
189
|
+
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v5-u-ml-md", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
190
|
+
t('Download'),
|
|
191
|
+
" ",
|
|
192
|
+
React.createElement(DownloadIcon, { className: "pf-v5-u-ml-xs" }))),
|
|
193
|
+
React.createElement("div", null,
|
|
194
|
+
React.createElement(Checkbox, { className: "pf-v5-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
195
|
+
React.createElement(Trans, null, "I have read and agree to the"),
|
|
196
|
+
' ',
|
|
197
|
+
React.createElement("a", { className: "pf-v5-c-button pf-m-link pf-m-inline align-link-items", rel: "noopener noreferrer", target: "_blank", href: selectedTranslation.pdfDownloadUrl, "data-tracking-id": "case-details-request-remote-session-terms" },
|
|
198
|
+
React.createElement(Trans, null, "terms "),
|
|
199
|
+
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
147
200
|
// Body of RSA Modal
|
|
148
201
|
const RemoteSessionAgreementModalBody = () => {
|
|
149
|
-
return
|
|
150
|
-
React.createElement("p", { className: "pf-v5-u-mt-xs" },
|
|
151
|
-
React.createElement(Trans, null,
|
|
152
|
-
"Your acceptance of this Remote Access Rider is required ",
|
|
153
|
-
React.createElement("strong", null, "for each case"),
|
|
154
|
-
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
155
|
-
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
156
|
-
React.createElement(Trans, null, "Remote access to your network or systems is not a standard Red Hat problem resolution process. Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access.")),
|
|
157
|
-
React.createElement("p", { className: "pf-v5-u-mt-md" },
|
|
158
|
-
React.createElement(Trans, null, "Please read and accept the Remote Access Rider terms below to allow Red Hat to access your network or systems.")),
|
|
159
|
-
React.createElement("div", null,
|
|
160
|
-
React.createElement(Select, { className: "pf-v5-u-mt-md", "aria-label": t('Select language'), id: "terms-language-selector", selections: selectedTranslation.localeCode, onSelect: onLangChange, isOpen: isLangSelectorDropdownOpen, menuAppendTo: document.body, placeholderText: t('Select an option that best fits'), onToggle: (_event, toggle) => onDropdownToggle(toggle), width: 350 }, Object.keys(allTranslations).map((option, index) => (React.createElement(SelectOption, { key: index, value: option }, getLocaleNameFromLocalCode(option))))),
|
|
161
|
-
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v5-u-ml-md", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
162
|
-
t('Download'),
|
|
163
|
-
" ",
|
|
164
|
-
React.createElement(DownloadIcon, { className: "pf-v5-u-ml-xs" }))),
|
|
165
|
-
React.createElement("div", null,
|
|
166
|
-
React.createElement(Checkbox, { className: "pf-v5-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
167
|
-
React.createElement(Trans, null, "I have read and agree to the"),
|
|
168
|
-
' ',
|
|
169
|
-
React.createElement("a", { className: "pf-v5-c-button pf-m-link pf-m-inline align-link-items", rel: "noopener noreferrer", target: "_blank", href: selectedTranslation.pdfDownloadUrl, "data-tracking-id": "case-details-request-remote-session-terms" },
|
|
170
|
-
React.createElement(Trans, null, "terms "),
|
|
171
|
-
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: (_event, value) => onCheckBoxChange(value) }))));
|
|
202
|
+
return isRemoteSessionForm ? renderRemoteSessionForm : renderRemoteSessionAgreement;
|
|
172
203
|
};
|
|
173
|
-
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": t('
|
|
204
|
+
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": t('Request remote agreement'), title: t('Request remote agreement'), isOpen: props.show, onClose: onCancel, actions: modalActions }, RemoteSessionAgreementModalBody()));
|
|
174
205
|
}
|
|
@@ -15,7 +15,7 @@ export const CveSidebar = () => {
|
|
|
15
15
|
}
|
|
16
16
|
return (React.createElement(React.Fragment, null,
|
|
17
17
|
React.createElement("div", { className: "card card-white card-support file-diag pf-v5-u-mb-md" },
|
|
18
|
-
React.createElement("h3", { className: "card-heading popular-solutions green-card-heading" },
|
|
18
|
+
React.createElement("h3", { className: "card-heading popular-solutions green-card-heading card-header-bg" },
|
|
19
19
|
React.createElement("span", { className: "pf-v5-u-mr-sm" }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
|
|
20
20
|
React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))),
|
|
21
21
|
React.createElement("div", { className: "card-body" },
|
|
@@ -131,7 +131,7 @@ export function AsideResults(props) {
|
|
|
131
131
|
if (!canShowSideRecommendations())
|
|
132
132
|
return React.createElement(React.Fragment, null);
|
|
133
133
|
return (React.createElement("div", { className: `card card-white card-support top-recommendations ${props.className ? props.className : ''}` },
|
|
134
|
-
React.createElement("h3", { className: "card-heading popular-solutions green-card-heading" }, isIdea ? React.createElement(Trans, null, "Search recommendations") : React.createElement(Trans, null, "Articles recommended by OpenShift AI")),
|
|
134
|
+
React.createElement("h3", { className: "card-heading popular-solutions green-card-heading card-header-bg" }, isIdea ? React.createElement(Trans, null, "Search recommendations") : React.createElement(Trans, null, "Articles recommended by OpenShift AI")),
|
|
135
135
|
React.createElement("div", { className: "card-body" },
|
|
136
136
|
React.createElement("ul", { className: "list-flat" }, recommendationState.sideRecommendation.map((doc, index) => {
|
|
137
137
|
var _a, _b;
|
|
@@ -32,7 +32,7 @@ export default function ClusterRecommendations(props) {
|
|
|
32
32
|
return React.createElement(React.Fragment, null);
|
|
33
33
|
return (React.createElement(React.Fragment, null,
|
|
34
34
|
showClusterRecommendationsList && (React.createElement("div", { className: `card card-white card-support top-recommendations ${props.className ? props.className : ''}` },
|
|
35
|
-
React.createElement("h3", { className: "card-heading popular-solutions" },
|
|
35
|
+
React.createElement("h3", { className: "card-heading popular-solutions card-header-bg" },
|
|
36
36
|
React.createElement(Trans, null, "Cluster recommendations")),
|
|
37
37
|
React.createElement("div", null,
|
|
38
38
|
React.createElement(ClusterRecommendationItems, { clusterRecommendations: clusterRecommendations.data.slice(0, NUMBER_OF_RULES_TO_DISPLAY) }),
|
|
@@ -147,7 +147,7 @@ function WidgetFileUploader(props) {
|
|
|
147
147
|
}
|
|
148
148
|
});
|
|
149
149
|
return (React.createElement("div", { className: `card card-white card-support file-diag ${props.className || ''}`, onPaste: handlePaste },
|
|
150
|
-
React.createElement("h2", { className: "card-heading card-widget-file-upload-heading" }, props.isIdea || props.isSecureSupport ? (React.createElement(Trans, null, "File uploader")) : (React.createElement(Trans, null, "Upload a file for Red Hat to analyze"))),
|
|
150
|
+
React.createElement("h2", { className: "card-heading card-widget-file-upload-heading card-header-bg" }, props.isIdea || props.isSecureSupport ? (React.createElement(Trans, null, "File uploader")) : (React.createElement(Trans, null, "Upload a file for Red Hat to analyze"))),
|
|
151
151
|
React.createElement("div", { className: "card-body" },
|
|
152
152
|
React.createElement(WidgetFileSelector, { isSessionId: props.isSessionId, isPrivate: props.isPrivate, isIdea: props.isIdea, showFileExceed: fileExceedInfo }),
|
|
153
153
|
!hasSomeSelectedFiles(selectedLocalFiles) ? ((!props.isIdea && props.helperText) || (React.createElement("p", { className: "pf-v5-u-mt-sm" },
|
package/lib/esm/scss/_main.scss
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.16",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"lib/**/*"
|
|
26
26
|
],
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@cee-eng/hydrajs": "4.
|
|
28
|
+
"@cee-eng/hydrajs": "4.18.33",
|
|
29
29
|
"@cee-eng/ui-toolkit": "1.1.8",
|
|
30
30
|
"@patternfly/patternfly": "5.4.2",
|
|
31
31
|
"@patternfly/react-core": "5.4.2",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"react-virtualized": "^9.22.5"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@cee-eng/hydrajs": "4.
|
|
52
|
+
"@cee-eng/hydrajs": "4.18.33",
|
|
53
53
|
"@cee-eng/ui-toolkit": "1.1.8",
|
|
54
54
|
"@patternfly/patternfly": "5.4.2",
|
|
55
55
|
"@patternfly/react-core": "5.4.2",
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"@progress/kendo-licensing": "1.3.5",
|
|
59
59
|
"@progress/kendo-react-pdf": "^5.16.0",
|
|
60
60
|
"@redux-devtools/extension": "^3.3.0",
|
|
61
|
-
"@rh-support/components": "2.5.
|
|
62
|
-
"@rh-support/react-context": "2.5.
|
|
61
|
+
"@rh-support/components": "2.5.12",
|
|
62
|
+
"@rh-support/react-context": "2.5.14",
|
|
63
63
|
"@rh-support/types": "2.0.5",
|
|
64
|
-
"@rh-support/user-permissions": "2.5.
|
|
65
|
-
"@rh-support/utils": "2.5.
|
|
64
|
+
"@rh-support/user-permissions": "2.5.6",
|
|
65
|
+
"@rh-support/utils": "2.5.6",
|
|
66
66
|
"@types/react-redux": "^7.1.33",
|
|
67
67
|
"@types/redux": "^3.6.0",
|
|
68
68
|
"date-fns": "3.6.0",
|
|
@@ -134,5 +134,5 @@
|
|
|
134
134
|
"defaults and supports es6-module",
|
|
135
135
|
"maintained node versions"
|
|
136
136
|
],
|
|
137
|
-
"gitHead": "
|
|
137
|
+
"gitHead": "546b242324a0f5c12db8e448ed7ce8f374e48105"
|
|
138
138
|
}
|