From b92f3bfea63edd1c5243a71bb72efce4f8bcd4c2 Mon Sep 17 00:00:00 2001 From: Rvanderheyde Date: Tue, 3 Feb 2015 15:43:04 -0500 Subject: [PATCH 1/6] stuff --- classes/class4/hw/app.js | 35 ++++++++++++++ classes/class4/hw/models/ingredientModel.js | 9 ++++ classes/class4/hw/package.json | 18 +++++++ classes/class4/hw/public/javascripts/main.js | 38 +++++++++++++++ classes/class4/hw/routes/ingredients.js | 47 +++++++++++++++++++ classes/class4/hw/views/home.handlebars | 4 ++ .../class4/hw/views/ingredients.handlebars | 24 ++++++++++ .../class4/hw/views/layouts/main.handlebars | 11 +++++ 8 files changed, 186 insertions(+) create mode 100644 classes/class4/hw/app.js create mode 100644 classes/class4/hw/models/ingredientModel.js create mode 100644 classes/class4/hw/package.json create mode 100644 classes/class4/hw/public/javascripts/main.js create mode 100644 classes/class4/hw/routes/ingredients.js create mode 100644 classes/class4/hw/views/home.handlebars create mode 100644 classes/class4/hw/views/ingredients.handlebars create mode 100644 classes/class4/hw/views/layouts/main.handlebars diff --git a/classes/class4/hw/app.js b/classes/class4/hw/app.js new file mode 100644 index 00000000..27d72cf3 --- /dev/null +++ b/classes/class4/hw/app.js @@ -0,0 +1,35 @@ +var mongoose = require('mongoose'); +var path = require('path'); +var express = require('express'); +var logger = require('morgan'); +var exphbs = require('express-handlebars'); +var bodyParser = require('body-parser'); +var ingredients = require('./routes/ingredients') +// var ingredient = require('./models/ingredientModel') + +var app = express(); +app.engine('handlebars', exphbs({defaultLayout: 'main'})); +app.set('view engine', 'handlebars'); + +var mongoURI = process.env.MONGOURI || "mongodb://localhost/test"; +var PORT = process.env.PORT || 3000; +mongoose.connect(mongoURI); + + +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); +app.use(express.static(path.join(__dirname, 'public'))); + +app.get('/', ingredients.addIngredients); +app.post('/newIngredient', ingredients.addIngredientsPOST); +app.get('/ingredients', ingredients.ingredientsRender); +app.post('/edit', ingredients.editIngredients); +app.post('/outOfStock', ingredients.outOfStock) +app.get('/order'); +app.get('/kitchen'); + + +app.listen(PORT, function() { + console.log("Application running on port:", PORT); +}); \ No newline at end of file diff --git a/classes/class4/hw/models/ingredientModel.js b/classes/class4/hw/models/ingredientModel.js new file mode 100644 index 00000000..f2042815 --- /dev/null +++ b/classes/class4/hw/models/ingredientModel.js @@ -0,0 +1,9 @@ +var mongoose = require('mongoose'); + +var ingredientSchema = mongoose.Schema({ + name: String, + price: Number, + available: String +}); + +module.exports = ingredientSchema; \ No newline at end of file diff --git a/classes/class4/hw/package.json b/classes/class4/hw/package.json new file mode 100644 index 00000000..5d2ff156 --- /dev/null +++ b/classes/class4/hw/package.json @@ -0,0 +1,18 @@ +{ + "name": "hw", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "body-parser": "^1.11.0", + "express": "^4.11.1", + "express-handlebars": "^1.1.0", + "mongoose": "^3.8.22", + "morgan": "^1.5.1" + } +} diff --git a/classes/class4/hw/public/javascripts/main.js b/classes/class4/hw/public/javascripts/main.js new file mode 100644 index 00000000..b666173d --- /dev/null +++ b/classes/class4/hw/public/javascripts/main.js @@ -0,0 +1,38 @@ +var $form = $("#ajax-form"); + +var onSuccess = function(data, status){ + console.log('success'); + console.log(data); + var out = "
  • "+data.name+"
  • " + + "" + + "
    " + + "" + + "
    " + + "
    " + + "Name:
    " + + "Price:
    " + + "" + + "
    "; + $("#result").html(out); +}; + +var onError = function(data, status){ + console.log("status",status); + console.log("error",data); +}; + +$form.submit(function(event){ + event.preventDefault(); + var name = $form.find("[name='name']").val(); + var price = $form.find("[name='price']").val(); + + $.post("newIngredient", { + name: name, + price: price, + available: "In Stock" + }) + .done(onSuccess) + .error(onError); +}); \ No newline at end of file diff --git a/classes/class4/hw/routes/ingredients.js b/classes/class4/hw/routes/ingredients.js new file mode 100644 index 00000000..48079ea9 --- /dev/null +++ b/classes/class4/hw/routes/ingredients.js @@ -0,0 +1,47 @@ +var routes = {}; +var mongoose = require('mongoose'); + +var ingredientSchema = mongoose.Schema({ + name: String, + price: Number, + available: String +}); +var Ingredient = mongoose.model('Ingredient', ingredientSchema); + +routes.ingredientsRender = function(req, res){ + Ingredient.find({available: 'In Stock'},function(err, ingredients){ + res.render('ingredients', {'ingredients': ingredients}); + console.log(ingredients); + }); +}; + +routes.addIngredients = function(req,res){ + res.render('home') +}; + +routes.addIngredientsPOST = function(req, res){ + console.log(req.body); + res.send(makeIngredient(req.body)); +}; + +var makeIngredient = function(params){ + var ingredient = new Ingredient({name: params.name, + price: params.price, + available: params.available + }); + ingredient.save(function(err){ + if (err){ + console.log("Problem adding Ingredient", err); + } + }); +} + +routes.editIngredients = function(req, res){ + +}; + +routes.outOfStock = function(req, res){ + +}; + +module.exports = routes; \ No newline at end of file diff --git a/classes/class4/hw/views/home.handlebars b/classes/class4/hw/views/home.handlebars new file mode 100644 index 00000000..4ed644ee --- /dev/null +++ b/classes/class4/hw/views/home.handlebars @@ -0,0 +1,4 @@ +

    Jessica's Burgers

    +Ingredients +Order +Kitchen diff --git a/classes/class4/hw/views/ingredients.handlebars b/classes/class4/hw/views/ingredients.handlebars new file mode 100644 index 00000000..a1e91ba6 --- /dev/null +++ b/classes/class4/hw/views/ingredients.handlebars @@ -0,0 +1,24 @@ +

    Ingredient List

    +
    + Name:
    + Price:
    + +
    + \ No newline at end of file diff --git a/classes/class4/hw/views/layouts/main.handlebars b/classes/class4/hw/views/layouts/main.handlebars new file mode 100644 index 00000000..fa99941b --- /dev/null +++ b/classes/class4/hw/views/layouts/main.handlebars @@ -0,0 +1,11 @@ + + + + + Jess's Burgers + + + + {{{body}}} + + \ No newline at end of file From 3b6c96cfe5af5edafa3237a78349d27f8fd7ac01 Mon Sep 17 00:00:00 2001 From: Rvanderheyde Date: Tue, 3 Feb 2015 16:55:57 -0500 Subject: [PATCH 2/6] adding redisgned ingredients page --- classes/class4/hw/app.js | 4 ++-- classes/class4/hw/public/javascripts/main.js | 14 ++++---------- classes/class4/hw/routes/ingredients.js | 11 +++++++---- classes/class4/hw/views/ingredients.handlebars | 14 ++++---------- 4 files changed, 17 insertions(+), 26 deletions(-) diff --git a/classes/class4/hw/app.js b/classes/class4/hw/app.js index 27d72cf3..82c03727 100644 --- a/classes/class4/hw/app.js +++ b/classes/class4/hw/app.js @@ -24,8 +24,8 @@ app.use(express.static(path.join(__dirname, 'public'))); app.get('/', ingredients.addIngredients); app.post('/newIngredient', ingredients.addIngredientsPOST); app.get('/ingredients', ingredients.ingredientsRender); -app.post('/edit', ingredients.editIngredients); -app.post('/outOfStock', ingredients.outOfStock) +app.post('/edit', ingredients.editIngredientsPOST); +app.post('/outOfStock', ingredients.outOfStockPOST) app.get('/order'); app.get('/kitchen'); diff --git a/classes/class4/hw/public/javascripts/main.js b/classes/class4/hw/public/javascripts/main.js index b666173d..98199eb3 100644 --- a/classes/class4/hw/public/javascripts/main.js +++ b/classes/class4/hw/public/javascripts/main.js @@ -3,17 +3,11 @@ var $form = $("#ajax-form"); var onSuccess = function(data, status){ console.log('success'); console.log(data); - var out = "
  • "+data.name+"
  • " + - "" + - "
    " + + var out = "" + + "
    " + + "
    "+ + ""+ "" + - "
    " + - "
    " + - "Name:
    " + - "Price:
    " + - "" + "
    "; $("#result").html(out); }; diff --git a/classes/class4/hw/routes/ingredients.js b/classes/class4/hw/routes/ingredients.js index 48079ea9..231212da 100644 --- a/classes/class4/hw/routes/ingredients.js +++ b/classes/class4/hw/routes/ingredients.js @@ -34,14 +34,17 @@ var makeIngredient = function(params){ console.log("Problem adding Ingredient", err); } }); + return ingredient } -routes.editIngredients = function(req, res){ - +routes.editIngredientsPOST = function(req, res){ + console.log(req.body); + res.end(); }; -routes.outOfStock = function(req, res){ - +routes.outOfStockPOST = function(req, res){ + console.log(req.body); + res.end(); }; module.exports = routes; \ No newline at end of file diff --git a/classes/class4/hw/views/ingredients.handlebars b/classes/class4/hw/views/ingredients.handlebars index a1e91ba6..74296bc5 100644 --- a/classes/class4/hw/views/ingredients.handlebars +++ b/classes/class4/hw/views/ingredients.handlebars @@ -6,18 +6,12 @@