From 77f1f5dc43ad70e40d95926ff2b37184b4639ffa Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 28 Apr 2016 00:38:56 +0300 Subject: [PATCH] wip --- public/application.js | 2 ++ .../forms/base/config/forms.client.config.js | 29 +++++++++++++++++++ .../base/directives/field.client.directive.js | 2 +- .../submit-form.client.directive.js | 3 +- .../base/services/forms.client.service.js | 7 ++--- .../forms/config/forms.client.routes.js | 4 +-- 6 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 public/modules/forms/base/config/forms.client.config.js diff --git a/public/application.js b/public/application.js index 5b024e0f..25c2ca36 100755 --- a/public/application.js +++ b/public/application.js @@ -23,6 +23,8 @@ angular.module(ApplicationConfiguration.applicationModuleName).constant('USER_RO normal: 'user', superuser: 'superuser' }); +//form url +angular.module(ApplicationConfiguration.applicationModuleName).constant('FORM_URL', '/forms/:formId'); angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope', 'Auth', '$state', '$stateParams', function($rootScope, Auth, $state, $stateParams) { diff --git a/public/modules/forms/base/config/forms.client.config.js b/public/modules/forms/base/config/forms.client.config.js new file mode 100644 index 00000000..b08eebd7 --- /dev/null +++ b/public/modules/forms/base/config/forms.client.config.js @@ -0,0 +1,29 @@ +'use strict'; + +// Configuring the Forms drop-down menus +angular.module('forms').filter('formValidity', +function(){ + return function(formObj){ + if(formObj && formObj.form_fields && formObj.visible_form_fields){ + + //get keys + var formKeys = Object.keys(formObj); + + //we only care about things that don't start with $ + var fieldKeys = formKeys.filter(function(key){ + return key[0] !== '$'; + }); + + var fields = formObj.form_fields; + + var valid_count = fields.filter(function(field){ + if(typeof field === 'object' && field.fieldType !== 'statement' && field.fieldType !== 'rating'){ + return !!(field.fieldValue); + } + + }).length; + return valid_count - (formObj.form_fields.length - formObj.visible_form_fields.length); + } + return 0; + }; +}); diff --git a/public/modules/forms/base/directives/field.client.directive.js b/public/modules/forms/base/directives/field.client.directive.js index 7bac569f..204055bd 100644 --- a/public/modules/forms/base/directives/field.client.directive.js +++ b/public/modules/forms/base/directives/field.client.directive.js @@ -13,7 +13,7 @@ angular.module('forms').directive('fieldDirective', ['$http', '$compile', '$root var getTemplateUrl = function(fieldType) { var type = fieldType; - var templateUrl = 'modules/forms/views/directiveViews/field/'; + var templateUrl = 'modules/forms/base/views/directiveViews/field/'; var supported_fields = [ 'textfield', 'textarea', diff --git a/public/modules/forms/base/directives/submit-form.client.directive.js b/public/modules/forms/base/directives/submit-form.client.directive.js index 223f20e8..66215725 100644 --- a/public/modules/forms/base/directives/submit-form.client.directive.js +++ b/public/modules/forms/base/directives/submit-form.client.directive.js @@ -3,8 +3,7 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter', '$filter', '$rootScope', 'Auth', function ($http, TimeCounter, $filter, $rootScope, Auth) { return { - templateUrl: 'modules/forms/views/directiveViews/form/submit-form.client.view.html', - restrict: 'E', + templateUrl: 'modules/forms/base/views/directiveViews/form/submit-form.client.view.html', restrict: 'E', scope: { myform:'=' }, diff --git a/public/modules/forms/base/services/forms.client.service.js b/public/modules/forms/base/services/forms.client.service.js index 94f90ee3..4d3d38e9 100644 --- a/public/modules/forms/base/services/forms.client.service.js +++ b/public/modules/forms/base/services/forms.client.service.js @@ -1,9 +1,9 @@ 'use strict'; //Forms service used for communicating with the forms REST endpoints -angular.module('forms').factory('Forms', ['$resource', - function($resource) { - return $resource('/forms/:formId', { +angular.module('forms').factory('Forms', ['$resource', 'FORM_URL', + function($resource, FORM_URL) { + return $resource(FORM_URL, { formId: '@_id' }, { 'query' : { @@ -25,7 +25,6 @@ angular.module('forms').factory('Forms', ['$resource', transformResponse: function(data, header) { var form = angular.fromJson(data); //console.log(form); - form.visible_form_fields = _.filter(form.form_fields, function(field){ return (field.deletePreserved === false); }); diff --git a/public/modules/forms/config/forms.client.routes.js b/public/modules/forms/config/forms.client.routes.js index 5e5f44c6..a1142d33 100644 --- a/public/modules/forms/config/forms.client.routes.js +++ b/public/modules/forms/config/forms.client.routes.js @@ -8,11 +8,11 @@ angular.module('forms').config(['$stateProvider', $stateProvider. state('listForms', { url: '/forms', - templateUrl: 'modules/forms/views/list-forms.client.view.html' + templateUrl: 'modules/forms/admin/views/list-forms.client.view.html' }). state('submitForm', { url: '/forms/:formId', - templateUrl: 'modules/forms/views/submit-form.client.view.html', + templateUrl: 'modules/forms/base/views/submit-form.client.view.html', data: { hideNav: true },