Wire hot, recent, submit, and search views in app and controller, modified button navigation to fetch their routes
This commit is contained in:
49
app.js
49
app.js
@ -281,17 +281,20 @@ app.post(
|
|||||||
* Main routes.
|
* Main routes.
|
||||||
*/
|
*/
|
||||||
app.get(
|
app.get(
|
||||||
'/stories/',
|
'/stories/hotStories',
|
||||||
storyController.index
|
storyController.hotJSON
|
||||||
);
|
|
||||||
app.get(
|
|
||||||
'/stories/index',
|
|
||||||
storyController.json
|
|
||||||
);
|
);
|
||||||
|
|
||||||
app.post(
|
app.get(
|
||||||
'/stories/comment/submit',
|
'/stories/recentStories',
|
||||||
storyController.commentSubmit
|
storyController.recentJSON
|
||||||
|
);
|
||||||
|
|
||||||
|
app.get(
|
||||||
|
'/stories/',
|
||||||
|
function(req, res) {
|
||||||
|
res.redirect(302, '/stories/hot');
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
app.get(
|
app.get(
|
||||||
@ -299,15 +302,43 @@ app.get(
|
|||||||
storyController.comments
|
storyController.comments
|
||||||
);
|
);
|
||||||
|
|
||||||
|
app.post(
|
||||||
|
'/stories/comment/submit',
|
||||||
|
storyController.commentSubmit
|
||||||
|
);
|
||||||
|
|
||||||
|
app.get(
|
||||||
|
'/stories/submit',
|
||||||
|
storyController.submitNew
|
||||||
|
);
|
||||||
|
|
||||||
app.post(
|
app.post(
|
||||||
'/stories/submit',
|
'/stories/submit',
|
||||||
storyController.storySubmission
|
storyController.storySubmission
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
app.get(
|
||||||
|
'/stories/hot',
|
||||||
|
storyController.hot
|
||||||
|
);
|
||||||
|
|
||||||
|
app.get(
|
||||||
|
'/stories/recent',
|
||||||
|
storyController.recent
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
app.get(
|
||||||
|
'/stories/search',
|
||||||
|
storyController.search
|
||||||
|
);
|
||||||
|
|
||||||
app.get(
|
app.get(
|
||||||
'/stories/:storyName',
|
'/stories/:storyName',
|
||||||
storyController.returnIndividualStory
|
storyController.returnIndividualStory
|
||||||
);
|
);
|
||||||
|
|
||||||
app.post(
|
app.post(
|
||||||
'/stories/upvote/',
|
'/stories/upvote/',
|
||||||
storyController.upvote
|
storyController.upvote
|
||||||
|
@ -6,7 +6,7 @@ var R = require('ramda'),
|
|||||||
moment = require('../public/js/lib/moment/moment.js'),
|
moment = require('../public/js/lib/moment/moment.js'),
|
||||||
resources = require('./resources');
|
resources = require('./resources');
|
||||||
|
|
||||||
exports.json = function(req, res, next) {
|
exports.hotJSON = function(req, res, next) {
|
||||||
var story = Story.find({}).sort({'rank': -1});
|
var story = Story.find({}).sort({'rank': -1});
|
||||||
story.exec(function(err, stories) {
|
story.exec(function(err, stories) {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -16,13 +16,44 @@ exports.json = function(req, res, next) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.index = function(req, res, next) {
|
exports.recentJSON = function(req, res, next) {
|
||||||
var story = Story.find({}).sort({'rank': -1});
|
var story = Story.find({}).sort({'timePosted': -1});
|
||||||
story.exec(function(err, stories) {
|
story.exec(function(err, stories) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw 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
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
li
|
li
|
||||||
a(href='/chat') Chat
|
a(href='/chat') Chat
|
||||||
li
|
li
|
||||||
a(href='/stories') News
|
a(href='/stories/hot') News
|
||||||
li
|
li
|
||||||
a(href='/bonfires') Bonfires
|
a(href='/bonfires') Bonfires
|
||||||
if !user
|
if !user
|
||||||
|
@ -7,7 +7,7 @@ h3
|
|||||||
return name.toLowerCase().replace(/\s/g, '-');
|
return name.toLowerCase().replace(/\s/g, '-');
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/stories/index',
|
url: '/stories/hotStories',
|
||||||
type: 'GET'
|
type: 'GET'
|
||||||
})
|
})
|
||||||
.success(
|
.success(
|
||||||
|
@ -9,7 +9,7 @@ block content
|
|||||||
include ./news-nav
|
include ./news-nav
|
||||||
if (page === 'hot')
|
if (page === 'hot')
|
||||||
include ./hot-stories
|
include ./hot-stories
|
||||||
if (page === 'new')
|
if (page === 'recent')
|
||||||
include ./new-stories
|
include ./new-stories
|
||||||
if (page === 'submit')
|
if (page === 'submit')
|
||||||
include ./submit-story
|
include ./submit-story
|
||||||
|
@ -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("<div class='row text-left'>" +
|
||||||
|
"<div class='col-xs-3 col-sm-1'>" +
|
||||||
|
"<div class='story-up-votes'>" +
|
||||||
|
"<span>" + rank + "</span>" +
|
||||||
|
"</div>" +
|
||||||
|
"</div>" +
|
||||||
|
"<div class='col-xs-2 col-sm-1'>" +
|
||||||
|
"<img src='" + data[i].author.picture + "' class='img-responsive'/>" +
|
||||||
|
"</div>" +
|
||||||
|
"<div class='col-xs-7 col-sm-10'>" +
|
||||||
|
"<div class='row'>" +
|
||||||
|
"<div class='col-xs-12'>" +
|
||||||
|
"<a href='/stories/" + linkedName + "'>"
|
||||||
|
+ data[i].storyLink +
|
||||||
|
"</a>" +
|
||||||
|
"</div>" +
|
||||||
|
"<div class='col-xs-12'>" +
|
||||||
|
"<span>Posted " +
|
||||||
|
moment(data[i].timePosted).fromNow() +
|
||||||
|
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username + "</a> " +
|
||||||
|
"</div>" +
|
||||||
|
"</div>" +
|
||||||
|
"</div>" +
|
||||||
|
"</div>" +
|
||||||
|
"</li>");
|
||||||
|
$(li).appendTo($('#story-list'));
|
||||||
|
}
|
||||||
|
});
|
@ -1,15 +1,21 @@
|
|||||||
.col-xs-12
|
.col-xs-12
|
||||||
.btn-group.input-group.btn-group-justified(data-toggle='buttons')
|
.btn-group.input-group.btn-group-justified(data-toggle='buttons')
|
||||||
label.btn.btn-primary.btn-big
|
label.btn.btn-primary.btn-big(class="#{ page === 'hot' ? 'active' : '' }")
|
||||||
input#option1(type='radio', name='options')
|
input#option1(href='/stories/hot', type='radio', name='options')
|
||||||
| Hot
|
| Hot
|
||||||
label.btn.btn-primary.active.btn-big
|
label.btn.btn-primary.btn-big(class="#{ page === 'recent' ? 'active' : '' }")
|
||||||
input#option2(type='radio', name='options')
|
input#option2(href='/stories/recent', type='radio', name='options')
|
||||||
| New
|
| New
|
||||||
label.btn.btn-primary.btn-big
|
label.btn.btn-primary.btn-big(class="#{ page === 'submit' ? 'active' : '' }")
|
||||||
input#option3(type='radio', name='options')
|
input#option3(href='/stories/submit', type='radio', name='options')
|
||||||
| Submit
|
| Submit
|
||||||
label.btn.btn-primary.btn-big
|
label.btn.btn-primary.btn-big(class="#{ page === 'search' ? 'active' : '' }")
|
||||||
input#option3(type='radio', name='options')
|
input#option4(href='/stories/search', type='radio', name='options')
|
||||||
| Search
|
| Search
|
||||||
.spacer
|
script.
|
||||||
|
$('label').on('click', function() {
|
||||||
|
console.log('clicked');
|
||||||
|
window.location = ($(this).children('input').attr('href'));
|
||||||
|
});
|
||||||
|
|
||||||
|
.spacer
|
Reference in New Issue
Block a user