Use MDS's BackLink (#2615)

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
This commit is contained in:
Daniel Valdivia
2023-02-01 12:14:47 -08:00
committed by GitHub
parent 4a2915a62b
commit 34907856c5
34 changed files with 192 additions and 308 deletions

View File

@@ -1,117 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Link } from "react-router-dom";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { BackSettingsIcon } from "mds";
import { Box } from "@mui/material";
const styles = (theme: Theme) =>
createStyles({
label: {
lineHeight: 1,
alignItems: "center",
paddingTop: 1,
fontSize: "14px",
fontWeight: 600,
color: theme.palette.primary.light,
marginRight: "10px",
},
});
interface IBackLink {
classes: any;
to: string;
label: string;
className?: any;
executeOnClick?: () => void;
}
const BackLink = ({
to,
label,
classes,
className,
executeOnClick,
}: IBackLink) => {
return (
<Box
sx={{
display: "flex",
alignItems: "center",
textDecoration: "none",
"& .icon-box": {
display: "flex",
alignItems: "center",
justifyContent: "center",
flexDirection: "row",
height: "30px",
paddingLeft: 0,
"&:hover .icon": {
background: "rgba(234,237,238)",
borderRadius: "2px",
},
"& .icon": {
lineHeight: 1,
marginRight: "3px",
display: "flex",
alignItems: "center",
width: "28px",
height: "30px",
"& .min-icon": {
width: "17px",
height: "11px",
margin: "auto",
color: "#081C42",
},
},
},
"& a": {
textDecoration: "none",
textDecorationColor: "#081C42",
"&:active": {
color: "#081C42",
},
},
}}
>
<Link
to={to}
className={`${classes.link} ${className ? className : ""}`}
onClick={() => {
if (executeOnClick) {
executeOnClick();
}
}}
>
<div className="icon-box">
<Box className="icon">
<BackSettingsIcon />
</Box>
<div className={classes.label}>{label}</div>
</div>
</Link>
</Box>
);
};
export default withStyles(styles)(BackLink);

View File

@@ -17,7 +17,7 @@
import React, { Fragment, useEffect, useState } from "react";
import { Theme } from "@mui/material/styles";
import { useNavigate } from "react-router-dom";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import {
@@ -36,7 +36,7 @@ import PageLayout from "../Common/Layout/PageLayout";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
import AddServiceAccountHelpBox from "./AddServiceAccountHelpBox";
import BackLink from "../../../common/BackLink";
import { NewServiceAccount } from "../Common/CredentialsPrompt/types";
import RemoveRedEyeIcon from "@mui/icons-material/RemoveRedEye";
import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
@@ -153,7 +153,12 @@ const AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {
)}
<Grid item xs={12}>
<PageHeader
label={<BackLink to={IAM_PAGES.ACCOUNT} label={"Access Keys"} />}
label={
<BackLink
label={"Access Keys"}
onClick={() => navigate(IAM_PAGES.ACCOUNT)}
/>
}
/>
<PageLayout>
<Box

View File

@@ -23,7 +23,15 @@ import {
useNavigate,
useParams,
} from "react-router-dom";
import { Button, PageHeader } from "mds";
import {
BackLink,
BucketsIcon,
Button,
FolderIcon,
PageHeader,
RefreshIcon,
TrashIcon,
} from "mds";
import { useSelector } from "react-redux";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
@@ -42,26 +50,23 @@ import { ErrorResponseHandler } from "../../../../common/types";
import ScreenTitle from "../../Common/ScreenTitle/ScreenTitle";
import { Box } from "@mui/material";
import { RefreshIcon, BucketsIcon, FolderIcon } from "mds";
import {
IAM_SCOPES,
browseBucketPermissions,
deleteBucketPermissions,
IAM_PERMISSIONS,
IAM_ROLES,
IAM_SCOPES,
permissionTooltipHelper,
deleteBucketPermissions,
browseBucketPermissions,
} from "../../../../common/SecureComponent/permissions";
import PageLayout from "../../Common/Layout/PageLayout";
import VerticalTabs from "../../Common/VerticalTabs/VerticalTabs";
import BackLink from "../../../../common/BackLink";
import {
hasPermission,
SecureComponent,
} from "../../../../common/SecureComponent";
import withSuspense from "../../Common/Components/withSuspense";
import { TrashIcon } from "mds";
import {
selDistSet,
selSiteRep,
@@ -208,7 +213,9 @@ const BucketDetails = ({ classes }: IBucketDetailsProps) => {
/>
)}
<PageHeader
label={<BackLink to={"/buckets"} label={"Buckets"} />}
label={
<BackLink label={"Buckets"} onClick={() => navigate("/buckets")} />
}
actions={
<TooltipWrapper
tooltip={

View File

@@ -19,7 +19,14 @@ import Grid from "@mui/material/Grid";
import { LinearProgress } from "@mui/material";
import { Theme } from "@mui/material/styles";
import { useNavigate } from "react-router-dom";
import { Button, HelpBox, PageHeader } from "mds";
import {
BackLink,
BucketsIcon,
Button,
HelpBox,
InfoIcon,
PageHeader,
} from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { containerForHeader } from "../../../Common/FormComponents/common/styleLibrary";
@@ -29,9 +36,11 @@ import { k8sScalarUnitsExcluding } from "../../../../../common/utils";
import { AppState, useAppDispatch } from "../../../../../store";
import { useSelector } from "react-redux";
import FormSwitchWrapper from "../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
import BackLink from "../../../../../common/BackLink";
import { BucketsIcon, InfoIcon } from "mds";
import { setErrorSnackMessage } from "../../../../../systemSlice";
import {
selDistSet,
selSiteRep,
setErrorSnackMessage,
} from "../../../../../systemSlice";
import { ErrorResponseHandler } from "../../../../../common/types";
import { BucketList } from "../../types";
import api from "../../../../../common/api";
@@ -40,7 +49,6 @@ import InputUnitMenu from "../../../Common/FormComponents/InputUnitMenu/InputUni
import FormLayout from "../../../Common/FormLayout";
import TooltipWrapper from "../../../Common/TooltipWrapper/TooltipWrapper";
import SectionTitle from "../../../Common/SectionTitle";
import { selDistSet, selSiteRep } from "../../../../../systemSlice";
import {
resetForm,
setEnableObjectLocking,
@@ -233,7 +241,11 @@ const AddBucket = ({ classes }: IsetProps) => {
return (
<Fragment>
<PageHeader label={<BackLink to={"/buckets"} label={"Buckets"} />} />
<PageHeader
label={
<BackLink label={"Buckets"} onClick={() => navigate("/buckets")} />
}
/>
<PageLayout>
<FormLayout
title={"Create Bucket"}

View File

@@ -18,10 +18,9 @@ import React, { Fragment, useEffect, useState } from "react";
import Grid from "@mui/material/Grid";
import { Box, LinearProgress } from "@mui/material";
import { useNavigate } from "react-router-dom";
import { Button, HelpBox, PageHeader } from "mds";
import { BackLink, Button, HelpBox, PageHeader } from "mds";
import useApi from "../../Common/Hooks/useApi";
import { ClustersIcon } from "mds";
import BackLink from "../../../../common/BackLink";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
import PageLayout from "../../Common/Layout/PageLayout";
import SectionTitle from "../../Common/SectionTitle";
@@ -397,8 +396,8 @@ const AddReplicationSites = () => {
<PageHeader
label={
<BackLink
to={IAM_PAGES.SITE_REPLICATION}
label={"Add Replication Site"}
onClick={() => navigate(IAM_PAGES.SITE_REPLICATION)}
/>
}
/>

View File

@@ -16,10 +16,10 @@
import React, { Fragment, useEffect, useState } from "react";
import { Box, Grid } from "@mui/material";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import PageLayout from "../../Common/Layout/PageLayout";
import useApi from "../../Common/Hooks/useApi";
import BackLink from "../../../../common/BackLink";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
import ScreenTitle from "../../Common/ScreenTitle/ScreenTitle";
import StatusCountCard from "../../Dashboard/BasicDashboard/StatusCountCard";
@@ -33,6 +33,7 @@ import {
import EntityReplicationLookup from "./EntityReplicationLookup";
import { Loader } from "mds";
import TooltipWrapper from "../../Common/TooltipWrapper/TooltipWrapper";
import { useNavigate } from "react-router-dom";
export type StatsResponseType = {
maxBuckets?: number;
@@ -81,6 +82,8 @@ const SREntityStatus = ({
};
const SiteReplicationStatus = () => {
const navigate = useNavigate();
const [stats, setStats] = useState<StatsResponseType>({});
const [isStatsLoading, invokeSiteStatsApi] = useApi(
@@ -118,8 +121,8 @@ const SiteReplicationStatus = () => {
<PageHeader
label={
<BackLink
to={IAM_PAGES.SITE_REPLICATION}
label={"Site Replication"}
onClick={() => navigate(IAM_PAGES.SITE_REPLICATION)}
/>
}
/>

View File

@@ -20,7 +20,7 @@ import { useNavigate, useParams } from "react-router-dom";
import get from "lodash/get";
import Grid from "@mui/material/Grid";
import { Theme } from "@mui/material/styles";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { Box } from "@mui/material";
@@ -41,7 +41,7 @@ import {
s3ServiceName,
tierTypes,
} from "./utils";
import BackLink from "../../../../common/BackLink";
import PageLayout from "../../Common/Layout/PageLayout";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
@@ -314,7 +314,10 @@ const AddTierConfiguration = ({ classes }: IAddNotificationEndpointProps) => {
<PageHeader
label={
<Fragment>
<BackLink to={IAM_PAGES.TIERS_ADD} label={"Add Tier"} />
<BackLink
label={"Add Tier"}
onClick={() => navigate(IAM_PAGES.TIERS_ADD)}
/>
</Fragment>
}
actions={<React.Fragment />}

View File

@@ -19,10 +19,9 @@ import { useNavigate } from "react-router-dom";
import { Box } from "@mui/material";
import { tierTypes } from "./utils";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
import BackLink from "../../../../common/BackLink";
import PageLayout from "../../Common/Layout/PageLayout";
import TierTypeCard from "./TierTypeCard";
import { HelpBox, PageHeader, TiersIcon } from "mds";
import { BackLink, HelpBox, PageHeader, TiersIcon } from "mds";
import FormLayout from "../../Common/FormLayout";
const TierTypeSelector = () => {
@@ -37,7 +36,10 @@ const TierTypeSelector = () => {
<PageHeader
label={
<Fragment>
<BackLink to={IAM_PAGES.TIERS} label="Tier Types" />
<BackLink
label="Tier Types"
onClick={() => navigate(IAM_PAGES.TIERS)}
/>
</Fragment>
}
actions={<React.Fragment />}

View File

@@ -25,12 +25,11 @@ import {
} from "../Common/FormComponents/common/styleLibrary";
import Grid from "@mui/material/Grid";
import { LinearProgress } from "@mui/material";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import PageLayout from "../Common/Layout/PageLayout";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import AddGroupHelpBox from "./AddGroupHelpBox";
import UsersSelectors from "./UsersSelectors";
import BackLink from "../../../common/BackLink";
import { CreateGroupIcon } from "mds";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
@@ -114,7 +113,12 @@ const AddGroupScreen = ({ classes }: IAddGroupProps) => {
<Fragment>
<Grid item xs={12}>
<PageHeader
label={<BackLink to={IAM_PAGES.GROUPS} label={"Groups"} />}
label={
<BackLink
label={"Groups"}
onClick={() => navigate(IAM_PAGES.GROUPS)}
/>
}
/>
<PageLayout>
<FormLayout

View File

@@ -1,23 +1,18 @@
import React, { Fragment } from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import BackLink from "../../../common/BackLink";
import { PageHeader } from "mds";
import { BackLink, PageHeader } from "mds";
import { useNavigate } from "react-router-dom";
const styles = (theme: Theme) => createStyles({});
type DetailsHeaderProps = {
classes: any;
};
const GroupDetailsHeader = ({ classes }: DetailsHeaderProps) => {
const GroupDetailsHeader = () => {
const navigate = useNavigate();
return (
<PageHeader
label={
<Fragment>
<BackLink to={IAM_PAGES.GROUPS} label={"Groups"} />
<BackLink
label={"Groups"}
onClick={() => navigate(IAM_PAGES.GROUPS)}
/>
</Fragment>
}
actions={<React.Fragment />}
@@ -25,4 +20,4 @@ const GroupDetailsHeader = ({ classes }: DetailsHeaderProps) => {
);
};
export default withStyles(styles)(GroupDetailsHeader);
export default GroupDetailsHeader;

View File

@@ -25,7 +25,7 @@ import {
modalBasic,
} from "../Common/FormComponents/common/styleLibrary";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import { useNavigate } from "react-router-dom";
import { ErrorResponseHandler } from "../../../common/types";
import { useAppDispatch } from "../../../store";
@@ -34,7 +34,6 @@ import {
setServerNeedsRestart,
} from "../../../systemSlice";
import useApi from "../Common/Hooks/useApi";
import BackLink from "../../../common/BackLink";
import PageLayout from "../Common/Layout/PageLayout";
import SectionTitle from "../Common/SectionTitle";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
@@ -167,7 +166,9 @@ const AddIDPConfiguration = ({
return (
<Grid item xs={12}>
<PageHeader label={<BackLink to={backLink} label={header} />} />
<PageHeader
label={<BackLink onClick={() => navigate(backLink)} label={header} />}
/>
<PageLayout>
<Box
sx={{

View File

@@ -15,25 +15,13 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import { LockIcon } from "mds";
import AddIDPConfiguration from "./AddIDPConfiguration";
import { openIDFormFields, openIDHelpBoxContents } from "./utils";
import AddIDPConfigurationHelpBox from "./AddIDPConfigurationHelpbox";
type AddIDPOpenIDConfigurationProps = {
classes?: any;
};
const styles = (theme: Theme) => createStyles({});
const AddIDPOpenIDConfiguration = ({
classes,
}: AddIDPOpenIDConfigurationProps) => {
const AddIDPOpenIDConfiguration = () => {
return (
<AddIDPConfiguration
icon={<LockIcon />}
@@ -56,4 +44,4 @@ const AddIDPOpenIDConfiguration = ({
);
};
export default withStyles(styles)(AddIDPOpenIDConfiguration);
export default AddIDPOpenIDConfiguration;

View File

@@ -29,7 +29,7 @@ import {
pageContentStyles,
searchField,
} from "../Common/FormComponents/common/styleLibrary";
import { EditIcon, PageHeader, RefreshIcon, TrashIcon } from "mds";
import { BackLink, EditIcon, PageHeader, RefreshIcon, TrashIcon } from "mds";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import { Button } from "mds";
import { useNavigate, useParams } from "react-router-dom";
@@ -42,7 +42,6 @@ import {
import useApi from "../Common/Hooks/useApi";
import api from "../../../common/api";
import PageLayout from "../Common/Layout/PageLayout";
import BackLink from "../../../common/BackLink";
import ScreenTitle from "../Common/ScreenTitle/ScreenTitle";
import DeleteIDPConfigurationModal from "./DeleteIDPConfigurationModal";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
@@ -378,7 +377,9 @@ const IDPConfigurationDetails = ({
closeDeleteModalAndRefresh={closeDeleteModalAndRefresh}
/>
)}
<PageHeader label={<BackLink to={backLink} label={header} />} />
<PageHeader
label={<BackLink onClick={() => navigate(backLink)} label={header} />}
/>
<PageLayout className={classes.pageContainer}>
<Box>
<ScreenTitle

View File

@@ -15,25 +15,13 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { ldapFormFields, ldapHelpBoxContents } from "./utils";
import LoginIcon from "@mui/icons-material/Login";
import IDPConfigurationDetails from "./IDPConfigurationDetails";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import AddIDPConfigurationHelpBox from "./AddIDPConfigurationHelpbox";
type IDPLDAPConfigurationDetailsProps = {
classes?: any;
};
const styles = (theme: Theme) => createStyles({});
const IDPLDAPConfigurationDetails = ({
classes,
}: IDPLDAPConfigurationDetailsProps) => {
const IDPLDAPConfigurationDetails = () => {
return (
<IDPConfigurationDetails
backLink={IAM_PAGES.IDP_LDAP_CONFIGURATIONS}
@@ -56,4 +44,4 @@ const IDPLDAPConfigurationDetails = ({
);
};
export default withStyles(styles)(IDPLDAPConfigurationDetails);
export default IDPLDAPConfigurationDetails;

View File

@@ -15,20 +15,10 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import IDPConfigurations from "./IDPConfigurations";
type IDPLDAPConfigurationsProps = {
classes?: any;
};
const styles = (theme: Theme) => createStyles({});
const IDPLDAPConfigurations = ({ classes }: IDPLDAPConfigurationsProps) => {
const IDPLDAPConfigurations = () => {
return <IDPConfigurations idpType={"ldap"} />;
};
export default withStyles(styles)(IDPLDAPConfigurations);
export default IDPLDAPConfigurations;

View File

@@ -15,25 +15,13 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import { LockIcon } from "mds";
import { openIDFormFields, openIDHelpBoxContents } from "./utils";
import IDPConfigurationDetails from "./IDPConfigurationDetails";
import AddIDPConfigurationHelpBox from "./AddIDPConfigurationHelpbox";
type IDPOpenIDConfigurationDetailsProps = {
classes?: any;
};
const styles = (theme: Theme) => createStyles({});
const IDPOpenIDConfigurationDetails = ({
classes,
}: IDPOpenIDConfigurationDetailsProps) => {
const IDPOpenIDConfigurationDetails = () => {
return (
<IDPConfigurationDetails
backLink={IAM_PAGES.IDP_OPENID_CONFIGURATIONS}
@@ -56,4 +44,4 @@ const IDPOpenIDConfigurationDetails = ({
);
};
export default withStyles(styles)(IDPOpenIDConfigurationDetails);
export default IDPOpenIDConfigurationDetails;

View File

@@ -15,20 +15,10 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import IDPConfigurations from "./IDPConfigurations";
type IDPOpenIDConfigurationsProps = {
classes?: any;
};
const styles = (theme: Theme) => createStyles({});
const IDPOpenIDConfigurations = ({ classes }: IDPOpenIDConfigurationsProps) => {
const IDPOpenIDConfigurations = () => {
return <IDPConfigurations idpType={"openid"} />;
};
export default withStyles(styles)(IDPOpenIDConfigurations);
export default IDPOpenIDConfigurations;

View File

@@ -17,14 +17,13 @@
import React, { Fragment } from "react";
import Grid from "@mui/material/Grid";
import BackLink from "../../../common/BackLink";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import { ErrorResponseHandler } from "../../../common/types";
import { setErrorSnackMessage } from "../../../systemSlice";
import { useNavigate } from "react-router-dom";
import { useAppDispatch } from "../../../store";
import AddKeyForm from "./AddKeyForm";
import { PageHeader } from "mds";
import { BackLink, PageHeader } from "mds";
const AddKey = () => {
const dispatch = useAppDispatch();
@@ -39,7 +38,12 @@ const AddKey = () => {
<Fragment>
<Grid item xs={12}>
<PageHeader
label={<BackLink to={IAM_PAGES.KMS_KEYS} label={"Keys"} />}
label={
<BackLink
label={"Keys"}
onClick={() => navigate(IAM_PAGES.KMS_KEYS)}
/>
}
/>
<AddKeyForm onError={onError} onSuccess={onSuccess} />
</Grid>

View File

@@ -18,10 +18,9 @@ import React, { Fragment, useState } from "react";
import { Box } from "@mui/material";
import Grid from "@mui/material/Grid";
import { AddAccessRuleIcon, Button, PageHeader } from "mds";
import { BackLink, AddAccessRuleIcon, Button, PageHeader } from "mds";
import PageLayout from "../Common/Layout/PageLayout";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import BackLink from "../../../common/BackLink";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import { ErrorResponseHandler } from "../../../common/types";
import FormLayout from "../Common/FormLayout";
@@ -70,7 +69,12 @@ const ImportKey = () => {
<Fragment>
<Grid item xs={12}>
<PageHeader
label={<BackLink to={IAM_PAGES.KMS_KEYS} label={"Keys"} />}
label={
<BackLink
onClick={() => navigate(IAM_PAGES.KMS_KEYS)}
label={"Keys"}
/>
}
/>
<PageLayout>
<FormLayout

View File

@@ -15,9 +15,6 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React, { Fragment, useEffect, useState } from "react";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { Box, Grid } from "@mui/material";
import PageLayout from "../Common/Layout/PageLayout";
import api from "../../../common/api";
@@ -51,8 +48,6 @@ import {
} from "recharts";
import { DisabledIcon, EnabledIcon, PageHeader } from "mds";
const styles = (theme: Theme) => createStyles({});
const Status = () => {
const dispatch = useAppDispatch();
const [curTab, setCurTab] = useState<number>(0);
@@ -431,4 +426,4 @@ const Status = () => {
);
};
export default withStyles(styles)(Status);
export default Status;

View File

@@ -17,19 +17,17 @@
import React, { Fragment, useEffect, useState } from "react";
import clsx from "clsx";
import CheckCircleIcon from "@mui/icons-material/CheckCircle";
import { Button } from "mds";
import { Theme, useTheme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import { SubnetInfo } from "./types";
import withStyles from "@mui/styles/withStyles";
import { Box } from "@mui/material";
import useMediaQuery from "@mui/material/useMediaQuery";
import {
AGPLV3Logo,
Button,
ConsoleEnterprise,
ConsoleStandard,
LicenseDocIcon,
} from "mds";
import { useTheme } from "@mui/material/styles";
import { SubnetInfo } from "./types";
import { Box } from "@mui/material";
import useMediaQuery from "@mui/material/useMediaQuery";
import {
COMMUNITY_PLAN_FEATURES,
ENTERPRISE_PLAN_FEATURES,
@@ -40,10 +38,7 @@ import {
STANDARD_PLAN_FEATURES,
} from "./utils";
const styles = (theme: Theme) => createStyles({});
interface IRegisterStatus {
classes: any;
activateProductModal: any;
closeModalAndFetchLicenseInfo: any;
licenseInfo: SubnetInfo | undefined;
@@ -732,4 +727,4 @@ const LicensePlans = ({ licenseInfo, operatorMode }: IRegisterStatus) => {
);
};
export default withStyles(styles)(LicensePlans);
export default LicensePlans;

View File

@@ -21,7 +21,7 @@ import Grid from "@mui/material/Grid";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import api from "../../../common/api";
import {
@@ -40,7 +40,7 @@ import { ErrorResponseHandler } from "../../../common/types";
import { IElementValue } from "../Configurations/types";
import withSuspense from "../Common/Components/withSuspense";
import BackLink from "../../../common/BackLink";
import PageLayout from "../Common/Layout/PageLayout";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import {
@@ -185,8 +185,8 @@ const AddNotificationEndpoint = ({
label={
<Fragment>
<BackLink
to={IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD}
label="Notification Endpoint"
onClick={() => navigate(IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD)}
/>
</Fragment>
}

View File

@@ -24,13 +24,12 @@ import {
settingsCommon,
typesSelection,
} from "../Common/FormComponents/common/styleLibrary";
import BackLink from "../../../common/BackLink";
import PageLayout from "../Common/Layout/PageLayout";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import ContentBox from "../Common/ContentBox";
import { Box } from "@mui/material";
import NotificationEndpointTypeSelectorHelpBox from "../Account/NotificationEndpointTypeSelectorHelpBox";
import { PageHeader } from "mds";
import { BackLink, PageHeader } from "mds";
interface INotificationTypeSelector {
classes: any;
@@ -52,8 +51,8 @@ const NotificationTypeSelector = ({ classes }: INotificationTypeSelector) => {
label={
<Fragment>
<BackLink
to={IAM_PAGES.NOTIFICATIONS_ENDPOINTS}
label="Notification Targets"
label={"Notification Targets"}
onClick={() => navigate(IAM_PAGES.NOTIFICATIONS_ENDPOINTS)}
/>
</Fragment>
}

View File

@@ -15,7 +15,6 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
import React, { Fragment } from "react";
import BackLink from "../../../common/BackLink";
import {
IAM_PAGES,
IAM_PERMISSIONS,
@@ -24,7 +23,7 @@ import {
} from "../../../common/SecureComponent/permissions";
import { SecureComponent } from "../../../common/SecureComponent";
import TooltipWrapper from "../Common/TooltipWrapper/TooltipWrapper";
import { Button, PageHeader, SettingsIcon } from "mds";
import { BackLink, Button, PageHeader, SettingsIcon } from "mds";
import { Grid } from "@mui/material";
import AutoColorIcon from "../Common/Components/AutoColorIcon";
import { useSelector } from "react-redux";
@@ -83,10 +82,6 @@ const OBHeader = ({ bucketName }: IOBHeader) => {
IAM_SCOPES.S3_PUT_ACTIONS,
]);
const openBucketConfiguration = () => {
navigate(`/buckets/${bucketName}/admin`);
};
const searchBar = (
<Fragment>
{!versionsMode ? (
@@ -118,7 +113,10 @@ const OBHeader = ({ bucketName }: IOBHeader) => {
label={
<BackLink
label={"Object Browser"}
to={IAM_PAGES.OBJECT_BROWSER_VIEW}
onClick={() => {
console.log("clicke");
navigate(IAM_PAGES.OBJECT_BROWSER_VIEW);
}}
/>
}
actions={
@@ -140,7 +138,7 @@ const OBHeader = ({ bucketName }: IOBHeader) => {
id={"configure-bucket-main"}
color="primary"
aria-label="Configure Bucket"
onClick={openBucketConfiguration}
onClick={() => navigate(`/buckets/${bucketName}/admin`)}
icon={
<SettingsIcon
style={{ width: 20, height: 20, marginTop: -3 }}

View File

@@ -17,12 +17,12 @@
import React, { Fragment, useState } from "react";
import Grid from "@mui/material/Grid";
import { Box } from "@mui/material";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import PageLayout from "../Common/Layout/PageLayout";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import AddPolicyHelpBox from "./AddPolicyHelpBox";
import CodeMirrorWrapper from "../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper";
import BackLink from "../../../common/BackLink";
import { AddAccessRuleIcon } from "mds";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
import { ErrorResponseHandler } from "../../../common/types";
@@ -82,7 +82,12 @@ const AddPolicyScreen = () => {
<Fragment>
<Grid item xs={12}>
<PageHeader
label={<BackLink to={IAM_PAGES.POLICIES} label={"Policies"} />}
label={
<BackLink
label={"Policies"}
onClick={() => navigate(IAM_PAGES.POLICIES)}
/>
}
/>
<PageLayout>
<FormLayout

View File

@@ -17,7 +17,7 @@ import React, { Fragment, useEffect, useState } from "react";
import { IAMPolicy, IAMStatement, Policy } from "./types";
import { useSelector } from "react-redux";
import { useNavigate, useParams } from "react-router-dom";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import { Theme } from "@mui/material/styles";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
@@ -41,7 +41,7 @@ import ScreenTitle from "../Common/ScreenTitle/ScreenTitle";
import { IAMPoliciesIcon, RefreshIcon, SearchIcon, TrashIcon } from "mds";
import PageLayout from "../Common/Layout/PageLayout";
import VerticalTabs from "../Common/VerticalTabs/VerticalTabs";
import BackLink from "../../../common/BackLink";
import {
CONSOLE_UI_RESOURCE,
createPolicyPermissions,
@@ -360,7 +360,10 @@ const PolicyDetails = ({ classes }: IPolicyDetailsProps) => {
<PageHeader
label={
<Fragment>
<BackLink to={IAM_PAGES.POLICIES} label={"Policy"} />
<BackLink
label={"Policy"}
onClick={() => navigate(IAM_PAGES.POLICIES)}
/>
</Fragment>
}
/>

View File

@@ -40,7 +40,7 @@ import Encryption from "./Steps/Encryption";
import Affinity from "./Steps/Affinity";
import Images from "./Steps/Images";
import PageLayout from "../../Common/Layout/PageLayout";
import BackLink from "../../../../common/BackLink";
import TenantResources from "./Steps/TenantResources/TenantResources";
import ConfigLogSearch from "./Steps/ConfigLogSearch";
import ConfigPrometheus from "./Steps/ConfigPrometheus";
@@ -48,7 +48,7 @@ import {
IMkEnvs,
resourcesConfigurations,
} from "./Steps/TenantResources/utils";
import { HelpBox, PageHeader, StorageIcon } from "mds";
import { BackLink, HelpBox, PageHeader, StorageIcon } from "mds";
import { selFeatures } from "../../consoleSlice";
import makeStyles from "@mui/styles/makeStyles";
import { resetAddTenantForm } from "./createTenantSlice";
@@ -178,11 +178,11 @@ const AddTenant = () => {
<PageHeader
label={
<BackLink
to={"/tenants"}
label={"Tenants"}
executeOnClick={() => {
onClick={() => {
dispatch(resetAddTenantForm());
navigate("/tenants");
}}
label={"Tenants"}
/>
}
/>

View File

@@ -30,13 +30,13 @@ import GenericWizard from "../../../../Common/GenericWizard/GenericWizard";
import { IWizardElement } from "../../../../Common/GenericWizard/types";
import PoolResources from "./PoolResources";
import ScreenTitle from "../../../../Common/ScreenTitle/ScreenTitle";
import { PageHeader, TenantsIcon } from "mds";
import { BackLink, PageHeader, TenantsIcon } from "mds";
import { AppState, useAppDispatch } from "../../../../../../store";
import { useSelector } from "react-redux";
import PoolConfiguration from "./PoolConfiguration";
import PoolPodPlacement from "./PoolPodPlacement";
import BackLink from "../../../../../../common/BackLink";
import { resetPoolForm } from "./addPoolSlice";
import AddPoolCreateButton from "./AddPoolCreateButton";
import makeStyles from "@mui/styles/makeStyles";
@@ -130,7 +130,10 @@ const AddPool = () => {
<PageHeader
label={
<Fragment>
<BackLink to={poolsURL} label={`Tenant Pools`} />
<BackLink
label={`Tenant Pools`}
onClick={() => navigate(poolsURL)}
/>
</Fragment>
}
/>

View File

@@ -23,8 +23,7 @@ import Grid from "@mui/material/Grid";
import PageLayout from "../../../../Common/Layout/PageLayout";
import GenericWizard from "../../../../Common/GenericWizard/GenericWizard";
import ScreenTitle from "../../../../Common/ScreenTitle/ScreenTitle";
import { PageHeader, TenantsIcon } from "mds";
import BackLink from "../../../../../../common/BackLink";
import { BackLink, PageHeader, TenantsIcon } from "mds";
import EditPoolResources from "./EditPoolResources";
import EditPoolConfiguration from "./EditPoolConfiguration";
import EditPoolPlacement from "./EditPoolPlacement";
@@ -153,7 +152,10 @@ const EditPool = () => {
<PageHeader
label={
<Fragment>
<BackLink to={poolsURL} label={`Pool Details`} />
<BackLink
label={`Pool Details`}
onClick={() => navigate(poolsURL)}
/>
</Fragment>
}
/>

View File

@@ -17,7 +17,7 @@
import React, { Fragment } from "react";
import { useSelector } from "react-redux";
import { Theme } from "@mui/material/styles";
import { useLocation } from "react-router-dom";
import { useLocation, useNavigate } from "react-router-dom";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import {
@@ -32,8 +32,9 @@ import { AppState, useAppDispatch } from "../../../../store";
import PoolsListing from "./Pools/Details/PoolsListing";
import PoolDetails from "./Pools/Details/PoolDetails";
import BackLink from "../../../../common/BackLink";
import { setOpenPoolDetails } from "../tenantsSlice";
import { BackLink } from "mds";
interface IPoolsSummary {
classes: any;
@@ -49,6 +50,8 @@ const styles = (theme: Theme) =>
const PoolsSummary = ({ classes }: IPoolsSummary) => {
const dispatch = useAppDispatch();
const navigate = useNavigate();
const { pathname = "" } = useLocation();
const selectedPool = useSelector(
@@ -63,11 +66,11 @@ const PoolsSummary = ({ classes }: IPoolsSummary) => {
{poolDetailsOpen && (
<Grid item xs={12}>
<BackLink
executeOnClick={() => {
label={"Pools list"}
onClick={() => {
navigate(pathname);
dispatch(setOpenPoolDetails(false));
}}
label={"Pools list"}
to={pathname}
/>
</Grid>
)}

View File

@@ -16,7 +16,7 @@
import React, { Fragment, useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import {
Link,
Navigate,
@@ -41,7 +41,7 @@ import { niceBytes } from "../../../../common/utils";
import ScreenTitle from "../../Common/ScreenTitle/ScreenTitle";
import { EditIcon, RefreshIcon, TenantsIcon } from "mds";
import PageLayout from "../../Common/Layout/PageLayout";
import BackLink from "../../../../common/BackLink";
import VerticalTabs from "../../Common/VerticalTabs/VerticalTabs";
import withSuspense from "../../Common/Components/withSuspense";
import { IAM_PAGES } from "../../../../common/SecureComponent/permissions";
@@ -265,7 +265,10 @@ const TenantDetails = ({ classes }: ITenantDetailsProps) => {
<PageHeader
label={
<Fragment>
<BackLink to={IAM_PAGES.TENANTS} label="Tenants" />
<BackLink
label="Tenants"
onClick={() => navigate(IAM_PAGES.TENANTS)}
/>
</Fragment>
}
actions={<React.Fragment />}

View File

@@ -16,7 +16,7 @@
import React, { Fragment } from "react";
import { Theme } from "@mui/material/styles";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import UserSelector from "./UserSelector";
@@ -33,7 +33,7 @@ import { CreateUserIcon } from "mds";
import PageLayout from "../Common/Layout/PageLayout";
import PolicySelectors from "../Policies/PolicySelectors";
import BackLink from "../../../common/BackLink";
import GroupsSelectors from "./GroupsSelectors";
import { IAM_PAGES } from "../../../common/SecureComponent/permissions";
@@ -116,7 +116,14 @@ const AddUser = ({ classes }: IAddUserProps) => {
return (
<Fragment>
<Grid item xs={12}>
<PageHeader label={<BackLink to={IAM_PAGES.USERS} label={"Users"} />} />
<PageHeader
label={
<BackLink
label={"Users"}
onClick={() => navigate(IAM_PAGES.USERS)}
/>
}
/>
<PageLayout>
<FormLayout
title={"Create User"}

View File

@@ -17,7 +17,7 @@
import React, { Fragment, useEffect, useState } from "react";
import { Theme } from "@mui/material/styles";
import { useNavigate, useParams } from "react-router-dom";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import {
@@ -35,7 +35,7 @@ import CodeMirrorWrapper from "../Common/FormComponents/CodeMirrorWrapper/CodeMi
import PageLayout from "../Common/Layout/PageLayout";
import InputBoxWrapper from "../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
import BackLink from "../../../common/BackLink";
import { NewServiceAccount } from "../Common/CredentialsPrompt/types";
import RemoveRedEyeIcon from "@mui/icons-material/RemoveRedEye";
@@ -175,7 +175,9 @@ const AddServiceAccount = ({ classes }: IAddServiceAccountProps) => {
<PageHeader
label={
<BackLink
to={`${IAM_PAGES.USERS}/${encodeURLString(userName)}`}
onClick={() =>
navigate(`${IAM_PAGES.USERS}/${encodeURLString(userName)}`)
}
label={"User Details - " + userName}
/>
}

View File

@@ -17,7 +17,7 @@
import React, { Fragment, useCallback, useEffect, useState } from "react";
import { useNavigate, useParams } from "react-router-dom";
import { Theme } from "@mui/material/styles";
import { Button, PageHeader } from "mds";
import { BackLink, Button, PageHeader } from "mds";
import createStyles from "@mui/styles/createStyles";
import withStyles from "@mui/styles/withStyles";
import { Grid } from "@mui/material";
@@ -49,7 +49,6 @@ import PanelTitle from "../Common/PanelTitle/PanelTitle";
import PageLayout from "../Common/Layout/PageLayout";
import VerticalTabs from "../Common/VerticalTabs/VerticalTabs";
import FormSwitchWrapper from "../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
import BackLink from "../../../common/BackLink";
import { decodeURLString, encodeURLString } from "../../../common/utils";
import { setModalErrorSnackMessage } from "../../../systemSlice";
@@ -235,7 +234,10 @@ const UserDetails = ({ classes }: IUserDetailsProps) => {
<PageHeader
label={
<Fragment>
<BackLink label={"Users"} to={IAM_PAGES.USERS} />
<BackLink
label={"Users"}
onClick={() => navigate(IAM_PAGES.USERS)}
/>
</Fragment>
}
actions={<React.Fragment></React.Fragment>}