2.20 Release #255
base: master
Are you sure you want to change the base?
2.20 Release #255
Conversation
Changes Unknown when pulling 421d3b5 on 2.20 into ** on master**. |
…to fixSlowAnalyticsBug
Fix Slow Form Analytics Bug
Changes Unknown when pulling 1f9a0ed on 2.20 into ** on master**. |
Changes Unknown when pulling 09d430a on 2.20 into ** on master**. |
Changes Unknown when pulling 15a508c on 2.20 into ** on master**. |
Changes Unknown when pulling 9d51608 on 2.20 into ** on master**. |
Fixed ScrollSpy for fields
Changes Unknown when pulling 499f2c9 on 2.20 into ** on master**. |
Fix incorrect responses count for form list view
Changes Unknown when pulling 49141e6 on 2.20 into ** on master**. |
'private_form': ['__v'], | ||
'public_user': ['passwordHash', 'password', 'provider', 'salt', 'lastModified', 'created', 'resetPasswordToken', 'resetPasswordExpires', 'token', 'apiKey', '__v'], | ||
'private_user': ['passwordHash', 'password', 'provider', 'salt', 'resetPasswordToken', 'resetPasswordExpires', 'token', '__v'] | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should be in defined as constants in
constants.js`
'use strict'; | ||
|
||
module.exports = { | ||
removeSensitiveModelData: function(type, object){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe model
is a better name for object
?
@@ -133,7 +134,7 @@ exports.signup = function(req, res) { | |||
|
|||
// new user created | |||
if (newTempUser) { | |||
const fn = pug.compileFile(__dirname + "/../../views/verification.email.view.pug"); | |||
const fn = pug.compileFile(__dirname + '/../../views/verification.email.view.pug'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't need to define this twice in one function scope.
const fn = pug.compileFile(__dirname + "/../../views/templates/reset-password-email.server.view.pug"); | ||
res.locals['url'] = 'http://' + req.headers.host + '/auth/reset/' + token; | ||
const fn = pug.compileFile(__dirname + '/../../views/templates/reset-password-email.server.view.pug'); | ||
res.locals.url = 'http://' + req.headers.host + '/auth/reset/' + token; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should replace http://
with //
var domain = userEmail.split('@')[1]; | ||
|
||
var obfuscatedUser = user.substring(0, 1) + user.substring(1).replace(/./g, '*'); | ||
var obfuscatedUser = emailUsername.substring(0, 1) + emailUsername.substring(1).replace(/./g, '*'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is the regex in replace() required?
@@ -167,7 +166,7 @@ describe('Form Routes Unit tests', function() { | |||
it(' > should not be able to create a Form if body is empty', function(done) { | |||
loginSession.post('/forms') | |||
.send({form: null}) | |||
.expect(400, {"message":"Invalid Input"}) | |||
.expect(400, {'message':'Invalid Input'}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be internationalized.
var currIndex = supportedLanguages.indexOf(preferredLanguages[i]); | ||
var i, currIndex; | ||
for (i = 0; i < preferredLanguages.length; i++) { | ||
currIndex = supportedLanguages.indexOf(preferredLanguages[i]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currIndex
should be renamed to something more descriptive
if(currLanguage && currLanguage !== supportedLanguage || !currLanguage){ | ||
res.clearCookie('userLang'); | ||
res.cookie('userLang', supportedLanguage, { maxAge: 90000, httpOnly: true }); | ||
} else if(req.user && (!req.cookies.hasOwnProperty('userLang') || req.cookies.userLang !== req.user.language) ){ | ||
res.cookie('userLang', req.user.language, { maxAge: 90000, httpOnly: true }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
userLang cookie settings should be stored in env/*.js
@@ -76,7 +75,7 @@ logger.getLogOptions = function getLogOptions() { | |||
var _config = _.clone(config, true); | |||
var configFileLogger = _config.log.fileLogger; | |||
|
|||
if (!_.has(_config, 'log.fileLogger.directoryPath') || !_.has(_config, 'log.fileLogger.fileName')) { | |||
if (process.env.NODE_ENV !== 'test' && !_.has(_config, 'log.fileLogger.directoryPath') || !_.has(_config, 'log.fileLogger.fileName')) { | |||
console.log('unable to find logging file configuration'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be fixed. The logger seems to never be able to find it's configuration.
})); | ||
|
||
it('$scope.signin should sigin in user with valid credentials', inject(function(Auth) { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test case should be removed.
Changes Unknown when pulling 9ff247f on 2.20 into ** on master**. |
Changes Unknown when pulling d8c5b00 on 2.20 into ** on master**. |
Hi, what's the status on this? |
This is the PR for the 2.20 Release
Description
The 2.20 Release includes the following changes:
Motivation and Context
This is the next stable release for TellForm. It incorporates a few new features (most notably email notifications) and some performance enhancements for the web app.
How Has This Been Tested?
This has been tested with server-side, client-side and manual tests (see below for manual test plans).
Screenshots (if appropriate):
Types of changes
Checklist: