import React, { useEffect, useState, useRef } from 'react'; import { InputText } from 'primereact/inputtext'; import { Button } from 'primereact/button'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { Toast } from 'primereact/toast'; import { Dialog } from 'primereact/dialog'; import { Toolbar } from 'primereact/toolbar'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faUserAlt } from '@fortawesome/free-solid-svg-icons'; import { faPhoneAlt } from '@fortawesome/free-solid-svg-icons'; import { faAt } from '@fortawesome/free-solid-svg-icons'; import { faIdCardAlt } from '@fortawesome/free-solid-svg-icons'; import { faEllipsis } from '@fortawesome/free-solid-svg-icons'; const AdministradoresSistema = () => { const [administrators, setAdministrators] = useState([]); const [urlFetch, setUrlFetch] = useState('http://localhost:4000/user/findAdminSistema/'); const [sysadmin, setSysAdmin] = useState(emptySysAdmin); const [selectedAdministrators, setSelectedAdministrators] = useState(null); const [globalFilter, setGlobalFilter] = useState(null); const [deleteAdminSystemDialog, setDeleteAdminSystemDialog] = useState(false); const [deleteAdminsSystemDialog, setDeleteAdminsSystemDialog] = useState(false); const toast = useRef(null); const dt = useRef(null); let emptySysAdmin = { _id: null, dni: '', name: '', last_name: '', email: '', phone: '', password: '', user_type: '1', status: '' }; async function fetchP() { let nombres = await fetch(urlFetch, { method: 'GET' }); let adminRes = await nombres.json(); setAdministrators(adminRes.message); console.log(administrators); } useEffect(() => { fetchP(); }, []) function registrarAdmin() { var data = { dni: document.getElementById('identificacion').value, name: document.getElementById('nombre').value, last_name: document.getElementById('apellidos').value, email: document.getElementById('correo_electronico').value, phone: document.getElementById('telefono').value, password: document.getElementById('correo_electronico').value, user_type: "1", //1 es admin status: "1" }; // console.log(data); fetch('http://localhost:4000/user/createAdminSystem/', { cache: 'no-cache', method: 'POST', body: JSON.stringify(data), headers: { 'Content-Type': 'application/json' } }) .then( function (response) { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); } ) .then( function (response) { let _administrators = [...administrators]; let _admin = { ...response.message };; _administrators.push(_admin); setAdministrators(_administrators) } ) .catch( err => console.log('Ocurrió un error con el fetch', err) ); } const hideDeleteAdminSystemDialog = () => { setDeleteAdminSystemDialog(false); } const hideDeleteAdminsSystemsDialog = () => { setDeleteAdminsSystemDialog(false); } const confirmDeleteAdminSystem = (sysAdmin) => { setSysAdmin(sysAdmin); setDeleteAdminSystemDialog(true); } const confirmDeleteSelected = () => { setDeleteAdminsSystemDialog(true); } const deleteSysAdmin = () => { fetch('http://localhost:4000/user/deleteAdminSystem/' + sysadmin._id, { cache: 'no-cache', method: 'DELETE', headers: { 'Content-Type': 'application/json' } }) .then( function (response) { if (response.status != 201) console.log('Ocurrió un error con el servicio: ' + response.status); else return response.json(); } ) .then( function (response) { let _sysadmin = administrators.filter(val => val._id !== sysadmin._id); setAdministrators(_sysadmin); setDeleteAdminSystemDialog(false); setSysAdmin(emptySysAdmin); toast.current.show({ severity: 'success', summary: 'Éxito', detail: 'Administrador del Sistema Eliminado', life: 3000 }); } ) .catch( err => { console.log('Ocurrió un error con el fetch', err) toast.current.show({ severity: 'danger', summary: 'Error', detail: 'Administrador del Sistema no se pudo Eliminar', life: 3000 }); } ); } const deleteSelectedAdminsSystem = () => { let _administrators = administrators.filter(val => !selectedAdministrators.includes(val)); selectedAdministrators.map((item) => { fetch('http://localhost:4000/user/deleteAdminSystem/' + item._id, { cache: 'no-cache', method: 'DELETE', headers: { 'Content-Type': 'application/json' } }) }) setAdministrators(_administrators); setDeleteAdminsSystemDialog(false); setSelectedAdministrators(null); toast.current.show({ severity: 'success', summary: 'Éxito', detail: 'Administradores del Sistema Eliminados', life: 3000 }); } const actionsAdmin = (rowData) => { return (
); } const leftToolbarTemplate = () => { return (
) } const rightToolbarTemplate = () => { return ( ) } const comparisonFn = function (prevProps, nextProps) { return prevProps.location.pathname === nextProps.location.pathname; }; export default React.memo(AdministradoresSistema, comparisonFn);