mirror of
https://github.com/stolksdorf/homebrewery.git
synced 2025-12-23 11:51:30 +00:00
admin panel should be good
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
var React = require('react');
|
var React = require('react');
|
||||||
var _ = require('lodash');
|
var _ = require('lodash');
|
||||||
var cx = require('classnames');
|
var cx = require('classnames');
|
||||||
|
var request = require('superagent');
|
||||||
|
|
||||||
var Moment = require('moment');
|
var Moment = require('moment');
|
||||||
|
|
||||||
|
|
||||||
|
//TODO: Add incremental React scrolling
|
||||||
var VIEW_LIMIT = 30;
|
var VIEW_LIMIT = 30;
|
||||||
var COLUMN_HEIGHT = 52;
|
var COLUMN_HEIGHT = 52;
|
||||||
|
|
||||||
@@ -21,31 +24,40 @@ var HomebrewAdmin = React.createClass({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
deleteBrew : function(brewId){
|
||||||
|
console.log('removing');
|
||||||
|
request.get('/homebrew/remove/' + brewId +'?admin_key=' + this.props.admin_key)
|
||||||
|
.send()
|
||||||
|
.end(function(err, res){
|
||||||
|
console.log('DONE');
|
||||||
|
window.location.reload();
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
renderBrews : function(){
|
renderBrews : function(){
|
||||||
return _.times(VIEW_LIMIT, (i)=>{
|
// return _.times(VIEW_LIMIT, (i)=>{
|
||||||
var brew = this.props.homebrews[i + this.state.viewStartIndex];
|
// var brew = this.props.homebrews[i + this.state.viewStartIndex];
|
||||||
if(!brew) return null;
|
// if(!brew) return null;
|
||||||
|
|
||||||
|
return _.map(this.props.homebrews, (brew)=>{
|
||||||
return <tr className={cx('brewRow', {'isEmpty' : brew.text == ""})} key={brew.sharedId}>
|
return <tr className={cx('brewRow', {'isEmpty' : brew.text == ""})} key={brew.sharedId}>
|
||||||
|
|
||||||
<td><a href={'/homebrew/edit/' + brew.editId} target='_blank'>{brew.editId}</a></td>
|
<td><a href={'/homebrew/edit/' + brew.editId} target='_blank'>{brew.editId}</a></td>
|
||||||
<td><a href={'/homebrew/share/' + brew.shareId} target='_blank'>{brew.shareId}</a></td>
|
<td><a href={'/homebrew/share/' + brew.shareId} target='_blank'>{brew.shareId}</a></td>
|
||||||
<td>{Moment(brew.createdAt).fromNow()}</td>
|
<td>{Moment(brew.createdAt).fromNow()}</td>
|
||||||
<td>{Moment(brew.updatedAt).fromNow()}</td>
|
<td>{Moment(brew.updatedAt).fromNow()}</td>
|
||||||
<td>{Moment(brew.lastViewed).fromNow()}</td>
|
<td>{Moment(brew.lastViewed).fromNow()}</td>
|
||||||
<td>{brew.views}</td>
|
<td>{brew.views}</td>
|
||||||
|
<td>
|
||||||
<td><a href={'/homebrew/remove/' + brew.editId +'?admin_key=' + this.props.admin_key}><i className='fa fa-trash' /></a></td>
|
<div className='deleteButton' onClick={this.deleteBrew.bind(this, brew.editId)}>
|
||||||
|
<i className='fa fa-trash' />
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
render : function(){
|
renderBrewTable : function(){
|
||||||
var self = this;
|
return <div className='brewTable'>
|
||||||
return(
|
|
||||||
<div className='homebrewAdmin'>
|
|
||||||
<h2>Homebrews - {this.props.homebrews.length}</h2>
|
|
||||||
<div className='brewTable'>
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -62,8 +74,14 @@ var HomebrewAdmin = React.createClass({
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
},
|
||||||
|
|
||||||
|
render : function(){
|
||||||
|
var self = this;
|
||||||
|
return <div className='homebrewAdmin'>
|
||||||
|
<h2>Homebrews - {this.props.homebrews.length}</h2>
|
||||||
|
{this.renderBrewTable()}
|
||||||
</div>
|
</div>
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
min-width : 100px;
|
min-width : 100px;
|
||||||
padding : 10px;
|
padding : 10px;
|
||||||
text-align : center;
|
text-align : center;
|
||||||
|
|
||||||
&.preview{
|
&.preview{
|
||||||
position : relative;
|
position : relative;
|
||||||
&:hover{
|
&:hover{
|
||||||
@@ -44,4 +45,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.deleteButton{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -45,6 +45,7 @@ module.exports = function(app){
|
|||||||
app.get('/homebrew/remove/:id', function(req, res){
|
app.get('/homebrew/remove/:id', function(req, res){
|
||||||
if(req.query && req.query.admin_key == process.env.ADMIN_KEY){
|
if(req.query && req.query.admin_key == process.env.ADMIN_KEY){
|
||||||
HomebrewModel.find({editId : req.params.id}, function(err, objs){
|
HomebrewModel.find({editId : req.params.id}, function(err, objs){
|
||||||
|
console.log(err);
|
||||||
if(!objs.length || err) return res.status(404).send("Can not find homebrew with that id");
|
if(!objs.length || err) return res.status(404).send("Can not find homebrew with that id");
|
||||||
var resEntry = objs[0];
|
var resEntry = objs[0];
|
||||||
resEntry.remove(function(err){
|
resEntry.remove(function(err){
|
||||||
|
|||||||
Reference in New Issue
Block a user