From ed9eb424682443c5336dbbe1af1f6cc7dbfb71a9 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Thu, 28 Apr 2016 21:57:04 -0700 Subject: [PATCH] added validation and enter key bindings --- public/application.js | 10 +++++----- .../directives/field.client.directive.js | 19 ++++++++++++++++-- .../on-enter-key.client.directive.js | 7 +++---- .../submit-form.client.directive.js | 18 ++++++++--------- .../forms/services/forms.client.service.js | 10 +++++----- .../views/directiveViews/field/legal.html | 20 ++++++++++++------- .../views/directiveViews/field/natural.html | 16 --------------- .../views/directiveViews/field/password.html | 6 ------ .../views/directiveViews/field/radio.html | 10 +++++++--- .../views/directiveViews/field/rating.html | 4 +++- .../views/directiveViews/field/statement.html | 5 +++-- .../views/directiveViews/field/textfield.html | 7 ++++--- .../views/directiveViews/field/yes_no.html | 9 +++++---- .../users/services/auth.client.service.js | 20 +++++++++---------- 14 files changed, 84 insertions(+), 77 deletions(-) delete mode 100644 public/modules/forms/views/directiveViews/field/natural.html delete mode 100755 public/modules/forms/views/directiveViews/field/password.html diff --git a/public/application.js b/public/application.js index 572ce81a..ca0b4ca1 100755 --- a/public/application.js +++ b/public/application.js @@ -33,19 +33,19 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope' // add previous state property $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState) { $state.previous = fromState; - console.log('toState: '+toState.name); + //console.log('toState: '+toState.name); //Redirect to listForms if user is authenticated if(toState.name === 'home' || toState.name === 'signin' || toState.name === 'resendVerifyEmail' || toState.name === 'verify' || toState.name === 'signup' || toState.name === 'signup-success'){ if(Auth.isAuthenticated()){ event.preventDefault(); // stop current execution - console.log('go to forms'); - $state.go('listForms'); // go to listForms page + //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'); + //console.log('go to signup'); event.preventDefault(); // stop current execution $state.go('listForms'); // go to listForms page } @@ -72,7 +72,7 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope' if( (permissions != null) ){ if( !authenticator.canAccess(permissions) ){ event.preventDefault(); - console.log('access denied'); + //console.log('access denied'); $state.go('access_denied'); } } diff --git a/public/modules/forms/directives/field.client.directive.js b/public/modules/forms/directives/field.client.directive.js index 06dc118a..aed51714 100644 --- a/public/modules/forms/directives/field.client.directive.js +++ b/public/modules/forms/directives/field.client.directive.js @@ -47,7 +47,21 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root forms: '=' }, link: function(scope, element) { - console.log(scope.forms.myForm); + + $rootScope.chooseDefaultOption = scope.chooseDefaultOption = function(type) { + if(type === 'yes_no'){ + scope.field.fieldValue = 'true'; + }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(); + } + }; scope.setActiveField = $rootScope.setActiveField; @@ -74,7 +88,8 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root scope.field.placeholder = 'joesmith@example.com'; break; case 'number': - scope.field.input_type = 'number'; + scope.field.input_type = 'text'; + scope.field.validateRegex = /^\d+$/; break; default: scope.field.input_type = 'url'; diff --git a/public/modules/forms/directives/on-enter-key.client.directive.js b/public/modules/forms/directives/on-enter-key.client.directive.js index 11bf731f..0ad1548c 100644 --- a/public/modules/forms/directives/on-enter-key.client.directive.js +++ b/public/modules/forms/directives/on-enter-key.client.directive.js @@ -2,19 +2,18 @@ angular.module('forms').directive('onEnterKey', ['$rootScope', function($rootScope){ return { - restrict: 'A', + restrict: 'A', link: function($scope, $element, $attrs) { $element.bind('keydown keypress', function(event) { var keyCode = event.which || event.keyCode; - console.log($attrs.onEnterKey); if(keyCode === 13) { $rootScope.$apply(function() { $rootScope.$eval($attrs.onEnterKey); }); - + event.preventDefault(); } }); } - }; + }; }]); diff --git a/public/modules/forms/directives/submit-form.client.directive.js b/public/modules/forms/directives/submit-form.client.directive.js index e582c2eb..f74e3ede 100644 --- a/public/modules/forms/directives/submit-form.client.directive.js +++ b/public/modules/forms/directives/submit-form.client.directive.js @@ -36,7 +36,7 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' }; $scope.setActiveField($scope.myform.visible_form_fields[0]._id, 0, false); - console.log($scope.selected); + //console.log($scope.selected); //Reset Timer TimeCounter.restartClock(); }; @@ -83,13 +83,13 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' */ $scope.setActiveField = $rootScope.setActiveField = function(field_id, field_index, animateScroll) { if($scope.selected === null || $scope.selected._id === field_id){ - console.log('not scrolling'); - console.log($scope.selected); + //console.log('not scrolling'); + //console.log($scope.selected); return; } - console.log('field_id: '+field_id); - console.log('field_index: '+field_index); - console.log($scope.selected); + //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; @@ -106,7 +106,7 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' }; $rootScope.nextField = $scope.nextField = function(){ - console.log('nextfield'); + //console.log('nextfield'); //console.log($scope.selected.index); //console.log($scope.myform.form_fields.length-1); if($scope.selected.index < $scope.myform.form_fields.length-1){ @@ -150,14 +150,14 @@ 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('form submitted successfully'); + //console.log('form submitted successfully'); $scope.myform.submitted = true; $scope.loading = false; }) .error(function (error) { $scope.loading = false; - console.log(error); + //console.log(error); $scope.error = error.message; }); }, 500); diff --git a/public/modules/forms/services/forms.client.service.js b/public/modules/forms/services/forms.client.service.js index 97bdb6e3..94f90ee3 100644 --- a/public/modules/forms/services/forms.client.service.js +++ b/public/modules/forms/services/forms.client.service.js @@ -7,7 +7,7 @@ angular.module('forms').factory('Forms', ['$resource', formId: '@_id' }, { 'query' : { - method: 'GET', + method: 'GET', isArray: true, //DAVID: TODO: Do we really need to get visible_form_fields for a Query? // transformResponse: function(data, header) { @@ -21,11 +21,11 @@ angular.module('forms').factory('Forms', ['$resource', // } }, 'get' : { - method: 'GET', + method: 'GET', transformResponse: function(data, header) { var form = angular.fromJson(data); - console.log(form); - + //console.log(form); + form.visible_form_fields = _.filter(form.form_fields, function(field){ return (field.deletePreserved === false); }); @@ -40,4 +40,4 @@ angular.module('forms').factory('Forms', ['$resource', } }); } -]); \ No newline at end of file +]); diff --git a/public/modules/forms/views/directiveViews/field/legal.html b/public/modules/forms/views/directiveViews/field/legal.html index 71b62586..ca79ea8f 100644 --- a/public/modules/forms/views/directiveViews/field/legal.html +++ b/public/modules/forms/views/directiveViews/field/legal.html @@ -1,4 +1,6 @@ -