- saving progress;
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import React, { useState, useEffect, useRef } from 'react';
|
import React, { useState, useEffect, useRef } from 'react';
|
||||||
import { __ } from '@wordpress/i18n';
|
import { __ } from '@wordpress/i18n';
|
||||||
import { isEmpty, isNil } from 'ramda';
|
import { isEmpty, isNil, pathOr } from 'ramda';
|
||||||
import { klona } from 'klona';
|
import { klona } from 'klona';
|
||||||
|
|
||||||
// store
|
// store
|
||||||
@@ -23,17 +23,57 @@ import { classNames } from 'primereact/utils';
|
|||||||
import { Toast } from 'primereact/toast';
|
import { Toast } from 'primereact/toast';
|
||||||
import getDateFromISOstring from '../../helpers/getDateFromISOstring';
|
import getDateFromISOstring from '../../helpers/getDateFromISOstring';
|
||||||
import getBandoLabel from '../../helpers/getBandoLabel';
|
import getBandoLabel from '../../helpers/getBandoLabel';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
|
import NumberFlow from '@number-flow/react';
|
||||||
|
|
||||||
const UserActivity = () => {
|
const UserActivity = () => {
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const toast = useRef(null);
|
const toast = useRef(null);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const { id } = useParams();
|
||||||
|
const [user, setUser] = useState({});
|
||||||
|
const [roles, setRoles] = useState([]);
|
||||||
|
|
||||||
const goBack = () => {
|
const goBack = () => {
|
||||||
navigate(`/utenti`);
|
navigate(`/utenti`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getUserCallback = (resp) => {
|
||||||
|
if (resp.status === 'SUCCESS') {
|
||||||
|
setUser(resp.data)
|
||||||
|
}
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
const errGetUserCallback = (resp) => {
|
||||||
|
set404FromErrorResponse(resp);
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
const getRolesCallback = (resp) => {
|
||||||
|
if (resp.status === 'SUCCESS') {
|
||||||
|
setRoles(resp.data)
|
||||||
|
}
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
const errGetRolesCallback = (resp) => {
|
||||||
|
set404FromErrorResponse(resp);
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStatValue = (key, fallback = 0) => {
|
||||||
|
return pathOr(fallback, [key], {});
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (id && !isEmpty(id)) {
|
||||||
|
setLoading(true);
|
||||||
|
UserService.getUser(id, getUserCallback, errGetUserCallback);
|
||||||
|
UserService.getRoles(getRolesCallback, errGetRolesCallback);
|
||||||
|
}
|
||||||
|
}, [id])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="appPage">
|
<div className="appPage">
|
||||||
<div className="appPage__pageHeader">
|
<div className="appPage__pageHeader">
|
||||||
@@ -56,29 +96,56 @@ const UserActivity = () => {
|
|||||||
<div className="appPageSection__withBorder columns">
|
<div className="appPageSection__withBorder columns">
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Nome utente', 'gepafin')}</span>
|
<span>{__('Nome utente', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{`${user.firstName} ${user.lastName}`}</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Email', 'gepafin')}</span>
|
<span>{__('Email', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{user.email}</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Ruolo', 'gepafin')}</span>
|
<span>{__('Ruolo', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{user.role?.roleName}</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Data registrazione', 'gepafin')}</span>
|
<span>{__('Data registrazione', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{getDateFromISOstring(user.createdDate)}</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Ultimo accesso', 'gepafin')}</span>
|
<span>{__('Ultimo accesso', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{getDateFromISOstring(user.lastLogin)}</span>
|
||||||
</p>
|
</p>
|
||||||
<p className="appPageSection__pMeta">
|
<p className="appPageSection__pMeta">
|
||||||
<span>{__('Stato account', 'gepafin')}</span>
|
<span>{__('Stato account', 'gepafin')}</span>
|
||||||
<span></span>
|
<span>{user.status}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="appPageSection">
|
||||||
|
<h2>{__('Statistiche attività', 'gepafin')}</h2>
|
||||||
|
<div className="statsBigBadges__grid">
|
||||||
|
<div className="statsBigBadges__gridItem">
|
||||||
|
<span>{__('Login totali', 'gepafin')}</span>
|
||||||
|
<span>{<NumberFlow
|
||||||
|
value={getStatValue('numberOfActiveCalls', 0)}
|
||||||
|
format={{ notation: 'compact' }}
|
||||||
|
locales="it-IT"/>}</span>
|
||||||
|
</div>
|
||||||
|
<div className="statsBigBadges__gridItem">
|
||||||
|
<span>{__('Bandi gestiti', 'gepafin')}</span>
|
||||||
|
<span>{<NumberFlow
|
||||||
|
value={getStatValue('numberOfActiveCalls', 0)}
|
||||||
|
format={{ notation: 'compact' }}
|
||||||
|
locales="it-IT"/>}</span>
|
||||||
|
</div>
|
||||||
|
<div className="statsBigBadges__gridItem">
|
||||||
|
<span>{__('Documenti da integrare', 'gepafin')}</span>
|
||||||
|
<span>{<NumberFlow
|
||||||
|
value={getStatValue('numberOfActiveCalls', 0)}
|
||||||
|
format={{ notation: 'compact' }}
|
||||||
|
locales="it-IT"/>}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ export default class UserService {
|
|||||||
NetworkService.get(`${API_BASE_URL}/user`, callback, errCallback, queryParams);
|
NetworkService.get(`${API_BASE_URL}/user`, callback, errCallback, queryParams);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static getUser = (id, callback, errCallback, queryParams) => {
|
||||||
|
NetworkService.get(`${API_BASE_URL}/user/${id}`, callback, errCallback, queryParams);
|
||||||
|
};
|
||||||
|
|
||||||
static updateUser = (id, body, callback, errCallback) => {
|
static updateUser = (id, body, callback, errCallback) => {
|
||||||
NetworkService.put(`${API_BASE_URL}/user/${id}`, body, callback, errCallback);
|
NetworkService.put(`${API_BASE_URL}/user/${id}`, body, callback, errCallback);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user