diff --git a/app.js b/app.js index 237cd1f65a7..358578f0a7e 100644 --- a/app.js +++ b/app.js @@ -281,17 +281,20 @@ app.post( * Main routes. */ app.get( - '/stories/', - storyController.index -); -app.get( - '/stories/index', - storyController.json + '/stories/hotStories', + storyController.hotJSON ); -app.post( - '/stories/comment/submit', - storyController.commentSubmit +app.get( + '/stories/recentStories', + storyController.recentJSON +); + +app.get( + '/stories/', + function(req, res) { + res.redirect(302, '/stories/hot'); + } ); app.get( @@ -299,15 +302,43 @@ app.get( storyController.comments ); +app.post( + '/stories/comment/submit', + storyController.commentSubmit +); + +app.get( + '/stories/submit', + storyController.submitNew +); + app.post( '/stories/submit', storyController.storySubmission ); + +app.get( + '/stories/hot', + storyController.hot +); + +app.get( + '/stories/recent', + storyController.recent +); + + +app.get( + '/stories/search', + storyController.search +); + app.get( '/stories/:storyName', storyController.returnIndividualStory ); + app.post( '/stories/upvote/', storyController.upvote diff --git a/controllers/story.js b/controllers/story.js index 8ea25044ca6..485c2bcd108 100644 --- a/controllers/story.js +++ b/controllers/story.js @@ -6,7 +6,7 @@ var R = require('ramda'), moment = require('../public/js/lib/moment/moment.js'), resources = require('./resources'); -exports.json = function(req, res, next) { +exports.hotJSON = function(req, res, next) { var story = Story.find({}).sort({'rank': -1}); story.exec(function(err, stories) { if (err) { @@ -16,13 +16,44 @@ exports.json = function(req, res, next) { }); }; -exports.index = function(req, res, next) { - var story = Story.find({}).sort({'rank': -1}); +exports.recentJSON = function(req, res, next) { + var story = Story.find({}).sort({'timePosted': -1}); story.exec(function(err, stories) { if (err) { throw err; } - res.render('stories/index'); + res.json(stories); + }); +}; + +exports.hot = function(req, res, next) { + res.render('stories/index', { + page: 'hot' + }); +}; + +exports.submitNew = function(req,res, next) { + res.render('stories/submit-story', { + page: 'submit' + }); +}; + +exports.search = function(req, res, next) { + res.render('stories/search-stories', { + page: 'search' + }); +}; + +exports.recent = function(req, res, next) { + res.render('stories/index', { + page: 'recent' + }); +}; + +exports.specificView = function(req, res, next) { + var whichView = req.params.type; + res.render('stories/index', { + page: whichView }); }; diff --git a/views/partials/navbar.jade b/views/partials/navbar.jade index 9c19b96b529..16fd86ce30b 100644 --- a/views/partials/navbar.jade +++ b/views/partials/navbar.jade @@ -16,7 +16,7 @@ li a(href='/chat') Chat li - a(href='/stories') News + a(href='/stories/hot') News li a(href='/bonfires') Bonfires if !user diff --git a/views/stories/hot-stories.jade b/views/stories/hot-stories.jade index c3dcc96caa0..7fb206cb0dd 100644 --- a/views/stories/hot-stories.jade +++ b/views/stories/hot-stories.jade @@ -7,7 +7,7 @@ h3 return name.toLowerCase().replace(/\s/g, '-'); } $.ajax({ - url: '/stories/index', + url: '/stories/hotStories', type: 'GET' }) .success( diff --git a/views/stories/index.jade b/views/stories/index.jade index 609cd7f32ad..796ce74fa4d 100644 --- a/views/stories/index.jade +++ b/views/stories/index.jade @@ -9,7 +9,7 @@ block content include ./news-nav if (page === 'hot') include ./hot-stories - if (page === 'new') + if (page === 'recent') include ./new-stories if (page === 'submit') include ./submit-story diff --git a/views/stories/new-stories.jade b/views/stories/new-stories.jade index e69de29bb2d..6378303a5fe 100644 --- a/views/stories/new-stories.jade +++ b/views/stories/new-stories.jade @@ -0,0 +1,47 @@ +h3 + ul#story-list.story-list + + script(src="https://cdn.jsdelivr.net/ramda/0.10.0/ramda.min.js") + script. + var getLinkedName = function getLinkedName(name) { + return name.toLowerCase().replace(/\s/g, '-'); + } + $.ajax({ + url: '/stories/recentStories', + type: 'GET' + }) + .success( + function(data) { + for (var i = 0; i < data.length; i++) { + var li = document.createElement('li'); + var linkedName = getLinkedName(data[i].storyLink); + var rank = data[i].rank; + + $(li).html("