1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-23 08:01:29 +00:00

admin panel should be good

This commit is contained in:
Scott
2016-02-19 15:59:57 -05:00
parent a1b8d4e8ce
commit fd871aa04a
3 changed files with 51 additions and 28 deletions

View File

@@ -1,9 +1,12 @@
var React = require('react');
var _ = require('lodash');
var cx = require('classnames');
var request = require('superagent');
var Moment = require('moment');
//TODO: Add incremental React scrolling
var VIEW_LIMIT = 30;
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(){
return _.times(VIEW_LIMIT, (i)=>{
var brew = this.props.homebrews[i + this.state.viewStartIndex];
if(!brew) return null;
// return _.times(VIEW_LIMIT, (i)=>{
// var brew = this.props.homebrews[i + this.state.viewStartIndex];
// if(!brew) return null;
return _.map(this.props.homebrews, (brew)=>{
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/share/' + brew.shareId} target='_blank'>{brew.shareId}</a></td>
<td>{Moment(brew.createdAt).fromNow()}</td>
<td>{Moment(brew.updatedAt).fromNow()}</td>
<td>{Moment(brew.lastViewed).fromNow()}</td>
<td>{brew.views}</td>
<td><a href={'/homebrew/remove/' + brew.editId +'?admin_key=' + this.props.admin_key}><i className='fa fa-trash' /></a></td>
<td>
<div className='deleteButton' onClick={this.deleteBrew.bind(this, brew.editId)}>
<i className='fa fa-trash' />
</div>
</td>
</tr>
});
},
render : function(){
var self = this;
return(
<div className='homebrewAdmin'>
<h2>Homebrews - {this.props.homebrews.length}</h2>
<div className='brewTable'>
renderBrewTable : function(){
return <div className='brewTable'>
<table>
<thead>
<tr>
@@ -62,8 +74,14 @@ var HomebrewAdmin = React.createClass({
</tbody>
</table>
</div>
},
render : function(){
var self = this;
return <div className='homebrewAdmin'>
<h2>Homebrews - {this.props.homebrews.length}</h2>
{this.renderBrewTable()}
</div>
);
}
});

View File

@@ -19,6 +19,7 @@
min-width : 100px;
padding : 10px;
text-align : center;
&.preview{
position : relative;
&:hover{
@@ -44,4 +45,7 @@
}
}
}
.deleteButton{
cursor: pointer;
}
}

View File

@@ -45,6 +45,7 @@ module.exports = function(app){
app.get('/homebrew/remove/:id', function(req, res){
if(req.query && req.query.admin_key == process.env.ADMIN_KEY){
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");
var resEntry = objs[0];
resEntry.remove(function(err){