feat(admin): add discover resource manager

pull/100/head
moonrailgun 2 years ago
parent e507aaee9d
commit 54c2676d23

@ -1567,8 +1567,8 @@ importers:
specifier: workspace:^ specifier: workspace:^
version: link:../packages/sdk version: link:../packages/sdk
tushan: tushan:
specifier: ^0.2.36 specifier: ^0.2.37
version: 0.2.36(prop-types@15.8.1)(ts-node@10.9.1) version: 0.2.37(prop-types@15.8.1)(ts-node@10.9.1)
vite-express: vite-express:
specifier: 0.8.0 specifier: 0.8.0
version: 0.8.0(patch_hash=u6touqej4dt3zxnslnszarl7vq)(express@4.18.2)(vite@4.2.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 domino: 2.1.6
dev: false dev: false
/tushan@0.2.36(prop-types@15.8.1)(ts-node@10.9.1): /tushan@0.2.37(prop-types@15.8.1)(ts-node@10.9.1):
resolution: {integrity: sha512-ij4yi75TFSGREa4zMn6va2E+Wg/vGKbrEDL7cgoTN9tgtQ3E3csAHQBKOTFhQody2C/CMWH3SU0+/8eQQhE2mw==} resolution: {integrity: sha512-q/imSg1CnvRCD8Q99ueqbjlGS0uFW21fRNVlgwIvG8YEtfQYntOdBZE6gs1xqxWD9qOLInWFDpkcplE2LJR/SA==}
dependencies: dependencies:
'@arco-design/web-react': 2.49.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) '@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) '@tanstack/react-query': 4.29.3(react-dom@18.2.0)(react@18.2.0)

@ -29,7 +29,7 @@
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"tailchat-server-sdk": "workspace:^", "tailchat-server-sdk": "workspace:^",
"tushan": "^0.2.36", "tushan": "^0.2.37",
"vite-express": "0.8.0" "vite-express": "0.8.0"
}, },
"devDependencies": { "devDependencies": {

@ -1,4 +1,5 @@
import { import {
Category,
createTextField, createTextField,
CustomRoute, CustomRoute,
jsonServerProvider, jsonServerProvider,
@ -7,6 +8,7 @@ import {
Tushan, Tushan,
} from 'tushan'; } from 'tushan';
import { import {
IconCompass,
IconDashboard, IconDashboard,
IconEmail, IconEmail,
IconFile, IconFile,
@ -20,7 +22,13 @@ import {
} from 'tushan/icon'; } from 'tushan/icon';
import { authHTTPClient, authProvider } from './auth'; import { authHTTPClient, authProvider } from './auth';
import { Dashboard } from './components/Dashboard'; 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 { i18n } from './i18n';
import { UserList } from './resources/user'; import { UserList } from './resources/user';
import { CacheManager } from './routes/cache'; import { CacheManager } from './routes/cache';
@ -100,6 +108,19 @@ function App() {
list={<ListTable fields={mailFields} />} list={<ListTable fields={mailFields} />}
/> />
<Category name="plugins">
<Resource
name="p_discover"
icon={<IconCompass />}
list={
<ListTable
fields={discoverFields}
action={{ create: true, detail: true, delete: true }}
/>
}
/>
</Category>
<CustomRoute name="network" icon={<IconWifi />}> <CustomRoute name="network" icon={<IconWifi />}>
<TailchatNetwork /> <TailchatNetwork />
</CustomRoute> </CustomRoute>

@ -158,3 +158,23 @@ export const mailFields = [
createTextField('error'), createTextField('error'),
createDateTimeField('createdAt'), createDateTimeField('createdAt'),
]; ];
export const discoverFields = [
createReferenceField('groupId', {
reference: 'groups',
displayField: 'name',
}),
createBooleanField('active', {
edit: {
default: true,
},
}),
createNumberField('order', {
edit: {
default: 0,
},
list: {
sort: true,
},
}),
];

@ -9,6 +9,16 @@ export const i18n: TushanContextProps['i18n'] = {
label: 'English', label: 'English',
translation: { translation: {
...i18nEnTranslation, ...i18nEnTranslation,
resources: {
p_discover: {
name: 'Discover',
fields: {
groupId: 'Group ID',
active: 'Is Active',
order: 'Order',
},
},
},
custom: { custom: {
action: { action: {
resetPassword: 'Reset Password', resetPassword: 'Reset Password',
@ -154,6 +164,14 @@ export const i18n: TushanContextProps['i18n'] = {
createdAt: '创建时间', createdAt: '创建时间',
}, },
}, },
p_discover: {
name: '探索',
fields: {
groupId: '群组ID',
active: '是否活跃',
order: '排序',
},
},
system: { system: {
name: '系统设置', name: '系统设置',
}, },
@ -170,6 +188,9 @@ export const i18n: TushanContextProps['i18n'] = {
name: '系统通知', name: '系统通知',
}, },
}, },
category: {
plugins: '插件',
},
custom: { custom: {
action: { action: {
resetPassword: '重置密码', resetPassword: '重置密码',

@ -253,5 +253,12 @@ router.use(
auth(), auth(),
raExpressMongoose(require('../../../../models/user/mail').default) raExpressMongoose(require('../../../../models/user/mail').default)
); );
router.use(
'/p_discover',
auth(),
raExpressMongoose(
require('../../../../plugins/com.msgbyte.discover/models/discover').default
)
);
export { router as apiRouter }; export { router as apiRouter };

Loading…
Cancel
Save