Skip to content

Commit 667e3d4

Browse files
newfish-cmykmaslow
andauthored
chore(web): hide database policy when no policy (#1766)
Co-authored-by: maslow <[email protected]>
1 parent 208a683 commit 667e3d4

File tree

6 files changed

+39
-70
lines changed

6 files changed

+39
-70
lines changed

web/public/locales/en/translation.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"EmptyCollectionTip": "You have not created a collection",
2929
"EmptyDataText": "No data information,",
3030
"EmptyPolicyTip": "You have not created a policy",
31-
"EmptyRuleTip": "This policy has no rules yet,",
31+
"EmptyRuleTip": "This policy has no rules",
3232
"Query": "Please input the MongoDb query statement, press Enter to query. For example: { _id: ObjectId('') }.",
3333
"Search": "Please enter ID to search",
3434
"CreateTagTip": "Press \"Enter\" to separate tags, each tag can be up to 16 characters",
@@ -730,4 +730,5 @@
730730
"Title": "Laf is ready to update!",
731731
"Description": "Click to update"
732732
}
733-
}
733+
}
734+

web/public/locales/zh-CN/translation.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"EmptyCollectionTip": "您还没有创建集合",
3232
"EmptyDataText": "暂无数据信息,",
3333
"EmptyPolicyTip": "您还没有创建策略",
34-
"EmptyRuleTip": "此策略还没有规则,",
34+
"EmptyRuleTip": "此策略没有规则",
3535
"CreateTagTip": "按「回车键」输入标签,每个标签最多由16个字符组成",
3636
"IndexManage": "索引管理",
3737
"ConfirmDeleteIndex": "确定删除该索引吗?",

web/public/locales/zh/translation.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"EmptyCollectionTip": "您还没有创建集合",
3232
"EmptyDataText": "暂无数据信息,",
3333
"EmptyPolicyTip": "您还没有创建策略",
34-
"EmptyRuleTip": "此策略还没有规则,",
34+
"EmptyRuleTip": "此策略没有规则",
3535
"CreateTagTip": "按「回车键」输入标签,每个标签最多由16个字符组成",
3636
"IndexManage": "索引管理",
3737
"ConfirmDeleteIndex": "确定删除该索引吗?",
@@ -730,4 +730,4 @@
730730
"Title": "Laf 新版本已经准备好了!",
731731
"Description": "点击立即更新"
732732
}
733-
}
733+
}

web/src/pages/app/database/PolicyDataList/index.tsx

+2-31
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useEffect, useState } from "react";
2-
import { AddIcon } from "@chakra-ui/icons";
3-
import { Button, Center, Input, Spinner, Text, useColorMode } from "@chakra-ui/react";
2+
import { Center, Input, Spinner, Text, useColorMode } from "@chakra-ui/react";
43
import clsx from "clsx";
54
import { t } from "i18next";
65

@@ -14,7 +13,6 @@ import Panel from "@/components/Panel";
1413
import { COLOR_MODE } from "@/constants";
1514

1615
import AddPolicyModal from "../mods/AddPolicyModal";
17-
import AddRulesModal from "../mods/AddRulesModal";
1816
import policyTemplate from "../mods/AddRulesModal/policyTemplate";
1917
import RightPanelEditBox from "../RightComponent/EditBox";
2018
import RightPanelList from "../RightComponent/List";
@@ -87,23 +85,7 @@ export default function PolicyDataList() {
8785
return (
8886
<>
8987
<Panel.Header className="h-[60px] w-full flex-shrink-0 pr-2">
90-
<AddRulesModal
91-
onSuccessSubmit={(data) => {
92-
setCurrentData(data);
93-
setRecord(JSON.stringify(data?.value, null, 2));
94-
rulesListQuery.refetch();
95-
}}
96-
>
97-
<Button
98-
disabled={store.currentPolicy === undefined}
99-
leftIcon={<AddIcon fontSize={10} className="text-grayModern-500" />}
100-
variant="textGhost"
101-
size="xs"
102-
>
103-
{t("CollectionPanel.AddRules")}
104-
</Button>
105-
</AddRulesModal>
106-
<span>
88+
<span className="flex w-full justify-end">
10789
{t("CollectionPanel.RulesNum")} : {rulesListQuery?.data?.data?.length || 0}
10890
</span>
10991
</Panel.Header>
@@ -200,17 +182,6 @@ export default function PolicyDataList() {
200182
<EmptyBox>
201183
<div>
202184
<span>{t("CollectionPanel.EmptyRuleTip")}</span>
203-
<AddRulesModal
204-
onSuccessSubmit={(data) => {
205-
setCurrentData(data);
206-
setRecord(JSON.stringify(data.value, null, 2));
207-
rulesListQuery.refetch();
208-
}}
209-
>
210-
<span className="ml-2 cursor-pointer text-primary-600 hover:border-b-2 hover:border-primary-600">
211-
{t("CreateNow")}
212-
</span>
213-
</AddRulesModal>
214185
</div>
215186
</EmptyBox>
216187
)}

web/src/pages/app/database/PolicyListPanel/index.tsx

+7-24
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
* cloud functions list sidebar
33
***************************/
44
import { useTranslation } from "react-i18next";
5-
import { AddIcon } from "@chakra-ui/icons";
65
import { useColorMode } from "@chakra-ui/react";
76
import clsx from "clsx";
87

@@ -11,47 +10,31 @@ import ConfirmButton from "@/components/ConfirmButton";
1110
import EmptyBox from "@/components/EmptyBox";
1211
import FileTypeIcon from "@/components/FileTypeIcon";
1312
import IconText from "@/components/IconText";
14-
import IconWrap from "@/components/IconWrap";
1513
import MoreButton from "@/components/MoreButton";
1614
import Panel from "@/components/Panel";
1715
import SectionList from "@/components/SectionList";
1816

19-
import AddPolicyModal from "../mods/AddPolicyModal";
20-
import { useDeletePolicyMutation, usePolicyListQuery } from "../service";
17+
import { useDeletePolicyMutation } from "../service";
2118
import useDBMStore from "../store";
22-
export default function PolicyListPanel() {
19+
export default function PolicyListPanel(props: { policyList: any }) {
20+
const { policyList } = props;
2321
const { t } = useTranslation();
2422
const deletePolicyMutation = useDeletePolicyMutation();
2523
const store = useDBMStore((state) => state);
2624
const darkMode = useColorMode().colorMode === "dark";
27-
const policyQuery = usePolicyListQuery((data) => {
28-
if (data.data.length === 0) {
29-
store.setCurrentPolicy(undefined);
30-
} else if (store.currentPolicy === undefined) {
31-
store.setCurrentPolicy(data?.data[0]);
32-
}
33-
});
25+
3426
return (
3527
<Panel
3628
className="min-w-[200px]"
3729
onClick={() => {
3830
store.setCurrentShow("Policy");
3931
}}
4032
>
41-
<Panel.Header
42-
title={t("CollectionPanel.Policy").toString()}
43-
actions={[
44-
<AddPolicyModal key="AddPolicyModal">
45-
<IconWrap tooltip={t("CollectionPanel.AddPolicy").toString()} size={20}>
46-
<AddIcon fontSize={10} />
47-
</IconWrap>
48-
</AddPolicyModal>,
49-
]}
50-
/>
33+
<Panel.Header title={t("CollectionPanel.Policy").toString()} actions={[<></>]} />
5134
<div style={{ flexGrow: 1, overflowY: "auto", overflowX: "hidden" }}>
52-
{policyQuery?.data?.data?.length ? (
35+
{policyList?.data?.length ? (
5336
<SectionList>
54-
{policyQuery?.data?.data.map((item: any) => {
37+
{policyList?.data.map((item: any) => {
5538
return (
5639
<SectionList.Item
5740
isActive={

web/src/pages/app/database/index.tsx

+24-10
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import CollectionDataList from "./CollectionDataList";
1414
import CollectionListPanel from "./CollectionListPanel";
1515
import PolicyDataList from "./PolicyDataList";
1616
import PolicyListPanel from "./PolicyListPanel";
17+
import { usePolicyListQuery } from "./service";
1718

1819
import useDBMStore from "./store";
1920

@@ -22,21 +23,34 @@ function DatabasePage() {
2223
const containerRef = useRef<HTMLDivElement>(null);
2324
const store = useDBMStore((state) => state);
2425
const settingStore = useCustomSettingStore();
26+
27+
const { data: policyList } = usePolicyListQuery((data) => {
28+
if (data.data.length === 0) {
29+
store.setCurrentPolicy(undefined);
30+
} else if (store.currentPolicy === undefined) {
31+
store.setCurrentPolicy(data?.data[0]);
32+
}
33+
});
34+
2535
return (
2636
<Content>
2737
<Row className="flex-grow" ref={containerRef}>
2838
<Col style={{ width: settingStore.layoutInfo.collectionPage.SideBar.style.width }}>
2939
<CollectionListPanel />
30-
<Resize
31-
type="y"
32-
pageId="collectionPage"
33-
panelId="PolicyPanel"
34-
reverse
35-
containerRef={containerRef}
36-
/>
37-
<Row {...settingStore.layoutInfo.collectionPage.PolicyPanel}>
38-
<PolicyListPanel />
39-
</Row>
40+
{!!policyList?.data?.length && (
41+
<>
42+
<Resize
43+
type="y"
44+
pageId="collectionPage"
45+
panelId="PolicyPanel"
46+
reverse
47+
containerRef={containerRef}
48+
/>
49+
<Row {...settingStore.layoutInfo.collectionPage.PolicyPanel}>
50+
<PolicyListPanel policyList={policyList} />
51+
</Row>
52+
</>
53+
)}
4054
</Col>
4155
<Resize type="x" pageId="collectionPage" panelId="SideBar" containerRef={containerRef} />
4256
<Col>

0 commit comments

Comments
 (0)