Skip to content

Commit 0af944b

Browse files
committed
#RI-2719 - Search dabases list
#RI-3039 - Database index info overview #RI-2989 - About 2021
1 parent 0bfd057 commit 0af944b

File tree

30 files changed

+603
-415
lines changed

30 files changed

+603
-415
lines changed

redisinsight/ui/src/assets/img/dark_logo.svg

Lines changed: 8 additions & 111 deletions
Loading

redisinsight/ui/src/assets/img/light_logo.svg

Lines changed: 8 additions & 112 deletions
Loading

redisinsight/ui/src/components/database-overview/DatabaseOverviewWrapper.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ interface IProps { windowDimensions: number }
1717
const DatabaseOverviewWrapper = ({ windowDimensions } :IProps) => {
1818
let interval: NodeJS.Timeout
1919
const { theme } = useContext(ThemeContext)
20-
const { id: connectedInstanceId = '', modules = [], isRediStack } = useSelector(connectedInstanceSelector)
20+
const { id: connectedInstanceId = '', modules = [], isRediStack, db } = useSelector(connectedInstanceSelector)
2121
const overview = useSelector(connectedInstanceOverviewSelector)
2222

2323
const dispatch = useDispatch()
@@ -38,7 +38,7 @@ const DatabaseOverviewWrapper = ({ windowDimensions } :IProps) => {
3838
return (
3939
<DatabaseOverview
4040
modules={modules}
41-
metrics={getOverviewMetrics({ theme, items: overview })}
41+
metrics={getOverviewMetrics({ theme, items: overview, db })}
4242
windowDimensions={windowDimensions}
4343
isRediStack={isRediStack}
4444
/>

redisinsight/ui/src/components/database-overview/components/OverviewMetrics/OverviewMetrics.tsx

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { ReactNode } from 'react'
22
import { EuiLoadingSpinner } from '@elastic/eui'
3-
import { isArray, isUndefined } from 'lodash'
3+
import { isArray, isUndefined, toNumber } from 'lodash'
44

55
import { formatBytes, Nullable, truncateNumberToRange, truncatePercentage } from 'uiSrc/utils'
66
import { Theme } from 'uiSrc/constants'
@@ -25,46 +25,49 @@ import {
2525
import styles from './styles.module.scss'
2626

2727
interface Props {
28-
theme: string;
28+
theme: string
29+
db?: number
2930
items: {
3031
version: string,
31-
usedMemory?: Nullable<number>;
32-
totalKeys?: Nullable<number>;
33-
connectedClients?: Nullable<number>;
34-
opsPerSecond?: Nullable<number>;
35-
networkInKbps?: Nullable<number>;
36-
networkOutKbps?: Nullable<number>;
37-
cpuUsagePercentage?: Nullable<number>;
38-
};
32+
usedMemory?: Nullable<number>
33+
totalKeys?: Nullable<number>
34+
connectedClients?: Nullable<number>
35+
opsPerSecond?: Nullable<number>
36+
networkInKbps?: Nullable<number>
37+
networkOutKbps?: Nullable<number>
38+
cpuUsagePercentage?: Nullable<number>
39+
totalKeysPerDb?: Nullable<{ [key: string]: number }>
40+
}
3941
}
4042

4143
export interface IMetric {
42-
id: string;
43-
content: ReactNode;
44-
value: any;
45-
unavailableText: string;
46-
title: string;
44+
id: string
45+
content: ReactNode
46+
value: any
47+
unavailableText: string
48+
title: string
4749
tooltip: {
48-
title?: string;
49-
icon: Nullable<string>;
50-
content: ReactNode | string;
51-
};
52-
loading?: boolean;
53-
groupId?: string;
54-
icon?: Nullable<string>;
55-
className?: string;
50+
title?: string
51+
icon: Nullable<string>
52+
content: ReactNode | string
53+
}
54+
loading?: boolean
55+
groupId?: string
56+
icon?: Nullable<string>
57+
className?: string
5658
children?: Array<IMetric>
5759
}
5860

59-
export const getOverviewMetrics = ({ theme, items }: Props): Array<IMetric> => {
61+
export const getOverviewMetrics = ({ theme, items, db = 0 }: Props): Array<IMetric> => {
6062
const {
6163
usedMemory,
6264
totalKeys,
6365
connectedClients,
6466
cpuUsagePercentage,
6567
opsPerSecond,
6668
networkInKbps,
67-
networkOutKbps
69+
networkOutKbps,
70+
totalKeysPerDb = {},
6871
} = items
6972

7073
const availableItems: Array<IMetric> = []
@@ -208,7 +211,7 @@ export const getOverviewMetrics = ({ theme, items }: Props): Array<IMetric> => {
208211
})
209212

210213
// Total keys
211-
availableItems.push({
214+
const totalKeysItem: any = {
212215
id: 'overview-total-keys',
213216
value: totalKeys,
214217
unavailableText: 'Total Keys are not available',
@@ -220,7 +223,38 @@ export const getOverviewMetrics = ({ theme, items }: Props): Array<IMetric> => {
220223
},
221224
icon: theme === Theme.Dark ? KeyDarkIcon : KeyLightIcon,
222225
content: truncateNumberToRange(totalKeys || 0),
223-
})
226+
}
227+
228+
// keys in the logical database
229+
const dbKeysCount = totalKeysPerDb?.[`db${db || 0}`]
230+
if (!isUndefined(dbKeysCount) && dbKeysCount < toNumber(totalKeys)) {
231+
totalKeysItem.children = [
232+
{
233+
id: 'total-keys-tip',
234+
value: totalKeys,
235+
unavailableText: 'Total Keys are not available',
236+
title: 'Total Keys',
237+
tooltip: {
238+
title: 'Total Keys',
239+
content: (<b>{numberWithSpaces(totalKeys || 0)}</b>),
240+
},
241+
content: truncateNumberToRange(totalKeys || 0),
242+
},
243+
{
244+
id: 'overview-db-total-keys',
245+
title: 'Keys',
246+
value: dbKeysCount,
247+
content: (
248+
<>
249+
<span style={{ fontWeight: 200, paddingRight: 1 }}>db{db || 0}:</span>
250+
<b>{numberWithSpaces(dbKeysCount || 0)}</b>
251+
</>
252+
),
253+
},
254+
]
255+
}
256+
257+
availableItems.push(totalKeysItem)
224258

225259
const getConnectedClient = (connectedClients: number = 0) =>
226260
(Number.isInteger(connectedClients) ? connectedClients : `~${Math.round(connectedClients)}`)

redisinsight/ui/src/components/navigation-menu/NavigationMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ const NavigationMenu = () => {
267267
position="right"
268268
>
269269
<span className={cx(styles.iconNavItem, styles.homeIcon)}>
270-
<EuiLink {...getRouterLinkProps(Pages.home)} data-test-subj="home-page-btn">
270+
<EuiLink {...getRouterLinkProps(Pages.home)} className={styles.logo} data-test-subj="home-page-btn">
271271
<EuiIcon aria-label="redisinsight home page" type={LogoSVG} />
272272
</EuiLink>
273273
</span>

redisinsight/ui/src/components/navigation-menu/styles.module.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,12 @@ $sideBarWidth: 60px;
196196
font-size: 13px !important;
197197
line-height: 1.35 !important;
198198
}
199+
200+
.logo {
201+
&:hover {
202+
transform: translateY(-1px);
203+
}
204+
&:active {
205+
transform: translateY(1px);
206+
}
207+
}

redisinsight/ui/src/components/page-header/PageHeader.module.scss

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
@import '@elastic/eui/src/global_styling/index';
1+
@import "@elastic/eui/src/global_styling/index";
22

33
.pageHeader {
4-
background-color: var(--euiColorEmptyShade);
5-
border-bottom: 1px solid var(--euiColorLightShade);
64
}
75

86
.pageHeaderTop {
97
display: flex;
108
justify-content: space-between;
119
align-items: center;
1210
width: 100%;
13-
padding: 8px 16px;
14-
@include euiBreakpoint('s', 'xs') {
15-
flex-direction: column-reverse;
16-
> div {
17-
width: 100%;
18-
}
19-
.pageHeaderLogo {
20-
display: flex;
21-
justify-content: center;
22-
}
11+
padding: 12px 4px 4px 18px;
12+
13+
@include euiBreakpoint("m", "l", "xl") {
14+
padding: 8px 14px;
15+
}
16+
}
17+
18+
.title {
19+
font-size: 24px;
20+
@include euiBreakpoint("m", "l", "xl") {
21+
padding-left: 12px;
2322
}
2423
}
2524

redisinsight/ui/src/components/page-header/PageHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const PageHeader = ({ title, subtitle, children }: Props) => {
4141
<div className={styles.pageHeader}>
4242
<div className={styles.pageHeaderTop}>
4343
<div>
44-
<EuiTitle size="s">
44+
<EuiTitle size="s" className={styles.title}>
4545
<h1>
4646
<b>{title}</b>
4747
</h1>

redisinsight/ui/src/pages/home/HomePage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { sendEventTelemetry, sendPageViewTelemetry, TelemetryEvent, TelemetryPag
2121
import AddDatabaseContainer from './components/AddDatabases/AddDatabasesContainer'
2222
import DatabasesList from './components/DatabasesListComponent/DatabasesListWrapper'
2323
import WelcomeComponent from './components/WelcomeComponent/WelcomeComponent'
24-
import AddInstanceControls from './components/AddInstanceControls/AddInstanceControls'
24+
import HomeHeader from './components/HomeHeader'
2525

2626
import './styles.scss'
2727
import styles from './styles.module.scss'
@@ -180,9 +180,9 @@ const HomePage = () => {
180180
<div />
181181
<EuiResizeObserver onResize={onResize}>
182182
{(resizeRef) => (
183-
<EuiPage>
183+
<EuiPage className={styles.page}>
184184
<EuiPageBody component="div">
185-
<AddInstanceControls
185+
<HomeHeader
186186
key="instance-controls"
187187
onAddInstance={handleAddInstance}
188188
direction="row"

redisinsight/ui/src/pages/home/components/AddInstanceControls/styles.module.scss

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)