From 9cb140c67517dcf576ecc0f14c41d2b163b2670a Mon Sep 17 00:00:00 2001 From: Benjamin Perez Date: Wed, 21 Jul 2021 14:56:29 -0500 Subject: [PATCH] Improved FS Mode in console: - Replaced legend for create bucket - Hidden Heal in FS mode --- .../Console/Buckets/ListBuckets/AddBucket.tsx | 6 ++--- portal-ui/src/screens/Console/Heal/Heal.tsx | 19 ++++++++++--- portal-ui/src/screens/Console/Menu/Menu.tsx | 27 ++++++++++++------- portal-ui/src/screens/Console/Menu/types.ts | 2 ++ 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket.tsx b/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket.tsx index e6ec868ef5..ed19107d90 100644 --- a/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket.tsx +++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket.tsx @@ -291,10 +291,8 @@ const AddBucket = ({ {!distributedSetup && ( - Some of these features are disabled as server is running in - FS mode.
- If you require any of this, please start server in - distributed mode. + Some these features are disabled as server is running in + non-erasure coded mode.


diff --git a/portal-ui/src/screens/Console/Heal/Heal.tsx b/portal-ui/src/screens/Console/Heal/Heal.tsx index 30f6b13f53..1a9ed3b3c5 100644 --- a/portal-ui/src/screens/Console/Heal/Heal.tsx +++ b/portal-ui/src/screens/Console/Heal/Heal.tsx @@ -14,8 +14,9 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -import { HorizontalBar } from "react-chartjs-2"; import React, { useEffect, useState } from "react"; +import { connect } from "react-redux"; +import { HorizontalBar } from "react-chartjs-2"; import { Button, Grid, TextField, InputBase } from "@material-ui/core"; import { IMessageEvent, w3cwebsocket as W3CWebSocket } from "websocket"; import { createStyles, Theme, withStyles } from "@material-ui/core/styles"; @@ -33,6 +34,7 @@ import { } from "../Common/FormComponents/common/styleLibrary"; import CheckboxWrapper from "../Common/FormComponents/CheckboxWrapper/CheckboxWrapper"; import PageHeader from "../Common/PageHeader/PageHeader"; +import { AppState } from "../../../store"; const styles = (theme: Theme) => createStyles({ @@ -74,6 +76,7 @@ const styles = (theme: Theme) => interface IHeal { classes: any; + distributedSetup: boolean; } const SelectStyled = withStyles((theme: Theme) => @@ -98,7 +101,7 @@ const SelectStyled = withStyles((theme: Theme) => }) )(InputBase); -const Heal = ({ classes }: IHeal) => { +const Heal = ({ classes, distributedSetup }: IHeal) => { const [start, setStart] = useState(false); const [bucketName, setBucketName] = useState(""); const [bucketList, setBucketList] = useState([]); @@ -227,6 +230,10 @@ const Heal = ({ classes }: IHeal) => { label: bucketName.name, value: bucketName.name, })); + if (!distributedSetup) { + return null; + } + return ( @@ -355,4 +362,10 @@ const Heal = ({ classes }: IHeal) => { ); }; -export default withStyles(styles)(Heal); +const mapState = (state: AppState) => ({ + distributedSetup: state.system.distributedSetup, +}); + +const connector = connect(mapState, null); + +export default connector(withStyles(styles)(Heal)); diff --git a/portal-ui/src/screens/Console/Menu/Menu.tsx b/portal-ui/src/screens/Console/Menu/Menu.tsx index ab3233f7ac..8922c318de 100644 --- a/portal-ui/src/screens/Console/Menu/Menu.tsx +++ b/portal-ui/src/screens/Console/Menu/Menu.tsx @@ -149,13 +149,6 @@ const styles = (theme: Theme) => }, }); -const mapState = (state: AppState) => ({ - open: state.system.loggedIn, - operatorMode: state.system.operatorMode, -}); - -const connector = connect(mapState, { userLoggedIn }); - // Menu State builder for groups const menuStateBuilder = () => { let elements: any = []; @@ -168,7 +161,13 @@ const menuStateBuilder = () => { return elements; }; -const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => { +const Menu = ({ + userLoggedIn, + classes, + pages, + operatorMode, + distributedSetup, +}: IMenuProps) => { const [menuOpen, setMenuOpen] = useState(menuStateBuilder()); const logout = () => { @@ -278,6 +277,7 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => { to: "/heal", name: "Heal", icon: , + fsHidden: distributedSetup, }, { group: "Tools", @@ -386,8 +386,7 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => { } const allowedItems = menuItems.filter( - (item: any) => - allowedPages[item.to] || item.forceDisplay || item.type !== "item" + (item: any) => (allowedPages[item.to] || item.forceDisplay || item.type !== "item") && item.fsHidden !== false ); const setMenuCollapse = (menuClicked: string) => { @@ -501,4 +500,12 @@ const Menu = ({ userLoggedIn, classes, pages, operatorMode }: IMenuProps) => { ); }; +const mapState = (state: AppState) => ({ + open: state.system.loggedIn, + operatorMode: state.system.operatorMode, + distributedSetup: state.system.distributedSetup, +}); + +const connector = connect(mapState, { userLoggedIn }); + export default connector(withStyles(styles)(Menu)); diff --git a/portal-ui/src/screens/Console/Menu/types.ts b/portal-ui/src/screens/Console/Menu/types.ts index c7b17a7070..b99d447cb0 100644 --- a/portal-ui/src/screens/Console/Menu/types.ts +++ b/portal-ui/src/screens/Console/Menu/types.ts @@ -21,6 +21,7 @@ export interface IMenuProps { userLoggedIn: typeof userLoggedIn; pages: string[]; operatorMode: boolean; + distributedSetup: boolean; } export interface IMenuItem { @@ -33,4 +34,5 @@ export interface IMenuItem { onClick?: any; forceDisplay?: boolean; extraMargin?: boolean; + fsHidden?: boolean; }