Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15521 | | 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
15529 stevensc 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>
15529 stevensc 60
				<section className="container-fluid">
15521 stevensc 61
					<TableFilters data={degrees} getData={getData} onAdd={addItem} allowAdd={allowAdd}>
15529 stevensc 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
							}()}
15521 stevensc 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}
15529 stevensc 83
				onComplete={() => getData()}
84
				onClose={() => {
85
					if (selectItem) setSelectItem(null)
15521 stevensc 86
					closeModal()
87
				}}
11272 stevensc 88
			/>
89
			<DeleteModal
90
				isOpen={showDeleteModal}
15529 stevensc 91
				url={actionLink}
11272 stevensc 92
				closeModal={closeDeleteModal}
93
				onComplete={getData}
94
			/>
95
		</>
96
	)
5682 stevensc 97
}
98
 
99
export default DegreesView