|
@@ -1,6 +1,6 @@
|
|
|
import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
|
import { Link, useSearchParams } from 'react-router-dom';
|
|
|
-import { makeStyles, Theme } from '@material-ui/core';
|
|
|
+import { makeStyles, Theme, Chip, Tooltip } from '@material-ui/core';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
|
import Highlighter from 'react-highlight-words';
|
|
|
import {
|
|
@@ -62,6 +62,10 @@ const useStyles = makeStyles((theme: Theme) => ({
|
|
|
color: theme.palette.primary.main,
|
|
|
backgroundColor: 'transparent',
|
|
|
},
|
|
|
+ chip: {
|
|
|
+ color: theme.palette.text.primary,
|
|
|
+ marginRight: theme.spacing(0.5),
|
|
|
+ },
|
|
|
}));
|
|
|
|
|
|
const Collections = () => {
|
|
@@ -90,6 +94,13 @@ const Collections = () => {
|
|
|
const InfoIcon = icons.info;
|
|
|
const SourceIcon = icons.source;
|
|
|
|
|
|
+ const consistencyTooltipsMap: Record<string, string> = {
|
|
|
+ Strong: collectionTrans('consistencyStrongTooltip'),
|
|
|
+ Bounded: collectionTrans('consistencyBoundedTooltip'),
|
|
|
+ Session: collectionTrans('consistencySessionTooltip'),
|
|
|
+ Eventually: collectionTrans('consistencyEventuallyTooltip'),
|
|
|
+ };
|
|
|
+
|
|
|
const fetchData = useCallback(async () => {
|
|
|
try {
|
|
|
setLoading(true);
|
|
@@ -137,6 +148,47 @@ const Collections = () => {
|
|
|
/>
|
|
|
</Link>
|
|
|
),
|
|
|
+ features: (
|
|
|
+ <>
|
|
|
+ {v._autoId ? (
|
|
|
+ <Tooltip
|
|
|
+ title={collectionTrans('autoIDTooltip')}
|
|
|
+ placement="top"
|
|
|
+ arrow
|
|
|
+ >
|
|
|
+ <Chip
|
|
|
+ className={classes.chip}
|
|
|
+ label={collectionTrans('autoID')}
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </Tooltip>
|
|
|
+ ) : null}
|
|
|
+ {v._enableDynamicField ? (
|
|
|
+ <Tooltip
|
|
|
+ title={collectionTrans('dynamicSchemaTooltip')}
|
|
|
+ placement="top"
|
|
|
+ arrow
|
|
|
+ >
|
|
|
+ <Chip
|
|
|
+ className={classes.chip}
|
|
|
+ label={collectionTrans('dynmaicSchema')}
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </Tooltip>
|
|
|
+ ) : null}
|
|
|
+ <Tooltip
|
|
|
+ title={consistencyTooltipsMap[v._consistencyLevel]}
|
|
|
+ placement="top"
|
|
|
+ arrow
|
|
|
+ >
|
|
|
+ <Chip
|
|
|
+ className={classes.chip}
|
|
|
+ label={v._consistencyLevel}
|
|
|
+ size="small"
|
|
|
+ />
|
|
|
+ </Tooltip>
|
|
|
+ </>
|
|
|
+ ),
|
|
|
statusElement: (
|
|
|
<Status status={v._status} percentage={v._loadedPercentage} />
|
|
|
),
|
|
@@ -360,6 +412,13 @@ const Collections = () => {
|
|
|
sortBy: '_status',
|
|
|
label: collectionTrans('status'),
|
|
|
},
|
|
|
+ {
|
|
|
+ id: 'features',
|
|
|
+ align: 'left',
|
|
|
+ disablePadding: true,
|
|
|
+ sortBy: '_enableDynamicField',
|
|
|
+ label: collectionTrans('features'),
|
|
|
+ },
|
|
|
{
|
|
|
id: '_rowCount',
|
|
|
align: 'left',
|
|
@@ -374,19 +433,19 @@ const Collections = () => {
|
|
|
),
|
|
|
},
|
|
|
|
|
|
- {
|
|
|
- id: 'consistency_level',
|
|
|
- align: 'left',
|
|
|
- disablePadding: false,
|
|
|
- label: (
|
|
|
- <span className="flex-center">
|
|
|
- {collectionTrans('consistencyLevel')}
|
|
|
- <CustomToolTip title={collectionTrans('consistencyLevelInfo')}>
|
|
|
- <InfoIcon classes={{ root: classes.icon }} />
|
|
|
- </CustomToolTip>
|
|
|
- </span>
|
|
|
- ),
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // id: 'consistency_level',
|
|
|
+ // align: 'left',
|
|
|
+ // disablePadding: true,
|
|
|
+ // label: (
|
|
|
+ // <span className="flex-center">
|
|
|
+ // {collectionTrans('consistency')}
|
|
|
+ // <CustomToolTip title={collectionTrans('consistencyLevelInfo')}>
|
|
|
+ // <InfoIcon classes={{ root: classes.icon }} />
|
|
|
+ // </CustomToolTip>
|
|
|
+ // </span>
|
|
|
+ // ),
|
|
|
+ // },
|
|
|
|
|
|
{
|
|
|
id: '_desc',
|
|
@@ -480,7 +539,7 @@ const Collections = () => {
|
|
|
];
|
|
|
|
|
|
if (!isManaged) {
|
|
|
- colDefinitions.splice(3, 0, {
|
|
|
+ colDefinitions.splice(4, 0, {
|
|
|
id: '_aliasElement',
|
|
|
align: 'left',
|
|
|
disablePadding: false,
|