2018-04-30 20:08:18 +02:00
|
|
|
import React from 'react'
|
|
|
|
import { Helmet } from 'react-helmet'
|
|
|
|
import { Link } from 'react-router-dom'
|
|
|
|
|
2018-05-01 13:03:40 +02:00
|
|
|
import { history } from '../../../index'
|
|
|
|
|
2018-04-30 20:08:18 +02:00
|
|
|
export default function AdminPage(props) {
|
|
|
|
|
2018-05-10 20:17:03 +02:00
|
|
|
const { data, target } = props
|
2018-04-30 20:08:18 +02:00
|
|
|
const { error } = data
|
|
|
|
const results = data.data
|
|
|
|
const tbKeys = []
|
|
|
|
if (results.length > 0) {
|
2018-05-09 20:10:23 +02:00
|
|
|
Object.keys(results[0])
|
|
|
|
.filter(key => key.charAt(0) !== '_')
|
|
|
|
.map(key => tbKeys.push(key))
|
2018-04-30 20:08:18 +02:00
|
|
|
}
|
|
|
|
const title = target.charAt(0).toUpperCase() + target.slice(1)
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div>
|
|
|
|
<Helmet>
|
2018-06-07 14:45:43 +02:00
|
|
|
<title>FitTrackee - Admin</title>
|
2018-04-30 20:08:18 +02:00
|
|
|
</Helmet>
|
|
|
|
<h1 className="page-title">
|
|
|
|
Administration - {title}
|
|
|
|
</h1>
|
|
|
|
{error ? (
|
|
|
|
<code>{error}</code>
|
|
|
|
) : (
|
|
|
|
<div className="container">
|
|
|
|
<div className="row">
|
|
|
|
<div className="col-md-2" />
|
|
|
|
<div className="col-md-8 card">
|
2018-04-30 21:38:09 +02:00
|
|
|
<div className="card-body">
|
|
|
|
<table className="table">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
{tbKeys.map(
|
|
|
|
tbKey => <th key={tbKey} scope="col">{tbKey}</th>
|
|
|
|
)}
|
2018-04-30 20:08:18 +02:00
|
|
|
</tr>
|
2018-04-30 21:38:09 +02:00
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{ results.map((result, idx) => (
|
2018-05-01 11:52:38 +02:00
|
|
|
// eslint-disable-next-line react/no-array-index-key
|
2018-04-30 21:38:09 +02:00
|
|
|
<tr key={idx}>
|
2018-05-09 20:10:23 +02:00
|
|
|
{ Object.keys(result)
|
|
|
|
.filter(key => key.charAt(0) !== '_')
|
|
|
|
.map(key => {
|
2018-04-30 21:38:09 +02:00
|
|
|
if (key === 'id') {
|
|
|
|
return (
|
|
|
|
<th key={key} scope="row">
|
2018-05-10 20:17:03 +02:00
|
|
|
<Link to={`/admin/${target}/${result[key]}`}>
|
2018-04-30 21:38:09 +02:00
|
|
|
{result[key]}
|
|
|
|
</Link>
|
|
|
|
</th>
|
|
|
|
)
|
2018-05-16 23:52:55 +02:00
|
|
|
} else if (key === 'img') {
|
|
|
|
return (<td key={key}>
|
|
|
|
<img
|
|
|
|
className="admin-img"
|
|
|
|
src={result[key]
|
|
|
|
? result[key]
|
|
|
|
: '/img/photo.png'}
|
|
|
|
alt="logo"
|
|
|
|
/>
|
|
|
|
</td>)
|
2018-04-30 21:38:09 +02:00
|
|
|
}
|
|
|
|
return <td key={key}>{result[key]}</td>
|
|
|
|
})
|
|
|
|
}
|
|
|
|
</tr>
|
|
|
|
))}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2018-05-01 13:03:40 +02:00
|
|
|
<input
|
|
|
|
type="submit"
|
|
|
|
className="btn btn-primary btn-lg btn-block"
|
|
|
|
onClick={() => history.push(`/admin/${target}/add`)}
|
|
|
|
value="Add a new item"
|
|
|
|
/>
|
|
|
|
<input
|
|
|
|
type="submit"
|
|
|
|
className="btn btn-secondary btn-lg btn-block"
|
|
|
|
onClick={() => history.push('/admin/')}
|
|
|
|
value="Back"
|
|
|
|
/>
|
2018-04-30 21:38:09 +02:00
|
|
|
</div>
|
2018-04-30 20:08:18 +02:00
|
|
|
</div>
|
|
|
|
<div className="col-md-2" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|