Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11272 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5682 stevensc 1
import React, { useState } from 'react'
11272 stevensc 2
import axios from 'axios'
3
import EditModal from '../../groups-types/view/EditModal'
4
import DeleteModal from '../../../shared/DeleteModal'
15521 stevensc 5
import TableFilters from '../../../shared/table/TableFilters'
6
import Table from '../../../shared/table/Table'
5682 stevensc 7
 
15521 stevensc 8
const DegreesView = ({ linkTable, addUrl, allowAdd, allowEdit, allowDelete }) => {
9
	const [degrees, setDegrees] = useState({})
10
	const [selectItem, setSelectItem] = useState(null)
11
	const [actionLink, setActionLink] = useState(addUrl)
11272 stevensc 12
	const [showModal, setShowModal] = useState(false)
13
	const [showDeleteModal, setShowDeleteModal] = useState(false)
15521 stevensc 14
 
11272 stevensc 15
	const headers = [
16
		{ key: 'name', label: 'Nombre', isSorteable: true },
17
		{ key: 'status', label: 'Activo', isSorteable: false },
18
		{ key: 'actions', label: 'Acciones', isSorteable: false }
19
	]
5682 stevensc 20
 
15521 stevensc 21
	const getData = (params) => {
22
		axios
23
			.get(linkTable,{params: params})
11272 stevensc 24
			.then(({ data }) => {
15521 stevensc 25
				if (data.success) setDegrees(data.data)
11272 stevensc 26
			})
27
			.catch((err) => console.log(err))
28
	}
5682 stevensc 29
 
11272 stevensc 30
	const closeModal = () => {
31
		setShowModal(false)
32
	}
5682 stevensc 33
 
11272 stevensc 34
	const closeDeleteModal = () => {
35
		setShowDeleteModal(false)
36
	}
5682 stevensc 37
 
11272 stevensc 38
	const editItem = (item) => {
39
		setSelectItem(item)
40
		setActionLink(item.actions.link_edit)
41
		setShowModal(true)
42
	}
5682 stevensc 43
 
11272 stevensc 44
	const deleteItem = (item) => {
45
		setActionLink(item.actions.link_delete)
46
		setShowDeleteModal(true)
47
	}
5682 stevensc 48
 
11272 stevensc 49
	const addItem = () => {
50
		setActionLink(addUrl)
51
		setShowModal(true)
52
	}
5682 stevensc 53
 
11272 stevensc 54
	return (
55
		<>
56
			<section className="content">
57
				<section className="content-header">
15521 stevensc 58
					<h1>Grados</h1>
11272 stevensc 59
				</section>
15521 stevensc 60
				<section className="container-fluid">
61
					<TableFilters data={degrees} getData={getData} onAdd={addItem} allowAdd={allowAdd}>
62
						{degrees.items &&
63
						function() {
64
							return (
65
								<Table
66
									data={degrees.items}
67
									onEdit={editItem}
68
									onDelete={deleteItem}
69
									headers={headers}
70
									allowEdit={allowEdit}
71
									allowDelete={allowDelete}
72
								/>
73
							)
74
						}()}
75
					</TableFilters>
76
				</section>
11272 stevensc 77
			</section>
78
			<EditModal
15521 stevensc 79
				title='Grados'
11272 stevensc 80
				isOpen={showModal}
81
				url={actionLink}
82
				currentItem={selectItem}
15521 stevensc 83
				onComplete={()=> getData()}
84
				onClose={()=> {
85
					if(selectItem) setSelectItem(null)
86
					closeModal()
87
				}}
11272 stevensc 88
			/>
89
			<DeleteModal
90
				isOpen={showDeleteModal}
91
				closeModal={closeDeleteModal}
92
				url={actionLink}
93
				onComplete={getData}
94
			/>
95
		</>
96
	)
5682 stevensc 97
}
98
 
99
export default DegreesView