diff --git a/src/routes/adminPeople/AdminPeople.css b/src/routes/adminPeople/AdminPeople.css
index fd17403..c8cc616 100644
--- a/src/routes/adminPeople/AdminPeople.css
+++ b/src/routes/adminPeople/AdminPeople.css
@@ -73,3 +73,11 @@ td {
.showSortIcon {
display: inline-block;
}
+
+.importForm {
+ display: none;
+}
+
+.importFormVisible {
+ display: block;
+}
diff --git a/src/routes/adminPeople/AdminPeople.js b/src/routes/adminPeople/AdminPeople.js
index 93ed848..a06acf0 100644
--- a/src/routes/adminPeople/AdminPeople.js
+++ b/src/routes/adminPeople/AdminPeople.js
@@ -48,6 +48,11 @@ class AdminPeople extends React.Component {
this.setState({ personFormVisible: !this.state.personFormVisible });
}
+ openImportForm = (event) => {
+ event.preventDefault();
+ this.setState({ openImportForm: true });
+ }
+
render() {
return (
@@ -176,7 +181,7 @@ class AdminPeople extends React.Component {
}
@@ -251,6 +256,36 @@ class AdminPeople extends React.Component {
+
+
Import data
+ {!this.state.openImportForm ? ' / ' : null}
+ {!this.state.openImportForm ?
Export data : null}
+
+
);
diff --git a/src/server.js b/src/server.js
index e22dbc1..c15a099 100644
--- a/src/server.js
+++ b/src/server.js
@@ -295,19 +295,20 @@ app.get('/admin/people/export', (req, res, next) => {
app.post('/admin/people/import', (req, res, next) => {
try {
- if (req.body.data && req.body.data.length > 0) {
+ if (req.body.importdata && req.body.importdata.length > 0) {
+ const data = JSON.parse(req.body.importdata);
Person.destroy({ where: {} }).then(() => {
const promises = [];
- req.body.data.map(person => promises.push(Person.create(person)));
+ data.map(person => promises.push(Person.create(person)));
sequelize.Promise.all(promises).then(() => {
- res.json({ success: true });
+ res.redirect(201, '/admin/people');
});
}).catch(err => {
Rollbar.handleError(err);
next(err);
});
} else {
- res.json({ success: false, error: 'no data' });
+ res.redirect(400, '/admin/people');
}
} catch (err) {
Rollbar.handleError(err);