From aa72e1ac3cc8b006b06d51ed9303ce0095ca573a Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Thu, 12 Nov 2015 11:45:25 -0800 Subject: [PATCH] fixed scrolling bug for prev/nextField buttons --- app/models/form.server.model.js | 1 - app/models/form_submission.server.model.js | 11 ++-- .../directives/focus-on.client.directive.js | 32 ------------ .../on-finish-render.client.directive.js | 8 +-- .../submit-form.client.directive.js | 51 ++++++++++++------- .../views/directiveViews/field/natural.html | 4 +- .../views/directiveViews/field/statement.html | 6 +-- .../views/directiveViews/field/textfield.html | 5 +- .../form/submit-form.client.view.html | 9 ++-- 9 files changed, 51 insertions(+), 76 deletions(-) delete mode 100644 public/modules/forms/directives/focus-on.client.directive.js diff --git a/app/models/form.server.model.js b/app/models/form.server.model.js index 2d8e064c..e96ec84d 100644 --- a/app/models/form.server.model.js +++ b/app/models/form.server.model.js @@ -60,7 +60,6 @@ var FormSchema = new Schema({ type: String, default: '', }, - // form_fields: [Field], form_fields: { type: [FieldSchema], }, diff --git a/app/models/form_submission.server.model.js b/app/models/form_submission.server.model.js index 4d0e9eff..60cda089 100644 --- a/app/models/form_submission.server.model.js +++ b/app/models/form_submission.server.model.js @@ -58,7 +58,6 @@ var FormSubmissionSchema = new Schema({ form_fields: { type: [Schema.Types.Mixed], }, - // form_fields: [Field], form: { type: Schema.Types.ObjectId, @@ -83,7 +82,7 @@ var FormSubmissionSchema = new Schema({ type: Schema.Types.Mixed, }, - timeElapsed: { //time (in seconds) it took for user to submit form + timeElapsed: { type: Number, }, percentageComplete: { @@ -149,14 +148,14 @@ FormSubmissionSchema.pre('save', function (next) { _generatedDemo[propertyName] = currField.fieldValue+''; }else if(propertyName === 'DOB'){ var date = new Date(currField.fieldValue); - _generatedDemo['dateOfBirth'] = date.getDate()+''; - _generatedDemo['yearOfBirth'] = date.getFullYear()+''; - _generatedDemo['monthOfBirth'] = date.getMonth()+''; + _generatedDemo.dateOfBirth = date.getDate()+''; + _generatedDemo.yearOfBirth = date.getFullYear()+''; + _generatedDemo.monthOfBirth = date.getMonth()+''; } } var currDate = new Date(); var dateString = currDate.toISOString().split('T')[0] + ' ' + currDate.toISOString().split('T')[1].slice(0,8); - _generatedDemo['lastUpdateDate'] = currDate.toISOString(); + _generatedDemo.lastUpdateDate = currDate.toISOString(); return _generatedDemo; }; diff --git a/public/modules/forms/directives/focus-on.client.directive.js b/public/modules/forms/directives/focus-on.client.directive.js deleted file mode 100644 index adb8f7fb..00000000 --- a/public/modules/forms/directives/focus-on.client.directive.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -angular.module('forms').directive('focusOn',function() { - return { - restrict : 'A', - link : function($scope, $element, $attr) { - $scope.$watch($attr.focusOn,function(focusVal) { - if(focusVal === true) { - var $input_element; - - if($element[0].querySelector('input')){ - $input_element = $element[0].querySelector('input'); - }else if($element[0].querySelector('select')){ - $input_element = $element[0].querySelector('select'); - }else if($element[0].querySelector('textarea')){ - $input_element = $element[0].querySelector('.textarea'); - }else if($element[0].querySelector('.angular-input-stars')){ - $input_element = $element[0].querySelector('.angular-input-stars'); - }else{ - return; - } - setTimeout(function() { - console.log($('.activeField')); - $('html, body').animate({ - scrollTop: $('.activeField').offset().top - },400); - }, 0); - } - }); - } - }; -}); \ No newline at end of file diff --git a/public/modules/forms/directives/on-finish-render.client.directive.js b/public/modules/forms/directives/on-finish-render.client.directive.js index d45ba885..dee20623 100644 --- a/public/modules/forms/directives/on-finish-render.client.directive.js +++ b/public/modules/forms/directives/on-finish-render.client.directive.js @@ -14,16 +14,12 @@ angular.module('forms').directive('onFinishRender', function ($rootScope, $timeo if(scope.$first && !scope.$last) { scope.$evalAsync(function () { - // console.log(Date.now()); $rootScope.$broadcast(broadcastMessage+' Started'); }); }else if(scope.$last) { scope.$evalAsync(function () { - // element.ready(function () { - console.log(broadcastMessage+'Finished'); - // console.log(Date.now()); - $rootScope.$broadcast(broadcastMessage+' Finished'); - // }); + // console.log(broadcastMessage+'Finished'); + $rootScope.$broadcast(broadcastMessage+' Finished'); }); } } diff --git a/public/modules/forms/directives/submit-form.client.directive.js b/public/modules/forms/directives/submit-form.client.directive.js index 38f5e5c2..dbf6eb5b 100644 --- a/public/modules/forms/directives/submit-form.client.directive.js +++ b/public/modules/forms/directives/submit-form.client.directive.js @@ -23,13 +23,31 @@ angular.module('forms').directive('submitFormDirective', ['$http', '$timeout', ' TimeCounter.startClock(); - $scope.exitStartPage = function(){ - $scope.myform.startPage.showStart = false; - if($scope.myform.form_fields.length > 0){ - $scope.selected._id = $scope.myform.form_fields[0]._id; + + /* + ** Field Controls + */ + $scope.setActiveField = function(field_id, field_index) { + if($scope.selected === null){ + $scope.selected = { + _id: '', + index: 0, + }; } + // console.log('field_id: '+field_id); + // console.log('field_index: '+field_index); + // console.log($scope.selected); + + $scope.selected._id = field_id; + $scope.selected.index = field_index; + setTimeout(function() { + $('html, body').animate({ + scrollTop: $('.activeField').offset().top + },350); + }, 10); }; + $scope.nextField = function(){ if($scope.selected.index < $scope.myform.form_fields.length-1){ $scope.selected.index++; @@ -44,20 +62,7 @@ angular.module('forms').directive('submitFormDirective', ['$http', '$timeout', ' $scope.setActiveField($scope.selected._id, $scope.selected.index); } }; - - $rootScope.setActiveField = function(field_id, field_index) { - if($scope.selected === null){ - $scope.selected = { - _id: '', - index: 0, - }; - } - console.log('field_id: '+field_id); - console.log('field_index: '+field_index); - console.log($scope.selected); - $scope.selected._id = field_id; - $scope.selected.index = field_index; - }; + $scope.hideOverlay = function(){ $scope.selected = { _id: '', @@ -65,6 +70,16 @@ angular.module('forms').directive('submitFormDirective', ['$http', '$timeout', ' }; }; + /* + ** Form Display Functions + */ + $scope.exitStartPage = function(){ + $scope.myform.startPage.showStart = false; + if($scope.myform.form_fields.length > 0){ + $scope.selected._id = $scope.myform.form_fields[0]._id; + } + }; + $scope.submitForm = function(){ var _timeElapsed = TimeCounter.stopClock(); diff --git a/public/modules/forms/views/directiveViews/field/natural.html b/public/modules/forms/views/directiveViews/field/natural.html index 43eb97bf..ad62c2f3 100644 --- a/public/modules/forms/views/directiveViews/field/natural.html +++ b/public/modules/forms/views/directiveViews/field/natural.html @@ -7,9 +7,7 @@ ng-model-options="{ debounce: 250 }" value="field.fieldValue" ng-required="field.required" - ng-disabled="field.disabled" changeFocus - focus-up-id="focusUpButton" - focus-down-id="focusDownButton"> + ng-disabled="field.disabled">
diff --git a/public/modules/forms/views/directiveViews/field/statement.html b/public/modules/forms/views/directiveViews/field/statement.html index 897d9894..07526189 100644 --- a/public/modules/forms/views/directiveViews/field/statement.html +++ b/public/modules/forms/views/directiveViews/field/statement.html @@ -4,11 +4,11 @@

{{field.title}}

-
+

{{field.description}}


-
diff --git a/public/modules/forms/views/directiveViews/field/textfield.html b/public/modules/forms/views/directiveViews/field/textfield.html index d1ceea9e..171f2f06 100755 --- a/public/modules/forms/views/directiveViews/field/textfield.html +++ b/public/modules/forms/views/directiveViews/field/textfield.html @@ -8,14 +8,13 @@
- + ng-disabled="field.disabled">
diff --git a/public/modules/forms/views/directiveViews/form/submit-form.client.view.html b/public/modules/forms/views/directiveViews/form/submit-form.client.view.html index c11c0a59..a7da540d 100755 --- a/public/modules/forms/views/directiveViews/form/submit-form.client.view.html +++ b/public/modules/forms/views/directiveViews/form/submit-form.client.view.html @@ -2,6 +2,7 @@
+
@@ -21,14 +22,13 @@

+
@@ -38,8 +38,8 @@
-
- +
+
@@ -79,6 +79,7 @@
+