From acdbb6c4661950e3c9ce3c0d2e7b9d2a650c98ca Mon Sep 17 00:00:00 2001 From: David Higgins Date: Fri, 10 Nov 2017 15:18:37 -0500 Subject: [PATCH 1/4] added labelClasses support --- src/formGenerator.vue | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index 66702ae6..93099794 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -3,7 +3,7 @@ div.vue-form-generator(v-if='schema != null') fieldset(v-if="schema.fields", :is='tag') template(v-for='field in fields') .form-group(v-if='fieldVisible(field)', :class='getFieldRowClasses(field)') - label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)") + label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)", :class="field.labelClasses") | {{ field.label }} span.help(v-if='field.help') i.icon @@ -17,11 +17,11 @@ div.vue-form-generator(v-if='schema != null') span(v-for='(error, index) in fieldErrors(field)', track-by='index') {{ error }} template(v-for='group in groups') - fieldset(:is='tag', :class='getFieldRowClasses(group)') + fieldset(:is='tag') legend(v-if='group.legend') {{ group.legend }} template(v-for='field in group.fields') .form-group(v-if='fieldVisible(field)', :class='getFieldRowClasses(field)') - label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)") + label(v-if="fieldTypeHasLabel(field)", :for="getFieldID(field)", :class="field.labelClasses") | {{ field.label }} span.help(v-if='field.help') i.icon @@ -191,9 +191,7 @@ div.vue-form-generator(v-if='schema != null') baseClasses[field.styleClasses] = true; } - if (!isNil(field.type)) { - baseClasses["field-" + field.type] = true; - } + baseClasses["field-" + field.type] = true; return baseClasses; }, @@ -571,3 +569,11 @@ div.vue-form-generator(v-if='schema != null') } // fieldset + // .errors + + } // .error + + } // .form-group + + } // fieldset + From 8c0130734b959e695f05f5964f6e57f1e671a896 Mon Sep 17 00:00:00 2001 From: David Higgins Date: Fri, 10 Nov 2017 20:09:31 -0500 Subject: [PATCH 2/4] added "getLabelClasses" and unit test, using the fieldClasses unit test as an example --- src/fields/abstractField.js | 4 ++++ test/unit/specs/fields/abstractField.spec.js | 24 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/fields/abstractField.js b/src/fields/abstractField.js index 6d253241..5e9ef26c 100644 --- a/src/fields/abstractField.js +++ b/src/fields/abstractField.js @@ -176,6 +176,10 @@ export default { return this.schema.fieldClasses || []; }, + getLabelClasses() { + return this.schema.labelClasses || []; + }, + formatValueToField(value) { return value; }, diff --git a/test/unit/specs/fields/abstractField.spec.js b/test/unit/specs/fields/abstractField.spec.js index a4fd6e82..89968a4e 100644 --- a/test/unit/specs/fields/abstractField.spec.js +++ b/test/unit/specs/fields/abstractField.spec.js @@ -503,4 +503,28 @@ describe("abstractField.vue", function() { }); + + describe("check classes application to labels", () => { + + let schema = { + type: "text", + label: "First Name", + model: "user__model", + inputName: "input_name", + labelClasses: ["applied-class", "another-class"] + }; + let model = {}; + + before( () => { + createField(this, schema, model); + }); + + it("should have 2 classes ('applied-class' and 'another-class')", () => { + expect(field.getLabelClasses().length).to.be.equal(2); + expect(field.getLabelClasses()[0]).to.be.equal("applied-class"); + expect(field.getLabelClasses()[1]).to.be.equal("another-class"); + }); + + }); + }); From f1029673a3791d17c983a2c66144e6ae7c1b37ab Mon Sep 17 00:00:00 2001 From: David Higgins Date: Fri, 10 Nov 2017 20:21:43 -0500 Subject: [PATCH 3/4] moved unit test to formGenerator, as labels are managed by formGenerator and not the field components --- src/fields/abstractField.js | 4 --- test/unit/specs/VueFormGenerator.spec.js | 26 ++++++++++++++++++++ test/unit/specs/fields/abstractField.spec.js | 24 ------------------ 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/fields/abstractField.js b/src/fields/abstractField.js index 5e9ef26c..6d253241 100644 --- a/src/fields/abstractField.js +++ b/src/fields/abstractField.js @@ -176,10 +176,6 @@ export default { return this.schema.fieldClasses || []; }, - getLabelClasses() { - return this.schema.labelClasses || []; - }, - formatValueToField(value) { return value; }, diff --git a/test/unit/specs/VueFormGenerator.spec.js b/test/unit/specs/VueFormGenerator.spec.js index b287857a..4d0f630c 100644 --- a/test/unit/specs/VueFormGenerator.spec.js +++ b/test/unit/specs/VueFormGenerator.spec.js @@ -191,6 +191,32 @@ describe("VueFormGenerator.vue", () => { }); + describe("check label classes", () => { + let schema = { + fields: [ + { + type: "input", + inputType: "text", + label: "Name", + model: "name", + labelClasses: ["applied-class", "another-class"] + } + ] + }; + let label; + + before( () => { + createFormGenerator(schema); + label = el.querySelector("label"); + }); + + it("should be 2 classes", () => { + expect(label.classList.contains("applied-class")).to.be.true; + expect(label.classList.contains("another-class")).to.be.true; + }); + + }); + describe("check form row caption cell", () => { let group, label; let schema = { diff --git a/test/unit/specs/fields/abstractField.spec.js b/test/unit/specs/fields/abstractField.spec.js index 89968a4e..a4fd6e82 100644 --- a/test/unit/specs/fields/abstractField.spec.js +++ b/test/unit/specs/fields/abstractField.spec.js @@ -503,28 +503,4 @@ describe("abstractField.vue", function() { }); - - describe("check classes application to labels", () => { - - let schema = { - type: "text", - label: "First Name", - model: "user__model", - inputName: "input_name", - labelClasses: ["applied-class", "another-class"] - }; - let model = {}; - - before( () => { - createField(this, schema, model); - }); - - it("should have 2 classes ('applied-class' and 'another-class')", () => { - expect(field.getLabelClasses().length).to.be.equal(2); - expect(field.getLabelClasses()[0]).to.be.equal("applied-class"); - expect(field.getLabelClasses()[1]).to.be.equal("another-class"); - }); - - }); - }); From 17eeae59d5356ba689f9116b7d990bf5abd1ba24 Mon Sep 17 00:00:00 2001 From: David Higgins Date: Fri, 10 Nov 2017 20:25:13 -0500 Subject: [PATCH 4/4] remove garbage not sure how that got there --- src/formGenerator.vue | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/formGenerator.vue b/src/formGenerator.vue index 93099794..286829f9 100644 --- a/src/formGenerator.vue +++ b/src/formGenerator.vue @@ -569,11 +569,3 @@ div.vue-form-generator(v-if='schema != null') } // fieldset - // .errors - - } // .error - - } // .form-group - - } // fieldset -