Merge branch 'master' of github.com:whitef0x0/tellform
This commit is contained in:
commit
c6b22dc2fc
29
.codeclimate.yml
Normal file
29
.codeclimate.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
engines:
|
||||
eslint:
|
||||
enabled: true
|
||||
csslint:
|
||||
enabled: true
|
||||
eslint:
|
||||
enabled: true
|
||||
fixme:
|
||||
enabled: true
|
||||
duplication:
|
||||
enabled: true
|
||||
config:
|
||||
languages:
|
||||
- javascript
|
||||
ratings:
|
||||
paths:
|
||||
- "**.css"
|
||||
- "**.js"
|
||||
- "**.jsx"
|
||||
- "**.module"
|
||||
|
||||
exclude_paths:
|
||||
- public/dist/**
|
||||
- node_modules/**
|
||||
- public/lib/**
|
||||
- uploads/**
|
||||
- docs/**
|
||||
- public/populate_template_cache.js
|
||||
- scripts/**
|
|
@ -33,9 +33,9 @@ exports.uploadPDF = function(req, res, next) {
|
|||
|
||||
|
||||
if (req.file.size === 0) {
|
||||
next(new Error('File uploaded is EMPTY'));
|
||||
return next(new Error('File uploaded is EMPTY'));
|
||||
}else if(req.file.size > 100000000){
|
||||
next(new Error('File uploaded exceeds MAX SIZE of 100MB'));
|
||||
return next(new Error('File uploaded exceeds MAX SIZE of 100MB'));
|
||||
}else {
|
||||
fs.exists(_path, function(exists) {
|
||||
|
||||
|
@ -52,14 +52,14 @@ exports.uploadPDF = function(req, res, next) {
|
|||
|
||||
if (stat && !stat.isDirectory()) {
|
||||
console.log('Directory cannot be created');
|
||||
next(new Error('Directory cannot be created because an inode of a different type exists at "' + newDestination + '"'));
|
||||
return next(new Error('Directory cannot be created because an inode of a different type exists at "' + newDestination + '"'));
|
||||
}
|
||||
|
||||
console.log(path.join(newDestination, pdfFile.filename));
|
||||
|
||||
fs.move(pdfFile.path, path.join(newDestination, pdfFile.filename), function (err) {
|
||||
if (err) {
|
||||
next(new Error(err.message));
|
||||
return next(new Error(err.message));
|
||||
}
|
||||
pdfFile.path = path.join(newDestination, pdfFile.filename);
|
||||
console.log(pdfFile.filename + ' uploaded to ' + pdfFile.path);
|
||||
|
@ -67,12 +67,12 @@ exports.uploadPDF = function(req, res, next) {
|
|||
});
|
||||
|
||||
} else {
|
||||
next(new Error('Did NOT get your file!'));
|
||||
return next(new Error('Did NOT get your file!'));
|
||||
}
|
||||
});
|
||||
}
|
||||
}else {
|
||||
next(new Error('Uploaded files were NOT detected'));
|
||||
return next(new Error('Uploaded files were NOT detected'));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -316,7 +316,7 @@ exports.formByID = function(req, res, next, id) {
|
|||
form.provider = undefined;
|
||||
|
||||
req.form = form;
|
||||
next();
|
||||
return next();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -332,5 +332,5 @@ exports.hasAuthorization = function(req, res, next) {
|
|||
message: 'User '+req.user.username+' is not authorized to edit Form: '+form.title
|
||||
});
|
||||
}
|
||||
next();
|
||||
return next();
|
||||
};
|
||||
|
|
|
@ -33,6 +33,11 @@ exports.forgot = function(req, res, next) {
|
|||
User.findOne({
|
||||
username: req.body.username
|
||||
}, '-salt -password', function(err, user) {
|
||||
if(err){
|
||||
return res.status(500).send({
|
||||
message: err.message
|
||||
});
|
||||
}
|
||||
if (!user) {
|
||||
return res.status(400).send({
|
||||
message: 'No account with that username has been found'
|
||||
|
@ -102,6 +107,11 @@ exports.validateResetToken = function(req, res) {
|
|||
$gt: Date.now()
|
||||
}
|
||||
}, function(err, user) {
|
||||
if(err){
|
||||
return res.status(500).send({
|
||||
message: err.message
|
||||
});
|
||||
}
|
||||
if (!user) {
|
||||
return res.redirect('/#!/password/reset/invalid');
|
||||
}
|
||||
|
|
|
@ -246,12 +246,12 @@ FormSchema.pre('save', function (next) {
|
|||
.findOne({_id: that._id}).exec(function (err, original) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
cb(err);
|
||||
return cb(err);
|
||||
} else {
|
||||
_original = original;
|
||||
//console.log('_original');
|
||||
//console.log(_original);
|
||||
cb(null);
|
||||
return cb(null);
|
||||
}
|
||||
});
|
||||
}, function(cb) {
|
||||
|
@ -260,7 +260,7 @@ FormSchema.pre('save', function (next) {
|
|||
var validUpdateTypes = mongoose.model('Form').schema.path('plugins.oscarhost.settings.updateType').enumValues;
|
||||
that.plugins.oscarhost.settings.validUpdateTypes = validUpdateTypes;
|
||||
}
|
||||
cb(null);
|
||||
return cb(null);
|
||||
},
|
||||
function(cb) {
|
||||
if (that.pdf) {
|
||||
|
@ -286,16 +286,16 @@ FormSchema.pre('save', function (next) {
|
|||
fs.move(old_path, path.join(newDestination, new_filename), {clobber: true}, function (err) {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
callback(new Error(err.message), 'task1');
|
||||
return callback(new Error(err.message), 'task1');
|
||||
} else {
|
||||
that.pdf.path = path.join(newDestination, new_filename);
|
||||
that.pdf.name = new_filename;
|
||||
|
||||
callback(null, 'task1');
|
||||
return callback(null, 'task1');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
callback(null, 'task1');
|
||||
return callback(null, 'task1');
|
||||
}
|
||||
},
|
||||
function (callback) {
|
||||
|
@ -318,9 +318,9 @@ FormSchema.pre('save', function (next) {
|
|||
//console.log(that.pdf.path);
|
||||
|
||||
if (err) {
|
||||
callback(new Error(err.message), null);
|
||||
return callback(new Error(err.message), null);
|
||||
} else if (!_form_fields.length || _form_fields === undefined || _form_fields === null) {
|
||||
callback(new Error('Generated formfields is empty'), null);
|
||||
return callback(new Error('Generated formfields is empty'), null);
|
||||
}
|
||||
|
||||
console.log('autogenerating form');
|
||||
|
@ -347,34 +347,34 @@ FormSchema.pre('save', function (next) {
|
|||
that.form_fields = _form_fields;
|
||||
|
||||
that.isGenerated = false;
|
||||
callback(null, 'task2');
|
||||
return callback(null, 'task2');
|
||||
});
|
||||
} else {
|
||||
callback(null, 'task2');
|
||||
return callback(null, 'task2');
|
||||
}
|
||||
}
|
||||
], function (err, results) {
|
||||
if (err) {
|
||||
cb(new Error({
|
||||
return cb(new Error({
|
||||
message: err.message
|
||||
}));
|
||||
} else {
|
||||
//console.log('ending form save1');
|
||||
cb();
|
||||
return cb();
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (_original) {
|
||||
if (_original.hasOwnProperty('pdf')) {
|
||||
fs.remove(_original.pdf.path, function (err) {
|
||||
if (err) cb(err);
|
||||
if (err) return cb(err);
|
||||
console.log('file at ' + _original.pdf.path + ' successfully deleted');
|
||||
cb();
|
||||
return cb();
|
||||
});
|
||||
}
|
||||
else cb();
|
||||
else return cb();
|
||||
}
|
||||
else cb();
|
||||
else return cb();
|
||||
},
|
||||
function(cb) {
|
||||
|
||||
|
@ -401,7 +401,7 @@ FormSchema.pre('save', function (next) {
|
|||
exec(function(err, submissions){
|
||||
if(err) {
|
||||
console.error(err);
|
||||
cb_id(err);
|
||||
return cb_id(err);
|
||||
} else {
|
||||
//Delete field if there are no submission(s) found
|
||||
if (submissions.length) {
|
||||
|
@ -409,14 +409,14 @@ FormSchema.pre('save', function (next) {
|
|||
modifiedSubmissions.push.apply(modifiedSubmissions, submissions);
|
||||
}
|
||||
|
||||
cb_id(null);
|
||||
return cb_id(null);
|
||||
}
|
||||
});
|
||||
},
|
||||
function (err) {
|
||||
if(err){
|
||||
console.error(err.message);
|
||||
cb(err);
|
||||
return cb(err);
|
||||
} else {
|
||||
|
||||
//Iterate through all submissions with modified form_fields
|
||||
|
@ -450,27 +450,27 @@ FormSchema.pre('save', function (next) {
|
|||
}
|
||||
|
||||
submission.save(function (err) {
|
||||
if (err) callback(err);
|
||||
else callback(null);
|
||||
if (err) return callback(err);
|
||||
else return callback(null);
|
||||
});
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
cb(err);
|
||||
return cb(err);
|
||||
}
|
||||
else cb();
|
||||
else return cb();
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
else cb(null);
|
||||
else return cb(null);
|
||||
}
|
||||
else cb(null);
|
||||
else return cb(null);
|
||||
}],
|
||||
function(err, results){
|
||||
if (err) next(err);
|
||||
next();
|
||||
if (err) return next(err);
|
||||
return next();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -10,17 +10,17 @@ var mongoose = require('mongoose'),
|
|||
|
||||
var FieldOptionSchema = new Schema({
|
||||
option_id: {
|
||||
type: Number,
|
||||
type: Number
|
||||
},
|
||||
|
||||
option_title: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
|
||||
option_value: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
trim: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
@ -31,7 +31,7 @@ var FormFieldSchema = new Schema({
|
|||
title: {
|
||||
type: String,
|
||||
trim: true,
|
||||
required: 'Field Title cannot be blank',
|
||||
required: 'Field Title cannot be blank'
|
||||
},
|
||||
description: {
|
||||
type: String,
|
||||
|
|
|
@ -56,7 +56,7 @@ var FormSubmissionSchema = new Schema({
|
|||
},
|
||||
|
||||
form_fields: {
|
||||
type: [Schema.Types.Mixed],
|
||||
type: [Schema.Types.Mixed]
|
||||
},
|
||||
|
||||
form: {
|
||||
|
@ -66,54 +66,54 @@ var FormSubmissionSchema = new Schema({
|
|||
},
|
||||
|
||||
ipAddr: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
geoLocation: {
|
||||
Country: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
Region: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
City: {
|
||||
type: String,
|
||||
type: String
|
||||
}
|
||||
},
|
||||
device: {
|
||||
type: {
|
||||
type: String,
|
||||
type: String
|
||||
},
|
||||
name: {
|
||||
type: String,
|
||||
type: String
|
||||
}
|
||||
},
|
||||
|
||||
pdfFilePath: {
|
||||
type: Schema.Types.Mixed,
|
||||
type: Schema.Types.Mixed
|
||||
},
|
||||
pdf: {
|
||||
type: Schema.Types.Mixed,
|
||||
type: Schema.Types.Mixed
|
||||
},
|
||||
fdfData: {
|
||||
type: Schema.Types.Mixed,
|
||||
type: Schema.Types.Mixed
|
||||
},
|
||||
|
||||
timeElapsed: {
|
||||
type: Number,
|
||||
},
|
||||
percentageComplete: {
|
||||
type: Number,
|
||||
type: Number
|
||||
},
|
||||
|
||||
//TODO: DAVID: Need to not have this hardcoded
|
||||
oscarDemoNum: {
|
||||
type: Number,
|
||||
type: Number
|
||||
},
|
||||
|
||||
hasPlugins: {
|
||||
oscarhost: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,7 +140,7 @@ FormSubmissionSchema.pre('save', function (next) {
|
|||
// console.log('FormSubmission [form_field ids]\n--------');
|
||||
// console.log(submission_ids);
|
||||
|
||||
if(err) next(err);
|
||||
if(err) return next(err);
|
||||
// console.log(_form);
|
||||
// console.log('should push to api');
|
||||
// console.log( (!this.oscarDemoNum && !!_form.plugins.oscarhost.baseUrl && !!_form.plugins.oscarhost.settings.fieldMap) );
|
||||
|
@ -192,9 +192,9 @@ FormSubmissionSchema.pre('save', function (next) {
|
|||
//Authenticate with API
|
||||
soap.createClient(url_login, options, function(err, client) {
|
||||
client.login(args_login, function (err, result) {
|
||||
if(err) callback(err);
|
||||
if(err) return callback(err);
|
||||
console.log('SOAP authenticated');
|
||||
callback(null, result.return);
|
||||
return callback(null, result.return);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -203,31 +203,32 @@ FormSubmissionSchema.pre('save', function (next) {
|
|||
//Force Add Demographic
|
||||
if(_form.plugins.oscarhost.settings.updateType === 'force_add'){
|
||||
soap.createClient(url_demo, options, function(err, client) {
|
||||
if(err) return callback(err);
|
||||
client.setSecurity(new OscarSecurity(security_obj.securityId, security_obj.securityTokenKey) );
|
||||
|
||||
client.addDemographic({ arg0: submissionDemographic }, function (err, result) {
|
||||
console.log('FORCE ADDING DEMOGRAPHIC \n');
|
||||
// console.log(result.return);
|
||||
if(err) callback(err);
|
||||
callback(null, result);
|
||||
if(err) return callback(err);
|
||||
return callback(null, result);
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
], function(err, result) {
|
||||
if(err) next(err);
|
||||
if(err) return next(err);
|
||||
|
||||
self.oscarDemoNum = parseInt(result.return, 10);
|
||||
console.log('self.oscarDemoNum: '+self.oscarDemoNum);
|
||||
next();
|
||||
return next();
|
||||
});
|
||||
}else{
|
||||
next();
|
||||
return next();
|
||||
}
|
||||
});
|
||||
}else{
|
||||
next();
|
||||
return next();
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -238,13 +239,13 @@ FormSubmissionSchema.pre('save', function (next){
|
|||
if(this.ipAddr){
|
||||
if(this.isModified('ipAddr') || !this.geoLocation){
|
||||
freegeoip.getLocation(this.ipAddr, function(err, location){
|
||||
if(err) next(err);
|
||||
if(err) return next(err);
|
||||
//self.geoLocation = JSON.parse(location);
|
||||
next();
|
||||
return next();
|
||||
});
|
||||
}
|
||||
}
|
||||
next();
|
||||
return next();
|
||||
});
|
||||
|
||||
//Generate autofilled PDF if flags are set
|
||||
|
@ -264,13 +265,13 @@ FormSubmissionSchema.pre('save', function (next) {
|
|||
pdfFiller.fillForm(self.pdf.path, dest_path, self.fdfData, function(err){
|
||||
if(err) {
|
||||
console.log('\n err.message: '+err.message);
|
||||
next( new Error(err.message) );
|
||||
return next( new Error(err.message) );
|
||||
}
|
||||
console.log('Field data from Form: '+self.title.replace(/ /g,'')+' outputed to new PDF: '+dest_path);
|
||||
next();
|
||||
return next();
|
||||
});
|
||||
} else {
|
||||
next();
|
||||
return next();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -106,17 +106,17 @@ describe('FormSubmission Model Unit Tests:', function() {
|
|||
{'fieldType':'textfield', 'title':'And your last name', 'fieldValue': ''},
|
||||
{'fieldType':'radio', 'title':'And your sex', 'fieldOptions': [{ 'option_id': 0, 'option_title': 'Male', 'option_value': 'M' }, { 'option_id': 1, 'option_title': 'Female', 'option_value': 'F' }], 'fieldValue': ''},
|
||||
{'fieldType':'date', 'title':'When were you born?', 'fieldValue': ''},
|
||||
{'fieldType':'number', 'title':'What\'s your phone #?', 'fieldValue': ''},
|
||||
],
|
||||
plugins: {
|
||||
oscarhost: {
|
||||
baseUrl: config.oscarhost.baseUrl,
|
||||
settings: {
|
||||
updateType: 'force_add'
|
||||
},
|
||||
auth: config.oscarhost.auth
|
||||
}
|
||||
}
|
||||
{'fieldType':'number', 'title':'What\'s your phone #?', 'fieldValue': ''}
|
||||
]
|
||||
// plugins: {
|
||||
// oscarhost: {
|
||||
// baseUrl: config.oscarhost.baseUrl,
|
||||
// settings: {
|
||||
// updateType: 'force_add'
|
||||
// },
|
||||
// auth: config.oscarhost.auth
|
||||
// }
|
||||
// }
|
||||
});
|
||||
|
||||
myForm.save(function(err, form){
|
||||
|
|
|
@ -9,18 +9,18 @@ var multiFact = {
|
|||
{
|
||||
left:"user 4",
|
||||
right:"something something user something",
|
||||
logicOp: "AND",
|
||||
logicOp: "AND"
|
||||
},
|
||||
{
|
||||
left:"something something user something",
|
||||
right:"something",
|
||||
logicOp: "OR",
|
||||
logicOp: "OR"
|
||||
}
|
||||
],
|
||||
left:"",
|
||||
right:"",
|
||||
logicOp:"",
|
||||
prevResult: null,
|
||||
prevResult: null
|
||||
};
|
||||
|
||||
var _globalRules = function(){};
|
||||
|
@ -59,7 +59,7 @@ _globalRules.NotEqual = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
_globalRules.AND = {
|
||||
"condition" : function(R) {
|
||||
|
@ -74,7 +74,7 @@ _globalRules.AND = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
_globalRules.OR = {
|
||||
"condition" : function(R) {
|
||||
|
@ -157,7 +157,7 @@ _stringRules.EndsWith = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
var _numberRules = function(){};
|
||||
|
@ -176,7 +176,7 @@ _numberRules.GreaterThan = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
_numberRules.SmallerThan = {
|
||||
"condition" : function(R) {
|
||||
|
@ -208,7 +208,7 @@ _numberRules.GreaterThanOrEqual = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
_numberRules.SmallerThanOrEqual = {
|
||||
|
@ -225,7 +225,7 @@ _numberRules.SmallerThanOrEqual = {
|
|||
"consequence" : function(R) {
|
||||
this.result = false;
|
||||
R.next();
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
|
|
|
@ -191,7 +191,7 @@ NODE_ENV: 'test',
|
|||
src: watchFiles.allTests, // a folder works nicely
|
||||
options: {
|
||||
mask: '*.test.js',
|
||||
require: ['server.js'],
|
||||
require: ['server.js']
|
||||
}
|
||||
},
|
||||
coverageClient: {
|
||||
|
@ -199,7 +199,7 @@ NODE_ENV: 'test',
|
|||
options: {
|
||||
coverageFolder: 'coverageClient',
|
||||
mask: '*.test.js',
|
||||
require: ['server.js'],
|
||||
require: ['server.js']
|
||||
}
|
||||
},
|
||||
coverageServer: {
|
||||
|
@ -207,7 +207,7 @@ NODE_ENV: 'test',
|
|||
options: {
|
||||
coverageFolder: 'coverageServer',
|
||||
mask: '*.test.js',
|
||||
require: ['server.js'],
|
||||
require: ['server.js']
|
||||
}
|
||||
},
|
||||
coveralls: {
|
||||
|
@ -244,7 +244,7 @@ NODE_ENV: 'test',
|
|||
removeAttributeQuotes: true,
|
||||
removeComments: true,
|
||||
removeEmptyAttributes: true,
|
||||
removeRedundantAttributes: true,
|
||||
removeRedundantAttributes: true
|
||||
}
|
||||
},
|
||||
main: {
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
"math": "0.0.3",
|
||||
"method-override": "~2.3.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mongoose": "~3.8.8",
|
||||
"mongoose": "^3.8.40",
|
||||
"mongoose-utilities": "~0.1.1",
|
||||
"morgan": "~1.6.1",
|
||||
"multer": "~1.1.0",
|
||||
|
|
|
@ -13,7 +13,7 @@ angular.module('core').service('Menus', [
|
|||
// A private function for rendering decision
|
||||
var shouldRender = function(user) {
|
||||
if (user) {
|
||||
if (!!~this.roles.indexOf('*')) {
|
||||
if (~this.roles.indexOf('*')) {
|
||||
return true;
|
||||
} else {
|
||||
for (var userRoleIndex in user.roles) {
|
||||
|
|
|
@ -18,15 +18,15 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
},
|
||||
{
|
||||
heading: 'Design',
|
||||
route: 'viewForm.design',
|
||||
route: 'viewForm.design'
|
||||
},
|
||||
{
|
||||
heading: 'Configure',
|
||||
route: 'viewForm.configure',
|
||||
route: 'viewForm.configure'
|
||||
},
|
||||
{
|
||||
heading: 'Analyze',
|
||||
route: 'viewForm.analyze',
|
||||
route: 'viewForm.analyze'
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -116,7 +116,7 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
if(!updateImmediately){$rootScope.saveInProgress = false; }
|
||||
|
||||
if( (typeof cb) === 'function'){
|
||||
cb(err);
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ angular.module('forms').directive('configureFormDirective', ['$rootScope', '$htt
|
|||
console.log('Error occured during upload.\n');
|
||||
console.log(resp.status);
|
||||
}, function (evt) {
|
||||
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
|
||||
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total, 10);
|
||||
$scope.log = 'progress: ' + progressPercentage + '% ' +
|
||||
evt.config.data.file.name + '\n' + $scope.log;
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
templateUrl: 'modules/forms/views/directiveViews/form/edit-form.client.view.html',
|
||||
restrict: 'E',
|
||||
scope: {
|
||||
myform:'=',
|
||||
myform:'='
|
||||
},
|
||||
controller: function($scope){
|
||||
var field_ids = _($scope.myform.form_fields).pluck('_id');
|
||||
|
@ -59,7 +59,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
$scope.dropzone = {
|
||||
handle: ' .handle',
|
||||
containment: '.dropzoneContainer',
|
||||
cursor: 'grabbing',
|
||||
cursor: 'grabbing'
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -175,7 +175,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
var newOption = {
|
||||
'option_id' : Math.floor(100000*Math.random()),
|
||||
'option_title' : 'Option '+lastOptionID,
|
||||
'option_value' : 'Option ' +lastOptionID,
|
||||
'option_value' : 'Option ' +lastOptionID
|
||||
};
|
||||
|
||||
// put new option into fieldOptions array
|
||||
|
@ -208,7 +208,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
}
|
||||
};
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
|
|||
var fileMIMETypeMap = {
|
||||
'xls': 'vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
'json': 'json',
|
||||
'csv': 'csv',
|
||||
'csv': 'csv'
|
||||
};
|
||||
|
||||
var blob = new Blob([document.getElementById('table-submission-data').innerHTM], {
|
||||
|
|
|
@ -32,7 +32,6 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root
|
|||
if (__indexOf.call(supported_fields, type) >= 0) {
|
||||
templateUrl = templateUrl+type+'.html';
|
||||
}
|
||||
|
||||
return $templateCache.get('../public/'+templateUrl);
|
||||
};
|
||||
|
||||
|
|
|
@ -48,28 +48,30 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter'
|
|||
$scope.fieldBottom = elemBox.bottom;
|
||||
|
||||
//console.log($scope.forms.myForm);
|
||||
var field_id;
|
||||
var field_index;
|
||||
|
||||
if(!$scope.noscroll){
|
||||
//Focus on submit button
|
||||
if( $scope.selected.index === $scope.myform.form_fields.length-1 && $scope.fieldBottom < 200){
|
||||
var field_index = $scope.selected.index+1;
|
||||
var field_id = 'submit_field';
|
||||
field_index = $scope.selected.index+1;
|
||||
field_id = 'submit_field';
|
||||
$scope.setActiveField(field_id, field_index, false);
|
||||
}
|
||||
//Focus on field above submit button
|
||||
else if($scope.selected.index === $scope.myform.form_fields.length){
|
||||
if($scope.fieldTop > 200){
|
||||
var field_index = $scope.selected.index-1;
|
||||
var field_id = $scope.myform.form_fields[field_index]._id;
|
||||
field_index = $scope.selected.index-1;
|
||||
field_id = $scope.myform.form_fields[field_index]._id;
|
||||
$scope.setActiveField(field_id, field_index, false);
|
||||
}
|
||||
}else if( $scope.fieldBottom < 0){
|
||||
var field_index = $scope.selected.index+1;
|
||||
var field_id = $scope.myform.form_fields[field_index]._id;
|
||||
field_index = $scope.selected.index+1;
|
||||
field_id = $scope.myform.form_fields[field_index]._id;
|
||||
$scope.setActiveField(field_id, field_index, false);
|
||||
}else if ( $scope.selected.index !== 0 && $scope.fieldTop > 0) {
|
||||
var field_index = $scope.selected.index-1;
|
||||
var field_id = $scope.myform.form_fields[field_index]._id;
|
||||
field_index = $scope.selected.index-1;
|
||||
field_id = $scope.myform.form_fields[field_index]._id;
|
||||
$scope.setActiveField(field_id, field_index, false);
|
||||
}
|
||||
//console.log('$scope.selected.index: '+$scope.selected.index);
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
$modelValue: 'Test Form5'
|
||||
},
|
||||
$dirty: true,
|
||||
$valid: true,
|
||||
$valid: true
|
||||
};
|
||||
|
||||
//Set $state transition
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
{'fieldType':'textfield', 'title':'First Name', 'fieldValue': '', 'deletePreserved': false},
|
||||
{'fieldType':'checkbox', 'title':'nascar', 'fieldValue': '', 'deletePreserved': false},
|
||||
{'fieldType':'checkbox', 'title':'hockey', 'fieldValue': '', 'deletePreserved': false}
|
||||
],
|
||||
]
|
||||
};
|
||||
|
||||
//Mock Users Service
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
password: 'password',
|
||||
provider: 'local',
|
||||
roles: ['user'],
|
||||
_id: 'ed873933b1f1dea0ce12fab9',
|
||||
_id: 'ed873933b1f1dea0ce12fab9'
|
||||
};
|
||||
|
||||
var pdfObj = {
|
||||
|
@ -48,7 +48,7 @@
|
|||
isGenerated: false,
|
||||
isLive: false,
|
||||
autofillPDFs: false,
|
||||
_id: '525a8422f6d0f87f0e407a33',
|
||||
_id: '525a8422f6d0f87f0e407a33'
|
||||
};
|
||||
|
||||
// The $resource service augments the response object with methods for updating and deleting the resource.
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
password: 'password',
|
||||
provider: 'local',
|
||||
roles: ['user'],
|
||||
_id: 'ed873933b1f1dea0ce12fab9',
|
||||
_id: 'ed873933b1f1dea0ce12fab9'
|
||||
};
|
||||
|
||||
var pdfObj = {
|
||||
|
@ -48,7 +48,7 @@
|
|||
isGenerated: false,
|
||||
isLive: false,
|
||||
autofillPDFs: false,
|
||||
_id: '525a8422f6d0f87f0e407a33',
|
||||
_id: '525a8422f6d0f87f0e407a33'
|
||||
};
|
||||
|
||||
var sampleSubmission = {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
password: 'password',
|
||||
provider: 'local',
|
||||
roles: ['user'],
|
||||
_id: 'ed873933b1f1dea0ce12fab9',
|
||||
_id: 'ed873933b1f1dea0ce12fab9'
|
||||
};
|
||||
|
||||
var pdfObj = {
|
||||
|
@ -51,7 +51,7 @@
|
|||
isGenerated: false,
|
||||
isLive: false,
|
||||
autofillPDFs: false,
|
||||
_id: '525a8422f6d0f87f0e407a33',
|
||||
_id: '525a8422f6d0f87f0e407a33'
|
||||
};
|
||||
|
||||
var sampleSubmission = {
|
||||
|
|
|
@ -64,7 +64,7 @@ angular.module('users').factory('Auth', ['$window',
|
|||
$window.user = null;
|
||||
userState.isLoggedIn = false;
|
||||
service._currentUser = null;
|
||||
},
|
||||
}
|
||||
};
|
||||
return service;
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ angular.module('users').factory('User', ['$window', '$q', '$timeout', '$http', '
|
|||
});
|
||||
|
||||
return deferred.promise;
|
||||
},
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue