From 462cd76d0295d845504141c62e9aae823d0782a8 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 18:41:38 -0700 Subject: [PATCH 01/40] Updated opencollective backers --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f3b5100e..1d921318 100755 --- a/README.md +++ b/README.md @@ -198,9 +198,9 @@ Does your company use TellForm? Help keep the project bug-free and feature rich Love our work and community? [Become a backer](https://opencollective.com/tellform). - + - + ## Contributors From 86ffba68e437dafc41b4c09f8d5045822b3627d8 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 18:47:22 -0700 Subject: [PATCH 02/40] Resized backer avatars --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1d921318..fb33e865 100755 --- a/README.md +++ b/README.md @@ -198,9 +198,13 @@ Does your company use TellForm? Help keep the project bug-free and feature rich Love our work and community? [Become a backer](https://opencollective.com/tellform). - + + + - + + + ## Contributors From 1566db5379590f0d9d35a30b30f9abb6e56ad548 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:07:43 -0700 Subject: [PATCH 04/40] Fixed codacy errors in user.authentication.server.controller.js --- .../users.authentication.server.controller.js | 60 +++++++------------ 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/app/controllers/users/users.authentication.server.controller.js b/app/controllers/users/users.authentication.server.controller.js index a1784b42..41667ae7 100755 --- a/app/controllers/users/users.authentication.server.controller.js +++ b/app/controllers/users/users.authentication.server.controller.js @@ -3,14 +3,11 @@ /** * Module dependencies. */ -var _ = require('lodash'), - errorHandler = require('../errors.server.controller'), +var errorHandler = require('../errors.server.controller'), mongoose = require('mongoose'), passport = require('passport'), - async = require('async'), config = require('../../../config/config'), nodemailer = require('nodemailer'), - crypto = require('crypto'), User = mongoose.model('User'), tokgen = require("../../libs/tokenGenerator"); @@ -20,9 +17,6 @@ var nev = require('email-verification')(mongoose); // NEV setup and configuration ================ var config_nev = function () { - var User = require('../../models/user.server.model'); - - nev.configure({ persistentUserModel: User, tempUserCollection: config.tempUserCollection, @@ -47,8 +41,6 @@ var config_nev = function () { verifySendMailCallback: function(err, info) { if (err) { throw err; - } else { - console.log(info); } } @@ -64,20 +56,16 @@ var config_nev = function () { config_nev(); -var smtpTransport = nodemailer.createTransport(config.mailer.options); - exports.validateVerificationToken = function(req, res){ nev.confirmTempUser(req.params.token, function(err, user) { if(err) { - console.log(errorHandler.getErrorMessage(err)); return res.status(500).send( {message: errorHandler.getErrorMessage(err) } ); } else if (user){ return res.status(200).send('User successfully verified'); - }else { - // redirect to resend verification email - return res.status(400).send( {message: 'Verification token is invalid or has expired'} ); } + // redirect to resend verification email + return res.status(400).send( {message: 'Verification token is invalid or has expired'} ); }); }; @@ -114,8 +102,6 @@ exports.signup = function(req, res) { // Then save the temporary user nev.createTempUser(user, function (err, existingPersistentUser, newTempUser) { if (err) { - console.log('Error: '); - console.log(err); return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); @@ -124,18 +110,16 @@ exports.signup = function(req, res) { // new user created if (newTempUser) { var URL = newTempUser[nev.options.URLFieldName]; - nev.sendVerificationEmail(user.email, URL, function (err, info) { - if (err) { + nev.sendVerificationEmail(user.email, URL, function (sendEmailErr, info) { + if (sendEmailErr) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); - } else { - return res.status(200).send('An email has been sent to you. Please check it to verify your account.'); } + return res.status(200).send('An email has been sent to you. Please check it to verify your account.'); }); } else { - console.log('Error: User already exists!'); return res.status(400).send({message: 'Error: User already exists!'}); } }); @@ -150,9 +134,9 @@ exports.signin = function(req, res, next) { res.status(400).send(info); } else { // Remove sensitive data before login - user.password = undefined; - user.salt = undefined; - user.provider = undefined; + user.password = null; + user.salt = null; + user.provider = null; req.login(user, function(err) { if (err) { @@ -227,7 +211,7 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { var possibleUsername = providerUserProfile.username || ((providerUserProfile.email) ? providerUserProfile.email.split('@')[0] : ''); User.findUniqueUsername(possibleUsername, null, function(availableUsername) { - user = new User({ + var newUser = new User({ firstName: providerUserProfile.firstName, lastName: providerUserProfile.lastName, username: availableUsername, @@ -238,13 +222,12 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { }); // And save the user - user.save(function(err) { - return done(err, user); + newUser.save(function(userSaveErr) { + return done(userSaveErr, user); }); }); - } else { - return done(err, user); } + return done(err, user); } }); } else { @@ -254,7 +237,9 @@ exports.saveOAuthUserProfile = function(req, providerUserProfile, done) { // Check if user exists, is not signed in using this provider, and doesn't have that provider data already configured if (user.provider !== providerUserProfile.provider && (!user.additionalProvidersData || !user.additionalProvidersData[providerUserProfile.provider])) { // Add the provider data to the additional provider data field - if (!user.additionalProvidersData) user.additionalProvidersData = {}; + if (!user.additionalProvidersData) { + user.additionalProvidersData = {}; + } user.additionalProvidersData[providerUserProfile.provider] = providerUserProfile.providerData; // Then tell mongoose that we've updated the additionalProvidersData field @@ -314,8 +299,10 @@ exports.generateAPIKey = function(req, res) { User.findById(req.user.id) .exec( function(err, user) { - if (err) return res.status(400).send(err); - + if (err) { + return res.status(400).send(err); + } + if (!user) { return res.status(400).send({ message: 'User does not Exist' @@ -324,10 +311,10 @@ exports.generateAPIKey = function(req, res) { user.apiKey = tokgen(); - user.save(function(err, _user) { - if (err) { + user.save(function(userSaveErr, _user) { + if (userSaveErr) { return res.status(400).send({ - message: errorHandler.getErrorMessage(err) + message: errorHandler.getErrorMessage(userSaveErr) }); } @@ -337,7 +324,6 @@ exports.generateAPIKey = function(req, res) { delete newUser.passwordHash; delete newUser.provider; - console.log(newUser); return res.json(newUser); }); From 40265a9800802d4b30813b8dfccede4f09b20c44 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:13:21 -0700 Subject: [PATCH 05/40] Cleaned up form.server.model.js --- app/models/form.server.model.js | 119 ++++++++++++++------------------ 1 file changed, 52 insertions(+), 67 deletions(-) diff --git a/app/models/form.server.model.js b/app/models/form.server.model.js index 52d8abb1..52051da8 100644 --- a/app/models/form.server.model.js +++ b/app/models/form.server.model.js @@ -6,21 +6,15 @@ var mongoose = require('mongoose'), Schema = mongoose.Schema, _ = require('lodash'), - config = require('../../config/config'), - path = require('path'), mUtilities = require('mongoose-utilities'), - fs = require('fs-extra'), async = require('async'), - mkdirp = require('mkdirp'), Random = require('random-js'), - mt = Random.engines.mt19937(), - util = require('util'); + mt = Random.engines.mt19937(); mt.autoSeed(); //Mongoose Models var FieldSchema = require('./form_field.server.model.js'); -var Field = mongoose.model('Field'); var FormSubmissionSchema = require('./form_submission.server.model.js'), FormSubmission = mongoose.model('FormSubmission', FormSubmissionSchema); @@ -221,7 +215,10 @@ FormSchema.virtual('analytics.fields').get(function () { var visitors = this.analytics.visitors; var that = this; - if(this.form_fields.length == 0) return null; + if(this.form_fields.length == 0) { + return null; + } + for(var i=0; i Date: Sat, 22 Apr 2017 19:14:43 -0700 Subject: [PATCH 06/40] Update analytics-service.client.directive.js --- .../forms/directives/analytics-service.client.directive.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/modules/forms/directives/analytics-service.client.directive.js b/public/modules/forms/directives/analytics-service.client.directive.js index d1feb456..46a40bbe 100644 --- a/public/modules/forms/directives/analytics-service.client.directive.js +++ b/public/modules/forms/directives/analytics-service.client.directive.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function SendVisitorData(Socket, $state) { + function SendVisitorData() { // Create a controller method for sending visitor data function send(form, lastActiveIndex) { @@ -60,7 +60,7 @@ .module('forms') .factory('SendVisitorData', SendVisitorData); - SendVisitorData.$inject = ['Socket', '$state', '$http']; + SendVisitorData.$inject = []; }()); From 35f0290a2fb37f6f08035f17a071224304b9522b Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:15:53 -0700 Subject: [PATCH 07/40] Fixed codacy problems in forms/base/services/socket.io.client.js --- .../base/services/socket.io.client.service.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/public/modules/forms/base/services/socket.io.client.service.js b/public/modules/forms/base/services/socket.io.client.service.js index 5c8a39e3..b49a002f 100644 --- a/public/modules/forms/base/services/socket.io.client.service.js +++ b/public/modules/forms/base/services/socket.io.client.service.js @@ -1,14 +1,11 @@ (function () { 'use strict'; - // Create the Socket.io wrapper service - angular - .module('forms') - .factory('Socket', Socket); - - Socket.$inject = ['$timeout', '$window']; function Socket($timeout, $window) { + + var service; + // Connect to Socket.io server function connect(url) { service.socket = io(url, {'transports': ['websocket', 'polling']}); @@ -39,7 +36,7 @@ } } - var service = { + service = { connect: connect, emit: emit, on: on, @@ -61,4 +58,11 @@ return service; } + + // Create the Socket.io wrapper service + angular.module('forms') + .factory('Socket', Socket); + + Socket.$inject = ['$timeout', '$window']; + }()); From b9c9939a29fafcc81ec2fa858a33dfdb35a7978b Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:17:07 -0700 Subject: [PATCH 08/40] Removed console.log from socket.io.js in config --- config/socket.io.js | 1 - 1 file changed, 1 deletion(-) diff --git a/config/socket.io.js b/config/socket.io.js index 5b92a353..4725b3c6 100644 --- a/config/socket.io.js +++ b/config/socket.io.js @@ -12,7 +12,6 @@ module.exports = function (app, db) { var io = socketio({ transports: ['websocket', 'polling'] }); if(config.socketPort){ - console.log("creating websocket server on port: "+config.socketPort); io = socketio(config.socketPort, { transports: ['websocket', 'polling'] }); } From 81cd1d173a685cca626f23b2625ebacffbc014b0 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:22:33 -0700 Subject: [PATCH 09/40] Remove unused variables and libraries from config/express.js --- config/express.js | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/config/express.js b/config/express.js index e9cffe7a..e334c6ec 100755 --- a/config/express.js +++ b/config/express.js @@ -4,7 +4,6 @@ * Module dependencies. */ var fs = require('fs-extra'), - http = require('http'), https = require('https'), express = require('express'), morgan = require('morgan'), @@ -15,7 +14,6 @@ var fs = require('fs-extra'), methodOverride = require('method-override'), cookieParser = require('cookie-parser'), helmet = require('helmet'), - multer = require('multer'), passport = require('passport'), raven = require('raven'), MongoStore = require('connect-mongo')(session), @@ -24,8 +22,7 @@ var fs = require('fs-extra'), consolidate = require('consolidate'), path = require('path'), device = require('express-device'), - client = new raven.Client(config.DSN), - connect = require('connect'); + client = new raven.Client(config.DSN); var mongoose = require('mongoose'); @@ -79,21 +76,22 @@ module.exports = function(db) { app.locals.cssFiles = config.getCSSAssets(); app.use(function (req, res, next) { - + var urlPath; if(!config.subdomainsDisabled) { var User = mongoose.model('User'); - var path = '/' + 'subdomain' + '/'; + var subdomainPath = '/subdomain/'; var subdomains = req.subdomains; - var host = req.hostname; if (subdomains.slice(0, 4).join('.') + '' === '1.0.0.127') { subdomains = subdomains.slice(4); } // continue if no subdomains - if (!subdomains.length) return next(); - - var urlPath = url.parse(req.url).path.split('/'); + if (!subdomains.length) { + return next(); + } + + urlPath = url.parse(req.url).path.split('/'); if (urlPath.indexOf('static') > -1) { urlPath.splice(1, 1); if(process.env.NODE_ENV == 'development'){ @@ -114,17 +112,16 @@ module.exports = function(db) { if (subdomains.indexOf('api') > -1) { // rebuild url - path += 'api' + req.url; + subdomainPath += 'api' + req.url; // TODO: check path and query strings are preserved // reassign url - req.url = path; + req.url = subdomainPath; return next(); } User.findOne({username: req.subdomains.reverse()[0]}).exec(function (err, user) { if (err) { - console.log(err); req.subdomains = null; // Error page return res.status(404).render('404', { @@ -139,26 +136,23 @@ module.exports = function(db) { } // rebuild url - path += subdomains.join('/') + req.url; + subdomainPath += subdomains.join('/') + req.url; // TODO: check path and query strings are preserved // reassign url - req.url = path; + req.url = subdomainPath; req.userId = user._id; // Q.E.D. - next(); + return next(); }); } else { - var urlPath = url.parse(req.url).path.split('/'); + urlPath = url.parse(req.url).path.split('/'); if (urlPath.indexOf('static') > -1 && urlPath.indexOf('view') === urlPath.indexOf('static')-1) { urlPath.splice(1, 1); req.url = urlPath.join('/'); - - console.log('\n\n\nreq.url: ' + req.url); - return next(); } return next(); @@ -293,10 +287,11 @@ module.exports = function(db) { // Assume 'not found' in the error msgs is a 404. this is somewhat silly, but valid, you can do whatever you like, set properties, use instanceof etc. app.use(function(err, req, res, next) { // If the error object doesn't exists - if (!err) return next(); - + if (!err) { + return next(); + } + // Log it - console.error(err.stack); client.captureError(err); // Error page From 1193112c4e732d8b41f7fdd494f5a95ad08378a0 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:23:23 -0700 Subject: [PATCH 10/40] Removed unused init module from server.js --- server.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server.js b/server.js index 8c628d78..db524e99 100755 --- a/server.js +++ b/server.js @@ -10,8 +10,7 @@ if ((process.env.NODE_ENV || 'development') === 'development') { require('events').EventEmitter.prototype._maxListeners = 0; -var init = require('./config/init')(), - config = require('./config/config'), +var config = require('./config/config'), mongoose = require('mongoose'), chalk = require('chalk'); From d89d964d3949735dcba5ed8c47fb22279e156b1b Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:25:00 -0700 Subject: [PATCH 11/40] Remove unused variables from users.profile.server.controller.js --- .../users/users.profile.server.controller.js | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/app/controllers/users/users.profile.server.controller.js b/app/controllers/users/users.profile.server.controller.js index 8c9f238b..71a9dad5 100755 --- a/app/controllers/users/users.profile.server.controller.js +++ b/app/controllers/users/users.profile.server.controller.js @@ -5,9 +5,7 @@ */ var _ = require('lodash'), errorHandler = require('../errors.server.controller.js'), - mongoose = require('mongoose'), - passport = require('passport'), - User = mongoose.model('User'); + mongoose = require('mongoose'); /** * Update user details @@ -15,7 +13,6 @@ var _ = require('lodash'), exports.update = function(req, res) { // Init Variables var user = req.user; - var message = null; // For security measurement we remove the roles from the req.body object delete req.body.roles; @@ -30,15 +27,15 @@ exports.update = function(req, res) { return res.status(500).send({ message: errorHandler.getErrorMessage(err) }); - } else { - req.login(user, function(err) { - if (err) { - res.status(500).send(err); - } else { - res.json(user); - } - }); - } + } + req.login(user, function(loginErr) { + if (err) { + res.status(500).send(loginErr); + } else { + res.json(user); + } + }); + }); } else { res.status(401).send({ From 89c6dc43f8dc2ab15245084b52fb83b7386e2aac Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:27:45 -0700 Subject: [PATCH 12/40] Refactored analytics_service.js --- app/sockets/analytics_service.js | 42 ++++++++++++++------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/app/sockets/analytics_service.js b/app/sockets/analytics_service.js index 229f0411..3060a855 100644 --- a/app/sockets/analytics_service.js +++ b/app/sockets/analytics_service.js @@ -4,7 +4,6 @@ * Module dependencies. */ var mongoose = require('mongoose'), - config = require('../../config/config'), errorHandler = require('../controllers/errors.server.controller'), Form = mongoose.model('Form'); @@ -32,50 +31,45 @@ module.exports = function (io, socket) { form.analytics.visitors.push(newVisitor); - form.save(function (err) { + form.save(function (formSaveErr) { if (err) { - console.log(err); - throw new Error(errorHandler.getErrorMessage(err)); + console.error(err); + throw new Error(errorHandler.getErrorMessage(formSaveErr)); } - console.log('\n\nVisitor data successfully added!'); - console.log(newVisitor); delete visitorsData[socket.id]; - if(cb) cb(); + if(cb){ + cb(); + } }); }); socket.disconnect(0); }; - io.on('connection', function(socket) { + io.on('connection', function(current_socket) { - console.log('\n\n\n\n\n CONNECTED SOCKET'); // a user has visited our page - add them to the visitorsData object - socket.on('form-visitor-data', function(data) { - socket.id = data.formId; - visitorsData[socket.id] = data; - visitorsData[socket.id].isSaved = false; + current_socket.on('form-visitor-data', function(data) { + current_socket.id = data.formId; + visitorsData[current_socket.id] = data; + visitorsData[current_socket.id].isSaved = false; if (data.isSubmitted) { saveVisitorData(data, function () { - console.log('\n\n user submitted form'); + visitorsData[current_socket.id].isSaved = true; + current_socket.disconnect(0); }); - visitorsData[socket.id].isSaved = true; - socket.disconnect(0); } }); - socket.on('disconnect', function() { - console.log('\n\n\n\n\n DISCONNECTED SOCKET'); - var data = visitorsData[socket.id]; + current_socket.on('disconnect', function() { + var data = visitorsData[current_socket.id]; - if(data){ - if(!data.isSubmitted && !data.isSaved) { - data.isSaved = true; - saveVisitorData(data); - } + if(data && !data.isSubmitted && !data.isSaved) { + data.isSaved = true; + saveVisitorData(data); } }); }); From ac91913501890837a6f296cd30180f9dd9cb2c7e Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:28:30 -0700 Subject: [PATCH 13/40] Refactored subdomain.client.service.js --- public/modules/core/services/subdomain.client.service.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/modules/core/services/subdomain.client.service.js b/public/modules/core/services/subdomain.client.service.js index eaa9c90b..39b7b048 100644 --- a/public/modules/core/services/subdomain.client.service.js +++ b/public/modules/core/services/subdomain.client.service.js @@ -2,8 +2,8 @@ angular.module('core').factory('subdomain', ['$location', function ($location) { var host = $location.host(); - if (host.indexOf('.') < 0) + if (host.indexOf('.') < 0) { return null; - else - return host.split('.')[0]; + } + return host.split('.')[0]; }]); From a2ca435a8d1211655027aac3331d0c550173ffcc Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:30:40 -0700 Subject: [PATCH 14/40] Refactored submit-form.client.service.js --- .../submit-form.client.directive.js | 41 ++++--------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/public/form_modules/forms/base/directives/submit-form.client.directive.js b/public/form_modules/forms/base/directives/submit-form.client.directive.js index e1989df6..d1c043c1 100644 --- a/public/form_modules/forms/base/directives/submit-form.client.directive.js +++ b/public/form_modules/forms/base/directives/submit-form.client.directive.js @@ -9,33 +9,6 @@ jsep.addBinaryOp("!begins", 10); jsep.addBinaryOp("ends", 10); jsep.addBinaryOp("!ends", 10); -/** - * Calculate a 32 bit FNV-1a hash - * Found here: https://gist.github.com/vaiorabbit/5657561 - * Ref.: http://isthe.com/chongo/tech/comp/fnv/ - * - * @param {string} str the input value - * @param {boolean} [asString=false] set to true to return the hash value as - * 8-digit hex string instead of an integer - * @param {integer} [seed] optionally pass the hash of the previous chunk - * @returns {integer | string} - */ -function hashFnv32a(str, asString, seed) { - /*jshint bitwise:false */ - var i, l, - hval = (seed === undefined) ? 0x811c9dc5 : seed; - - for (i = 0, l = str.length; i < l; i++) { - hval ^= str.charCodeAt(i); - hval += (hval << 1) + (hval << 4) + (hval << 7) + (hval << 8) + (hval << 24); - } - if( asString ){ - // Convert to 8 digit hex string - return ("0000000" + (hval >>> 0).toString(16)).substr(-8); - } - return hval >>> 0; -} - angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCounter', '$filter', '$rootScope', 'SendVisitorData', function ($http, TimeCounter, $filter, $rootScope, SendVisitorData) { return { @@ -136,7 +109,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun if(parse_tree.left.name === 'field'){ left = field.fieldValue; - right = logicJump.valueB + right = logicJump.valueB; } else { left = logicJump.valueB; right = field.fieldValue; @@ -192,9 +165,9 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun if($scope.selected._id === 'submit_field') { return $scope.myform.form_fields.length - 1; - } else { - return $scope.selected.index; } + return $scope.selected.index; + }; $scope.setActiveField = $rootScope.setActiveField = function(field_id, field_index, animateScroll) { @@ -212,7 +185,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun if(!field_index){ for(var i=0; i<$scope.myform.visible_form_fields.length; i++){ var currField = $scope.myform.visible_form_fields[i]; - if(field_id == currField._id){ + if(field_id === currField._id){ $scope.selected.index = i; break; } @@ -319,7 +292,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun return { type: deviceType, name: window.navigator.platform - } + }; }; var getIpAndGeo = function(){ @@ -364,7 +337,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun setTimeout(function () { $scope.submitPromise = $http.post('/forms/' + $scope.myform._id, form) - .success(function (data, status, headers) { + .success(function (data, status) { $scope.myform.submitted = true; $scope.loading = false; SendVisitorData.send($scope.myform, getActiveField(), _timeElapsed); @@ -378,7 +351,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun }; //Reload our form - $scope.reloadForm(); + $scope.reloadForm(); } }; } From ddb7e68836c8f9b687ed15a3455553fdaaa5d131 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:32:06 -0700 Subject: [PATCH 15/40] Removed unused variables in on-finish-render.client.directive.test.js --- .../directives/on-finish-render.client.directive.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/modules/forms/tests/unit/directives/on-finish-render.client.directive.test.js b/public/modules/forms/tests/unit/directives/on-finish-render.client.directive.test.js index 274f4acb..b46d19ec 100644 --- a/public/modules/forms/tests/unit/directives/on-finish-render.client.directive.test.js +++ b/public/modules/forms/tests/unit/directives/on-finish-render.client.directive.test.js @@ -21,7 +21,7 @@ scope.myfields = FormFields.types; - var e = $compile('
{{item.name}}
')(scope); + $compile('
{{item.name}}
')(scope); scope.$digest(); //run code to test @@ -34,7 +34,7 @@ // console.log(FormFields.types); scope.myfields = FormFields.types; - var e = $compile('
{{item.name}}
')(scope); + $compile('
{{item.name}}
')(scope); scope.$digest(); //run code to test @@ -43,4 +43,4 @@ })); }); -}()); \ No newline at end of file +}()); From 8122044a51560fc4512b9e09bf232338b111a116 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:33:11 -0700 Subject: [PATCH 16/40] Removed unused variable from home.client.controller.test.js --- .../tests/unit/controllers/home.client.controller.test.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/public/modules/core/tests/unit/controllers/home.client.controller.test.js b/public/modules/core/tests/unit/controllers/home.client.controller.test.js index 002352d5..178f4ba8 100755 --- a/public/modules/core/tests/unit/controllers/home.client.controller.test.js +++ b/public/modules/core/tests/unit/controllers/home.client.controller.test.js @@ -3,8 +3,7 @@ (function() { describe('HomeController', function() { //Initialize global variables - var scope, - HomeController; + var scope; // Load the main application module beforeEach(module(ApplicationConfiguration.applicationModuleName)); @@ -12,7 +11,7 @@ beforeEach(inject(function($controller, $rootScope) { scope = $rootScope.$new(); - HomeController = $controller('HomeController', { + $controller('HomeController', { $scope: scope }); })); From b494b50ed59626d466850d3e502dadb69e14053c Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:38:37 -0700 Subject: [PATCH 17/40] Refactored menus.client.service.js --- .../core/services/menus.client.service.js | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/public/modules/core/services/menus.client.service.js b/public/modules/core/services/menus.client.service.js index 6aa96923..4ed5879d 100755 --- a/public/modules/core/services/menus.client.service.js +++ b/public/modules/core/services/menus.client.service.js @@ -15,22 +15,18 @@ angular.module('core').service('Menus', [ if (user) { if (~this.roles.indexOf('*')) { return true; - } else { - for (var userRoleIndex in user.roles) { - for (var roleIndex in this.roles) { - console.log(this.roles[roleIndex]); - console.log( this.roles[roleIndex] === user.roles[userRoleIndex]); - if (this.roles[roleIndex] === user.roles[userRoleIndex]) { - return true; - } + } + for (var userRoleIndex in user.roles) { + for (var roleIndex in this.roles) { + if (this.roles[roleIndex] === user.roles[userRoleIndex]) { + return true; } } } - } else { - return this.isPublic; - } + return false; - return false; + } + return this.isPublic; }; // Validate menu existance From 014c1c578c755fba76785de7c1bec2c0e145071b Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:42:43 -0700 Subject: [PATCH 18/40] Added curly brackets to if statements in form.server.routes.test.js --- app/tests/form.server.routes.test.js | 85 +++++++++++++++++----------- 1 file changed, 53 insertions(+), 32 deletions(-) diff --git a/app/tests/form.server.routes.test.js b/app/tests/form.server.routes.test.js index 7ce90c66..d88dcaa3 100644 --- a/app/tests/form.server.routes.test.js +++ b/app/tests/form.server.routes.test.js @@ -1,15 +1,12 @@ 'use strict'; var should = require('should'), - lodash = require('lodash'), app = require('../../server'), - request = require('supertest'), Session = require('supertest-session'), mongoose = require('mongoose'), User = mongoose.model('User'), Form = mongoose.model('Form'), - Field = mongoose.model('Field'), - FormSubmission = mongoose.model('FormSubmission'); + Field = mongoose.model('Field'); /** * Globals @@ -70,8 +67,10 @@ describe('Form Routes Unit tests', function() { .end(function(signinErr, signinRes) { // Handle signin error - if (signinErr) return done(signinErr); - + if (signinErr) { + return done(signinErr); + } + var user = signinRes.body; var userId = user._id; @@ -82,16 +81,20 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(FormSaveErr, FormSaveRes) { // Handle Form save error - if (FormSaveErr) return done(FormSaveErr); - + if (FormSaveErr) { + return done(FormSaveErr); + } + // Get a list of Forms userSession.get('/forms') .expect('Content-Type', /json/) .expect(200) .end(function(FormsGetErr, FormsGetRes) { - // Handle Form save error - if (FormsGetErr) return done(FormsGetErr); - + // Handle Form save error + if (FormsGetErr) { + return done(FormsGetErr); + } + // Get Forms list var Forms = FormsGetRes.body; @@ -158,8 +161,10 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(signinErr, signinRes) { // Handle signin error - if (signinErr) return done(signinErr); - + if (signinErr) { + return done(signinErr); + } + // Save a new Form userSession.post('/forms') .send({form: myForm}) @@ -179,8 +184,10 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(FormUpdateErr, FormUpdateRes) { // Handle Form update error - if (FormUpdateErr) done(FormUpdateErr); - + if (FormUpdateErr) { + done(FormUpdateErr); + } + // Set assertions (FormUpdateRes.body._id).should.equal(FormSaveRes.body._id); (FormUpdateRes.body.title).should.match('WHY YOU GOTTA BE SO MEAN?'); @@ -204,8 +211,10 @@ describe('Form Routes Unit tests', function() { .expect('Content-Type', /json/) .expect(200) .end(function(err, res) { - if(err) return done(err) - + if(err) { + return done(err) + } + // Set assertion (res.body).should.be.an.Object.with.property('title', myForm.title); @@ -223,8 +232,10 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(signinErr, signinRes) { // Handle signin error - if (signinErr) return done(signinErr); - + if (signinErr) { + return done(signinErr); + } + // Save a new Form userSession.post('/forms') .send({form: myForm}) @@ -232,8 +243,10 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(FormSaveErr, FormSaveRes) { // Handle Form save error - if (FormSaveErr) return done(FormSaveErr); - + if (FormSaveErr) { + return done(FormSaveErr); + } + // Delete an existing Form userSession.delete('/forms/' + FormSaveRes.body._id) .send(myForm) @@ -268,7 +281,6 @@ describe('Form Routes Unit tests', function() { userSession.delete('/forms/' + FormObj._id) .expect(401) .end(function(FormDeleteErr, FormDeleteRes) { - // Handle Form error error done(FormDeleteErr); }); @@ -287,7 +299,9 @@ describe('Form Routes Unit tests', function() { .end(function(signinErr, signinRes) { // Handle signin error - if (signinErr) return done(signinErr); + if (signinErr) { + return done(signinErr); + } _user = signinRes.body; // Save a new Form @@ -297,7 +311,10 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(FormSaveErr, FormSaveRes) { // Handle Form save error - if (FormSaveErr) return done(FormSaveErr); + if (FormSaveErr) { + return done(FormSaveErr); + } + _form = FormSaveRes.body; // Get a list of Forms @@ -306,7 +323,9 @@ describe('Form Routes Unit tests', function() { .expect(200) .end(function(FormsGetErr, FormsGetRes) { // Handle Form save error - if (FormsGetErr) return done(FormsGetErr); + if (FormsGetErr) { + return done(FormsGetErr); + } var fetchedForm = FormsGetRes.body; // Set assertions @@ -323,20 +342,22 @@ describe('Form Routes Unit tests', function() { userSession.get('/auth/signout') .end(function(signoutErr, signoutRes) { - // Handle signout error - if (signoutErr) return done(signoutErr); + // Handle signout error + if (signoutErr) { + return done(signoutErr); + } _userSession.destroy(); done(); - }); + }); }); }); afterEach(function(done) { Form.remove({}).exec(function() { - User.remove({}).exec(function() { - userSession.destroy(); - done(); - }); + User.remove({}).exec(function() { + userSession.destroy(); + done(); + }); }); }); }); From e32b0383e1826cf51dfd19784295dfa24941cf79 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:44:59 -0700 Subject: [PATCH 19/40] Refactored scripts/setup.js --- scripts/setup.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/scripts/setup.js b/scripts/setup.js index 43abff5f..a6527cff 100644 --- a/scripts/setup.js +++ b/scripts/setup.js @@ -5,8 +5,7 @@ */ process.env.NODE_ENV = 'production'; -var init = require('../config/init')(), - config = require('../config/config'), +var config = require('../config/config'), mongoose = require('mongoose'), inquirer = require('inquirer'), envfile = require('envfile'), @@ -26,7 +25,7 @@ mongoose.connection.on('error', function(err) { }); // Init the express application -var app = require('../config/express')(db); +require('../config/express')(db); // Bootstrap passport config require('../config/passport')(); @@ -73,7 +72,7 @@ var nodemailer_providers = [ var bool_options = [ "TRUE", "FALSE" -] +]; var questions = [ { @@ -193,7 +192,6 @@ if(!fs.existsSync('./\.env')) { inquirer.prompt(questions.slice(1)).then(function (answers) { answers['NODE_ENV'] = 'production'; - answers['SIGNUP_DISABLED'] = false ? answers['SIGNUP_DISABLED'] === false : true; var email = answers['email']; var username = answers['username']; @@ -202,8 +200,10 @@ if(!fs.existsSync('./\.env')) { delete answers['password']; envfile.stringify(answers, function (err, str) { - fs.outputFile('./\.env', str, function (err) { - if (err) return console.error(chalk.red(err)); + fs.outputFile('./\.env', str, function (fileErr) { + if (fileErr) { + return console.error(chalk.red(fileErr)); + } console.log(chalk.green('Successfully created .env file')); }); user = new User({ @@ -216,12 +216,13 @@ if(!fs.existsSync('./\.env')) { roles: ['admin', 'user'] }); - user.save(function (err) { - if (err) return console.error(chalk.red(err)); + user.save(function (userSaveErr) { + if (err) { + return console.error(chalk.red(userSaveErr)); + } + console.log(chalk.green('Successfully created user')); - delete email; - delete pass; - + console.log(chalk.green('Have fun using TellForm!')); process.exit(1); }); @@ -231,7 +232,7 @@ if(!fs.existsSync('./\.env')) { console.log(chalk.green('Have fun using TellForm!')); } }); -}else{ +} else { console.log(chalk.red('You already have a .env file')); process.exit(1); } From 88a4f865aabcd05350ac4f4cdde3d6ffbc011a26 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:46:35 -0700 Subject: [PATCH 20/40] Refactored gruntfile.js --- gruntfile.js | 85 ++++------------------------------------------------ 1 file changed, 5 insertions(+), 80 deletions(-) diff --git a/gruntfile.js b/gruntfile.js index 7d1c71f5..af308b41 100755 --- a/gruntfile.js +++ b/gruntfile.js @@ -1,73 +1,8 @@ 'use strict'; -var spawn = require('child_process').spawn; + var bowerFiles = require('main-bower-files'); var path = require('path'); -var minBowerFiles = function(type){ - return bowerFiles(type).map( function(path, index, arr) { - var newPath = path.replace(/.([^.]+)$/g, '.min.$1'); - return exists( newPath ) ? newPath : path; - }); -}; - -var removeRootDir = function(files, removeRoot, addRoot) { - return files.map(function(file) { - if (addRoot) return file.replace(path.join(process.cwd(), removeRoot), addRoot); - return file.replace(path.join(process.cwd(), removeRoot), ''); - }); -}; - -var allBowerFiles = bowerFiles({ - filter: function(filePath){ - return (filePath.indexOf('js') > 0 && filePath.indexOf('angular-ui-utils') === -1); - } -}); - -var bowerAllArray = ['public/lib/angular/angular.js', - 'public/lib/angular-ui-select/dist/select.js', - 'public/lib/v-button/dist/v-button.js', - 'public/lib/angular-ui-scroll/dist/ui-scroll.js', - 'public/lib/angular-resource/angular-resource.js', - 'public/lib/angular-ui-router/release/angular-ui-router.js', - 'public/lib/angular-sanitize/angular-sanitize.js', - 'public/lib/angular-input-stars/angular-input-stars.js', - 'public/lib/ng-file-upload/ng-file-upload.js', - 'public/lib/angular-mocks/angular-mocks.js', - 'public/lib/angular-bootstrap/ui-bootstrap-tpls.js', - 'public/lib/angular-ui-scrollpoint/dist/scrollpoint.js', - 'public/lib/angular-ui-event/dist/event.js', - 'public/lib/angular-ui-mask/dist/mask.js', - 'public/lib/angular-ui-validate/dist/validate.js', - 'public/lib/angular-ui-indeterminate/dist/indeterminate.js', - 'public/lib/angular-ui-uploader/dist/uploader.js', - 'public/lib/raven-js/dist/raven.js', - 'public/lib/jquery-ui/jquery-ui.js', - 'public/lib/lodash/lodash.js', - 'public/lib/angular-ui-sortable/sortable.js', - 'public/lib/angular-permission/dist/angular-permission.js', - 'public/lib/file-saver.js/FileSaver.js', - 'public/lib/angular-bootstrap-colorpicker/js/bootstrap-colorpicker-module.js', - 'public/lib/angular-ui-router-tabs/src/ui-router-tabs.js', - 'public/lib/angular-scroll/angular-scroll.js', - 'public/lib/angular-animate/angular-animate.js', - 'public/lib/file-saver/FileSaver.js', - 'public/lib/html2canvas/build/html2canvas.js', - 'public/lib/jspdf/dist/jspdf.min.js', - 'public/lib/jspdf-autotable/dist/jspdf.plugin.autotable.js', - 'public/lib/angular-translate/angular-translate.js', - 'public/lib/deep-diff/index.js', - 'public/lib/jsep/build/jsep.js', - 'public/lib/clipboard/dist/clipboard.js', - 'public/lib/mobile-detect/mobile-detect.js', - 'public/lib/angular-strap/dist/angular-strap.js', - 'public/lib/angular-strap/dist/angular-strap.tpl.js', - 'public/lib/bootstrap/dist/js/bootstrap.js', - 'public/lib/angular-ui-utils/index.js', - 'public/lib/angular-raven/angular-raven.js', - 'public/lib/angular-ui-date/src/date.js', - 'public/lib/angular-busy/dist/angular-busy.js', - 'public/lib/tableExport.jquery.plugin/tableExport.min.js', - 'public/lib/ngclipboard/dist/ngclipboard.js' ]; var bowerArray = ['public/lib/angular/angular.min.js', 'public/lib/angular-scroll/angular-scroll.min.js', 'public/lib/angular-ui-select/dist/select.min.js', @@ -85,16 +20,6 @@ var bowerArray = ['public/lib/angular/angular.min.js', 'public/lib/mobile-detect/mobile-detect.js', 'public/lib/js-yaml/dist/js-yaml.js', 'public/lib/angular-sanitize/angular-sanitize.min.js']; -/* - - - - - - 'public/lib/bootstrap/dist/js/bootstrap.js', - 'public/lib/angular-raven/angular-raven.js', - 'public/lib/angular-busy/dist/angular-busy.js']; -*/ module.exports = function(grunt) { require('jit-grunt')(grunt); @@ -408,7 +333,7 @@ module.exports = function(grunt) { // A Task for loading the configuration object grunt.task.registerTask('loadConfig', 'Task that loads the config into a grunt option.', function() { - var init = require('./config/init')(); + require('./config/init')(); var config = require('./config/config'); grunt.config.set('applicationJavaScriptFiles', config.assets.js); @@ -418,9 +343,9 @@ module.exports = function(grunt) { // Code coverage tasks. grunt.registerTask('coveralls', ['env:test','mocha_istanbul:coveralls']); - grunt.registerTask('coverage', ['env:test', 'mocha_istanbul:coverage']); - grunt.registerTask('coverage:client', ['env:test', 'mocha_istanbul:coverageClient']); - grunt.registerTask('coverage:server', ['env:test', 'mocha_istanbul:coverageServer']); + grunt.registerTask('coverage', ['env:test', 'mocha_istanbul:coverage']); + grunt.registerTask('coverage:client', ['env:test', 'mocha_istanbul:coverageClient']); + grunt.registerTask('coverage:server', ['env:test', 'mocha_istanbul:coverageServer']); // Default task(s). grunt.registerTask('default', ['lint', 'html2js:main', 'html2js:forms', 'env', 'concurrent:default']); From c09c8ee47366d4ebce00e32cc6819d275f1636ec Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:47:26 -0700 Subject: [PATCH 21/40] Removed unused var from public/config.js --- public/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/config.js b/public/config.js index de3e7f7a..bc0a2fee 100755 --- a/public/config.js +++ b/public/config.js @@ -1,7 +1,7 @@ 'use strict'; // Init the application configuration module for AngularJS application -var ApplicationConfiguration = (function() { +(function() { // Init module configuration options var applicationModuleName = 'NodeForm'; var applicationModuleVendorDependencies = ['duScroll', 'ui.select', 'cgBusy', 'ngSanitize', 'vButton', 'ngResource', 'TellForm.templates', 'ui.router', 'ui.bootstrap', 'ui.utils', 'pascalprecht.translate']; From 2deeec5c848277d70aad9b392ca0dde7cfcadde4 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:49:24 -0700 Subject: [PATCH 22/40] Refactored user.server.routes.test.js --- app/tests/user.server.routes.test.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/tests/user.server.routes.test.js b/app/tests/user.server.routes.test.js index a2ce1403..3bc7800c 100644 --- a/app/tests/user.server.routes.test.js +++ b/app/tests/user.server.routes.test.js @@ -1,9 +1,7 @@ 'use strict'; var should = require('should'), - _ = require('lodash'), app = require('../../server'), - request = require('supertest'), Session = require('supertest-session'), mongoose = require('mongoose'), User = mongoose.model('User'), @@ -13,11 +11,7 @@ var should = require('should'), /** * Globals */ -var credentials, _User; -var _tmpUser, activateToken; -var username, userSession; - -username = 'testActiveAccount1.be1e58fb@mailosaur.in'; +var credentials, _User, activateToken, userSession; /** * Form routes tests @@ -50,7 +44,7 @@ describe('User CRUD tests', function() { userSession.post('/auth/signup') .send(_User) .expect(200) - .end(function(FormSaveErr, FormSaveRes) { + .end(function(FormSaveErr) { console.log('CREATING USER'); // Handle error should.not.exist(FormSaveErr); @@ -69,7 +63,10 @@ describe('User CRUD tests', function() { .expect(200) .end(function(VerifyErr, VerifyRes) { // Handle error - if (VerifyErr) return done(VerifyErr); + if (VerifyErr) { + return done(VerifyErr); + } + (VerifyRes.text).should.equal('User successfully verified'); userSession.post('/auth/signin') @@ -78,7 +75,9 @@ describe('User CRUD tests', function() { .expect(200) .end(function(signinErr, signinRes) { // Handle signin error - if (signinErr) return done(signinErr); + if (signinErr) { + return done(signinErr); + } var user = signinRes.body; (user.username).should.equal(credentials.username); @@ -88,7 +87,9 @@ describe('User CRUD tests', function() { .end(function(signoutErr, signoutRes) { // Handle signout error - if (signoutErr) return done(signoutErr); + if (signoutErr) { + return done(signoutErr); + } (signoutRes.text).should.equal('You have successfully logged out.'); @@ -107,8 +108,8 @@ describe('User CRUD tests', function() { afterEach(function(done) { User.remove().exec(function () { tmpUser.remove().exec(function(){ - userSession.destroy(); - done(); + userSession.destroy(); + done(); }); }); }); From 7148c11af53b8efb83775f25bb3a07a78e224ba8 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:50:37 -0700 Subject: [PATCH 23/40] Removed unused vars from form_submission.server.model.js --- app/models/form_submission.server.model.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/app/models/form_submission.server.model.js b/app/models/form_submission.server.model.js index 496ce7d4..04dabd8e 100644 --- a/app/models/form_submission.server.model.js +++ b/app/models/form_submission.server.model.js @@ -5,24 +5,9 @@ */ var mongoose = require('mongoose'), Schema = mongoose.Schema, - _ = require('lodash'), - config = require('../../config/config'), - path = require('path'), - fs = require('fs-extra'), mUtilities = require('mongoose-utilities'), - async = require('async'), FieldSchema = require('./form_field.server.model.js'); -// Setter function for form_fields -function formFieldsSetter(form_fields) { - for (var i = 0; i < form_fields.length; i++) { - form_fields[i].isSubmission = true; - form_fields[i].submissionId = form_fields[i]._id; - form_fields[i]._id = new mongoose.mongo.ObjectID(); - } - return form_fields; -} - /** * Form Submission Schema */ From 50086c9c534495f652efa9447b3751c38c014ce5 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:52:40 -0700 Subject: [PATCH 24/40] Removed unused vars from list-forms.client.controller.test.js --- .../list-forms.client.controller.test.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/public/modules/forms/tests/unit/controllers/list-forms.client.controller.test.js b/public/modules/forms/tests/unit/controllers/list-forms.client.controller.test.js index c89e73cf..fa96a052 100644 --- a/public/modules/forms/tests/unit/controllers/list-forms.client.controller.test.js +++ b/public/modules/forms/tests/unit/controllers/list-forms.client.controller.test.js @@ -4,12 +4,9 @@ // Forms Controller Spec describe('ListForms Controller Tests', function() { // Initialize global variables - var ListFormsController, - createListFormsController, + var createListFormsController, scope, $httpBackend, - $stateParams, - $location, $state; var sampleForm = { @@ -93,7 +90,7 @@ // The injector ignores leading and trailing underscores here (i.e. _$httpBackend_). // This allows us to inject a service but then attach it to a variable // with the same name as the service. - beforeEach(inject(function($controller, $rootScope, _$state_, _$location_, _$stateParams_, _$httpBackend_, CurrentForm, Forms) { + beforeEach(inject(function($controller, $rootScope, _$state_, _$location_, _$stateParams_, _$httpBackend_, CurrentForm) { // Set a new global scope scope = $rootScope.$new(); @@ -115,7 +112,7 @@ }; })); - it('$scope.findAll() should query all User\'s Forms', inject(function(Forms) { + it('$scope.findAll() should query all User\'s Forms', inject(function() { var controller = createListFormsController(); @@ -130,7 +127,7 @@ expect( scope.myforms ).toEqualData(sampleFormList); })); - it('$scope.duplicateForm() should duplicate a Form', inject(function(Forms) { + it('$scope.duplicateForm() should duplicate a Form', inject(function() { var dupSampleForm = sampleFormList[2], dupSampleForm_index = 3, @@ -160,7 +157,7 @@ expect( scope.myforms[dupSampleForm_index] ).toEqualData(dupSampleForm); })); - it('$scope.removeForm() should remove a Form', inject(function(Forms) { + it('$scope.removeForm() should remove a Form', inject(function() { var delIndex = 0, delSampleForm = sampleFormList[delIndex], @@ -191,7 +188,7 @@ expect( scope.myforms[0] ).not.toEqualData(delSampleForm); })); - it('$scope.createNewForm() should create a new Form', inject(function(Forms) { + it('$scope.createNewForm() should create a new Form', inject(function() { var newForm = _.clone(sampleForm); newForm.name = 'Test Form5'; From dca2003e06653844d7ad67a6affbf4a6e1cf3207 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:54:07 -0700 Subject: [PATCH 25/40] Update gruntfile.js --- gruntfile.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/gruntfile.js b/gruntfile.js index af308b41..5aff1082 100755 --- a/gruntfile.js +++ b/gruntfile.js @@ -1,8 +1,5 @@ 'use strict'; -var bowerFiles = require('main-bower-files'); -var path = require('path'); - var bowerArray = ['public/lib/angular/angular.min.js', 'public/lib/angular-scroll/angular-scroll.min.js', 'public/lib/angular-ui-select/dist/select.min.js', From efb6fa6d7fc8b56a90062bf9e30c417ecb2a020c Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:54:56 -0700 Subject: [PATCH 26/40] Refactored time-counter.client.service.js --- .../forms/base/services/time-counter.client.service.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/public/form_modules/forms/base/services/time-counter.client.service.js b/public/form_modules/forms/base/services/time-counter.client.service.js index bf2f63b8..57c42680 100644 --- a/public/form_modules/forms/base/services/time-counter.client.service.js +++ b/public/form_modules/forms/base/services/time-counter.client.service.js @@ -2,7 +2,7 @@ angular.module('view-form').service('TimeCounter', [ function(){ - var _startTime, _endTime = null, that=this; + var _startTime, _endTime = null; this.timeSpent = 0; @@ -25,9 +25,8 @@ angular.module('view-form').service('TimeCounter', [ this._startTime = this._endTime = null; return this.timeSpent; - }else{ - return new Error('Clock has not been started'); } + return new Error('Clock has not been started'); }; this.clockStarted = function(){ From 367e2df0adf94f6c44d2e430a434f7d309b52bba Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:56:47 -0700 Subject: [PATCH 27/40] Refactored form.server.model.test.js --- app/tests/form.server.model.test.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/app/tests/form.server.model.test.js b/app/tests/form.server.model.test.js index c18fe72b..697fe87e 100644 --- a/app/tests/form.server.model.test.js +++ b/app/tests/form.server.model.test.js @@ -6,16 +6,12 @@ var should = require('should'), mongoose = require('mongoose'), User = mongoose.model('User'), - Form = mongoose.model('Form'), - Field = mongoose.model('Field'), - _ = require('lodash'), - config = require('../../config/config'), - FormSubmission = mongoose.model('FormSubmission'); + Form = mongoose.model('Form'); /** * Globals */ -var user, myForm, mySubmission; +var user, myForm; /** * Unit tests @@ -34,8 +30,7 @@ describe('Form Model Unit Tests:', function() { user.save(function(err) { if(err) { - done(err); - return; + return done(err); } myForm = new Form({ title: 'Form Title', @@ -75,12 +70,11 @@ describe('Form Model Unit Tests:', function() { describe('Method Find', function(){ beforeEach(function(done){ myForm.save(function(err) { - if(err) return done(err); - done(); + return done(err); }); }); it('should be able to findOne my form without problems', function(done) { - Form.findOne({title: myForm.title}).exec(function(err,form) { + Form.findOne({title: myForm.title}).exec(function(err, form) { should.not.exist(err); should.exist(form); From 736595e8eece81c8e0660cab7d1c16c970ecee8f Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 19:57:59 -0700 Subject: [PATCH 28/40] Change "==" to "===" in config/express.js --- config/express.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/express.js b/config/express.js index e334c6ec..2719f01d 100755 --- a/config/express.js +++ b/config/express.js @@ -94,7 +94,7 @@ module.exports = function(db) { urlPath = url.parse(req.url).path.split('/'); if (urlPath.indexOf('static') > -1) { urlPath.splice(1, 1); - if(process.env.NODE_ENV == 'development'){ + if(process.env.NODE_ENV === 'development'){ req.root = req.protocol + '://' + config.baseUrl + ':' + config.port + urlPath.join('/'); } else { req.root = req.protocol + '://' + config.baseUrl + urlPath.join('/'); From 43ce29c83945de12688f17a7952932c435b8bae7 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 20:01:03 -0700 Subject: [PATCH 29/40] Update edit-submissions-form.client.directive.js --- .../edit-submissions-form.client.directive.js | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js b/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js index 65d5e2ca..9f2b841c 100644 --- a/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js +++ b/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js @@ -7,7 +7,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', restrict: 'E', scope: { user:'=', - myform: '=' + myform: '=' }, controller: function($scope){ @@ -48,11 +48,13 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', var totalTime = 0; var numSubmissions = $scope.table.rows.length; - for(var i=0; i<$scope.table.rows.length; i++){ + for(i=0; i<$scope.table.rows.length; i++){ totalTime += $scope.table.rows[i].timeElapsed; } - if(numSubmissions == 0) return 0; + if(numSubmissions === 0) { + return 0; + } return (totalTime/numSubmissions).toFixed(0); })(); @@ -77,7 +79,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', if($scope.myform.analytics && $scope.myform.analytics.visitors) { var visitors = $scope.myform.analytics.visitors; - for (var i = 0; i < visitors.length; i++) { + for (i = 0; i < visitors.length; i++) { var visitor = visitors[i]; var deviceType = visitor.deviceType; @@ -86,12 +88,18 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', stats[deviceType].total_time = stats[deviceType].total_time + visitor.timeElapsed; stats[deviceType].average_time = (stats[deviceType].total_time / stats[deviceType].visits).toFixed(0); - if(!stats[deviceType].average_time) stats[deviceType].average_time = 0; - - if (visitor.isSubmitted) stats[deviceType].responses++; + if(!stats[deviceType].average_time) { + stats[deviceType].average_time = 0; + } + + if (visitor.isSubmitted) { + stats[deviceType].responses++; + } stats[deviceType].completion = (stats[deviceType].responses / stats[deviceType].visits).toFixed(0); - if(!stats[deviceType].completion) stats[deviceType].completion = 0; + if(!stats[deviceType].completion) { + stats[deviceType].completion = 0; + } } } From 175ee4cd8a54d0722f31f7649b43797dcc78e758 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 20:46:57 -0700 Subject: [PATCH 30/40] Refactor users.authentication.server.controller.js's if statements --- .../users.authentication.server.controller.js | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/app/controllers/users/users.authentication.server.controller.js b/app/controllers/users/users.authentication.server.controller.js index 41667ae7..f944e544 100755 --- a/app/controllers/users/users.authentication.server.controller.js +++ b/app/controllers/users/users.authentication.server.controller.js @@ -7,7 +7,6 @@ var errorHandler = require('../errors.server.controller'), mongoose = require('mongoose'), passport = require('passport'), config = require('../../../config/config'), - nodemailer = require('nodemailer'), User = mongoose.model('User'), tokgen = require("../../libs/tokenGenerator"); @@ -45,11 +44,15 @@ var config_nev = function () { } }, function(err, options){ - if(err) throw err; + if(err) { + throw err; + } }); nev.generateTempUserModel(User, function(err){ - if(err) throw err; + if(err) { + throw err; + } }); }; @@ -119,9 +122,8 @@ exports.signup = function(req, res) { } return res.status(200).send('An email has been sent to you. Please check it to verify your account.'); }); - } else { - return res.status(400).send({message: 'Error: User already exists!'}); - } + } + return res.status(400).send({message: 'Error: User already exists!'}); }); }; @@ -138,14 +140,13 @@ exports.signin = function(req, res, next) { user.salt = null; user.provider = null; - req.login(user, function(err) { - if (err) { + req.login(user, function(loginErr) { + if (loginErr) { return res.status(400).send({ - message: errorHandler.getErrorMessage(err) + message: errorHandler.getErrorMessage(loginErr) }); - } else { - return res.json(user); } + return res.json(user); }); } })(req, res, next); From 43365fb3fc514570384a2e4bd2303a1b7d8ee6c4 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 20:48:28 -0700 Subject: [PATCH 31/40] Removed unused $timeout dependency from on-finish-render.client.directive.js --- .../base/directives/on-finish-render.client.directive.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/public/modules/forms/base/directives/on-finish-render.client.directive.js b/public/modules/forms/base/directives/on-finish-render.client.directive.js index 2a21b868..1cfed966 100644 --- a/public/modules/forms/base/directives/on-finish-render.client.directive.js +++ b/public/modules/forms/base/directives/on-finish-render.client.directive.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('forms').directive('onFinishRender', function ($rootScope, $timeout) { +angular.module('forms').directive('onFinishRender', function ($rootScope) { return { restrict: 'A', link: function (scope, element, attrs) { @@ -16,9 +16,8 @@ angular.module('forms').directive('onFinishRender', function ($rootScope, $timeo scope.$evalAsync(function () { $rootScope.$broadcast(broadcastMessage+' Started'); }); - }else if(scope.$last) { + } else if(scope.$last) { scope.$evalAsync(function () { - // console.log(broadcastMessage+'Finished'); $rootScope.$broadcast(broadcastMessage+' Finished'); }); } From bf97f95175ffc00ba0a6fd9b4b1584be7c3d1405 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Sat, 22 Apr 2017 20:49:49 -0700 Subject: [PATCH 32/40] Update edit-form.client.view.html --- .../admin/views/directiveViews/form/edit-form.client.view.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html b/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html index 07f26093..ec8be8ee 100644 --- a/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html +++ b/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html @@ -1,4 +1,4 @@ -
+