mirror of https://github.com/msgbyte/tailchat
feat: 增加更多的资源(message/group/file)
parent
96292a23ba
commit
bacb5b3031
@ -0,0 +1,26 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {
|
||||||
|
BooleanField,
|
||||||
|
Datagrid,
|
||||||
|
DateField,
|
||||||
|
List,
|
||||||
|
ReferenceField,
|
||||||
|
TextField,
|
||||||
|
SearchInput,
|
||||||
|
} from 'react-admin';
|
||||||
|
|
||||||
|
export const MessageList: React.FC = () => (
|
||||||
|
<List filters={[<SearchInput key="search" source="q" alwaysOn />]}>
|
||||||
|
<Datagrid rowClick="show">
|
||||||
|
<TextField source="id" label="ID" sortable={true} sortByOrder="DESC" />
|
||||||
|
<TextField source="content" label="内容" />
|
||||||
|
<TextField source="author" label="作者" />
|
||||||
|
<ReferenceField source="groupId" reference="groups" label="群组ID" />
|
||||||
|
<TextField source="converseId" label="会话ID" />
|
||||||
|
<BooleanField source="hasRecall" label="撤回" />
|
||||||
|
<TextField source="reactions" label="消息反应" />
|
||||||
|
<DateField source="createdAt" label="创建时间" />
|
||||||
|
</Datagrid>
|
||||||
|
</List>
|
||||||
|
);
|
||||||
|
MessageList.displayName = 'MessageList';
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
import {
|
||||||
|
Datagrid,
|
||||||
|
DateField,
|
||||||
|
List,
|
||||||
|
TextField,
|
||||||
|
ShowButton,
|
||||||
|
EditButton,
|
||||||
|
SearchInput,
|
||||||
|
ArrayField,
|
||||||
|
SingleFieldList,
|
||||||
|
ChipField,
|
||||||
|
} from 'react-admin';
|
||||||
|
import React from 'react';
|
||||||
|
import { Box } from '@mui/material';
|
||||||
|
|
||||||
|
const PostListActionToolbar = ({ children, ...props }) => (
|
||||||
|
<Box sx={{ alignItems: 'center', display: 'flex' }}>{children}</Box>
|
||||||
|
);
|
||||||
|
|
||||||
|
export const GroupList: React.FC = () => (
|
||||||
|
<List filters={[<SearchInput key="search" source="q" alwaysOn />]}>
|
||||||
|
<Datagrid>
|
||||||
|
<TextField
|
||||||
|
source="id"
|
||||||
|
label="群组ID"
|
||||||
|
sortable={true}
|
||||||
|
sortByOrder="DESC"
|
||||||
|
/>
|
||||||
|
<TextField source="name" label="群组名称" />
|
||||||
|
<TextField source="owner" label="管理员" />
|
||||||
|
<TextField source="members.length" label="成员数量" />
|
||||||
|
<ArrayField source="panels" label="面板">
|
||||||
|
<SingleFieldList>
|
||||||
|
<ChipField source="name" />
|
||||||
|
</SingleFieldList>
|
||||||
|
</ArrayField>
|
||||||
|
<ArrayField source="roles" label="角色">
|
||||||
|
<SingleFieldList>
|
||||||
|
<ChipField source="name" />
|
||||||
|
</SingleFieldList>
|
||||||
|
</ArrayField>
|
||||||
|
<TextField source="fallbackPermissions" label="默认权限" />
|
||||||
|
<DateField source="createdAt" label="创建时间" />
|
||||||
|
<PostListActionToolbar>
|
||||||
|
<ShowButton />
|
||||||
|
<EditButton />
|
||||||
|
</PostListActionToolbar>
|
||||||
|
</Datagrid>
|
||||||
|
</List>
|
||||||
|
);
|
||||||
|
GroupList.displayName = 'GroupList';
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
import { Router } from 'express';
|
||||||
|
import raExpressMongoose from 'express-mongoose-ra-json-server';
|
||||||
|
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.use(
|
||||||
|
'/users',
|
||||||
|
raExpressMongoose(require('../../../models/user/user').default, {
|
||||||
|
q: ['nickname', 'email'],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
router.use(
|
||||||
|
'/messages',
|
||||||
|
raExpressMongoose(require('../../../models/chat/message').default, {
|
||||||
|
q: ['content'],
|
||||||
|
allowedRegexFields: ['content'],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
router.use(
|
||||||
|
'/groups',
|
||||||
|
raExpressMongoose(require('../../../models/group/group').default, {
|
||||||
|
q: ['name'],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
router.use(
|
||||||
|
'/file',
|
||||||
|
raExpressMongoose(require('../../../models/file').default, {
|
||||||
|
q: ['objectName'],
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
export { router };
|
||||||
Loading…
Reference in New Issue