1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-11 08:46:30 +00:00
This commit is contained in:
Scott Tolksdorf
2018-12-04 13:37:55 -05:00
parent 52c0462a4f
commit bf21c3d351
5 changed files with 34 additions and 34 deletions

View File

@@ -27,7 +27,7 @@ const Admin = createClass({
<hr /> <hr />
<BrewCleanup /> <BrewCleanup />
</div> </div>
</div> </div>;
} }
}); });

View File

@@ -15,31 +15,31 @@ const BrewCleanup = createClass({
count : 0, count : 0,
pending : false, pending : false,
primed : false, primed : false,
err : null err : null
}; };
}, },
prime(){ prime(){
this.setState({ pending: true }); this.setState({ pending: true });
request.get('/admin/cleanup') request.get('/admin/cleanup')
.then((res)=> this.setState({count : res.body.count, primed : true })) .then((res)=>this.setState({ count: res.body.count, primed: true }))
.catch((err)=>this.setState({ error : err })) .catch((err)=>this.setState({ error: err }))
.finally(()=>this.setState({ pending : false })) .finally(()=>this.setState({ pending: false }));
}, },
cleanup(){ cleanup(){
this.setState({ pending: true }); this.setState({ pending: true });
request.post('/admin/cleanup') request.post('/admin/cleanup')
.then((res)=> this.setState({count : res.body.count })) .then((res)=>this.setState({ count: res.body.count }))
.catch((err)=>this.setState({ error : err })) .catch((err)=>this.setState({ error: err }))
.finally(()=>this.setState({ pending : false, primed : false })) .finally(()=>this.setState({ pending: false, primed: false }));
}, },
renderPrimed(){ renderPrimed(){
if(!this.state.primed) return; if(!this.state.primed) return;
if(!this.state.count){ if(!this.state.count){
return <div className='removeBox'>No Matching Brews found.</div> return <div className='removeBox'>No Matching Brews found.</div>;
} }
return <div className='removeBox'> return <div className='removeBox'>
<button onClick={this.cleanup} className='remove'> <button onClick={this.cleanup} className='remove'>
@@ -49,7 +49,7 @@ const BrewCleanup = createClass({
} }
</button> </button>
<span>Found {this.state.count} Brews that could be removed. </span> <span>Found {this.state.count} Brews that could be removed. </span>
</div> </div>;
}, },
render(){ render(){
return <div className='BrewCleanup'> return <div className='BrewCleanup'>

View File

@@ -12,22 +12,22 @@ const BrewLookup = createClass({
}, },
getInitialState() { getInitialState() {
return { return {
query : '', query : '',
foundBrew : null, foundBrew : null,
searching : false, searching : false,
error : null error : null
}; };
}, },
handleChange(e){ handleChange(e){
this.setState({ query : e.target.value }); this.setState({ query: e.target.value });
}, },
lookup(){ lookup(){
this.setState({ searching: true, error: null }); this.setState({ searching: true, error: null });
request.get(`/admin/lookup/${this.state.query}`) request.get(`/admin/lookup/${this.state.query}`)
.then((res)=> this.setState({foundBrew : res.body})) .then((res)=>this.setState({ foundBrew: res.body }))
.catch((err)=>this.setState({ error : err })) .catch((err)=>this.setState({ error: err }))
.finally(()=>this.setState({ searching : false })) .finally(()=>this.setState({ searching: false }));
}, },
renderFoundBrew(){ renderFoundBrew(){
@@ -61,7 +61,7 @@ const BrewLookup = createClass({
<input type='text' value={this.state.query} onChange={this.handleChange} placeholder='edit or share id' /> <input type='text' value={this.state.query} onChange={this.handleChange} placeholder='edit or share id' />
<button onClick={this.lookup}> <button onClick={this.lookup}>
<i className={cx('fa', { <i className={cx('fa', {
'fa-search' : !this.state.searching, 'fa-search' : !this.state.searching,
'fa-spin fa-spinner' : this.state.searching, 'fa-spin fa-spinner' : this.state.searching,
})} /> })} />
</button> </button>

View File

@@ -16,16 +16,16 @@ const Stats = createClass({
totalBrews : 0 totalBrews : 0
}, },
fetching : false fetching : false
} };
}, },
componentDidMount(){ componentDidMount(){
this.fetchStats(); this.fetchStats();
}, },
fetchStats(){ fetchStats(){
this.setState({ fetching : true}) this.setState({ fetching: true });
request.get('/admin/stats') request.get('/admin/stats')
.then((res)=> this.setState({ stats : res.body })) .then((res)=>this.setState({ stats: res.body }))
.finally(()=>this.setState({fetching : false})); .finally(()=>this.setState({ fetching: false }));
}, },
render(){ render(){
return <div className='Stats'> return <div className='Stats'>

View File

@@ -36,23 +36,23 @@ const junkBrewQuery = HomebrewModel.find({
router.get('/admin/cleanup', mw.adminOnly, (req, res)=>{ router.get('/admin/cleanup', mw.adminOnly, (req, res)=>{
junkBrewQuery.exec((err, objs)=>{ junkBrewQuery.exec((err, objs)=>{
if(err) return res.status(500).send(err); if(err) return res.status(500).send(err);
return res.json({ count : objs.length }); return res.json({ count: objs.length });
}); });
}); });
/* Removes all empty brews that are older than 3 days and that are shorter than a tweet */ /* Removes all empty brews that are older than 3 days and that are shorter than a tweet */
router.post('/admin/cleanup', mw.adminOnly, (req, res)=>{ router.post('/admin/cleanup', mw.adminOnly, (req, res)=>{
junkBrewQuery.remove().exec((err, objs)=>{ junkBrewQuery.remove().exec((err, objs)=>{
if(err) return res.status(500).send(err); if(err) return res.status(500).send(err);
return res.json({ count : objs.length }); return res.json({ count: objs.length });
}); });
}) });
/* Searches for matching edit or share id, also attempts to partial match */ /* Searches for matching edit or share id, also attempts to partial match */
router.get('/admin/lookup/:id', mw.adminOnly, (req, res, next)=>{ router.get('/admin/lookup/:id', mw.adminOnly, (req, res, next)=>{
HomebrewModel.findOne({ $or : [ HomebrewModel.findOne({ $or : [
{ editId: { '$regex': req.params.id, '$options': 'i' } }, { editId: { '$regex': req.params.id, '$options': 'i' } },
{ shareId: { '$regex': req.params.id, '$options': 'i' } }, { shareId: { '$regex': req.params.id, '$options': 'i' } },
]}).exec((err, brew)=>{ ] }).exec((err, brew)=>{
return res.json(brew); return res.json(brew);
}); });
}); });
@@ -61,16 +61,16 @@ router.get('/admin/stats', mw.adminOnly, (req, res)=>{
HomebrewModel.count({}, (err, count)=>{ HomebrewModel.count({}, (err, count)=>{
return res.json({ return res.json({
totalBrews : count totalBrews : count
}) });
}) });
}); });
router.get('/admin', mw.adminOnly, (req, res)=>{ router.get('/admin', mw.adminOnly, (req, res)=>{
render('admin', templateFn, { render('admin', templateFn, {
url : req.originalUrl url : req.originalUrl
}) })
.then((page)=>res.send(page)) .then((page)=>res.send(page))
.catch((err)=>res.sendStatus(500)) .catch((err)=>res.sendStatus(500));
}); });
module.exports = router; module.exports = router;