From de914abb9004c70b661c2946d44f80a7df8d432b Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Fri, 3 Jul 2015 20:25:25 -0700 Subject: [PATCH] updated edit-form view --- public/modules/forms/css/form.css | 11 + .../directives/edit-form.client.directive.js | 26 +- .../directives/field-icon.client.directive.js | 31 +++ .../services/form-fields.client.service.js | 28 +- .../directiveViews/form/configure-form.html | 6 + .../views/directiveViews/form/edit-form.html | 240 +++++++++--------- .../views/directiveViews/form/fieldIcon.html | 1 + .../forms/views/view-form.client.view.html | 8 +- 8 files changed, 217 insertions(+), 134 deletions(-) create mode 100644 public/modules/forms/directives/field-icon.client.directive.js create mode 100644 public/modules/forms/views/directiveViews/form/fieldIcon.html diff --git a/public/modules/forms/css/form.css b/public/modules/forms/css/form.css index 3855e210..f2f31e51 100644 --- a/public/modules/forms/css/form.css +++ b/public/modules/forms/css/form.css @@ -21,6 +21,17 @@ padding-top: 3em; } +.admin-form .panel-heading { + background-color: #f1f1f1; +} + .admin-form .panel-heading:hover { + background-color: #fff; + cursor: pointer; + } + .admin-form .panel-heading a:hover { + text-decoration: none; + } + .current-fields .tool-panel > .panel-default:hover { border-color: #9d9d9d; cursor: pointer; diff --git a/public/modules/forms/directives/edit-form.client.directive.js b/public/modules/forms/directives/edit-form.client.directive.js index 0c4e4ab1..72f053de 100644 --- a/public/modules/forms/directives/edit-form.client.directive.js +++ b/public/modules/forms/directives/edit-form.client.directive.js @@ -7,22 +7,33 @@ angular.module('forms').directive('editFormDirective', ['$http', '$timeout', 'ti //Populate AddField with all available form field types $scope.addField = {}; $scope.addField.types = FormFields.fields; - $scope.addField.new = $scope.addField.types[0].name; - $scope.addField.lastAddedID = 0; + // $scope.addField.new = $scope.addField.types[0].name; + $scope.addField.types.forEach(function(type){ + type.lastAddedID = 0; + return type; + }); // accordion settings $scope.accordion = {}; $scope.accordion.oneAtATime = true; // create new field button click - $scope.addNewField = function(){ + $scope.addNewField = function(fieldType){ // incr field_id counter $scope.addField.lastAddedID++; - + var fieldTitle; + for(var i = 0; i < $scope.addField.types.length; i++){ + console.log($scope.addField.types[i].name === fieldType); + if($scope.addField.types[i].name === fieldType){ + $scope.addField.types[i].lastAddedID++; + fieldTitle = $scope.addField.types[i].value+$scope.addField.types[i].lastAddedID; + break; + } + } var newField = { - 'title' : 'New field - ' + ($scope.addField.lastAddedID), - 'fieldType' : $scope.addField.new, + 'title' : fieldTitle, + 'fieldType' : fieldType, 'fieldValue' : '', 'required' : true, 'disabled' : false @@ -38,8 +49,7 @@ angular.module('forms').directive('editFormDirective', ['$http', '$timeout', 'ti for(var i = 0; i < $scope.form.form_fields.length; i++){ console.log($scope.form.form_fields[i].$$hashKey === hashKey); if($scope.form.form_fields[i].$$hashKey === hashKey){ - $scope.form.form_fields.splice(i, 1); - + $scope.form.form_fields.splice(i, 1); break; } } diff --git a/public/modules/forms/directives/field-icon.client.directive.js b/public/modules/forms/directives/field-icon.client.directive.js new file mode 100644 index 00000000..4d56a930 --- /dev/null +++ b/public/modules/forms/directives/field-icon.client.directive.js @@ -0,0 +1,31 @@ +'use strict'; + +angular.module('forms').directive('fieldIconDirective', function($http, $compile) { + + return { + templateUrl: './modules/forms/views/directiveViews/form/fieldIcon.html', + restrict: 'E', + scope: { + typeName: '@' + }, + controller: function($scope){ + var iconTypeMap = { + "textfield": "fa fa-pencil-square-o", + "dropdown": "fa fa-th-list", + "date": "fa fa-calendar", + "checkbox": "fa fa-check-square-o", + "radio": "fa fa-dot-circle-o", + "email": "fa fa-envelope-o", + "textarea": "fa fa-pencil-square", + "legal": "fa fa-legal", + "file": "fa fa-cloud-upload", + "rating": "fa fa-star-half-o", + "link": "fa fa-link", + "scale": "fa fa-sliders", + "stripe": "fa fa-credit-card", + } + $scope.typeIcon = iconTypeMap[$scope.typeName]; + }, + + }; +}); \ No newline at end of file diff --git a/public/modules/forms/services/form-fields.client.service.js b/public/modules/forms/services/form-fields.client.service.js index de101195..637a2fad 100644 --- a/public/modules/forms/services/form-fields.client.service.js +++ b/public/modules/forms/services/form-fields.client.service.js @@ -9,11 +9,11 @@ angular.module('forms').service('FormFields', [ }, { name : 'email', - value : 'E-mail' + value : 'Email' }, { name : 'radio', - value : 'Radio Buttons' + value : 'Multiple Choice' }, { name : 'dropdown', @@ -31,6 +31,30 @@ angular.module('forms').service('FormFields', [ name : 'checkbox', value : 'Checkbox' }, + { + name : 'legal', + value : 'Legal' + }, + { + name : 'file', + value : 'File Upload' + }, + { + name : 'rating', + value : 'Rating' + }, + { + name : 'link', + value : 'Link' + }, + { + name : 'scale', + value : 'Opinion Scale' + }, + { + name : 'stripe', + value : 'Payment' + }, ]; } diff --git a/public/modules/forms/views/directiveViews/form/configure-form.html b/public/modules/forms/views/directiveViews/form/configure-form.html index f8de7857..1b8db423 100644 --- a/public/modules/forms/views/directiveViews/form/configure-form.html +++ b/public/modules/forms/views/directiveViews/form/configure-form.html @@ -9,6 +9,8 @@
Upload your PDF
+ +
@@ -40,6 +42,8 @@
Autogenerate Form?
+
+


@@ -62,6 +66,8 @@
Save Submissions as PDFs?


+
+