Merge pull request #369 from terakilobyte/staging
Bug fixes to stories and fieldguidespull/373/merge
commit
4e9f8b9458
1
app.js
1
app.js
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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);
|
Loading…
Reference in New Issue