Fixed bug that didn't allow user to rearrange form fields

This commit is contained in:
David Baldwynn 2017-08-02 16:05:17 -04:00
parent 7ab619615e
commit f13d0cf077
6 changed files with 24 additions and 15 deletions

View file

@ -198,6 +198,10 @@ var readForRender = exports.readForRender = function(req, res) {
*/ */
exports.update = function(req, res) { exports.update = function(req, res) {
var form = req.form; var form = req.form;
var updatedForm = req.body.form;
delete updatedForm.__v;
delete updatedForm.created;
if (req.body.changes) { if (req.body.changes) {
var formChanges = req.body.changes; var formChanges = req.body.changes;
@ -207,8 +211,8 @@ exports.update = function(req, res) {
}); });
} else { } else {
//Unless we have 'admin' privileges, updating form admin is disabled //Unless we have 'admin' privileges, updating form admin is disabled
if(req.body.form && req.user.roles.indexOf('admin') === -1) { if(updatedForm && req.user.roles.indexOf('admin') === -1) {
delete req.body.form.admin; delete updatedForm.admin;
} }
if(form.analytics === null){ if(form.analytics === null){
@ -224,12 +228,13 @@ exports.update = function(req, res) {
delete field._id; delete field._id;
} }
} }
form = _.extend(form, req.body.form); form = _.extend(form, updatedForm);
} }
form.save(function(err, savedForm) { form.save(function(err, savedForm) {
if (err) { if (err) {
res.status(405).send({ console.log(err);
res.status(405).send({
message: errorHandler.getErrorMessage(err) message: errorHandler.getErrorMessage(err)
}); });
} else { } else {

View file

@ -12,7 +12,7 @@
"dependencies": { "dependencies": {
"bootstrap": "^3.3.7", "bootstrap": "^3.3.7",
"angular-resource": "~1.4.7", "angular-resource": "~1.4.7",
"angular-cache-buster": "~0.4.3", "angular-cache-buster": "~0.4.3",
"angular-mocks": "~1.4.7", "angular-mocks": "~1.4.7",
"angular-bootstrap": "~0.14.3", "angular-bootstrap": "~0.14.3",
"angular-ui-utils": "~3.0.0", "angular-ui-utils": "~3.0.0",
@ -49,7 +49,8 @@
"angular": "1.4.14", "angular": "1.4.14",
"angular-ui-select": "compiled", "angular-ui-select": "compiled",
"jspdf": "~1.0.178", "jspdf": "~1.0.178",
"angular-sanitize": "1.4.14" "angular-sanitize": "1.4.14",
"angular-ui-sortable": "^0.17.1"
}, },
"overrides": { "overrides": {
"BOWER-PACKAGE": { "BOWER-PACKAGE": {

View file

@ -2785,8 +2785,10 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
forceHelperSize: true, forceHelperSize: true,
forcePlaceholderSize: true, forcePlaceholderSize: true,
update: function(e, ui) { update: function(e, ui) {
$scope.update(false, $scope.myform, false, false, function(err){ console.log(ui);
if(!err) $scope.myform.form_fields.push(newField); console.log(e);
console.log($scope.myform.form_fields);
$scope.update(false, $scope.myform, false, false, function(err){
}); });
}, },
start: function(e, ui) { start: function(e, ui) {

File diff suppressed because one or more lines are too long

View file

@ -19,16 +19,17 @@ angular.module('forms').directive('editFormDirective', ['$rootScope', 'FormField
//Setup UI-Sortable //Setup UI-Sortable
$scope.sortableOptions = { $scope.sortableOptions = {
appendTo: '.dropzone', appendTo: '.dropzone',
helper: 'clone', //helper: 'clone',
forceHelperSize: true, forceHelperSize: true,
forcePlaceholderSize: true, forcePlaceholderSize: true,
update: function(e, ui) { update: function(e, ui) {
$scope.update(false, $scope.myform, false, false, function(err){ console.log(ui.item.sortable.model);
if(!err) $scope.myform.form_fields.push(newField); $scope.update(false, $scope.myform, false, false, function(err){
}); });
}, },
start: function(e, ui) { start: function(e, ui) {
} console.log(ui)
}
}; };
/* /*

View file

@ -556,7 +556,7 @@
<div class="row"> <div class="row">
<div class="col-sm-12 col-md-10 dropzoneContainer"> <div class="col-sm-12 col-md-10 dropzoneContainer">
<div class="panel-group dropzone" ui-sortable="sortableOptions"> <div class="panel-group dropzone" ui-sortable="sortableOptions" ng-model="myform.form_fields">
<div class="panel panel-default" ng-repeat="field in myform.form_fields" <div class="panel panel-default" ng-repeat="field in myform.form_fields"
ng-if="!field.deletePreserved" ng-if="!field.deletePreserved"