fixed edit-submission-form-directive test and removed unnessecary console.log() statements

This commit is contained in:
David Baldwynn 2017-07-28 14:47:09 -07:00
parent 235a924fae
commit ed032d6db9
34 changed files with 3134 additions and 2974 deletions

View file

@ -10,9 +10,9 @@
"description": "Disable support for running subdomains. (This should be true if you are not using your own custom domain.",
"value": "TRUE"
},
"DISABLE_CLUSTER_MODE": {
"description": "Disable support for running in cluster mode on pm2",
"value": "TRUE"
"ENABLE_CLUSTER_MODE": {
"description": "ENABLE support for running in cluster mode on pm2",
"value": "FALSE"
},
"NODE_ENV": {
"description": "Choose whether to run app in development or production mode",

View file

@ -139,7 +139,6 @@ exports.read = function(req, res) {
if(!req.user || (req.form.admin.id !== req.user.id) ){
readForRender(req, res);
} else {
FormSubmission.find({ form: req.form._id }).exec(function(err, _submissions) {
if (err) {
res.status(400).send({

View file

@ -58,6 +58,16 @@ var FormSubmissionSchema = new Schema({
}
});
FormSubmissionSchema.pre('save', function (next) {
//Iterate through form fields and format data
for(var i = 0; i < this.form_fields.length; i++){
if(this.form_fields[i].fieldType === 'dropdown'){
this.form_fields[i].fieldValue = this.form_fields[i].fieldValue.option_value;
}
}
next();
});
FormSubmissionSchema.path('form_fields', {
set: function(form_fields){
for (var i = 0; i < form_fields.length; i++) {

2
config/env/all.js vendored
View file

@ -28,7 +28,7 @@ module.exports = {
reCAPTCHA_Key: process.env.reCAPTCHA_KEY || '',
signupDisabled: (process.env.SIGNUP_DISABLED === 'TRUE'),
disableClusterMode: (process.env.DISABLE_CLUSTER_MODE === 'TRUE'),
enableClusterMode: (process.env.ENABLE_CLUSTER_MODE === 'TRUE'),
baseUrl: '',
tempUserCollection: 'temporary_users',

View file

@ -9,7 +9,6 @@ module.exports = {
pass: ''
}
},
log: {
// Can specify one of 'combined', 'common', 'dev', 'short', 'tiny'
format: 'dev',

View file

@ -7,7 +7,7 @@ module.exports = {
},
port: process.env.PORT || 5000,
socketUrl: process.env.SOCKET_URL || 'ws.tellform.com',
socketPort: process.env.SOCKET_PORT || null,
socketPort: process.env.SOCKET_PORT || 20523,
log: {
// Can specify one of 'combined', 'common', 'dev', 'short', 'tiny'
format: 'combined',

View file

@ -58,15 +58,12 @@ module.exports = function(db) {
if(config.socketPort){
app.locals.socketPort = config.socketPort;
} else {
app.locals.socketPort = false;
}
if(config.socketUrl){
app.locals.socketUrl = config.socketUrl;
} else {
app.locals.socketUrl = false;
}
app.locals.bowerJSFiles = config.getBowerJSAssets();
app.locals.bowerCssFiles = config.getBowerCSSAssets();
app.locals.bowerOtherFiles = config.getBowerOtherAssets();

View file

@ -11,7 +11,7 @@ module.exports = function (app, db) {
var server = http.createServer(app);
var io = socketio(config.socketPort, { transports: ['websocket', 'polling'] });
if(config.disableClusterMode){
if(config.enableClusterMode){
var redis = require('socket.io-redis');
io.adapter(redis( process.env.REDIS_URL || { host: process.env.REDIS_DB_PORT_6379_TCP_ADDR || '127.0.0.1' , port: process.env.REDIS_DB_PORT_6379_TCP_PORT || 6379 }));
}

View file

@ -217,6 +217,14 @@ module.exports = function(grunt) {
unit: {
configFile: 'karma.conf.js',
singleRun: true
},
debug: {
configFile: 'karma.conf.js',
browserConsoleLogOptions: {
level: 'log',
terminal: true
},
singleRun: true
}
},
protractor: {
@ -367,4 +375,6 @@ module.exports = function(grunt) {
grunt.registerTask('test', ['lint:tests', 'test:server', 'test:client']);
grunt.registerTask('test:server', ['lint:tests', 'env:test', 'mochaTest']);
grunt.registerTask('test:client', ['lint:tests', 'html2js:main', 'html2js:forms', 'env:test', 'karma:unit']);
grunt.registerTask('testdebug', ['env:test', 'karma:debug']);
};

View file

@ -126,7 +126,7 @@
"karma-jasmine-html-reporter": "^0.1.8",
"karma-mocha-reporter": "^1.1.1",
"karma-ng-html2js-preprocessor": "^0.2.0",
"karma-phantomjs-launcher": "~0.2.1",
"karma-phantomjs-launcher": "^1.0.4",
"mailosaur": "^1.0.1",
"mocha": "^3.1.2",
"mocha-lcov-reporter": "^1.0.0",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -44,10 +44,11 @@
socket: null
};
console.log($window.socketUrl);
var url = '';
if($window.socketUrl && $window.socketPort){
url = window.location.protocol + '//' + $window.socketUrl + ':' + $window.socketPort;
} else if ($window.socketUrl && !$window.socketPort){
} else if ($window.socketUrl){
url = window.location.protocol + '//' + $window.socketUrl;
} else if ($window.socketPort){
url = window.location.protocol + '//' + window.location.hostname + ':' + $window.socketPort;
@ -65,5 +66,4 @@
Socket.$inject = ['$timeout', '$window'];
}());

View file

@ -25,13 +25,11 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope'
if(statesToIgnore.indexOf(toState.name) > 0){
if(Auth.isAuthenticated()){
event.preventDefault(); // stop current execution
//console.log('go to forms');
$state.go('listForms'); // go to listForms page
}
}
//Redirect to 'signup' route if user is not authenticated
else if(toState.name !== 'access_denied' && !Auth.isAuthenticated() && toState.name !== 'submitForm'){
console.log('go to signup');
event.preventDefault(); // stop current execution
$state.go('listForms'); // go to listForms page
}

View file

@ -51,10 +51,10 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$windo
heading: $filter('translate')('CONFIGURE_TAB'),
templateName: 'configure'
},
{
/*{
heading: $filter('translate')('ANALYZE_TAB'),
templateName: 'analyze'
}
}*/
];
$scope.setForm = function(form){

View file

@ -28,8 +28,6 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
});
},
start: function(e, ui) {
console.log(ui.item);
console.log(ui.placeholder);
}
};

View file

@ -13,18 +13,16 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
$scope.table = {
masterChecker: false,
rows: []
rows: $scope.myform.submissions
};
$scope.table.rows = [];
var initController = function(){
Forms.get({
formId: $stateParams.formId
}, function(form){
$scope.myform = form;
var defaultFormFields = _.cloneDeep($scope.myform.form_fields);
$scope.table.rows = form.submissions;
/*var defaultFormFields = _.cloneDeep($scope.myform.form_fields);
var submissions = $scope.myform.submissions || [];
@ -41,24 +39,25 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
submissions[i].selected = false;
}
$scope.table.rows = submissions;
$scope.table.rows = submissions;*/
});
};
/*
** Analytics Functions
*/
$scope.AverageTimeElapsed = (function(){
var totalTime = 0;
var numSubmissions = $scope.table.rows.length;
for(i=0; i<$scope.table.rows.length; i++){
for(var i=0; i<$scope.table.rows.length; i++){
totalTime += $scope.table.rows[i].timeElapsed;
}
if(numSubmissions === 0) {
return 0;
}
return (totalTime/numSubmissions).toFixed(0);
})();
@ -82,7 +81,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
if($scope.myform.analytics && $scope.myform.analytics.visitors) {
var visitors = $scope.myform.analytics.visitors;
for (i = 0; i < visitors.length; i++) {
for (var i = 0; i < visitors.length; i++) {
var visitor = visitors[i];
var deviceType = visitor.deviceType;
@ -105,11 +104,6 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
return stats;
})();
});
};
initController();
var updateFields = $interval(initController, 1000000);
$scope.$on('$destroy', function() {

View file

@ -62,11 +62,14 @@
<div class="col-xs-12">
<uib-tabset active="activePill" vertical="true" type="pills">
<uib-tab index="0" heading="{{ 'CREATE_TAB' | translate }}">
<edit-form-directive myform="myform"></edit-form-directive>
<edit-submissions-form-directive myform="myform"></edit-submissions-form-directive>
</uib-tab>
<uib-tab ng-repeat="tab in tabData" index="{{$index}}+1" heading="{{tab.heading}}">
<div class='row' data-ng-include="'/static/modules/forms/admin/views/adminTabs/'+tab.templateName+'.html'" onload="form_url = trustSrc(formURL)"></div>
</uib-tab>
<uib-tab index="2" heading="{{ 'ANALYZE_TAB' | translate }}">
<edit-form-directive myform="myform" user="myform.admin"></edit-form-directive>
</uib-tab>
<uib-tab ng-if="tabData" heading="Share" index="{{tabData.length}}">
<div class="config-form">
<div class="row">

View file

@ -382,7 +382,7 @@
<div class="row">
<div class="col-md-4 col-xs-12 field-input">{{ 'DISABLED' | translate }}</div>
<div class="col-md-8 col-xs-12 field-input">
<label class="switch-light switch-holo" ng-click="console.log('clicked switch')">
<label class="switch-light switch-holo">
<input type="checkbox" ng-model="field.disabled">
<span>
<span> {{ 'OFF' | translate }}</span>

View file

@ -57,9 +57,7 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root
}else if(type === 'rating'){
scope.field.fieldValue = 0;
}else if(scope.field.fieldType === 'radio'){
console.log(scope.field);
scope.field.fieldValue = scope.field.fieldOptions[0].option_value;
console.log(scope.field.fieldValue);
}else if(type === 'legal'){
scope.field.fieldValue = 'true';
$rootScope.nextField();
@ -68,7 +66,6 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root
scope.setActiveField = $rootScope.setActiveField;
console.log(scope);
//Set format only if field is a date
if(scope.field.fieldType === 'date'){
scope.dateOptions = {

View file

@ -219,8 +219,6 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter'
setTimeout(function () {
$scope.submitPromise = $http.post('/forms/' + $scope.myform._id, form)
.success(function (data, status, headers) {
console.log('\n\n\n\n\nSUBMITTING PROMISE');
console.log(data);
$scope.myform.submitted = true;
$scope.loading = false;
SendVisitorData.send($scope.myform, getActiveField(), _timeElapsed);

View file

@ -1,49 +1,14 @@
(function () {
'use strict';
//Dummy Service for Previewing Form
function SendVisitorData() {
// Create a controller method for sending visitor data
function send(form, lastActiveIndex) {
// Create a new message object
/*var visitorData = {
referrer: document.referrer,
isSubmitted: form.submitted,
formId: form._id,
lastActiveField: form.form_fields[lastActiveIndex]._id,
timeElapsed: timeElapsed,
//@TODO @FIXME: David: Need to make this get the language from the HTTP Header instead
language: window.navigator.userLanguage || window.navigator.language,
ipAddr: '',
deviceType: ''
};
$http.get('https://jsonip.com/').success(function(response) {
visitorData.ipAddr = response['ip']+'';
}).error(function(error) {
console.error('Could not get users\'s ip');
}).then(function(){
visitorData.userAgent = deviceDetector.raw;
if(deviceDetector.isTablet()) {
visitorData.deviceType = 'tablet';
}else if(deviceDetector.isMobile()){
visitorData.deviceType = 'phone';
}else {
visitorData.deviceType = 'desktop';
}
console.log(visitorData.deviceType);
Socket.emit('form-visitor-data', visitorData);
});*/
}
function init(){
// Make sure the Socket is connected
/*if (!Socket.socket) {
Socket.connect();
}*/
}
var service = {
@ -54,14 +19,11 @@
return service;
}
// Create the SendVisitorData service
angular
.module('forms')
.factory('SendVisitorData', SendVisitorData);
SendVisitorData.$inject = [];
}());

View file

@ -243,7 +243,6 @@
//Run controller functionality
scope.openDeleteModal();
console.log(scope.deleteModal);
expect(scope.deleteModal.opened).toEqual(true);
});

View file

@ -140,8 +140,6 @@
describe('Form Table Methods', function(){
it('$scope.toggleAllCheckers should toggle all checkboxes in table', function(){
$httpBackend.flush();
//Run Controller Logic to Test
scope.table.masterChecker = true;
scope.toggleAllCheckers();
@ -153,8 +151,6 @@
});
it('$scope.isAtLeastOneChecked should return true when at least one checkbox is selected', function(){
$httpBackend.flush();
scope.table.masterChecker = true;
scope.toggleAllCheckers();
@ -165,8 +161,6 @@
});
it('$scope.deleteSelectedSubmissions should delete all submissions that are selected', function(){
$httpBackend.flush();
scope.table.masterChecker = true;
scope.toggleAllCheckers();

View file

@ -65,7 +65,6 @@
// it('should be able to render entryPage in html', function() {
// scope.myStartPage = _.cloneDeep(sampleStartPage);
// console.log(scope.myStartPage);
// var element = angular.element('<entry-page pageData="myStartPage" pageType="startPage"></entry-page>');
// $compile(element)(scope);
// scope.$digest();

View file

@ -12,7 +12,6 @@ angular.module('stateMock').service('$state', function($q){
}else{
throw Error('No more transitions were expected! Tried to transition to '+ stateName );
}
console.log('Mock transition to: ' + stateName);
var deferred = $q.defer();
var promise = deferred.promise;
deferred.resolve();