import React, { useState, useEffect } from 'react'; import { __ } from '@wordpress/i18n'; import { uniq } from 'ramda'; import copy from 'copy-to-clipboard'; // store import { useStore, storeSet } from '../../../../store'; // tools import getBandoSeverity from '../../../../helpers/getBandoSeverity'; import getBandoLabel from '../../../../helpers/getBandoLabel'; import getDateFromISOstring from '../../../../helpers/getDateFromISOstring'; // api import UserService from '../../../../service/user-service'; // components import { FilterMatchMode, FilterOperator } from 'primereact/api'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { Dropdown } from 'primereact/dropdown'; import { Button } from 'primereact/button'; import { Calendar } from 'primereact/calendar'; import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import translationStrings from '../../../../translationStringsForComponents'; import { Link } from 'react-router-dom'; const AllUsersTable = () => { const users = useStore().main.users(); const [filters, setFilters] = useState(null); const [loading, setLoading] = useState(false); const [statuses, setStatuses] = useState([]); useEffect(() => { if (!loading) { setLoading(true); UserService.getUsers(getCallback, errGetCallbacks); } }, []); const getCallback = (data) => { if (data.status === 'SUCCESS') { storeSet.main.users(getFormattedData(data.data)); setStatuses(uniq(data.data.map(o => o.status))) initFilters(); } setLoading(false); } const errGetCallbacks = () => { setLoading(false); } const getFormattedData = (data) => { return data .filter(o => ['ROLE_SUPER_ADMIN', 'ROLE_PRE_INSTRUCTOR', 'ROLE_INSTRUCTOR_MANAGER'].includes(o.role.roleType)); }; const clearFilter = () => { initFilters(); }; const initFilters = () => { setFilters({ global: { value: null, matchMode: FilterMatchMode.CONTAINS }, email: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }, lastLogin: { operator: FilterOperator.AND, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] } }); }; const renderHeader = () => { return (
); }; const dateLastAccessBodyTemplate = (rowData) => { return getDateFromISOstring(rowData.lastLogin); }; const dateFilterTemplate = (options) => { return 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 roleEmailTemplate = (rowData) => { return
{rowData.email}
; }; const roleBodyTemplate = (rowData) => { return rowData.role.roleName; }; const statusBodyTemplate = (rowData) => { return ; }; const statusFilterTemplate = (options) => { return options.filterCallback(e.value, options.index)} itemTemplate={statusItemTemplate} placeholder={__('Scegli uno', 'gepafin')} className="p-column-filter" showClear/>; }; const statusItemTemplate = (option) => { return ; }; const actionsBodyTemplate = (rowData) => { return