From 10d3dd76ed81b77f52409fa5fb665b02cc4c688b Mon Sep 17 00:00:00 2001 From: Kevin Giszewski Date: Wed, 26 Feb 2014 09:39:02 -0500 Subject: [PATCH] Fix a situation where null were getting into the model on save. --- app/controllers/controller.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/controllers/controller.js b/app/controllers/controller.js index 1e603cd..7a06c12 100644 --- a/app/controllers/controller.js +++ b/app/controllers/controller.js @@ -106,7 +106,7 @@ //helper, ini the render model from the server (model.value) function initArchetypeRenderModel() { - $scope.archetypeRenderModel = $scope.model.value; + $scope.archetypeRenderModel = removeNulls($scope.model.value); _.each($scope.archetypeRenderModel.fieldsets, function (fieldset) { @@ -201,7 +201,7 @@ _.each($scope.archetypeRenderModel.fieldsets, function(fieldset){ var cleanedFieldset = cleanFieldset(fieldset); - if(cleanFieldset){ + if(cleanedFieldset){ $scope.model.value.fieldsets.push(cleanedFieldset); } }); @@ -248,6 +248,20 @@ return JSON.parse('{"alias": "' + fieldsetModel.alias + '", "remove": false, "isValid": true, "properties": []}'); } + //helper to ensure no nulls make it into the model + function removeNulls(model){ + if(model.fieldsets){ + _.each(model.fieldsets, function(fieldset, index){ + if(!fieldset){ + model.fieldsets.splice(index, 1); + removeNulls(model); + } + }); + + return model; + } + } + //helper to lookup validity when given a fieldsetIndex and property alias $scope.getPropertyValidity = function(fieldsetIndex, alias) {