Merge pull request #369 from terakilobyte/staging

Bug fixes to stories and fieldguides
pull/373/merge
Quincy Larson 2015-04-25 18:14:43 -07:00
commit 4e9f8b9458
8 changed files with 60 additions and 18 deletions

1
app.js
View File

@ -81,7 +81,6 @@ app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views')); app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade'); app.set('view engine', 'jade');
console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
app.all(/.*/, function (req, res, next) { app.all(/.*/, function (req, res, next) {

View File

@ -326,7 +326,6 @@ exports.completedBonfire = function (req, res, next) {
return next(err); return next(err);
} }
if (user) { if (user) {
debug('Saving user');
res.send(true); res.send(true);
} }
}); });

View File

@ -22,7 +22,7 @@ exports.returnIndividualFieldGuide = function(req, res, next) {
return res.redirect('/field-guide'); return res.redirect('/field-guide');
} }
var fieldGuide = fieldGuideFromMongo.pop(); var fieldGuide = R.head(fieldGuideFromMongo);
var dashedNameFull = fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, ''); var dashedNameFull = fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, '');
if (dashedNameFull !== dashedName) { if (dashedNameFull !== dashedName) {
return res.redirect('../field-guide/' + dashedNameFull); return res.redirect('../field-guide/' + dashedNameFull);
@ -54,15 +54,14 @@ exports.returnNextFieldGuide = function(req, res, next) {
var completed = req.user.completedFieldGuides; var completed = req.user.completedFieldGuides;
req.user.uncompletedFieldGuides = resources.allFieldGuideIds().filter(function (elem) { var uncompletedFieldGuides = resources.allFieldGuideIds().filter(function (elem) {
if (completed.indexOf(elem) === -1) { if (completed.indexOf(elem) === -1) {
return elem; return elem;
} }
}); });
req.user.uncompletedFieldGuides = uncompletedFieldGuides;
req.user.save(); req.user.save();
var uncompletedFieldGuides = req.user.uncompletedFieldGuides;
var displayedFieldGuides = FieldGuide.find({'_id': uncompletedFieldGuides[0]}); var displayedFieldGuides = FieldGuide.find({'_id': uncompletedFieldGuides[0]});
displayedFieldGuides.exec(function(err, fieldGuide) { displayedFieldGuides.exec(function(err, fieldGuide) {
if (err) { if (err) {
@ -81,14 +80,13 @@ exports.returnNextFieldGuide = function(req, res, next) {
}; };
exports.completedFieldGuide = function (req, res, next) { exports.completedFieldGuide = function (req, res, next) {
debug('params in completedFieldGuide', req.params);
var fieldGuideId = req.body.fieldGuideInfo.fieldGuideId; var fieldGuideId = req.body.fieldGuideInfo.fieldGuideId;
req.user.completedFieldGuides.push(fieldGuideId); req.user.completedFieldGuides.push(fieldGuideId);
var index = req.user.uncompletedFieldGuides.indexOf(fieldGuideId); var index = req.user.uncompletedFieldGuides.indexOf(fieldGuideId);
if (index > -1) { if (index > -1) {
req.user.progressTimestamps.push(Date.now() || 0); req.user.progressTimestamps.push(Date.now());
req.user.uncompletedFieldGuides.splice(index, 1); req.user.uncompletedFieldGuides.splice(index, 1);
} }

View File

@ -132,7 +132,6 @@ exports.returnIndividualNonprofit = function(req, res, next) {
var hasShownInterest = nonprofit.interestedCampers.filter(function ( obj ) { var hasShownInterest = nonprofit.interestedCampers.filter(function ( obj ) {
return obj.username === req.user.profile.username; return obj.username === req.user.profile.username;
}); });
console.log(hasShownInterest);
if (hasShownInterest.length === 0) { if (hasShownInterest.length === 0) {
buttonActive = true; buttonActive = true;
} }

View File

@ -261,9 +261,7 @@ module.exports = {
} else { } else {
allFieldGuideIds = fieldGuides. allFieldGuideIds = fieldGuides.
map(function (elem) { map(function (elem) {
return { return elem._id;
_id: elem._id
};
}); });
return allFieldGuideIds; return allFieldGuideIds;
} }

View File

@ -118,7 +118,7 @@ exports.preSubmit = function(req, res) {
exports.returnIndividualStory = function(req, res, next) { exports.returnIndividualStory = function(req, res, next) {
var dashedName = req.params.storyName; var dashedName = req.params.storyName;
var storyName = dashedName.replace(/\-/g, ' '); var storyName = dashedName.replace(/\-/g, ' ').trim();
Story.find({'storyLink': storyName}, function(err, story) { Story.find({'storyLink': storyName}, function(err, story) {
if (err) { if (err) {
@ -321,9 +321,10 @@ exports.storySubmission = function(req, res, next) {
.replace(/\'/g, '') .replace(/\'/g, '')
.replace(/\"/g, '') .replace(/\"/g, '')
.replace(/,/g, '') .replace(/,/g, '')
.replace(/[^a-z0-9]/gi, ' ')
.replace(/\s+/g, ' ') .replace(/\s+/g, ' ')
.toLowerCase(); .replace(/[^a-z0-9\s]/gi, '')
.toLowerCase()
.trim();
var link = data.link; var link = data.link;
if (link.search(/^https?:\/\//g) === -1) { if (link.search(/^https?:\/\//g) === -1) {
link = 'http://' + link; link = 'http://' + link;
@ -334,7 +335,7 @@ exports.storySubmission = function(req, res, next) {
} }
// if duplicate storyLink add unique number // if duplicate storyLink add unique number
storyLink = (storyCount == 0) ? storyLink : storyLink + ' ' + storyCount; storyLink = (storyCount === 0) ? storyLink : storyLink + ' ' + storyCount;
var link = data.link; var link = data.link;
if (link.search(/^https?:\/\//g) === -1) { if (link.search(/^https?:\/\//g) === -1) {

View File

@ -100,7 +100,6 @@ $(document).ready(function() {
}); });
$('.next-field-guide-button').on('click', function() { $('.next-field-guide-button').on('click', function() {
console.log('click');
var fieldGuideId = $('#fieldGuideId').text(); var fieldGuideId = $('#fieldGuideId').text();
completedFieldGuide(fieldGuideId); completedFieldGuide(fieldGuideId);
}); });
@ -126,7 +125,6 @@ $(document).ready(function() {
}); });
$('#next-courseware-button').on('click', function() { $('#next-courseware-button').on('click', function() {
console.log(passedCoursewareHash);
if ($('.signup-btn-nav').length < 1) { if ($('.signup-btn-nav').length < 1) {
switch (challengeType) { switch (challengeType) {
case 0: case 0:

50
seed_data/storyCleanup.js Normal file
View File

@ -0,0 +1,50 @@
/**
* Created by nathanleniz on 4/25/15.
*/
require('dotenv').load();
var mongodb = require('mongodb'),
Story = require('../models/Story.js'),
secrets = require('../config/secrets');
mongoose = require('mongoose');
mongoose.connect(secrets.db);
function storyLinkCleanup(cb) {
console.log('headLineCleanup');
var i = 1;
var stream = Story.find({}).skip(0).limit(0).batchSize(20000).stream();
stream.on('data', function (story) {
console.log(i++);
this.pause();
story.storyLink = story.storyLink.
replace(/\'/g, '').
replace(/\"/g, '').
replace(/,/g, '').
replace(/\s+/g, ' ').
replace(/[^a-z0-9\s]/gi, '').
toLowerCase().
trim();
story.save(function (err) {
if (err) {
console.log('woops');
}
this.resume();
}.bind(this));
})
.on('error', function (err) {
console.error(err);
}).on('close', function () {
console.log('done with set');
stream.destroy();
cb();
});
}
function done() {
console.log('Migration script has completed');
process.exit(0);
}
storyLinkCleanup(done);