fixed duplicateField() 'ng-repeat dupes' error

This commit is contained in:
David Baldwynn 2015-11-12 16:52:14 -08:00
parent e5386c41ee
commit 763bb472ad
5 changed files with 17 additions and 8 deletions

View file

@ -215,6 +215,15 @@ exports.update = function(req, res) {
//Unless we have 'admin' priviledges, updating form admin is disabled //Unless we have 'admin' priviledges, updating form admin is disabled
if(req.user.roles.indexOf('admin') === -1) delete req.body.form.admin; if(req.user.roles.indexOf('admin') === -1) delete req.body.form.admin;
//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++){
var field = req.body.form.form_fields[i];
if(!checkForValidId.exec(field._id+'')){
delete field._id;
}
}
form = _.extend(form, req.body.form); form = _.extend(form, req.body.form);
form.save(function(err, form) { form.save(function(err, form) {

View file

@ -8,6 +8,6 @@ Maybe password hint would be nice, like if you needed a capital letter or number
I'm on iOS mobile and the grey title is too big compared to everything else I'm on iOS mobile and the grey title is too big compared to everything else
Home page is not centre aligned Home page is not centre aligned
I would use a different background image.. Shows up strange on small screen, thought it was palm trees at first I would use a different background image.. Shows up strange on small screen, thought it was palm trees at first
Cute logo smile emoticon Cute logo :)
Also in the "sign in" forgot password doesn't do anything Also in the "sign in" forgot password doesn't do anything
I haven't gotten the confirmation email yet I haven't gotten the confirmation email yet

View file

@ -110,9 +110,8 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
continueUpdate = !$rootScope.saveInProgress; continueUpdate = !$rootScope.saveInProgress;
} }
//Update form if we **are not currently updating** or if **shouldUpdateNow flag is set** //Update form **if we are not currently updating** or if **shouldUpdateNow flag is set**
if(continueUpdate){ if(continueUpdate){
// console.log('begin updating form');
var err = null; var err = null;
if(!updateImmediately){ $rootScope.saveInProgress = true; } if(!updateImmediately){ $rootScope.saveInProgress = true; }

View file

@ -110,7 +110,8 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
}; };
$scope.duplicateField = function (field_index){ $scope.duplicateField = function (field_index){
var currField = _.cloneDeep($scope.myform.form_fields[field_index]); var currField = _.cloneDeep($scope.myform.form_fields[field_index]);
currField._id = ''; currField._id = 'cloned'+_.uniqueId();
currField.title += ' copy';
//Insert field at selected index //Insert field at selected index
$scope.myform.form_fields.splice(field_index+1, 0, currField); $scope.myform.form_fields.splice(field_index+1, 0, currField);

View file

@ -157,7 +157,7 @@
<div class="col-sm-12 col-md-8 dropzoneContainer"> <div class="col-sm-12 col-md-8 dropzoneContainer">
<accordion close-others="accordion.oneAtATime" ui-sortable="dropzone" ng-model="myform.form_fields" class="dropzone"> <accordion close-others="accordion.oneAtATime" ui-sortable="dropzone" ng-model="myform.form_fields" class="dropzone">
<accordion-group data-ng-repeat="field in myform.form_fields" is-open="accordion[$index].isOpen" on-finish-render="editFormFields" ng-if="!field.deletePreserved"> <accordion-group data-ng-repeat="field in myform.form_fields track by field._id" is-open="accordion[$index].isOpen" on-finish-render="editFormFields" ng-if="!field.deletePreserved">
<accordion-heading> <accordion-heading>
@ -281,7 +281,7 @@
<div class="col-md-1 hidden-xs hidden-sm" style="padding:0 5px;" > <div class="col-md-1 hidden-xs hidden-sm" style="padding:0 5px;" >
<div class="panel-group tool-panel text-center"> <div class="panel-group tool-panel text-center">
<div class="panel panel-default" ng-repeat="field in myform.form_fields" ng-if="!field.deletePreserved"> <div class="panel panel-default" ng-repeat="field in myform.form_fields track by field._id" ng-if="!field.deletePreserved">
<div class="panel-heading" style="padding: 10px 10px; height: 37px;" ng-click="deleteField($index)"> <div class="panel-heading" style="padding: 10px 10px; height: 37px;" ng-click="deleteField($index)">
<span class="text-center"> <span class="text-center">
<a href="" class="fa fa-trash-o"></a> <a href="" class="fa fa-trash-o"></a>
@ -292,7 +292,7 @@
</div> </div>
<div class="col-md-1 hidden-xs hidden-sm" style="padding:0 5px;"> <div class="col-md-1 hidden-xs hidden-sm" style="padding:0 5px;">
<div class="panel-group tool-panel text-center"> <div class="panel-group tool-panel text-center">
<div class="panel panel-default" ng-repeat="field in myform.form_fields" ng-if="!field.deletePreserved"> <div class="panel panel-default" ng-repeat="field in myform.form_fields track by field._id" ng-if="!field.deletePreserved">
<div class="panel-heading" style="padding: 10px 10px; height: 37px;" ng-click="duplicateField($index)"> <div class="panel-heading" style="padding: 10px 10px; height: 37px;" ng-click="duplicateField($index)">
<span class="text-center"> <span class="text-center">
<a href="" class="fa fa-files-o"></a> <a href="" class="fa fa-files-o"></a>
@ -304,7 +304,7 @@
<div class="col-md-2 hidden-xs hidden-sm" style="padding:0 5px;" ng-if="myform.plugins.oscarhost.baseUrl"> <div class="col-md-2 hidden-xs hidden-sm" style="padding:0 5px;" ng-if="myform.plugins.oscarhost.baseUrl">
<div class="panel-group text-center"> <div class="panel-group text-center">
<div class="panel panel-default" ng-repeat="field in myform.form_fields" ng-if="!field.deletePreserved" style="border: none;"> <div class="panel panel-default" ng-repeat="field in myform.form_fields track by field._id" ng-if="!field.deletePreserved" style="border: none;">
<select ng-model="myform.plugins.oscarhost.settings.fieldMap[field._id]" style="height:39.2px"> <select ng-model="myform.plugins.oscarhost.settings.fieldMap[field._id]" style="height:39.2px">
<option value="">N/A</option> <option value="">N/A</option>