1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-22 20:01:30 +00:00

Fixed issue with arrays not being saved

This commit is contained in:
Scott Tolksdorf
2017-01-10 15:38:13 -05:00
parent e77532acef
commit 0878439750
4 changed files with 40 additions and 3 deletions

View File

@@ -2,6 +2,8 @@ const React = require('react');
const _ = require('lodash'); const _ = require('lodash');
const cx = require('classnames'); const cx = require('classnames');
const Moment = require('moment');
const request = require('superagent'); const request = require('superagent');
const BrewLookup = React.createClass({ const BrewLookup = React.createClass({
@@ -13,7 +15,8 @@ const BrewLookup = React.createClass({
getInitialState: function() { getInitialState: function() {
return { return {
query:'', query:'',
resultBrew : null resultBrew : null,
searching : false
}; };
}, },
@@ -23,12 +26,38 @@ const BrewLookup = React.createClass({
}) })
}, },
lookup : function(){ lookup : function(){
this.setState({ searching : true });
request.get(`/admin/lookup/${this.state.query}`)
.query({ admin_key : this.props.adminKey })
.end((err, res) => {
this.setState({
searching : false,
resultBrew : (err ? null : res.body)
});
})
}, },
renderFoundBrew : function(){ renderFoundBrew : function(){
if(!this.state.resultBrew) return null; if(this.state.searching) return <div className='searching'><i className='fa fa-spin fa-spinner' /></div>;
if(!this.state.resultBrew) return <div className='noBrew'>No brew found.</div>;
console.log(this.state.resultBrew);
const brew = this.state.resultBrew;
return <div className='brewRow'>
<div>{brew.title}</div>
<div>{brew.authors.join(', ')}</div>
<div><a href={'/edit/' + brew.editId} target='_blank'>{brew.editId}</a></div>
<div><a href={'/share/' + brew.shareId} target='_blank'>{brew.shareId}</a></div>
<div>{Moment(brew.updatedAt).fromNow()}</div>
<div>{brew.views}</div>
<div>
<div className='deleteButton'>
<i className='fa fa-trash' />
</div>
</div>
</div>
}, },
render: function(){ render: function(){

View File

@@ -37,6 +37,8 @@ const Homebrew = React.createClass({
loginPath : this.props.loginPath loginPath : this.props.loginPath
}); });
console.log(this.props.brew);
Router = CreateRouter({ Router = CreateRouter({
'/edit/:id' : <EditPage />, '/edit/:id' : <EditPage />,

View File

@@ -30,12 +30,15 @@ router.post('/api/brew', (req, res, next)=>{
//Update //Update
router.put('/api/brew/:editId', mw.loadBrew, (req, res, next)=>{ router.put('/api/brew/:editId', mw.loadBrew, (req, res, next)=>{
console.log(req.account);
const brew = req.body || {}; const brew = req.body || {};
if(req.account){ if(req.account){
brew.authors = _.uniq(_.concat(brew.authors, req.account.username)); brew.authors = _.uniq(_.concat(brew.authors, req.account.username));
} }
console.log(brew);
BrewData.update(req.params.editId, brew) BrewData.update(req.params.editId, brew)
.then((brew) => { .then((brew) => {
console.log(brew.toJSON());
return res.json(brew.toJSON()); return res.json(brew.toJSON());
}) })
.catch(next); .catch(next);

View File

@@ -65,6 +65,9 @@ const BrewData = {
delete newBrew.shareId; delete newBrew.shareId;
delete newBrew.editId; delete newBrew.editId;
brew = _.merge(brew, newBrew, { updatedAt : Date.now() }); brew = _.merge(brew, newBrew, { updatedAt : Date.now() });
brew.markModified('authors');
brew.markModified('systems');
return brew.save(); return brew.save();
}); });
}, },