Skip to content

Commit 8fd1e0d

Browse files
authored
Fixed widgets overlaps & some style adjustments in Dashboard (#1087)
Signed-off-by: Benjamin Perez <[email protected]>
1 parent 3d27cd2 commit 8fd1e0d

File tree

9 files changed

+131
-68
lines changed

9 files changed

+131
-68
lines changed

portal-ui/src/screens/Console/Common/FormComponents/common/styleLibrary.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ export const radioIcons = {
132132

133133
export const containerForHeader = (bottomSpacing: any) => ({
134134
container: {
135+
position: "relative" as const,
135136
padding: "8px 16px 0",
136137
"& h6": {
137138
color: "#777777",
@@ -417,6 +418,7 @@ export const widgetCommon = {
417418
minWidth: 280,
418419
maxWidth: 1185,
419420
border: "#eef1f4 2px solid",
421+
backgroundColor: "#fff",
420422
borderRadius: 10,
421423
width: "100%",
422424
padding: 16,
@@ -470,6 +472,19 @@ export const widgetCommon = {
470472
},
471473
};
472474

475+
export const widgetContainerCommon = {
476+
widgetPanelDelimiter: {
477+
padding: 10,
478+
},
479+
dashboardRow: {
480+
display: "flex" as const,
481+
flexDirection: "row" as const,
482+
justifyContent: "flex-start" as const,
483+
flexWrap: "wrap" as const,
484+
maxWidth: 1180,
485+
},
486+
};
487+
473488
export const tooltipCommon = {
474489
customTooltip: {
475490
backgroundColor: "rgba(255, 255, 255, 0.90)",

portal-ui/src/screens/Console/Dashboard/BasicDashboard/BasicDashboard.tsx

Lines changed: 65 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import DriveInfoCard from "./DriveInfoCard";
2525
import CommonCard from "../CommonCard";
2626
import TabSelector from "../../Common/TabSelector/TabSelector";
2727
import GeneralUsePaginator from "../../Common/GeneralUsePaginator/GeneralUsePaginator";
28+
import { widgetContainerCommon } from "../../Common/FormComponents/common/styleLibrary";
2829

2930
const styles = (theme: Theme) =>
3031
createStyles({
@@ -48,6 +49,7 @@ const styles = (theme: Theme) =>
4849
maxWidth: 1185,
4950
width: "100%",
5051
},
52+
...widgetContainerCommon,
5153
});
5254

5355
interface IDashboardProps {
@@ -93,10 +95,12 @@ const BasicDashboard = ({ classes, usage }: IDashboardProps) => {
9395
}
9496
return 0;
9597
});
96-
} else return [];
98+
}
99+
100+
return [];
97101
};
98102

99-
const serverArray = makeServerArray(usage);
103+
const serverArray = makeServerArray(usage || null);
100104

101105
const usageToRepresent = prettyUsage(
102106
usage && usage.usage ? usage.usage.toString() : "0"
@@ -129,29 +133,65 @@ const BasicDashboard = ({ classes, usage }: IDashboardProps) => {
129133
<Grid item xs={12} className={classes.generalStatusTitle}>
130134
General Status
131135
</Grid>
132-
<Grid item xs={12} className={classes.generalStatusCards}>
133-
<CommonCard
134-
title={"All Buckets"}
135-
metricValue={usage ? prettyNumber(usage.buckets) : 0}
136-
extraMargin
137-
/>
138-
<CommonCard
139-
title={"Usage"}
140-
metricValue={usageToRepresent.total}
141-
metricUnit={usageToRepresent.unit}
142-
extraMargin
143-
/>
144-
<CommonCard
145-
title={"Total Objects"}
146-
metricValue={usage ? prettyNumber(usage.objects) : 0}
147-
extraMargin
148-
/>
149-
<CommonCard
150-
title={"Servers"}
151-
metricValue={usage ? prettyNumber(serverArray.length) : 0}
152-
subMessage={{ message: "Total" }}
153-
extraMargin
154-
/>
136+
<Grid item xs={12} className={classes.dashboardRow}>
137+
<Grid
138+
item
139+
xs={7}
140+
sm={8}
141+
md={6}
142+
lg={3}
143+
className={classes.widgetPanelDelimiter}
144+
>
145+
<CommonCard
146+
title={"All Buckets"}
147+
metricValue={usage ? prettyNumber(usage.buckets) : 0}
148+
extraMargin
149+
/>
150+
</Grid>
151+
<Grid
152+
item
153+
xs={7}
154+
sm={8}
155+
md={6}
156+
lg={3}
157+
className={classes.widgetPanelDelimiter}
158+
>
159+
<CommonCard
160+
title={"Usage"}
161+
metricValue={usageToRepresent.total}
162+
metricUnit={usageToRepresent.unit}
163+
extraMargin
164+
/>
165+
</Grid>
166+
<Grid
167+
item
168+
xs={7}
169+
sm={8}
170+
md={6}
171+
lg={3}
172+
className={classes.widgetPanelDelimiter}
173+
>
174+
<CommonCard
175+
title={"Total Objects"}
176+
metricValue={usage ? prettyNumber(usage.objects) : 0}
177+
extraMargin
178+
/>
179+
</Grid>
180+
<Grid
181+
item
182+
xs={7}
183+
sm={8}
184+
md={6}
185+
lg={3}
186+
className={classes.widgetPanelDelimiter}
187+
>
188+
<CommonCard
189+
title={"Servers"}
190+
metricValue={usage ? prettyNumber(serverArray.length) : 0}
191+
subMessage={{ message: "Total" }}
192+
extraMargin
193+
/>
194+
</Grid>
155195
</Grid>
156196
<Grid item xs={12}>
157197
<TabSelector

portal-ui/src/screens/Console/Dashboard/Chart.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default function Chart() {
3232
return (
3333
<React.Fragment>
3434
<Title>Today</Title>
35-
<ResponsiveContainer>
35+
<ResponsiveContainer width="99%">
3636
<LineChart
3737
data={data}
3838
margin={{

portal-ui/src/screens/Console/Dashboard/CommonCard.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ const styles = (theme: Theme) =>
4646
...widgetCommon,
4747
cardRoot: {
4848
...widgetCommon.singleValueContainer,
49-
maxWidth: 280,
49+
"&.MuiPaper-root": {
50+
borderRadius: 10,
51+
},
5052
},
5153
cardsContainer: {
5254
maxHeight: 440,

portal-ui/src/screens/Console/Dashboard/Prometheus/PrDashboard.tsx

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ import Grid from "@material-ui/core/Grid";
2020
import ScheduleIcon from "@material-ui/icons/Schedule";
2121
import WatchLaterIcon from "@material-ui/icons/WatchLater";
2222
import { createStyles, Theme, withStyles } from "@material-ui/core/styles";
23-
import { Button } from "@material-ui/core";
24-
import { actionsTray } from "../../Common/FormComponents/common/styleLibrary";
23+
import { Button, GridSize } from "@material-ui/core";
24+
import {
25+
actionsTray,
26+
widgetContainerCommon,
27+
} from "../../Common/FormComponents/common/styleLibrary";
2528
import { IDashboardPanel, widgetType } from "./types";
2629
import { getWidgetsWithValue, panelsConfiguration } from "./utils";
2730
import { TabPanel } from "../../../shared/tabs";
@@ -48,13 +51,7 @@ interface IPrDashboard {
4851
const styles = (theme: Theme) =>
4952
createStyles({
5053
...actionsTray,
51-
widgetsContainer: {
52-
position: "relative",
53-
display: "flex",
54-
flexGrow: 1,
55-
width: "100%",
56-
height: "100%",
57-
},
54+
...widgetContainerCommon,
5855
syncButton: {
5956
"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-child": {
6057
fontSize: 18,
@@ -71,9 +68,6 @@ const styles = (theme: Theme) =>
7168
flexWrap: "wrap",
7269
maxWidth: 1180,
7370
},
74-
widgetPanelDelimiter: {
75-
margin: 10,
76-
},
7771
schedulerIcon: {
7872
opacity: 0.4,
7973
fontSize: 10,
@@ -183,7 +177,13 @@ const PrDashboard = ({
183177
return filterPanels?.map((panelLine, indexLine) => {
184178
const totalPanelsContained = panelLine.length;
185179

186-
const perc = 100 / totalPanelsContained;
180+
let perc = Math.floor(12 / totalPanelsContained);
181+
182+
if (perc < 1) {
183+
perc = 1;
184+
} else if (perc > 12) {
185+
perc = 12;
186+
}
187187

188188
return (
189189
<Grid
@@ -198,33 +198,39 @@ const PrDashboard = ({
198198
);
199199

200200
return (
201-
<div
201+
<Grid
202202
key={`widget-${panelInline}-${indexPanel}`}
203203
className={classes.widgetPanelDelimiter}
204-
style={{ width: `calc(${perc}% - 20px)` }}
204+
item
205+
xs={7}
206+
sm={8}
207+
md={6}
208+
lg={perc as GridSize}
205209
>
206-
{panelInfo ? (
207-
<Fragment>
208-
{panelInfo.mergedPanels ? (
209-
<Fragment>
210-
<MergedWidgets
211-
title={panelInfo.title}
212-
leftComponent={componentToUse(
213-
panelInfo.mergedPanels[0],
214-
0
215-
)}
216-
rightComponent={componentToUse(
217-
panelInfo.mergedPanels[1],
218-
1
219-
)}
220-
/>
221-
</Fragment>
222-
) : (
223-
componentToUse(panelInfo, indexPanel)
224-
)}
225-
</Fragment>
226-
) : null}
227-
</div>
210+
<Grid item xs={12}>
211+
{panelInfo ? (
212+
<Fragment>
213+
{panelInfo.mergedPanels ? (
214+
<Fragment>
215+
<MergedWidgets
216+
title={panelInfo.title}
217+
leftComponent={componentToUse(
218+
panelInfo.mergedPanels[0],
219+
0
220+
)}
221+
rightComponent={componentToUse(
222+
panelInfo.mergedPanels[1],
223+
1
224+
)}
225+
/>
226+
</Fragment>
227+
) : (
228+
componentToUse(panelInfo, indexPanel)
229+
)}
230+
</Fragment>
231+
) : null}
232+
</Grid>
233+
</Grid>
228234
);
229235
})}
230236
</Grid>

portal-ui/src/screens/Console/Dashboard/Prometheus/Widgets/BarChartWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ const BarChartWidget = ({
156156
)}
157157
{!loading && (
158158
<div className={classes.contentContainer}>
159-
<ResponsiveContainer>
159+
<ResponsiveContainer width="99%">
160160
<BarChart
161161
data={data as object[]}
162162
layout={"vertical"}

portal-ui/src/screens/Console/Dashboard/Prometheus/Widgets/LinearGraphWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ const LinearGraphWidget = ({
181181
{!loading && (
182182
<React.Fragment>
183183
<div className={classes.chartCont}>
184-
<ResponsiveContainer>
184+
<ResponsiveContainer width="99%">
185185
<AreaChart
186186
data={data}
187187
margin={{

portal-ui/src/screens/Console/Dashboard/Prometheus/Widgets/PieChartWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ const PieChartWidget = ({
143143
{middleLabel && splitSizeMetric(middleLabel)}
144144
</span>
145145
<div className={classes.chartContainer}>
146-
<ResponsiveContainer>
146+
<ResponsiveContainer width="99%">
147147
<PieChart margin={{ top: 5, bottom: 5 }}>
148148
{dataOuter && (
149149
<Pie

portal-ui/src/screens/Console/Dashboard/Prometheus/Widgets/SingleRepWidget.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ const SingleRepWidget = ({
119119
)}
120120
{!loading && (
121121
<div className={classes.contentContainer}>
122-
<ResponsiveContainer>
122+
<ResponsiveContainer width="99%">
123123
<AreaChart data={data}>
124124
<defs>
125125
<linearGradient id={gradientID} x1="0" y1="0" x2="0" y2="1">

0 commit comments

Comments
 (0)