@rh-support/cases 2.6.233 → 2.6.236
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/case/NewCaseButton.js +1 -1
- package/lib/esm/components/case-list/CaseList.d.ts +7 -0
- package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +137 -374
- package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListContext.js +2 -5
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.js +1 -2
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts +2 -3
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.js +6 -19
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +4 -36
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +12 -6
- package/lib/esm/components/case-list/CaseListReducer.d.ts +10 -22
- package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListReducer.js +7 -25
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +11 -18
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +4 -20
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +7 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +16 -12
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +5 -2
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +13 -14
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +14 -21
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +0 -3
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +1 -11
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +70 -90
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +3 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +4 -5
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +54 -15
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +3 -0
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +44 -18
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +3 -0
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +49 -23
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +3 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +59 -60
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +3 -10
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +84 -98
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +5 -0
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +70 -51
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +15 -5
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +3 -2
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +0 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +2 -15
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +24 -55
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -2
- package/lib/esm/css/caseList.css +23 -188
- package/lib/esm/css/caseSearch.css +0 -114
- package/lib/esm/enums/case.d.ts +5 -13
- package/lib/esm/enums/case.d.ts.map +1 -1
- package/lib/esm/enums/case.js +3 -23
- package/lib/esm/enums/caseSearch.d.ts +0 -3
- package/lib/esm/enums/caseSearch.d.ts.map +1 -1
- package/lib/esm/enums/caseSearch.js +1 -2
- package/lib/esm/enums/filters.d.ts +1 -5
- package/lib/esm/enums/filters.d.ts.map +1 -1
- package/lib/esm/enums/filters.js +0 -4
- package/lib/esm/hooks/useCloseCase.d.ts.map +1 -1
- package/lib/esm/hooks/useCloseCase.js +21 -38
- package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/hooks/useExportCaseListCSV.js +9 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.d.ts.map +1 -1
- package/lib/esm/hooks/useFilterStateOnLoad.js +5 -7
- package/lib/esm/index.js +0 -1
- package/lib/esm/models/caseList.d.ts +0 -1
- package/lib/esm/models/caseList.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.d.ts +0 -1
- package/lib/esm/test-utils/mockData.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.js +1 -2
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +2 -39
- package/lib/esm/utils/constants.d.ts +1 -5
- package/lib/esm/utils/constants.d.ts.map +1 -1
- package/lib/esm/utils/constants.js +2 -10
- package/lib/esm/utils/mockSolrResponse.js +1 -1
- package/package.json +8 -10
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-filters/CaseLabelsFilter.js +0 -178
- package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-table/ArchivedCaseLabel.js +0 -8
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts +0 -9
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-table/CaseListLabelGroup.js +0 -105
- package/lib/esm/components/case-list/case-list-table/CaseListTableRow.d.ts +0 -33
- package/lib/esm/components/case-list/case-list-table/CaseListTableRow.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTableRow.js +0 -51
- package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.d.ts +0 -9
- package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTableSkeletonRow.js +0 -10
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts +0 -8
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearchToggleButton.js +0 -8
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAccountSection.js +0 -29
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchAuditsSection.js +0 -16
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchCaseSection.js +0 -21
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts +0 -12
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchDateRangeField.js +0 -31
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchFieldBlock.js +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts +0 -10
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchModal.js +0 -92
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchOwnerSection.js +0 -20
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/AdvanceSearchProductSection.js +0 -28
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts +0 -9
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/ProductVersionDrilldownSelect.js +0 -241
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts +0 -11
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.d.ts.map +0 -1
- package/lib/esm/components/case-list/case-search/advance-search-modal/SelectableLabelFilter.js +0 -23
- package/lib/esm/hooks/useCaseLabels.d.ts +0 -14
- package/lib/esm/hooks/useCaseLabels.d.ts.map +0 -1
- package/lib/esm/hooks/useCaseLabels.js +0 -50
- package/lib/esm/utils/advanceSearchFormMapper.d.ts +0 -11
- package/lib/esm/utils/advanceSearchFormMapper.d.ts.map +0 -1
- package/lib/esm/utils/advanceSearchFormMapper.js +0 -71
- package/lib/esm/utils/advanceSearchUtils.d.ts +0 -24
- package/lib/esm/utils/advanceSearchUtils.d.ts.map +0 -1
- package/lib/esm/utils/advanceSearchUtils.js +0 -150
- package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts +0 -12
- package/lib/esm/utils/caseGroupDefaultFilterUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseGroupDefaultFilterUtils.js +0 -34
- package/lib/esm/utils/caseGroupDefaultUtils.d.ts +0 -10
- package/lib/esm/utils/caseGroupDefaultUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseGroupDefaultUtils.js +0 -20
- package/lib/esm/utils/caseListGraphQLUtils.d.ts +0 -28
- package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +0 -1
- package/lib/esm/utils/caseListGraphQLUtils.js +0 -304
- package/lib/esm/utils/caseListMapper.d.ts +0 -6
- package/lib/esm/utils/caseListMapper.d.ts.map +0 -1
- package/lib/esm/utils/caseListMapper.js +0 -47
- package/lib/esm/utils/caseListVariablesBuilder.d.ts +0 -17
- package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +0 -1
- package/lib/esm/utils/caseListVariablesBuilder.js +0 -535
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { Button } from '@patternfly/react-core';
|
|
1
|
+
import { Button, Spinner } from '@patternfly/react-core';
|
|
2
|
+
import { useFetch } from '@rh-support/components';
|
|
3
|
+
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
2
4
|
import React, { useContext, useState } from 'react';
|
|
3
5
|
import { Trans, useTranslation } from 'react-i18next';
|
|
6
|
+
import { getCaseListFromSolr } from '../../../utils/caseListUtils';
|
|
4
7
|
import { CaseListFilterStateContext } from '../CaseListFilterContext';
|
|
5
8
|
import DownloadCSVFileModal from './DownloadCSVFileModal';
|
|
6
9
|
const MAX_LIMIT = 1000;
|
|
@@ -10,10 +13,14 @@ export function ExportCaseListCSV({ currentFilteredCaseList, selectedCases, isEx
|
|
|
10
13
|
const btnToolTip = t('Export the current list of cases to CSV. Please note that exporting a large number of cases may take a while.');
|
|
11
14
|
const maxLengthTooltip = t('Export the current list of cases to CSV. Please note that only the top {{limit}} cases will be exported and that it may take awhile.', { limit: MAX_LIMIT });
|
|
12
15
|
const currentFilteredCaseCount = (_a = currentFilteredCaseList === null || currentFilteredCaseList === void 0 ? void 0 : currentFilteredCaseList.numFound) !== null && _a !== void 0 ? _a : 0;
|
|
16
|
+
const { isFetching } = useFetch(getCaseListFromSolr, { propgateErrors: true });
|
|
13
17
|
const [openUpdateSeverityModal, setOpenUpdateSeverityModal] = useState(false);
|
|
14
|
-
const
|
|
18
|
+
const isFetchingCSVData = isFetching;
|
|
19
|
+
const isBtnDisabled = isFetchingCSVData || currentFilteredCaseCount === 0;
|
|
15
20
|
let btnTitle = currentFilteredCaseCount >= MAX_LIMIT ? maxLengthTooltip : btnToolTip;
|
|
16
21
|
const filterState = useContext(CaseListFilterStateContext);
|
|
22
|
+
const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
23
|
+
// To show tooltip if export csv is disabled when SOLR is down
|
|
17
24
|
const getTooltipContent = () => {
|
|
18
25
|
let tooltipText = t('Export Cases');
|
|
19
26
|
if (isExportCsvDisabled) {
|
|
@@ -21,12 +28,15 @@ export function ExportCaseListCSV({ currentFilteredCaseList, selectedCases, isEx
|
|
|
21
28
|
}
|
|
22
29
|
return tooltipText;
|
|
23
30
|
};
|
|
31
|
+
// To check if export csv button is disabled
|
|
24
32
|
const isExportButtonDisabled = isBtnDisabled || isExportCsvDisabled;
|
|
33
|
+
// To toggle download csv modal
|
|
25
34
|
const toggleDownloadCSVModal = () => {
|
|
26
35
|
setOpenUpdateSeverityModal((openUpdateSeverityModal) => !openUpdateSeverityModal);
|
|
27
36
|
};
|
|
28
37
|
return (React.createElement("span", { title: (isExportCsvDisabled && getTooltipContent()) || '' },
|
|
29
|
-
React.createElement(Button, { variant: "tertiary", onClick: toggleDownloadCSVModal, title: btnTitle, "data-tracking-id": "case-list-toolbar-export-csv", isDisabled: isExportButtonDisabled },
|
|
30
|
-
React.createElement(Trans, null, "
|
|
31
|
-
|
|
38
|
+
React.createElement(Button, { variant: "tertiary", onClick: toggleDownloadCSVModal, title: btnTitle, "data-tracking-id": "case-list-toolbar-export-csv", isDisabled: isExportButtonDisabled }, isFetchingCSVData ? (React.createElement(React.Fragment, null,
|
|
39
|
+
React.createElement(Trans, null, "Exporting CSV"),
|
|
40
|
+
React.createElement(Spinner, { size: "md", "aria-label": "loading", className: "export-csv-loader pf-v6-u-ml-xs" }))) : (React.createElement(Trans, null, "Export CSV"))),
|
|
41
|
+
React.createElement(DownloadCSVFileModal, { filterState: filterState, loggedInUserRights: loggedInUserRights, loggedInUsersAccount: loggedInUsersAccount, isDisabled: isExportButtonDisabled, onModalshow: openUpdateSeverityModal, onClose: toggleDownloadCSVModal, selectedCases: selectedCases, filteredCaseCount: currentFilteredCaseCount })));
|
|
32
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableActionsDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/TableActionsDropdown.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAgB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAwB,MAAM,qCAAqC,CAAC;AASlG,UAAU,MAAO,SAAQ,kBAAkB,EAAE,qBAAqB;CAAG;AAErE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TableActionsDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/TableActionsDropdown.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAgB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAwB,MAAM,qCAAqC,CAAC;AASlG,UAAU,MAAO,SAAQ,kBAAkB,EAAE,qBAAqB;CAAG;AAErE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA0HjD"}
|
|
@@ -3,7 +3,7 @@ import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclama
|
|
|
3
3
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
4
4
|
import WarningTriangleIcon from '@patternfly/react-icons/dist/js/icons/warning-triangle-icon';
|
|
5
5
|
import { SingleSelectDropdown } from '@rh-support/components';
|
|
6
|
-
import { CloseCaseModal } from '@rh-support/react-context';
|
|
6
|
+
import { CloseCaseModal, GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
7
7
|
import React, { useContext } from 'react';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
9
|
import { useCloseCase } from '../../../hooks/useCloseCase';
|
|
@@ -22,6 +22,7 @@ export function TableActionsDropdown(props) {
|
|
|
22
22
|
const currentFilteredCaseCount = (_a = currentFilteredCaseList === null || currentFilteredCaseList === void 0 ? void 0 : currentFilteredCaseList.numFound) !== null && _a !== void 0 ? _a : 0;
|
|
23
23
|
const filterState = useContext(CaseListFilterStateContext);
|
|
24
24
|
const { isExportButtonDisabled, openUpdateSeverityModal, showError: showExportCSVError, getTooltipContent: getExportCSVTooltipContent, toggleDownloadCSVModal, } = useExportCaseListCSV(props);
|
|
25
|
+
const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
25
26
|
const { isModalOpen, isPostingComment, showError, showWarning, getTooltipContent, onCancel, onConfirm, onBtnClick, } = useCloseCase(props);
|
|
26
27
|
let closeCaseIconStatus = 'danger';
|
|
27
28
|
if (showWarning) {
|
|
@@ -69,6 +70,6 @@ export function TableActionsDropdown(props) {
|
|
|
69
70
|
};
|
|
70
71
|
return (React.createElement(React.Fragment, null,
|
|
71
72
|
isModalOpen && React.createElement(CloseCaseModal, { onClose: onCancel, onConfirm: onConfirm, isUpdating: !!isPostingComment }),
|
|
72
|
-
React.createElement(DownloadCSVFileModal, { filterState: filterState, isDisabled: isExportButtonDisabled, onModalshow: openUpdateSeverityModal, onClose: toggleDownloadCSVModal, selectedCases: selectedCases, filteredCaseCount: currentFilteredCaseCount }),
|
|
73
|
+
React.createElement(DownloadCSVFileModal, { filterState: filterState, loggedInUserRights: loggedInUserRights, loggedInUsersAccount: loggedInUsersAccount, isDisabled: isExportButtonDisabled, onModalshow: openUpdateSeverityModal, onClose: toggleDownloadCSVModal, selectedCases: selectedCases, filteredCaseCount: currentFilteredCaseCount }),
|
|
73
74
|
React.createElement(SingleSelectDropdown, { hideToggleIcons: true, selected: { value: null, label: '' }, onSelect: onSelect, options: toolbarDropdownItems, id: "table-actions-dropdown", placeholder: t('Actions'), badge: React.createElement(Badge, null, selectedCases.length) })));
|
|
74
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/case-list/case-list-table/table-column-selector/TableColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAWpC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TableColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../../src/components/case-list/case-list-table/table-column-selector/TableColumnSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AAWpC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAE,MAAM,qBAgGpF"}
|
package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js
CHANGED
|
@@ -38,7 +38,6 @@ export function TableColumnSelector({ onColumnSelectorChange, cachedColumns }) {
|
|
|
38
38
|
{ label: t('Product and version'), key: 'product' },
|
|
39
39
|
{ label: t('Personal reference number'), key: 'alternateCaseId' },
|
|
40
40
|
{ label: t('Closed date'), key: 'closedDate' },
|
|
41
|
-
{ label: t('Case labels'), key: 'caseLabel' },
|
|
42
41
|
];
|
|
43
42
|
const generateCheckboxes = (fieldDefinitions) => {
|
|
44
43
|
return fieldDefinitions === null || fieldDefinitions === void 0 ? void 0 : fieldDefinitions.map((field) => (React.createElement(Checkbox, { key: field.key, className: "case-column-selector", label: field.label, isChecked: cachedColumns.includes(field.key), onChange: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAahE,UAAU,MAAM;IACZ,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,qBAyTvD"}
|
|
@@ -12,7 +12,6 @@ import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon
|
|
|
12
12
|
import StarIcon from '@patternfly/react-icons/dist/js/icons/star-icon';
|
|
13
13
|
import { ConfirmationServiceProvider } from '@rh-support/components';
|
|
14
14
|
import { GlobalMetadataStateContext, UserPreferencesKeys, useUserPreferences } from '@rh-support/react-context';
|
|
15
|
-
import { getUrlParsedParams } from '@rh-support/utils';
|
|
16
15
|
import filter from 'lodash/filter';
|
|
17
16
|
import find from 'lodash/find';
|
|
18
17
|
import flatMap from 'lodash/flatMap';
|
|
@@ -20,10 +19,8 @@ import isEmpty from 'lodash/isEmpty';
|
|
|
20
19
|
import isEqual from 'lodash/isEqual';
|
|
21
20
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
22
21
|
import { Trans, useTranslation } from 'react-i18next';
|
|
23
|
-
import { useLocation } from 'react-router-dom';
|
|
24
22
|
import { CaseSearchQueryType } from '../../../enums/caseSearch';
|
|
25
|
-
import {
|
|
26
|
-
import { createFilterStateFromAdvancedQuery, FILTER_URL_QUERY_SEARCH_PARAM } from '../../../utils/caseSearchUtils';
|
|
23
|
+
import { createFilterStateFromAdvancedQuery } from '../../../utils/caseSearchUtils';
|
|
27
24
|
import { CaseListFilterDispatchContext, CaseListFilterStateContext, initialCaseFilterState, } from '../CaseListFilterContext';
|
|
28
25
|
import { isNoFilterApplied, isOnlyDefaultFilterApplied } from '../CaseListFilterHelpers';
|
|
29
26
|
import { clearFilters, updateFilterState, updateSort } from '../CaseListFilterReducer';
|
|
@@ -31,11 +28,8 @@ import { SaveCaseSearchModal } from './SaveCaseSearchModal';
|
|
|
31
28
|
import useAdvanceSearchParser from './useAdvanceSearchParser';
|
|
32
29
|
export function BookmarkedSearchesSelector(props) {
|
|
33
30
|
const { t } = useTranslation();
|
|
34
|
-
const location = useLocation();
|
|
35
31
|
const { globalMetadataState, globalMetadataState: { hydraUserPreferences }, } = useContext(GlobalMetadataStateContext);
|
|
36
32
|
const dispatch = useContext(CaseListFilterDispatchContext);
|
|
37
|
-
const urlQueryParam = getUrlParsedParams(location.search)[FILTER_URL_QUERY_SEARCH_PARAM];
|
|
38
|
-
const hasUrlFilterQuery = Boolean(decodeCaseListUrlFilterQuery(urlQueryParam));
|
|
39
33
|
const [bookmarkedSearches, setBookmarkedSearches] = useState({});
|
|
40
34
|
const [mostRecentSearch, setMostRecentSearch] = useState({});
|
|
41
35
|
const [selectedSearch, setSelectedSearch] = useState('');
|
|
@@ -75,12 +69,6 @@ export function BookmarkedSearchesSelector(props) {
|
|
|
75
69
|
const emptySearchPlaceholderText = 'Select an option';
|
|
76
70
|
const recentSearchLoaded = useRef(false);
|
|
77
71
|
useEffect(() => {
|
|
78
|
-
// Deep links (e.g. Manage → View assigned cases) encode filters in the URL query.
|
|
79
|
-
// Do not overwrite them with saved-search auto-restore.
|
|
80
|
-
if (hasUrlFilterQuery) {
|
|
81
|
-
recentSearchLoaded.current = true;
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
72
|
switch (userPreferredSearch) {
|
|
85
73
|
case restoreLatestText:
|
|
86
74
|
if (!isEmpty(mostRecentSearch) && !recentSearchLoaded.current) {
|
|
@@ -103,7 +91,7 @@ export function BookmarkedSearchesSelector(props) {
|
|
|
103
91
|
break;
|
|
104
92
|
}
|
|
105
93
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
106
|
-
}, [mostRecentSearch, userPreferredSearch
|
|
94
|
+
}, [mostRecentSearch, userPreferredSearch]);
|
|
107
95
|
useEffect(() => {
|
|
108
96
|
var _a;
|
|
109
97
|
// enable save search button as soon as user changes something in the input search box
|
|
@@ -175,7 +163,6 @@ export function BookmarkedSearchesSelector(props) {
|
|
|
175
163
|
!isEmpty(props.defaultSavedSearchName) && setSelectedSearch(props.defaultSavedSearchName);
|
|
176
164
|
}, [props.defaultSavedSearchName]);
|
|
177
165
|
const renderSavedSearchItems = Object.keys(bookmarkedSearches)
|
|
178
|
-
.filter((key) => { var _a; return ((_a = bookmarkedSearches[key]) === null || _a === void 0 ? void 0 : _a.type) !== 'advanced'; })
|
|
179
166
|
.sort()
|
|
180
167
|
.map((bookmarkedSearch) => {
|
|
181
168
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAkB5E,UAAU,MAAM;IACZ,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,qBA6LvC"}
|
|
@@ -2,18 +2,14 @@ import { Button, SearchInput } from '@patternfly/react-core';
|
|
|
2
2
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
3
3
|
import { AbilityContext, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
4
4
|
import isEmpty from 'lodash/isEmpty';
|
|
5
|
-
import React, { useCallback, useContext, useEffect,
|
|
5
|
+
import React, { useCallback, useContext, useEffect, useState } from 'react';
|
|
6
6
|
import { Trans, useTranslation } from 'react-i18next';
|
|
7
7
|
import { CaseSearchQueryType } from '../../../enums/caseSearch';
|
|
8
|
-
import { createCaseListFilterStateFromAdvanceSearchForm, deriveSearchQueryType, } from '../../../utils/advanceSearchFormMapper';
|
|
9
|
-
import { getAdvanceSearchAppliedFilterCount } from '../../../utils/advanceSearchUtils';
|
|
10
8
|
import { createFilterStateFromAdvancedQuery, createUserFriendlyQueryFromFilterStateAdvancedSearch, } from '../../../utils/caseSearchUtils';
|
|
11
|
-
|
|
9
|
+
import { useCaseListStateContext } from '../CaseListContext';
|
|
12
10
|
import { CaseListFilterDispatchContext, CaseListFilterStateContext, initialPaginationInfo, } from '../CaseListFilterContext';
|
|
13
|
-
import { initialFilterInfo, updateFilterQuery, updateFilterState
|
|
14
|
-
import { AdvanceSearchModal } from './advance-search-modal/AdvanceSearchModal';
|
|
11
|
+
import { initialFilterInfo, updateFilterQuery, updateFilterState } from '../CaseListFilterReducer';
|
|
15
12
|
import { AdvanceSearch } from './AdvanceSearch';
|
|
16
|
-
import { AdvanceSearchToggleButton } from './AdvanceSearchToggleButton';
|
|
17
13
|
import { BookmarkedSearchesSelector } from './BookmarkedSearchesSelector';
|
|
18
14
|
export function CaseSearch(props) {
|
|
19
15
|
const { globalMetadataState } = useContext(GlobalMetadataStateContext);
|
|
@@ -24,29 +20,26 @@ export function CaseSearch(props) {
|
|
|
24
20
|
const { filterQueryInfo } = filterState;
|
|
25
21
|
const [searchVal, setSearchVal] = useState(filterQueryInfo.queryString);
|
|
26
22
|
const [isAdvancedSearchValid, setIsAdvancedSearchValid] = useState(true);
|
|
27
|
-
const [isAdvanceSearchModalOpen, setIsAdvanceSearchModalOpen] = useState(false);
|
|
28
23
|
const dispatch = useContext(CaseListFilterDispatchContext);
|
|
29
|
-
|
|
24
|
+
const { isFetching } = useCaseListStateContext();
|
|
30
25
|
const getType = useCallback(() => (filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.type) || CaseSearchQueryType.BASIC, [filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.type]);
|
|
31
|
-
//
|
|
26
|
+
// on queryString and parsedQuery change need to update search
|
|
32
27
|
useEffect(() => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
if (getType() === CaseSearchQueryType.ADVANCED) {
|
|
29
|
+
setSearchVal(filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.parsedQuery);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const query = filterQueryInfo.queryString;
|
|
33
|
+
setSearchVal(query.endsWith('*') ? query.slice(0, -1) : query);
|
|
34
|
+
}
|
|
35
|
+
}, [filterQueryInfo, getType]);
|
|
36
36
|
const onSearchValChange = (value) => {
|
|
37
37
|
setSearchVal(value === null || value === void 0 ? void 0 : value.trim());
|
|
38
38
|
};
|
|
39
39
|
const clearSearchVal = () => {
|
|
40
40
|
setSearchVal('');
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
const nextFilterQueryInfo = {
|
|
45
|
-
queryString: '',
|
|
46
|
-
parsedQuery: filterQueryInfo.parsedQuery || '',
|
|
47
|
-
type: deriveSearchQueryType(Object.assign(Object.assign({}, filterState), { filterQueryInfo: Object.assign(Object.assign({}, filterQueryInfo), { queryString: '' }) })),
|
|
48
|
-
};
|
|
49
|
-
updateFilterQuery(dispatch, nextFilterQueryInfo);
|
|
41
|
+
(filterQueryInfo === null || filterQueryInfo === void 0 ? void 0 : filterQueryInfo.queryString) &&
|
|
42
|
+
updateFilterQuery(dispatch, { type: getType(), queryString: '', parsedQuery: '' });
|
|
50
43
|
};
|
|
51
44
|
const clearAdvancedSearchVal = () => {
|
|
52
45
|
setSearchVal('');
|
|
@@ -55,21 +48,11 @@ export function CaseSearch(props) {
|
|
|
55
48
|
queryString: '',
|
|
56
49
|
parsedQuery: '',
|
|
57
50
|
type: CaseSearchQueryType.ADVANCED,
|
|
58
|
-
}, paginationInfo: initialPaginationInfo
|
|
51
|
+
}, paginationInfo: initialPaginationInfo }));
|
|
59
52
|
};
|
|
60
|
-
const onCaseSearch = (parsedQuery =
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
const nextFilterState = Object.assign(Object.assign({}, filterState), { filterQueryInfo: {
|
|
64
|
-
queryString: finalQueryString,
|
|
65
|
-
parsedQuery,
|
|
66
|
-
type: filterQueryInfo.type,
|
|
67
|
-
} });
|
|
68
|
-
updateFilterQuery(dispatch, {
|
|
69
|
-
queryString: finalQueryString,
|
|
70
|
-
parsedQuery,
|
|
71
|
-
type: deriveSearchQueryType(nextFilterState),
|
|
72
|
-
});
|
|
53
|
+
const onCaseSearch = (parsedQuery = '', queryString = searchVal) => {
|
|
54
|
+
const finalQueryString = `${queryString.trim()}*`;
|
|
55
|
+
updateFilterQuery(dispatch, { type: getType(), queryString: finalQueryString, parsedQuery });
|
|
73
56
|
};
|
|
74
57
|
const onCaseSearchAdvanced = (type, parsedQuery = '', queryStringInputBox = searchVal) => {
|
|
75
58
|
const newFilterState = createFilterStateFromAdvancedQuery(parsedQuery.replace(/ and /g, ' AND ').replace(/ or /g, ' OR ').replace('Bug OR defect', 'Bug or defect'), globalMetadataState, filterState, queryStringInputBox, type);
|
|
@@ -107,38 +90,24 @@ export function CaseSearch(props) {
|
|
|
107
90
|
};
|
|
108
91
|
const handleSubmit = (ev) => {
|
|
109
92
|
ev.preventDefault();
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
const openAdvanceSearchModal = () => {
|
|
113
|
-
setIsAdvanceSearchModalOpen(true);
|
|
114
|
-
};
|
|
115
|
-
const closeAdvanceSearchModal = () => {
|
|
116
|
-
setIsAdvanceSearchModalOpen(false);
|
|
117
|
-
};
|
|
118
|
-
const onAdvanceSearchModalSubmit = (formState) => {
|
|
119
|
-
const newFilterState = createCaseListFilterStateFromAdvanceSearchForm(formState, filterState);
|
|
120
|
-
updateFilterState(dispatch, newFilterState);
|
|
121
|
-
closeAdvanceSearchModal();
|
|
93
|
+
// For advance search submit should only happen on btn click or ctrl+enter which will be handled manually
|
|
94
|
+
getType() === CaseSearchQueryType.BASIC && onCaseSearch();
|
|
122
95
|
};
|
|
123
|
-
const appliedAdvanceSearchFilterCount = useMemo(() => getAdvanceSearchAppliedFilterCount(filterState), [filterState]);
|
|
124
96
|
const renderBasicSearch = () => {
|
|
125
97
|
return (React.createElement(React.Fragment, null,
|
|
126
98
|
React.createElement("div", { className: "case-search-input-container" },
|
|
127
99
|
React.createElement(SearchInput, { className: "pf-v6-u-w-100 case-search-input", placeholder: t('Search by keyword or case ID'), value: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), "data-tracking-id": "search-cases-text-input", id: "case-search-basic", "aria-label": t('Search by keyword or case ID'), onChange: (_event, val) => onSearchValChange(val), onClear: clearSearchVal }),
|
|
128
100
|
React.createElement(Button, { variant: "primary", type: "submit", className: "search-btn", "data-tracking-id": "case-list-search-button", isDisabled: isSearchButtonDisabled },
|
|
129
101
|
React.createElement(Trans, null, "Search")),
|
|
130
|
-
canUseAdvancedSearch && (React.createElement("
|
|
131
|
-
React.createElement(
|
|
132
|
-
React.createElement(AdvanceSearchModal, { isOpen: isAdvanceSearchModalOpen, onClose: closeAdvanceSearchModal, onSearch: onAdvanceSearchModalSubmit }))))));
|
|
102
|
+
canUseAdvancedSearch && (React.createElement(Button, { variant: "link", onClick: () => onSearchTypeChange(CaseSearchQueryType.ADVANCED), isDisabled: isFetching, "data-tracking-id": "case-list-adv-toggle-button", className: "case-search-toggle secondary-button-pill" },
|
|
103
|
+
React.createElement(Trans, null, "Advanced"))))));
|
|
133
104
|
};
|
|
134
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
135
105
|
const renderAdvanceSearch = () => {
|
|
136
106
|
return canUseAdvancedSearch ? (React.createElement(React.Fragment, null,
|
|
137
107
|
React.createElement(AdvanceSearch, { isSearchDisabled: isSearchButtonDisabled, onSearchValChange: onSearchValChange, onSearchClear: clearAdvancedSearchVal, onSearchSubmit: onCaseSearchAdvanced, onSearchTypeChange: onSearchTypeChange, onAdvancedSearchValidation: (isValid) => setIsAdvancedSearchValid(isValid) }))) : (renderBasicSearch());
|
|
138
108
|
};
|
|
139
|
-
void renderAdvanceSearch;
|
|
140
109
|
return (React.createElement(React.Fragment, null,
|
|
141
110
|
React.createElement("form", { onSubmit: handleSubmit, onKeyDown: handleSearchInputKeyDown },
|
|
142
|
-
React.createElement("div", { className: "form-group case-search-form-group" }, renderBasicSearch())),
|
|
111
|
+
React.createElement("div", { className: "form-group case-search-form-group" }, CaseSearchQueryType.BASIC === getType() ? renderBasicSearch() : renderAdvanceSearch())),
|
|
143
112
|
React.createElement(BookmarkedSearchesSelector, { currentCaseSearchString: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), currentSearchType: getType(), isAdvancedSearchValid: isAdvancedSearchValid, defaultSavedSearchName: props.defaultSavedSearchName })));
|
|
144
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdvanceSearchParser.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/useAdvanceSearchParser.tsx"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,MAAM,EAAE;;CAAA;
|
|
1
|
+
{"version":3,"file":"useAdvanceSearchParser.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/useAdvanceSearchParser.tsx"],"names":[],"mappings":"AASA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,MAAM,EAAE;;CAAA;yBASzB,MAAM;6BAIF,MAAM;;EA+LzC"}
|
|
@@ -5,8 +5,7 @@ import { useEffect, useRef } from 'react';
|
|
|
5
5
|
import { SolrKeys } from '../../../enums/filters';
|
|
6
6
|
import { useCaseListStateContext } from '../CaseListContext';
|
|
7
7
|
export default function useAdvanceSearchParser({ onInit }) {
|
|
8
|
-
const
|
|
9
|
-
const filterValuesFromFacetResponse = caseListState.filterValuesFromFacetResponse || {};
|
|
8
|
+
const { filterValuesFromFacetResponse } = useCaseListStateContext();
|
|
10
9
|
const { globalMetadataState: { caseGroups, loggedInUsersAccount, bookmarkedGroupAccounts, allCaseTypes }, } = useGlobalStateContext();
|
|
11
10
|
const parserRef = useRef(null);
|
|
12
11
|
const parse = (stringQuery) => {
|
package/lib/esm/css/caseList.css
CHANGED
|
@@ -186,15 +186,9 @@
|
|
|
186
186
|
.cases-main .case-search-table {
|
|
187
187
|
-ms-flex: 1;
|
|
188
188
|
flex-grow: 1;
|
|
189
|
-
display:
|
|
190
|
-
flex-direction: column;
|
|
191
|
-
min-width: 0;
|
|
192
|
-
border-radius: 0 0 16px !important;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.cases-main .case-search-table > .pf-v6-c-scroll-inner-wrapper {
|
|
189
|
+
display: block;
|
|
196
190
|
overflow-x: auto;
|
|
197
|
-
|
|
191
|
+
border-radius: 0 0 16px !important;
|
|
198
192
|
}
|
|
199
193
|
|
|
200
194
|
.case-search-bottom .case-list-table-toolbar {
|
|
@@ -206,10 +200,6 @@
|
|
|
206
200
|
background-color: var(--pf-t--color--gray--10);
|
|
207
201
|
border-top: 1px solid var(--pf-t--global--border--color--100);
|
|
208
202
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
209
|
-
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
210
|
-
position: sticky;
|
|
211
|
-
top: 0;
|
|
212
|
-
z-index: 100;
|
|
213
203
|
}
|
|
214
204
|
|
|
215
205
|
.case-search-bottom .case-list-table-toolbar .toolbar-actions {
|
|
@@ -229,105 +219,26 @@
|
|
|
229
219
|
color: #06c !important;
|
|
230
220
|
}
|
|
231
221
|
|
|
222
|
+
.case-search-bottom .case-list-table-toolbar .toolbar-pagination button[disabled] {
|
|
223
|
+
color: #999;
|
|
224
|
+
}
|
|
225
|
+
|
|
232
226
|
.case-search-bottom .case-list-table-toolbar button.pf-m-secondary:not([disabled]),
|
|
233
227
|
.case-search-bottom .case-list-table-toolbar button.pf-m-tertiary:not([disabled]),
|
|
234
228
|
.case-search-bottom .case-list-table-toolbar button.pf-m-control:not([disabled]) {
|
|
235
229
|
background-color: #fff;
|
|
236
230
|
}
|
|
237
231
|
|
|
238
|
-
.case-count-indicator {
|
|
239
|
-
font-size: 14px !important;
|
|
240
|
-
line-height: 1.5em;
|
|
241
|
-
white-space: nowrap;
|
|
242
|
-
padding-right: 1rem;
|
|
243
|
-
color: var(--pf-t--global--text--color--regular, #151515);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
232
|
.cases-main .case-search-table .case-list-table {
|
|
233
|
+
border-top: 1px solid var(--pf-t--global--border--color--100);
|
|
247
234
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
248
235
|
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
249
236
|
}
|
|
250
237
|
|
|
251
|
-
.case-list-table
|
|
238
|
+
.case-list-table .pf-v6-c-label .pf-v6-c-label__content .pf-v6-c-label__icon {
|
|
252
239
|
display: none;
|
|
253
240
|
}
|
|
254
241
|
|
|
255
|
-
.case-number-section .archived-case-label.pf-m-purple .pf-v6-c-label__icon {
|
|
256
|
-
color: #5e40be;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
.case-list-table th#caseLabel,
|
|
260
|
-
.case-list-table td[data-label='Case labels'] {
|
|
261
|
-
width: 20rem;
|
|
262
|
-
min-width: 20rem;
|
|
263
|
-
max-width: 20rem;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
.case-list-label-cell {
|
|
267
|
-
--case-list-label-gap: 8px;
|
|
268
|
-
position: relative;
|
|
269
|
-
max-width: 100%;
|
|
270
|
-
width: 100%;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
.case-list-label-cell__measure {
|
|
274
|
-
display: flex;
|
|
275
|
-
column-gap: var(--case-list-label-gap);
|
|
276
|
-
position: absolute;
|
|
277
|
-
visibility: hidden;
|
|
278
|
-
pointer-events: none;
|
|
279
|
-
height: 0;
|
|
280
|
-
overflow: hidden;
|
|
281
|
-
white-space: nowrap;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group,
|
|
285
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group .pf-v6-c-label-group__main,
|
|
286
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group .pf-v6-c-label-group__list {
|
|
287
|
-
max-width: 100%;
|
|
288
|
-
width: 100%;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group .pf-v6-c-label-group__list {
|
|
292
|
-
column-gap: var(--case-list-label-gap);
|
|
293
|
-
flex-wrap: nowrap;
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group .pf-v6-c-label-group__list-item {
|
|
297
|
-
flex-shrink: 0;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
.case-list-table td[data-label='Case labels'] .case-list-label-group .pf-v6-c-label__text {
|
|
301
|
-
white-space: nowrap;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
.case-list-label-popover .pf-v6-c-label-group__list {
|
|
305
|
-
column-gap: var(--case-list-label-gap);
|
|
306
|
-
row-gap: var(--case-list-label-gap);
|
|
307
|
-
flex-wrap: wrap;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
.case-list-label-popover-panel {
|
|
311
|
-
--case-list-label-gap: 8px;
|
|
312
|
-
--case-list-label-popover-offset-x: 0.9rem;
|
|
313
|
-
--case-list-label-popover-offset-y: 0.1rem;
|
|
314
|
-
--case-list-label-popover-close-offset-x: 0.5rem;
|
|
315
|
-
--pf-v6-c-popover__close--sibling--PaddingInlineEnd: var(--pf-t--global--spacer--md);
|
|
316
|
-
--pf-v6-c-popover__close--InsetInlineEnd: calc(
|
|
317
|
-
var(--pf-v6-c-popover__content--PaddingInlineEnd, 1rem) - var(--case-list-label-popover-close-offset-x)
|
|
318
|
-
);
|
|
319
|
-
margin-inline-start: var(--case-list-label-popover-offset-x);
|
|
320
|
-
margin-block-start: var(--case-list-label-popover-offset-y);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
.case-list-label-popover-panel .pf-v6-c-popover__close .pf-v6-c-button {
|
|
324
|
-
width: 21px;
|
|
325
|
-
height: 21px;
|
|
326
|
-
min-width: 21px;
|
|
327
|
-
min-height: 21px;
|
|
328
|
-
padding: 0;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
242
|
.case-list-table td[data-label='Title'] {
|
|
332
243
|
text-align: start !important;
|
|
333
244
|
}
|
|
@@ -366,6 +277,17 @@
|
|
|
366
277
|
text-transform: uppercase;
|
|
367
278
|
}
|
|
368
279
|
|
|
280
|
+
.case-search-bottom .case-search-table footer.toolbar-pagination {
|
|
281
|
+
margin-top: 0 !important;
|
|
282
|
+
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
283
|
+
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
284
|
+
border-radius: 16px !important;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.case-search-bottom .case-search-table footer.toolbar-pagination > :first-child {
|
|
288
|
+
padding: 1rem;
|
|
289
|
+
}
|
|
290
|
+
|
|
369
291
|
.case-search-bottom #case-filters-panel {
|
|
370
292
|
-ms-flex: 100%;
|
|
371
293
|
flex-basis: 100%;
|
|
@@ -378,13 +300,11 @@
|
|
|
378
300
|
border-right: 1px solid var(--pf-t--global--border--color--100);
|
|
379
301
|
border-bottom: 1px solid var(--pf-t--global--border--color--100);
|
|
380
302
|
border-radius: 0 0 0 16px;
|
|
381
|
-
align-self: stretch;
|
|
382
303
|
}
|
|
383
304
|
|
|
384
305
|
.case-search-filters .filter-header {
|
|
385
306
|
min-height: 4rem;
|
|
386
307
|
margin: 0;
|
|
387
|
-
padding: 0;
|
|
388
308
|
}
|
|
389
309
|
|
|
390
310
|
.case-search-filters .filter-header .pf-v6-svg {
|
|
@@ -429,10 +349,6 @@
|
|
|
429
349
|
font-size: 1rem;
|
|
430
350
|
font-weight: 600;
|
|
431
351
|
height: 4.3rem;
|
|
432
|
-
position: sticky;
|
|
433
|
-
top: 0;
|
|
434
|
-
z-index: 100;
|
|
435
|
-
background-color: #f2f2f2;
|
|
436
352
|
|
|
437
353
|
.pf-v6-c-button__icon.pf-m-end {
|
|
438
354
|
margin-right: -4px !important;
|
|
@@ -443,8 +359,6 @@
|
|
|
443
359
|
.filter-wrapper {
|
|
444
360
|
padding: 24px;
|
|
445
361
|
background-color: var(--pf-t--color--gray--10);
|
|
446
|
-
position: relative;
|
|
447
|
-
z-index: 0;
|
|
448
362
|
}
|
|
449
363
|
|
|
450
364
|
.filter-wrapper .filter-group > * {
|
|
@@ -499,6 +413,10 @@
|
|
|
499
413
|
.case-search-bottom .case-list-table-toolbar .toolbar-actions > * {
|
|
500
414
|
margin-bottom: 0;
|
|
501
415
|
}
|
|
416
|
+
|
|
417
|
+
.case-search-bottom .case-list-table-toolbar .toolbar-pagination {
|
|
418
|
+
margin-top: 0;
|
|
419
|
+
}
|
|
502
420
|
}
|
|
503
421
|
|
|
504
422
|
@media (min-width: 768px) {
|
|
@@ -727,86 +645,3 @@ th#product.pf-v6-c-table__th {
|
|
|
727
645
|
.case-list-table .pf-v6-c-table__button {
|
|
728
646
|
margin-bottom: 0px !important;
|
|
729
647
|
}
|
|
730
|
-
|
|
731
|
-
.skeleton-loader-row {
|
|
732
|
-
height: 62px;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
.skeleton-loader-row .skeleton-sentinel {
|
|
736
|
-
display: flex;
|
|
737
|
-
align-items: center;
|
|
738
|
-
height: 100%;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
.skeleton-loader-row .skeleton-bar {
|
|
742
|
-
display: block;
|
|
743
|
-
height: 24px;
|
|
744
|
-
border-radius: 4px;
|
|
745
|
-
background-color: #e0e0e0;
|
|
746
|
-
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
.skeleton-loader-row .skeleton-bar--checkbox {
|
|
750
|
-
display: inline-block;
|
|
751
|
-
width: 16px;
|
|
752
|
-
height: 16px;
|
|
753
|
-
border-radius: 3px;
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
@keyframes skeleton-pulse {
|
|
757
|
-
0% {
|
|
758
|
-
opacity: 1;
|
|
759
|
-
}
|
|
760
|
-
50% {
|
|
761
|
-
opacity: 0.4;
|
|
762
|
-
}
|
|
763
|
-
100% {
|
|
764
|
-
opacity: 1;
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
|
-
|
|
768
|
-
.infinite-scroll-footer-message {
|
|
769
|
-
display: flex;
|
|
770
|
-
justify-content: center;
|
|
771
|
-
align-items: center;
|
|
772
|
-
gap: 8px;
|
|
773
|
-
padding: 12px 0;
|
|
774
|
-
position: sticky;
|
|
775
|
-
left: 0;
|
|
776
|
-
background-color: #fff;
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
.infinite-scroll-footer-text,
|
|
780
|
-
.infinite-scroll-alert,
|
|
781
|
-
.infinite-scroll-alert * {
|
|
782
|
-
font-size: 14px !important;
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
.infinite-scroll-footer-message .pf-v6-c-alert.pf-m-inline.pf-m-plain {
|
|
786
|
-
padding: 0;
|
|
787
|
-
}
|
|
788
|
-
|
|
789
|
-
.infinite-scroll-footer-message .pf-v6-c-button.pf-m-link.pf-m-inline {
|
|
790
|
-
text-decoration: none;
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
.infinite-scroll-retry-btn.pf-v6-c-button.pf-m-secondary {
|
|
794
|
-
border-radius: 999px;
|
|
795
|
-
padding: 8px 24px;
|
|
796
|
-
gap: 6px;
|
|
797
|
-
font-size: 14px;
|
|
798
|
-
font-weight: 400;
|
|
799
|
-
line-height: 1.5;
|
|
800
|
-
display: inline-flex;
|
|
801
|
-
align-items: center;
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
.infinite-scroll-retry-btn .pf-v6-c-button__icon {
|
|
805
|
-
display: inline-flex;
|
|
806
|
-
align-items: center;
|
|
807
|
-
line-height: 0;
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
.infinite-scroll-retry-btn .pf-v6-c-button__icon svg {
|
|
811
|
-
vertical-align: middle;
|
|
812
|
-
}
|