- added role switcher;
- added vatCheckData to add company request;
This commit is contained in:
@@ -1,30 +1,21 @@
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { __ } from '@wordpress/i18n';
|
||||
import { isEmpty, isNil, pathOr } from 'ramda';
|
||||
import { klona } from 'klona';
|
||||
|
||||
// store
|
||||
import { storeSet, storeGet } from '../../store';
|
||||
import { isEmpty, pathOr } from 'ramda';
|
||||
import { useNavigate, useParams } from 'react-router-dom';
|
||||
import NumberFlow from '@number-flow/react';
|
||||
|
||||
// service
|
||||
import UserService from '../../service/user-service';
|
||||
|
||||
// tools
|
||||
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
|
||||
import { isEmail } from '../../helpers/validators';
|
||||
import getDateFromISOstring from '../../helpers/getDateFromISOstring';
|
||||
|
||||
// components
|
||||
import AllUsersTable from './components/AllUsersTable';
|
||||
import { Button } from 'primereact/button';
|
||||
import { InputText } from 'primereact/inputtext';
|
||||
import { Dropdown } from 'primereact/dropdown';
|
||||
import { Dialog } from 'primereact/dialog';
|
||||
import { classNames } from 'primereact/utils';
|
||||
import { Toast } from 'primereact/toast';
|
||||
import getDateFromISOstring from '../../helpers/getDateFromISOstring';
|
||||
import getBandoLabel from '../../helpers/getBandoLabel';
|
||||
import { useNavigate, useParams } from 'react-router-dom';
|
||||
import NumberFlow from '@number-flow/react';
|
||||
import { Dropdown } from 'primereact/dropdown';
|
||||
|
||||
|
||||
const UserActivity = () => {
|
||||
const [loading, setLoading] = useState(false);
|
||||
@@ -33,6 +24,7 @@ const UserActivity = () => {
|
||||
const { id } = useParams();
|
||||
const [user, setUser] = useState({});
|
||||
const [roles, setRoles] = useState([]);
|
||||
const [chosenRole, setChosenRole] = useState(0);
|
||||
|
||||
const goBack = () => {
|
||||
navigate(`/utenti`);
|
||||
@@ -41,6 +33,7 @@ const UserActivity = () => {
|
||||
const getUserCallback = (resp) => {
|
||||
if (resp.status === 'SUCCESS') {
|
||||
setUser(resp.data)
|
||||
setChosenRole(resp.data.role?.id);
|
||||
}
|
||||
setLoading(false);
|
||||
}
|
||||
@@ -66,6 +59,25 @@ const UserActivity = () => {
|
||||
return pathOr(fallback, [key], {});
|
||||
}
|
||||
|
||||
const handleRoleUpdate = () => {
|
||||
if (user.role?.id !== chosenRole) {
|
||||
setLoading(true);
|
||||
UserService.updateUser(user.id, {roleId: chosenRole}, updateRoleCallback, errUpdateRoleCallback)
|
||||
}
|
||||
}
|
||||
|
||||
const updateRoleCallback = (resp) => {
|
||||
if (resp.status === 'SUCCESS') {
|
||||
setUser(resp.data)
|
||||
}
|
||||
setLoading(false);
|
||||
}
|
||||
|
||||
const errUpdateRoleCallback = (resp) => {
|
||||
set404FromErrorResponse(resp);
|
||||
setLoading(false);
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (id && !isEmpty(id)) {
|
||||
setLoading(true);
|
||||
@@ -119,6 +131,32 @@ const UserActivity = () => {
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{['ROLE_PRE_INSTRUCTOR', 'ROLE_INSTRUCTOR_MANAGER'].includes(user.role?.roleType)
|
||||
? <>
|
||||
<div className="appPage__spacer"></div>
|
||||
|
||||
<div className="appPageSection">
|
||||
<h3>{__('Cambia ruolo', 'gepafin')}</h3>
|
||||
<div className="row">
|
||||
<Dropdown
|
||||
id="form"
|
||||
disabled={isEmpty(roles) || loading}
|
||||
value={chosenRole}
|
||||
onChange={(e) => setChosenRole(e.value)}
|
||||
options={roles.filter(o => [3, 5].includes(o.id)).map(o => ({ label: o.roleName, value: o.id }))}
|
||||
optionLabel="label"
|
||||
placeholder={__('Seleziona ruolo', 'gepafin')}/>
|
||||
<Button
|
||||
type="button"
|
||||
disabled={loading}
|
||||
outlined
|
||||
onClick={handleRoleUpdate}
|
||||
label={__('Modifica', 'gepafin')}
|
||||
icon="pi pi-cog" iconPos="right"/>
|
||||
</div>
|
||||
</div>
|
||||
</> : null}
|
||||
|
||||
<div className="appPage__spacer"></div>
|
||||
|
||||
<div className="appPageSection">
|
||||
|
||||
Reference in New Issue
Block a user