- progress with cerating users form;
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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')}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user