From 154fddff7526e6a56cf7ca470cd2faecec139a3e Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Wed, 18 Oct 2017 17:18:18 -0700 Subject: [PATCH] fixed editField bug --- Dockerfile | 8 +- app/controllers/forms.server.controller.js | 5 +- app/models/form_submission.server.model.js | 28 +++- config/env/all.js | 21 ++- config/env/production.js | 18 --- config/express.js | 10 +- design/screenshots/color-pallette.jpg | Bin 6985 -> 0 bytes design/tellform_mascot.png | Bin 0 -> 27197 bytes public/dist/application.js | 36 ++--- public/dist/application.min.css | 2 +- public/dist/application.min.js | 6 +- public/modules/core/css/core.css | 15 +++ .../list-forms.client.controller.js | 12 +- .../directives/edit-form.client.directive.js | 46 +++---- .../edit-submissions-form.client.directive.js | 21 +-- .../form/edit-form.client.view.html | 22 ++-- .../admin/views/list-forms.client.view.html | 5 +- .../forms/config/forms.client.routes.js | 16 ++- server.js | 7 +- tellform_installation_blog_post.mdown | 123 +----------------- 20 files changed, 152 insertions(+), 249 deletions(-) delete mode 100644 design/screenshots/color-pallette.jpg create mode 100644 design/tellform_mascot.png diff --git a/Dockerfile b/Dockerfile index 65e27847..6b145fd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,6 @@ FROM phusion/baseimage:0.9.19 MAINTAINER David Baldwynn -#FROM node:6.11.4-alpine - # Install Utilities RUN apt-get update -q \ && apt-get install -yqq \ @@ -55,9 +53,7 @@ COPY ./scripts/create_admin.js /opt/tellform/scripts/create_admin.js # when the local package.json file changes. # Add npm package.json COPY ./package.json /opt/tellform/package.json -RUN npm install --quiet - -COPY ./start.sh /start.sh +RUN npm install --only=production --quiet # Run TellForm server -CMD ["/start.sh"] \ No newline at end of file +CMD ["node", "server.js"] diff --git a/app/controllers/forms.server.controller.js b/app/controllers/forms.server.controller.js index 44b6df95..17827217 100644 --- a/app/controllers/forms.server.controller.js +++ b/app/controllers/forms.server.controller.js @@ -54,7 +54,6 @@ exports.createSubmission = function(req, res) { } var submission = new FormSubmission({ form: req.body._id, - title: req.body.title, form_fields: req.body.form_fields, timeElapsed: timeElapsed, percentageComplete: req.body.percentageComplete, @@ -96,6 +95,7 @@ exports.listSubmissions = function(req, res) { * Create a new form */ exports.create = function(req, res) { + debugger; if(!req.body.form){ return res.status(401).send({ @@ -107,13 +107,14 @@ exports.create = function(req, res) { form.admin = req.user._id; form.save(function(err) { + debugger; if (err) { return res.status(500).send({ message: errorHandler.getErrorMessage(err) }); } - res.json(form); + return res.json(form); }); }; diff --git a/app/models/form_submission.server.model.js b/app/models/form_submission.server.model.js index de4765b5..a3505f3a 100644 --- a/app/models/form_submission.server.model.js +++ b/app/models/form_submission.server.model.js @@ -12,10 +12,6 @@ var mongoose = require('mongoose'), * Form Submission Schema */ var FormSubmissionSchema = new Schema({ - title: { - type: String - }, - form_fields: [FieldSchema], form: { @@ -58,6 +54,19 @@ FormSubmissionSchema.pre('save', function (next) { if(this.form_fields[i].fieldType === 'dropdown'){ this.form_fields[i].fieldValue = this.form_fields[i].fieldValue.option_value; } + + delete form_fields[i].validFieldTypes; + delete form_fields[i].disabled; + delete form_fields[i].required; + delete form_fields[i].isSubmission; + delete form_fields[i].title; + delete form_fields[i].fieldOptions; + delete form_fields[i].ratingOptions; + delete form_fields[i].logicJump; + delete form_fields[i].description; + delete form_fields[i].created; + delete form_fields[i].lastModified; + delete form_fields[i].deletePreserved; } next(); }); @@ -68,6 +77,17 @@ FormSubmissionSchema.path('form_fields', { form_fields[i].isSubmission = true; form_fields[i]._id = new mongoose.mongo.ObjectID(); + delete form_fields[i].validFieldTypes; + delete form_fields[i].disabled; + delete form_fields[i].required; + delete form_fields[i].isSubmission; + delete form_fields[i].title; + delete form_fields[i].fieldOptions; + delete form_fields[i].ratingOptions; + delete form_fields[i].logicJump; + delete form_fields[i].description; + delete form_fields[i].created; + delete form_fields[i].lastModified; delete form_fields[i].deletePreserved; } diff --git a/config/env/all.js b/config/env/all.js index 54bc72ed..df884613 100755 --- a/config/env/all.js +++ b/config/env/all.js @@ -22,9 +22,28 @@ module.exports = { signupDisabled: (process.env.SIGNUP_DISABLED === 'TRUE'), enableClusterMode: (process.env.ENABLE_CLUSTER_MODE === 'TRUE'), - baseUrl: '', + baseUrl: process.env.BASE_URL || 'localhost', tempUserCollection: 'temporary_users', + mailer: { + from: process.env.MAILER_FROM || 'testing@'+process.env.SPARKPOST_SANDBOX_DOMAIN || 'no-reply@tellform.com', + options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set + host: process.env.MAILER_SMTP_HOST || '', + port: process.env.MAILER_SMTP_PORT || 465, + secure: process.env.MAILER_SMTP_SECURE || true, + auth: { + user: process.env.MAILER_EMAIL_ID || '', + pass: process.env.MAILER_PASSWORD || '' + } + } : { + service: process.env.MAILER_SERVICE_PROVIDER || '', + auth: { + user: process.env.MAILER_EMAIL_ID || '', + pass: process.env.MAILER_PASSWORD || '' + } + } + }, + subdomainsDisabled: (process.env.SUBDOMAINS_DISABLED === 'TRUE'), //Sentry DSN Client Key diff --git a/config/env/production.js b/config/env/production.js index b80b5d01..9b0c7457 100755 --- a/config/env/production.js +++ b/config/env/production.js @@ -31,23 +31,5 @@ module.exports = { css: 'public/dist/application.min.css', js: 'public/dist/application.min.js', form_js: 'public/dist/form-application.min.js' - }, - mailer: { - from: process.env.MAILER_FROM || 'testing@'+process.env.SPARKPOST_SANDBOX_DOMAIN || 'no-reply@tellform.com', - options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set - host: process.env.MAILER_SMTP_HOST || '', - port: process.env.MAILER_SMTP_PORT || 465, - secure: process.env.MAILER_SMTP_SECURE || true, - auth: { - user: process.env.MAILER_EMAIL_ID || '', - pass: process.env.MAILER_PASSWORD || '' - } - } : { - service: process.env.MAILER_SERVICE_PROVIDER || '', - auth: { - user: process.env.MAILER_EMAIL_ID || '', - pass: process.env.MAILER_PASSWORD || '' - } - } } }; diff --git a/config/express.js b/config/express.js index 64f25ba2..2c9d468c 100755 --- a/config/express.js +++ b/config/express.js @@ -280,16 +280,16 @@ module.exports = function(db) { // Log it client.captureError(err); - /*if(process.env.NODE_ENV === 'production'){ + if(process.env.NODE_ENV === 'production'){ res.status(500).render('500', { - error: 'Internal Server Error' - }); - } else {*/ + error: 'Internal Server Error' + }); + } else { // Error page res.status(500).render('500', { error: err.stack }); - //} + } }); // Assume 404 since no middleware responded diff --git a/design/screenshots/color-pallette.jpg b/design/screenshots/color-pallette.jpg deleted file mode 100644 index 828c45a02f0c5e5a5ad3386dabc5b88c481d8b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6985 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 Q+5i9m07*qoM6N<$f^jK5R{#J2 literal 0 HcmV?d00001 diff --git a/public/dist/application.js b/public/dist/application.js index 407518a2..39f9c456 100644 --- a/public/dist/application.js +++ b/public/dist/application.js @@ -1995,6 +1995,14 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope } }; + // Return all user's Forms + $scope.findAll = function() { + GetForms.query(function(_forms){ + $scope.myforms = _forms; + }); + }; + + /* ** DeleteModal Functions */ @@ -2029,13 +2037,6 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope } }; - // Return all user's Forms - $scope.findAll = function() { - GetForms.query(function(_forms){ - $scope.myforms = _forms; - }); - }; - //Modal functions $scope.openCreateModal = function(){ if(!$scope.showCreateModal){ @@ -2513,27 +2514,10 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', rows: [] }; - var submissions = $scope.myform.submissions || []; - - //Iterate through form's submissions - for(var i = 0; i < submissions.length; i++){ - for(var x = 0; x < submissions[i].form_fields.length; x++){ - if(submissions[i].form_fields[x].fieldType === 'dropdown'){ - submissions[i].form_fields[x].fieldValue = submissions[i].form_fields[x].fieldValue.option_value; - } - //var oldValue = submissions[i].form_fields[x].fieldValue || ''; - //submissions[i].form_fields[x] = _.merge(defaultFormFields, submissions[i].form_fields); - //submissions[i].form_fields[x].fieldValue = oldValue; - } - submissions[i].selected = false; - } - - $scope.table.rows = submissions; - var initController = function(){ $http({ method: 'GET', - url: '/someUrl' + url: '/forms'+$scope.myform._id+'/submissions' }).then(function successCallback(response) { var defaultFormFields = _.cloneDeep($scope.myform.form_fields); @@ -2556,6 +2540,8 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', }); }; + initController(); + /* ** Analytics Functions diff --git a/public/dist/application.min.css b/public/dist/application.min.css index 2f783c1b..c0d0e5e4 100644 --- a/public/dist/application.min.css +++ b/public/dist/application.min.css @@ -1,4 +1,4 @@ -.navbar,.navbar-nav,.navbar-nav>li{min-height:60px}.image-background,.opacity-background{position:fixed;height:100%;width:100%;top:0;left:0}.btn-rounded,.field-title-row,section.auth .btn{text-transform:uppercase}.form-item .title-row>.list-group-item-heading{color:#34628a}.form-item.paused .title-row>.list-group-item-heading,.form-item:hover .title-row>.list-group-item-heading{color:#fff}.form-item:hover .title-row{text-decoration:none}body{overflow-x:hidden;font-family:'Source Sans Pro',sans-serif;font-size:16px}.vcenter{display:inline-block;vertical-align:middle;float:none}.btn-rounded{border-radius:100px;font-size:14px;padding:10px 28px;margin:1em 2px 0;text-decoration:none!important}.current-fields .panel-heading a:hover,.current-fields .tool-panel.panel .panel-heading a:hover,.footer-basic-centered .footer-links a,.undecorated-link:hover{text-decoration:none}.btn-secondary{background:#DDD;color:#4c4c4c;border:2px solid #4c4c4c}.btn-secondary:hover{background:#cacaca;border-color:#cacaca}.navbar{padding:10px 0}.navbar-inverse{background-color:#3FA2F7;border:0;color:#fff!important}.navbar .navbar-brand{min-height:60px;padding:10px}.navbar-nav>li>a{padding-top:20px;color:#fff}.navbar-nav>li.active,.navbar-nav>li:hover{background-color:#4b7096}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:transparent;color:inherit;border:none}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar li.dropdown a.dropdown-toggle:hover>*{color:#f9f9f9}.navbar-inverse .navbar-toggle{border:none}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.dropdown-menu>li>a{color:#515151}section.hero-section{width:100%}section.hero-section .jumbotron{background-color:transparent;color:#fff}.image-background{z-index:-98;background-image:url(http://yourplaceandmine.ie/wp-content/uploads/2014/09/Daingean-meeting-048_13-1080x675.jpg);background-repeat:no-repeat;background-position:0 50%;background-size:cover}.opacity-background{background-color:#000;background-color:rgba(0,0,0,.5);z-index:-97}section.hero-section .jumbotron .signup-btn{background-color:#FA787E;border:none;font-size:2em;padding:.3em .9em;color:#fff}.footer-basic-centered{background-color:#292c2f;box-shadow:0 1px 1px 0 rgba(0,0,0,.12);box-sizing:border-box;width:100%;text-align:center;font:400 18px sans-serif;padding:45px;margin-top:80px}.footer-basic-centered .footer-company-motto{color:#8d9093;font-size:24px;margin:0}.footer-basic-centered .footer-company-name{color:#8f9296;font-size:14px;margin:0}.footer-basic-centered .footer-links{list-style:none;font-weight:700;color:#fff;padding:35px 0 23px;margin:0}.footer-basic-centered .footer-links a{display:inline-block;color:inherit}@media (max-width:600px){.footer-basic-centered{padding:35px}.footer-basic-centered .footer-company-motto{font-size:18px}.footer-basic-centered .footer-company-name{font-size:12px}.footer-basic-centered .footer-links{font-size:14px;padding:25px 0 20px}.footer-basic-centered .footer-links a{line-height:1.8}}/*! +.navbar,.navbar-nav,.navbar-nav>li{min-height:60px}.image-background,.opacity-background,.overlay{position:fixed;height:100%;width:100%;top:0;left:0}.btn-rounded,.field-title-row,section.auth .btn{text-transform:uppercase}.overlay{background-color:#000;background-color:rgba(0,0,0,.5);z-index:10}.overlay.submitform{background-color:#fff;background-color:rgba(256,256,256,.8)}.form-item .title-row>.list-group-item-heading{color:#34628a}.form-item.paused .title-row>.list-group-item-heading,.form-item:hover .title-row>.list-group-item-heading{color:#fff}.form-item:hover .title-row{text-decoration:none}body{overflow-x:hidden;font-family:'Source Sans Pro',sans-serif;font-size:16px}.vcenter{display:inline-block;vertical-align:middle;float:none}.btn-rounded{border-radius:100px;font-size:14px;padding:10px 28px;margin:1em 2px 0;text-decoration:none!important}.current-fields .panel-heading a:hover,.current-fields .tool-panel.panel .panel-heading a:hover,.footer-basic-centered .footer-links a,.undecorated-link:hover{text-decoration:none}.btn-secondary{background:#DDD;color:#4c4c4c;border:2px solid #4c4c4c}.btn-secondary:hover{background:#cacaca;border-color:#cacaca}.navbar{padding:10px 0}.navbar-inverse{background-color:#3FA2F7;border:0;color:#fff!important}.navbar .navbar-brand{min-height:60px;padding:10px}.navbar-nav>li>a{padding-top:20px;color:#fff}.navbar-nav>li.active,.navbar-nav>li:hover{background-color:#4b7096}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:transparent;color:inherit;border:none}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar li.dropdown a.dropdown-toggle:hover>*{color:#f9f9f9}.navbar-inverse .navbar-toggle{border:none}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.dropdown-menu>li>a{color:#515151}section.hero-section{width:100%}section.hero-section .jumbotron{background-color:transparent;color:#fff}.image-background{z-index:-98;background-image:url(http://yourplaceandmine.ie/wp-content/uploads/2014/09/Daingean-meeting-048_13-1080x675.jpg);background-repeat:no-repeat;background-position:0 50%;background-size:cover}.opacity-background{background-color:#000;background-color:rgba(0,0,0,.5);z-index:-97}section.hero-section .jumbotron .signup-btn{background-color:#FA787E;border:none;font-size:2em;padding:.3em .9em;color:#fff}.footer-basic-centered{background-color:#292c2f;box-shadow:0 1px 1px 0 rgba(0,0,0,.12);box-sizing:border-box;width:100%;text-align:center;font:400 18px sans-serif;padding:45px;margin-top:80px}.footer-basic-centered .footer-company-motto{color:#8d9093;font-size:24px;margin:0}.footer-basic-centered .footer-company-name{color:#8f9296;font-size:14px;margin:0}.footer-basic-centered .footer-links{list-style:none;font-weight:700;color:#fff;padding:35px 0 23px;margin:0}.footer-basic-centered .footer-links a{display:inline-block;color:inherit}@media (max-width:600px){.footer-basic-centered{padding:35px}.footer-basic-centered .footer-company-motto{font-size:18px}.footer-basic-centered .footer-company-name{font-size:12px}.footer-basic-centered .footer-links{font-size:14px;padding:25px 0 20px}.footer-basic-centered .footer-links a{line-height:1.8}}/*! * "Fork me on GitHub" CSS ribbon v0.1.1 | MIT License * https://github.com/simonwhitaker/github-fork-ribbon-css */.github-fork-ribbon{position:absolute;padding:2px 0;background-color:#a00;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.15)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,.15));background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,.15));background-image:-ms-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,.15));background-image:-o-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,.15));background-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.15));-webkit-box-shadow:0 2px 3px 0 rgba(0,0,0,.5);-moz-box-shadow:0 2px 3px 0 rgba(0,0,0,.5);box-shadow:0 2px 3px 0 rgba(0,0,0,.5);font:700 13px "Helvetica Neue",Helvetica,Arial,sans-serif;z-index:9999;pointer-events:auto}.github-fork-ribbon a,.github-fork-ribbon a:hover{color:#fff;text-decoration:none;text-shadow:0 -1px rgba(0,0,0,.5);text-align:center;width:200px;line-height:20px;display:inline-block;padding:2px 0;border-width:1px 0;border-style:dotted;border-color:#fff;border-color:rgba(255,255,255,.7)}.github-fork-ribbon-wrapper{width:150px;height:150px;position:absolute;overflow:hidden;top:0;z-index:9998;pointer-events:none}.github-fork-ribbon-wrapper.fixed{position:fixed}.github-fork-ribbon-wrapper.left{left:0}.github-fork-ribbon-wrapper.right{right:0}.github-fork-ribbon-wrapper.left-bottom{position:fixed;top:inherit;bottom:0;left:0}.github-fork-ribbon-wrapper.right-bottom{position:fixed;top:inherit;bottom:0;right:0}.github-fork-ribbon-wrapper.right .github-fork-ribbon{top:42px;right:-43px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon-wrapper.left .github-fork-ribbon{top:42px;left:-43px;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.github-fork-ribbon-wrapper.left-bottom .github-fork-ribbon{top:80px;left:-43px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon-wrapper.right-bottom .github-fork-ribbon{top:80px;right:-43px;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.custom-select{position:relative;display:block;padding:0}.custom-select select{width:100%;margin:0;background:0 0;border:1px solid transparent;border-radius:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1em;font-family:helvetica,sans-serif;font-weight:700;color:#444;padding:.6em 1.9em .5em .8em;line-height:1.3}.custom-select option,.modal-header{font-weight:400}.custom-select::after{content:"";position:absolute;width:9px;height:8px;top:50%;right:1em;margin-top:-4px;background-image:url(http://filamentgroup.com/files/select-arrow.png);background-repeat:no-repeat;background-size:100%;z-index:2;pointer-events:none}.custom-select:hover{border:1px solid #888}.custom-select select:focus{outline:0;box-shadow:0 0 1px 3px rgba(180,222,250,1);background-color:transparent;color:#222;border:1px solid #aaa}.custom-select::after,x:-o-prefocus{display:none}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.custom-select select::-ms-expand{display:none}.custom-select select:focus::-ms-value{background:0 0;color:#222}}.custom-select select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.pull-top{display:inline-block;vertical-align:top;float:none}.nav.nav-pills.nav-stacked,div.tab-content{position:relative;min-height:1px;float:left}.box{padding:0 5px!important}.current-fields .field-row{padding:5px 0}.current-fields .panel{background-color:#f1f1f1;margin-top:0!important}.current-fields .panel:hover{background-color:#fff;cursor:pointer}.current-fields .panel.tool-panel{background-color:#fff}.current-fields .panel-heading{background-color:#f1f1f1;position:relative}.current-fields .panel-heading:hover{background-color:#fff;cursor:pointer}.current-fields .tool-panel.panel:hover{border-color:#9d9d9d;background-color:#eee;cursor:pointer}.current-fields .tool-panel.panel:hover .panel-heading{background-color:inherit;color:#000;cursor:pointer}.current-fields .tool-panel.panel .panel-heading{background-color:#fff;color:#9d9d9d}.current-fields .tool-panel.panel .panel-heading a{color:inherit}.nav.nav-pills.nav-stacked{width:16.66666667%;padding-right:15px}div.tab-content{width:83.33333333%;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}.edit-modal-window .modal-dialog{width:90%}.edit-modal-window .modal-body{padding:0}.edit-modal-window .edit-panel{background-color:#F1F1F1;padding:0 35px}.edit-modal-window .preview-field-panel{display:flex;flex-direction:column;justify-content:center}.edit-modal-window .preview-field-panel form{padding-right:20px}.edit-modal-window .preview-field{resize:vertical}.admin-form .ui-sortable-placeholder{visibility:visible!important;border:none;padding:1px;background:rgba(0,0,0,.5)!important}.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:.1em}div.config-form .row>.field-input label{padding-left:1.3em;display:block}.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}.admin-form .tab-content{padding-top:3em}.submissions-table .table-outer.row{margin:1.5em 0 2em!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}.admin-form .add-field{background-color:#ddd;padding:0 2%;border-radius:3px}.admin-form .add-field .col-xs-6{padding:.25em .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}.view-form-btn.span{padding-right:.6em}.status-light.status-light-off{color:#BE0000}.status-light.status-light-on{color:#3C0}.analytics .header-title{font-size:1em;color:#bab8b8}.analytics .header-numbers{font-size:4em;padding-bottom:.1em;margin-bottom:.5em;border-bottom:#fafafa solid 1px}.analytics .detailed-title{font-size:1.8em;margin-bottom:1.1em}.analytics .detailed-row{padding-bottom:.8em}.analytics .detailed-row .row{font-size:1.2em}.analytics .detailed-row .row.header{font-size:.8em;color:#bab8b8;text-transform:uppercase}.field-title-row{padding-top:2em;padding-bottom:1em;border-top:#fafafa solid 1px;font-size:1.2em;color:#bab8b8}.field-detailed-row{font-size:1.2em;padding-bottom:.3em}.table-tools{border-top:#fafafa solid 1px;padding-top:2.5em}.public-form.preview{border:none;box-shadow:0 0 10px 0 grey;overflow-y:scroll;overflow-x:hidden;height:400px;width:90%;position:absolute}.public-form input,.public-form textarea{background-color:#000;background-color:rgba(0,0,0,0);border-width:0}form .btn{border-color:grey}.public-form input.ng-untouched,.public-form input:focus,.public-form textarea.ng-untouched,.public-form textarea:focus{border-width:0 0 2px;border-color:rgba(246,255,181,.4);outline:0}.public-form input.ng-dirty,.public-form textarea.ng-dirty{border-width:0}.public-form input.empty,.public-form textarea.empty{border-width:0 0 2px;border-color:rgba(246,255,181,.4)}section.content p.breakwords{word-break:break-all}.public-form .btn[type=submit]{font-size:1.5em;padding:.35em 1.2em}section.content>section>section.container{margin-top:70px}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;font-size:18px}.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,.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}form .accordion-edit{width:inherit}.ui-datepicker.ui-widget{z-index:99!important}form .row.field .field-number{margin-right:.5em}form .row.field{padding:1em 0 0;width:inherit}form .row.field>.field-title{margin-top:.5em;font-size:1.2em;padding-bottom:.5em;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,.7)!important;color:#fff}form.submission-form .field.row.radio .btn{margin-right:1.2em}form.submission-form .select>.field-input .btn{text-align:left;margin-bottom:.7em}form.submission-form .select>.field-input .btn>span{font-size:1.1em}form .field-input>textarea{padding:.45em .9em;width:100%;line-height:160%}form .field-input>input.hasDatepicker{padding:.45em .9em;width:50%;line-height:160%}form .field-input>input.text-field-input{padding:.45em .9em;width:100%;line-height:160%}form .required-error{color:#ddd;font-size:.8em}form .row.field.dropdown>.field-input input{min-height:34px;border-width:0 0 2px;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:#000;background-color:rgba(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:#000;background-color:rgba(0,0,0,.1)}.current-fields .panel-body .row.description textarea,.current-fields .panel-body .row.question input[type=text]{width:100%}.current-fields .panel-body .row.options input[type=text]{width:80%}.ui-select-choices.ui-select-dropdown{top:2.5em!important}.ui-select-toggle{box-shadow:none!important;border:none!important}section.public-form field-directive .btn.btn-lg.btn-default{background:0 0}section.public-form field-directive .btn[disabled]{display:none}.form-item{border-radius:5px;text-align:center;width:180px;position:relative;height:215px;margin-bottom:45px}.form-item.paused{background-color:red;color:#fff}.form-item.paused:hover{background-color:#8b0000;color:#fff}.form-item.create-new input[type=text]{width:inherit;color:#000;border:none}.form-item.create-new{background-color:#3FA2F7;color:#fff}.form-item.create-new.new-form{background-color:#ff8383;z-index:11}.form-item.create-new.new-form:hover{background-color:#3079b5}.form-item.new-form input[type=text]{margin-top:.2em;width:inherit;color:#000;border:none;padding:.3em .6em}.form-item.new-form .custom-select{margin-top:.2em}.form-item.new-form .custom-select select{background-color:#fff}.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:.95em}.form-item.new-form .title-row{margin-top:1em;top:0}.field-directive{opacity:.2;padding:2.5% 10%}.field-directive.activeField,.form-field-wrapper .form-actions.activeField{opacity:1}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{color:#fff;background-color:#515151}.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:.6em}.form-item.create-new .details-row small{font-size:.95em}section.auth{padding:70px 0;position:absolute;min-height:100%;top:0;left:0;width:100%;color:#fff;background-color:#50B5C1;background:-moz-linear-gradient(137deg,#50B5C1 0,#6450A0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#50B5C1),color-stop(100%,#6450A0));background:-webkit-linear-gradient(137deg,#50B5C1 0,#6450A0 100%);background:-o-linear-gradient(137deg,#50B5C1 0,#6450A0 100%);background:-ms-linear-gradient(137deg,#50B5C1 0,#6450A0 100%)}section.auth>h3{font-size:2em;font-weight:500}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block;width:100%}section.auth a{color:#fff;text-decoration:underline}section.auth.signup-view>h3{font-size:3em;padding-bottom:.5em}section.auth form .field-input select{padding:.45em .9em;width:100%;background:0 0;font-size:16px;border:1px solid #ccc;min-height:34px}section.auth input{color:#4c4c4c}section.auth .btn{border-radius:100px;font-size:14px;padding:12px 28px;margin-top:1em}.btn-rounded.btn-signup{background-color:#FFD747;color:#896D0B;border:2px solid #FFD747}.btn-rounded.btn-signup:hover{color:#FFD747;background-color:#896D0B;border:2px solid #896D0B}.btn-rounded.btn-default{background-color:transparent;color:#fff;border:2px solid #fff}.btn-rounded.btn-default:focus,.btn-rounded.btn-default:hover{color:#6450A0;background-color:#fff;border-color:#fff}@media (min-width:992px){.nav-users{position:fixed}}.remove-account-container{display:inline-block;position:relative}.btn-remove-account{top:10px;right:10px;position:absolute}section.auth input.form-control{min-height:30px!important;border:none}input.form-control{height:auto;border-radius:4px;box-shadow:none;font-size:18px;padding:20px 10px} \ No newline at end of file diff --git a/public/dist/application.min.js b/public/dist/application.min.js index b5ce679a..62ffc30f 100644 --- a/public/dist/application.min.js +++ b/public/dist/application.min.js @@ -1,5 +1,5 @@ "use strict";var ApplicationConfiguration=function(){var a="TellForm",b=["duScroll","ui.select","ngSanitize","vButton","ngResource","TellForm.templates","ui.router","ui.bootstrap","ui.utils","pascalprecht.translate","view-form"],c=function(b,c){angular.module(b,c||[]),angular.module(a).requires.push(b)};return{applicationModuleName:a,applicationModuleVendorDependencies:b,registerModule:c}}();angular.module(ApplicationConfiguration.applicationModuleName,ApplicationConfiguration.applicationModuleVendorDependencies),angular.module(ApplicationConfiguration.applicationModuleName).config(["$locationProvider",function(a){a.hashPrefix("!")}]),angular.module(ApplicationConfiguration.applicationModuleName).constant("APP_PERMISSIONS",{viewAdminSettings:"viewAdminSettings",editAdminSettings:"editAdminSettings",editForm:"editForm",viewPrivateForm:"viewPrivateForm"}),angular.module(ApplicationConfiguration.applicationModuleName).constant("USER_ROLES",{admin:"admin",normal:"user",superuser:"superuser"}),angular.module(ApplicationConfiguration.applicationModuleName).constant("FORM_URL","/forms/:formId"),angular.element(document).ready(function(){"#_=_"===window.location.hash&&(window.location.hash="#!"),angular.bootstrap(document,[ApplicationConfiguration.applicationModuleName])}),angular.module("TellForm.templates",[]).run(["$templateCache",function(a){a.put("modules/core/views/header.client.view.html",''),a.put("modules/forms/admin/views/admin-form.client.view.html",'
{{ \'TELLFORM_URL\' | translate }}
{{ \'COPY_AND_PASTE\' | translate }}
{{ \'BACKGROUND_COLOR\' | translate }}
{{ \'QUESTION_TEXT_COLOR\' | translate }}
{{ \'ANSWER_TEXT_COLOR\' | translate }}
{{ \'BTN_BACKGROUND_COLOR\' | translate }}
{{ \'BTN_TEXT_COLOR\' | translate }}
'),a.put("modules/forms/admin/views/list-forms.client.view.html",'

{{ \'CREATE_A_NEW_FORM\' | translate }}
{{ \'NAME\' | translate }}
{{ \'LANGUAGE\' | translate }}

{{ form.numberOfResponses }} {{ \'RESPONSES\' | translate }}

{{ \'FORM_PAUSED\' | translate }}
'),a.put("modules/forms/admin/views/adminTabs/analyze.html",""),a.put("modules/forms/admin/views/adminTabs/configure.html",""),a.put("modules/forms/admin/views/adminTabs/create.html",""),a.put("modules/forms/admin/views/directiveViews/form/configure-form.client.view.html",'
{{ \'FORM_NAME\' | translate }}
{{ \'FORM_STATUS\' | translate }}
{{ \'LANGUAGE\' | translate }}
* {{ \'REQUIRED_FIELD\' | translate }}
{{ \'GA_TRACKING_CODE\' | translate }}
{{ \'DISPLAY_FOOTER\' | translate }}
{{ \'DISPLAY_START_PAGE\' | translate }}
{{ \'DISPLAY_END_PAGE\' | translate }}
'),a.put("modules/forms/admin/views/directiveViews/form/edit-form.client.view.html",'

{{ \'WELCOME_SCREEN\' | translate }}


{{field.title}} *

{{ \'CLICK_FIELDS_FOOTER\' | translate }}


{{ \'END_SCREEN\' | translate }}

'), a.put("modules/forms/admin/views/directiveViews/form/edit-submissions-form.client.view.html","
{{ 'TOTAL_VIEWS' | translate }}
{{ 'RESPONSES' | translate }}
{{ 'COMPLETION_RATE' | translate }}
{{ 'AVERAGE_TIME_TO_COMPLETE' | translate }}
{{myform.analytics.visitors.length}}
{{myform.analytics.submissions}}
{{myform.analytics.conversionRate | number:0}}%
{{ AverageTimeElapsed | secondsToDateTime | date:'mm:ss'}}
{{ 'DESKTOP_AND_LAPTOP' | translate }}
{{ 'TABLETS' | translate }}
{{ 'PHONES' | translate }}
{{ 'OTHER' | translate }}
{{ 'UNIQUE_VISITS' | translate }}
{{DeviceStatistics.desktop.visits}}
{{ 'UNIQUE_VISITS' | translate }}
{{DeviceStatistics.tablet.visits}}
{{ 'UNIQUE_VISITS' | translate }}
{{DeviceStatistics.tablet.visits}}
{{ 'UNIQUE_VISITS' | translate }}
{{DeviceStatistics.other.visits}}
{{ 'RESPONSES' | translate }}
{{DeviceStatistics.desktop.responses}}
{{ 'RESPONSES' | translate }}
{{DeviceStatistics.tablet.responses}}
{{ 'RESPONSES' | translate }}
{{DeviceStatistics.phone.responses}}
{{ 'RESPONSES' | translate }}
{{DeviceStatistics.other.responses}}
{{ 'COMPLETION_RATE' | translate }}
{{DeviceStatistics.desktop.completion}}%
{{ 'COMPLETION_RATE' | translate }}
{{DeviceStatistics.tablet.completion}}%
{{ 'COMPLETION_RATE' | translate }}
{{DeviceStatistics.phone.completion}}%
{{ 'COMPLETION_RATE' | translate }}
{{DeviceStatistics.other.completion}}%
{{ 'AVERAGE_TIME_TO_COMPLETE' | translate }}
{{DeviceStatistics.desktop.average_time | secondsToDateTime | date:'mm:ss'}}
{{ 'AVERAGE_TIME_TO_COMPLETE' | translate }}
{{DeviceStatistics.tablet.average_time | secondsToDateTime | date:'mm:ss'}}
{{ 'AVERAGE_TIME_TO_COMPLETE' | translate }}
{{DeviceStatistics.phone.average_time | secondsToDateTime | date:'mm:ss'}}
{{ 'AVERAGE_TIME_TO_COMPLETE' | translate }}
{{DeviceStatistics.other.average_time | secondsToDateTime | date:'mm:ss'}}
{{ 'FIELD_TITLE' | translate }}
{{ 'FIELD_VIEWS' | translate }}
{{ 'FIELD_RESPONSES' | translate }}
{{ 'FIELD_DROPOFF' | translate }}
{{fieldStats.field.title}}
{{fieldStats.totalViews}}
{{fieldStats.responses}}
{{fieldStats.continueRate}}%

#{{value.title}}{{ 'PERCENTAGE_COMPLETE' | translate }}{{ 'TIME_ELAPSED' | translate }}{{ 'DEVICE' | translate }}{{ 'LOCATION' | translate }}{{ 'IP_ADDRESS' | translate }}{{ 'DATE_SUBMITTED' | translate }} (UTC)
{{$index+1}}{{field.fieldValue}}{{row.percentageComplete}}%{{row.timeElapsed | secondsToDateTime | date:'mm:ss'}}{{row.device.name}}, {{row.device.type}}{{row.geoLocation.City}}, {{row.geoLocation.Country}}{{row.ipAddr}}{{row.created | date:'yyyy-MM-dd HH:mm:ss'}}
"),a.put("modules/users/views/authentication/access-denied.client.view.html","

{{ 'ACCESS_DENIED_TEXT' | translate }}

{{ 'SIGNIN_BTN' | translate }}
"),a.put("modules/users/views/authentication/signin.client.view.html",'
'),a.put("modules/users/views/authentication/signup-success.client.view.html",''),a.put("modules/users/views/authentication/signup.client.view.html",''),a.put("modules/users/views/password/forgot-password.client.view.html",'
Error: {{error}}
{{success}}
'),a.put("modules/users/views/password/reset-password-invalid.client.view.html","

{{ 'PASSWORD_RESET_INVALID' | translate }}

{{ 'ASK_FOR_NEW_PASSWORD' | translate }}
"),a.put("modules/users/views/password/reset-password-success.client.view.html","

{{ 'PASSWORD_RESET_SUCCESS' | translate }}

{{ 'CONTINUE_TO_LOGIN' | translate }}
"),a.put("modules/users/views/password/reset-password.client.view.html",'

{{ \'RESET_PASSWORD\' | translate }}

'),a.put("modules/users/views/settings/change-password.client.view.html",'

{{ \'CHANGE_PASSWORD\' | translate }}

'),a.put("modules/users/views/settings/edit-profile.client.view.html",'

{{ \'EDIT_PROFILE\' | translate }}

'),a.put("modules/users/views/settings/social-accounts.client.view.html",'

{{ \'CONNECTED_SOCIAL_ACCOUNTS\' | translate }}:

{{ \'CONNECT_OTHER_SOCIAL_ACCOUNTS\' | translate }}

'),a.put("modules/users/views/verify/resend-verify-email.client.view.html",'
{{error}}

{{ \'VERIFICATION_EMAIL_SENT\' | translate }}

{{ \'VERIFICATION_EMAIL_SENT_TO\' | translate }} {{username}}.
{{ \'NOT_ACTIVATED_YET\' | translate }}

{{ \'CHECK_YOUR_EMAIL\' | translate }} polydaic@gmail.com

'),a.put("modules/users/views/verify/verify-account.client.view.html",'

{{ \'VERIFY_SUCCESS\' | translate }}

'),a.put("form_modules/forms/base/views/directiveViews/entryPage/startPage.html",'

{{pageData.introTitle}}

{{pageData.introParagraph}}

'),a.put("form_modules/forms/base/views/directiveViews/field/date.html",'

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

{{field.description}}

'),a.put("form_modules/forms/base/views/directiveViews/field/dropdown.html",'
'),a.put("form_modules/forms/base/views/directiveViews/field/hidden.html",""),a.put("form_modules/forms/base/views/directiveViews/field/legal.html",'
'),a.put("form_modules/forms/base/views/directiveViews/field/radio.html",'

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

{{field.description}}


'),a.put("form_modules/forms/base/views/directiveViews/field/rating.html",'

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

{{field.description}}

'),a.put("form_modules/forms/base/views/directiveViews/field/statement.html",'

{{field.title}}

{{field.description}}

{{field.description}}


'),a.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 }}
'),a.put("form_modules/forms/base/views/directiveViews/field/textfield.html",'

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

{{field.description}}

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

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

{{field.description}}


'),a.put("form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html",'
{{ \'COMPLETING_NEEDED\' | translate:translateAdvancementData }}
'),a.put("form_modules/forms/base/views/form-not-found.client.view.html",'

404 - Form Does not Exist

The form you are trying to access does not exist. Sorry about that!
'),a.put("form_modules/forms/base/views/form-unauthorized.client.view.html",'

Not Authorized to Access Form

The form you are trying to access is currently private and not accesible publically.
If you are the owner of the form, you can set it to "Public" in the "Configuration" panel in the form admin.
'),a.put("form_modules/forms/base/views/submit-form.client.view.html","
")}]),ApplicationConfiguration.registerModule("core",["users"]),ApplicationConfiguration.registerModule("forms",["ngFileUpload","ui.router.tabs","ui.date","ui.sortable","angular-input-stars","users","ngclipboard"]),ApplicationConfiguration.registerModule("users"),angular.module("core").config(["$stateProvider","$urlRouterProvider",function(a,b,c){b.otherwise("/forms")}]),angular.module(ApplicationConfiguration.applicationModuleName).run(["$rootScope","Auth","$state","$stateParams",function(a,b,c,d){a.$state=c,a.$stateParams=d,a.$on("$stateChangeSuccess",function(a,d,e,f){c.previous=f;var g=["home","signin","resendVerifyEmail","verify","signup","signup-success","forgot","reset-invalid","reset","reset-success"];g.indexOf(d.name)>0?b.isAuthenticated()&&(a.preventDefault(),c.go("listForms")):"access_denied"===d.name||b.isAuthenticated()||"submitForm"===d.name||(a.preventDefault(),c.go("listForms"))})}]),angular.module(ApplicationConfiguration.applicationModuleName).run(["$rootScope","Auth","User","Authorizer","$state","$stateParams",function(a,b,c,d,e,f){a.$on("$stateChangeStart",function(a,f){var g,h,i;h=f&&f.data&&f.data.permissions?f.data.permissions:null,b.ensureHasCurrentUser(c),i=b.currentUser,i&&(g=new d(i),null!==h&&(g.canAccess(h)||(a.preventDefault(),e.go("access_denied"))))})}]),angular.module("core").controller("HeaderController",["$rootScope","$scope","Menus","$state","Auth","User","$window","$translate","$locale",function(a,b,c,d,e,f,g,h,i){a.signupDisabled=g.signupDisabled,b.user=a.user=e.ensureHasCurrentUser(f),b.authentication=a.authentication=e,a.languages=b.languages=["en","fr","es","it","de"],b.authentication.isAuthenticated()?a.language=b.user.language:a.language=i.id.substring(0,2),h.use(a.language),b.isCollapsed=!1,a.hideNav=!1,b.menu=c.getMenu("topbar"),b.signout=function(){var c=f.logout();c.then(function(){e.logout(),e.ensureHasCurrentUser(f),b.user=a.user=null,d.go("listForms"),d.reload()},function(a){console.error("Logout Failed: "+a)})},b.toggleCollapsibleMenu=function(){b.isCollapsed=!b.isCollapsed},b.$on("$stateChangeSuccess",function(c,d,e,f,g){b.isCollapsed=!1,a.hideNav=!1,angular.isDefined(d.data)&&angular.isDefined(d.data.hideNav)&&(a.hideNav=d.data.hideNav)})}]),angular.module("core").service("Menus",[function(){this.defaultRoles=["*"],this.menus={};var a=function(a){if(a){if(~this.roles.indexOf("*"))return!0;for(var b in a.roles)for(var c in this.roles)if(this.roles[c]===a.roles[b])return!0;return!1}return this.isPublic};this.validateMenuExistance=function(a){if(a&&a.length){if(this.menus[a])return!0;throw new Error("Menu does not exists")}throw new Error("MenuId was not provided")},this.getMenu=function(a){return this.validateMenuExistance(a),this.menus[a]},this.addMenu=function(b,c,d){return this.menus[b]={isPublic:c||!1,roles:d||this.defaultRoles,items:[],shouldRender:a},this.menus[b]},this.removeMenu=function(a){this.validateMenuExistance(a),delete this.menus[a]},this.addMenuItem=function(b,c,d,e,f,g,h,i){return this.validateMenuExistance(b),this.menus[b].items.push({title:c,link:d,menuItemType:e||"item",menuItemClass:e,uiRoute:f||"/"+d,isPublic:null===g||"undefined"==typeof g?this.menus[b].isPublic:g,roles:null===h||"undefined"==typeof h?this.menus[b].roles:h,position:i||0,items:[],shouldRender:a}),this.menus[b]},this.addSubMenuItem=function(b,c,d,e,f,g,h,i){this.validateMenuExistance(b);for(var j in this.menus[b].items)this.menus[b].items[j].link===c&&this.menus[b].items[j].items.push({title:d,link:e,uiRoute:f||"/"+e,isPublic:null===g||"undefined"==typeof g?this.menus[b].items[j].isPublic:g,roles:null===h||"undefined"==typeof h?this.menus[b].items[j].roles:h,position:i||0,shouldRender:a});return this.menus[b]},this.removeMenuItem=function(a,b){this.validateMenuExistance(a);for(var c in this.menus[a].items)this.menus[a].items[c].link===b&&this.menus[a].items.splice(c,1);return this.menus[a]},this.removeSubMenuItem=function(a,b){this.validateMenuExistance(a);for(var c in this.menus[a].items)for(var d in this.menus[a].items[c].items)this.menus[a].items[c].items[d].link===b&&this.menus[a].items[c].items.splice(d,1);return this.menus[a]},this.addMenu("topbar",!1,["*"]),this.addMenu("bottombar",!1,["*"])}]),angular.module("core").factory("subdomain",["$location",function(a){var b=a.host();return b.indexOf(".")<0?null:b.split(".")[0]}]),angular.module("forms").run(["Menus",function(a){a.addMenuItem("topbar","My Forms","forms","","/forms",!1)}]).filter("secondsToDateTime",[function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}]).filter("formValidity",[function(){return function(a){if(a&&a.form_fields&&a.visible_form_fields){var b=Object.keys(a),c=(b.filter(function(a){return"$"!==a[0]}),a.form_fields),d=c.filter(function(a){return"object"==typeof a&&"statement"!==a.fieldType&&"rating"!==a.fieldType?!!a.fieldValue:"rating"===a.fieldType||void 0}).length;return d-(a.form_fields.length-a.visible_form_fields.length)}return 0}}]).filter("trustSrc",["$sce",function(a){return function(b){return a.trustAsResourceUrl(b)}}]).config(["$provide",function(a){a.decorator("accordionDirective",["$delegate",function(a){var b=a[0];return b.replace=!0,a}])}]),angular.module("forms").config(["$stateProvider",function(a){a.state("listForms",{url:"/forms",templateUrl:"modules/forms/admin/views/list-forms.client.view.html"}).state("submitForm",{url:"/forms/:formId",templateUrl:"/static/form_modules/forms/base/views/submit-form.client.view.html",data:{hideNav:!0},resolve:{Forms:"GetForms",myForm:["GetForms","$stateParams","$q",function(a,b,c){var d=c.defer();return a.get({formId:b.formId},function(a){d.resolve(a)}),d.promise}]},controller:"SubmitFormController",controllerAs:"ctrl"}).state("viewForm",{url:"/forms/:formId/admin",templateUrl:"modules/forms/admin/views/admin-form.client.view.html",data:{permissions:["editForm"]},resolve:{GetForms:"GetForms",myForm:["GetForms","$stateParams","$q",function(a,b,c){var d=c.defer();return a.get({formId:b.formId},function(a){d.resolve(a)}),d.promise}]},controller:"AdminFormController"}).state("viewForm.configure",{url:"/configure",templateUrl:"modules/forms/admin/views/adminTabs/configure.html"}).state("viewForm.design",{url:"/design",templateUrl:"modules/forms/admin/views/adminTabs/design.html"}).state("viewForm.analyze",{url:"/analyze",templateUrl:"modules/forms/admin/views/adminTabs/analyze.html"}).state("viewForm.create",{url:"/create",templateUrl:"modules/forms/admin/views/adminTabs/create.html"})}]),angular.module("forms").factory("GetForms",["$resource","FORM_URL",function(a,b){return a(b,{formId:"@_id"},{query:{method:"GET",isArray:!0},get:{method:"GET",transformResponse:function(a,b){var c=angular.fromJson(a);return c.visible_form_fields=_.filter(c.form_fields,function(a){return a.deletePreserved===!1}),c}},update:{method:"PUT"},save:{method:"POST"}})}]),angular.module("users").config(["$httpProvider",function(a){a.interceptors.push(["$q","$location",function(a,b){return{responseError:function(c){return"/users/me"!==b.path()&&c.config&&"/users/me"!==c.config.url&&(401===c.status?(b.nextAfterLogin=b.path(),b.path("/signin")):403===c.status&&b.path("/access_denied")),a.reject(c)}}}])}]),angular.module("users").config(["$stateProvider",function(a){var b=function(a,b,c,d,e){var f=a.defer();return e.currentUser&&e.currentUser.email?b(f.resolve):e.currentUser=d.getCurrent(function(){e.login(),b(f.resolve())},function(){e.logout(),b(f.reject()),c.go("signin",{reload:!0})}),f.promise};b.$inject=["$q","$timeout","$state","User","Auth"];var c=function(a,b,c){var d=c.defer();return b(a.signupDisabled?d.reject():d.resolve()),d.promise};c.$inject=["$window","$timeout","$q"],a.state("profile",{resolve:{loggedin:b},url:"/settings/profile",templateUrl:"modules/users/views/settings/edit-profile.client.view.html"}).state("password",{resolve:{loggedin:b},url:"/settings/password",templateUrl:"modules/users/views/settings/change-password.client.view.html"}).state("accounts",{resolve:{loggedin:b},url:"/settings/accounts",templateUrl:"modules/users/views/settings/social-accounts.client.view.html"}).state("signup",{resolve:{isDisabled:c},url:"/signup",templateUrl:"modules/users/views/authentication/signup.client.view.html"}).state("signup-success",{resolve:{isDisabled:c},url:"/signup-success",templateUrl:"modules/users/views/authentication/signup-success.client.view.html"}).state("signin",{url:"/signin",templateUrl:"modules/users/views/authentication/signin.client.view.html"}).state("access_denied",{url:"/access_denied",templateUrl:"modules/users/views/authentication/access-denied.client.view.html"}).state("verify",{resolve:{isDisabled:c},url:"/verify/:token",templateUrl:"modules/users/views/verify/verify-account.client.view.html"}).state("resendVerifyEmail",{resolve:{isDisabled:c},url:"/verify",templateUrl:"modules/users/views/verify/resend-verify-email.client.view.html"}).state("forgot",{url:"/password/forgot",templateUrl:"modules/users/views/password/forgot-password.client.view.html"}).state("reset-invalid",{url:"/password/reset/invalid",templateUrl:"modules/users/views/password/reset-password-invalid.client.view.html"}).state("reset-success",{url:"/password/reset/success",templateUrl:"modules/users/views/password/reset-password-success.client.view.html"}).state("reset",{url:"/password/reset/:token",templateUrl:"modules/users/views/password/reset-password.client.view.html"})}]),angular.module("users").controller("AuthenticationController",["$scope","$location","$state","$rootScope","User","Auth",function(a,b,c,d,e,f){a=d,a.credentials={},a.error="",a.signin=function(){e.login(a.credentials).then(function(b){f.login(b),a.user=d.user=f.ensureHasCurrentUser(e),"home"!==c.previous.name&&"verify"!==c.previous.name&&""!==c.previous.name?c.go(c.previous.name):c.go("listForms")},function(b){d.user=f.ensureHasCurrentUser(e),a.user=d.user,a.error=b,console.error("loginError: "+b)})},a.signup=function(){return"admin"===a.credentials?void(a.error="Username cannot be 'admin'. Please pick another username."):void e.signup(a.credentials).then(function(a){c.go("signup-success")},function(b){console.error(b),b?(a.error=b,console.error(b)):console.error("No response received")})}}]),angular.module("users").controller("PasswordController",["$scope","$stateParams","$state","User",function(a,b,c,d){a.error="",a.askForPasswordReset=function(){d.askForPasswordReset(a.credentials).then(function(b){a.success=b.message,a.credentials=null},function(b){a.error=b,a.credentials=null})},a.resetUserPassword=function(){a.success=a.error=null,d.resetPassword(a.passwordDetails,b.token).then(function(b){a.success=b.message,a.passwordDetails=null,c.go("reset-success")},function(b){a.error=b.message||b,a.passwordDetails=null})}}]),angular.module("users").controller("SettingsController",["$scope","$rootScope","$http","$state","Users","Auth",function(a,b,c,d,e,f){a.user=f.currentUser,a.hasConnectedAdditionalSocialAccounts=function(b){for(var c in a.user.additionalProvidersData)return!0;return!1},a.cancel=function(){a.user=f.currentUser},a.isConnectedSocialAccount=function(b){return a.user.provider===b||a.user.additionalProvidersData&&a.user.additionalProvidersData[b]},a.removeUserSocialAccount=function(b){a.success=a.error=null,c["delete"]("/users/accounts",{params:{provider:b}}).success(function(b){a.success=!0,a.user=b}).error(function(b){a.error=b.message})},a.updateUserProfile=function(b){if(b){a.success=a.error=null;var c=new e(a.user);c.$update(function(b){a.success=!0,a.user=b},function(b){a.error=b.data.message})}else a.submitted=!0},a.changeUserPassword=function(){a.success=a.error=null,c.post("/users/password",a.passwordDetails).success(function(b){a.success=!0,a.passwordDetails=null}).error(function(b){a.error=b.message})}}]),angular.module("users").controller("VerifyController",["$scope","$state","$rootScope","User","Auth","$stateParams",function(a,b,c,d,e,f){a.isResetSent=!1,a.credentials={},a.error="",a.resendVerifyEmail=function(){d.resendVerifyEmail(a.credentials.email).then(function(b){a.success=b.message,a.credentials=null,a.isResetSent=!0},function(b){a.error=b,a.credentials.email=null,a.isResetSent=!1})},a.validateVerifyToken=function(){f.token&&(console.log(f.token),d.validateVerifyToken(f.token).then(function(b){a.success=b.message,a.isResetSent=!0,a.credentials.email=null},function(b){a.isResetSent=!1,a.error=b,a.credentials.email=null}))}}]),angular.module("users").factory("Auth",["$window",function(a){var b={isLoggedIn:!1},c={_currentUser:null,get currentUser(){return this._currentUser},ensureHasCurrentUser:function(d){return c._currentUser&&c._currentUser.username?c._currentUser:a.user?(c._currentUser=a.user,c._currentUser):void d.getCurrent().then(function(d){return c._currentUser=d,b.isLoggedIn=!0,a.user=c._currentUser,c._currentUser},function(d){return b.isLoggedIn=!1,c._currentUser=null,a.user=null,null})},isAuthenticated:function(){return!!c._currentUser},getUserState:function(){return b},login:function(a){b.isLoggedIn=!0,c._currentUser=a},logout:function(){a.user=null,b.isLoggedIn=!1,c._currentUser=null}};return c}]),angular.module("users").service("Authorizer",["APP_PERMISSIONS","USER_ROLES",function(a,b){return function(c){return{canAccess:function(d){var e,f,g;for(angular.isArray(d)||(d=[d]),e=0,f=d.length;e-1;case a.viewPrivateForm:case a.editForm:return c.roles.indexOf(b.admin)>-1||c.roles.indexOf(b.normal)>-1}}return!1}}}}]),angular.module("users").factory("User",["$window","$q","$timeout","$http","$state",function(a,b,c,d,e){var f={getCurrent:function(){var a=b.defer();return d.get("/users/me").success(function(b){a.resolve(b)}).error(function(){a.reject("User's session has expired")}),a.promise},login:function(a){var c=b.defer();return d.post("/auth/signin",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},logout:function(){var a=b.defer();return d.get("/auth/signout").then(function(b){a.resolve(null)},function(b){a.reject(b.data.message||b.data)}),a.promise},signup:function(a){var c=b.defer();return d.post("/auth/signup",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},resendVerifyEmail:function(a){var c=b.defer();return d.post("/auth/verify",{email:a}).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},validateVerifyToken:function(a){var c=/^([A-Za-z0-9]{48})$/g;if(!c.test(a))throw new Error("Error token: "+a+" is not a valid verification token");var e=b.defer();return d.get("/auth/verify/"+a).then(function(a){e.resolve(a.data)},function(a){e.reject(a.data)}),e.promise},resetPassword:function(a,c){var e=b.defer();return d.post("/auth/reset/"+c,a).then(function(a){e.resolve(a)},function(a){e.reject(a.data.message||a.data)}),e.promise},askForPasswordReset:function(a){var c=b.defer();return d.post("/auth/forgot",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise}};return f}]),angular.module("users").factory("Users",["$resource",function(a){return a("users",{},{update:{method:"PUT"}})}]),angular.module("core").config(["$translateProvider",function(a){a.translations("en",{MENU:"MENU",SIGNUP_TAB:"Sign Up",SIGNIN_TAB:"Sign In",SIGNOUT_TAB:"Signout",EDIT_PROFILE:"Edit Profile",MY_FORMS:"My Forms",MY_SETTINGS:"My Settings",CHANGE_PASSWORD:"Change Password"}),a.preferredLanguage("en").fallbackLanguage("en").useSanitizeValueStrategy("escape")}]),angular.module("core").config(["$translateProvider",function(a){a.translations("fr",{MENU:"MENU",SIGNUP_TAB:"Créer un Compte",SIGNIN_TAB:"Connexion",SIGNOUT_TAB:"Créer un compte",EDIT_PROFILE:"Modifier Mon Profil",MY_FORMS:"Mes Formulaires",MY_SETTINGS:"Mes Paramètres",CHANGE_PASSWORD:"Changer mon Mot de Pass"})}]),angular.module("core").config(["$translateProvider",function(a){a.translations("es",{MENU:"MENU",SIGNUP_TAB:"Registrarse",SIGNIN_TAB:"Entrar",SIGNOUT_TAB:"Salir",EDIT_PROFILE:"Editar Perfil",MY_FORMS:"Mis formularios",MY_SETTINGS:"Mis configuraciones",CHANGE_PASSWORD:"Cambiar contraseña"})}]),angular.module("forms").controller("AdminFormController",["$rootScope","$window","$scope","$stateParams","$state","Forms","CurrentForm","$http","$uibModal","myForm","$filter",function(a,b,c,d,e,f,g,h,i,j,k){c.activePill=0,c.copied=!1,c.onCopySuccess=function(a){c.copied=!0},c=a,c.animationsEnabled=!0,c.myform=j,a.saveInProgress=!1,c.oldForm=_.cloneDeep(c.myform),g.setForm(c.myform),c.formURL="/#!/forms/"+c.myform._id,c.myform.isLive?b.subdomainsDisabled===!0?c.actualFormURL=window.location.protocol+"//"+window.location.host+"/view"+c.formURL:window.location.host.split(".").length<3?c.actualFormURL=window.location.protocol+"//"+c.myform.admin.username+"."+window.location.host+c.formURL:c.actualFormURL=window.location.protocol+"//"+c.myform.admin.username+"."+window.location.host.split(".").slice(1,3).join(".")+c.formURL:c.actualFormURL=window.location.protocol+"//"+window.location.host+c.formURL;var l=c.refreshFrame=function(){document.getElementById("iframe")&&document.getElementById("iframe").contentWindow.location.reload()};c.tabData=[{heading:k("translate")("CONFIGURE_TAB"),templateName:"configure"}],c.designTabActive=!1,c.deactivateDesignTab=function(){c.designTabActive=!1},c.activateDesignTab=function(){c.designTabActive=!0},c.setForm=function(a){c.myform=a},a.resetForm=function(){c.myform=f.get({formId:d.formId})},c.openDeleteModal=function(){c.deleteModal=i.open({animation:c.animationsEnabled,templateUrl:"formDeleteModal.html",controller:"AdminFormController",resolve:{myForm:function(){return c.myform}}}),c.deleteModal.result.then(function(a){c.selected=a})},c.cancelDeleteModal=function(){c.deleteModal&&c.deleteModal.dismiss("cancel")},c.removeCurrentForm=function(){if(c.deleteModal&&c.deleteModal.opened){c.deleteModal.close();var a=c.myform._id;if(!a)throw new Error("Error - removeCurrentForm(): $scope.myform._id does not exist");h["delete"]("/forms/"+a).then(function(a){e.go("listForms",{},{reload:!0})},function(a){console.error(a)})}},c.updateDesign=function(a,b,d,e){c.update(a,b,d,e,function(){l()})},c.update=a.update=function(b,d,e,f,g){var i=!0;if(b||(i=!a.saveInProgress),i){var j=null;if(b||(a.saveInProgress=!0),e){for(var k=new RegExp("^[0-9a-fA-F]{24}$"),l=0;l]+/i,test:function(a){return!this.regExp.test(a)}},b.openDeleteModal=function(a){b.deleteModal=h.open({animation:b.animationsEnabled,templateUrl:"deleteModalListForms.html",controller:["$uibModalInstance","items","$scope",function(a,b,c){c.content=b,c.cancel=c.cancelDeleteModal,c.deleteForm=function(){c.$parent.removeForm(b.formIndex)}}],resolve:{items:function(){return{currFormTitle:b.myforms[a].title,formIndex:a}}}})},b.cancelDeleteModal=function(){b.deleteModal&&b.deleteModal.dismiss("cancel")},b.findAll=function(){e.query(function(a){b.myforms=a})},b.openCreateModal=function(){b.showCreateModal||(b.showCreateModal=!0)},b.closeCreateModal=function(){b.showCreateModal&&(b.showCreateModal=!1)},b.setForm=function(a){b.myform=a},b.goToWithId=function(a,b){d.go(a,{formId:b},{reload:!0})},b.duplicateForm=function(a){var c=_.cloneDeep(b.myforms[a]);delete c._id,g.post("/forms",{form:c}).success(function(c,d,e){b.myforms.splice(a+1,0,c)}).error(function(a){console.error(a),null===a&&(b.error=a.data.message)})},b.createNewForm=function(){var a={};a.title=b.forms.createForm.title.$modelValue,a.language=b.forms.createForm.language.$modelValue,b.forms.createForm.$valid&&b.forms.createForm.$dirty&&g.post("/forms",{form:a}).success(function(a,c,d){b.goToWithId("viewForm.create",a._id+"")}).error(function(a){console.error(a),b.error=a.data.message})},b.removeForm=function(a){if(a>=b.myforms.length||a<0)throw new Error("Error: form_index in removeForm() must be between 0 and "+b.myforms.length-1);g["delete"]("/forms/"+b.myforms[a]._id).success(function(c,d,e){b.myforms.splice(a,1),b.cancelDeleteModal()}).error(function(a){console.error(a)})}}]),angular.module("forms").directive("configureFormDirective",["$rootScope","$http","Upload","CurrentForm",function(a,b,c,d){ -return{templateUrl:"modules/forms/admin/views/directiveViews/form/configure-form.client.view.html",restrict:"E",scope:{myform:"=",user:"=",pdfFields:"@",formFields:"@"},controller:["$scope",function(b){b.log="",b.languages=a.languages,b.resetForm=a.resetForm,b.update=a.update}]}}]),angular.module("forms").directive("editFormDirective",["$rootScope","FormFields","$uibModal",function(a,b,c){return{templateUrl:"modules/forms/admin/views/directiveViews/form/edit-form.client.view.html",restrict:"E",transclude:!0,scope:{myform:"="},controller:["$scope",function(d){var e;d.sortableOptions={appendTo:".dropzone",forceHelperSize:!0,forcePlaceholderSize:!0,update:function(a,b){d.update(!1,d.myform,!0,!1,function(a){})}},d.openEditModal=function(a){d.editFieldModal=c.open({animation:!0,templateUrl:"editFieldModal.html",windowClass:"edit-modal-window",controller:["$uibModalInstance","$scope",function(b,c){c.field=a,c.showLogicJump=!1,c.showAddOptions=function(a){return"dropdown"===a.fieldType||"checkbox"===a.fieldType||"radio"===a.fieldType},c.validShapes=["Heart","Star","thumbs-up","thumbs-down","Circle","Square","Check Circle","Smile Outlined","Hourglass","bell","Paper Plane","Comment","Trash"],c.addOption=function(a){if("checkbox"===a.fieldType||"dropdown"===a.fieldType||"radio"===a.fieldType){a.fieldOptions||(a.fieldOptions=[]);var b=a.fieldOptions.length+1,c={option_id:Math.floor(1e5*Math.random()),option_title:"Option "+b,option_value:"Option "+b};a.fieldOptions.push(c)}},c.deleteOption=function(a,b){if("checkbox"===a.fieldType||"dropdown"===a.fieldType||"radio"===a.fieldType)for(var c=0;c',restrict:"E",scope:{typeName:"@"},controller:["$scope",function(a){var b={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",statement:"fa fa-quote-left",yes_no:"fa fa-toggle-on",number:"fa fa-slack"};a.typeIcon=b[a.typeName]}]}});var __indexOf=[].indexOf||function(a){for(var b=0,c=this.length;b=0&&(c=c+b+".html"),d.get(c)};return{template:"
{{field.title}}
",restrict:"E",scope:{field:"=",required:"&",design:"=",index:"=",forms:"="},link:function(a,d){c.chooseDefaultOption=a.chooseDefaultOption=function(b){"yes_no"===b?a.field.fieldValue="true":"rating"===b?a.field.fieldValue=0:"radio"===a.field.fieldType?a.field.fieldValue=a.field.fieldOptions[0].option_value:"legal"===b&&(a.field.fieldValue="true",c.nextField())},a.nextField=c.nextField,a.setActiveField=c.setActiveField,"date"===a.field.fieldType&&(a.dateOptions={changeYear:!0,changeMonth:!0,altFormat:"mm/dd/yyyy",yearRange:"1900:-0",defaultDate:0});var e=a.field.fieldType;if("number"===a.field.fieldType||"textfield"===a.field.fieldType||"email"===a.field.fieldType||"link"===a.field.fieldType){switch(a.field.fieldType){case"textfield":a.input_type="text";break;case"email":a.input_type="email",a.placeholder="joesmith@example.com";break;case"number":a.input_type="text",a.validateRegex=/^-?\d+$/;break;default:a.input_type="url",a.placeholder="http://example.com"}e="textfield"}var g=f(e);d.html(g).show();b(d.contents())(a)}}}]),angular.module("view-form").directive("onEnterKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode,e=!1;null!==d.onEnterKeyDisabled&&(e=d.onEnterKeyDisabled),13!==c||b.shiftKey||e||(b.preventDefault(),a.$apply(function(){a.$eval(d.onEnterKey)}))})}}}]).directive("onTabKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keyup keypress",function(b){var c=b.which||b.keyCode;9!==c||b.shiftKey||(b.preventDefault(),a.$apply(function(){a.$eval(d.onTabKey)}))})}}}]).directive("onEnterOrTabKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode;13!==c&&9!==c||b.shiftKey||(b.preventDefault(),a.$apply(function(){a.$eval(d.onEnterOrTabKey)}))})}}}]).directive("onTabAndShiftKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode;9===c&&b.shiftKey&&(console.log("onTabAndShiftKey"),b.preventDefault(),a.$apply(function(){a.$eval(d.onTabAndShiftKey)}))})}}}]),angular.module("view-form").directive("onFinishRender",["$rootScope","$timeout",function(a,b){return{restrict:"A",link:function(b,c,d){if(c.attr("ng-repeat")||c.attr("data-ng-repeat")){var e=d.onFinishRender||"ngRepeat";b.$first&&!b.$last?b.$evalAsync(function(){a.$broadcast(e+" Started")}):b.$last&&b.$evalAsync(function(){a.$broadcast(e+" Finished")})}}}}]),jsep.addBinaryOp("contains",10),jsep.addBinaryOp("!contains",10),jsep.addBinaryOp("begins",10),jsep.addBinaryOp("!begins",10),jsep.addBinaryOp("ends",10),jsep.addBinaryOp("!ends",10),angular.module("view-form").directive("submitFormDirective",["$http","TimeCounter","$filter","$rootScope","SendVisitorData","$translate","$timeout",function(a,b,c,d,e,f,g){return{templateUrl:"form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html",restrict:"E",scope:{myform:"=",ispreview:"="},controller:["$document","$window","$scope",function(f,g,h){var i=!1,j="submit_field";h.forms={},h.ispreview&&b.restartClock();var k=h.myform.visible_form_fields.filter(function(a){return"statement"!==a.fieldType}).length,l=c("formValidity")(h.myform);h.translateAdvancementData={done:l,total:k,answers_not_completed:k-l},h.reloadForm=function(){h.myform.submitted=!1,h.myform.form_fields=_.chain(h.myform.visible_form_fields).map(function(a){return a.fieldValue="",a}).value(),h.loading=!1,h.error="",h.selected={_id:"",index:0},h.setActiveField(h.myform.visible_form_fields[0]._id,0,!1),b.restartClock()};var m=function(a){var b=a.logicJump;if(b.expressionString&&b.valueB&&a.fieldValue){var c,d,e=jsep(b.expressionString);if("field"===e.left.name?(c=a.fieldValue,d=b.valueB):(c=b.valueB,d=a.fieldValue),"number"===a.fieldType||"scale"===a.fieldType||"rating"===a.fieldType)switch(e.operator){case"==":return parseInt(c)===parseInt(d);case"!==":return parseInt(c)!==parseInt(d);case">":return parseInt(c)>parseInt(d);case">=":return parseInt(c)>parseInt(d);case"<":return parseInt(c)-1;case"!contains":return!(c.indexOf(d)>-1);case"begins":return c.startsWith(d);case"!begins":return!c.startsWith(d);case"ends":return c.endsWith(d);case"!ends":return c.endsWith(d);default:return!1}}},n=function(){if(null===h.selected)throw console.error("current active field is null"),new Error("current active field is null");return h.selected._id===j?h.myform.form_fields.length-1:h.selected.index};h.isActiveField=function(a){return h.selected._id===a._id},h.setActiveField=d.setActiveField=function(a,b,d){if(null!==h.selected&&(a||null!==b)){if(a){if(null===b){b=h.myform.visible_form_fields.length;for(var e=0;e .field-directive:nth-of-type("+String(h.myform.visible_form_fields.length-1)+")"),m=$(l).height(),n=k-g-1.2*m,o=.9;h.selected.index===h.myform.visible_form_fields.length?bn?(a=h.selected.index+1,h.setActiveField(j,a,!1)):ef*o&&(a=h.selected.index-1,h.setActiveField(null,a,!1))}h.$apply()},d.nextField=h.nextField=function(){if(h.selected&&h.selected.index>-1)if(h.selected._id!==j){var a=h.myform.visible_form_fields[h.selected.index];a.logicJump&&a.logicJump.jumpTo&&m(a)?h.setActiveField(a.logicJump.jumpTo,null,!0):h.selected.index0&&h.setActiveField(null,a,!0)},d.goToInvalid=h.goToInvalid=function(){var a=$(".row.field-directive .ng-invalid.focusOn, .row.field-directive .ng-untouched.focusOn:not(.ng-valid)").first().parents(".row.field-directive").first().attr("data-id");h.setActiveField(a,null,!0)},h.exitStartPage=function(){h.myform.startPage.showStart=!1,h.myform.visible_form_fields.length>0&&(h.selected._id=h.myform.visible_form_fields[0]._id)};var o=function(){var a=new MobileDetect(window.navigator.userAgent),b="other";return a.tablet()?b="tablet":a.mobile()?b="mobile":a.is("bot")||(b="desktop"),{type:b,name:window.navigator.platform}},p=function(){$.ajaxSetup({async:!1});var a=$.getJSON("https://freegeoip.net/json/").responseJSON;return $.ajaxSetup({async:!0}),a&&a.ip||(a={ip:"Adblocker"}),{ipAddr:a.ip,geoLocation:{City:a.city,Country:a.country_name}}};d.submitForm=h.submitForm=function(){if(h.forms.myForm.$invalid)return void h.goToInvalid();var d=b.stopClock();h.loading=!0;var f=_.cloneDeep(h.myform),g=o();f.device=g;var i=p();f.ipAddr=i.ipAddr,f.geoLocation=i.geoLocation,f.timeElapsed=d,f.percentageComplete=c("formValidity")(h.myform)/h.myform.visible_form_fields.length*100,delete f.endPage,delete f.isLive,delete f.provider,delete f.startPage,delete f.visible_form_fields,delete f.analytics,delete f.design,delete f.submissions,delete f.submitted;for(var j=0;j

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

{{field.description}}


'),a.put("form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html",'
{{ \'COMPLETING_NEEDED\' | translate:translateAdvancementData }}
'),a.put("form_modules/forms/base/views/form-not-found.client.view.html",'

404 - Form Does not Exist

The form you are trying to access does not exist. Sorry about that!
'),a.put("form_modules/forms/base/views/form-unauthorized.client.view.html",'

Not Authorized to Access Form

The form you are trying to access is currently private and not accesible publically.
If you are the owner of the form, you can set it to "Public" in the "Configuration" panel in the form admin.
'),a.put("form_modules/forms/base/views/submit-form.client.view.html","
")}]),ApplicationConfiguration.registerModule("core",["users"]),ApplicationConfiguration.registerModule("forms",["ngFileUpload","ui.router.tabs","ui.date","ui.sortable","angular-input-stars","users","ngclipboard"]),ApplicationConfiguration.registerModule("users"),angular.module("core").config(["$stateProvider","$urlRouterProvider",function(a,b,c){b.otherwise("/forms")}]),angular.module(ApplicationConfiguration.applicationModuleName).run(["$rootScope","Auth","$state","$stateParams",function(a,b,c,d){a.$state=c,a.$stateParams=d,a.$on("$stateChangeSuccess",function(a,d,e,f){c.previous=f;var g=["home","signin","resendVerifyEmail","verify","signup","signup-success","forgot","reset-invalid","reset","reset-success"];g.indexOf(d.name)>0?b.isAuthenticated()&&(a.preventDefault(),c.go("listForms")):"access_denied"===d.name||b.isAuthenticated()||"submitForm"===d.name||(a.preventDefault(),c.go("listForms"))})}]),angular.module(ApplicationConfiguration.applicationModuleName).run(["$rootScope","Auth","User","Authorizer","$state","$stateParams",function(a,b,c,d,e,f){a.$on("$stateChangeStart",function(a,f){var g,h,i;h=f&&f.data&&f.data.permissions?f.data.permissions:null,b.ensureHasCurrentUser(c),i=b.currentUser,i&&(g=new d(i),null!==h&&(g.canAccess(h)||(a.preventDefault(),e.go("access_denied"))))})}]),angular.module("core").controller("HeaderController",["$rootScope","$scope","Menus","$state","Auth","User","$window","$translate","$locale",function(a,b,c,d,e,f,g,h,i){a.signupDisabled=g.signupDisabled,b.user=a.user=e.ensureHasCurrentUser(f),b.authentication=a.authentication=e,a.languages=b.languages=["en","fr","es","it","de"],b.authentication.isAuthenticated()?a.language=b.user.language:a.language=i.id.substring(0,2),h.use(a.language),b.isCollapsed=!1,a.hideNav=!1,b.menu=c.getMenu("topbar"),b.signout=function(){var c=f.logout();c.then(function(){e.logout(),e.ensureHasCurrentUser(f),b.user=a.user=null,d.go("listForms"),d.reload()},function(a){console.error("Logout Failed: "+a)})},b.toggleCollapsibleMenu=function(){b.isCollapsed=!b.isCollapsed},b.$on("$stateChangeSuccess",function(c,d,e,f,g){b.isCollapsed=!1,a.hideNav=!1,angular.isDefined(d.data)&&angular.isDefined(d.data.hideNav)&&(a.hideNav=d.data.hideNav)})}]),angular.module("core").service("Menus",[function(){this.defaultRoles=["*"],this.menus={};var a=function(a){if(a){if(~this.roles.indexOf("*"))return!0;for(var b in a.roles)for(var c in this.roles)if(this.roles[c]===a.roles[b])return!0;return!1}return this.isPublic};this.validateMenuExistance=function(a){if(a&&a.length){if(this.menus[a])return!0;throw new Error("Menu does not exists")}throw new Error("MenuId was not provided")},this.getMenu=function(a){return this.validateMenuExistance(a),this.menus[a]},this.addMenu=function(b,c,d){return this.menus[b]={isPublic:c||!1,roles:d||this.defaultRoles,items:[],shouldRender:a},this.menus[b]},this.removeMenu=function(a){this.validateMenuExistance(a),delete this.menus[a]},this.addMenuItem=function(b,c,d,e,f,g,h,i){return this.validateMenuExistance(b),this.menus[b].items.push({title:c,link:d,menuItemType:e||"item",menuItemClass:e,uiRoute:f||"/"+d,isPublic:null===g||"undefined"==typeof g?this.menus[b].isPublic:g,roles:null===h||"undefined"==typeof h?this.menus[b].roles:h,position:i||0,items:[],shouldRender:a}),this.menus[b]},this.addSubMenuItem=function(b,c,d,e,f,g,h,i){this.validateMenuExistance(b);for(var j in this.menus[b].items)this.menus[b].items[j].link===c&&this.menus[b].items[j].items.push({title:d,link:e,uiRoute:f||"/"+e,isPublic:null===g||"undefined"==typeof g?this.menus[b].items[j].isPublic:g,roles:null===h||"undefined"==typeof h?this.menus[b].items[j].roles:h,position:i||0,shouldRender:a});return this.menus[b]},this.removeMenuItem=function(a,b){this.validateMenuExistance(a);for(var c in this.menus[a].items)this.menus[a].items[c].link===b&&this.menus[a].items.splice(c,1);return this.menus[a]},this.removeSubMenuItem=function(a,b){this.validateMenuExistance(a);for(var c in this.menus[a].items)for(var d in this.menus[a].items[c].items)this.menus[a].items[c].items[d].link===b&&this.menus[a].items[c].items.splice(d,1);return this.menus[a]},this.addMenu("topbar",!1,["*"]),this.addMenu("bottombar",!1,["*"])}]),angular.module("core").factory("subdomain",["$location",function(a){var b=a.host();return b.indexOf(".")<0?null:b.split(".")[0]}]),angular.module("forms").run(["Menus",function(a){a.addMenuItem("topbar","My Forms","forms","","/forms",!1)}]).filter("secondsToDateTime",[function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}]).filter("formValidity",[function(){return function(a){if(a&&a.form_fields&&a.visible_form_fields){var b=Object.keys(a),c=(b.filter(function(a){return"$"!==a[0]}),a.form_fields),d=c.filter(function(a){return"object"==typeof a&&"statement"!==a.fieldType&&"rating"!==a.fieldType?!!a.fieldValue:"rating"===a.fieldType||void 0}).length;return d-(a.form_fields.length-a.visible_form_fields.length)}return 0}}]).filter("trustSrc",["$sce",function(a){return function(b){return a.trustAsResourceUrl(b)}}]).config(["$provide",function(a){a.decorator("accordionDirective",["$delegate",function(a){var b=a[0];return b.replace=!0,a}])}]),angular.module("forms").config(["$stateProvider",function(a){a.state("listForms",{url:"/forms",templateUrl:"modules/forms/admin/views/list-forms.client.view.html"}).state("submitForm",{url:"/forms/:formId",templateUrl:"/static/form_modules/forms/base/views/submit-form.client.view.html",data:{hideNav:!0},resolve:{Forms:"GetForms",myForm:["GetForms","$stateParams","$q",function(a,b,c){var d=c.defer();return a.get({formId:b.formId},function(a){d.resolve(a)}),d.promise}]},controller:"SubmitFormController",controllerAs:"ctrl"}).state("viewForm",{url:"/forms/:formId/admin",templateUrl:"modules/forms/admin/views/admin-form.client.view.html",data:{permissions:["editForm"]},resolve:{GetForms:"GetForms",myForm:["GetForms","$stateParams","$q",function(a,b,c){var d=c.defer();return a.get({formId:b.formId},function(a){d.resolve(a)}),d.promise}]},controller:"AdminFormController"}).state("viewForm.configure",{url:"/configure",templateUrl:"modules/forms/admin/views/adminTabs/configure.html"}).state("viewForm.design",{url:"/design",templateUrl:"modules/forms/admin/views/adminTabs/design.html"}).state("viewForm.analyze",{url:"/analyze",templateUrl:"modules/forms/admin/views/adminTabs/analyze.html"}).state("viewForm.create",{url:"/create",templateUrl:"modules/forms/admin/views/adminTabs/create.html"})}]),angular.module("forms").factory("GetForms",["$resource","FORM_URL",function(a,b){return a(b,{formId:"@_id"},{query:{method:"GET",isArray:!0},get:{method:"GET",transformResponse:function(a,b){var c=angular.fromJson(a);return c.visible_form_fields=_.filter(c.form_fields,function(a){return a.deletePreserved===!1}),c}},update:{method:"PUT"},save:{method:"POST"}})}]),angular.module("users").config(["$httpProvider",function(a){a.interceptors.push(["$q","$location",function(a,b){return{responseError:function(c){return"/users/me"!==b.path()&&c.config&&"/users/me"!==c.config.url&&(401===c.status?(b.nextAfterLogin=b.path(),b.path("/signin")):403===c.status&&b.path("/access_denied")),a.reject(c)}}}])}]),angular.module("users").config(["$stateProvider",function(a){var b=function(a,b,c,d,e){var f=a.defer();return e.currentUser&&e.currentUser.email?b(f.resolve):e.currentUser=d.getCurrent(function(){e.login(),b(f.resolve())},function(){e.logout(),b(f.reject()),c.go("signin",{reload:!0})}),f.promise};b.$inject=["$q","$timeout","$state","User","Auth"];var c=function(a,b,c){var d=c.defer();return b(a.signupDisabled?d.reject():d.resolve()),d.promise};c.$inject=["$window","$timeout","$q"],a.state("profile",{resolve:{loggedin:b},url:"/settings/profile",templateUrl:"modules/users/views/settings/edit-profile.client.view.html"}).state("password",{resolve:{loggedin:b},url:"/settings/password",templateUrl:"modules/users/views/settings/change-password.client.view.html"}).state("accounts",{resolve:{loggedin:b},url:"/settings/accounts",templateUrl:"modules/users/views/settings/social-accounts.client.view.html"}).state("signup",{resolve:{isDisabled:c},url:"/signup",templateUrl:"modules/users/views/authentication/signup.client.view.html"}).state("signup-success",{resolve:{isDisabled:c},url:"/signup-success",templateUrl:"modules/users/views/authentication/signup-success.client.view.html"}).state("signin",{url:"/signin",templateUrl:"modules/users/views/authentication/signin.client.view.html"}).state("access_denied",{url:"/access_denied",templateUrl:"modules/users/views/authentication/access-denied.client.view.html"}).state("verify",{resolve:{isDisabled:c},url:"/verify/:token",templateUrl:"modules/users/views/verify/verify-account.client.view.html"}).state("resendVerifyEmail",{resolve:{isDisabled:c},url:"/verify",templateUrl:"modules/users/views/verify/resend-verify-email.client.view.html"}).state("forgot",{url:"/password/forgot",templateUrl:"modules/users/views/password/forgot-password.client.view.html"}).state("reset-invalid",{url:"/password/reset/invalid",templateUrl:"modules/users/views/password/reset-password-invalid.client.view.html"}).state("reset-success",{url:"/password/reset/success",templateUrl:"modules/users/views/password/reset-password-success.client.view.html"}).state("reset",{url:"/password/reset/:token",templateUrl:"modules/users/views/password/reset-password.client.view.html"})}]),angular.module("users").controller("AuthenticationController",["$scope","$location","$state","$rootScope","User","Auth",function(a,b,c,d,e,f){a=d,a.credentials={},a.error="",a.signin=function(){e.login(a.credentials).then(function(b){f.login(b),a.user=d.user=f.ensureHasCurrentUser(e),"home"!==c.previous.name&&"verify"!==c.previous.name&&""!==c.previous.name?c.go(c.previous.name):c.go("listForms")},function(b){d.user=f.ensureHasCurrentUser(e),a.user=d.user,a.error=b,console.error("loginError: "+b)})},a.signup=function(){return"admin"===a.credentials?void(a.error="Username cannot be 'admin'. Please pick another username."):void e.signup(a.credentials).then(function(a){c.go("signup-success")},function(b){console.error(b),b?(a.error=b,console.error(b)):console.error("No response received")})}}]),angular.module("users").controller("PasswordController",["$scope","$stateParams","$state","User",function(a,b,c,d){a.error="",a.askForPasswordReset=function(){d.askForPasswordReset(a.credentials).then(function(b){a.success=b.message,a.credentials=null},function(b){a.error=b,a.credentials=null})},a.resetUserPassword=function(){a.success=a.error=null,d.resetPassword(a.passwordDetails,b.token).then(function(b){a.success=b.message,a.passwordDetails=null,c.go("reset-success")},function(b){a.error=b.message||b,a.passwordDetails=null})}}]),angular.module("users").controller("SettingsController",["$scope","$rootScope","$http","$state","Users","Auth",function(a,b,c,d,e,f){a.user=f.currentUser,a.hasConnectedAdditionalSocialAccounts=function(b){for(var c in a.user.additionalProvidersData)return!0;return!1},a.cancel=function(){a.user=f.currentUser},a.isConnectedSocialAccount=function(b){return a.user.provider===b||a.user.additionalProvidersData&&a.user.additionalProvidersData[b]},a.removeUserSocialAccount=function(b){a.success=a.error=null,c["delete"]("/users/accounts",{params:{provider:b}}).success(function(b){a.success=!0,a.user=b}).error(function(b){a.error=b.message})},a.updateUserProfile=function(b){if(b){a.success=a.error=null;var c=new e(a.user);c.$update(function(b){a.success=!0,a.user=b},function(b){a.error=b.data.message})}else a.submitted=!0},a.changeUserPassword=function(){a.success=a.error=null,c.post("/users/password",a.passwordDetails).success(function(b){a.success=!0,a.passwordDetails=null}).error(function(b){a.error=b.message})}}]),angular.module("users").controller("VerifyController",["$scope","$state","$rootScope","User","Auth","$stateParams",function(a,b,c,d,e,f){a.isResetSent=!1,a.credentials={},a.error="",a.resendVerifyEmail=function(){d.resendVerifyEmail(a.credentials.email).then(function(b){a.success=b.message,a.credentials=null,a.isResetSent=!0},function(b){a.error=b,a.credentials.email=null,a.isResetSent=!1})},a.validateVerifyToken=function(){f.token&&(console.log(f.token),d.validateVerifyToken(f.token).then(function(b){a.success=b.message,a.isResetSent=!0,a.credentials.email=null},function(b){a.isResetSent=!1,a.error=b,a.credentials.email=null}))}}]),angular.module("users").factory("Auth",["$window",function(a){var b={isLoggedIn:!1},c={_currentUser:null,get currentUser(){return this._currentUser},ensureHasCurrentUser:function(d){return c._currentUser&&c._currentUser.username?c._currentUser:a.user?(c._currentUser=a.user,c._currentUser):void d.getCurrent().then(function(d){return c._currentUser=d,b.isLoggedIn=!0,a.user=c._currentUser,c._currentUser},function(d){return b.isLoggedIn=!1,c._currentUser=null,a.user=null,null})},isAuthenticated:function(){return!!c._currentUser},getUserState:function(){return b},login:function(a){b.isLoggedIn=!0,c._currentUser=a},logout:function(){a.user=null,b.isLoggedIn=!1,c._currentUser=null}};return c}]),angular.module("users").service("Authorizer",["APP_PERMISSIONS","USER_ROLES",function(a,b){return function(c){return{canAccess:function(d){var e,f,g;for(angular.isArray(d)||(d=[d]),e=0,f=d.length;e-1;case a.viewPrivateForm:case a.editForm:return c.roles.indexOf(b.admin)>-1||c.roles.indexOf(b.normal)>-1}}return!1}}}}]),angular.module("users").factory("User",["$window","$q","$timeout","$http","$state",function(a,b,c,d,e){var f={getCurrent:function(){var a=b.defer();return d.get("/users/me").success(function(b){a.resolve(b)}).error(function(){a.reject("User's session has expired")}),a.promise},login:function(a){var c=b.defer();return d.post("/auth/signin",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},logout:function(){var a=b.defer();return d.get("/auth/signout").then(function(b){a.resolve(null)},function(b){a.reject(b.data.message||b.data)}),a.promise},signup:function(a){var c=b.defer();return d.post("/auth/signup",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},resendVerifyEmail:function(a){var c=b.defer();return d.post("/auth/verify",{email:a}).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise},validateVerifyToken:function(a){var c=/^([A-Za-z0-9]{48})$/g;if(!c.test(a))throw new Error("Error token: "+a+" is not a valid verification token");var e=b.defer();return d.get("/auth/verify/"+a).then(function(a){e.resolve(a.data)},function(a){e.reject(a.data)}),e.promise},resetPassword:function(a,c){var e=b.defer();return d.post("/auth/reset/"+c,a).then(function(a){e.resolve(a)},function(a){e.reject(a.data.message||a.data)}),e.promise},askForPasswordReset:function(a){var c=b.defer();return d.post("/auth/forgot",a).then(function(a){c.resolve(a.data)},function(a){c.reject(a.data.message||a.data)}),c.promise}};return f}]),angular.module("users").factory("Users",["$resource",function(a){return a("users",{},{update:{method:"PUT"}})}]),angular.module("core").config(["$translateProvider",function(a){a.translations("en",{MENU:"MENU",SIGNUP_TAB:"Sign Up",SIGNIN_TAB:"Sign In",SIGNOUT_TAB:"Signout",EDIT_PROFILE:"Edit Profile",MY_FORMS:"My Forms",MY_SETTINGS:"My Settings",CHANGE_PASSWORD:"Change Password"}),a.preferredLanguage("en").fallbackLanguage("en").useSanitizeValueStrategy("escape")}]),angular.module("core").config(["$translateProvider",function(a){a.translations("fr",{MENU:"MENU",SIGNUP_TAB:"Créer un Compte",SIGNIN_TAB:"Connexion",SIGNOUT_TAB:"Créer un compte",EDIT_PROFILE:"Modifier Mon Profil",MY_FORMS:"Mes Formulaires",MY_SETTINGS:"Mes Paramètres",CHANGE_PASSWORD:"Changer mon Mot de Pass"})}]),angular.module("core").config(["$translateProvider",function(a){a.translations("es",{MENU:"MENU",SIGNUP_TAB:"Registrarse",SIGNIN_TAB:"Entrar",SIGNOUT_TAB:"Salir",EDIT_PROFILE:"Editar Perfil",MY_FORMS:"Mis formularios",MY_SETTINGS:"Mis configuraciones",CHANGE_PASSWORD:"Cambiar contraseña"})}]),angular.module("forms").controller("AdminFormController",["$rootScope","$window","$scope","$stateParams","$state","Forms","CurrentForm","$http","$uibModal","myForm","$filter",function(a,b,c,d,e,f,g,h,i,j,k){c.activePill=0,c.copied=!1,c.onCopySuccess=function(a){c.copied=!0},c=a,c.animationsEnabled=!0,c.myform=j,a.saveInProgress=!1,c.oldForm=_.cloneDeep(c.myform),g.setForm(c.myform),c.formURL="/#!/forms/"+c.myform._id,c.myform.isLive?b.subdomainsDisabled===!0?c.actualFormURL=window.location.protocol+"//"+window.location.host+"/view"+c.formURL:window.location.host.split(".").length<3?c.actualFormURL=window.location.protocol+"//"+c.myform.admin.username+"."+window.location.host+c.formURL:c.actualFormURL=window.location.protocol+"//"+c.myform.admin.username+"."+window.location.host.split(".").slice(1,3).join(".")+c.formURL:c.actualFormURL=window.location.protocol+"//"+window.location.host+c.formURL;var l=c.refreshFrame=function(){document.getElementById("iframe")&&document.getElementById("iframe").contentWindow.location.reload()};c.tabData=[{heading:k("translate")("CONFIGURE_TAB"),templateName:"configure"}],c.designTabActive=!1,c.deactivateDesignTab=function(){c.designTabActive=!1},c.activateDesignTab=function(){c.designTabActive=!0},c.setForm=function(a){c.myform=a},a.resetForm=function(){c.myform=f.get({formId:d.formId})},c.openDeleteModal=function(){c.deleteModal=i.open({animation:c.animationsEnabled,templateUrl:"formDeleteModal.html",controller:"AdminFormController",resolve:{myForm:function(){return c.myform}}}),c.deleteModal.result.then(function(a){c.selected=a})},c.cancelDeleteModal=function(){c.deleteModal&&c.deleteModal.dismiss("cancel")},c.removeCurrentForm=function(){if(c.deleteModal&&c.deleteModal.opened){c.deleteModal.close();var a=c.myform._id;if(!a)throw new Error("Error - removeCurrentForm(): $scope.myform._id does not exist");h["delete"]("/forms/"+a).then(function(a){e.go("listForms",{},{reload:!0})},function(a){console.error(a)})}},c.updateDesign=function(a,b,d,e){c.update(a,b,d,e,function(){l()})},c.update=a.update=function(b,d,e,f,g){var i=!0;if(b||(i=!a.saveInProgress),i){var j=null;if(b||(a.saveInProgress=!0),e){for(var k=new RegExp("^[0-9a-fA-F]{24}$"),l=0;l]+/i,test:function(a){return!this.regExp.test(a)}},b.findAll=function(){e.query(function(a){b.myforms=a})},b.openDeleteModal=function(a){b.deleteModal=h.open({animation:b.animationsEnabled,templateUrl:"deleteModalListForms.html",controller:["$uibModalInstance","items","$scope",function(a,b,c){c.content=b,c.cancel=c.cancelDeleteModal,c.deleteForm=function(){c.$parent.removeForm(b.formIndex)}}],resolve:{items:function(){return{currFormTitle:b.myforms[a].title,formIndex:a}}}})},b.cancelDeleteModal=function(){b.deleteModal&&b.deleteModal.dismiss("cancel")},b.openCreateModal=function(){b.showCreateModal||(b.showCreateModal=!0)},b.closeCreateModal=function(){b.showCreateModal&&(b.showCreateModal=!1)},b.setForm=function(a){b.myform=a},b.goToWithId=function(a,b){d.go(a,{formId:b},{reload:!0})},b.duplicateForm=function(a){var c=_.cloneDeep(b.myforms[a]);delete c._id,g.post("/forms",{form:c}).success(function(c,d,e){b.myforms.splice(a+1,0,c)}).error(function(a){console.error(a),null===a&&(b.error=a.data.message)})},b.createNewForm=function(){var a={};a.title=b.forms.createForm.title.$modelValue,a.language=b.forms.createForm.language.$modelValue,b.forms.createForm.$valid&&b.forms.createForm.$dirty&&g.post("/forms",{form:a}).success(function(a,c,d){b.goToWithId("viewForm.create",a._id+"")}).error(function(a){console.error(a),b.error=a.data.message})},b.removeForm=function(a){if(a>=b.myforms.length||a<0)throw new Error("Error: form_index in removeForm() must be between 0 and "+b.myforms.length-1);g["delete"]("/forms/"+b.myforms[a]._id).success(function(c,d,e){b.myforms.splice(a,1),b.cancelDeleteModal()}).error(function(a){console.error(a)})}}]),angular.module("forms").directive("configureFormDirective",["$rootScope","$http","Upload","CurrentForm",function(a,b,c,d){ +return{templateUrl:"modules/forms/admin/views/directiveViews/form/configure-form.client.view.html",restrict:"E",scope:{myform:"=",user:"=",pdfFields:"@",formFields:"@"},controller:["$scope",function(b){b.log="",b.languages=a.languages,b.resetForm=a.resetForm,b.update=a.update}]}}]),angular.module("forms").directive("editFormDirective",["$rootScope","FormFields","$uibModal",function(a,b,c){return{templateUrl:"modules/forms/admin/views/directiveViews/form/edit-form.client.view.html",restrict:"E",transclude:!0,scope:{myform:"="},controller:["$scope",function(d){var e;d.sortableOptions={appendTo:".dropzone",forceHelperSize:!0,forcePlaceholderSize:!0,update:function(a,b){d.update(!1,d.myform,!0,!1,function(a){})}},d.openEditModal=function(a){d.editFieldModal=c.open({animation:!0,templateUrl:"editFieldModal.html",windowClass:"edit-modal-window",controller:["$uibModalInstance","$scope",function(b,c){c.field=a,c.showLogicJump=!1,c.showAddOptions=function(a){return"dropdown"===a.fieldType||"checkbox"===a.fieldType||"radio"===a.fieldType},c.validShapes=["Heart","Star","thumbs-up","thumbs-down","Circle","Square","Check Circle","Smile Outlined","Hourglass","bell","Paper Plane","Comment","Trash"],c.addOption=function(a){if("checkbox"===a.fieldType||"dropdown"===a.fieldType||"radio"===a.fieldType){a.fieldOptions||(a.fieldOptions=[]);var b=a.fieldOptions.length+1,c={option_id:Math.floor(1e5*Math.random()),option_title:"Option "+b,option_value:"Option "+b};a.fieldOptions.push(c)}},c.deleteOption=function(a,b){if("checkbox"===a.fieldType||"dropdown"===a.fieldType||"radio"===a.fieldType)for(var c=0;c',restrict:"E",scope:{typeName:"@"},controller:["$scope",function(a){var b={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",statement:"fa fa-quote-left",yes_no:"fa fa-toggle-on",number:"fa fa-slack"};a.typeIcon=b[a.typeName]}]}});var __indexOf=[].indexOf||function(a){for(var b=0,c=this.length;b=0&&(c=c+b+".html"),d.get(c)};return{template:"
{{field.title}}
",restrict:"E",scope:{field:"=",required:"&",design:"=",index:"=",forms:"="},link:function(a,d){c.chooseDefaultOption=a.chooseDefaultOption=function(b){"yes_no"===b?a.field.fieldValue="true":"rating"===b?a.field.fieldValue=0:"radio"===a.field.fieldType?a.field.fieldValue=a.field.fieldOptions[0].option_value:"legal"===b&&(a.field.fieldValue="true",c.nextField())},a.nextField=c.nextField,a.setActiveField=c.setActiveField,"date"===a.field.fieldType&&(a.dateOptions={changeYear:!0,changeMonth:!0,altFormat:"mm/dd/yyyy",yearRange:"1900:-0",defaultDate:0});var e=a.field.fieldType;if("number"===a.field.fieldType||"textfield"===a.field.fieldType||"email"===a.field.fieldType||"link"===a.field.fieldType){switch(a.field.fieldType){case"textfield":a.input_type="text";break;case"email":a.input_type="email",a.placeholder="joesmith@example.com";break;case"number":a.input_type="text",a.validateRegex=/^-?\d+$/;break;default:a.input_type="url",a.placeholder="http://example.com"}e="textfield"}var g=f(e);d.html(g).show();b(d.contents())(a)}}}]),angular.module("view-form").directive("onEnterKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode,e=!1;null!==d.onEnterKeyDisabled&&(e=d.onEnterKeyDisabled),13!==c||b.shiftKey||e||(b.preventDefault(),a.$apply(function(){a.$eval(d.onEnterKey)}))})}}}]).directive("onTabKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keyup keypress",function(b){var c=b.which||b.keyCode;9!==c||b.shiftKey||(b.preventDefault(),a.$apply(function(){a.$eval(d.onTabKey)}))})}}}]).directive("onEnterOrTabKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode;13!==c&&9!==c||b.shiftKey||(b.preventDefault(),a.$apply(function(){a.$eval(d.onEnterOrTabKey)}))})}}}]).directive("onTabAndShiftKey",["$rootScope",function(a){return{restrict:"A",link:function(b,c,d){c.bind("keydown keypress",function(b){var c=b.which||b.keyCode;9===c&&b.shiftKey&&(console.log("onTabAndShiftKey"),b.preventDefault(),a.$apply(function(){a.$eval(d.onTabAndShiftKey)}))})}}}]),angular.module("view-form").directive("onFinishRender",["$rootScope","$timeout",function(a,b){return{restrict:"A",link:function(b,c,d){if(c.attr("ng-repeat")||c.attr("data-ng-repeat")){var e=d.onFinishRender||"ngRepeat";b.$first&&!b.$last?b.$evalAsync(function(){a.$broadcast(e+" Started")}):b.$last&&b.$evalAsync(function(){a.$broadcast(e+" Finished")})}}}}]),jsep.addBinaryOp("contains",10),jsep.addBinaryOp("!contains",10),jsep.addBinaryOp("begins",10),jsep.addBinaryOp("!begins",10),jsep.addBinaryOp("ends",10),jsep.addBinaryOp("!ends",10),angular.module("view-form").directive("submitFormDirective",["$http","TimeCounter","$filter","$rootScope","SendVisitorData","$translate","$timeout",function(a,b,c,d,e,f,g){return{templateUrl:"form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html",restrict:"E",scope:{myform:"=",ispreview:"="},controller:["$document","$window","$scope",function(f,g,h){var i=!1,j="submit_field";h.forms={},h.ispreview&&b.restartClock();var k=h.myform.visible_form_fields.filter(function(a){return"statement"!==a.fieldType}).length,l=c("formValidity")(h.myform);h.translateAdvancementData={done:l,total:k,answers_not_completed:k-l},h.reloadForm=function(){h.myform.submitted=!1,h.myform.form_fields=_.chain(h.myform.visible_form_fields).map(function(a){return a.fieldValue="",a}).value(),h.loading=!1,h.error="",h.selected={_id:"",index:0},h.setActiveField(h.myform.visible_form_fields[0]._id,0,!1),b.restartClock()};var m=function(a){var b=a.logicJump;if(b.expressionString&&b.valueB&&a.fieldValue){var c,d,e=jsep(b.expressionString);if("field"===e.left.name?(c=a.fieldValue,d=b.valueB):(c=b.valueB,d=a.fieldValue),"number"===a.fieldType||"scale"===a.fieldType||"rating"===a.fieldType)switch(e.operator){case"==":return parseInt(c)===parseInt(d);case"!==":return parseInt(c)!==parseInt(d);case">":return parseInt(c)>parseInt(d);case">=":return parseInt(c)>parseInt(d);case"<":return parseInt(c)-1;case"!contains":return!(c.indexOf(d)>-1);case"begins":return c.startsWith(d);case"!begins":return!c.startsWith(d);case"ends":return c.endsWith(d);case"!ends":return c.endsWith(d);default:return!1}}},n=function(){if(null===h.selected)throw console.error("current active field is null"),new Error("current active field is null");return h.selected._id===j?h.myform.form_fields.length-1:h.selected.index};h.isActiveField=function(a){return h.selected._id===a._id},h.setActiveField=d.setActiveField=function(a,b,d){if(null!==h.selected&&(a||null!==b)){if(a){if(null===b){b=h.myform.visible_form_fields.length;for(var e=0;e .field-directive:nth-of-type("+String(h.myform.visible_form_fields.length-1)+")"),m=$(l).height(),n=k-g-1.2*m,o=.9;h.selected.index===h.myform.visible_form_fields.length?bn?(a=h.selected.index+1,h.setActiveField(j,a,!1)):ef*o&&(a=h.selected.index-1,h.setActiveField(null,a,!1))}h.$apply()},d.nextField=h.nextField=function(){if(h.selected&&h.selected.index>-1)if(h.selected._id!==j){var a=h.myform.visible_form_fields[h.selected.index];a.logicJump&&a.logicJump.jumpTo&&m(a)?h.setActiveField(a.logicJump.jumpTo,null,!0):h.selected.index0&&h.setActiveField(null,a,!0)},d.goToInvalid=h.goToInvalid=function(){var a=$(".row.field-directive .ng-invalid.focusOn, .row.field-directive .ng-untouched.focusOn:not(.ng-valid)").first().parents(".row.field-directive").first().attr("data-id");h.setActiveField(a,null,!0)},h.exitStartPage=function(){h.myform.startPage.showStart=!1,h.myform.visible_form_fields.length>0&&(h.selected._id=h.myform.visible_form_fields[0]._id)};var o=function(){var a=new MobileDetect(window.navigator.userAgent),b="other";return a.tablet()?b="tablet":a.mobile()?b="mobile":a.is("bot")||(b="desktop"),{type:b,name:window.navigator.platform}},p=function(){$.ajaxSetup({async:!1});var a=$.getJSON("https://freegeoip.net/json/").responseJSON;return $.ajaxSetup({async:!0}),a&&a.ip||(a={ip:"Adblocker"}),{ipAddr:a.ip,geoLocation:{City:a.city,Country:a.country_name}}};d.submitForm=h.submitForm=function(){if(h.forms.myForm.$invalid)return void h.goToInvalid();var d=b.stopClock();h.loading=!0;var f=_.cloneDeep(h.myform),g=o();f.device=g;var i=p();f.ipAddr=i.ipAddr,f.geoLocation=i.geoLocation,f.timeElapsed=d,f.percentageComplete=c("formValidity")(h.myform)/h.myform.visible_form_fields.length*100,delete f.endPage,delete f.isLive,delete f.provider,delete f.startPage,delete f.visible_form_fields,delete f.analytics,delete f.design,delete f.submissions,delete f.submitted;for(var j=0;j .list-group-item-heading { color: #34628a; diff --git a/public/modules/forms/admin/controllers/list-forms.client.controller.js b/public/modules/forms/admin/controllers/list-forms.client.controller.js index b3c7d78f..476a9a2a 100644 --- a/public/modules/forms/admin/controllers/list-forms.client.controller.js +++ b/public/modules/forms/admin/controllers/list-forms.client.controller.js @@ -1,12 +1,13 @@ 'use strict'; // Forms controller -angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope', '$stateParams', '$state', 'GetForms', 'CurrentForm', '$http', '$uibModal', - function($rootScope, $scope, $stateParams, $state, GetForms, CurrentForm, $http, $uibModal) { +angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope', '$stateParams', '$state', 'GetForms', 'CurrentForm', '$http', '$uibModal', 'myForms', + function($rootScope, $scope, $stateParams, $state, GetForms, CurrentForm, $http, $uibModal, myForms) { $scope = $rootScope; $scope.forms = {}; $scope.showCreateModal = false; + $scope.myforms = myForms $rootScope.languageRegExp = { regExp: /[@!#$%^&*()\-+={}\[\]|\\/'";:`.,~№?<>]+/i, @@ -49,13 +50,6 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope } }; - // Return all user's Forms - $scope.findAll = function() { - GetForms.query(function(_forms){ - $scope.myforms = _forms; - }); - }; - //Modal functions $scope.openCreateModal = function(){ if(!$scope.showCreateModal){ diff --git a/public/modules/forms/admin/directives/edit-form.client.directive.js b/public/modules/forms/admin/directives/edit-form.client.directive.js index e1992192..f06e0a57 100644 --- a/public/modules/forms/admin/directives/edit-form.client.directive.js +++ b/public/modules/forms/admin/directives/edit-form.client.directive.js @@ -32,7 +32,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField /* ** EditModal Functions */ - $scope.openEditModal = function(curr_field){ + $scope.openEditModal = function(curr_field, isEdit, field_index){ $scope.editFieldModal = $uibModal.open({ animation: true, templateUrl: 'editFieldModal.html', @@ -41,6 +41,8 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField $scope.field = curr_field; $scope.showLogicJump = false; + $scope.isEdit = isEdit; + // decides whether field options block will be shown (true for dropdown and radio fields) $scope.showAddOptions = function (field){ if(field.fieldType === 'dropdown' || field.fieldType === 'checkbox' || field.fieldType === 'radio'){ @@ -67,13 +69,13 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField ]; // add new option to the field - $scope.addOption = function(currField){ - if(currField.fieldType === 'checkbox' || currField.fieldType === 'dropdown' || currField.fieldType === 'radio'){ - if(!currField.fieldOptions){ - currField.fieldOptions = []; + $scope.addOption = function(){ + if($scope.field.fieldType === 'checkbox' || $scope.field.fieldType === 'dropdown' || $scope.field.fieldType === 'radio'){ + if(!$scope.field.fieldOptions){ + $scope.field.fieldOptions = []; } - var lastOptionID = currField.fieldOptions.length+1; + var lastOptionID = $scope.field.fieldOptions.length+1; // new option's id @@ -84,17 +86,17 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField }; // put new option into fieldOptions array - currField.fieldOptions.push(newOption); + $scope.field.fieldOptions.push(newOption); } }; // delete particular option - $scope.deleteOption = function (currField, option){ - if(currField.fieldType === 'checkbox' || currField.fieldType === 'dropdown' || currField.fieldType === 'radio'){ - for(var i = 0; i < currField.fieldOptions.length; i++){ - if(currField.fieldOptions[i].option_id === option.option_id){ + $scope.deleteOption = function (option){ + if($scope.field.fieldType === 'checkbox' || $scope.field.fieldType === 'dropdown' || $scope.field.fieldType === 'radio'){ + for(var i = 0; i < $scope.field.fieldOptions.length; i++){ + if($scope.field.fieldOptions[i].option_id === option.option_id){ - currField.fieldOptions.splice(i, 1); + $scope.field.fieldOptions.splice(i, 1); break; } } @@ -119,8 +121,8 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField }; // decides whether field options block will be shown (true for dropdown and radio fields) - $scope.showRatingOptions = function (field){ - if(field.fieldType === 'rating'){ + $scope.showRatingOptions = function (){ + if($scope.field.fieldType === 'rating'){ return true; } else { return false; @@ -128,11 +130,16 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField }; $scope.saveField = function(){ + if($scope.isEdit){ + $scope.myform.form_fields[field_index] = $scope.field; + } else { + $scope.myform.form_fields.push(curr_field); + } - $scope.myform.form_fields.push(curr_field); $scope.$parent.update(false, $scope.$parent.myform, true, true, function(){ $uibModalInstance.close(); }); + }; $scope.cancel = function(){ $uibModalInstance.close(); @@ -268,7 +275,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField ** Field CRUD Methods */ // Add a new field - $scope.addNewField = function(modifyForm, fieldType){ + $scope.addNewField = function(fieldType){ // increment lastAddedID counter $scope.addField.lastAddedID++; var fieldTitle = fieldType; @@ -307,12 +314,7 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField }); } - if(modifyForm){ - //Add newField to form_fields array - $scope.myform.form_fields.push(newField); - } - - $scope.openEditModal(newField); + $scope.openEditModal(newField, false, $scope.myform.form_fields.length); }; // decides whether field options block will be shown (true for dropdown and radio fields) diff --git a/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js b/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js index 1e61b889..15f5ead9 100644 --- a/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js +++ b/public/modules/forms/admin/directives/edit-submissions-form.client.directive.js @@ -16,27 +16,10 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', rows: [] }; - var submissions = $scope.myform.submissions || []; - - //Iterate through form's submissions - for(var i = 0; i < submissions.length; i++){ - for(var x = 0; x < submissions[i].form_fields.length; x++){ - if(submissions[i].form_fields[x].fieldType === 'dropdown'){ - submissions[i].form_fields[x].fieldValue = submissions[i].form_fields[x].fieldValue.option_value; - } - //var oldValue = submissions[i].form_fields[x].fieldValue || ''; - //submissions[i].form_fields[x] = _.merge(defaultFormFields, submissions[i].form_fields); - //submissions[i].form_fields[x].fieldValue = oldValue; - } - submissions[i].selected = false; - } - - $scope.table.rows = submissions; - var initController = function(){ $http({ method: 'GET', - url: '/someUrl' + url: '/forms'+$scope.myform._id+'/submissions' }).then(function successCallback(response) { var defaultFormFields = _.cloneDeep($scope.myform.form_fields); @@ -59,6 +42,8 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', }); }; + initController(); + /* ** Analytics Functions diff --git a/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html b/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html index f7470c81..a8eb3395 100644 --- a/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html +++ b/public/modules/forms/admin/views/directiveViews/form/edit-form.client.view.html @@ -146,8 +146,6 @@ - - @@ -291,8 +289,6 @@ - - @@ -312,34 +308,34 @@

-
+
{{ 'QUESTION_DESCRIPTION' | translate }}
-

-
+

+
{{ 'OPTIONS' | translate }}
-
-

-
+

+
{{ 'NUM_OF_STEPS' | translate }}