Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
6788 stevensc 1
import React, { useState } from 'react'
11121 stevensc 2
import axios from 'axios'
3
import DeleteModal from '../../shared/DeleteModal'
4
import TableFilters from '../components/TableFilters'
11131 stevensc 5
import AddModal from '../components/Modals/AddModal'
6628 stevensc 6
 
6792 stevensc 7
const JobsTableView = ({ backendVars }) => {
6680 stevensc 8
 
11139 stevensc 9
	const {
10
		allowAdd,
11
		allowDelete,
12
		allowEdit,
13
		allowUsersWhoApplied,
14
		link_add,
15
		link_table,
16
		onEdit,
17
		googleApi,
18
		jobCategoryOptions
19
	} = backendVars
11121 stevensc 20
	const [companyData, setCompanyData] = useState({})
21
	const [showModal, setShowModal] = useState(false)
22
	const [showDeleteModal, setShowDeleteModal] = useState(false)
23
	const [actionLink, setActionLink] = useState(link_add)
6791 stevensc 24
 
11121 stevensc 25
	const headers = [
26
		{ key: 'last_date_of_application', label: 'Último día de aplicación', isSorteable: true },
27
		{ key: 'title', label: 'Título', isSorteable: true },
28
		{ key: 'details', label: 'Detalles', isSorteable: true },
29
		{ key: 'actions', label: 'Acciones', isSorteable: false }
30
	]
6680 stevensc 31
 
11121 stevensc 32
	const getData = (search, start, length) => {
33
		axios.get(
34
			link_table,
35
			{
36
				params: {
37
					search: search,
38
					start: start,
39
					length: length
40
				}
41
			})
42
			.then(({ data }) => {
43
				if (data.success) {
44
					setCompanyData(data.data)
6680 stevensc 45
 
11121 stevensc 46
					return data.data
47
				}
48
			})
49
			.catch((err) => console.log(err))
50
	}
6680 stevensc 51
 
11121 stevensc 52
	const closeModal = () => {
53
		setShowModal(false)
54
		setActionLink(link_add)
55
	}
6680 stevensc 56
 
11121 stevensc 57
	const closeDeleteModal = () => {
58
		setShowDeleteModal(false)
59
		setActionLink(link_add)
60
	}
6680 stevensc 61
 
11121 stevensc 62
	const deleteItem = (item) => {
63
		setActionLink(item.actions.link_delete)
64
		setShowDeleteModal(true)
65
	}
6680 stevensc 66
 
11121 stevensc 67
	const addItem = () => {
68
		setActionLink(link_add)
69
		setShowModal(true)
70
	}
6680 stevensc 71
 
11121 stevensc 72
	return (
73
		<>
74
			<section className="content-header">
75
				<div className="container-fluid">
76
					<div className="row mb-2">
77
						<div className="col-sm-12">
78
							<h1>Empleos</h1>
79
						</div>
80
					</div>
81
				</div>
82
			</section>
83
			<TableFilters
84
				data={companyData}
85
				getData={getData}
86
				onDelete={deleteItem}
87
				onAdd={addItem}
88
				onEdit={onEdit}
89
				headers={headers}
90
				allowAdd={allowAdd}
91
				allowEdit={allowEdit}
92
				allowDelete={allowDelete}
93
				allowUsersWhoApplied={allowUsersWhoApplied}
94
			/>
11131 stevensc 95
			{
96
				showModal
11139 stevensc 97
				&&
98
				<AddModal
99
					closeModal={closeModal}
100
					dataLink={actionLink}
101
					googleApiKey={googleApi}
102
					jobCategoryOptions={jobCategoryOptions}
11131 stevensc 103
 
11139 stevensc 104
				/>
11131 stevensc 105
			}
11121 stevensc 106
			<DeleteModal
107
				isOpen={showDeleteModal}
108
				closeModal={closeDeleteModal}
109
				url={actionLink}
11911 stevensc 110
				onComplete={getData}
11121 stevensc 111
			/>
112
		</>
113
	)
6628 stevensc 114
}
115
 
116
export default JobsTableView