@rh-support/troubleshoot 2.6.48 → 2.6.49
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.d.ts +0 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -31
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +34 -33
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +2 -3
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +0 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +18 -14
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +102 -53
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +21 -23
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +4 -7
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +9 -7
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +2 -6
- package/lib/esm/components/CaseInformation/Severity.js +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +0 -3
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +24 -16
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +7 -5
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +18 -20
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +9 -6
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +15 -22
- package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
- package/lib/esm/components/Cve/CveModal.js +3 -2
- package/lib/esm/components/Cve/CveSidebar.js +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +9 -6
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +2 -2
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
- package/lib/esm/components/Recommendations/InsightsResults.js +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
- package/lib/esm/components/Recommendations/Recommendations.js +1 -1
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +7 -4
- package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
- package/lib/esm/components/SessionRestore/RestoreLastSessionModal.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/RestoreLastSessionModal.js +5 -3
- package/lib/esm/components/SessionRestore/SessionRestore.js +1 -1
- package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/Suggestions.js +17 -12
- package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/TopContent.js +13 -13
- package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/AskRedHat.js +14 -6
- package/lib/esm/components/TroubleshootSection/ResponseActions.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/ResponseActions.js +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +1 -1
- package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts +1 -0
- package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/UserFeedback.js +2 -2
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -3
- package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -0
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
- package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +7 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +8 -2
- package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +45 -45
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -2
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +14 -10
- package/lib/esm/css/AskRedHat.css +40 -7
- package/lib/esm/css/app.css +5 -4
- package/lib/esm/css/case.css +39 -6
- package/lib/esm/css/results.css +2 -2
- package/lib/esm/scss/_main.scss +70 -7
- package/lib/esm/scss/_pf-overrides.scss +37 -10
- package/package.json +6 -6
|
@@ -8,13 +8,14 @@ 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, ModalBody, ModalFooter, ModalHeader } from '@patternfly/react-core';
|
|
11
|
+
import { Alert, Button, ButtonVariant, Checkbox, Modal, ModalBody, ModalFooter, ModalHeader, TextArea, TextInput, } from '@patternfly/react-core';
|
|
12
12
|
import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
|
|
13
13
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
14
14
|
import { SingleSelectDropdown, ToastNotification, useFetch } from '@rh-support/components';
|
|
15
|
+
import isEqual from 'lodash/isEqual';
|
|
15
16
|
import React, { useEffect, useState } from 'react';
|
|
16
17
|
import { Trans, useTranslation } from 'react-i18next';
|
|
17
|
-
import { useCaseDispatch } from '../../../context/CaseContext';
|
|
18
|
+
import { useCaseDispatch, useCaseSelector } from '../../../context/CaseContext';
|
|
18
19
|
import { useCaseDetailsPageStateContext } from '../../../context/CaseDetailsPageContext';
|
|
19
20
|
import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../../context/CaseDiscussionTabContext';
|
|
20
21
|
import { updateDiscussionStateComments } from '../../../reducers/CaseDiscussionTabReducer';
|
|
@@ -36,6 +37,9 @@ const getLocaleNameFromLocalCode = (localeCode) => {
|
|
|
36
37
|
};
|
|
37
38
|
export function NewEssTermsModal(props) {
|
|
38
39
|
const { t } = useTranslation();
|
|
40
|
+
const { remoteSessionTermsAcked } = useCaseSelector((state) => ({
|
|
41
|
+
remoteSessionTermsAcked: state.caseDetails.remoteSessionTermsAcked,
|
|
42
|
+
}), isEqual);
|
|
39
43
|
const [isTermsChecked, setIsTermsChecked] = useState(false);
|
|
40
44
|
const { request } = useFetch(publicApi.terms.getRequiredTerms);
|
|
41
45
|
const caseDispatch = useCaseDispatch();
|
|
@@ -49,28 +53,29 @@ export function NewEssTermsModal(props) {
|
|
|
49
53
|
translatedInstructions: 'Please read and accept the remote session terms below to allow Red Hat to access your network or systems.',
|
|
50
54
|
translatedTermsName: 'Remote Access Agreement',
|
|
51
55
|
});
|
|
52
|
-
const [
|
|
56
|
+
const [allTranslations, setAllTranslations] = useState({});
|
|
53
57
|
const [agreeLoading, setAgreeLoading] = useState(false);
|
|
58
|
+
const [isRemoteSessionForm, setIsRemoteSessionForm] = useState(remoteSessionTermsAcked);
|
|
59
|
+
const [sessionExpectations, setSessionExpectations] = useState('');
|
|
60
|
+
const [impact, setImpact] = useState('');
|
|
61
|
+
const [sessionLink, setSessionLink] = useState('');
|
|
54
62
|
useEffect(() => {
|
|
55
63
|
const fetchTerms = () => __awaiter(this, void 0, void 0, function* () {
|
|
56
64
|
try {
|
|
57
65
|
const { siteCode, eventCode, loggedInUser } = props;
|
|
58
66
|
const response = yield request(siteCode, eventCode, loggedInUser);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
setSelectedTranslation(defaultTranslation);
|
|
73
|
-
setLanguageOptions(options);
|
|
67
|
+
if (response) {
|
|
68
|
+
let defaultTranslation = response[0].translations[0];
|
|
69
|
+
const translationLangInfoMap = response[0].translations.reduce((allTranslationsmap, translation) => {
|
|
70
|
+
if (translation.isDefault) {
|
|
71
|
+
defaultTranslation = translation;
|
|
72
|
+
}
|
|
73
|
+
allTranslationsmap[translation['localeCode']] = translation;
|
|
74
|
+
return allTranslationsmap;
|
|
75
|
+
}, {});
|
|
76
|
+
setSelectedTranslation(defaultTranslation);
|
|
77
|
+
setAllTranslations(translationLangInfoMap);
|
|
78
|
+
}
|
|
74
79
|
}
|
|
75
80
|
catch (e) {
|
|
76
81
|
console.log(e);
|
|
@@ -85,17 +90,39 @@ export function NewEssTermsModal(props) {
|
|
|
85
90
|
const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
|
|
86
91
|
const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
|
|
87
92
|
const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
|
|
93
|
+
const updateSessionExpectation = (event, value) => setSessionExpectations(value);
|
|
94
|
+
const updateImpact = (event, value) => setImpact(value);
|
|
95
|
+
const updateSessionLink = (event, value) => setSessionLink(value);
|
|
88
96
|
// To handle modal cancel and close
|
|
89
97
|
const onCancel = () => {
|
|
98
|
+
if (agreeLoading || isPostingComment)
|
|
99
|
+
return;
|
|
100
|
+
setIsTermsChecked(false);
|
|
101
|
+
setSessionExpectations('');
|
|
102
|
+
setImpact('');
|
|
103
|
+
setSessionLink('');
|
|
104
|
+
setIsRemoteSessionForm(remoteSessionTermsAcked);
|
|
90
105
|
props.onClose && props.onClose();
|
|
91
106
|
};
|
|
107
|
+
const languageOptions = Object.keys(allTranslations).map((option) => ({
|
|
108
|
+
value: option,
|
|
109
|
+
label: getLocaleNameFromLocalCode(option),
|
|
110
|
+
}));
|
|
111
|
+
// Create selected option object based on current selection
|
|
112
|
+
const selectedLanguage = {
|
|
113
|
+
value: selectedTranslation.localeCode,
|
|
114
|
+
label: selectedTranslation.localeCode
|
|
115
|
+
? getLocaleNameFromLocalCode(selectedTranslation.localeCode)
|
|
116
|
+
: t('Select an option that best fits'),
|
|
117
|
+
};
|
|
92
118
|
// Function to ack remote session terms and post comment
|
|
93
119
|
const submitRemoteSessionAgreement = (pdfId) => __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const requestComment = t(
|
|
120
|
+
const requestComment = t(`**[What is a Remote Support Session and how to acknowledge the Remote Access Rider? Read more.](https://access.redhat.com/articles/3566571)**\n\nSubmitted a remote session request with following details:\n\n**Preferred Time and Expectations for Remote Session**\n${sessionExpectations}\n\n**Describe the impact to you or the business**\n${impact}\n\n${sessionLink ? `**Remote session link**\n[${sessionLink}](${sessionLink})\n\n` : ''}This action does not initiate a remote session. A Red Hat Associate will get back to you soon.`);
|
|
95
121
|
try {
|
|
96
122
|
yield updateCaseDetails(caseDispatch, props.caseNumber, {
|
|
97
123
|
remoteSessionTermsAcked: true,
|
|
98
124
|
screenSessionRequested: true,
|
|
125
|
+
waitingOnCallback: true,
|
|
99
126
|
});
|
|
100
127
|
try {
|
|
101
128
|
yield postCommentRequest({
|
|
@@ -134,6 +161,7 @@ export function NewEssTermsModal(props) {
|
|
|
134
161
|
}
|
|
135
162
|
}
|
|
136
163
|
});
|
|
164
|
+
const toggleRemoteSessionForm = () => setIsRemoteSessionForm(true);
|
|
137
165
|
// To handle submit
|
|
138
166
|
const onSubmit = () => {
|
|
139
167
|
setAgreeLoading(true);
|
|
@@ -144,46 +172,67 @@ export function NewEssTermsModal(props) {
|
|
|
144
172
|
setIsTermsChecked(value);
|
|
145
173
|
};
|
|
146
174
|
// Handle language change
|
|
147
|
-
const
|
|
148
|
-
setSelectedTranslation(
|
|
175
|
+
const onLangChange = (lang) => {
|
|
176
|
+
setSelectedTranslation(allTranslations[lang.value]);
|
|
149
177
|
};
|
|
150
178
|
// To check and if I agree button is loading
|
|
151
179
|
const isAgreeLoading = agreeLoading || isPostingComment;
|
|
180
|
+
const modalActions = [
|
|
181
|
+
React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm || remoteSessionTermsAcked ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: (isRemoteSessionForm || remoteSessionTermsAcked
|
|
182
|
+
? !sessionExpectations.trim() || !impact.trim()
|
|
183
|
+
: !isTermsChecked) || isAgreeLoading }, t(isRemoteSessionForm || remoteSessionTermsAcked ? 'Submit' : 'I agree')),
|
|
184
|
+
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, isDisabled: isAgreeLoading }, "Cancel"),
|
|
185
|
+
];
|
|
186
|
+
const renderRemoteSessionForm = (React.createElement("div", { id: "remoteSessionForm", className: "form-group" },
|
|
187
|
+
React.createElement(Alert, { variant: "info", isInline: true, title: React.createElement(React.Fragment, null,
|
|
188
|
+
"What is a Remote Support Session and how to acknowledge the Remote Access Rider?",
|
|
189
|
+
' ',
|
|
190
|
+
React.createElement("a", { href: "https://access.redhat.com/articles/3566571", target: "_blank", rel: "noopener noreferrer" }, "Read more.")) }),
|
|
191
|
+
React.createElement("div", null,
|
|
192
|
+
React.createElement("label", { className: "pf-v6-u-mt-md" },
|
|
193
|
+
React.createElement(Trans, null, "Preferred Time and Expectations for Remote Session"),
|
|
194
|
+
React.createElement("span", { className: "form-required", "aria-hidden": "true" }, "*")),
|
|
195
|
+
React.createElement(TextArea, { value: sessionExpectations, onChange: updateSessionExpectation, rows: 3, placeholder: "Please share anything that will help prepare for our meeting?", isRequired: true, "aria-label": "Preferred Time and Expectations for Remote Session" })),
|
|
196
|
+
React.createElement("div", null,
|
|
197
|
+
React.createElement("label", { className: "pf-v6-u-mt-md" },
|
|
198
|
+
React.createElement(Trans, null, "Describe the impact to you or the business"),
|
|
199
|
+
React.createElement("span", { className: "form-required", "aria-hidden": "true" }, "*")),
|
|
200
|
+
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" })),
|
|
201
|
+
React.createElement("div", null,
|
|
202
|
+
React.createElement("label", { className: "pf-v6-u-mt-md" },
|
|
203
|
+
React.createElement(Trans, null, "Remote session link (optional)")),
|
|
204
|
+
React.createElement(TextInput, { value: sessionLink, onChange: updateSessionLink, type: "text", "aria-label": "Remote session link" }),
|
|
205
|
+
React.createElement("p", { className: "form-instructions" }, "If not provided, the Red Hat Support Associate will share a link with you."))));
|
|
206
|
+
const renderRemoteSessionAgreement = (React.createElement("div", { id: "remoteSessionAgreement" },
|
|
207
|
+
React.createElement("p", { className: "pf-v6-u-mt-xs" },
|
|
208
|
+
React.createElement(Trans, null,
|
|
209
|
+
"Your acceptance of this remote session agreement is required ",
|
|
210
|
+
React.createElement("strong", null, "for each case"),
|
|
211
|
+
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
212
|
+
React.createElement("p", { className: "pf-v6-u-mt-md" },
|
|
213
|
+
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.")),
|
|
214
|
+
React.createElement("p", { className: "pf-v6-u-mt-md" },
|
|
215
|
+
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
216
|
+
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-align-items-center pf-v6-u-flex-wrap" },
|
|
217
|
+
React.createElement(SingleSelectDropdown, { className: "pf-v6-u-mt-md", "aria-label": t('Select language'), id: "terms-language-selector", selected: selectedLanguage, onSelect: (option) => onLangChange(option), placeholder: t('Select an option that best fits'), toggleClassName: "pf-v6-u-w-50", options: languageOptions }),
|
|
218
|
+
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v6-u-ml-md pf-v6-u-display-inline-flex pf-v6-u-align-items-center", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
219
|
+
t('Download'),
|
|
220
|
+
" ",
|
|
221
|
+
React.createElement(DownloadIcon, { className: "pf-v6-u-ml-xs" }))),
|
|
222
|
+
React.createElement("div", null,
|
|
223
|
+
React.createElement(Checkbox, { className: "pf-v6-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
224
|
+
React.createElement(Trans, null, "I have read and agree to the"),
|
|
225
|
+
' ',
|
|
226
|
+
React.createElement("a", { className: "pf-v6-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" },
|
|
227
|
+
React.createElement(Trans, null, "terms "),
|
|
228
|
+
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
152
229
|
// Body of ESS RSA Modal
|
|
153
230
|
const EssRSAModalBody = () => {
|
|
154
|
-
|
|
155
|
-
value: selectedTranslation,
|
|
156
|
-
label: getLocaleNameFromLocalCode(selectedTranslation.localeCode),
|
|
157
|
-
disabled: false,
|
|
158
|
-
};
|
|
159
|
-
return (React.createElement(React.Fragment, null,
|
|
160
|
-
React.createElement("p", { className: "pf-v6-u-mt-xs" },
|
|
161
|
-
React.createElement(Trans, null,
|
|
162
|
-
"Your acceptance of this remote session agreement is required ",
|
|
163
|
-
React.createElement("strong", null, "for each case"),
|
|
164
|
-
" when you request Red Hat\u2019s support team to directly access your network or systems.")),
|
|
165
|
-
React.createElement("p", { className: "pf-v6-u-mt-md" },
|
|
166
|
-
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.")),
|
|
167
|
-
React.createElement("p", { className: "pf-v6-u-mt-md" },
|
|
168
|
-
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
169
|
-
React.createElement("div", null,
|
|
170
|
-
React.createElement(SingleSelectDropdown, { className: "terms-language-selector pf-v6-u-mt-md", id: "terms-language-selector", selected: currentSelection, options: languageOptions, placeholder: t('Select an option that best fits'), onSelect: onLanguageSelect, ariaLabel: t('Select language') }),
|
|
171
|
-
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v6-u-ml-md", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
172
|
-
t('Download'),
|
|
173
|
-
" ",
|
|
174
|
-
React.createElement(DownloadIcon, { className: "pf-v6-u-ml-xs" }))),
|
|
175
|
-
React.createElement("div", null,
|
|
176
|
-
React.createElement(Checkbox, { className: "pf-v6-u-mt-md rsa-checkbox", id: "terms-accept-checkbox", label: React.createElement(React.Fragment, null,
|
|
177
|
-
React.createElement(Trans, null, "I have read and agree to the"),
|
|
178
|
-
' ',
|
|
179
|
-
React.createElement("a", { className: "pf-v6-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" },
|
|
180
|
-
React.createElement(Trans, null, "terms "),
|
|
181
|
-
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
231
|
+
return isRemoteSessionForm ? renderRemoteSessionForm : renderRemoteSessionAgreement;
|
|
182
232
|
};
|
|
183
|
-
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": t('Remote
|
|
233
|
+
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'), title: isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'), isOpen: props.show, onClose: onCancel },
|
|
184
234
|
React.createElement(ModalHeader, null,
|
|
185
|
-
React.createElement("h2", null, t('Remote
|
|
235
|
+
React.createElement("h2", null, isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'))),
|
|
186
236
|
React.createElement(ModalBody, null, EssRSAModalBody()),
|
|
187
|
-
React.createElement(ModalFooter, null,
|
|
188
|
-
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')))));
|
|
237
|
+
React.createElement(ModalFooter, null, modalActions)));
|
|
189
238
|
}
|
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":"AAKA,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,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,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":"AAKA,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,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,sBAAsB,+EAwHjC,CAAC"}
|
|
@@ -49,7 +49,7 @@ export const RemoteSessionAgreement = forwardRef((props, ref) => {
|
|
|
49
49
|
React.createElement(ListItem, null, t('Agreed upon by both Red Hat and you, the end user'))),
|
|
50
50
|
React.createElement("p", { className: "rrs-light-grey-text" }, t('Red Hat will add a comment to your case to schedule your remote session.')),
|
|
51
51
|
acceptedRemoteSessionTerms && (React.createElement(Tooltip, { content: t('Remote session has already been requested.'), triggerRef: tooltipRef, "aria-live": 'polite' })),
|
|
52
|
-
React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
|
|
52
|
+
React.createElement(Button, { "aria-label": waitingOnCallback ? t('Remote session requested') : t('Request remote session'), variant: waitingOnCallback ? 'primary' : 'secondary', onClick: toggleRemoteSessionAgreementModal, "data-tracking-id": "accept-remote-session-agreement-trigger", isAriaDisabled: waitingOnCallback, ref: tooltipRef, className: "remote-session-button" }, waitingOnCallback ? t('Remote session requested') : t('Request remote session')))))));
|
|
53
53
|
return (React.createElement(React.Fragment, null,
|
|
54
54
|
RemoteSessionAgreementSectionBody,
|
|
55
55
|
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;AAExD,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,qBA8VxD"}
|
|
@@ -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 { Alert, Button, ButtonVariant, Checkbox, Modal, ModalFooter, TextArea, TextInput, } from '@patternfly/react-core';
|
|
11
|
+
import { Alert, Button, ButtonVariant, Checkbox, Modal, ModalBody, ModalFooter, ModalHeader, TextArea, TextInput, } from '@patternfly/react-core';
|
|
12
12
|
import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
|
|
13
13
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
14
14
|
import { SingleSelectDropdown, ToastNotification, useFetch } from '@rh-support/components';
|
|
@@ -64,16 +64,18 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
64
64
|
try {
|
|
65
65
|
const { siteCode, eventCode, loggedInUser } = props;
|
|
66
66
|
const response = yield request(siteCode, eventCode, loggedInUser);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
if (response) {
|
|
68
|
+
let defaultTranslation = response[0].translations[0];
|
|
69
|
+
const translationLangInfoMap = response[0].translations.reduce((allTranslationsmap, translation) => {
|
|
70
|
+
if (translation.isDefault) {
|
|
71
|
+
defaultTranslation = translation;
|
|
72
|
+
}
|
|
73
|
+
allTranslationsmap[translation['localeCode']] = translation;
|
|
74
|
+
return allTranslationsmap;
|
|
75
|
+
}, {});
|
|
76
|
+
setSelectedTranslation(defaultTranslation);
|
|
77
|
+
setAllTranslations(translationLangInfoMap);
|
|
78
|
+
}
|
|
77
79
|
}
|
|
78
80
|
catch (e) {
|
|
79
81
|
console.log(e);
|
|
@@ -99,7 +101,7 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
99
101
|
setSessionExpectations('');
|
|
100
102
|
setImpact('');
|
|
101
103
|
setSessionLink('');
|
|
102
|
-
setIsRemoteSessionForm(
|
|
104
|
+
setIsRemoteSessionForm(remoteSessionTermsAcked);
|
|
103
105
|
props.onClose && props.onClose();
|
|
104
106
|
};
|
|
105
107
|
const toggleRemoteSessionForm = () => setIsRemoteSessionForm(true);
|
|
@@ -199,7 +201,7 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
199
201
|
React.createElement("p", { className: "pf-v6-u-mt-md" },
|
|
200
202
|
React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
|
|
201
203
|
React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-align-items-center pf-v6-u-flex-wrap" },
|
|
202
|
-
React.createElement(SingleSelectDropdown, { id: "terms-language-selector", ariaLabel: t('Select language'), selected: selectedLanguage, options: languageOptions, isDisabled: false, placeholder: t('Select an option that best fits'), onSelect: (option) => onLangChange(option),
|
|
204
|
+
React.createElement(SingleSelectDropdown, { id: "terms-language-selector", ariaLabel: t('Select language'), selected: selectedLanguage, options: languageOptions, isDisabled: false, placeholder: t('Select an option that best fits'), onSelect: (option) => onLangChange(option), toggleClassName: "pf-v6-u-w-50" }),
|
|
203
205
|
React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v6-u-ml-md pf-v6-u-display-inline-flex pf-v6-u-align-items-center", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
|
|
204
206
|
t('Download'),
|
|
205
207
|
" ",
|
|
@@ -213,18 +215,14 @@ export function RemoteSessionAgreementModal(props) {
|
|
|
213
215
|
React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
|
|
214
216
|
// Body of RSA Modal
|
|
215
217
|
const RemoteSessionAgreementModalBody = () => {
|
|
216
|
-
return isRemoteSessionForm
|
|
218
|
+
return isRemoteSessionForm ? renderRemoteSessionForm : renderRemoteSessionAgreement;
|
|
217
219
|
};
|
|
218
|
-
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": isRemoteSessionForm
|
|
219
|
-
|
|
220
|
-
: t('Remote session agreement'),
|
|
221
|
-
|
|
222
|
-
: t('Remote session agreement'), isOpen: props.show, onClose: onCancel },
|
|
223
|
-
RemoteSessionAgreementModalBody(),
|
|
220
|
+
return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'), isOpen: props.show, onClose: onCancel },
|
|
221
|
+
React.createElement(ModalHeader, null,
|
|
222
|
+
React.createElement("h2", null, isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'))),
|
|
223
|
+
React.createElement(ModalBody, null, RemoteSessionAgreementModalBody()),
|
|
224
224
|
React.createElement(ModalFooter, null,
|
|
225
|
-
React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm || remoteSessionTermsAcked ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": isRemoteSessionForm || remoteSessionTermsAcked
|
|
226
|
-
? 'remote-session-details-submission'
|
|
227
|
-
: 'remote-session-agreement-check', isLoading: isAgreeLoading, isDisabled: (isRemoteSessionForm || remoteSessionTermsAcked
|
|
225
|
+
React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm || remoteSessionTermsAcked ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: (isRemoteSessionForm || remoteSessionTermsAcked
|
|
228
226
|
? !sessionExpectations.trim() || !impact.trim()
|
|
229
227
|
: !isTermsChecked) || isAgreeLoading }, t(isRemoteSessionForm || remoteSessionTermsAcked ? 'Submit' : 'I agree')),
|
|
230
228
|
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, isDisabled: isAgreeLoading }, "Cancel"))));
|
|
@@ -103,15 +103,13 @@ function CaseHostname(props) {
|
|
|
103
103
|
React.createElement("p", null, "You can share this information at any time to improve your support experience."),
|
|
104
104
|
React.createElement(Switch, { label: shareHostnameLabel, isChecked: isShareHostNamesChecked, onChange: onShareHostnameCheck }),
|
|
105
105
|
isHostnamesLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))));
|
|
106
|
-
if (!canUseHostName
|
|
106
|
+
if (!canUseHostName) {
|
|
107
107
|
return React.createElement(React.Fragment, null);
|
|
108
108
|
}
|
|
109
109
|
const lengthError = (hostnameState === null || hostnameState === void 0 ? void 0 : hostnameState.length) > HOSTNAME_LENGTH_LIMIT;
|
|
110
110
|
return (React.createElement(React.Fragment, null,
|
|
111
111
|
React.createElement(InlineEdit, { labelProps: { htmlFor: 'case-details-hostname' }, formClassName: props.className || '', labelContent: React.createElement(React.Fragment, null,
|
|
112
|
-
React.createElement(Trans,
|
|
113
|
-
"*",
|
|
114
|
-
' ',
|
|
112
|
+
React.createElement(Trans, { className: "pf-v6-u-mr-xs" }, "Hostname"),
|
|
115
113
|
React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localHostnameChange, value: hostname, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.hostname) })), helperContent: !isExportingPDF ? (React.createElement(Popover, { "aria-label": "Hostname Info", position: PopoverPosition.auto, bodyContent: hostNameVisibilityContent, closeBtnAriaLabel: "Close", headerContent: 'Share hostname?', onShow: () => userOriginalHostnameValue() },
|
|
116
114
|
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-sm F icon-size pf-v6-u-text-color-status-custom cursor-pointer", "aria-label": "Hostname Info" }))) : undefined, allowInlineEdit: props.inlineEditable, content: hostname, saveDisabled: hostnameState === hostname || isHostnameUpdating || lengthError, onSave: onSave, onCancel: onCancel, initialIsEditing: false, loadingIndicator: isHostnameUpdating ? React.createElement(LoadingIndicator, { show: isHostnameUpdating, isInline: true }) : undefined, isExportingPDF: isExportingPDF },
|
|
117
115
|
React.createElement(TextInput, { type: "text", id: "case-details-hostname", className: `${lengthError ? ' form-invalid' : ''}`, name: "case-details-hostname", value: hostnameState, onChange: (e, phone) => onHostnameChange(phone), isDisabled: isHostnameUpdating, "data-tracking-id": "case-details-hostname", "aria-invalid": lengthError })),
|
package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAyIxD"}
|
|
@@ -15,7 +15,6 @@ import isEmpty from 'lodash/isEmpty';
|
|
|
15
15
|
import isEqual from 'lodash/isEqual';
|
|
16
16
|
import React, { useContext, useState } from 'react';
|
|
17
17
|
import { Trans, useTranslation } from 'react-i18next';
|
|
18
|
-
import { Link } from 'react-router-dom';
|
|
19
18
|
import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
|
|
20
19
|
import { useCaseUpdateErrorMessage } from '../../../../hooks/useCaseUpdateErrorMessage';
|
|
21
20
|
import { updateCaseDetails } from '../../../../reducers/CaseReducer';
|
|
@@ -59,14 +58,12 @@ export function CaseContactPhoneNumberAlert(props) {
|
|
|
59
58
|
const confirmationMessage = `${t('Is this phone number correct,')} ${phone} ?`;
|
|
60
59
|
if (!isPhoneNeedsReview)
|
|
61
60
|
return React.createElement(React.Fragment, null);
|
|
62
|
-
return (React.createElement(React.Fragment, null, props.isReview && !closeConfirmAlert && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v6-u-
|
|
63
|
-
React.createElement(Button, { key: "case-contact-phone-number-review-confirm", variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-review-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
|
|
61
|
+
return (React.createElement(React.Fragment, null, props.isReview && !closeConfirmAlert && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v6-u-mb-md phone-review-banner", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
|
|
62
|
+
React.createElement(Button, { className: "pf-v6-u-mr-md", key: "case-contact-phone-number-review-confirm", variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-review-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
|
|
64
63
|
React.createElement(Trans, null, "Yes, confirm phone number")),
|
|
65
|
-
React.createElement(
|
|
66
|
-
pathname: `/case/${caseNumber}/management`,
|
|
67
|
-
}, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
|
|
64
|
+
React.createElement(Button, { isInline: true, className: "pf-v6-u-mr-md", variant: ButtonVariant.link, key: "case-contact-phone-number-review", component: "a", href: `#/case/${caseNumber}/management`, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
|
|
68
65
|
React.createElement(Trans, null, "No, update phone number")),
|
|
69
|
-
React.createElement(Button, { key: "case-contact-phone-number-alert-close",
|
|
66
|
+
React.createElement(Button, { isInline: true, key: "case-contact-phone-number-alert-close", className: "pf-v6-c-button pf-m-link pf-m-inline", onClick: () => setCloseConfirmAlert(!closeConfirmAlert), "data-tracking-id": "case-contact-phone-number-alert-close", isDisabled: isCaseUpdating },
|
|
70
67
|
React.createElement(Trans, null, "Close")),
|
|
71
68
|
] },
|
|
72
69
|
React.createElement(Trans, null, confirmationMessage))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v6-u-p-sm pf-v6-u-mb-md phone-review-banner", variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBA8iBxC"}
|
|
@@ -354,7 +354,7 @@ export function PostComment(props) {
|
|
|
354
354
|
React.createElement(Trans, null, "Submit")),
|
|
355
355
|
canAddAttachments &&
|
|
356
356
|
(isPublic && canPostPrivateComments ? (React.createElement(Tooltip, { content: t('You can attach files privately') }, fileUploadButton)) : (fileUploadButton)),
|
|
357
|
-
React.createElement(Button, { "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
|
|
357
|
+
React.createElement(Button, { className: "secondary-button-pill", "data-tracking-id": "postcomment-cancel-button", type: "button", variant: ButtonVariant.link, onClick: onCancelClick, isDisabled: isPostCommentDisabled },
|
|
358
358
|
React.createElement(Trans, null, "Cancel")),
|
|
359
359
|
canPostPrivateComments && (React.createElement("span", { className: "post-comment-checkbox" },
|
|
360
360
|
React.createElement(Checkbox, { label: t('Private'), isChecked: !isPublic && canPostPrivateComments, onChange: handleCheckboxToggle, "aria-label": t('Private'), id: "private-comment", name: "private-comment", "data-tracking-id": "private-comment-checkbox" }))))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAa3E,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBA4IlD"}
|
|
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { Button, ButtonVariant, Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
|
|
10
|
+
import { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
|
|
11
11
|
import { SingleSelectDropdown, ToastNotification } from '@rh-support/components';
|
|
12
12
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
13
13
|
import { ability, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -95,12 +95,14 @@ export function VerifyCaseStatusModal(props) {
|
|
|
95
95
|
disabled: statusOption === status,
|
|
96
96
|
}));
|
|
97
97
|
return (React.createElement(Modal, { id: "case-close-modal", title: t(`Please verify this case's status`), "aria-describedby": "case-close-modal", isOpen: true, onClose: props.onClose, variant: ModalVariant.medium },
|
|
98
|
-
React.createElement(
|
|
99
|
-
React.createElement(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
React.createElement(ModalHeader, null,
|
|
99
|
+
React.createElement("h3", { className: "subheading subheading-sm" },
|
|
100
|
+
React.createElement(Trans, null, "Status"),
|
|
101
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
|
|
102
|
+
React.createElement(ModalBody, null,
|
|
103
|
+
React.createElement(SingleSelectDropdown, { ariaLabel: t(status), id: "verify-case-status", selected: getSelectedOption(), options: getDropdownOptions(), onSelect: onStatusChange, isDisabled: !canManageCase ||
|
|
104
|
+
caseOverviewState.allCaseStatuses.isFetching ||
|
|
105
|
+
(caseOverviewState.caseStatusUpdating && isCaseUpdating), isInvalid: !status, placeholder: t(status) })),
|
|
104
106
|
React.createElement(ModalFooter, null,
|
|
105
107
|
React.createElement(Button, { key: "submit-description", variant: ButtonVariant.primary, onClick: onSubmit, isLoading: isVerifyCaseStatusLoading, isDisabled: props.isUpdating, "data-tracking-id": "close-case-description-modal-submit" },
|
|
106
108
|
React.createElement(Trans, null, "Continue")),
|
|
@@ -81,11 +81,14 @@
|
|
|
81
81
|
display: flex;
|
|
82
82
|
align-items: center;
|
|
83
83
|
}
|
|
84
|
+
|
|
84
85
|
#options-menu-top-pagination {
|
|
85
86
|
display: flex !important;
|
|
86
87
|
flex-wrap: nowrap !important;
|
|
87
88
|
justify-content: flex-start;
|
|
89
|
+
margin-left: 1rem;
|
|
88
90
|
}
|
|
91
|
+
|
|
89
92
|
.timeline-sort-order-select {
|
|
90
93
|
width: auto;
|
|
91
94
|
margin-left: 1rem;
|
|
@@ -282,6 +285,11 @@ ul#case-history-paginated-timeline {
|
|
|
282
285
|
height: 100% !important;
|
|
283
286
|
}
|
|
284
287
|
|
|
288
|
+
.case-history-timeline-datepicker .pf-v6-c-calendar-month__header-year input {
|
|
289
|
+
font-size: var(--pf-t--global--font--size--body--default);
|
|
290
|
+
line-height: var(--pf-t--global--font--line-height--body);
|
|
291
|
+
}
|
|
292
|
+
|
|
285
293
|
.empty-state-date-picker {
|
|
286
294
|
margin-left: 82%;
|
|
287
295
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,qBA+OzB;kBA/OQ,GAAG;;;AAkPZ,eAAe,GAAG,CAAC"}
|
|
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { InlineEdit, LoadingIndicator,
|
|
10
|
+
import { InlineEdit, LoadingIndicator, TextAreaAutosize, ToastNotification, usePrevious } from '@rh-support/components';
|
|
11
11
|
import { useCanEditCase } from '@rh-support/react-context';
|
|
12
12
|
import { isFtsEditableOnEditPage, PreviousCaseTypes, showFtsOnCaseViewEditPage, showFtsOnCreateCasePage, } from '@rh-support/utils';
|
|
13
13
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -171,11 +171,7 @@ function Fts(props) {
|
|
|
171
171
|
React.createElement("input", { type: "checkbox", id: "same-as-case-owner-phone", name: "same-as-case-owner-phone", "data-tracking-id": "same-as-case-owner-phone", checked: ftsContactSameAsOwner, onChange: onSetContactSameAsOwner }),
|
|
172
172
|
React.createElement("label", { htmlFor: "same-as-case-owner-phone", className: "pf-v6-u-font-weight-normal pf-v6-u-font-size-md" },
|
|
173
173
|
React.createElement(Trans, null, "Same as case owner's phone number")),
|
|
174
|
-
React.createElement(
|
|
175
|
-
// id="get-support-24-7-contact"
|
|
176
|
-
, {
|
|
177
|
-
// id="get-support-24-7-contact"
|
|
178
|
-
isDisabled: disableFtsNContact || ftsContactSameAsOwner, "data-tracking-id": "get-support-24-7-contact", phoneValue: contactInfo24X7State || '', onPhoneValueChange: onFtsContactChange }),
|
|
174
|
+
React.createElement(TextAreaAutosize, { id: "get-support-24-7-contact", className: `form-control`, name: "get-support-24-7-contact", value: contactInfo24X7State, onChange: (event) => onFtsContactChange(event.target.value), disabled: disableFtsNContact || ftsContactSameAsOwner, "data-tracking-id": "get-support-24-7-contact" }),
|
|
179
175
|
React.createElement("p", { className: "form-instructions" },
|
|
180
176
|
React.createElement(Trans, null, "Please provide contact information where you can be reached at any time to help you with your case."))),
|
|
181
177
|
(contactInfo24X7State === null || contactInfo24X7State === void 0 ? void 0 : contactInfo24X7State.length) > CONTACT_INFO_24X7_LIMIT && (React.createElement("div", { className: "pull-top" },
|
|
@@ -160,7 +160,7 @@ function Severity(props) {
|
|
|
160
160
|
' ',
|
|
161
161
|
React.createElement("a", { href: "/support/policy/severity", target: "_blank" },
|
|
162
162
|
React.createElement(Trans, null, "Red Hat Support Severity Level Definitions"))), closeBtnAriaLabel: "Close" },
|
|
163
|
-
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": t(`Support Severity Level info`) }))),
|
|
163
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": t(`Support Severity Level info`) }))),
|
|
164
164
|
"\u00A0",
|
|
165
165
|
filteredSeverities.filter((s) => s.disabled).length !== 0 && (React.createElement(Tooltip, { position: TooltipPosition.top, content: React.createElement(Trans, null, "Only the enabled severity levels are supported for selected product and version.") },
|
|
166
166
|
React.createElement(Icon, { size: "sm" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAoIlC;kBApIQ,YAAY;;;AAsIrB,eAAe,YAAY,CAAC"}
|
|
@@ -92,7 +92,7 @@ function SupportLevel(props) {
|
|
|
92
92
|
"Learn more about our",
|
|
93
93
|
' ',
|
|
94
94
|
React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
|
|
95
|
-
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": "Support Level Info" })),
|
|
95
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": "Support Level Info" })),
|
|
96
96
|
React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') }),
|
|
97
97
|
isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
|
|
98
98
|
}
|
|
@@ -13,8 +13,5 @@ interface IProps extends IDClassNameProps {
|
|
|
13
13
|
openshiftDisplayName?: string;
|
|
14
14
|
}
|
|
15
15
|
declare function OpenshiftDropdownV4(props: IProps): React.JSX.Element;
|
|
16
|
-
declare namespace OpenshiftDropdownV4 {
|
|
17
|
-
var defaultProps: {};
|
|
18
|
-
}
|
|
19
16
|
export { OpenshiftDropdownV4 };
|
|
20
17
|
//# sourceMappingURL=OpenshiftDropdownV4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAgBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAmdzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|