import React, { useEffect, useRef, useState } from 'react'; import { __ } from '@wordpress/i18n'; import { isEmpty, pathOr } from 'ramda'; // store import { storeSet } from '../../store'; // tools import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; import uniqid from '../../helpers/uniqid'; // api import AssignedApplicationService from '../../service/assigned-application-service'; import UserService from '../../service/user-service'; // components import PreInstructorDomandeTable from '../DashboardPreInstructor/components/PreInstructorDomandeTable'; import AllDomandeTable from '../Domande/components/AllDomandeTable'; import { classNames } from 'primereact/utils'; import { Dropdown } from 'primereact/dropdown'; import { Dialog } from 'primereact/dialog'; import { Button } from 'primereact/button'; import DashboardService from '../../service/dashboard-service'; const DomandeInstructorManager = () => { const [loading, setLoading] = useState(false); const [isVisibleEditDialog, setIsVisibleEditDialog] = useState(false); const [roleIds, setRoleIds] = useState(0); const [users, setUsers] = useState([]); const [chosenUser, setChosenUser] = useState(0); const [chosenApplication, setChosenApplication] = useState(0); const [updaterString, setUpdaterString] = useState(''); const toast = useRef(null); const [mainStats, setMainStats] = useState({}); const getRolesCallback = (data) => { if (data.status === 'SUCCESS') { const roles = data.data .filter(o => ['ROLE_PRE_INSTRUCTOR', 'ROLE_INSTRUCTOR_MANAGER'].includes(o.roleType)); setRoleIds(roles.map(o => o.id)); } setLoading(false); } const errGetRolesCallback = (data) => { set404FromErrorResponse(data); setLoading(false); } const getUsersCallback = (data) => { if (data.status === 'SUCCESS') { const users = data.data .map(o => ({ name: `${o.firstName} ${o.lastName} (${o.email})`, value: o.id })); setUsers(users); } setLoading(false); } const errGetUsersCallback = (data) => { set404FromErrorResponse(data); setLoading(false); } const headerEditDialog = () => { return {__('Assegni la domanda', 'gepafin')} } const hideEditDialog = () => { setIsVisibleEditDialog(false); setChosenUser(0); setChosenApplication(0); } const footerEditDialog = () => { return
} const openAssignDialog = (applId) => { setChosenApplication(applId) setIsVisibleEditDialog(true); } const saveEditDialog = () => { if (chosenUser !== 0 && chosenApplication !== 0) { storeSet.main.setAsyncRequest(); AssignedApplicationService.assignApplication(chosenApplication, assignApplCallback, errAssignApplCallback, [ ['userId', chosenUser] ]); hideEditDialog(); } } const assignApplCallback = (data) => { if (data.status === 'SUCCESS') { if (toast.current) { toast.current.show({ severity: 'success', summary: '', detail: data.message }); } setUpdaterString(uniqid()); } storeSet.main.unsetAsyncRequest(); } const errAssignApplCallback = (data) => { if (toast.current && data.message) { toast.current.show({ severity: 'error', summary: '', detail: data.message }); } set404FromErrorResponse(data); storeSet.main.unsetAsyncRequest(); } const getStats = (data) => { if (data.status === 'SUCCESS') { setMainStats(data.data); } } const errGetStats = () => {} useEffect(() => { DashboardService.getEvaluationsStats(getStats, errGetStats); }, []); useEffect(() => { if (roleIds.length > 0) { setLoading(true); UserService.getUsers(getUsersCallback, errGetUsersCallback, [['roleIds', roleIds]]) } }, [roleIds]); useEffect(() => { if (isVisibleEditDialog) { setLoading(true); UserService.getRoles(getRolesCallback, errGetRolesCallback) } }, [isVisibleEditDialog]); return(

{__('Gestione domande', 'gepafin')}

{__('Da assegnare', 'gepafin')}

{__('In lavorazione', 'gepafin')}

{/*

{__('Riepilogo', 'gepafin')}

{__('Totale domande', 'gepafin')}
{__('In soccorso', 'gepafin')}
{__('In valutazione', 'gepafin')}
{__('Completate', 'gepafin')}
{__('Tempo medio di valutazione', 'gepafin')}
{__('Domande in scadenza (48h)', 'gepafin')}
*/}
setChosenUser(e.value)} options={users} optionLabel="name" optionValue="value"/>
) } export default DomandeInstructorManager;