@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.
@@ -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("ul", null,
27
- React.createElement("li", null, t('The customer wants an update')),
28
- React.createElement("li", null, t('The customer thinks the case is not moving appropriately')),
29
- React.createElement("li", null, t('The customer wants a new resource')),
30
- React.createElement("li", null, t('The issue is more severe than originally thought'))),
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("ul", null,
50
- React.createElement("li", null, t(`Isn't being resolved appropriately.`)),
51
- React.createElement("li", null, t('Needs a senior resource.')),
52
- React.createElement("li", null, t('Is more severe or should be a higher priority.'))),
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;AAMxE,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,+EAkH3B,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, remoteSessionTermsAcked } = props;
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("ul", null,
40
- React.createElement("li", null, t(`Such access will help diagnose, debug or lead to the resolution of a software defect`)),
41
- React.createElement("li", null, t('Agreed upon by both Red Hat and you, the end user'))),
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: termsAcked ? toggleESSRemoteSessionModal : toggleNewESSRemoteSessionModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: screenSessionRequested, ref: tooltipRef }, screenSessionRequested ? t('Remote session requested') : t('Request remote session')))));
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
- remoteSessionTermsAcked && !screenSessionRequested ? (React.createElement(ESSRemoteSessionModal, { caseNumber: caseNumber, caseStatus: caseStatus, screenSessionRequested: screenSessionRequested, show: openESSRemoteSessionModal, onClose: toggleESSRemoteSessionModal, loggedInUser: loggedInUser.data.ssoUsername === undefined ? '' : loggedInUser.data.ssoUsername, loggedInUserRights: loggedInUserRights, readOnly: readOnly })) : (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 }))));
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":"AAOA,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,qBA8P7C"}
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('Submitted a remote session request.');
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('I agree')),
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 (React.createElement(React.Fragment, null,
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('Remote Session Agreement'), title: t('Remote Session Agreement'), isOpen: props.show, onClose: onCancel, actions: modalActions }, EssRSAModalBody()));
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
  }
@@ -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,+EA8FjC,CAAC"}
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("ul", null,
31
- React.createElement("li", null, t(`Such access helps diagnose, debug or lead to the resolution of a software defect.`)),
32
- React.createElement("li", null, t('Both you and Red Hat agree to remote access.'))),
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('Agreement accepted') : t('Accept agreement'), variant: acceptedRemoteSessionTerms ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: acceptedRemoteSessionTerms, ref: tooltipRef }, acceptedRemoteSessionTerms ? t('Agreement accepted') : t('Accept agreement')))));
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 })));
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteSessionAgreementModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.tsx"],"names":[],"mappings":"AAOA,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,qBAwPxD"}
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('#### Remote Access Rider agreement has been accepted.\n\n This action does not initiate a remote session. Please make a case comment if you would like to submit a request.');
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, { remoteSessionTermsAcked: true });
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('I agree')),
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 (React.createElement(React.Fragment, null,
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('Remote Session Agreement'), title: t('Remote Session Agreement'), isOpen: props.show, onClose: onCancel, actions: modalActions }, RemoteSessionAgreementModalBody()));
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" },
@@ -1151,3 +1151,7 @@ svg.pf-v5-u-ml-xs.icon-size {
1151
1151
  transform: scale(1);
1152
1152
  }
1153
1153
  }
1154
+
1155
+ .card-header-bg {
1156
+ background-color: #006060 !important;
1157
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.5.14",
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.17.37",
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.17.37",
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.11",
62
- "@rh-support/react-context": "2.5.12",
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.5",
65
- "@rh-support/utils": "2.5.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": "ca3168a03dc728c0eb804e514a58a9b8e887ec14"
137
+ "gitHead": "546b242324a0f5c12db8e448ed7ce8f374e48105"
138
138
  }