From f3f7d852fc2ab62ee407f58df36e7af4a21ed3ba Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Tue, 30 Jun 2015 07:21:53 -0700 Subject: [PATCH] added support for all FieldTypes --- app/models/form.server.model.js | 14 +++++++++----- app/models/form_field.server.model.js | 13 +++++++++---- config/env/all.js | 1 + .../users/config/users.client.config.js | 18 +++++++----------- .../users/services/principal.client.service.js | 4 ++-- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/app/models/form.server.model.js b/app/models/form.server.model.js index 7fe05f13..6f7ac0dd 100644 --- a/app/models/form.server.model.js +++ b/app/models/form.server.model.js @@ -10,9 +10,8 @@ var mongoose = require('mongoose'), _ = require('lodash'), config = require('../../config/config'), path = require('path'), - fs = require('fs-extra'); - -var Field = mongoose.model('Field', FieldSchema); + fs = require('fs-extra'), + Field = mongoose.model('Field', FieldSchema); /** @@ -117,8 +116,13 @@ FormSchema.pre('save', function (next) { if(this.isGenerated && this.pdf){ var _typeConvMap = { + 'Multiline': 'textarea', 'Text': 'textfield', - 'Button': 'checkbox' + 'Button': 'checkbox', + 'Choice': 'radio', + 'Password': 'password', + 'FileSelect': 'filefield', + 'Radio': 'radio' }; var that = this; @@ -136,8 +140,8 @@ FormSchema.pre('save', function (next) { field.fieldType = _typeConvMap[ field.fieldType+'' ]; } - // field.created = Date.now(); field.fieldValue = ''; + // field.created = Date.now(); // field.required = true; //field.disabled = false; diff --git a/app/models/form_field.server.model.js b/app/models/form_field.server.model.js index ed58cc9f..b8f756e0 100644 --- a/app/models/form_field.server.model.js +++ b/app/models/form_field.server.model.js @@ -10,18 +10,23 @@ var mongoose = require('mongoose'), function validateFormFieldType(value) { if (!value || typeof myVar !== 'string' ) { return false; } - var validTypes = [ + var validHTMLTypes = [ 'textfield', - 'email', - 'url', 'textarea', + 'statement' + 'email', + 'legal', + 'url', + 'number', + 'filefield', + 'radio', 'checkbox', 'date', 'dropdown', 'hidden', 'password', - 'radio' ]; + if (validTypes.indexOf(value) > -1) { return true; } diff --git a/config/env/all.js b/config/env/all.js index c8386400..bd3871f3 100755 --- a/config/env/all.js +++ b/config/env/all.js @@ -59,6 +59,7 @@ module.exports = { ], js: [ 'public/lib/angular/angular.js', + 'public/lib/angular-permission/dist/angular-permission.js', 'public/lib/angular-resource/angular-resource.js', 'public/lib/angular-animate/angular-animate.js', 'public/lib/angular-ui-router/release/angular-ui-router.js', diff --git a/public/modules/users/config/users.client.config.js b/public/modules/users/config/users.client.config.js index 225007ce..dd9c46f6 100755 --- a/public/modules/users/config/users.client.config.js +++ b/public/modules/users/config/users.client.config.js @@ -1,8 +1,8 @@ // 'use strict'; // Config HTTP Error Handling -angular.module('users').config(['$httpProvider','$q', '$location', 'Principal', - function($httpProvider, $q, $location, Principal) { +angular.module('users').config(['$httpProvider', + function($httpProvider) { // Set the httpProvider "not authorized" interceptor $httpProvider.interceptors.push(['$q', '$location', 'Principal', function($q, $location, Principal) { @@ -27,8 +27,7 @@ angular.module('users').config(['$httpProvider','$q', '$location', 'Principal', } ]); } -]).config(['Permission', 'Principal', - function($Permission, Principal) { +]).run(function(Permission, Principal) { var User = Principal.identity(); Permission.defineRole('anonymous', function (stateParams) { // If the returned value is *truthy* then the user has the role, otherwise they don't @@ -37,17 +36,14 @@ angular.module('users').config(['$httpProvider','$q', '$location', 'Principal', } return false; }).defineRole('admin', function (stateParams) { - // If the returned value is *truthy* then the user has the role, otherwise they don't if (Principal.isInRole('admin')) { - return true; // Is anonymous + return true; // Is admin } return false; - }).defineRole('admin', function (stateParams) { - // If the returned value is *truthy* then the user has the role, otherwise they don't + }).defineRole('user', function (stateParams) { if (Principal.isInRole('user') && !Principal.isInRole('admin') ) { - return true; // Is anonymous + return true; // Is user } return false; }); - } -]); \ No newline at end of file + }); \ No newline at end of file diff --git a/public/modules/users/services/principal.client.service.js b/public/modules/users/services/principal.client.service.js index a3c76e9d..8dcee53d 100755 --- a/public/modules/users/services/principal.client.service.js +++ b/public/modules/users/services/principal.client.service.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('users').factory('Principal', ['$window', '$http', '$q', '$timeout', '$state', - function($window, $http, $q, $timeout, $state) { +angular.module('users').factory('Principal', ['$window', '$http', '$q', '$timeout', + function($window, $http, $q, $timeout) { var service = { _currentUser: null,