From 0c8de8d3fc1022f42b1b1c0c422f54b58082715f Mon Sep 17 00:00:00 2001 From: bivvo Date: Fri, 14 Dec 2012 12:13:30 -0800 Subject: [PATCH 1/3] Added the ability to to view a single meeting by Id. Example /meeting/88255482 , Next should add ability to bring up a meeting by date. Create a better meeting page instead of re-using the home page --- routes/index.js | 3 ++- routes/meetings.js | 13 ++++++++++++- views/meeting.jade | 27 +++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 views/meeting.jade diff --git a/routes/index.js b/routes/index.js index 47763f6..0822563 100644 --- a/routes/index.js +++ b/routes/index.js @@ -4,5 +4,6 @@ var home = require('./home'), module.exports = function(app) { app.get('/', home.route); - app.get('/history', meetings.route); + app.get('/history', meetings.pastMeetings); + app.get('/meeting/:id', meetings.meetingById) }; \ No newline at end of file diff --git a/routes/meetings.js b/routes/meetings.js index c8e3806..d6005c6 100644 --- a/routes/meetings.js +++ b/routes/meetings.js @@ -4,7 +4,7 @@ var database = require('../lib/database'), * GET past meetings */ -exports.route = function(req, res){ +exports.pastMeetings = function(req, res){ database.getPastMeetings(function(error, meetings){ res.render('history', { title: 'Past Meeting with Olynode', @@ -12,4 +12,15 @@ exports.route = function(req, res){ headerImage: images.getHeaderImage() }); }); +}; + + +exports.meetingById = function(req, res) { + database.getMeetingById(req.params.id, function(error, meeting){ + res.render('meeting', { + title: 'Meeting with Olynode', + meeting: meeting, + headerImage: images.getHeaderImage() + }); + }); }; \ No newline at end of file diff --git a/views/meeting.jade b/views/meeting.jade new file mode 100644 index 0000000..286364e --- /dev/null +++ b/views/meeting.jade @@ -0,0 +1,27 @@ +div.row + div.span12.header-image + img(src="#{headerImage.url}") + p.pull-right image by + a(href="#{headerImage.srcUrl}") #{headerImage.srcAuthor} +div.hero-unit + div#meetings.carousel.slide + div.carousel-inner + if meeting != null + div.item.active + include shared/meeting + else + div.item + include shared/nomeeting + + +div.row.detail-unit + div.span4 + include shared/widgets/details + div.span4 + include shared/widgets/location + div.span4 + include shared/widgets/sponsors + +hr +footer + p © OlyNode 2012 \ No newline at end of file From 25fc8aae7ee4953ac6d60a2378351e9d5e55fe08 Mon Sep 17 00:00:00 2001 From: bivvo Date: Fri, 14 Dec 2012 15:54:11 -0800 Subject: [PATCH 2/3] Modified history page to be a list view. Linked each meeting to a view of the meeting --- lib/database.js | 2 +- lib/helpers.js | 3 +++ views/history.jade | 18 +++--------------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/lib/database.js b/lib/database.js index 0a355fa..effb6f4 100644 --- a/lib/database.js +++ b/lib/database.js @@ -9,7 +9,7 @@ var openDb = function(){ var getMeetings = function(callback){ openDb().collection('meetings').find({ time: { $gte: Date.now() } }, function(error, cursor){ cursor.toArray(callback); - }); + }).sort({time: -1 }); }; var getPastMeetings = function(callback){ diff --git a/lib/helpers.js b/lib/helpers.js index 3b64c34..82c664a 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -4,6 +4,9 @@ exports.helpers = { prettyDate: function(input_date) { return moment(input_date).format("dddd, MMMM Do YYYY h:mm:ss A"); }, + shortDate: function(input_date) { + return moment(input_date).format("MM/DD/YY"); + }, googleMapLink: function(venue) { return 'https://maps.google.com/maps?q=' + venue.address_1+'+'+venue.zip; } diff --git a/views/history.jade b/views/history.jade index 63f6d90..724af23 100644 --- a/views/history.jade +++ b/views/history.jade @@ -4,22 +4,10 @@ div.row p.pull-right image by a(href="#{headerImage.srcUrl}") #{headerImage.srcAuthor} div.hero-unit - div#meetings.carousel.slide - div.carousel-inner + ul each meeting, index in meetings - if index === 0 - div.item.active - include shared/meeting - else - div.item - include shared/meeting - if meetings.length == 0 - div.item - include shared/nomeeting - if meetings.length > 1 - p - a.btn.btn-primary.btn-large.pull-left(href="#meetings", data-slide="prev") « Last - a.btn.btn-primary.btn-large.pull-right(href="#meetings", data-slide="next") Next » + li + a(href="/meeting/#{meeting.id}") #{shortDate(meeting.time)} : #{meeting.name} div.row.detail-unit div.span4 From b9bc67498b4f1e1798e95f8390d309558019928a Mon Sep 17 00:00:00 2001 From: bivvo Date: Fri, 14 Dec 2012 16:01:29 -0800 Subject: [PATCH 3/3] reverting database.js --- lib/database.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/database.js b/lib/database.js index effb6f4..0a355fa 100644 --- a/lib/database.js +++ b/lib/database.js @@ -9,7 +9,7 @@ var openDb = function(){ var getMeetings = function(callback){ openDb().collection('meetings').find({ time: { $gte: Date.now() } }, function(error, cursor){ cursor.toArray(callback); - }).sort({time: -1 }); + }); }; var getPastMeetings = function(callback){