fixed field preview
This commit is contained in:
parent
55b6a37ad6
commit
98c6b0cbe2
|
@ -198,7 +198,6 @@ exports.update = function(req, res) {
|
|||
var form = req.form;
|
||||
|
||||
if (req.body.changes) {
|
||||
console.log(req.body.changes);
|
||||
var formChanges = req.body.changes;
|
||||
|
||||
formChanges.forEach(function (change) {
|
||||
|
@ -207,8 +206,14 @@ exports.update = function(req, res) {
|
|||
} else {
|
||||
//Unless we have 'admin' privileges, updating form admin is disabled
|
||||
if(req.body.form && req.user.roles.indexOf('admin') === -1) {
|
||||
req.body.form.admin = null;
|
||||
delete req.body.form.admin;
|
||||
}
|
||||
|
||||
if(form.analytics == null){
|
||||
form.analytics.visitors = [];
|
||||
form.analytics.gaCode = '';
|
||||
}
|
||||
|
||||
//Do this so we can create duplicate fields
|
||||
var checkForValidId = new RegExp('^[0-9a-fA-F]{24}$');
|
||||
for(var i=0; i<req.body.form.form_fields.length; i++){
|
||||
|
@ -218,6 +223,7 @@ exports.update = function(req, res) {
|
|||
}
|
||||
}
|
||||
form = _.extend(form, req.body.form);
|
||||
console.log(form);
|
||||
}
|
||||
|
||||
form.save(function(err, form) {
|
||||
|
|
|
@ -179,7 +179,11 @@ var FormSchema = new Schema({
|
|||
** In-Form Analytics Virtual Attributes
|
||||
*/
|
||||
FormSchema.virtual('analytics.views').get(function () {
|
||||
return this.analytics.visitors.length;
|
||||
if(this.analytics && this.analytics.visitors && this.analytics.visitors.length > 0){
|
||||
return this.analytics.visitors.length;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
FormSchema.virtual('analytics.submissions').get(function () {
|
||||
|
@ -187,7 +191,11 @@ FormSchema.virtual('analytics.submissions').get(function () {
|
|||
});
|
||||
|
||||
FormSchema.virtual('analytics.conversionRate').get(function () {
|
||||
return this.submissions.length/this.analytics.visitors.length*100;
|
||||
if(this.analytics && this.analytics.visitors && this.analytics.visitors.length > 0){
|
||||
return this.submissions.length/this.analytics.visitors.length*100;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
FormSchema.virtual('analytics.fields').get(function () {
|
||||
|
|
153
public/dist/application.js
vendored
153
public/dist/application.js
vendored
|
@ -130,7 +130,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
$templateCache.put("modules/forms/admin/views/directiveViews/cgBusy/update-form-message-TypeB.html",
|
||||
"<div><div style=\"text-align: center; font-size: 20px;position: fixed; bottom: 0; right: 55px; background-color: gray; color: white; padding: 5px 15px 5px 10px; z-index: 10\">{{$message}}</div></div>");
|
||||
$templateCache.put("modules/forms/admin/views/directiveViews/form/configure-form.client.view.html",
|
||||
"<div class=\"config-form container\"><div class=row><div class=\"col-sm-offset-2 col-sm-4\"><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_NAME' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.title value={{myform.title}} style=\"width: 100%\" ng-minlength=4 ng-pattern=\"/^[a-zA-Z0-9 \\-.]*$/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_STATUS' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.isLive ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'PUBLIC' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.isLive ng-required=\"true\"> <span>{{ 'PRIVATE' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"col-sm-12 field-title\">Language</div><div class=\"col-sm-12 field-input\"><select ng-model=myform.language><option ng-repeat=\"language in languages\" ng-selected=\"language == myform.language\" value={{language}}>{{language}}</option></select><span class=required-error ng-show=\"field.required && !field.fieldValue\">* required</span></div></div></div><div class=col-sm-4><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'GA_TRACKING_CODE' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.analytics.gaCode value={{myform.analytics.gaCode}} style=\"width: 100%\" ng-minlength=4 placeholder=UA-XXXXX-Y ng-pattern=\"/\\bUA-\\d{4,10}-\\d{1,4}\\b/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'DISPLAY_FOOTER' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>Display Start Page?</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.startPage.showStart ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.startPage.showStart ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div></div></div><div class=row><div class=\"col-sm-offset-4 col-sm-2\"><button class=\"btn btn-signup btn-rounded\" type=button ng-click=\"update(false, null)\"><i class=\"icon-arrow-left icon-white\"></i>{{ 'SAVE_CHANGES' | translate }}</button></div><div class=col-sm-1><button class=\"btn btn-secondary btn-rounded\" type=button ng-click=resetForm()><i class=\"icon-eye-open icon-white\"></i>{{ 'CANCEL' | translate }}</button></div></div></div>");
|
||||
"<div class=\"config-form container\"><div class=row><div class=\"col-sm-offset-2 col-sm-4\"><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_NAME' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.title value={{myform.title}} style=\"width: 100%\" ng-minlength=4 ng-pattern=\"/^[a-zA-Z0-9 \\-.]*$/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_STATUS' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.isLive ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'PUBLIC' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.isLive ng-required=\"true\"> <span>{{ 'PRIVATE' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"col-sm-12 field-title\">Language</div><div class=\"col-sm-12 field-input\"><select ng-model=myform.language><option ng-repeat=\"language in languages\" ng-selected=\"language == myform.language\" value={{language}}>{{language}}</option></select><span class=required-error ng-show=\"field.required && !field.fieldValue\">* required</span></div></div></div><div class=col-sm-4><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'GA_TRACKING_CODE' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.analytics.gaCode value={{myform.analytics.gaCode}} style=\"width: 100%\" ng-minlength=4 placeholder=UA-XXXXX-Y ng-pattern=\"/\\bUA-\\d{4,10}-\\d{1,4}\\b/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'DISPLAY_FOOTER' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>Display Start Page?</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.startPage.showStart ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.startPage.showStart ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div></div></div><div class=row><div class=\"col-sm-offset-4 col-sm-2\"><button class=\"btn btn-signup btn-rounded\" type=button ng-click=\"update(false, myform, false, false, null)\"><i class=\"icon-arrow-left icon-white\"></i>{{ 'SAVE_CHANGES' | translate }}</button></div><div class=col-sm-1><button class=\"btn btn-secondary btn-rounded\" type=button ng-click=resetForm()><i class=\"icon-eye-open icon-white\"></i>{{ 'CANCEL' | translate }}</button></div></div></div>");
|
||||
$templateCache.put("modules/forms/admin/views/directiveViews/form/edit-form.client.view.html",
|
||||
"<form class=\"row container\" name=editForm><script type=text/ng-template id=editFieldModal.html class=edit-field-modal><div class=\"modal-body\">\n" +
|
||||
" <div class=\"row\">\n" +
|
||||
|
@ -211,17 +211,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <a></a>\n" +
|
||||
" </span>\n" +
|
||||
" </label>\n" +
|
||||
" <!--\n" +
|
||||
" <label class=\"btn col-xs-5\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"true\" ng-model=\"field.required\" name=\"required{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'YES' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
"\n" +
|
||||
" <label class=\"btn col-xs-5 col-xs-offset-1\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"false\" ng-model=\"field.required\" name=\"required{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'NO' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
" -->\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -236,19 +225,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <a></a>\n" +
|
||||
" </span>\n" +
|
||||
" </label>\n" +
|
||||
" <!--\n" +
|
||||
" <label class=\"btn col-xs-5\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"true\"\n" +
|
||||
" ng-model=\"field.disabled\" name=\"disabled{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'YES' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
"\n" +
|
||||
" <label class=\"btn col-xs-5 col-xs-offset-1\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"false\"\n" +
|
||||
" ng-model=\"field.disabled\" name=\"disabled{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'NO' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
" -->\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -256,7 +232,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <div class=\"col-md-4 col-xs-12 field-input\">{{ 'LOGIC_JUMP' | translate }}</div>\n" +
|
||||
" <div class=\"col-md-8 col-xs-12 field-input\">\n" +
|
||||
" <label class=\"switch-light switch-holo\" onclick=\"\">\n" +
|
||||
" <button ng-click=\"showLogicJump = !showLogicJump\">Click</button>\n" +
|
||||
" <input type=\"checkbox\" ng-model=\"showLogicJump\">\n" +
|
||||
" <span>\n" +
|
||||
" <span> {{ 'OFF' | translate }}</span>\n" +
|
||||
|
@ -266,9 +241,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </label>\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
" <span>\n" +
|
||||
" showLogicJump: {{showLogicJump}}\n" +
|
||||
" </span>\n" +
|
||||
" <div class=\"row question\" ng-if=\"!!showLogicJump\">\n" +
|
||||
" <div class=\"col-md-4 col-sm-12\">\n" +
|
||||
"\n" +
|
||||
|
@ -335,7 +307,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
" <div class=\"col-md-2\">\n" +
|
||||
"\n" +
|
||||
" <b>Jumps to </b>\n" +
|
||||
" <b>then jump to </b>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"col-md-10\">\n" +
|
||||
" <select style=\"width:100%\" ng-model=\"field.logicJump.jumpTo\"\n" +
|
||||
|
@ -349,7 +321,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"modal-footer row\">\n" +
|
||||
" <button type=\"submit\" ng-click=\"update(false, null)\" class=\"btn btn-signup btn-rounded\">\n" +
|
||||
" <button type=\"submit\" ng-click=\"saveField(false, $parent.myform, false, true)\" class=\"btn btn-signup btn-rounded\">\n" +
|
||||
" {{ 'SAVE_FIELD' | translate }}\n" +
|
||||
" </button>\n" +
|
||||
"\n" +
|
||||
|
@ -360,8 +332,10 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
"\n" +
|
||||
" <div class=\"preview-field-panel col-md-6 hidden-sm hidden-xs container\">\n" +
|
||||
" <field-directive field=\"field\" validate=\"false\" class=\"preview-field\">\n" +
|
||||
" </field-directive>\n" +
|
||||
" <form>\n" +
|
||||
" <field-directive field=\"field\" validate=\"false\" class=\"preview-field\">\n" +
|
||||
" </field-directive>\n" +
|
||||
" </form>\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -468,6 +442,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
ON: 'ON',
|
||||
OFF: 'OFF',
|
||||
REQUIRED_FIELD: 'Required',
|
||||
LOGIC_JUMP: 'Logic Jump',
|
||||
|
||||
//Admin Form View
|
||||
ARE_YOU_SURE: 'Are you ABSOLUTELY sure?',
|
||||
|
@ -2073,7 +2048,7 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
};
|
||||
|
||||
// Update existing Form
|
||||
$scope.update = $rootScope.update = function(updateImmediately, diffChanges, refreshAfterUpdate, cb){
|
||||
$scope.update = $rootScope.update = function(updateImmediately, data, isDiffed, refreshAfterUpdate, cb){
|
||||
refreshFrame();
|
||||
|
||||
var continueUpdate = true;
|
||||
|
@ -2082,28 +2057,58 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
}
|
||||
|
||||
//Update form **if we are not currently updating** or if **shouldUpdateNow flag is set**
|
||||
if(continueUpdate){
|
||||
var err = null;
|
||||
if(continueUpdate) {
|
||||
var err = null;
|
||||
|
||||
if(!updateImmediately){ $rootScope.saveInProgress = true; }
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = true;
|
||||
}
|
||||
|
||||
$scope.updatePromise = $http.put('/forms/'+$scope.myform._id, { changes: diffChanges })
|
||||
.then(function(response){
|
||||
if (isDiffed) {
|
||||
$scope.updatePromise = $http.put('/forms/' + $scope.myform._id, {changes: data})
|
||||
.then(function (response) {
|
||||
|
||||
if(refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
// console.log(response.data);
|
||||
}).catch(function(response){
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function() {
|
||||
// console.log('finished updating');
|
||||
if(!updateImmediately){$rootScope.saveInProgress = false; }
|
||||
if (refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
// console.log(response.data);
|
||||
}).catch(function (response) {
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function () {
|
||||
// console.log('finished updating');
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = false;
|
||||
}
|
||||
|
||||
if( (typeof cb) === 'function'){
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
if ((typeof cb) === 'function') {
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var dataToSend = data;
|
||||
delete dataToSend.analytics.visitors;
|
||||
delete dataToSend.submissions;
|
||||
|
||||
$scope.updatePromise = $http.put('/forms/' + $scope.myform._id, {form: dataToSend})
|
||||
.then(function (response) {
|
||||
|
||||
if (refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
|
||||
}).catch(function (response) {
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function () {
|
||||
// console.log('finished updating');
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = false;
|
||||
}
|
||||
|
||||
if ((typeof cb) === 'function') {
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -2443,32 +2448,25 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
$scope.field = curr_field;
|
||||
$scope.showLogicJump = false;
|
||||
|
||||
$scope.$watch(function(oldValue, newValue){
|
||||
console.log(newValue);
|
||||
});
|
||||
$scope.saveField = function(){
|
||||
curr_field = $scope.field;
|
||||
|
||||
$scope.$parent.update(false, $scope.$parent.myform, false, true, function(){
|
||||
$uibModalInstance.close();
|
||||
});
|
||||
};
|
||||
$scope.cancel = function(){
|
||||
$uibModalInstance.close();
|
||||
};
|
||||
}]
|
||||
});
|
||||
$scope.editFieldModal.result.then(function (selectedItem) {
|
||||
$scope.selected = selectedItem;
|
||||
}, function () {
|
||||
console.log('Edit Modal dismissed at: ' + new Date());
|
||||
});
|
||||
};
|
||||
|
||||
$scope.cancelEditModal = function(){
|
||||
if($scope.editModal){
|
||||
$scope.editFieldModal.dismiss('cancel');
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
** Setup Angular-Input-Star Shape Dropdown
|
||||
*/
|
||||
//Populate Name to Font-awesomeName Conversion Map
|
||||
$scope.select2FA = {
|
||||
$scope.select2FA = {
|
||||
'Heart': 'Heart',
|
||||
'Star': 'Star',
|
||||
'thumbs-up': 'Thumbs Up',
|
||||
|
@ -2502,24 +2500,6 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
//Populate local scope with rootScope methods/variables
|
||||
$scope.update = $rootScope.update;
|
||||
|
||||
// LOGIC JUMP METHODS
|
||||
$scope.removeLogicJump = function (field_index) {
|
||||
$scope.myform.form_fields[field_index].logicJump.fieldA = null;
|
||||
$scope.myform.form_fields[field_index].logicJump.valueB = null;
|
||||
};
|
||||
|
||||
$scope.addNewLogicJump = function (field_index) {
|
||||
var form_fields = $scope.myform.form_fields;
|
||||
var currField = form_fields[field_index];
|
||||
if (form_fields.length > 1 && currField._id) {
|
||||
|
||||
var newLogicJump = {
|
||||
fieldA: currField._id
|
||||
};
|
||||
currField.logicJump = newLogicJump;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
** FormFields (ui-sortable) drag-and-drop configuration
|
||||
*/
|
||||
|
@ -2575,7 +2555,8 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
//Add newField to form_fields array
|
||||
$scope.myform.form_fields.push(newField);
|
||||
}
|
||||
return newField;
|
||||
|
||||
$scope.openEditModal(newField);
|
||||
};
|
||||
|
||||
// Delete particular field on button click
|
||||
|
|
2
public/dist/application.min.css
vendored
2
public/dist/application.min.css
vendored
File diff suppressed because one or more lines are too long
6
public/dist/application.min.js
vendored
6
public/dist/application.min.js
vendored
File diff suppressed because one or more lines are too long
44
public/dist/form-application.js
vendored
44
public/dist/form-application.js
vendored
|
@ -130,7 +130,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
$templateCache.put("modules/forms/admin/views/directiveViews/cgBusy/update-form-message-TypeB.html",
|
||||
"<div><div style=\"text-align: center; font-size: 20px;position: fixed; bottom: 0; right: 55px; background-color: gray; color: white; padding: 5px 15px 5px 10px; z-index: 10\">{{$message}}</div></div>");
|
||||
$templateCache.put("modules/forms/admin/views/directiveViews/form/configure-form.client.view.html",
|
||||
"<div class=\"config-form container\"><div class=row><div class=\"col-sm-offset-2 col-sm-4\"><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_NAME' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.title value={{myform.title}} style=\"width: 100%\" ng-minlength=4 ng-pattern=\"/^[a-zA-Z0-9 \\-.]*$/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_STATUS' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.isLive ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'PUBLIC' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.isLive ng-required=\"true\"> <span>{{ 'PRIVATE' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"col-sm-12 field-title\">Language</div><div class=\"col-sm-12 field-input\"><select ng-model=myform.language><option ng-repeat=\"language in languages\" ng-selected=\"language == myform.language\" value={{language}}>{{language}}</option></select><span class=required-error ng-show=\"field.required && !field.fieldValue\">* required</span></div></div></div><div class=col-sm-4><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'GA_TRACKING_CODE' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.analytics.gaCode value={{myform.analytics.gaCode}} style=\"width: 100%\" ng-minlength=4 placeholder=UA-XXXXX-Y ng-pattern=\"/\\bUA-\\d{4,10}-\\d{1,4}\\b/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'DISPLAY_FOOTER' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>Display Start Page?</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.startPage.showStart ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.startPage.showStart ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div></div></div><div class=row><div class=\"col-sm-offset-4 col-sm-2\"><button class=\"btn btn-signup btn-rounded\" type=button ng-click=\"update(false, null)\"><i class=\"icon-arrow-left icon-white\"></i>{{ 'SAVE_CHANGES' | translate }}</button></div><div class=col-sm-1><button class=\"btn btn-secondary btn-rounded\" type=button ng-click=resetForm()><i class=\"icon-eye-open icon-white\"></i>{{ 'CANCEL' | translate }}</button></div></div></div>");
|
||||
"<div class=\"config-form container\"><div class=row><div class=\"col-sm-offset-2 col-sm-4\"><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_NAME' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.title value={{myform.title}} style=\"width: 100%\" ng-minlength=4 ng-pattern=\"/^[a-zA-Z0-9 \\-.]*$/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'FORM_STATUS' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.isLive ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'PUBLIC' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.isLive ng-required=\"true\"> <span>{{ 'PRIVATE' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"col-sm-12 field-title\">Language</div><div class=\"col-sm-12 field-input\"><select ng-model=myform.language><option ng-repeat=\"language in languages\" ng-selected=\"language == myform.language\" value={{language}}>{{language}}</option></select><span class=required-error ng-show=\"field.required && !field.fieldValue\">* required</span></div></div></div><div class=col-sm-4><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'GA_TRACKING_CODE' | translate }}</h5></div><div class=col-sm-12><input class=form-control ng-model=myform.analytics.gaCode value={{myform.analytics.gaCode}} style=\"width: 100%\" ng-minlength=4 placeholder=UA-XXXXX-Y ng-pattern=\"/\\bUA-\\d{4,10}-\\d{1,4}\\b/\"></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>{{ 'DISPLAY_FOOTER' | translate }}</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.hideFooter ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div><div class=\"row field\"><div class=\"field-title col-sm-12\"><h5>Display Start Page?</h5></div><div class=\"field-input col-sm-12\"><label style=\"display: inline-block\"><input type=radio data-ng-value=true ng-model=myform.startPage.showStart ng-required=true style=\"background-color:#33CC00\"> <span>{{ 'YES' | translate }}</span></label><label style=\"display: inline-block\"><input type=radio data-ng-value=false ng-model=myform.startPage.showStart ng-required=\"true\"> <span>{{ 'NO' | translate }}</span></label></div></div></div></div><div class=row><div class=\"col-sm-offset-4 col-sm-2\"><button class=\"btn btn-signup btn-rounded\" type=button ng-click=\"update(false, myform, false, false, null)\"><i class=\"icon-arrow-left icon-white\"></i>{{ 'SAVE_CHANGES' | translate }}</button></div><div class=col-sm-1><button class=\"btn btn-secondary btn-rounded\" type=button ng-click=resetForm()><i class=\"icon-eye-open icon-white\"></i>{{ 'CANCEL' | translate }}</button></div></div></div>");
|
||||
$templateCache.put("modules/forms/admin/views/directiveViews/form/edit-form.client.view.html",
|
||||
"<form class=\"row container\" name=editForm><script type=text/ng-template id=editFieldModal.html class=edit-field-modal><div class=\"modal-body\">\n" +
|
||||
" <div class=\"row\">\n" +
|
||||
|
@ -211,17 +211,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <a></a>\n" +
|
||||
" </span>\n" +
|
||||
" </label>\n" +
|
||||
" <!--\n" +
|
||||
" <label class=\"btn col-xs-5\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"true\" ng-model=\"field.required\" name=\"required{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'YES' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
"\n" +
|
||||
" <label class=\"btn col-xs-5 col-xs-offset-1\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"false\" ng-model=\"field.required\" name=\"required{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'NO' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
" -->\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -236,19 +225,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <a></a>\n" +
|
||||
" </span>\n" +
|
||||
" </label>\n" +
|
||||
" <!--\n" +
|
||||
" <label class=\"btn col-xs-5\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"true\"\n" +
|
||||
" ng-model=\"field.disabled\" name=\"disabled{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'YES' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
"\n" +
|
||||
" <label class=\"btn col-xs-5 col-xs-offset-1\">\n" +
|
||||
" <input type=\"radio\" ng-value=\"false\"\n" +
|
||||
" ng-model=\"field.disabled\" name=\"disabled{{field._id}}\"/>\n" +
|
||||
" <span> {{ 'NO' | translate }}</span>\n" +
|
||||
" </label>\n" +
|
||||
" -->\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -256,7 +232,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" <div class=\"col-md-4 col-xs-12 field-input\">{{ 'LOGIC_JUMP' | translate }}</div>\n" +
|
||||
" <div class=\"col-md-8 col-xs-12 field-input\">\n" +
|
||||
" <label class=\"switch-light switch-holo\" onclick=\"\">\n" +
|
||||
" <button ng-click=\"showLogicJump = !showLogicJump\">Click</button>\n" +
|
||||
" <input type=\"checkbox\" ng-model=\"showLogicJump\">\n" +
|
||||
" <span>\n" +
|
||||
" <span> {{ 'OFF' | translate }}</span>\n" +
|
||||
|
@ -266,9 +241,6 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </label>\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
" <span>\n" +
|
||||
" showLogicJump: {{showLogicJump}}\n" +
|
||||
" </span>\n" +
|
||||
" <div class=\"row question\" ng-if=\"!!showLogicJump\">\n" +
|
||||
" <div class=\"col-md-4 col-sm-12\">\n" +
|
||||
"\n" +
|
||||
|
@ -335,7 +307,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
" <div class=\"col-md-2\">\n" +
|
||||
"\n" +
|
||||
" <b>Jumps to </b>\n" +
|
||||
" <b>then jump to </b>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"col-md-10\">\n" +
|
||||
" <select style=\"width:100%\" ng-model=\"field.logicJump.jumpTo\"\n" +
|
||||
|
@ -349,7 +321,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"modal-footer row\">\n" +
|
||||
" <button type=\"submit\" ng-click=\"update(false, null)\" class=\"btn btn-signup btn-rounded\">\n" +
|
||||
" <button type=\"submit\" ng-click=\"saveField(false, $parent.myform, false, true)\" class=\"btn btn-signup btn-rounded\">\n" +
|
||||
" {{ 'SAVE_FIELD' | translate }}\n" +
|
||||
" </button>\n" +
|
||||
"\n" +
|
||||
|
@ -360,8 +332,10 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
|
|||
" </div>\n" +
|
||||
"\n" +
|
||||
" <div class=\"preview-field-panel col-md-6 hidden-sm hidden-xs container\">\n" +
|
||||
" <field-directive field=\"field\" validate=\"false\" class=\"preview-field\">\n" +
|
||||
" </field-directive>\n" +
|
||||
" <form>\n" +
|
||||
" <field-directive field=\"field\" validate=\"false\" class=\"preview-field\">\n" +
|
||||
" </field-directive>\n" +
|
||||
" </form>\n" +
|
||||
" </div>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
|
@ -666,7 +640,7 @@ angular.module('view-form').config(['$stateProvider',
|
|||
}
|
||||
|
||||
$.ajaxSetup( { "async": false } );
|
||||
var geoData = $.getJSON('//freegeoip.net/json/').responseJSON;
|
||||
var geoData = $.getJSON('https://freegeoip.net/json/').responseJSON;
|
||||
$.ajaxSetup( { "async": true } );
|
||||
|
||||
// Create a new message object
|
||||
|
@ -1403,7 +1377,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
|
|||
var getIpAndGeo = function(){
|
||||
//Get Ip Address and GeoLocation Data
|
||||
$.ajaxSetup( { "async": false } );
|
||||
var geoData = $.getJSON('//freegeoip.net/json/').responseJSON;
|
||||
var geoData = $.getJSON('https://freegeoip.net/json/').responseJSON;
|
||||
$.ajaxSetup( { "async": true } );
|
||||
|
||||
return {
|
||||
|
|
4
public/dist/form-application.min.js
vendored
4
public/dist/form-application.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -329,7 +329,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
|
|||
var getIpAndGeo = function(){
|
||||
//Get Ip Address and GeoLocation Data
|
||||
$.ajaxSetup( { "async": false } );
|
||||
var geoData = $.getJSON('//freegeoip.net/json/').responseJSON;
|
||||
var geoData = $.getJSON('https://freegeoip.net/json/').responseJSON;
|
||||
$.ajaxSetup( { "async": true } );
|
||||
|
||||
return {
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
}
|
||||
|
||||
$.ajaxSetup( { "async": false } );
|
||||
var geoData = $.getJSON('//freegeoip.net/json/').responseJSON;
|
||||
var geoData = $.getJSON('https://freegeoip.net/json/').responseJSON;
|
||||
$.ajaxSetup( { "async": true } );
|
||||
|
||||
// Create a new message object
|
||||
|
|
|
@ -108,7 +108,7 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
};
|
||||
|
||||
// Update existing Form
|
||||
$scope.update = $rootScope.update = function(updateImmediately, diffChanges, refreshAfterUpdate, cb){
|
||||
$scope.update = $rootScope.update = function(updateImmediately, data, isDiffed, refreshAfterUpdate, cb){
|
||||
refreshFrame();
|
||||
|
||||
var continueUpdate = true;
|
||||
|
@ -117,28 +117,58 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
}
|
||||
|
||||
//Update form **if we are not currently updating** or if **shouldUpdateNow flag is set**
|
||||
if(continueUpdate){
|
||||
var err = null;
|
||||
if(continueUpdate) {
|
||||
var err = null;
|
||||
|
||||
if(!updateImmediately){ $rootScope.saveInProgress = true; }
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = true;
|
||||
}
|
||||
|
||||
$scope.updatePromise = $http.put('/forms/'+$scope.myform._id, { changes: diffChanges })
|
||||
.then(function(response){
|
||||
if (isDiffed) {
|
||||
$scope.updatePromise = $http.put('/forms/' + $scope.myform._id, {changes: data})
|
||||
.then(function (response) {
|
||||
|
||||
if(refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
// console.log(response.data);
|
||||
}).catch(function(response){
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function() {
|
||||
// console.log('finished updating');
|
||||
if(!updateImmediately){$rootScope.saveInProgress = false; }
|
||||
if (refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
// console.log(response.data);
|
||||
}).catch(function (response) {
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function () {
|
||||
// console.log('finished updating');
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = false;
|
||||
}
|
||||
|
||||
if( (typeof cb) === 'function'){
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
if ((typeof cb) === 'function') {
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var dataToSend = data;
|
||||
delete dataToSend.analytics.visitors;
|
||||
delete dataToSend.submissions;
|
||||
|
||||
$scope.updatePromise = $http.put('/forms/' + $scope.myform._id, {form: dataToSend})
|
||||
.then(function (response) {
|
||||
|
||||
if (refreshAfterUpdate) $rootScope.myform = $scope.myform = response.data;
|
||||
|
||||
}).catch(function (response) {
|
||||
console.log('Error occured during form UPDATE.\n');
|
||||
// console.log(response.data);
|
||||
err = response.data;
|
||||
}).finally(function () {
|
||||
// console.log('finished updating');
|
||||
if (!updateImmediately) {
|
||||
$rootScope.saveInProgress = false;
|
||||
}
|
||||
|
||||
if ((typeof cb) === 'function') {
|
||||
return cb(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -19,6 +19,11 @@
|
|||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.edit-field-modal-window .preview-field-panel form {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.edit-field-modal-window .preview-field {
|
||||
resize: vertical;
|
||||
}
|
||||
|
|
|
@ -33,32 +33,25 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
$scope.field = curr_field;
|
||||
$scope.showLogicJump = false;
|
||||
|
||||
$scope.$watch(function(oldValue, newValue){
|
||||
console.log(newValue);
|
||||
});
|
||||
$scope.saveField = function(){
|
||||
curr_field = $scope.field;
|
||||
|
||||
$scope.$parent.update(false, $scope.$parent.myform, false, true, function(){
|
||||
$uibModalInstance.close();
|
||||
});
|
||||
};
|
||||
$scope.cancel = function(){
|
||||
$uibModalInstance.close();
|
||||
};
|
||||
}
|
||||
});
|
||||
$scope.editFieldModal.result.then(function (selectedItem) {
|
||||
$scope.selected = selectedItem;
|
||||
}, function () {
|
||||
console.log('Edit Modal dismissed at: ' + new Date());
|
||||
});
|
||||
};
|
||||
|
||||
$scope.cancelEditModal = function(){
|
||||
if($scope.editModal){
|
||||
$scope.editFieldModal.dismiss('cancel');
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
** Setup Angular-Input-Star Shape Dropdown
|
||||
*/
|
||||
//Populate Name to Font-awesomeName Conversion Map
|
||||
$scope.select2FA = {
|
||||
$scope.select2FA = {
|
||||
'Heart': 'Heart',
|
||||
'Star': 'Star',
|
||||
'thumbs-up': 'Thumbs Up',
|
||||
|
@ -92,24 +85,6 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
//Populate local scope with rootScope methods/variables
|
||||
$scope.update = $rootScope.update;
|
||||
|
||||
// LOGIC JUMP METHODS
|
||||
$scope.removeLogicJump = function (field_index) {
|
||||
$scope.myform.form_fields[field_index].logicJump.fieldA = null;
|
||||
$scope.myform.form_fields[field_index].logicJump.valueB = null;
|
||||
};
|
||||
|
||||
$scope.addNewLogicJump = function (field_index) {
|
||||
var form_fields = $scope.myform.form_fields;
|
||||
var currField = form_fields[field_index];
|
||||
if (form_fields.length > 1 && currField._id) {
|
||||
|
||||
var newLogicJump = {
|
||||
fieldA: currField._id
|
||||
};
|
||||
currField.logicJump = newLogicJump;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
** FormFields (ui-sortable) drag-and-drop configuration
|
||||
*/
|
||||
|
@ -165,7 +140,8 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
|
|||
//Add newField to form_fields array
|
||||
$scope.myform.form_fields.push(newField);
|
||||
}
|
||||
return newField;
|
||||
|
||||
$scope.openEditModal(newField);
|
||||
};
|
||||
|
||||
// Delete particular field on button click
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-offset-4 col-sm-2">
|
||||
<button class="btn btn-signup btn-rounded" type="button" ng-click="update(false, null)"><i class="icon-arrow-left icon-white"></i>{{ 'SAVE_CHANGES' | translate }}</button>
|
||||
<button class="btn btn-signup btn-rounded" type="button" ng-click="update(false, myform, false, false, null)"><i class="icon-arrow-left icon-white"></i>{{ 'SAVE_CHANGES' | translate }}</button>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<button class="btn btn-secondary btn-rounded" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
|
||||
|
|
|
@ -81,17 +81,6 @@
|
|||
<a></a>
|
||||
</span>
|
||||
</label>
|
||||
<!--
|
||||
<label class="btn col-xs-5">
|
||||
<input type="radio" ng-value="true" ng-model="field.required" name="required{{field._id}}"/>
|
||||
<span> {{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label class="btn col-xs-5 col-xs-offset-1">
|
||||
<input type="radio" ng-value="false" ng-model="field.required" name="required{{field._id}}"/>
|
||||
<span> {{ 'NO' | translate }}</span>
|
||||
</label>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -106,19 +95,6 @@
|
|||
<a></a>
|
||||
</span>
|
||||
</label>
|
||||
<!--
|
||||
<label class="btn col-xs-5">
|
||||
<input type="radio" ng-value="true"
|
||||
ng-model="field.disabled" name="disabled{{field._id}}"/>
|
||||
<span> {{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label class="btn col-xs-5 col-xs-offset-1">
|
||||
<input type="radio" ng-value="false"
|
||||
ng-model="field.disabled" name="disabled{{field._id}}"/>
|
||||
<span> {{ 'NO' | translate }}</span>
|
||||
</label>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -201,7 +177,7 @@
|
|||
</div>
|
||||
<div class="col-md-2">
|
||||
|
||||
<b>Jumps to </b>
|
||||
<b>then jump to </b>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
<select style="width:100%" ng-model="field.logicJump.jumpTo"
|
||||
|
@ -215,7 +191,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer row">
|
||||
<button type="submit" ng-click="update(false, null)" class="btn btn-signup btn-rounded">
|
||||
<button type="submit" ng-click="saveField(false, $parent.myform, false, true)" class="btn btn-signup btn-rounded">
|
||||
{{ 'SAVE_FIELD' | translate }}
|
||||
</button>
|
||||
|
||||
|
@ -226,8 +202,10 @@
|
|||
</div>
|
||||
|
||||
<div class="preview-field-panel col-md-6 hidden-sm hidden-xs container">
|
||||
<field-directive field="field" validate="false" class="preview-field">
|
||||
</field-directive>
|
||||
<form class="public-form"ss>
|
||||
<field-directive field="field" validate="false" class="preview-field">
|
||||
</field-directive>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -566,7 +544,7 @@
|
|||
|
||||
<div class="row question" ng-if="myform.form_fields.length > 1 && myform.form_fields[$index].logicJump.fieldA">
|
||||
<div class="col-md-4 col-sm-12">
|
||||
|
||||
|
||||
<b> If this field </b>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-12">
|
||||
|
@ -574,7 +552,7 @@
|
|||
value="{{field.logicJump.expressionString}}"
|
||||
name="logicjump_expressionString{{field._id}}">
|
||||
<option value="field == static">
|
||||
|
||||
|
||||
is equal to
|
||||
</option>
|
||||
<option value="field != static">
|
||||
|
@ -591,32 +569,32 @@
|
|||
is smaller than
|
||||
</option>
|
||||
<option value="field <= static" ng-if-end>
|
||||
|
||||
|
||||
is smaller or equal than
|
||||
</option>
|
||||
|
||||
<option value="field contains static" ng-if-start="field.fieldType !== 'number' && field.fieldType !== 'rating' && field.fieldType !== 'number'">
|
||||
|
||||
|
||||
contains
|
||||
</option>
|
||||
<option value="field !contains static">
|
||||
|
||||
|
||||
does not contain
|
||||
</option>
|
||||
<option value="field ends static">
|
||||
|
||||
|
||||
ends with
|
||||
</option>
|
||||
<option value="field !ends static">
|
||||
|
||||
|
||||
does not end with
|
||||
</option>
|
||||
<option value="field starts static">
|
||||
|
||||
|
||||
starts with
|
||||
</option>
|
||||
<option value="field !starts static" ng-if-end>
|
||||
|
||||
|
||||
does not start with
|
||||
</option>
|
||||
</select>
|
||||
|
@ -625,7 +603,7 @@
|
|||
<input type="text" ng-model="field.logicJump.valueB"/>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
|
||||
|
||||
<b>Jumps to </b>
|
||||
</div>
|
||||
<div class="col-md-10">
|
||||
|
|
Loading…
Reference in a new issue