@rh-support/cases 2.1.63 → 2.1.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"CreatorSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/CreatorSsoNameFilter.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,eAAO,MAAM,WAAW,0BAIvB,CAAC;AAYF,eAAO,MAAM,eAAe;;;;;;;GAA6E,CAAC;AAE1G,eAAO,MAAM,kBAAkB,iEAyC9B,CAAC;AAEF,wBAAgB,oBAAoB,sBA0OnC"}
1
+ {"version":3,"file":"CreatorSsoNameFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/CreatorSsoNameFilter.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,eAAO,MAAM,WAAW,0BAIvB,CAAC;AAYF,eAAO,MAAM,eAAe;;;;;;;GAA6E,CAAC;AAE1G,eAAO,MAAM,kBAAkB,iEAyC9B,CAAC;AAEF,wBAAgB,oBAAoB,sBA4OnC"}
@@ -206,7 +206,7 @@ export function CreatorSsoNameFilter() {
206
206
  };
207
207
  const externalToggle = (toggleRef) => (React.createElement(MenuToggle, { variant: "typeahead", onClick: onExternalToggle, innerRef: toggleRef, isExpanded: isExternalOpen, isFullWidth: true },
208
208
  React.createElement(TextInputGroup, { isPlain: true },
209
- React.createElement(TextInputGroupMain, { value: externalQuery, onClick: onExternalToggle, onKeyDown: onInputKeyDown, placeholder: getDropdownBtnPlaceholder(t('Search for a name'), selectedExternalContacts.map((i) => i.label), ' ', filteredOptions.length + dropdownHeader.length, t('All contacts')), onChange: onExternalQueryChange, isExpanded: isExternalOpen, innerRef: externalInputRef }),
209
+ React.createElement(TextInputGroupMain, { value: externalQuery, onClick: onExternalToggle, onKeyDown: onInputKeyDown, placeholder: getDropdownBtnPlaceholder(t('Search for a name'), selectedExternalContacts.map((i) => i.label), ' ', filteredOptions.length + dropdownHeader.length, t('All contacts')), onChange: onExternalQueryChange, isExpanded: isExternalOpen, innerRef: externalInputRef, "aria-controls": "external-ssousername-filter", role: "combobox" }),
210
210
  React.createElement(TextInputGroupUtilities, null, !isEmpty(externalQuery) && (React.createElement(Button, { variant: "plain", onClick: () => setExternalQuery(''), isDisabled: isFetchingExternalContacts, "aria-label": t('Clear') }, isFetchingExternalContacts ? (React.createElement(LoadingIndicator, { show: true, size: "sm" })) : (React.createElement(TimesCircleIcon, { "aria-hidden": true }))))))));
211
211
  return (React.createElement("div", null,
212
212
  React.createElement("label", { htmlFor: "case-list-username-filter" },
@@ -1 +1 @@
1
- {"version":3,"file":"CaseListTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/CaseListTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAuB3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAQxD,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAEH,eAAe,EACf,SAAS,EAIZ,MAAM,0BAA0B,CAAC;AA4BlC,UAAU,MAAM;IACZ,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAsBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBAmjB1C"}
1
+ {"version":3,"file":"CaseListTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/CaseListTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAuB3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAQxD,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,iBAAiB,EAAyB,MAAM,0BAA0B,CAAC;AAEpF,OAAO,EAEH,eAAe,EACf,SAAS,EAIZ,MAAM,0BAA0B,CAAC;AA6BlC,UAAU,MAAM;IACZ,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAsBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,qBAujB1C"}
@@ -1,7 +1,7 @@
1
1
  import { Bullseye, Button, EmptyState, EmptyStateBody, EmptyStateFooter, EmptyStateHeader, EmptyStateIcon, EmptyStateVariant, PaginationVariant, Spinner, } from '@patternfly/react-core';
2
2
  import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
3
3
  import { Table, TableVariant, Tbody, Td, Th, Thead, Tr, Visibility } from '@patternfly/react-table';
4
- import { TableColumnSelector, TableComponent, TablePagination } from '@rh-support/components';
4
+ import { TableComponent, TablePagination } from '@rh-support/components';
5
5
  import { GlobalMetadataDispatchContext, updateUserPreferences, useGlobalStateContext, UserPreferencesKeys, } from '@rh-support/react-context';
6
6
  import { formatDate, scrollIntoView, toNewCaseTypeSwitcher } from '@rh-support/utils';
7
7
  import find from 'lodash/find';
@@ -19,6 +19,7 @@ import { clearFilters, resetFilterToDefaultState, updatePagination, updateSort,
19
19
  import CloseCaseBtn from './CloseCaseBtn';
20
20
  import { ExportCaseListCSV } from './ExportCaseListCSV';
21
21
  import SeverityLabel from './SeverityLabel';
22
+ import { TableColumnSelector } from './table-column-selector/TableColumnSelector';
22
23
  // initially selected columns
23
24
  const initialSelectedColumns = [
24
25
  CaseListColumnIds.caseId,
@@ -141,10 +142,11 @@ export function CaseListTable(props) {
141
142
  const selectAllRows = () => {
142
143
  !isEqual(selectedCases, allRows) ? setSelectedCases(allRows) : setSelectedCases([]);
143
144
  };
145
+ const savedSelectedColumnsKey = UserPreferencesKeys.caseListSelectedColumns;
146
+ const savedSelectedColumns = find(hydraUserPreferences === null || hydraUserPreferences === void 0 ? void 0 : hydraUserPreferences.data, (pref) => pref.key === savedSelectedColumnsKey);
147
+ const cachedColumns = (!isUndefined(savedSelectedColumns) && JSON.parse(savedSelectedColumns === null || savedSelectedColumns === void 0 ? void 0 : savedSelectedColumns.value)) || initialSelectedColumns;
144
148
  const getSelectedColumnsListFromCache = () => {
145
- const savedSelectedColumnsKey = UserPreferencesKeys.caseListSelectedColumns;
146
- const savedSelectedColumns = find(hydraUserPreferences.data, (pref) => pref.key === savedSelectedColumnsKey);
147
- (savedSelectedColumns === null || savedSelectedColumns === void 0 ? void 0 : savedSelectedColumns.value) && setSelectedColumns(JSON.parse(savedSelectedColumns.value));
149
+ (savedSelectedColumns === null || savedSelectedColumns === void 0 ? void 0 : savedSelectedColumns.value) && setSelectedColumns(cachedColumns);
148
150
  };
149
151
  const onColumnSelectorChange = (selectedColumnsList) => {
150
152
  setSelectedColumns(selectedColumnsList);
@@ -340,7 +342,7 @@ export function CaseListTable(props) {
340
342
  React.createElement(TableComponent, { columns: columns, data: caseListData, selectedColumns: selectedColumns },
341
343
  React.createElement("div", { className: "case-list-table-toolbar pf-v5-l-flex", ref: tableToolbarRef },
342
344
  React.createElement("div", { className: "toolbar-actions pf-v5-l-flex pf-m-space-items-sm" },
343
- React.createElement(TableColumnSelector, { onColumnSelectorChange: onColumnSelectorChange }),
345
+ React.createElement(TableColumnSelector, { onColumnSelectorChange: onColumnSelectorChange, cachedColumns: cachedColumns }),
344
346
  React.createElement(ExportCaseListCSV, { currentFilteredCaseList: props.caseList, isExportCsvDisabled: props.isSolrDown, selectedCases: selectedCases }),
345
347
  React.createElement(CloseCaseBtn, { selectedCases: selectedCases, caseList: caseListData, onCasesCloseSuccess: onCasesCloseSuccess })),
346
348
  React.createElement("span", { className: "toolbar-pagination" },
@@ -26,7 +26,7 @@ const csvHeadersSolr = [
26
26
  label: 'Case link',
27
27
  key: 'case_link',
28
28
  },
29
- { label: 'Summary', key: SolrKeys.caseSummary },
29
+ { label: 'Problem description', key: SolrKeys.caseSummary },
30
30
  ];
31
31
  const csvHeadersSFDC = [
32
32
  { label: 'Case number', key: SFDCKeys.caseNumber },
@@ -34,7 +34,7 @@ const csvHeadersSFDC = [
34
34
  label: 'Case link',
35
35
  key: 'case_link',
36
36
  },
37
- { label: 'Summary', key: SFDCKeys.caseSummary },
37
+ { label: 'Problem description', key: SFDCKeys.caseSummary },
38
38
  ];
39
39
  export default function DownloadCSVFileModal(props) {
40
40
  const { onClose, onModalshow, isDisabled, loggedInUserRights, loggedInUsersAccount, filterState, selectedCases, filteredCaseCount, } = props;
@@ -0,0 +1,9 @@
1
+ import './TableColumnSelector.scss';
2
+ import React from 'react';
3
+ interface IProps {
4
+ onColumnSelectorChange: (columns: string[]) => void;
5
+ cachedColumns: string[] | [];
6
+ }
7
+ export declare function TableColumnSelector({ onColumnSelectorChange, cachedColumns }: IProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=TableColumnSelector.d.ts.map
@@ -0,0 +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,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAE,MAAM,qBAuHpF"}
@@ -0,0 +1,67 @@
1
+ import './TableColumnSelector.scss';
2
+ import { Checkbox, Dropdown, DropdownList, Grid, GridItem, MenuToggle, } from '@patternfly/react-core';
3
+ import React, { useEffect, useState } from 'react';
4
+ import { useTranslation } from 'react-i18next';
5
+ export function TableColumnSelector({ onColumnSelectorChange, cachedColumns }) {
6
+ const { t } = useTranslation();
7
+ const [isOpen, setIsOpen] = useState(false);
8
+ const [checkboxes, setCheckboxes] = useState({
9
+ contactName: false,
10
+ lastModifiedDate: false,
11
+ severity: false,
12
+ status: false,
13
+ createdDate: false,
14
+ product: false,
15
+ accountNumber: false,
16
+ alternateCaseId: false,
17
+ type: false,
18
+ closedDate: false,
19
+ folderName: false,
20
+ });
21
+ const handleCheckboxChange = (key) => {
22
+ setCheckboxes((prevCheckboxes) => (Object.assign(Object.assign({}, prevCheckboxes), { [key]: !prevCheckboxes[key] })));
23
+ };
24
+ const onToggleClick = () => {
25
+ setIsOpen(!isOpen);
26
+ };
27
+ const caseListColumnHeaderOne = [
28
+ { label: 'Owner', key: 'contactName' },
29
+ { label: 'Severity', key: 'severity' },
30
+ { label: 'Created by', key: 'createdDate' },
31
+ { label: 'Account number', key: 'accountNumber' },
32
+ { label: 'Support type', key: 'type' },
33
+ { label: 'Group', key: 'folderName' },
34
+ ];
35
+ const caseListColumnHeaderTwo = [
36
+ { label: 'Modified by', key: 'lastModifiedDate' },
37
+ { label: 'Status', key: 'status' },
38
+ { label: 'Product and version', key: 'product' },
39
+ { label: 'Personal reference number', key: 'alternateCaseId' },
40
+ { label: 'Closed date', key: 'closedDate' },
41
+ ];
42
+ const generateCheckboxes = (fieldDefinitions) => {
43
+ return fieldDefinitions === null || fieldDefinitions === void 0 ? void 0 : fieldDefinitions.map((field) => (React.createElement(Checkbox, { key: field.key, className: "case-column-selector", label: t(field.label), isChecked: checkboxes[field.key], onChange: () => {
44
+ handleCheckboxChange(field.key);
45
+ }, id: field.key, name: field.key })));
46
+ };
47
+ useEffect(() => {
48
+ const selectedColumns = Object.keys(checkboxes).filter((key) => checkboxes[key]);
49
+ onColumnSelectorChange(selectedColumns);
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, [checkboxes]);
52
+ useEffect(() => {
53
+ cachedColumns === null || cachedColumns === void 0 ? void 0 : cachedColumns.forEach((key) => {
54
+ setCheckboxes((prevCheckboxes) => (Object.assign(Object.assign({}, prevCheckboxes), { [key]: true })));
55
+ });
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ }, []);
58
+ return (React.createElement(Dropdown, { isOpen: isOpen, onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, onClick: onToggleClick, isExpanded: isOpen }, "Columns")), shouldFocusToggleOnSelect: true, id: "case-list-table-column-dropdown", "data-tracking-id": "case-list-table-column-dropdown", className: "column-selector" },
59
+ React.createElement(DropdownList, null,
60
+ React.createElement(Grid, { hasGutter: true },
61
+ React.createElement(GridItem, { span: 6 },
62
+ React.createElement(Checkbox, { className: "case-column-selector", label: t('Case ID'), defaultChecked: true, isDisabled: true, id: "case-id-check", name: "caseIDCheck" }),
63
+ generateCheckboxes(caseListColumnHeaderOne)),
64
+ React.createElement(GridItem, { span: 6 },
65
+ React.createElement(Checkbox, { className: "case-column-selector", label: t('Problem description'), defaultChecked: true, isDisabled: true, id: "problem-description-check", name: "problemDescriptionCheck" }),
66
+ generateCheckboxes(caseListColumnHeaderTwo))))));
67
+ }
@@ -0,0 +1,7 @@
1
+ #case-list-table-column-dropdown {
2
+ z-index: 9 !important;
3
+ }
4
+
5
+ .case-column-selector {
6
+ margin: 15px 4px 0px 18px !important;
7
+ }
@@ -101,7 +101,7 @@ export default function useAdvanceSearchParser({ onInit }) {
101
101
  / "createdDate" {return "${SolrKeys.createdDate}";}
102
102
  / "closedDate" {return "${SolrKeys.caseClosedDate}";}
103
103
  / "description" {return "${SolrKeys.description}";}
104
- / "summary" {return "${SolrKeys.caseSummary}";}
104
+ / "ProblemDescription" {return "${SolrKeys.caseSummary}";}
105
105
  / "lastModifiedDate" {return "${SolrKeys.modifiedDate}";}
106
106
  / "lastModifiedByName" {return "${SolrKeys.modifiedBy}";}
107
107
  / "ownerName" {return "${SolrKeys.contactName}";}
@@ -5,7 +5,7 @@ export const filterNamesMap = {
5
5
  [SolrKeys.severity]: 'Severity',
6
6
  [SolrKeys.group]: 'Groups',
7
7
  [SolrKeys.accountNumber]: 'Bookmarks',
8
- [SolrKeys.caseSummary]: 'Summary',
8
+ [SolrKeys.caseSummary]: 'Problem description',
9
9
  [SolrKeys.escalation]: 'Escalated',
10
10
  [SolrKeys.contactName]: 'Owner',
11
11
  [SolrKeys.product]: 'Products',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/cases",
3
- "version": "2.1.63",
3
+ "version": "2.1.64",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -43,11 +43,11 @@
43
43
  "@patternfly/patternfly": "5.1.0",
44
44
  "@patternfly/react-core": "5.1.1",
45
45
  "@patternfly/react-table": "5.1.1",
46
- "@rh-support/components": "2.1.48",
47
- "@rh-support/react-context": "2.1.54",
46
+ "@rh-support/components": "2.1.49",
47
+ "@rh-support/react-context": "2.1.55",
48
48
  "@rh-support/types": "2.0.3",
49
- "@rh-support/user-permissions": "2.1.35",
50
- "@rh-support/utils": "2.1.25",
49
+ "@rh-support/user-permissions": "2.1.36",
50
+ "@rh-support/utils": "2.1.26",
51
51
  "localforage": "^1.10.0",
52
52
  "lodash": "^4.17.21",
53
53
  "pegjs": "^0.10.0",
@@ -96,5 +96,5 @@
96
96
  "defaults and supports es6-module",
97
97
  "maintained node versions"
98
98
  ],
99
- "gitHead": "e26b6df63ea1cab3872f1679464f4caf5e5a1056"
99
+ "gitHead": "860400c585c5440fafa0bdeeeed2bfbbf6e0fbd6"
100
100
  }