cl
1 天以前 b3fb3db3341ea98dac914f62dc94e59fe37e6b3f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import React from "react";
import {
    Edit,
    SimpleForm,
    TextInput,
    NumberInput,
    SaveButton,
    SelectInput,
    Toolbar,
    required,
    DeleteButton,
    useTranslate,
} from 'react-admin';
import { Grid, Stack } from '@mui/material';
import { EDIT_MODE } from '@/config/setting';
import EditBaseAside from "@/page/components/EditBaseAside";
import CustomerTopToolBar from "@/page/components/EditTopToolBar";
 
const FormToolbar = () => (
    <Toolbar sx={{ justifyContent: 'space-between' }}>
        <SaveButton />
        <DeleteButton mutationMode="optimistic" />
    </Toolbar>
);
 
const HttpAuditRuleEdit = () => {
    const translate = useTranslate();
    const ruleTypeChoices = [
        { id: 'URI', name: translate('table.field.httpAuditRule.ruleType.URI') },
        { id: 'IP', name: translate('table.field.httpAuditRule.ruleType.IP') },
        { id: 'REQUEST_BODY', name: translate('table.field.httpAuditRule.ruleType.REQUEST_BODY') },
    ];
    const matchModeChoices = [
        { id: 'EQUAL', name: translate('table.field.httpAuditRule.matchMode.EQUAL') },
        { id: 'PREFIX', name: translate('table.field.httpAuditRule.matchMode.PREFIX') },
        { id: 'CONTAINS', name: translate('table.field.httpAuditRule.matchMode.CONTAINS') },
        { id: 'REGEX', name: translate('table.field.httpAuditRule.matchMode.REGEX') },
    ];
    const directionChoices = [
        { id: 'IN', name: translate('table.field.httpAuditRule.direction.IN') },
        { id: 'OUT', name: translate('table.field.httpAuditRule.direction.OUT') },
        { id: 'BOTH', name: translate('table.field.httpAuditRule.direction.BOTH') },
    ];
 
    return (
        <Edit
            resource="httpAuditRule"
            redirect="list"
            mutationMode={EDIT_MODE}
            actions={<CustomerTopToolBar />}
            aside={<EditBaseAside />}
        >
            <SimpleForm
                toolbar={<FormToolbar />}
                defaultValues={{ enabled: 1, sortOrder: 0, direction: 'IN', recordAll: 0 }}
            >
                <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                    <Grid item xs={12} md={8}>
                        <Stack spacing={2}>
                            <TextInput source="id" label="common.field.id" disabled />
                            <SelectInput
                                source="ruleType"
                                label="table.field.httpAuditRule.ruleTypeLabel"
                                choices={ruleTypeChoices}
                                validate={required()}
                                fullWidth
                            />
                            <SelectInput
                                source="matchMode"
                                label="table.field.httpAuditRule.matchModeLabel"
                                choices={matchModeChoices}
                                validate={required()}
                                fullWidth
                            />
                            <TextInput
                                source="pattern"
                                label="table.field.httpAuditRule.pattern"
                                validate={required()}
                                fullWidth
                                multiline
                                minRows={3}
                            />
                            <SelectInput
                                source="direction"
                                label="table.field.httpAuditRule.directionLabel"
                                choices={directionChoices}
                                fullWidth
                            />
                            <SelectInput
                                source="recordAll"
                                label="table.field.httpAuditRule.recordAll"
                                choices={[
                                    { id: 1, name: translate('table.field.httpAuditRule.recordAllOn') },
                                    { id: 0, name: translate('table.field.httpAuditRule.recordAllOff') },
                                ]}
                                fullWidth
                            />
                            <NumberInput source="requestMaxChars" label="table.field.httpAuditRule.requestMaxChars" fullWidth />
                            <NumberInput source="responseMaxChars" label="table.field.httpAuditRule.responseMaxChars" fullWidth />
                            <SelectInput
                                source="enabled"
                                label="table.field.httpAuditRule.enabled"
                                choices={[
                                    { id: 1, name: translate('table.field.httpAuditRule.enabledOn') },
                                    { id: 0, name: translate('table.field.httpAuditRule.enabledOff') },
                                ]}
                                fullWidth
                            />
                            <NumberInput source="sortOrder" label="table.field.httpAuditRule.sortOrder" fullWidth />
                            <TextInput source="remark" label="table.field.httpAuditRule.remark" fullWidth multiline minRows={2} />
                        </Stack>
                    </Grid>
                </Grid>
            </SimpleForm>
        </Edit>
    );
};
 
export default HttpAuditRuleEdit;