From 0eb81072b5bee59ce672c120834cf10b317e9f20 Mon Sep 17 00:00:00 2001
From: Ron Lavi <1ronlavi@gmail.com>
Date: Wed, 27 Dec 2023 19:55:25 +0000
Subject: [PATCH] Inventory page UX enhancements
- Moved the page description into a modal which is reachable from the dropdown kebab.
- Moved also the settings card into a modal.
- Small margin/padding fixes.
- replace PF3 Buttons with PF4 Buttons.
---
.../Components/AccountList/accountList.scss | 5 ++++
.../InventorySettings/InventorySettings.js | 3 ---
.../InventorySettings.test.js.snap | 3 ---
.../Components/PageHeader/PageHeader.js | 6 -----
.../Components/PageHeader/PageHeader.scss | 1 -
.../Components/PageHeader/PageTitle.js | 26 +++++++++++++++++++
.../__snapshots__/PageHeader.test.js.snap | 6 -----
.../__snapshots__/PageTitle.test.js.snap | 20 ++++++++++++++
.../PageHeader/components/AboutModal/index.js | 26 +++++++++++++++++++
.../components/SettingsModal/index.js | 26 +++++++++++++++++++
.../Components/TabHeader/TabHeader.js | 11 ++++----
.../__snapshots__/TabHeader.test.js.snap | 6 +----
.../ForemanInventoryConstants.js | 4 +++
.../__snapshots__/InsightsTable.test.js.snap | 3 +++
webpack/common/Switcher/HelpLabel.js | 2 +-
webpack/common/Switcher/SwitcherPF4.scss | 4 +++
16 files changed, 122 insertions(+), 30 deletions(-)
create mode 100644 webpack/ForemanInventoryUpload/Components/PageHeader/components/AboutModal/index.js
create mode 100644 webpack/ForemanInventoryUpload/Components/PageHeader/components/SettingsModal/index.js
diff --git a/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss b/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss
index 82f25b7f..e42918d5 100644
--- a/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss
+++ b/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss
@@ -1,4 +1,9 @@
.rh-cloud-inventory-page {
+
+ section {
+ padding-bottom: 0;
+ }
+
#main {
padding: 0;
diff --git a/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js b/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js
index 9e0d598f..463bf0fd 100644
--- a/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js
+++ b/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js
@@ -1,6 +1,4 @@
import React from 'react';
-import { translate as __ } from 'foremanReact/common/I18n';
-
import AdvancedSetting from './AdvancedSetting';
import { settingsDict } from './AdvancedSetting/AdvancedSettingsConstants';
@@ -8,7 +6,6 @@ import './InventorySettings.scss';
const InventorySettings = () => (
-
{__('Settings')}
{Object.keys(settingsDict).map(key => (
))}
diff --git a/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap b/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap
index 6f5229a2..9af41cc5 100644
--- a/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap
+++ b/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap
@@ -4,9 +4,6 @@ exports[`InventorySettings rendering render without Props 1`] = `
-
- Settings
-
(
-
diff --git a/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss b/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss
index cd2a3cfe..72884cec 100644
--- a/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss
+++ b/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss
@@ -1,6 +1,5 @@
.rh-cloud-inventory-page {
.inventory-upload-header {
- margin-top: 35px;
h1 {
font-family: 'RedHatDisplay';
diff --git a/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js b/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js
index c77d9d58..d5570762 100644
--- a/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js
+++ b/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js
@@ -13,18 +13,31 @@ import {
ACTIONS_HISTORY_BUTTON_TEXT,
DOCS_BUTTON_TEXT,
CLOUD_PING_TITLE,
+ ABOUT_TITLE,
+ SETTINGS_TITLE,
} from '../../ForemanInventoryConstants';
import {
getActionsHistoryUrl,
getInventoryDocsUrl,
} from '../../ForemanInventoryHelpers';
import CloudPingModal from './components/CloudPingModal';
+import AboutModal from './components/AboutModal';
+import SettingsModal from './components/SettingsModal';
const PageTitle = () => {
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
const [showPingModal, setPingModal] = useState(false);
+ const [showAboutModal, setAboutModal] = useState(false);
+ const [showSettingsModal, setSettingsModal] = useState(false);
+
const togglePingModal = () => setPingModal(v => !v);
+ const toggleAboutModal = () => setAboutModal(v => !v);
+ const toggleSettingsModal = () => setSettingsModal(v => !v);
+
const dropdownItems = [
+
+ {SETTINGS_TITLE}
+ ,
{
{CLOUD_PING_TITLE}
,
+
+ {ABOUT_TITLE}
+ ,
];
return (
@@ -70,6 +86,16 @@ const PageTitle = () => {
toggle={togglePingModal}
title={CLOUD_PING_TITLE}
/>
+
+
);
diff --git a/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap b/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap
index ebde573e..4a447d59 100644
--- a/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap
+++ b/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap
@@ -6,12 +6,6 @@ exports[`PageHeader rendering render without Props 1`] = `
>
-
+ Settings
+
,
Connectivity test
,
+
+ About
+ ,
]
}
isOpen={false}
@@ -59,6 +69,16 @@ exports[`PageTitle rendering render without Props 1`] = `
title="Connectivity test"
toggle={[Function]}
/>
+
+
`;
diff --git a/webpack/ForemanInventoryUpload/Components/PageHeader/components/AboutModal/index.js b/webpack/ForemanInventoryUpload/Components/PageHeader/components/AboutModal/index.js
new file mode 100644
index 00000000..2cd7bdde
--- /dev/null
+++ b/webpack/ForemanInventoryUpload/Components/PageHeader/components/AboutModal/index.js
@@ -0,0 +1,26 @@
+/* eslint-disable camelcase */
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Modal, ModalVariant } from '@patternfly/react-core';
+import PageDescription from '../PageDescription';
+
+const AboutModal = ({ isOpen, toggle, title }) => (
+
+
+
+);
+
+AboutModal.propTypes = {
+ isOpen: PropTypes.bool.isRequired,
+ toggle: PropTypes.func.isRequired,
+ title: PropTypes.string.isRequired,
+};
+
+export default AboutModal;
diff --git a/webpack/ForemanInventoryUpload/Components/PageHeader/components/SettingsModal/index.js b/webpack/ForemanInventoryUpload/Components/PageHeader/components/SettingsModal/index.js
new file mode 100644
index 00000000..dec90e25
--- /dev/null
+++ b/webpack/ForemanInventoryUpload/Components/PageHeader/components/SettingsModal/index.js
@@ -0,0 +1,26 @@
+/* eslint-disable camelcase */
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Modal, ModalVariant } from '@patternfly/react-core';
+import InventorySettings from '../../../InventorySettings';
+
+const SettingsModal = ({ isOpen, toggle, title }) => (
+
+
+
+);
+
+SettingsModal.propTypes = {
+ isOpen: PropTypes.bool.isRequired,
+ toggle: PropTypes.func.isRequired,
+ title: PropTypes.string.isRequired,
+};
+
+export default SettingsModal;
diff --git a/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js b/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js
index 31b6a305..855e1e0e 100644
--- a/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js
+++ b/webpack/ForemanInventoryUpload/Components/TabHeader/TabHeader.js
@@ -1,6 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { Grid, Button, Icon } from 'patternfly-react';
+import { Grid, Icon } from 'patternfly-react';
+import { Button } from '@patternfly/react-core';
import { noop } from 'foremanReact/common/helpers';
import { sprintf, translate as __ } from 'foremanReact/common/I18n';
import { isExitCodeLoading } from '../../ForemanInventoryHelpers';
@@ -15,19 +16,19 @@ const TabHeader = ({ exitCode, onRestart, onDownload, toggleFullScreen }) => (
{onRestart ? (
) : null}
{onDownload ? (
-