From 791add38ebafb7f1aac58a29958097805044e032 Mon Sep 17 00:00:00 2001 From: Vincent Liao Date: Mon, 11 Apr 2016 04:28:35 -0500 Subject: [PATCH 1/2] Add check for schema property to prevent form generation failures when a checkbox is explicitly defined by a developer (and therefore does not have a schema property) --- src/services/schema-form.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/services/schema-form.js b/src/services/schema-form.js index a3f531e54..f8031b584 100644 --- a/src/services/schema-form.js +++ b/src/services/schema-form.js @@ -384,8 +384,14 @@ angular.module('schemaForm').provider('schemaForm', // Special case: checkbox // Since have to ternary state we need a default - if (obj.type === 'checkbox' && angular.isUndefined(obj.schema['default'])) { - obj.schema['default'] = false; + if (obj.type === 'checkbox') { + // Check for schema property, as the checkbox may be part of the explicitly defined form + if (angular.isUndefined(obj.schema)) { + obj.schema = { default: false }; + } + else if (angular.isUndefined(obj.schema['default'])) { + obj.schema['default'] = false; + } } // Special case: template type with tempplateUrl that's needs to be loaded before rendering From 629cce7cfce71b3d679d05e19c5e9a0e81df0c0c Mon Sep 17 00:00:00 2001 From: Vincent Liao Date: Mon, 11 Apr 2016 04:58:18 -0500 Subject: [PATCH 2/2] Refactor to use plain javascript as core is being broken out. --- src/services/schema-form.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/schema-form.js b/src/services/schema-form.js index f8031b584..0f2fa604f 100644 --- a/src/services/schema-form.js +++ b/src/services/schema-form.js @@ -386,10 +386,10 @@ angular.module('schemaForm').provider('schemaForm', // Since have to ternary state we need a default if (obj.type === 'checkbox') { // Check for schema property, as the checkbox may be part of the explicitly defined form - if (angular.isUndefined(obj.schema)) { + if (obj.schema === undefined) { obj.schema = { default: false }; } - else if (angular.isUndefined(obj.schema['default'])) { + else if (obj.schema['default'] === undefined) { obj.schema['default'] = false; } }