mirror of
https://github.com/stolksdorf/homebrewery.git
synced 2025-12-12 23:45:57 +00:00
Edit and sharing should be working, deploying for testing
This commit is contained in:
@@ -10,14 +10,22 @@ var request = require("superagent");
|
||||
var EditPage = React.createClass({
|
||||
getDefaultProps: function() {
|
||||
return {
|
||||
text : "",
|
||||
id : null
|
||||
//text : "",
|
||||
pending : false,
|
||||
id : null,
|
||||
entry : {
|
||||
text : "",
|
||||
shareId : null,
|
||||
editId : null,
|
||||
createdAt : null,
|
||||
updatedAt : null,
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
return {
|
||||
text: this.props.text
|
||||
text: this.props.entry.text
|
||||
};
|
||||
},
|
||||
|
||||
@@ -29,14 +37,37 @@ var EditPage = React.createClass({
|
||||
//Ajax time
|
||||
},
|
||||
|
||||
handleSave : function(){
|
||||
this.setState({
|
||||
pending : true
|
||||
})
|
||||
request
|
||||
.put('/homebrew/update/' + this.props.id)
|
||||
.send({text : this.state.text})
|
||||
.end((err, res) => {
|
||||
|
||||
console.log('err', err);
|
||||
this.setState({
|
||||
pending : false
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
render : function(){
|
||||
var self = this;
|
||||
return(
|
||||
<div className='editPage'>
|
||||
<Editor text={this.state.text} onChange={this.handleTextChange} />
|
||||
<PHB text={this.state.text} />
|
||||
</div>
|
||||
);
|
||||
|
||||
console.log(this.props.entry);
|
||||
|
||||
var temp;
|
||||
if(this.state.pending){
|
||||
temp = <div>processing</div>
|
||||
}
|
||||
|
||||
|
||||
return <div className='editPage'>
|
||||
<button onClick={this.handleSave}>save</button> {temp}
|
||||
<Editor text={this.state.text} onChange={this.handleTextChange} />
|
||||
<PHB text={this.state.text} />
|
||||
</div>
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -13,16 +13,23 @@ var Homebrew = React.createClass({
|
||||
getDefaultProps: function() {
|
||||
return {
|
||||
url : "",
|
||||
text : ""
|
||||
text : "",
|
||||
entry : {
|
||||
text : "",
|
||||
shareId : null,
|
||||
editId : null,
|
||||
createdAt : null,
|
||||
updatedAt : null,
|
||||
}
|
||||
};
|
||||
},
|
||||
componentWillMount: function() {
|
||||
Router = CreateRouter({
|
||||
'/homebrew/edit/:id' : (args) => {
|
||||
return <EditPage id={args.id} text={this.props.text} />
|
||||
return <EditPage id={args.id} entry={this.props.entry} />
|
||||
},
|
||||
'/homebrew/share/:id' : (args) => {
|
||||
return <SharePage id={args.id} text={this.props.text} />
|
||||
return <SharePage id={args.id} entry={this.props.entry} />
|
||||
},
|
||||
'/homebrew*' : <HomePage />,
|
||||
});
|
||||
|
||||
@@ -2,13 +2,27 @@ var React = require('react');
|
||||
var _ = require('lodash');
|
||||
var cx = require('classnames');
|
||||
|
||||
var PHB = require('../phb/phb.jsx');
|
||||
|
||||
var SharePage = React.createClass({
|
||||
getDefaultProps: function() {
|
||||
return {
|
||||
id : null,
|
||||
entry : {
|
||||
text : "",
|
||||
shareId : null,
|
||||
editId : null,
|
||||
createdAt : null,
|
||||
updatedAt : null,
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
render : function(){
|
||||
var self = this;
|
||||
console.log(this.props.entry);
|
||||
return(
|
||||
<div className='sharePage'>
|
||||
SharePage Ready!
|
||||
<PHB text={this.props.entry.text} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"app-module-path": "^1.0.4",
|
||||
"body-parser": "^1.14.2",
|
||||
"classnames": "^2.2.0",
|
||||
"express": "^4.13.3",
|
||||
"gulp": "^3.9.0",
|
||||
|
||||
13
server.js
13
server.js
@@ -1,16 +1,27 @@
|
||||
'use strict';
|
||||
require('app-module-path').addPath('./shared');
|
||||
var vitreumRender = require('vitreum/render');
|
||||
var bodyParser = require('body-parser')
|
||||
var express = require("express");
|
||||
var app = express();
|
||||
app.use(express.static(__dirname + '/build'));
|
||||
app.use(bodyParser.json());
|
||||
|
||||
|
||||
|
||||
|
||||
//Mongoose
|
||||
var mongoose = require('mongoose');
|
||||
var mongoUri = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL || 'mongodb://localhost/naturalcrit';
|
||||
mongoose.connect(mongoUri);
|
||||
mongoose.connection.on('error', function(){
|
||||
console.log(">>>ERROR: Run Mongodb.exe ya goof!");
|
||||
});
|
||||
|
||||
|
||||
app = require('./server/homebrew.api.js')(app);
|
||||
|
||||
|
||||
|
||||
app.get('*', function (req, res) {
|
||||
vitreumRender({
|
||||
page: './build/naturalCrit/bundle.dot',
|
||||
|
||||
@@ -2,31 +2,92 @@ var vitreumRender = require('vitreum/render');
|
||||
|
||||
|
||||
|
||||
var HomebrewModel = require('./homebrew.model.js').model;
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = function(app){
|
||||
|
||||
|
||||
app.get('/homebrew/new', function(req, res){
|
||||
var newHomebrew = new HomebrewModel();
|
||||
newHomebrew.save(function(err, obj){
|
||||
return res.redirect('/homebrew/edit/' + obj.editId);
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
//Edit Page
|
||||
app.get('/homebrew/edit/:id', function(req, res){
|
||||
HomebrewModel.find({editId : req.params.id}, function(err, objs){
|
||||
var resObj = null;
|
||||
var errObj = {text: "# oops\nCould not find the homebrew."}
|
||||
if(objs.length){
|
||||
resObj = objs[0];
|
||||
}
|
||||
|
||||
console.log(req.params.id);
|
||||
vitreumRender({
|
||||
page: './build/homebrew/bundle.dot',
|
||||
globals:{},
|
||||
prerenderWith : './client/homebrew/homebrew.jsx',
|
||||
initialProps: {
|
||||
url: req.originalUrl,
|
||||
entry : resObj || errObj
|
||||
},
|
||||
clearRequireCache : true,
|
||||
}, function (err, page) {
|
||||
return res.send(page)
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
vitreumRender({
|
||||
page: './build/homebrew/bundle.dot',
|
||||
globals:{},
|
||||
prerenderWith : './client/homebrew/homebrew.jsx',
|
||||
initialProps: {
|
||||
url: req.originalUrl,
|
||||
},
|
||||
clearRequireCache : true,
|
||||
}, function (err, page) {
|
||||
return res.send(page)
|
||||
//Updating
|
||||
app.put('/homebrew/update/:id', function(req, res){
|
||||
HomebrewModel.find({editId : req.params.id}, function(err, objs){
|
||||
if(!objs.length || err) return res.send(400);
|
||||
var resEntry = objs[0];
|
||||
resEntry.text = req.body.text;
|
||||
resEntry.save(function(err, obj){
|
||||
if(!err) return res.sendStatus(500);
|
||||
return res.send(200);
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
//Share Page
|
||||
app.get('/homebrew/share/:id', function(req, res){
|
||||
HomebrewModel.find({shareId : req.params.id}, function(err, objs){
|
||||
var resObj = null;
|
||||
var errObj = {text: "# oops\nCould not find the homebrew."}
|
||||
if(objs.length){
|
||||
resObj = objs[0];
|
||||
}
|
||||
|
||||
resObj.editId = null;
|
||||
|
||||
vitreumRender({
|
||||
page: './build/homebrew/bundle.dot',
|
||||
globals:{},
|
||||
prerenderWith : './client/homebrew/homebrew.jsx',
|
||||
initialProps: {
|
||||
url: req.originalUrl,
|
||||
entry : resObj || errObj
|
||||
},
|
||||
clearRequireCache : true,
|
||||
}, function (err, page) {
|
||||
return res.send(page)
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
//Home and 404, etc.
|
||||
app.get('/homebrew*', function (req, res) {
|
||||
vitreumRender({
|
||||
page: './build/homebrew/bundle.dot',
|
||||
@@ -41,14 +102,5 @@ module.exports = function(app){
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return app;
|
||||
}
|
||||
@@ -6,13 +6,33 @@ var HomebrewSchema = mongoose.Schema({
|
||||
editId : {type : String, default: shortid.generate},
|
||||
text : {type : String, default : ""},
|
||||
|
||||
created : { type: Date, default: Date.now },
|
||||
createdAt : { type: Date, default: Date.now },
|
||||
updatedAt : { type: Date}
|
||||
});
|
||||
|
||||
|
||||
//Schema Options
|
||||
HomebrewSchema.pre('save', function(done) {
|
||||
this.updatedAt = new Date();
|
||||
done();
|
||||
});
|
||||
|
||||
/*
|
||||
HomebrewSchema.options.toJSON.transform = function (doc, ret, options) {
|
||||
delete ret._id;
|
||||
delete ret.__t;
|
||||
delete ret.__v;
|
||||
}
|
||||
HomebrewSchema.options.toObject.transform = function (doc, ret, options) {
|
||||
delete ret._id;
|
||||
delete ret.__t;
|
||||
delete ret.__v;
|
||||
}
|
||||
*/
|
||||
|
||||
var Homebrew = mongoose.model('Homebrew', HomebrewSchema);
|
||||
|
||||
module.exports = {
|
||||
schema : HomebrewSchema,
|
||||
model : Homebrew,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user