- progress with cerating users form;

This commit is contained in:
Vitalii Kiiko
2024-10-16 13:50:47 +02:00
parent 173e54ef60
commit eddfaaf0d7
6 changed files with 50 additions and 21 deletions

View File

@@ -85,7 +85,7 @@ const Registration = () => {
setValue('codiceFiscale', codiceFiscale);
setValue('firstName', firstName);
setValue('lastName', lastName);
setValue('birthDate', dateOfBirthObj);
setValue('dateOfBirth', dateOfBirthObj);
} else {
errorMsgs.current.show([
{
@@ -199,7 +199,7 @@ const Registration = () => {
<FormField
type="datepicker"
disabled={true}
fieldName="birthDate"
fieldName="dateOfBirth"
label={__('Data di nascita', 'gepafin')}
control={control}
errors={errors}

View File

@@ -40,19 +40,25 @@ const AllUsersTable = () => {
const sample = [
{
id: 11,
name: 'Mario Rossi',
firstName: 'Mario',
lastName: 'Rossi',
email: 'mario.rossi@example.com',
role: 'Beneficiario',
status: 'active',
last_access: '2024-08-01 10:30'
role: {
roleName: 'Beneficiario'
},
status: 'ACTIVE',
lastLogin: '2024-08-01 10:30'
},
{
id: 12,
name: 'Mario Rossi2',
email: 'mario.rossi@example.com',
role: 'Beneficiario',
status: 'active',
last_access: '2024-08-01 10:30'
firstName: 'John',
lastName: 'Doe',
email: 'john.doe@example.com',
role: {
roleName: 'Beneficiario'
},
status: 'ACTIVE',
lastLogin: '2024-08-01 10:30'
}
];
setItems(sample);
@@ -75,7 +81,7 @@ const AllUsersTable = () => {
const getFormattedData = (data) => {
return data.map((d) => {
d.last_access = is(String, d.last_access) ? new Date(d.last_access) : (d.last_access ? d.last_access : '');
d.lastLogin = is(String, d.lastLogin) ? new Date(d.lastLogin) : (d.lastLogin ? d.lastLogin : '');
return d;
});
};
@@ -98,7 +104,7 @@ const AllUsersTable = () => {
setFilters({
global: { value: null, matchMode: FilterMatchMode.CONTAINS },
name: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] },
last_access: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] },
lastLogin: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] },
status: { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] },
});
setGlobalFilterValue('');
@@ -117,13 +123,21 @@ const AllUsersTable = () => {
};
const dateLastAccessBodyTemplate = (rowData) => {
return getDateFromISOstring(rowData.last_access);
return getDateFromISOstring(rowData.lastLogin);
};
const dateFilterTemplate = (options) => {
return <Calendar value={options.value} onChange={(e) => options.filterCallback(e.value, options.index)} dateFormat="mm/dd/yy" placeholder="mm/dd/yyyy" mask="99/99/9999" />;
};
const nameBodyTemplate = (rowData) => {
return `${rowData.firstName} ${rowData.lastName}`
}
const roleBodyTemplate = (rowData) => {
return rowData.role.roleName;
}
const statusBodyTemplate = (rowData) => {
return <ProperBandoLabel status={rowData.status}/>;
};
@@ -152,16 +166,21 @@ const AllUsersTable = () => {
header={header}
emptyMessage={__('Nessun dato disponibile', 'gepafin')}
onFilter={(e) => setFilters(e.filters)}>
<Column field="name" header={__('Nome utente', 'gepafin')} filter filterPlaceholder={__('Cerca il nome', 'gepafin')}
<Column field="name" header={__('Nome utente', 'gepafin')}
body={nameBodyTemplate}
filter filterPlaceholder={__('Cerca il nome', 'gepafin')}
style={{ minWidth: '12rem' }}/>
<Column field="email" header={__('Email', 'gepafin')} filter filterPlaceholder="Search by email"
<Column field="email" header={__('Email', 'gepafin')}
filter filterPlaceholder="Search by email"
style={{ minWidth: '12rem' }}/>
<Column field="role" header={__('Ruolo', 'gepafin')}
body={roleBodyTemplate}
style={{ minWidth: '12rem' }}/>
<Column field="status" header={__('Stato', 'gepafin')} filterMenuStyle={{ width: '14rem' }}
style={{ width: '120px' }} body={statusBodyTemplate} filter
filterElement={statusFilterTemplate}/>
<Column header={__('Ultimo accesso', 'gepafin')} filterField="last_access" dataType="date"
<Column header={__('Ultimo accesso', 'gepafin')} filterField="lastLogin"
dataType="date"
style={{ minWidth: '10rem' }}
body={dateLastAccessBodyTemplate} filter filterElement={dateFilterTemplate}/>
<Column header={__('Azioni', 'gepafin')}

View File

@@ -13,6 +13,7 @@ import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
import { storeSet } from '../../store';
import { klona } from 'klona';
import { classNames } from 'primereact/utils';
import { isEmail } from '../../helpers/validators';
const Users = () => {
const [isVisibleEditDialog, setIsVisibleEditDialog] = useState(false);
@@ -45,7 +46,10 @@ const Users = () => {
}
const saveEditDialog = () => {
const emptyValues = Object.values(newUserData).filter(v => isEmpty(v));
if (isEmpty(emptyValues)) {
console.log(newUserData)
}
}
const onChangeEditItem = (value, key) => {
@@ -129,12 +133,13 @@ const Users = () => {
<div className="appForm__field">
<label className={classNames({ 'p-error': isEmpty(newUserData.email) || isNil(newUserData.email) })}>{__('Email', 'gepafin')}*</label>
<InputText value={newUserData.email}
invalid={isEmpty(newUserData.email) || isNil(newUserData.email)}
invalid={isEmpty(newUserData.email) || isNil(newUserData.email) || !isEmail(newUserData.email)}
onChange={(e) => onChangeEditItem(e.target.value, 'email')}/>
</div>
<div className="appForm__field">
<label className={classNames({ 'p-error': isEmpty(newUserData.phoneNumber) || isNil(newUserData.phoneNumber) })}>{__('Telefono', 'gepafin')}</label>
<InputText value={newUserData.phoneNumber}
keyfilter="int"
invalid={isEmpty(newUserData.phoneNumber) || isNil(newUserData.phoneNumber)}
onChange={(e) => onChangeEditItem(e.target.value, 'phoneNumber')}/>
</div>