diff --git a/app/controllers/core.server.controller.js b/app/controllers/core.server.controller.js index a6f401db..2bec8b05 100755 --- a/app/controllers/core.server.controller.js +++ b/app/controllers/core.server.controller.js @@ -13,6 +13,8 @@ exports.index = function(req, res) { }; exports.form = function(req, res) { + console.log('\n\n\nRENDERING FORM\n\n\n\n'); + //Allow form to be embedded res.set('X-Frame-Options', 'GOFORIT'); diff --git a/app/models/form_field.server.model.js b/app/models/form_field.server.model.js index 8271e5aa..71704614 100644 --- a/app/models/form_field.server.model.js +++ b/app/models/form_field.server.model.js @@ -200,7 +200,7 @@ FormFieldSchema.pre('save', function(next) { if(this.logicJump.jumpTo === '') delete this.logicJump.jumpTo; } if(!this.globalId){ - this.globalId = uidgen3.generateSync() + this.globalId = uidgen3.generateSync(); } next(); }); diff --git a/app/routes/core.server.routes.js b/app/routes/core.server.routes.js index 7deb026d..ab54e7ad 100755 --- a/app/routes/core.server.routes.js +++ b/app/routes/core.server.routes.js @@ -4,8 +4,7 @@ * Module dependencies. */ var forms = require('../../app/controllers/forms.server.controller'), - core = require('../../app/controllers/core.server.controller'), - config = require('../../config/config'); + core = require('../../app/controllers/core.server.controller'); module.exports = function(app) { // Core routing @@ -14,25 +13,5 @@ module.exports = function(app) { app.route('/subdomain/api/') .get(core.redoc); - - if(!config.subdomainsDisabled) { - app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/') - .get(core.form); - - app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)') - .post(forms.createSubmission); - - app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)/render') - .get(forms.readForRender); - } else { - app.route('/view/') - .get(core.form); - - app.route('/forms/:formId([a-zA-Z0-9]+)') - .post(forms.createSubmission); - - app.route('/forms/:formId([a-zA-Z0-9]+)/render') - .get(forms.readForRender); - } }; diff --git a/app/routes/forms.server.routes.js b/app/routes/forms.server.routes.js index b347989d..949d39f2 100644 --- a/app/routes/forms.server.routes.js +++ b/app/routes/forms.server.routes.js @@ -4,10 +4,29 @@ * Module dependencies. */ var forms = require('../../app/controllers/forms.server.controller'), - auth = require('../../config/passport_helpers'); + auth = require('../../config/passport_helpers'), + config = require('../../config/config'), + core = require('../../app/controllers/core.server.controller'); module.exports = function(app) { // Form Routes + if(!config.subdomainsDisabled) { + app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/') + .get(core.form); + + app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)') + .post(forms.createSubmission); + + app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)/render') + .get(forms.readForRender); + + app.route('/forms/:formId([a-zA-Z0-9]+)/render') + .put(auth.isAuthenticatedOrApiKey, forms.hasAuthorization, forms.readForRender) + .get(auth.isAuthenticatedOrApiKey, forms.hasAuthorization, forms.readForRender); + } else { + app.route('/forms/:formId([a-zA-Z0-9]+)/render') + .get(forms.readForRender); + } app.route('/forms') .get(auth.isAuthenticatedOrApiKey, forms.list) .post(auth.isAuthenticatedOrApiKey, forms.create); diff --git a/app/views/form.server.view.html b/app/views/form.server.view.html index 079d6eda..0bc127bd 100644 --- a/app/views/form.server.view.html +++ b/app/views/form.server.view.html @@ -1,143 +1,143 @@ - - {{title}} Form + + {{title}} Form - - - - - - - + + + + + + + - - - + + + - - - - - - - + + + + + + + - - - - - + + + + + - + - - + + - - - - - - {% for bowerCssFile in bowerCssFiles %} - - {% endfor %} - - + + + + + + {% for bowerCssFile in bowerCssFiles %} + + {% endfor %} + + - + - - {% for cssFile in cssFiles %} - - {% endfor %} - + + {% for cssFile in cssFiles %} + + {% endfor %} + - - - + + + - -
+ + +
+ +
+
+
+ + -
-
-
+ + - + + + + + + + + {% for jsFile in formJSFiles %} + + {% endfor %} + - - + {% if process.env.NODE_ENV === 'development' %} + + + {% endif %} - - - - + - - - -{% for jsFile in formJSFiles %} - -{% endfor %} - + -{% endif %} + ga('create', '{{google_analytics_id}}', 'auto'); + ga('send', 'pageview'); + - - - - - + diff --git a/public/modules/forms/base/config/forms.client.config.js b/base_bak/config/forms.client.config.js similarity index 100% rename from public/modules/forms/base/config/forms.client.config.js rename to base_bak/config/forms.client.config.js diff --git a/public/modules/forms/base/config/i18n/english.js b/base_bak/config/i18n/english.js similarity index 100% rename from public/modules/forms/base/config/i18n/english.js rename to base_bak/config/i18n/english.js diff --git a/public/modules/forms/base/config/i18n/french.js b/base_bak/config/i18n/french.js similarity index 100% rename from public/modules/forms/base/config/i18n/french.js rename to base_bak/config/i18n/french.js diff --git a/public/modules/forms/base/config/i18n/german.js b/base_bak/config/i18n/german.js similarity index 100% rename from public/modules/forms/base/config/i18n/german.js rename to base_bak/config/i18n/german.js diff --git a/public/modules/forms/base/config/i18n/italian.js b/base_bak/config/i18n/italian.js similarity index 100% rename from public/modules/forms/base/config/i18n/italian.js rename to base_bak/config/i18n/italian.js diff --git a/public/modules/forms/base/config/i18n/spanish.js b/base_bak/config/i18n/spanish.js similarity index 100% rename from public/modules/forms/base/config/i18n/spanish.js rename to base_bak/config/i18n/spanish.js diff --git a/public/modules/forms/base/controllers/submit-form.client.controller.js b/base_bak/controllers/submit-form.client.controller.js similarity index 100% rename from public/modules/forms/base/controllers/submit-form.client.controller.js rename to base_bak/controllers/submit-form.client.controller.js diff --git a/base_bak/css/form.css b/base_bak/css/form.css new file mode 100644 index 00000000..864a3bb7 --- /dev/null +++ b/base_bak/css/form.css @@ -0,0 +1,618 @@ +/* Custom Tab CSS */ +.nav.nav-pills.nav-stacked { + width: 16.66666667%; + float: left; + position: relative; + min-height: 1px; + padding-right: 15px; +} +div.tab-content { + width: 83.33333333%; + position: relative; + min-height: 1px; + float:left; + padding-top: 0!important; +} + +.panel-default.startPage { + border-style: dashed; + border-color: #a9a9a9; + border-width:3px; +} + +.busy-updating-wrapper { + text-align: center; + font-size: 20px; + position: fixed; + bottom: 0; + right: 55px; + z-index: 1; +} + +.busy-submitting-wrapper { + position: fixed; + top: 50%; + left: 0; + right: 0; + bottom: 0; +} + +.dropzone h4.panel-title { + height: 17px; + overflow: hidden; +} + +.container.admin-form { + margin-top: 70px; +} + +.public-form.preview { + border: none; + box-shadow: 0px 0px 10px 0px grey; + overflow-y: scroll; + overflow-x: hidden; + height: 400px; + width: 90%; + position: absolute; +} + +.public-form input, .public-form textarea { + background-color: #000000; + background-color: rgba(0,0,0,0); + border: 2px dashed #ddd!important; +} + +.public-form input:focus, .public-form textarea:focus { + border: 2px dashed #ddd!important; + outline: 0; +} + +/*.public-form input.no-border.ng-invalid, .public-form textarea.no-border { + border-color: none; +}*/ +.public-form input.ng-valid, .public-form textarea.ng-valid { + border-color: #20FF20!important; + border-style: solid!important; + border-width: 3px!important; +} + +.public-form input.ng-invalid.ng-dirty, .public-form textarea.ng-invalid.ng-dirty { + border-color: #FA787E!important; + border-style: solid!important; + border-width: 3px!important; +} + +section.content p.breakwords { + word-break: break-all; +} + +.public-form .btn { + border: 1px solid #c6c6c6; +} + +.public-form .btn[type='submit'] { + font-size: 1.5em; + padding: 0.35em 1.2em 0.35em 1.2em; +} + +section.content > section > section.container { + margin-top: 70px; +} + +/* +** Modal CSS Styles +*/ +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + font-size: 18px; + font-weight: normal; +} +.public-form .input-block { + display: block; + width: 100%; +} +.modal-footer input[type='text'] { + min-height: 34px; + padding: 7px 8px; + font-size: 13px; + color: #333; + vertical-align: middle; + background-color: #fff; + background-repeat: no-repeat; + background-position: right 8px center; + border: 1px solid #ccc; + border-radius: 3px; + box-shadow: inset 0 1px 2px rgba(0,0,0,0.075); +} +.modal-body > .modal-body-alert { + color: #796620; + background-color: #f8eec7; + border-color: #f2e09a; + margin: -16px -15px 15px; + padding: 10px 15px; + border-style: solid; + border-width: 1px 0; +} + +div.form-fields { + position: relative; + padding-top: 10%; +} +.public-form .letter { + position: relative; + display: -moz-inline-stack; + display: inline-block; + vertical-align: top; + zoom: 1; + width: 16px; + padding: 0; + height: 17px; + font-size: 12px; + line-height: 19px; + border: 1px solid #000; + border: 1px solid rgba(0,0,0,.2); + margin-right: 7px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + text-align: center; + font-weight: 700; +} + +div.form-submitted > .field.row { + padding-bottom: 2%; + margin-top: 10%; +} +div.form-submitted > .field.row > div { + font-size: 1.7em; +} + +/* Styles for accordion */ +form .accordion-edit { + width: inherit; +} + +/*Styles for ui-datepicker*/ +.ui-datepicker.ui-widget { + z-index: 99!important; +} + +form .row.field .field-number { + margin-right: 0.5em; +} + +/* Styles for form submission view (/forms/:formID) */ +form .row.field { + padding: 1em 0 0 0; + width: inherit; +} + form .row.field > .field-title { + margin-top:0.5em; + font-size:1.2em; + padding-bottom: 1.8em; + width: inherit; + } + form .row.field > .field-input { + font-size: 1.4em; + color: #777; + } + form.submission-form .row.field.statement > .field-title { + font-size:1.7em; + } + form.submission-form .row.field.statement > .field-input { + font-size:1em; + color:#ddd; + } + + form.submission-form .select.radio > .field-input input, form.submission-form .select > .field-input input { + width:20%; + } + + form.submission-form .field.row.radio .btn.activeBtn { + background-color: #000!important; + background-color: rgba(0,0,0,0.7)!important; + color: white; + } + form.submission-form .field.row.radio .btn { + margin-right:1.2em; + } + + form.submission-form .select > .field-input .btn { + text-align: left; + margin-bottom:0.7em; + } + form.submission-form .select > .field-input .btn > span { + font-size: 1.10em; + } + + /*form.submission-form .field-input > input:focus { + font-size:1em; + }*/ + + form .field-input > textarea{ + padding: 0.45em 0.9em; + width: 100%; + line-height: 160%; + } + + form .field-input > input.hasDatepicker{ + padding: 0.45em 0.9em; + width: 50%; + line-height: 160%; + } + form .field-input > input.text-field-input{ + padding: 0.45em 0.9em; + width: 100%; + line-height: 160%; + } + form .required-error{ + color: #ddd; + font-size:0.8em; + } + + form .row.field.dropdown > .field-input input { + min-height: 34px; + border-width: 0 0 2px 0; + border-radius: 5px; + } + + form .row.field.dropdown > .field-input input:focus { + border: none; + } + + form .dropdown > .field-input .ui-select-choices-row-inner { + border-radius: 3px; + margin: 5px; + padding: 10px; + background-color: #000000; + background-color: rgba(0,0,0,0.05); + } + + form .dropdown > .field-input .ui-select-choices-row-inner.active, form .dropdown > .field-input .ui-select-choices-row-inner.active:focus { + background-color: #000000; + background-color: rgba(0,0,0,0.1); + } +.config-form { + max-width: 100%; +} + +.config-form > .row { + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} + +div.config-form .row.field { + padding-top:1.5em; +} + + div.config-form > .row > .container:nth-of-type(odd){ + border-right: 1px #ddd solid; + } + div.config-form.design > .row > .container:nth-of-type(odd){ + border-right: none; + } + + div.config-form .row > .field-input { + padding-left:0.1em; + } + div.config-form .row > .field-input label { + padding-left:1.3em; + display: block; + } + + +/* Styles for form admin view (/forms/:formID/admin) */ +.admin-form > .page-header { + padding-bottom: 0; + margin-bottom: 40px; +} + .admin-form > .page-header h1 { + margin-bottom: 0; + margin-top: 0; + } + .admin-form > .page-header > .col-xs-3 { + padding-top: 1.4em; + } +.admin-form .form-controls .row { + padding: 5px; +} +.admin-form .page-header { + border: none; + margin-top: none; + margin-bottom: none; +} + +/*Styles for admin view tabs */ +.admin-form .tab-content { + padding-top: 3em; +} + +.admin-form .panel-heading { + background-color: #f1f1f1; + position: relative!important; +} + .admin-form .panel-heading:hover { + background-color: #fff; + cursor: pointer; + } + .admin-form .panel-heading a:hover { + text-decoration: none; + } + +.current-fields .panel-body .row.question input[type='text'], .current-fields .panel-body .row.description textarea{ + width: 100%; +} +.current-fields .panel-body .row.options input[type='text'] { + width: 80%; +} + +/*Override Select2 UI*/ +.ui-select-choices.ui-select-dropdown { + top:2.5em!important; +} +.ui-select-toggle { + box-shadow:none!important; + border:none!important; +} + +.current-fields .tool-panel > .panel-default:hover { + border-color: #9d9d9d; + cursor: pointer; +} + +.current-fields .tool-panel > .panel-default .panel-heading { + background-color: #fff; + color: #9d9d9d!important; +} + .current-fields .tool-panel > .panel-default .panel-heading:hover { + background-color: #eee; + color: #000!important; + cursor: pointer; + } +.current-fields .tool-panel > .panel-default .panel-heading a { + color: inherit; +} +.current-fields .tool-panel > .panel-default .panel-heading a:hover{ + text-decoration: none; +} + +/*Styles for submission table*/ +.submissions-table .table-outer.row { + margin: 1.5em 0 2em 0!important; +} +.submissions-table .table-outer .col-xs-12 { + padding-left: 0!important; + border:1px solid #ddd; + overflow-x: scroll; + border-radius:3px; +} +.submissions-table .table > thead > tr > th { + min-width:8em; +} +.submissions-table .table > tbody > tr.selected { + background-color:#efefef; +} + + +/*Styles for add fields tab*/ +.admin-form .add-field { + background-color: #ddd; + padding: 0 2% 0 2%; + border-radius: 3px; +} + .admin-form .add-field .col-xs-6 { + padding: 0.25em 0.4em; + } + .admin-form .add-field .col-xs-6 .panel-heading { + border-width: 1px; + border-style: solid; + border-color: #bbb; + border-radius: 4px; + } + + .admin-form .oscar-field-select { + margin: 10px 0 10px; + } + +.view-form-btn.span { + padding-right:0.6em; +} +.status-light.status-light-off { + color: #BE0000; +} +.status-light.status-light-on { + color: #33CC00; +} + +/* Styles for form list view (/forms) */ +section.public-form { + padding: 0 10% 0 10%; +} +section.public-form .form-submitted { + height: 100%; +} + +section.public-form .btn { + border: 1px solid; +} + +.form-item { + border-radius: 5px; + text-align: center; + background-color: #eee; + width: 180px; + position: relative; + height: 215px; + margin-bottom: 45px; +} + + +.form-item.paused { + background-color: red; + color: white; +} + +.form-item.paused:hover { + background-color: darkred; + color: white; +} + +.form-item.create-new input[type='text']{ + width: inherit; + color:black; + border:none; +} + +.form-item.create-new { + background-color: #3FA2F7; + color: white; +} + + +.form-item.create-new:hover { + background-color: #276496; +} + +/*CREATE-NEW FORM MODAL*/ +.form-item.create-new.new-form { + background-color: #832383; + background-color: rgb(300,131,131); + z-index: 11; +} +.form-item.create-new.new-form:hover { + background-color: #3079b5; +} + .form-item.new-form input[type='text'] { + margin-top:0.2em; + width: inherit; + color:black; + border:none; + padding: 0.3em 0.6em 0.3em 0.6em; + } + .form-item.new-form .custom-select { + margin-top: 0.2em + } + .form-item.new-form .custom-select select { + background-color: white; + } + + + .form-item.new-form .details-row { + margin-top: 1em; + } + .form-item.new-form .details-row.submit { + margin-top: 1.7em; + } + .form-item.new-form .details-row.submit .btn { + font-size: 0.95em; + } + + .form-item.new-form .title-row { + margin-top: 1em; + top:0; + } + +/*Modal overlay (for lightbox effect)*/ +.overlay { + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + background-color: #000; + background-color: rgba(0,0,0,0.5); + z-index: 10; +} +.overlay.submitform { + background-color: #fff; + background-color: rgba(256,256,256,0.8); +} + +/*Modal overlay for live preview in Design Tab of Admin Form page*/ +.overlay.previewform { + position: absolute; +} + +.field-directive { + z-index: 9; + padding: 10% 10% 10% 0; + border: 25px transparent solid; + position: relative; +} +.activeField { + z-index: 11; + position: relative; + background-color: transparent; +} +.activeField.field-directive { + display: inline-block; + border-radius: 7px; + width: 100%; + border: 25px transparent solid; +} + .activeField input { + background-color: transparent; + } +h3.forms-list-title { + color: #3FA2F7; + font-weight: 600; + margin-bottom: 3em; +} +.form-item { + color: #71AADD; + background-color: #E4F1FD; +} +.form-item:hover { + background-color: #3FA2F7; + color: #23527C; +} + +.form-item.create-new:hover { + background-color: #d9d9d9; + color: white; +} + +.form-item.create-new:hover { + background-color: #515151; + background-color: rgb(81,81,81); +} + +.form-item > .row.footer { + position: absolute; + bottom: 0; + left: 30%; +} + +.form-item .title-row { + position: relative; + top: 15px; + padding-top:3em; + padding-bottom:1em; +} + .form-item .title-row h4 { + font-size: 1.3em; + } + +.form-item.create-new .title-row{ + padding: 0; +} + .form-item.create-new .title-row h4 { + font-size: 7em; + } + +.form-item .details-row{ + margin-top: 3.2em; +} + .form-item .details-row small { + font-size: 0.6em; + } + .form-item.create-new .details-row small { + font-size: 0.95em; + } diff --git a/public/modules/forms/base/directives/field-icon.client.directive.js b/base_bak/directives/field-icon.client.directive.js similarity index 100% rename from public/modules/forms/base/directives/field-icon.client.directive.js rename to base_bak/directives/field-icon.client.directive.js diff --git a/public/modules/forms/base/directives/field.client.directive.js b/base_bak/directives/field.client.directive.js similarity index 100% rename from public/modules/forms/base/directives/field.client.directive.js rename to base_bak/directives/field.client.directive.js diff --git a/public/modules/forms/base/directives/on-enter-key.client.directive.js b/base_bak/directives/on-enter-key.client.directive.js similarity index 100% rename from public/modules/forms/base/directives/on-enter-key.client.directive.js rename to base_bak/directives/on-enter-key.client.directive.js diff --git a/public/modules/forms/base/directives/on-finish-render.client.directive.js b/base_bak/directives/on-finish-render.client.directive.js similarity index 100% rename from public/modules/forms/base/directives/on-finish-render.client.directive.js rename to base_bak/directives/on-finish-render.client.directive.js diff --git a/public/modules/forms/base/directives/submit-form.client.directive.js b/base_bak/directives/submit-form.client.directive.js similarity index 92% rename from public/modules/forms/base/directives/submit-form.client.directive.js rename to base_bak/directives/submit-form.client.directive.js index 673b7d5b..c47f45ea 100644 --- a/public/modules/forms/base/directives/submit-form.client.directive.js +++ b/base_bak/directives/submit-form.client.directive.js @@ -4,16 +4,21 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter', '$filter', '$rootScope', 'Auth', 'SendVisitorData', function ($http, TimeCounter, $filter, $rootScope, Auth, SendVisitorData) { return { - templateUrl: 'modules/forms/base/views/directiveViews/form/submit-form.client.view.html', + templateUrl: '/static/modules/forms/base/views/directiveViews/form/submit-form.client.view.html', restrict: 'E', scope: { - myform:'=' + myform:'=', + ispreview: '=' }, controller: function($document, $window, $scope){ - $scope.authentication = $rootScope.authentication; $scope.noscroll = false; $scope.forms = {}; + //Don't start timer if we are looking at a design preview + if($scope.ispreview){ + TimeCounter.restartClock(); + } + var form_fields_count = $scope.myform.visible_form_fields.filter(function(field){ if(field.fieldType === 'statement' || field.fieldType === 'rating'){ return false; @@ -45,9 +50,10 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' }; $scope.setActiveField($scope.myform.visible_form_fields[0]._id, 0, false); - //console.log($scope.selected); //Reset Timer - TimeCounter.restartClock(); + if(!$scope.ispreview){ + TimeCounter.restartClock(); + } }; //Fire event when window is scrolled @@ -155,8 +161,6 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' } }); } - - }; $rootScope.nextField = $scope.nextField = function(){ @@ -200,6 +204,16 @@ angular.module('forms').directive('submitFormDirective', ['$http', 'TimeCounter' $rootScope.submitForm = $scope.submitForm = function(cb) { + //Don't submit anything if we are looking at a design preview + if ($scope.ispreview) { + $scope.myform.submitted = true; + $scope.loading = false; + + //Reload our form + $scope.reloadForm(); + return; + } + var _timeElapsed = TimeCounter.stopClock(); $scope.loading = true; diff --git a/public/modules/forms/base/services/current-form.client.service.js b/base_bak/services/current-form.client.service.js similarity index 100% rename from public/modules/forms/base/services/current-form.client.service.js rename to base_bak/services/current-form.client.service.js diff --git a/public/modules/forms/base/services/forms.client.service.js b/base_bak/services/forms.client.service.js similarity index 100% rename from public/modules/forms/base/services/forms.client.service.js rename to base_bak/services/forms.client.service.js diff --git a/public/modules/forms/base/services/socket.io.client.service.js b/base_bak/services/socket.io.client.service.js similarity index 100% rename from public/modules/forms/base/services/socket.io.client.service.js rename to base_bak/services/socket.io.client.service.js diff --git a/public/modules/forms/base/services/time-counter.client.service.js b/base_bak/services/time-counter.client.service.js similarity index 100% rename from public/modules/forms/base/services/time-counter.client.service.js rename to base_bak/services/time-counter.client.service.js diff --git a/public/modules/forms/base/views/directiveViews/entryPage/startPage.html b/base_bak/views/directiveViews/entryPage/startPage.html similarity index 100% rename from public/modules/forms/base/views/directiveViews/entryPage/startPage.html rename to base_bak/views/directiveViews/entryPage/startPage.html diff --git a/public/modules/forms/base/views/directiveViews/field/date.html b/base_bak/views/directiveViews/field/date.html similarity index 97% rename from public/modules/forms/base/views/directiveViews/field/date.html rename to base_bak/views/directiveViews/field/date.html index e7f02391..c4bf920c 100644 --- a/public/modules/forms/base/views/directiveViews/field/date.html +++ b/base_bak/views/directiveViews/field/date.html @@ -22,7 +22,7 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" + placeholder="MM/DD/YYYY" ng-focus="setActiveField(field._id, index, true)" on-tab-key="nextField()" diff --git a/public/modules/forms/base/views/directiveViews/field/dropdown.html b/base_bak/views/directiveViews/field/dropdown.html similarity index 97% rename from public/modules/forms/base/views/directiveViews/field/dropdown.html rename to base_bak/views/directiveViews/field/dropdown.html index 45b2c2a2..1be99916 100644 --- a/public/modules/forms/base/views/directiveViews/field/dropdown.html +++ b/base_bak/views/directiveViews/field/dropdown.html @@ -20,7 +20,7 @@ search-by="option_value" set-search-to-answer="true" ng-required="field.required" - ng-disabled="field.disabled" + on-tab-and-shift-key="prevField()" on-tab-key="nextField()" ng-change="$root.nextField()"> diff --git a/public/modules/forms/base/views/directiveViews/field/file.html b/base_bak/views/directiveViews/field/file.html similarity index 100% rename from public/modules/forms/base/views/directiveViews/field/file.html rename to base_bak/views/directiveViews/field/file.html diff --git a/public/modules/forms/base/views/directiveViews/field/hidden.html b/base_bak/views/directiveViews/field/hidden.html similarity index 89% rename from public/modules/forms/base/views/directiveViews/field/hidden.html rename to base_bak/views/directiveViews/field/hidden.html index 6aae485a..1b078114 100644 --- a/public/modules/forms/base/views/directiveViews/field/hidden.html +++ b/base_bak/views/directiveViews/field/hidden.html @@ -1 +1 @@ - + diff --git a/public/modules/forms/base/views/directiveViews/field/legal.html b/base_bak/views/directiveViews/field/legal.html similarity index 95% rename from public/modules/forms/base/views/directiveViews/field/legal.html rename to base_bak/views/directiveViews/field/legal.html index 0ee6e101..714ff0b8 100644 --- a/public/modules/forms/base/views/directiveViews/field/legal.html +++ b/base_bak/views/directiveViews/field/legal.html @@ -26,7 +26,7 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" + ng-change="$root.nextField()"/>
Y @@ -41,7 +41,7 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" + ng-change="$root.nextField()"/>
N diff --git a/public/modules/forms/base/views/directiveViews/field/radio.html b/base_bak/views/directiveViews/field/radio.html similarity index 97% rename from public/modules/forms/base/views/directiveViews/field/radio.html rename to base_bak/views/directiveViews/field/radio.html index bd5808e7..616d62f8 100644 --- a/public/modules/forms/base/views/directiveViews/field/radio.html +++ b/base_bak/views/directiveViews/field/radio.html @@ -32,7 +32,7 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" + ng-change="$root.nextField()"/> diff --git a/public/modules/forms/base/views/directiveViews/field/rating.html b/base_bak/views/directiveViews/field/rating.html similarity index 96% rename from public/modules/forms/base/views/directiveViews/field/rating.html rename to base_bak/views/directiveViews/field/rating.html index 254545db..38cd1d84 100644 --- a/public/modules/forms/base/views/directiveViews/field/rating.html +++ b/base_bak/views/directiveViews/field/rating.html @@ -23,7 +23,7 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" + on-enter-or-tab-key="nextField()" on-tab-and-shift-key="prevField()" ng-focus="setActiveField(field._id, index, true)" diff --git a/public/modules/forms/base/views/directiveViews/field/statement.html b/base_bak/views/directiveViews/field/statement.html similarity index 100% rename from public/modules/forms/base/views/directiveViews/field/statement.html rename to base_bak/views/directiveViews/field/statement.html diff --git a/public/modules/forms/base/views/directiveViews/field/textarea.html b/base_bak/views/directiveViews/field/textarea.html similarity index 95% rename from public/modules/forms/base/views/directiveViews/field/textarea.html rename to base_bak/views/directiveViews/field/textarea.html index 6a5a7993..ce65dd55 100644 --- a/public/modules/forms/base/views/directiveViews/field/textarea.html +++ b/base_bak/views/directiveViews/field/textarea.html @@ -21,7 +21,7 @@ ng-class="{ 'no-border': !!field.fieldValue }" value="{{field.fieldValue}}" ng-required="field.required" - ng-disabled="field.disabled" + ng-focus="setActiveField(field._id, index, true)" on-enter-or-tab-key="nextField()" on-tab-and-shift-key="prevField()" @@ -31,7 +31,7 @@
-
@@ -47,7 +47,7 @@
- "); $templateCache.put("form_modules/forms/base/views/directiveViews/field/date.html", - "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}

"); + "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}

"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/dropdown.html", - "
0\">

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); + "
0\">

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/hidden.html", - ""); + ""); $templateCache.put("form_modules/forms/base/views/directiveViews/field/legal.html", - "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}


{{field.description}}


"); + "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}


{{field.description}}


"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/radio.html", - "
0\">

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); + "
0\">

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/rating.html", - "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}

"); + "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}

"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/statement.html", "

{{field.title}}

{{field.description}}

{{field.description}}


"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/textarea.html", - "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{ 'NEWLINE' | translate }}

{{field.description}}

Press SHIFT+ENTER to add a newline
{{ 'ENTER' | translate }}
"); + "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{ 'NEWLINE' | translate }}

{{field.description}}

Press SHIFT+ENTER to add a newline
{{ 'ENTER' | translate }}
"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/textfield.html", - "

{{index+1}} {{field.title}} ({{ 'OPTIONAL' | translate }})

{{field.description}}

{{ 'ENTER' | translate }}
"); + "

{{index+1}} {{field.title}} ({{ 'OPTIONAL' | translate }})

{{field.description}}

{{ 'ENTER' | translate }}
"); $templateCache.put("form_modules/forms/base/views/directiveViews/field/yes_no.html", - "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); + "

{{index+1}} {{field.title}} {{ 'OPTIONAL' | translate }}

{{field.description}}


"); $templateCache.put("form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html", - "
{{ 'COMPLETING_NEEDED' | translate:translateAdvancementData }}
{{ 'ENTER' | translate }}

{{ 'ADVANCEMENT' | translate:translateAdvancementData }}

"); + "
{{ 'COMPLETING_NEEDED' | translate:translateAdvancementData }}
{{ 'ENTER' | translate }}

{{ 'ADVANCEMENT' | translate:translateAdvancementData }}

"); }]); diff --git a/public/form_modules/forms/base/directives/field.client.directive.js b/public/form_modules/forms/base/directives/field.client.directive.js index 68b2fe0c..b1bf0759 100644 --- a/public/form_modules/forms/base/directives/field.client.directive.js +++ b/public/form_modules/forms/base/directives/field.client.directive.js @@ -11,7 +11,7 @@ var __indexOf = [].indexOf || function(item) { angular.module('view-form').directive('fieldDirective', ['$http', '$compile', '$rootScope', '$templateCache', 'supportedFields', function($http, $compile, $rootScope, $templateCache, supportedFields) { - var getTemplateUrl = function(fieldType) { + var getTemplateHtml = function(fieldType) { var type = fieldType; var supported_fields = [ @@ -101,7 +101,7 @@ angular.module('view-form').directive('fieldDirective', ['$http', '$compile', '$ fieldType = 'textfield'; } - var template = getTemplateUrl(fieldType); + var template = getTemplateHtml(fieldType); element.html(template).show(); var output = $compile(element.contents())(scope); } 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 c30552e6..3f160740 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 @@ -12,29 +12,34 @@ jsep.addBinaryOp('!ends', 10); angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCounter', '$filter', '$rootScope', 'SendVisitorData', function ($http, TimeCounter, $filter, $rootScope, SendVisitorData) { return { - templateUrl: 'form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html', + templateUrl: '/static/form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html', restrict: 'E', scope: { - myform:'=' + myform:'=', + ispreview: '=' }, controller: function($document, $window, $scope){ $scope.noscroll = false; $scope.forms = {}; - TimeCounter.restartClock(); + + //Don't start timer if we are looking at a design preview + if($scope.ispreview){ + TimeCounter.restartClock(); + } - var form_fields_count = $scope.myform.visible_form_fields.filter(function(field){ - if(field.fieldType === 'statement'){ - return false; - } - return true; - }).length; + var form_fields_count = $scope.myform.visible_form_fields.filter(function(field){ + if(field.fieldType === 'statement'){ + return false; + } + return true; + }).length; - var nb_valid = $filter('formValidity')($scope.myform); - $scope.translateAdvancementData = { - done: nb_valid, - total: form_fields_count, - answers_not_completed: form_fields_count - nb_valid - }; + var nb_valid = $filter('formValidity')($scope.myform); + $scope.translateAdvancementData = { + done: nb_valid, + total: form_fields_count, + answers_not_completed: form_fields_count - nb_valid + }; $scope.reloadForm = function(){ //Reset Form @@ -330,7 +335,6 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun var geoData = getIpAndGeo(); form.ipAddr = geoData.ipAddr; form.geoLocation = geoData.geoLocation; - console.log(geoData); form.timeElapsed = _timeElapsed; form.percentageComplete = $filter('formValidity')($scope.myform) / $scope.myform.visible_form_fields.length * 100; @@ -358,7 +362,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun }; //Reload our form - $scope.reloadForm(); + $scope.reloadForm(); } }; } 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 0771f9b1..c2d74a20 100755 --- a/public/form_modules/forms/base/views/directiveViews/field/date.html +++ b/public/form_modules/forms/base/views/directiveViews/field/date.html @@ -22,11 +22,10 @@ ng-model="field.fieldValue" ng-model-options="{ debounce: 250 }" ng-required="field.required" - ng-disabled="field.disabled" placeholder="MM/DD/YYYY" on-tab-key="nextField()" on-tab-and-shift-key="prevField()" - ng-change="$root.nextField()"> + ng-change="nextField()">
diff --git a/public/form_modules/forms/base/views/directiveViews/field/dropdown.html b/public/form_modules/forms/base/views/directiveViews/field/dropdown.html index ec5cba2c..4b8866e3 100755 --- a/public/form_modules/forms/base/views/directiveViews/field/dropdown.html +++ b/public/form_modules/forms/base/views/directiveViews/field/dropdown.html @@ -20,10 +20,9 @@ search-by="option_value" set-search-to-answer="true" ng-required="field.required" - ng-disabled="field.disabled" on-tab-and-shift-key="prevField()" on-tab-key="nextField()" - ng-change="$root.nextField()"> + ng-change="nextField()"> + diff --git a/public/form_modules/forms/base/views/directiveViews/field/legal.html b/public/form_modules/forms/base/views/directiveViews/field/legal.html index 14d0e21c..e9412411 100644 --- a/public/form_modules/forms/base/views/directiveViews/field/legal.html +++ b/public/form_modules/forms/base/views/directiveViews/field/legal.html @@ -1,7 +1,10 @@