diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9d2074e1..f522f299 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1567,8 +1567,8 @@ importers:
specifier: workspace:^
version: link:../packages/sdk
tushan:
- specifier: ^0.2.36
- version: 0.2.36(prop-types@15.8.1)(ts-node@10.9.1)
+ specifier: ^0.2.37
+ version: 0.2.37(prop-types@15.8.1)(ts-node@10.9.1)
vite-express:
specifier: 0.8.0
version: 0.8.0(patch_hash=u6touqej4dt3zxnslnszarl7vq)(express@4.18.2)(vite@4.2.0)
@@ -33966,8 +33966,8 @@ packages:
domino: 2.1.6
dev: false
- /tushan@0.2.36(prop-types@15.8.1)(ts-node@10.9.1):
- resolution: {integrity: sha512-ij4yi75TFSGREa4zMn6va2E+Wg/vGKbrEDL7cgoTN9tgtQ3E3csAHQBKOTFhQody2C/CMWH3SU0+/8eQQhE2mw==}
+ /tushan@0.2.37(prop-types@15.8.1)(ts-node@10.9.1):
+ resolution: {integrity: sha512-q/imSg1CnvRCD8Q99ueqbjlGS0uFW21fRNVlgwIvG8YEtfQYntOdBZE6gs1xqxWD9qOLInWFDpkcplE2LJR/SA==}
dependencies:
'@arco-design/web-react': 2.49.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)
'@tanstack/react-query': 4.29.3(react-dom@18.2.0)(react@18.2.0)
diff --git a/server/admin/package.json b/server/admin/package.json
index fd543781..74000079 100644
--- a/server/admin/package.json
+++ b/server/admin/package.json
@@ -29,7 +29,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"tailchat-server-sdk": "workspace:^",
- "tushan": "^0.2.36",
+ "tushan": "^0.2.37",
"vite-express": "0.8.0"
},
"devDependencies": {
diff --git a/server/admin/src/client/App.tsx b/server/admin/src/client/App.tsx
index 84b388f2..3377456e 100644
--- a/server/admin/src/client/App.tsx
+++ b/server/admin/src/client/App.tsx
@@ -1,4 +1,5 @@
import {
+ Category,
createTextField,
CustomRoute,
jsonServerProvider,
@@ -7,6 +8,7 @@ import {
Tushan,
} from 'tushan';
import {
+ IconCompass,
IconDashboard,
IconEmail,
IconFile,
@@ -20,7 +22,13 @@ import {
} from 'tushan/icon';
import { authHTTPClient, authProvider } from './auth';
import { Dashboard } from './components/Dashboard';
-import { fileFields, groupFields, mailFields, messageFields } from './fields';
+import {
+ discoverFields,
+ fileFields,
+ groupFields,
+ mailFields,
+ messageFields,
+} from './fields';
import { i18n } from './i18n';
import { UserList } from './resources/user';
import { CacheManager } from './routes/cache';
@@ -100,6 +108,19 @@ function App() {
list={}
/>
+
+ }
+ list={
+
+ }
+ />
+
+
}>
diff --git a/server/admin/src/client/fields.ts b/server/admin/src/client/fields.ts
index 8155d563..6e882911 100644
--- a/server/admin/src/client/fields.ts
+++ b/server/admin/src/client/fields.ts
@@ -158,3 +158,23 @@ export const mailFields = [
createTextField('error'),
createDateTimeField('createdAt'),
];
+
+export const discoverFields = [
+ createReferenceField('groupId', {
+ reference: 'groups',
+ displayField: 'name',
+ }),
+ createBooleanField('active', {
+ edit: {
+ default: true,
+ },
+ }),
+ createNumberField('order', {
+ edit: {
+ default: 0,
+ },
+ list: {
+ sort: true,
+ },
+ }),
+];
diff --git a/server/admin/src/client/i18n.ts b/server/admin/src/client/i18n.ts
index 511ca452..e58c37d0 100644
--- a/server/admin/src/client/i18n.ts
+++ b/server/admin/src/client/i18n.ts
@@ -9,6 +9,16 @@ export const i18n: TushanContextProps['i18n'] = {
label: 'English',
translation: {
...i18nEnTranslation,
+ resources: {
+ p_discover: {
+ name: 'Discover',
+ fields: {
+ groupId: 'Group ID',
+ active: 'Is Active',
+ order: 'Order',
+ },
+ },
+ },
custom: {
action: {
resetPassword: 'Reset Password',
@@ -154,6 +164,14 @@ export const i18n: TushanContextProps['i18n'] = {
createdAt: '创建时间',
},
},
+ p_discover: {
+ name: '探索',
+ fields: {
+ groupId: '群组ID',
+ active: '是否活跃',
+ order: '排序',
+ },
+ },
system: {
name: '系统设置',
},
@@ -170,6 +188,9 @@ export const i18n: TushanContextProps['i18n'] = {
name: '系统通知',
},
},
+ category: {
+ plugins: '插件',
+ },
custom: {
action: {
resetPassword: '重置密码',
diff --git a/server/admin/src/server/router/api.ts b/server/admin/src/server/router/api.ts
index 9bd43639..30a50a79 100644
--- a/server/admin/src/server/router/api.ts
+++ b/server/admin/src/server/router/api.ts
@@ -253,5 +253,12 @@ router.use(
auth(),
raExpressMongoose(require('../../../../models/user/mail').default)
);
+router.use(
+ '/p_discover',
+ auth(),
+ raExpressMongoose(
+ require('../../../../plugins/com.msgbyte.discover/models/discover').default
+ )
+);
export { router as apiRouter };