@rh-support/troubleshoot 2.2.51 → 2.4.10-beta.7
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/README.md +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.js +4 -4
- package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -2
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +19 -22
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -14
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +13 -18
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +11 -14
- package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.js +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +38 -82
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -4
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +4 -6
- package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +11 -17
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +6 -7
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +10 -11
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +2 -2
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +10 -11
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +7 -7
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +6 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +4 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +1 -18
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +3 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +1 -1
- package/lib/esm/components/CaseEditView/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/index.js +6 -8
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +3 -3
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +1 -1
- package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Description.js +3 -3
- package/lib/esm/components/CaseInformation/Fts.js +3 -3
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +3 -5
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +3 -4
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -3
- package/lib/esm/components/CaseManagement/CaseManagement.js +2 -2
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +14 -30
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +12 -13
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -3
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +1 -1
- package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +3 -4
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +2 -2
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +14 -15
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +3 -3
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +3 -3
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +5 -5
- package/lib/esm/components/ImproveCase/KtQuestions.d.ts.map +1 -1
- package/lib/esm/components/ImproveCase/KtQuestions.js +7 -7
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +15 -12
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +5 -6
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +2 -2
- package/lib/esm/components/ProductSelector/ProductSelector.js +2 -2
- package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts +0 -3
- package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AlertToastWrapper.js +2 -2
- package/lib/esm/components/Recommendations/AsideResults.d.ts +7 -1
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +17 -4
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +7 -7
- package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +7 -7
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
- package/lib/esm/components/Recommendations/Recommendations.d.ts +3 -0
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +22 -6
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +1 -2
- package/lib/esm/components/Recommendations/ShowRank.d.ts +12 -0
- package/lib/esm/components/Recommendations/ShowRank.d.ts.map +1 -0
- package/lib/esm/components/Recommendations/ShowRank.js +27 -0
- package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
- package/lib/esm/components/Review/Review.js +2 -2
- package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestore.js +14 -9
- package/lib/esm/components/SessionRestore/SessionRestoreCard.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestoreCard.js +16 -9
- package/lib/esm/components/SubmitCase/ResubmitToast.d.ts +0 -3
- package/lib/esm/components/SubmitCase/ResubmitToast.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/ResubmitToast.js +1 -3
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts +7 -1
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +17 -19
- package/lib/esm/components/Suggestions/Suggestions.js +1 -1
- package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/TopContent.js +12 -58
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +6 -6
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +4 -4
- package/lib/esm/components/shared/Rule.js +6 -6
- package/lib/esm/components/shared/fileUpload/FileLister.js +6 -6
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +2 -2
- package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
- package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +2 -2
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +2 -2
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +0 -6
- package/lib/esm/components/wizardLayout/MainSection.js +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +37 -6
- package/lib/esm/components/wizardLayout/WizardMain.js +2 -2
- package/lib/esm/components/wizardLayout/WizardNavigation.js +1 -1
- package/lib/esm/constants/caseDetailsConstants.d.ts +1 -7
- package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
- package/lib/esm/constants/caseDetailsConstants.js +0 -7
- package/lib/esm/css/app.css +7 -7
- package/lib/esm/css/case.css +3 -3
- package/lib/esm/hooks/useWizard.js +1 -1
- package/lib/esm/reducers/CaseConstNTypes.d.ts +4 -4
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +4 -4
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +0 -2
- package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -1
- package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.d.ts +2 -1
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +14 -20
- package/lib/esm/reducers/RecommendationsReducer.d.ts +2 -1
- package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
- package/lib/esm/reducers/RecommendationsReducer.js +30 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts +2 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.d.ts +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.js +1 -7
- package/lib/esm/scss/_main.scss +43 -109
- package/lib/esm/scss/_pf4-imports.scss +30 -0
- package/lib/esm/scss/{_pf-overrides.scss → _pf4-overrides.scss} +85 -214
- package/lib/esm/scss/index.scss +2 -1
- package/package.json +14 -13
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts +0 -13
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.js +0 -76
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts +0 -3
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.js +0 -118
- package/lib/esm/context/CaseOverviewContext.d.ts +0 -8
- package/lib/esm/context/CaseOverviewContext.d.ts.map +0 -1
- package/lib/esm/context/CaseOverviewContext.js +0 -10
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/AccountSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAAW,MAAM,0BAA0B,CAAC;AAcrE,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAE5C,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/AccountSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAAW,MAAM,0BAA0B,CAAC;AAcrE,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAE5C,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,eA2KrC;kBA3KQ,eAAe;;;AA+KxB,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -109,17 +109,17 @@ function AccountSelector(props) {
|
|
|
109
109
|
if (isEmpty(loggedInUserRights.data))
|
|
110
110
|
return React.createElement(React.Fragment, null);
|
|
111
111
|
return (React.createElement("div", { id: props.id, className: `form-group ${props.className}` },
|
|
112
|
-
React.createElement(AlertMessage, { show: showNotEntitledMessage, variant: AlertType.DANGER, isInline: true, title: t("The selected account doesn't have entitlement"), className: "pf-
|
|
113
|
-
React.createElement("div", { className: "account-selector-label-wrapper pf-
|
|
112
|
+
React.createElement(AlertMessage, { show: showNotEntitledMessage, variant: AlertType.DANGER, isInline: true, title: t("The selected account doesn't have entitlement"), className: "pf-u-mb-lg" }),
|
|
113
|
+
React.createElement("div", { className: "account-selector-label-wrapper pf-u-display-flex" },
|
|
114
114
|
React.createElement("label", { htmlFor: "account-selector" },
|
|
115
115
|
React.createElement(Trans, null, "Account"),
|
|
116
116
|
' ',
|
|
117
117
|
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
118
|
-
canUseFindMyAccount && (React.createElement("button", { role: "link", className: "btn btn-link btn-app find-my-account pf-
|
|
118
|
+
canUseFindMyAccount && (React.createElement("button", { role: "link", className: "btn btn-link btn-app find-my-account pf-u-ml-auto", onClick: onFindMyAccountClick, disabled: selectedAccountDetails.isFetching, "data-tracking-id": "get-support-find-my-account" },
|
|
119
119
|
React.createElement(Trans, null, "Find my account")))),
|
|
120
120
|
React.createElement("div", { className: "account-selector-wrapper" },
|
|
121
121
|
React.createElement(AccountSelectorInternal, { selectedAccounts: [selectedAccount], canBookmarkAccount: canBookmarkAccounts, bookmarkedAccounts: bookmarkedGroupAccounts.data, id: "account-or-bookmark-selector", className: "account-selector", name: "account-or-bookmark-selector", placeholder: t(`Search for an account ${loggedInUserRights.data.isExternal() ? 'or select a bookmark' : ''} `), onSelect: onInternalAccountSelect, disabled: loggedInUserRights.data.isExternal() || selectedAccountDetails.isFetching, isInValid: isSelectedAccountSubscriptionAbused, restrictedOnSubscriptionAbuse: true })),
|
|
122
|
-
canAccessManagedAccounts &&
|
|
122
|
+
canAccessManagedAccounts && (React.createElement(ManagedAccountsDropdown, { className: "managed-account-selector pf-u-mt-xl", onManagedAccountChange: onManagedAccountChange, managedAccounts: managedAccounts, selectedAccountNumber: accountNumber, disabled: selectedAccountDetails.isFetching })),
|
|
123
123
|
isSelectedAccountSubscriptionAbused && (React.createElement("p", { className: "form-instructions form-invalid" },
|
|
124
124
|
React.createElement(InfoCircleIcon, null),
|
|
125
125
|
' ',
|
|
@@ -26,7 +26,7 @@ function ManagedAccountsDropdown(props) {
|
|
|
26
26
|
}, [props.managedAccounts.data, props.selectedAccountNumber]);
|
|
27
27
|
// Only accounts that have granted access permission to partner should be listed
|
|
28
28
|
const managedAccountsWithPermission = () => props.managedAccounts.data.filter((account) => account.partnerCaseAccess === 'All') || [];
|
|
29
|
-
const managedAccountsOptions = managedAccountsWithPermission().map((account) => (Object.assign({ actionItem: (React.createElement(React.Fragment, null, account.subscriptionAbuse && (React.createElement("span", { className: "form-instructions form-invalid pf-
|
|
29
|
+
const managedAccountsOptions = managedAccountsWithPermission().map((account) => (Object.assign({ actionItem: (React.createElement(React.Fragment, null, account.subscriptionAbuse && (React.createElement("span", { className: "form-instructions form-invalid pf-u-text-nowrap pf-u-pr-sm" },
|
|
30
30
|
' ',
|
|
31
31
|
React.createElement(InfoCircleIcon, null),
|
|
32
32
|
" ",
|
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js
CHANGED
|
@@ -28,7 +28,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
28
28
|
React.createElement("li", null, t('The customer thinks the case is not moving appropriately')),
|
|
29
29
|
React.createElement("li", null, t('The customer wants a new resource')),
|
|
30
30
|
React.createElement("li", null, t('The issue is more severe than originally thought'))),
|
|
31
|
-
React.createElement("a", { href: `/watchlist/internal/aces/new?caseNumber=${props.caseNumber}`, className: "pf-
|
|
31
|
+
React.createElement("a", { href: `/watchlist/internal/aces/new?caseNumber=${props.caseNumber}`, className: "pf-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 = () => {
|
|
34
34
|
if (canEditCase.alert())
|
|
@@ -51,7 +51,7 @@ export const ActiveCustomerEscalation = forwardRef((props, ref) => {
|
|
|
51
51
|
React.createElement("li", null, t('Needs a senior resource.')),
|
|
52
52
|
React.createElement("li", null, t('Is more severe or should be a higher priority.'))),
|
|
53
53
|
commonElements,
|
|
54
|
-
React.createElement(Button, { className: "pf-
|
|
54
|
+
React.createElement(Button, { className: "pf-c-button pf-m-tertiary", 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,
|
|
56
56
|
React.createElement(RequestEscalationModal, { caseNumber: props.caseNumber, severity: props.caseSeverity, caseStatus: props.caseStatus, show: openRequestEscalationModal, onClose: toggleModal }),
|
|
57
57
|
React.createElement(Can, { do: resourceActions.CREATE, on: resources.ICE_ESCALATION, passThrough: true }, (canCreateICE) => canCreateICE ? isInternalElements : isCreateRMEVisible ? isNotInternalElements : React.createElement(React.Fragment, null))));
|
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAwCA,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,eA0WnD"}
|
|
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { escalations, publicApi } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Button, Form, FormGroup,
|
|
12
|
-
import
|
|
11
|
+
import { Button, Form, FormGroup, Grid, GridItem, Modal, Popover, Select, SelectOption, TextArea, TextInput, Title, ValidatedOptions, } from '@patternfly/react-core';
|
|
12
|
+
import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
13
13
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
14
14
|
import { AlertMessage, AlertType, LoadingIndicator, ToastNotification, useFetch } from '@rh-support/components';
|
|
15
15
|
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
@@ -46,7 +46,7 @@ export function RequestEscalationModal(props) {
|
|
|
46
46
|
const [submitButtonIsClicked, setSubmitSaveButtonIsClicked] = useState(false);
|
|
47
47
|
// checks if all the fields have values.
|
|
48
48
|
const hasRequiredInfo = () => Object.keys(formState).reduce((accumulator, currentValue) => { var _a; return !accumulator ? accumulator : formState[currentValue].length > 0 && ((_a = formState[currentValue]) === null || _a === void 0 ? void 0 : _a.trim()); }, true);
|
|
49
|
-
const setFormStateValue = (key
|
|
49
|
+
const setFormStateValue = (key) => (value) => setFormState(Object.assign(Object.assign({}, formState), { [key]: value }));
|
|
50
50
|
const createEscalationFetch = useFetch(escalations.createIceEscalation, { propgateErrors: true });
|
|
51
51
|
const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
|
|
52
52
|
propgateErrors: true,
|
|
@@ -126,11 +126,11 @@ export function RequestEscalationModal(props) {
|
|
|
126
126
|
t('Submit')),
|
|
127
127
|
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, "data-tracking-id": "request-rme-cancel", isDisabled: createEscalationFetch.isFetching || isPostingComment || isUpdatingCase, "aria-label": t('Cancel') }, t('Cancel')),
|
|
128
128
|
];
|
|
129
|
-
const header = (React.createElement(Title, { className: "pf-
|
|
129
|
+
const header = (React.createElement(Title, { className: "pf-u-mb-0", id: "custom-header-label", headingLevel: "h1" },
|
|
130
130
|
React.createElement(Trans, null, "Request an escalation"),
|
|
131
131
|
React.createElement(Popover, { showClose: false, position: 'top', hasAutoWidth: true, bodyContent: () => (React.createElement("a", { href: "/support/escalation", target: "_blank", "aria-label": t('Learn more about escalation cases.') },
|
|
132
132
|
React.createElement(Trans, null, "Learn more about escalation cases."))) },
|
|
133
|
-
React.createElement(InfoCircleIcon, { className: "pf-
|
|
133
|
+
React.createElement(InfoCircleIcon, { className: "pf-u-ml-sm" }))));
|
|
134
134
|
// load rme categories as soon as user opens the modal
|
|
135
135
|
useEffect(() => {
|
|
136
136
|
if (!props.show || categories.length !== 0)
|
|
@@ -148,40 +148,37 @@ export function RequestEscalationModal(props) {
|
|
|
148
148
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
149
149
|
}, [props.show]);
|
|
150
150
|
return (React.createElement(Modal, { id: "request-mgmt-escalation-modal", className: "request-escalation-modal", isOpen: props.show, onClose: onCancel, actions: modalActions, header: header, "aria-label": t('Request an escalation') },
|
|
151
|
-
React.createElement("p", { className: "pf-
|
|
151
|
+
React.createElement("p", { className: "pf-u-mb-md" },
|
|
152
152
|
React.createElement(Trans, { i18nKey: "i18RequestEscalationDescription" }, "Submit an escalation if an issue has become more severe or you feel the case needs a higher priority. A support manager will review your escalation request.")),
|
|
153
|
-
React.createElement(AlertMessage, { variant: AlertType.DANGER, title: t('Could not create case escalation'), show: creationError, onClose: onErrorClose, isInline: true, className: "pf-
|
|
153
|
+
React.createElement(AlertMessage, { variant: AlertType.DANGER, title: t('Could not create case escalation'), show: creationError, onClose: onErrorClose, isInline: true, className: "pf-u-mb-md", "aria-label": t('Could not create case escalation') }),
|
|
154
154
|
React.createElement(Form, { "aria-label": t('form'), className: "request-escalation-form" },
|
|
155
155
|
React.createElement(Grid, { hasGutter: true, md: 12 },
|
|
156
156
|
React.createElement(GridItem, { span: 6 },
|
|
157
157
|
React.createElement(FormGroup, { isRequired: true, label: t('Category'), fieldId: "escalation-category" },
|
|
158
158
|
React.createElement(Select, Object.assign({ "aria-label": t('Category'), id: "customer-category-select", selections: formState.rmeCategory, validated: submitButtonIsClicked && isEmpty(formState.rmeCategory)
|
|
159
159
|
? ValidatedOptions.error
|
|
160
|
-
: ValidatedOptions.default, "aria-invalid": submitButtonIsClicked && isEmpty(formState.rmeCategory), onSelect: setCategoryState, isOpen: showCategoryDropdown, placeholderText: t('Select an option that best fits'), onToggle:
|
|
160
|
+
: ValidatedOptions.default, "aria-invalid": submitButtonIsClicked && isEmpty(formState.rmeCategory), onSelect: setCategoryState, isOpen: showCategoryDropdown, placeholderText: t('Select an option that best fits'), onToggle: onCategoryDropdownToggle }, (isCategoriesFetching && { loadingVariant: 'spinner' })), categories.map((value, index) => (React.createElement(SelectOption, { key: index, value: value }, value)))))),
|
|
161
161
|
React.createElement(GridItem, { span: 6 },
|
|
162
162
|
React.createElement(FormGroup, { isRequired: true, label: t('My region'), fieldId: "escalation-region" },
|
|
163
163
|
React.createElement(Select, { "aria-label": t('My region'), id: "customer-geo-select", selections: formState.geo, onSelect: setGeoState, isOpen: showGeoDropdown, validated: submitButtonIsClicked && isEmpty(formState.geo)
|
|
164
164
|
? ValidatedOptions.error
|
|
165
|
-
: ValidatedOptions.default, placeholderText: t('Select a location'), onToggle:
|
|
166
|
-
React.createElement(FormGroup, { isRequired: true,
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error, hasIcon: true }, t('Subject cannot be more than {{limit}} characters', {
|
|
170
|
-
limit: ESCALATION_SUBJECT_LENGTH_LIMIT,
|
|
171
|
-
}))))),
|
|
165
|
+
: ValidatedOptions.default, placeholderText: t('Select a location'), onToggle: onGeoDropdownToggle, "aria-invalid": submitButtonIsClicked && isEmpty(formState.geo) }, customerGEOKeys.map((key, index) => (React.createElement(SelectOption, { key: index, value: CustomerGEOs[key].value }, t(CustomerGEOs[key].label))))))),
|
|
166
|
+
React.createElement(FormGroup, { isRequired: true, validated: submitButtonIsClicked && hasLargeSubject ? ValidatedOptions.error : ValidatedOptions.default, helperTextInvalid: t('Subject cannot be more than {{limit}} characters', {
|
|
167
|
+
limit: ESCALATION_SUBJECT_LENGTH_LIMIT,
|
|
168
|
+
}), helperTextInvalidIcon: React.createElement(ExclamationCircleIcon, null), label: t('Subject'), fieldId: "escalation-subject" },
|
|
172
169
|
React.createElement(TextInput, { isRequired: true, validated: (submitButtonIsClicked && isEmpty(formState.subject)) || hasLargeSubject
|
|
173
170
|
? ValidatedOptions.error
|
|
174
|
-
: ValidatedOptions.default, type: "text", placeholder: t('Enter a subject for your request'), id: "subject-input", name: "subject-input", value: formState.subject, onChange:
|
|
171
|
+
: ValidatedOptions.default, type: "text", placeholder: t('Enter a subject for your request'), id: "subject-input", name: "subject-input", value: formState.subject, onChange: onSubjectChange, "aria-label": t('Subject') })),
|
|
175
172
|
React.createElement(FormGroup, { isRequired: true, label: t('Description'), fieldId: "escalation-description" },
|
|
176
|
-
React.createElement(TextArea, { value: formState.description, onChange:
|
|
173
|
+
React.createElement(TextArea, { value: formState.description, onChange: setFormStateValue('description'), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.description)
|
|
177
174
|
? ValidatedOptions.error
|
|
178
|
-
: ValidatedOptions.default, "aria-label": t('Description'), id: "description-textarea", placeholder: t('Provide a detailed comment for us to best assist you')
|
|
175
|
+
: ValidatedOptions.default, "aria-label": t('Description'), id: "description-textarea", placeholder: t('Provide a detailed comment for us to best assist you') })),
|
|
179
176
|
React.createElement(FormGroup, { isRequired: true, label: t('Expectations'), fieldId: "escalation-expectations" },
|
|
180
|
-
React.createElement(TextArea, { onChange:
|
|
177
|
+
React.createElement(TextArea, { onChange: setFormStateValue('expectations'), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.expectations)
|
|
181
178
|
? ValidatedOptions.error
|
|
182
|
-
: ValidatedOptions.default, placeholder: t('What do you expect to happen with this escalation?'), id: "expectations-input", value: formState.expectations, "aria-label": t('Expectations')
|
|
179
|
+
: ValidatedOptions.default, placeholder: t('What do you expect to happen with this escalation?'), id: "expectations-input", value: formState.expectations, "aria-label": t('Expectations') })),
|
|
183
180
|
React.createElement(FormGroup, { isRequired: true, label: t('Business impact'), fieldId: "escalation-business-impact" },
|
|
184
|
-
React.createElement(TextArea, { onChange:
|
|
181
|
+
React.createElement(TextArea, { onChange: setFormStateValue('businessImpactDescription'), isRequired: true, validated: submitButtonIsClicked && isEmpty(formState.businessImpactDescription)
|
|
185
182
|
? ValidatedOptions.error
|
|
186
|
-
: ValidatedOptions.default, placeholder: t('Does your business impact change with this escalation? Please describe how it changed.'), id: "business-impact-input", value: formState.businessImpactDescription, "aria-label": t('Business impact')
|
|
183
|
+
: ValidatedOptions.default, placeholder: t('Does your business impact change with this escalation? Please describe how it changed.'), id: "business-impact-input", value: formState.businessImpactDescription, "aria-label": t('Business impact') }))))));
|
|
187
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AA8BA,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AA8BA,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,eAiW7C"}
|
|
@@ -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, Checkbox,
|
|
10
|
+
import { Button, Checkbox, Popover, PopoverPosition, Switch, Tooltip } from '@patternfly/react-core';
|
|
11
11
|
import AngleDoubleLeftIcon from '@patternfly/react-icons/dist/js/icons/angle-double-left-icon';
|
|
12
12
|
import AngleDoubleRightIcon from '@patternfly/react-icons/dist/js/icons/angle-double-right-icon';
|
|
13
13
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
@@ -173,38 +173,33 @@ export function CaseDetailsAside(props) {
|
|
|
173
173
|
React.createElement(Button, { variant: "link", isInline: true, title: t('Collapse sidebar') },
|
|
174
174
|
React.createElement("span", null,
|
|
175
175
|
React.createElement(Trans, null, "Collapse")),
|
|
176
|
-
React.createElement(
|
|
177
|
-
React.createElement(AngleDoubleRightIcon, null))))) : (React.createElement("div", { className: "pf-v5-u-display-flex pf-v5-u-flex-direction-column sidebar-section-collapsed" },
|
|
176
|
+
React.createElement(AngleDoubleRightIcon, { className: "pf-u-ml-auto", size: "md" })))) : (React.createElement("div", { className: "pf-u-display-flex pf-u-flex-direction-column sidebar-section-collapsed" },
|
|
178
177
|
React.createElement(Tooltip, { content: t('Expand sidebar'), position: "left" },
|
|
179
178
|
React.createElement(Button, { variant: "link" },
|
|
180
|
-
React.createElement(
|
|
181
|
-
React.createElement(AngleDoubleLeftIcon, null)))),
|
|
179
|
+
React.createElement(AngleDoubleLeftIcon, { size: "md" }))),
|
|
182
180
|
canSeeToggleCustomerView && (React.createElement(Tooltip, { content: viewAsCustomer ? t('External view') : t('Internal view'), position: "left" },
|
|
183
181
|
React.createElement(Button, { variant: "link", onClick: () => setSectionToScollRef(toggleCustomerViewRef), className: "sidebar-section-toggle-btn" },
|
|
184
|
-
React.createElement(
|
|
185
|
-
React.createElement(LockIcon, null))))),
|
|
182
|
+
React.createElement(LockIcon, { size: "md", className: viewAsCustomer ? 'blueLock' : 'greyLock' })))),
|
|
186
183
|
!isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
|
|
187
184
|
React.createElement(Button, { variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn" },
|
|
188
|
-
React.createElement(
|
|
189
|
-
React.createElement(ListIcon, null))))),
|
|
185
|
+
React.createElement(ListIcon, { size: "md" })))),
|
|
190
186
|
!caseEscalations.isFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
|
|
191
187
|
React.createElement(Button, { variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef) },
|
|
192
|
-
React.createElement(
|
|
193
|
-
React.createElement(TrendUpIcon, null)))))))),
|
|
188
|
+
React.createElement(TrendUpIcon, { size: "md" }))))))),
|
|
194
189
|
React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
|
|
195
190
|
React.createElement("div", { className: "grid-aside-content" },
|
|
196
191
|
React.createElement("div", null,
|
|
197
|
-
canSeeToggleCustomerView && (React.createElement("div", { className: "pf-
|
|
192
|
+
canSeeToggleCustomerView && (React.createElement("div", { className: "pf-u-display-flex customer-view-toggle", ref: toggleCustomerViewRef },
|
|
198
193
|
React.createElement("span", { className: "customer-view-switch-label" },
|
|
199
194
|
preferredOrDefaultCaseView() ? t('Customer view') : t('Internal view'),
|
|
200
195
|
React.createElement(Popover, { "aria-label": "Preferred-default-case-view-popover", position: PopoverPosition.top, bodyContent: React.createElement("p", { className: 'pref-case-popover-text' },
|
|
201
196
|
React.createElement(Trans, null, renderCasePrefPopoverText())), showClose: false },
|
|
202
|
-
React.createElement(InfoCircleIcon, { "aria-label": "Preferred-case-view-info-icon", className: "pf-
|
|
197
|
+
React.createElement(InfoCircleIcon, { "aria-label": "Preferred-case-view-info-icon", className: "pf-u-ml-sm" }))),
|
|
203
198
|
React.createElement(Switch, { title: preferredOrDefaultCaseView() ? t('Customer view') : t('Internal view'), "data-tracking-id": preferredOrDefaultCaseView()
|
|
204
199
|
? 'disable-view-as-customer'
|
|
205
200
|
: 'enable-view-as-customer', "aria-label": preferredOrDefaultCaseView()
|
|
206
201
|
? 'disable view as customer'
|
|
207
|
-
: 'enable view as customer', id: "customer-view-switch", className: "pf-
|
|
202
|
+
: 'enable view as customer', id: "customer-view-switch", className: "pf-u-ml-auto", isChecked: preferredOrDefaultCaseView(), onChange: onCaseSwitchChange }))),
|
|
208
203
|
canSeeToggleCustomerView && (React.createElement("div", null,
|
|
209
204
|
React.createElement(Checkbox, { label: t('Set to default'), isChecked: isDefaultBoxChecked, onChange: onDefaultCheckboxChange, id: "set-default-view-checkbox", name: "default-view-checkbox", isDisabled: isDefaultBoxChecked, className: 'defaultViewCheckbox' })))),
|
|
210
205
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading top solutions') } },
|
|
@@ -46,7 +46,7 @@ export function CaseDetailsErrorMessage(props) {
|
|
|
46
46
|
'404': { message: errorMessage404 },
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
|
-
return (React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-
|
|
49
|
+
return (React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-u-mb-lg", show: true,
|
|
50
50
|
// Here customizing title of alert based on case group error.
|
|
51
51
|
title: errorMessageTitle(errorDetails, Object.assign({}, (isCaseGroupError && {
|
|
52
52
|
'403': { title: invalidCaseGroupErrorTitle },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAwBlE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAwBlE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,eA+M5C"}
|
|
@@ -11,7 +11,7 @@ import { useCaseSelector } from '../../context/CaseContext';
|
|
|
11
11
|
import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
|
|
12
12
|
import { PDFContext } from './PDFContainer';
|
|
13
13
|
import CaseDetailsManagement from './Tabs/CaseDetails/CaseDetailsManagement';
|
|
14
|
-
const
|
|
14
|
+
const CaseBugzilla = React.lazy(() => import(/* webpackChunkName: 'CaseBugzilla' */ './Tabs/CaseBugzilla/CaseBugzilla'));
|
|
15
15
|
const CaseActionPlan = React.lazy(() => import(/* webpackChunkName: 'CaseActionPlan' */ './Tabs/CaseActionPlan/CaseActionPlan'));
|
|
16
16
|
const CasePrivateNotes = React.lazy(() => import(/* webpackChunkName: 'CasePrivateNotes' */ './Tabs/CasePrivateNotes/CasePrivateNotes'));
|
|
17
17
|
const CaseDiscussion = React.lazy(() => import(/* webpackChunkName: 'CaseDiscussion' */ './Tabs/CaseDiscussion/CaseDiscussion'));
|
|
@@ -30,21 +30,16 @@ export function CaseDetailsTabs(props) {
|
|
|
30
30
|
const [activeTabKey, setActiveTabKey] = useState(0);
|
|
31
31
|
const { caseDetailsPageState: { caseEscalations }, } = useCaseDetailsPageStateContext();
|
|
32
32
|
const canSeePrivateNotes = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_PRIVATE_NOTES_EDIT);
|
|
33
|
-
|
|
34
|
-
// resourceActions.PATCH,
|
|
35
|
-
// resources.CASE_DETAILS,
|
|
36
|
-
// CaseDetailsFields.CASE_DETAILS_BUGZILLAS
|
|
37
|
-
// );
|
|
33
|
+
const canSeeBugZillas = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_BUGZILLAS);
|
|
38
34
|
const { isExportingPDF, pdfOption } = useContext(PDFContext);
|
|
39
35
|
const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
|
|
40
36
|
const [selectedTab, setSelectedTab] = useState(CaseDetailsTabsEnum.DISCUSSION);
|
|
41
37
|
const discussionTabRef = useRef(null);
|
|
42
|
-
|
|
38
|
+
const bugZillaTabRef = useRef(null);
|
|
43
39
|
const managementTabRef = useRef(null);
|
|
44
40
|
const privateNotesTabRef = useRef(null);
|
|
45
41
|
const actionPlanTabRef = useRef(null);
|
|
46
42
|
const escalationTabRef = useRef(null);
|
|
47
|
-
const relatedTicketsRef = useRef(null);
|
|
48
43
|
const tabsToRender = [];
|
|
49
44
|
const handleTabClick = (event, tabIndex) => {
|
|
50
45
|
setActiveTabKey(tabIndex);
|
|
@@ -66,14 +61,14 @@ export function CaseDetailsTabs(props) {
|
|
|
66
61
|
ref: managementTabRef,
|
|
67
62
|
component: (React.createElement(CaseDetailsManagement, { caseNumber: caseNumber, routeProps: props.routeProps, tabRef: managementTabRef })),
|
|
68
63
|
});
|
|
69
|
-
|
|
64
|
+
canSeeBugZillas &&
|
|
70
65
|
tabsToRender.push({
|
|
71
|
-
'data-tracking-id': 'case-details-
|
|
72
|
-
key: '
|
|
73
|
-
ref:
|
|
74
|
-
routePath: '
|
|
75
|
-
title: CaseDetailsTabsEnum.
|
|
76
|
-
component: React.createElement(
|
|
66
|
+
'data-tracking-id': 'case-details-bugzilla-tab',
|
|
67
|
+
key: 'bugzillas',
|
|
68
|
+
ref: bugZillaTabRef,
|
|
69
|
+
routePath: 'bugzilla',
|
|
70
|
+
title: CaseDetailsTabsEnum.BUGZILLA,
|
|
71
|
+
component: React.createElement(CaseBugzilla, null),
|
|
77
72
|
});
|
|
78
73
|
tabsToRender.push({
|
|
79
74
|
'data-tracking-id': 'case-details-actionplan-tab',
|
|
@@ -112,20 +107,20 @@ export function CaseDetailsTabs(props) {
|
|
|
112
107
|
return (React.createElement("div", { className: "case-details-tabs", ref: props.tabdRef },
|
|
113
108
|
React.createElement(Tabs, { className: isExportingPDF ? 'hide-in-pdf' : '', activeKey: getActiveTabKey(), component: TabsComponent.nav, onSelect: handleTabClick, role: "region", "aria-label": t('Case details tabs') }, tabsToRender.map((tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: tab.key, key: tab.title, href: `#${props.basePath}/${tab.routePath}`, "data-tracking-id": tab['data-tracking-id'], title: React.createElement(TabTitleText, null,
|
|
114
109
|
React.createElement(Trans, null, tab.title)) })))),
|
|
115
|
-
React.createElement("div", { className: "case-details-tabs-content pf-
|
|
110
|
+
React.createElement("div", { className: "case-details-tabs-content pf-u-pt-xl" }, tabsToRender.map((tab, index) => {
|
|
116
111
|
return index === getActiveTabKey() && !isExportingPDF ? (React.createElement(TabContent, { eventKey: index, key: tab.key, id: tab.key, ref: tab.ref, "aria-label": tab.title, hidden: isExportingPDF ? !isTabVisibleInPdfExport(tab) : index !== getActiveTabKey() },
|
|
117
112
|
React.createElement(ErrorBoundary, { errorMsgInfo: {
|
|
118
113
|
message: t(`There was an error loading case ${tab.key}`),
|
|
119
114
|
} },
|
|
120
115
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
121
|
-
React.createElement(TextContent, { className: "show-in-pdf pf-
|
|
116
|
+
React.createElement(TextContent, { className: "show-in-pdf pf-u-mt-md" },
|
|
122
117
|
React.createElement(Text, { component: TextVariants.h2 }, tab.title)),
|
|
123
118
|
tab.component)))) : isExportingPDF ? (React.createElement(TabContent, { eventKey: index, key: tab.key, id: tab.key, ref: tab.ref, "aria-label": tab.title, hidden: isExportingPDF ? !isTabVisibleInPdfExport(tab) : index !== getActiveTabKey() },
|
|
124
119
|
React.createElement(ErrorBoundary, { errorMsgInfo: {
|
|
125
120
|
message: t(`There was an error loading case ${tab.key}`),
|
|
126
121
|
} },
|
|
127
122
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
128
|
-
React.createElement(TextContent, { className: "show-in-pdf pf-
|
|
123
|
+
React.createElement(TextContent, { className: "show-in-pdf pf-u-mt-md" },
|
|
129
124
|
React.createElement(Text, { component: TextVariants.h2 }, tab.title)),
|
|
130
125
|
tab.component)))) : (React.createElement(React.Fragment, null));
|
|
131
126
|
}))));
|
|
@@ -46,5 +46,5 @@ export default function CaseOwnerInfo(props) {
|
|
|
46
46
|
React.createElement(Trans, null, "Office location")),
|
|
47
47
|
": ",
|
|
48
48
|
props.caseDetailsHydra.data.caseOwner.officeLocation)) },
|
|
49
|
-
React.createElement(QuestionCircleIcon, { className: "pf-
|
|
49
|
+
React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Support Level Info" })))))));
|
|
50
50
|
}
|
|
@@ -19,5 +19,5 @@ export default function DateTime({ showToolTip = true, toolTipTimeFormat = defau
|
|
|
19
19
|
return (React.createElement(React.Fragment, null,
|
|
20
20
|
React.createElement("time", { dateTime: dateTimeString }, formatDateTime(dateTimeString, locale, dateTimeFormat)),
|
|
21
21
|
showToolTip && (React.createElement(Tooltip, { content: React.createElement("time", { dateTime: dateTimeString }, formatDateTime(dateTimeString, locale, toolTipTimeFormat)) },
|
|
22
|
-
React.createElement(InfoIcon, { className: `pf-
|
|
22
|
+
React.createElement(InfoIcon, { className: `pf-u-ml-sm ${isExportingPDF ? 'hide-in-pdf' : ''}` })))));
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAA8D,MAAM,OAAO,CAAC;AA8BnF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,MAAM,eA+ejD"}
|
|
@@ -13,14 +13,13 @@ import { CloseCaseModal, fetchCaseSeverities, fetchCaseTypes, GlobalMetadataDisp
|
|
|
13
13
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
14
14
|
import { haventLoadedMetadata, isOpenShiftOnlineProduct, toNewCaseTypeMapper, toNewCaseTypeSwitcher, } from '@rh-support/utils';
|
|
15
15
|
import isEqual from 'lodash/isEqual';
|
|
16
|
-
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
16
|
+
import React, { useContext, useEffect, useReducer, useRef, useState } from 'react';
|
|
17
17
|
import { Trans, useTranslation } from 'react-i18next';
|
|
18
18
|
import { CaseStatusEnum } from '../../../constants/caseDetailsConstants';
|
|
19
19
|
import { useCaseDispatch, useCaseSelector } from '../../../context/CaseContext';
|
|
20
|
-
import { CaseOverviewDispatchContext, CaseOverviewStateContext } from '../../../context/CaseOverviewContext';
|
|
21
20
|
import { useCaseUpdateErrorMessage } from '../../../hooks/useCaseUpdateErrorMessage';
|
|
22
21
|
import { SupportLevelDisplay } from '../../../reducers/CaseConstNTypes';
|
|
23
|
-
import { fetchAllStatuses, fetchCaseHydra, setSeverityUpdating, setStatusUpdating, setTypeUpdating, } from '../../../reducers/CaseOverviewReducer';
|
|
22
|
+
import { caseOverviewReducer, fetchAllStatuses, fetchCaseHydra, initialCaseViewState, setSeverityUpdating, setStatusUpdating, setTypeUpdating, } from '../../../reducers/CaseOverviewReducer';
|
|
24
23
|
import { updateCaseDetails } from '../../../reducers/CaseReducer';
|
|
25
24
|
import Severity from '../../CaseInformation/Severity';
|
|
26
25
|
import { usePostComment } from '../../shared/usePostComment';
|
|
@@ -41,8 +40,7 @@ export default function CaseOverview(props) {
|
|
|
41
40
|
const canManageCase = ability.can(resourceActions.UPDATE, resources.CASE_DETAILS);
|
|
42
41
|
const canSeeCaseOwnerInfo = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_OWNER);
|
|
43
42
|
const canSeeInactivityWarning = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_ACTIVITY_WARNING);
|
|
44
|
-
const caseOverviewState =
|
|
45
|
-
const caseOverviewDispatch = useContext(CaseOverviewDispatchContext);
|
|
43
|
+
const [caseOverviewState, caseOverviewDispatch] = useReducer(caseOverviewReducer, initialCaseViewState);
|
|
46
44
|
const [isDetailsExpanded, setIsDetailsExpanded] = useState(true);
|
|
47
45
|
const [showReOpenCaseModal, setShowReopenCaseModal] = useState(false);
|
|
48
46
|
const [showCloseCaseModal, setShowCaseCloseModal] = useState(false);
|
|
@@ -98,7 +96,6 @@ export default function CaseOverview(props) {
|
|
|
98
96
|
if (haventLoadedMetadata(caseOverviewState.allCaseStatuses)) {
|
|
99
97
|
fetchAllStatuses(caseOverviewDispatch, loggedInUsersAccount.data.secureSupport);
|
|
100
98
|
}
|
|
101
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
102
99
|
}, [
|
|
103
100
|
globalMetadataDispatchContext,
|
|
104
101
|
allCaseSeverities,
|
|
@@ -224,15 +221,15 @@ export default function CaseOverview(props) {
|
|
|
224
221
|
React.createElement("div", { className: "case-overview-header" },
|
|
225
222
|
canSeeInactivityWarning && isCaseInOpenState && (React.createElement(React.Fragment, null,
|
|
226
223
|
' ',
|
|
227
|
-
firstCaseInactivityWarningSentAt && !secondCaseInactivityWarningSentAt && (React.createElement(Alert, { className: "pf-
|
|
228
|
-
React.createElement("h3", { className: "pf-
|
|
224
|
+
firstCaseInactivityWarningSentAt && !secondCaseInactivityWarningSentAt && (React.createElement(Alert, { className: "pf-u-mb-md", isInline: true, title: React.createElement(React.Fragment, null,
|
|
225
|
+
React.createElement("h3", { className: "pf-u-mb-sm pf-c-alert__title" },
|
|
229
226
|
React.createElement(Trans, null, "Case inactivity notification")),
|
|
230
|
-
React.createElement("p", { className: "pf-
|
|
227
|
+
React.createElement("p", { className: "pf-u-mb-sm" },
|
|
231
228
|
React.createElement(Trans, null, "The customer has received one warning regarding inactivity."))) })),
|
|
232
|
-
firstCaseInactivityWarningSentAt && secondCaseInactivityWarningSentAt && (React.createElement(Alert, { className: "pf-
|
|
233
|
-
React.createElement("h3", { className: "pf-
|
|
229
|
+
firstCaseInactivityWarningSentAt && secondCaseInactivityWarningSentAt && (React.createElement(Alert, { className: "pf-u-mb-md", isInline: true, variant: AlertVariant.warning, title: React.createElement(React.Fragment, null,
|
|
230
|
+
React.createElement("h3", { className: "pf-u-mb-sm pf-c-alert__title" },
|
|
234
231
|
React.createElement(Trans, null, "Case inactivity warning")),
|
|
235
|
-
React.createElement("p", { className: "pf-
|
|
232
|
+
React.createElement("p", { className: "pf-u-mb-sm" },
|
|
236
233
|
React.createElement(Trans, null, "The customer has received two warnings regarding inactivity. This case will be closed soon if we don't receive any input."))) })))),
|
|
237
234
|
React.createElement(CaseContactPhoneNumberAlert, { isReview: true, tabRef: props.tabsRef }),
|
|
238
235
|
React.createElement(CasePhoneNumberSev1ConfirmAlert, { isReview: true, tabRef: props.tabsRef }),
|
|
@@ -243,7 +240,7 @@ export default function CaseOverview(props) {
|
|
|
243
240
|
props.caseNumber),
|
|
244
241
|
React.createElement("div", null,
|
|
245
242
|
exportPDFButton(props.caseNumber),
|
|
246
|
-
React.createElement(Button, Object.assign({ className: `pf-
|
|
243
|
+
React.createElement(Button, Object.assign({ className: `pf-u-ml-md ${isExportingPDF ? 'hide-in-pdf' : ''}`, isDisabled: !canManageCase || (caseOverviewState.caseStatusUpdating && isCaseUpdating) }, (caseOverviewState.caseStatusUpdating &&
|
|
247
244
|
isCaseUpdating && {
|
|
248
245
|
isLoading: true,
|
|
249
246
|
}), { onClick: () => (isCaseInOpenState ? onCaseClose() : onCaseReopen()), variant: isCaseInOpenState ? ButtonVariant.secondary : ButtonVariant.tertiary, "data-tracking-id": isCaseInOpenState
|
|
@@ -283,7 +280,7 @@ export default function CaseOverview(props) {
|
|
|
283
280
|
React.createElement("div", null, createdDate ? React.createElement(DateTime, { dateTimeString: createdDate }) : null)),
|
|
284
281
|
canSeeCaseOwnerInfo && (React.createElement(CaseOwnerInfo, { owner: ownerId, caseDetailsHydra: caseOverviewState.caseDetailsHydra }))),
|
|
285
282
|
React.createElement("div", { className: "case-overview-secondary card card-md card-light push-bottom" },
|
|
286
|
-
React.createElement("div", { className: "pf-
|
|
283
|
+
React.createElement("div", { className: "pf-l-grid pf-m-gutter pf-m-all-4-col-on-lg" },
|
|
287
284
|
React.createElement("div", { className: "form-wrapper" },
|
|
288
285
|
React.createElement(CaseStatus, { selectedStatus: status, onStatusChange: onStatusChange, isDisabled: !canManageCase || caseOverviewState.allCaseStatuses.isFetching, allStatuses: caseOverviewState.allCaseStatuses.data, isFetching: caseOverviewState.caseStatusUpdating && isCaseUpdating, hasError: caseOverviewState.allCaseStatuses.isError })),
|
|
289
286
|
React.createElement("div", { className: "form-wrapper" },
|
|
@@ -17,6 +17,6 @@ export function CaseSecureSupportAlert(props) {
|
|
|
17
17
|
"to access secure support cases."));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
return (React.createElement(AlertMessage, { className: "pf-
|
|
20
|
+
return (React.createElement(AlertMessage, { className: "pf-u-mb-md", variant: AlertType.WARNING, show: isSecureSupportTechViewingSecureCase, isInline: true },
|
|
21
21
|
React.createElement(Trans, null, getWarningMsg())));
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAsD,MAAM,OAAO,CAAC;AA+D3E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAUD,eAAO,MAAM,aAAa,+EA2YxB,CAAC"}
|