Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
index.jsx 2.90 KiB

import {FunctionField, Create, List, Datagrid, TextField,  EditButton, TextInput, Edit, SimpleForm, PasswordInput, Toolbar, SaveButton, DeleteWithConfirmButton, required, SelectInput, useTranslate} from 'react-admin';
import {RenderRole, roleChoices} from '../../utils/users'



export const UserList = (() => {

    return (
    <List sort={{ field: 'identifier', order:"ASC"}} exporter={false} queryOptions= { {meta: { i18n: false}}}>
        <Datagrid 
            bulkActionButtons={false}
         >

                <TextField source ="identifier" label="arolios.user_identifier"/>
                <FunctionField source ="role" label="arolios.user_role" render={RenderRole}/>
                <EditButton />
        </Datagrid>

       
    </List>)
 })

 const EditToolbar = () => {
    const translate = useTranslate();
    return (
        <Toolbar>
            <SaveButton />
            <DeleteWithConfirmButton
                confirmContent={translate('arolios.delete_confirm_msg')}
                translateOptions={ {name: translate('resources.users.name',1)}}
                
            />
        </Toolbar>
    )

}



const equalToPassword = (value, allValues) => {
    if (value !== allValues.password) {
        return 'arolios.password_not_identical';

    }
}
export const UserEdit = () => {

    const translate = useTranslate();
     
    return (
        
            <Edit   queryOptions={{ meta:{  context: 'rfu'}}}>
        
                <SimpleForm toolbar= {<EditToolbar />}>
                    <TextInput label="arolios.user_identifier" source="identifier" multiline fullWidth resettable validate={required()}/>
                    <PasswordInput label={translate('resources.password.name',1)} source="password" fullWidth /> 
                    <PasswordInput label="arolios.confirm_password" source="confirm_password" fullWidth validate={[equalToPassword]}/> 
                    <SelectInput label="arolios.user_role" source="role"   validate={required()}  choices={roleChoices()}/>
                    

                </SimpleForm>
        
            </Edit>

            

    
    )
}

export const UserCreate = () => {
    const translate = useTranslate ();

     
    return (
        
            <Create redirect="list">
        
                <SimpleForm>
                    <TextInput label="arolios.user_identifier" source="identifier" multiline fullWidth resettable validate={required()}/>
                    <PasswordInput label={translate('resources.password.name',1)} source="password" fullWidth validate={required()}/> 
                    <PasswordInput label="arolios.confirm_password" source="confirm_password" fullWidth validate={[required(), equalToPassword]}/> 
                    <SelectInput label="arolios.user_role" source="role"  validate={required()}  choices={roleChoices()}/>
                    

                </SimpleForm>
        
            </Create>

            

    
    )
}