From 6848b740b3059c3944b0525a66c1991a58263947 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Mon, 13 Nov 2017 18:14:52 -0800 Subject: [PATCH] moved from on('scroll' to using duScroll for tracking activeField --- .../forms/base/config/forms.client.config.js | 12 ++++---- .../submit-form.client.directive.js | 28 +++++++++++++------ .../base/views/directiveViews/field/date.html | 1 - .../views/directiveViews/field/dropdown.html | 1 - .../views/directiveViews/field/radio.html | 1 - .../views/directiveViews/field/textarea.html | 1 - .../views/directiveViews/field/textfield.html | 1 - .../views/directiveViews/field/yes_no.html | 2 -- .../form/submit-form.client.view.html | 5 ++-- .../form_modules/forms/forms.client.module.js | 2 +- 10 files changed, 29 insertions(+), 25 deletions(-) diff --git a/public/form_modules/forms/base/config/forms.client.config.js b/public/form_modules/forms/base/config/forms.client.config.js index 242581e0..a6e45ff4 100644 --- a/public/form_modules/forms/base/config/forms.client.config.js +++ b/public/form_modules/forms/base/config/forms.client.config.js @@ -28,9 +28,7 @@ angular.module('view-form') } return 0; }; -}); - -angular.module('view-form').value('supportedFields', [ +}).value('supportedFields', [ 'textfield', 'textarea', 'date', @@ -44,7 +42,11 @@ angular.module('view-form').value('supportedFields', [ 'yes_no', 'number', 'natural' -]); +]).constant('VIEW_FORM_URL', '/forms/:formId/render'); -angular.module('view-form').constant('VIEW_FORM_URL', '/forms/:formId/render'); +//Angular-Scroll Settings +angular.module('view-form').value('duScrollActiveClass', 'activeField') + .value('duScrollGreedy', true) + .value('duScrollOffset', 100) + .value('duScrollSpyWait', 0); diff --git a/public/form_modules/forms/base/directives/submit-form.client.directive.js b/public/form_modules/forms/base/directives/submit-form.client.directive.js index 53b9005a..2ff15bef 100644 --- a/public/form_modules/forms/base/directives/submit-form.client.directive.js +++ b/public/form_modules/forms/base/directives/submit-form.client.directive.js @@ -168,7 +168,6 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun $scope.selected._id = field_id; $scope.selected.index = field_index; - var nb_valid = $filter('formValidity')($scope.myform); $scope.translateAdvancementData = { done: nb_valid, @@ -202,14 +201,18 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun if(oldValue !== newValue && newValue < $scope.myform.form_fields.length){ //Only send analytics data if form has not been submitted if(!$scope.myform.submitted){ - console.log('SendVisitorData.send()'); - SendVisitorData.send($scope.myform, newValue, TimeCounter.getTimeElapsed()); + //SendVisitorData.send($scope.myform, newValue, TimeCounter.getTimeElapsed()); } } }); + $rootScope.$on('duScrollspy:becameActive', function($event, $element, $target){ + console.log($element); + //$scope.setActiveField($element.prop('id'), null, false); + }); + //Fire event when window is scrolled - $window.onscroll = function(){ + /*$window.onscroll = function(){ if(!NOSCROLL){ var scrollTop = $(window).scrollTop(); @@ -230,6 +233,14 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun var fractionToJump = 0.9; + console.log("fieldBottom < elemHeight * fractionToJump: "+fieldBottom + " < " + elemHeight * fractionToJump); + + console.log("fieldTop > elemHeight * fractionToJump: "+fieldTop + " > " + elemHeight * fractionToJump); + + console.log('fieldTop: '+fieldTop); + console.log('fieldBottom: '+fieldBottom); + console.log('scrollPosition: '+scrollPosition) + //Focus on field above submit form button if($scope.selected.index === $scope.myform.visible_form_fields.length){ if(scrollTop < scrollPosition){ @@ -237,15 +248,13 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun $scope.setActiveField(null, field_index, false); } } - //Focus on submit form button else if($scope.selected.index === $scope.myform.visible_form_fields.length-1 && scrollTop > scrollPosition){ field_index = $scope.selected.index+1; $scope.setActiveField(FORM_ACTION_ID, field_index, false); } - //If we scrolled bellow the current field, move to next field - else if(fieldBottom < elemHeight * fractionToJump && $scope.selected.index < $scope.myform.visible_form_fields.length-1 ){ + else if(fieldBottom < elemHeight * fractionToJump && $scope.selected.index < $scope.myform.visible_form_fields.length-1){ field_index = $scope.selected.index+1; $scope.setActiveField(null, field_index, false); } @@ -257,7 +266,9 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun } $scope.$apply(); - }; + };*/ + + $rootScope.nextField = $scope.nextField = function(){ if($scope.selected && $scope.selected.index > -1){ @@ -281,7 +292,6 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun //If selected is not defined go to the first field $rootScope.setActiveField(null, 0, true); } - }; $rootScope.prevField = $scope.prevField = function(){ diff --git a/public/form_modules/forms/base/views/directiveViews/field/date.html b/public/form_modules/forms/base/views/directiveViews/field/date.html index bb8a9df6..c2d74a20 100755 --- a/public/form_modules/forms/base/views/directiveViews/field/date.html +++ b/public/form_modules/forms/base/views/directiveViews/field/date.html @@ -16,7 +16,6 @@