229 lines
4.1 KiB
TypeScript
229 lines
4.1 KiB
TypeScript
import {
|
|
createEmailField,
|
|
createTextField,
|
|
createBooleanField,
|
|
createAvatarField,
|
|
createJSONField,
|
|
createDateTimeField,
|
|
createUrlField,
|
|
emailValidator,
|
|
createNumberField,
|
|
createReferenceField,
|
|
createTextAreaField,
|
|
} from 'tushan';
|
|
import { createFileSizeField } from './components/field/filesize';
|
|
import { createUserField } from './components/field/user';
|
|
import { parseUrlStr } from './utils';
|
|
import { createImageUrlField } from './components/field/imageUrl';
|
|
|
|
export const userFields = [
|
|
createTextField('id', {
|
|
list: {
|
|
sort: true,
|
|
},
|
|
}),
|
|
createEmailField('email', {
|
|
edit: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
},
|
|
{
|
|
validator: emailValidator,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
createTextField('nickname'),
|
|
createTextField('discriminator', {
|
|
edit: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
},
|
|
{
|
|
match: /\d{4}/,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
createBooleanField('temporary'),
|
|
createAvatarField('avatar', {
|
|
preRenderTransform: (val) =>
|
|
typeof val === 'string' ? parseUrlStr(val) : val,
|
|
}),
|
|
createTextField('type', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createBooleanField('emailVerified'),
|
|
createBooleanField('banned', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createJSONField('settings', {
|
|
list: {
|
|
width: 200,
|
|
},
|
|
}),
|
|
createDateTimeField('createdAt', {
|
|
format: 'iso',
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
];
|
|
|
|
export const messageFields = [
|
|
createTextField('id', {
|
|
list: {
|
|
sort: true,
|
|
},
|
|
}),
|
|
createTextAreaField('content', {
|
|
list: {
|
|
width: 400,
|
|
ellipsis: true,
|
|
},
|
|
}),
|
|
createUserField('author', {
|
|
reference: 'users',
|
|
displayField: 'nickname',
|
|
list: {
|
|
width: 80,
|
|
},
|
|
}),
|
|
createReferenceField('groupId', {
|
|
reference: 'groups',
|
|
displayField: 'name',
|
|
list: {
|
|
width: 80,
|
|
},
|
|
}),
|
|
createTextField('converseId'),
|
|
createBooleanField('hasRecall'),
|
|
createJSONField('reactions'),
|
|
createDateTimeField('createdAt', {
|
|
format: 'iso',
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
];
|
|
|
|
export const groupFields = [
|
|
createTextField('id'),
|
|
createTextField('name'),
|
|
createReferenceField('owner', {
|
|
reference: 'users',
|
|
displayField: (record) => `${record.nickname}#${record.discriminator}`,
|
|
list: {
|
|
width: 160,
|
|
},
|
|
}),
|
|
createTextField('members.length', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createTextField('panels.length', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createJSONField('roles', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createJSONField('fallbackPermissions', {
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
createDateTimeField('createdAt', {
|
|
format: 'iso',
|
|
edit: {
|
|
hidden: true,
|
|
},
|
|
}),
|
|
];
|
|
|
|
export const fileFields = [
|
|
createTextField('objectName', {
|
|
list: {
|
|
width: 320,
|
|
},
|
|
}),
|
|
createImageUrlField('url', {
|
|
preRenderTransform: parseUrlStr,
|
|
list: {
|
|
width: 140,
|
|
},
|
|
}),
|
|
createTextField('usage', {
|
|
list: {
|
|
width: 100,
|
|
},
|
|
}),
|
|
createFileSizeField('size', {
|
|
list: {
|
|
width: 120,
|
|
sort: true,
|
|
},
|
|
}),
|
|
createTextField('metaData.content-type'),
|
|
createTextField('etag', {
|
|
list: {
|
|
width: 300,
|
|
},
|
|
}),
|
|
createUserField('userId', {
|
|
reference: 'users',
|
|
displayField: 'nickname',
|
|
list: {
|
|
width: 200,
|
|
ellipsis: true,
|
|
},
|
|
}),
|
|
createDateTimeField('createdAt', {
|
|
list: {
|
|
sort: true,
|
|
},
|
|
}),
|
|
];
|
|
|
|
export const mailFields = [
|
|
createTextField('to'),
|
|
createTextField('subject'),
|
|
createTextField('host'),
|
|
createNumberField('port'),
|
|
createBooleanField('secure'),
|
|
createBooleanField('is_success'),
|
|
createJSONField('data'),
|
|
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,
|
|
},
|
|
}),
|
|
];
|