From 5d20988b10bceeff3c452f689189c997bf220e8e Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Tue, 14 Oct 2014 12:14:17 +0300 Subject: [PATCH 001/106] adding support for configurable session cookie parameters for express --- config/env/all.js | 23 +++++++++++++++++++++++ config/express.js | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/config/env/all.js b/config/env/all.js index 33ca9948d3..17792288ab 100644 --- a/config/env/all.js +++ b/config/env/all.js @@ -8,8 +8,31 @@ module.exports = { }, port: process.env.PORT || 3000, templateEngine: 'swig', + + // The secret should be set to a non-guessable string that + // is used to compute a session hash sessionSecret: 'MEAN', + + // The name of the MongoDB collection to store sessions in sessionCollection: 'sessions', + + // The session cookie settings + sessionCookie: { + path: '/', + httpOnly: true, + // If secure is set to true then it will cause the cookie to be set + // only when SSL-enabled (HTTPS) is used, and otherwise it won't + // set a cookie. 'true' is recommended yet it requires the above + // mentioned pre-requisite. + secure: false, + // Only set the maxAge to null if the cookie shouldn't be expired + // at all. The cookie will expunge when the browser is closed. + maxAge: null + }, + + // The session cookie name + sessionName: 'connect.sid', + assets: { lib: { css: [ diff --git a/config/express.js b/config/express.js index bea1c88dac..2a577ce943 100755 --- a/config/express.js +++ b/config/express.js @@ -93,7 +93,9 @@ module.exports = function(db) { store: new mongoStore({ db: db.connection.db, collection: config.sessionCollection - }) + }), + cookie: config.sessionCookie, + name: config.sessionName })); // use passport session From 84efda1eb04209fe83e08e7e1b6f25d2ba3aad16 Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Tue, 14 Oct 2014 12:18:06 +0300 Subject: [PATCH 002/106] fixing identations --- config/env/all.js | 30 +++++++++++++++--------------- config/express.js | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config/env/all.js b/config/env/all.js index 17792288ab..eee7db53bd 100644 --- a/config/env/all.js +++ b/config/env/all.js @@ -10,28 +10,28 @@ module.exports = { templateEngine: 'swig', // The secret should be set to a non-guessable string that - // is used to compute a session hash + // is used to compute a session hash sessionSecret: 'MEAN', // The name of the MongoDB collection to store sessions in sessionCollection: 'sessions', // The session cookie settings - sessionCookie: { - path: '/', - httpOnly: true, - // If secure is set to true then it will cause the cookie to be set - // only when SSL-enabled (HTTPS) is used, and otherwise it won't - // set a cookie. 'true' is recommended yet it requires the above - // mentioned pre-requisite. - secure: false, - // Only set the maxAge to null if the cookie shouldn't be expired - // at all. The cookie will expunge when the browser is closed. - maxAge: null - }, + sessionCookie: { + path: '/', + httpOnly: true, + // If secure is set to true then it will cause the cookie to be set + // only when SSL-enabled (HTTPS) is used, and otherwise it won't + // set a cookie. 'true' is recommended yet it requires the above + // mentioned pre-requisite. + secure: false, + // Only set the maxAge to null if the cookie shouldn't be expired + // at all. The cookie will expunge when the browser is closed. + maxAge: null + }, - // The session cookie name - sessionName: 'connect.sid', + // The session cookie name + sessionName: 'connect.sid', assets: { lib: { diff --git a/config/express.js b/config/express.js index 2a577ce943..30d05b4ae8 100755 --- a/config/express.js +++ b/config/express.js @@ -95,7 +95,7 @@ module.exports = function(db) { collection: config.sessionCollection }), cookie: config.sessionCookie, - name: config.sessionName + name: config.sessionName })); // use passport session From 619c7f2642ffe726dcaa61296dcbfe8eafb8bb6e Mon Sep 17 00:00:00 2001 From: Urs Wolfer Date: Thu, 23 Oct 2014 12:34:52 +0200 Subject: [PATCH 003/106] Show error message when sending password request mail fails It used to fail silently (client only displays error when a message is available). --- app/controllers/users/users.password.server.controller.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/users/users.password.server.controller.js b/app/controllers/users/users.password.server.controller.js index 7ffb04e849..0934e64f92 100644 --- a/app/controllers/users/users.password.server.controller.js +++ b/app/controllers/users/users.password.server.controller.js @@ -77,6 +77,10 @@ exports.forgot = function(req, res, next) { res.send({ message: 'An email has been sent to ' + user.email + ' with further instructions.' }); + } else { + return res.status(400).send({ + message: 'Failure sending email' + }); } done(err); From 86d38df702b81f29ce0b496c4af30b6f2397dfc5 Mon Sep 17 00:00:00 2001 From: Dan Bunker Date: Mon, 3 Nov 2014 12:43:52 -0700 Subject: [PATCH 004/106] typo removed extra comma --- gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gruntfile.js b/gruntfile.js index 9bd7a8c61a..9d4a070414 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -31,7 +31,7 @@ module.exports = function(grunt) { clientViews: { files: watchFiles.clientViews, options: { - livereload: true, + livereload: true } }, clientJS: { From 7174625bc1f43295dff81443b1aef162cad079c5 Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Mon, 3 Nov 2014 23:20:28 +0200 Subject: [PATCH 005/106] added domain configuration option if required to set the cookie for a specific host --- config/env/all.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config/env/all.js b/config/env/all.js index eee7db53bd..ec52a09b61 100644 --- a/config/env/all.js +++ b/config/env/all.js @@ -27,7 +27,10 @@ module.exports = { secure: false, // Only set the maxAge to null if the cookie shouldn't be expired // at all. The cookie will expunge when the browser is closed. - maxAge: null + maxAge: null, + // To set the cookie in a specific domain uncomment the following + // setting: + // domain: 'yourdomain.com' }, // The session cookie name From d27baeac1fefc93450792e84120757c3dcf05a3d Mon Sep 17 00:00:00 2001 From: Andrew McKinlay Date: Mon, 3 Nov 2014 19:10:37 -0500 Subject: [PATCH 006/106] Remove unecessary comment in karma.conf.js --- karma.conf.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index e85f39b7ca..0f5ab311fd 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -16,7 +16,6 @@ module.exports = function(config) { // Test results reporter to use // Possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' - //reporters: ['progress'], reporters: ['progress'], // Web server port @@ -49,4 +48,4 @@ module.exports = function(config) { // If true, it capture browsers, run tests and exit singleRun: true }); -}; \ No newline at end of file +}; From 325a19e2763dcd1be5683d98ce95f9ac343a2a9d Mon Sep 17 00:00:00 2001 From: Rupert Muchembled Date: Wed, 5 Nov 2014 20:33:01 +0000 Subject: [PATCH 007/106] Correctly encode and decode password salt The user password salt should be encoded with Base64 before being saved to the database. The current code adds an unecessary step of converting the result of crypto.randomBytes() (which already returns a SlowBuffer) to a Base64 string and back again to a Buffer, and misses the final step of converting the Buffer's bytes back to a Base64 string. Because of this, the salt stored in the database is garbled. This is inconvenient when manipulating the data in a terminal or text editor. When generating the password hash, the crypto.pbkdf2Sync() method creates a new Buffer directly from the data supplied. Due to the incorrect encoding of the salt, entropy is lost at this step, weakening the security of stored passwords against brute force attacks. --- app/models/user.server.model.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/user.server.model.js b/app/models/user.server.model.js index 9370da01c6..98c308f0e9 100755 --- a/app/models/user.server.model.js +++ b/app/models/user.server.model.js @@ -96,7 +96,7 @@ var UserSchema = new Schema({ */ UserSchema.pre('save', function(next) { if (this.password && this.password.length > 6) { - this.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64'); + this.salt = crypto.randomBytes(16).toString('base64'); this.password = this.hashPassword(this.password); } @@ -108,7 +108,7 @@ UserSchema.pre('save', function(next) { */ UserSchema.methods.hashPassword = function(password) { if (this.salt && password) { - return crypto.pbkdf2Sync(password, this.salt, 10000, 64).toString('base64'); + return crypto.pbkdf2Sync(password, new Buffer(this.salt, 'base64'), 10000, 64).toString('base64'); } else { return password; } From 30fd05c5c21fc6e28446eb67dcd122d58b60f4a3 Mon Sep 17 00:00:00 2001 From: Ilan Biala Date: Mon, 10 Nov 2014 09:42:59 -0500 Subject: [PATCH 008/106] Update package.json --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 80638c37b1..7807d2716c 100755 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "url": "https://github.com/meanjs/mean.git" }, "engines": { - "node": "0.10.x", - "npm": "1.4.x" + "node": ">=0.10.28", + "npm": ">=1.4.28" }, "scripts": { "start": "grunt", @@ -70,4 +70,4 @@ "karma-firefox-launcher": "~0.1.3", "karma-phantomjs-launcher": "~0.1.2" } -} \ No newline at end of file +} From d5cf18a1f54deb322205ad33d2eb579bc587bcc7 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Mon, 10 Nov 2014 17:23:45 +0000 Subject: [PATCH 009/106] Abstract nodemailer createTransport Currently createTransport is unnecessarily called upon every time a password request is made. --- app/controllers/users/users.password.server.controller.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/users/users.password.server.controller.js b/app/controllers/users/users.password.server.controller.js index 1d4ae65e8a..a80f555332 100644 --- a/app/controllers/users/users.password.server.controller.js +++ b/app/controllers/users/users.password.server.controller.js @@ -12,6 +12,8 @@ var _ = require('lodash'), nodemailer = require('nodemailer'), async = require('async'), crypto = require('crypto'); + +var smtpTransport = nodemailer.createTransport(config.mailer.options); /** * Forgot for reset password (forgot POST) @@ -65,7 +67,6 @@ exports.forgot = function(req, res, next) { }, // If valid email, send reset email using service function(emailHTML, user, done) { - var smtpTransport = nodemailer.createTransport(config.mailer.options); var mailOptions = { to: user.email, from: config.mailer.from, @@ -167,7 +168,6 @@ exports.reset = function(req, res, next) { }, // If valid email, send reset email using service function(emailHTML, user, done) { - var smtpTransport = nodemailer.createTransport(config.mailer.options); var mailOptions = { to: user.email, from: config.mailer.from, @@ -242,4 +242,4 @@ exports.changePassword = function(req, res) { message: 'User is not signed in' }); } -}; \ No newline at end of file +}; From fd98f266dbf20ed02e225beebbc7691de08d5637 Mon Sep 17 00:00:00 2001 From: Ilan Biala Date: Tue, 11 Nov 2014 16:39:10 -0500 Subject: [PATCH 010/106] Update .travis.yml --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0abd7e4bb2..708607e326 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: node_js node_js: - "0.10" + - "0.11" env: - NODE_ENV=travis services: - - mongodb \ No newline at end of file + - mongodb From 959d7e7423201c4310467e6fe0ba55532a9ee00b Mon Sep 17 00:00:00 2001 From: Wesley Smith Date: Sat, 15 Nov 2014 18:39:27 -0700 Subject: [PATCH 011/106] Fixed two tiny typos. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6f7d5f4f34..5561c4fb69 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ $ npm install This command does a few things: * First it will install the dependencies needed for the application to run. * If you're running in a development environment, it will then also install development dependencies needed for testing and running your application. -* Finally, when the install process is over, npm will initiate a bower install command to install all the front-end modules needed for the application +* Finally, when the install process is over, npm will initiate a bower install command to install all the front-end modules needed for the application. ## Running Your Application After the install process is over, you'll be able to run your application using Grunt, just run grunt default task: @@ -110,7 +110,7 @@ Windows users can follow instructions found [here](http://www.websense.com/suppo To generate the key and certificate and place them in the *config/sslcert* folder. ## Getting Started With MEAN.JS -You have your application running but there are a lot of stuff to understand, we recommend you'll go over the [Official Documentation](http://meanjs.org/docs.html). +You have your application running but there is a lot of stuff to understand, we recommend you'll go over the [Official Documentation](http://meanjs.org/docs.html). In the docs we'll try to explain both general concepts of MEAN components and give you some guidelines to help you improve your development process. We tried covering as many aspects as possible, and will keep update it by your request, you can also help us develop the documentation better by checking out the *gh-pages* branch of this repository. ## Community From 873e91f9e2505bc06b43d6febbb314fbd70eada4 Mon Sep 17 00:00:00 2001 From: Wesley Smith Date: Sun, 16 Nov 2014 19:14:13 -0700 Subject: [PATCH 012/106] Fixed error message for non-unique username. --- app/models/user.server.model.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.server.model.js b/app/models/user.server.model.js index 9370da01c6..840464af0a 100755 --- a/app/models/user.server.model.js +++ b/app/models/user.server.model.js @@ -50,7 +50,7 @@ var UserSchema = new Schema({ }, username: { type: String, - unique: 'testing error message', + unique: 'Username already exists', required: 'Please fill in a username', trim: true }, From e4519bc40759b1c3ae8a4d45443fcd781d3335f9 Mon Sep 17 00:00:00 2001 From: Wesley Smith Date: Mon, 17 Nov 2014 01:53:51 -0700 Subject: [PATCH 013/106] Removed unneeded comas from gruntfile. --- gruntfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gruntfile.js b/gruntfile.js index 4555485743..fd0b02a246 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -31,7 +31,7 @@ module.exports = function(grunt) { clientViews: { files: watchFiles.clientViews, options: { - livereload: true, + livereload: true } }, clientJS: { @@ -59,7 +59,7 @@ module.exports = function(grunt) { }, csslint: { options: { - csslintrc: '.csslintrc', + csslintrc: '.csslintrc' }, all: { src: watchFiles.clientCSS From 374b45c1260cab3a8c26706241a0496152f0856d Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Tue, 18 Nov 2014 23:00:52 +0200 Subject: [PATCH 014/106] providing more verbose output for current nodejs app configuration on application startup --- server.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index 98d108bbcb..a88f8feccf 100755 --- a/server.js +++ b/server.js @@ -33,4 +33,9 @@ app.listen(config.port); exports = module.exports = app; // Logging initialization -console.log('MEAN.JS application started on port ' + config.port); \ No newline at end of file +console.log('--'); +console.log(chalk.green(config.app.title + ' application started')); +console.log(chalk.green('Environment:\t\t\t' + process.env.NODE_ENV)); +console.log(chalk.green('Port:\t\t\t\t' + config.port)); +console.log(chalk.green('Database:\t\t\t' + config.db)); +console.log('--'); \ No newline at end of file From adf6e0ce65d35e280db85d868e9bca98f2e2d20c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Je=CC=81ro=CC=82me=20Gagnon-Voyer?= Date: Wed, 19 Nov 2014 17:17:55 -0500 Subject: [PATCH 015/106] update to angular-bootstrap 0.12.0 + fix breaking changes details on breaking changes: https://github.com/angular-ui/bootstrap/blob/eec68d81f4f72363d37493c495b 892347bdb9e1b/CHANGELOG.md Conflicts: bower.json --- bower.json | 3 ++- public/modules/core/views/header.client.view.html | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index 3d7a7451dc..a49e03392d 100644 --- a/bower.json +++ b/bower.json @@ -9,7 +9,8 @@ "angular-animate": "~1.2", "angular-mocks": "~1.2", "angular-bootstrap": "~0.11.2", + "angular-bootstrap": "~0.12.0", "angular-ui-utils": "~0.1.1", "angular-ui-router": "~0.2.11" } -} \ No newline at end of file +} diff --git a/public/modules/core/views/header.client.view.html b/public/modules/core/views/header.client.view.html index eb6ac6dfa4..541aa3a8d4 100644 --- a/public/modules/core/views/header.client.view.html +++ b/public/modules/core/views/header.client.view.html @@ -11,7 +11,7 @@ - \ No newline at end of file + diff --git a/modules/core/server/views/layout.server.view.html b/modules/core/server/views/layout.server.view.html index c5b350467c..8fefeb6cc9 100644 --- a/modules/core/server/views/layout.server.view.html +++ b/modules/core/server/views/layout.server.view.html @@ -72,4 +72,4 @@ {% endif %} - \ No newline at end of file + diff --git a/modules/users/server/config/users.server.config.js b/modules/users/server/config/users.server.config.js index 84d20558c9..fa883bd213 100644 --- a/modules/users/server/config/users.server.config.js +++ b/modules/users/server/config/users.server.config.js @@ -34,4 +34,4 @@ module.exports = function(app, db) { // Add passport's middleware app.use(passport.initialize()); app.use(passport.session()); -}; \ No newline at end of file +}; diff --git a/package.json b/package.json index 407d9a5d66..ba7f71c7c9 100644 --- a/package.json +++ b/package.json @@ -95,4 +95,4 @@ "karma-firefox-launcher": "~0.1.3", "karma-phantomjs-launcher": "~0.1.2" } -} \ No newline at end of file +} diff --git a/server.js b/server.js index 4e697a2b8e..fd0a06d30c 100644 --- a/server.js +++ b/server.js @@ -31,4 +31,4 @@ mongoose.connect(function (db) { console.log(chalk.green('HTTPs:\t\t\t\ton')); } console.log('--'); -}); \ No newline at end of file +}); From 75aad2e0ba9d9be2ca3a7de847bf5bafa8f2bfac Mon Sep 17 00:00:00 2001 From: Mikael Korpela Date: Sun, 5 Jul 2015 23:09:53 +0300 Subject: [PATCH 082/106] Sorting out .gitignore - remove access.log (*.log is enough) - Move local.js config under MEAN.JS - Rename iOS/Apple => OS (this is a mix of windows/osx stuff anyways) --- .gitignore | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 142f28da45..0d3109886d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,9 @@ -# iOS / Apple +# OS # =========== .DS_Store ehthumbs.db Icon? Thumbs.db -config/env/local.js # Node and related ecosystem # ========================== @@ -18,11 +17,10 @@ app/tests/coverage/ # MEAN.js app and assets # ====================== -config/sslcerts/*.pem -access.log public/dist/ uploads modules/users/client/img/profile/uploads +config/env/local.js *.pem # Sublime editor From d4c880b89ce8fba3a85676b45da044b49028fe6d Mon Sep 17 00:00:00 2001 From: Ryan Hutchison Date: Sun, 5 Jul 2015 16:15:06 -0400 Subject: [PATCH 083/106] update dependencies --- package.json | 138 +++++++++++++++++++++++++-------------------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/package.json b/package.json index ba7f71c7c9..f1517813f7 100644 --- a/package.json +++ b/package.json @@ -18,81 +18,81 @@ "postinstall": "bower install --config.interactive=false" }, "dependencies": { - "express": "~4.12.3", - "express-session": "~1.10.4", - "serve-favicon": "~2.1.6", - "body-parser": "~1.12.2", - "cookie-parser": "~1.3.2", - "compression": "~1.4.3", - "method-override": "~2.3.0", - "morgan": "~1.5.2", - "multer": "0.1.6", - "connect-mongo": "~0.8.0", - "connect-flash": "~0.1.1", - "helmet": "~0.7.1", - "consolidate": "~0.11.0", - "swig": "~1.4.1", - "mongoose": "~3.8.8", - "passport": "~0.2.0", - "passport-local": "~1.0.0", - "passport-facebook": "~1.0.2", - "passport-twitter": "~1.0.2", - "passport-linkedin": "~0.1.3", - "passport-google-oauth": "~0.1.5", - "passport-github": "~0.1.5", "acl": "~0.4.4", - "socket.io": "~1.1.0", - "lodash": "~2.4.1", - "forever": "~0.11.0", - "bower": "~1.3.8", + "async": "^1.3.0", + "body-parser": "^1.13.1", + "bower": "^1.4.1", + "chalk": "^1.1.0", + "compression": "^1.5.0", + "connect-flash": "~0.1.1", + "connect-mongo": "~0.8.1", + "consolidate": "~0.13.1", + "cookie-parser": "^1.3.2", + "express": "^4.13.0", + "express-session": "^1.11.3", + "forever": "~0.14.2", + "glob": "^5.0.13", "grunt-cli": "~0.1.13", - "chalk": "~0.5.1", - "glob": "~5.0.0", - "async": "~0.9.0", - "nodemailer": "~1.3.0" + "helmet": "~0.9.1", + "lodash": "^3.10.0", + "method-override": "^2.3.3", + "mongoose": "^4.0.6", + "morgan": "^1.6.1", + "multer": "0.1.8", + "nodemailer": "^1.4.0", + "passport": "~0.2.2", + "passport-facebook": "^2.0.0", + "passport-github": "~0.1.5", + "passport-google-oauth": "~0.2.0", + "passport-linkedin": "~0.1.3", + "passport-local": "^1.0.0", + "passport-twitter": "^1.0.2", + "serve-favicon": "^2.3.0", + "socket.io": "^1.3.5", + "swig": "^1.4.2" }, "devDependencies": { - "supertest": "~0.14.0", - "should": "~4.1.0", - "grunt-env": "~0.4.1", - "grunt-node-inspector": "~0.1.3", + "grunt-concurrent": "^2.0.0", + "grunt-contrib-copy": "~0.8.0", + "grunt-contrib-csslint": "~0.4.0", + "grunt-contrib-cssmin": "~0.12.3", + "grunt-contrib-jshint": "~0.11.2", + "grunt-contrib-less": "^1.0.1", + "grunt-contrib-sass": "~0.9.2", + "grunt-contrib-uglify": "~0.9.1", "grunt-contrib-watch": "~0.6.1", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-csslint": "^0.3.1", - "grunt-ng-annotate": "~0.4.0", - "grunt-contrib-uglify": "~0.6.0", - "grunt-contrib-cssmin": "~0.10.0", - "grunt-nodemon": "~0.3.0", - "grunt-contrib-copy": "0.8", - "grunt-concurrent": "~1.0.0", - "grunt-mocha-test": "~0.12.1", - "grunt-karma": "~0.9.0", - "grunt-protractor-runner": "1.1.4", - "grunt-contrib-sass": "~0.8.1", - "grunt-contrib-less": "~0.12.0", - "load-grunt-tasks": "~1.0.0", - "gulp": "~3.8.9", - "run-sequence": "~1.0.1", - "gulp-rename": "~1.2.0", - "gulp-concat": "~2.4.1", - "gulp-nodemon": "~1.0.4", - "gulp-livereload": "~2.1.1", - "gulp-jshint": "~1.8.6", + "grunt-env": "~0.4.4", + "grunt-karma": "~0.11.2", + "grunt-mocha-test": "~0.12.7", + "grunt-ng-annotate": "^1.0.1", + "grunt-node-inspector": "~0.2.0", + "grunt-nodemon": "~0.4.0", + "grunt-protractor-runner": "^2.0.0", + "gulp": "^3.9.0", + "gulp-concat": "^2.6.0", "gulp-csslint": "~0.1.5", - "gulp-ng-annotate": "~0.3.3", - "gulp-uglify": "~1.0.1", - "gulp-cssmin": "~0.1.6", - "gulp-mocha": "~1.1.1", + "gulp-cssmin": "~0.1.7", + "gulp-jshint": "^1.11.2", "gulp-karma": "~0.0.4", - "gulp-protractor": "~0.0.11", - "gulp-sass": "~1.3.3", - "gulp-less": "~1.3.6", - "gulp-load-plugins": "~0.7.0", - "karma": "~0.12.0", - "karma-jasmine": "~0.2.1", - "karma-coverage": "~0.2.0", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-phantomjs-launcher": "~0.1.2" + "gulp-less": "^3.0.3", + "gulp-livereload": "^3.8.0", + "gulp-load-plugins": "^1.0.0-rc.1", + "gulp-mocha": "^2.1.2", + "gulp-ng-annotate": "^1.0.0", + "gulp-nodemon": "^2.0.3", + "gulp-protractor": "^1.0.0", + "gulp-rename": "^1.2.2", + "gulp-sass": "^2.0.3", + "gulp-uglify": "^1.2.0", + "karma": "~0.12.37", + "karma-chrome-launcher": "~0.2.0", + "karma-coverage": "~0.4.2", + "karma-firefox-launcher": "~0.1.6", + "karma-jasmine": "~0.3.6", + "karma-phantomjs-launcher": "~0.2.0", + "load-grunt-tasks": "^3.2.0", + "run-sequence": "^1.1.1", + "should": "^7.0.1", + "supertest": "^1.0.1" } } From 7d8cea159bffd5cfe53d24dcb8d0d7af181cc2b1 Mon Sep 17 00:00:00 2001 From: Ryan Hutchison Date: Sun, 5 Jul 2015 17:50:41 -0400 Subject: [PATCH 084/106] load bootstrap (doh) --- config/assets/default.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/assets/default.js b/config/assets/default.js index 42f1b1062a..cb56bf9955 100644 --- a/config/assets/default.js +++ b/config/assets/default.js @@ -8,6 +8,8 @@ module.exports = { 'public/lib/bootstrap/dist/css/bootstrap-theme.css' ], js: [ + 'public/lib/jquery/dist/jquery.js', + 'public/lib/bootstrap/dist/js/bootstrap.js', 'public/lib/angular/angular.js', 'public/lib/angular-resource/angular-resource.js', 'public/lib/angular-animate/angular-animate.js', From 30c916030eb7e4152ea3e8f58bab2c45ed7a7082 Mon Sep 17 00:00:00 2001 From: Ryan Hutchison Date: Sun, 5 Jul 2015 17:51:04 -0400 Subject: [PATCH 085/106] setup dropdown menu --- modules/core/client/views/header.client.view.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/core/client/views/header.client.view.html b/modules/core/client/views/header.client.view.html index dec84ff9a5..d63c378367 100644 --- a/modules/core/client/views/header.client.view.html +++ b/modules/core/client/views/header.client.view.html @@ -10,11 +10,8 @@