Skip to content

Commit f120d52

Browse files
authored
Merge pull request #63 from lionel-bijaoui/LB_autocomplete
enhancement: add missing "autocomplete", "placeholder" and "readonly"…
2 parents 60dda5f + e618253 commit f120d52

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+379
-429
lines changed

src/fields/fieldCheckbox.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input(type="checkbox", v-model="value", :disabled="disabled")
2+
input(type="checkbox", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled")
33
</template>
44

55
<script>

src/fields/fieldChecklist.vue

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<template lang="jade">
22
.wrapper
3-
.listbox.form-control(v-if="schema.listBox")
3+
.listbox.form-control(v-if="schema.listBox", :disabled="disabled")
44
.list-row(v-for="item in items")
55
label
6-
input(type="checkbox", :checked="getItemIsChecked(item)", @change="onChanged($event, item)")
6+
input(type="checkbox", :checked="getItemIsChecked(item)", :disabled="disabled", @change="onChanged($event, item)")
77
| {{ getItemName(item) }}
88

9-
.combobox.form-control(v-if="!schema.listBox")
9+
.combobox.form-control(v-if="!schema.listBox", :disabled="disabled")
1010
.mainRow(@click="onExpandCombo", :class="{ expanded: comboExpanded }")
1111
.info {{ selectedCount }} selected
1212
.arrow
1313

1414
.dropList
1515
.list-row(v-if="comboExpanded", v-for="item in items")
1616
label
17-
input(type="checkbox", :checked="getItemIsChecked(item)", @change="onChanged($event, item)")
17+
input(type="checkbox", :checked="getItemIsChecked(item)", :disabled="disabled", @change="onChanged($event, item)")
1818
| {{ getItemName(item) }}
1919
</template>
2020

src/fields/fieldCleave.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="text", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldColor.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template lang="jade">
22
.wrapper
3-
input(type="color", v-model="value", :disabled="disabled")
3+
input(type="color", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled")
44
span.helper {{ value }}
55
</template>
66

src/fields/fieldDateTime.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template lang="jade">
22
.input-group.date
3-
input.form-control(type="text", v-model="value", :disabled="disabled")
3+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
44
span.input-group-addon
55
span.glyphicon.glyphicon-calendar
66
</template>

src/fields/fieldEmail.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="email", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="email", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldGoogleAddress.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="text", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder", debounce="500", @focus="geolocate()")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", debounce="500", @focus="geolocate()")
33
</template>
44

55
<script>

src/fields/fieldImage.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template lang="jade">
22
div.wrapper
3-
input.form-control.link(type="text", v-model="wrappedValue", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
4-
input.form-control.file(type="file", :readonly="schema.readonly", :disabled="disabled", v-if="schema.browse !== false", @change="fileChanged")
3+
input.form-control.link(type="text", v-model="wrappedValue", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
4+
input.form-control.file(type="file", v-if="schema.browse !== false", :disabled="disabled", @change="fileChanged")
55
.preview(:style="previewStyle")
66
.remove(title="Remove image", @click="remove")
77
</template>

src/fields/fieldMasked.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="text", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldNumber.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="number", v-model="value", number, :min="schema.min", :max="schema.max", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="number", v-model="value", number, :autocomplete="schema.autocomplete", :disabled="disabled", :max="schema.max", :min="schema.min", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldPassword.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="password", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="password", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldPikaday.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="text", v-model="value", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldRange.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template lang="jade">
22
.wrapper
3-
input.form-control(type="range", v-model="value", :min="schema.min", :max="schema.max", :disabled="disabled", :placeholder="schema.placeholder")
3+
input.form-control(type="range", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :max="schema.max", :min="schema.min")
44
.helpText {{ value }}
55
</template>
66

src/fields/fieldSlider.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input(type="text", :data-min="schema.min", :data-max="schema.max", :data-step="schema.step", :data-disable="disabled")
2+
input(type="text", :autocomplete="schema.autocomplete", :data-disable="disabled", :data-max="schema.max", :data-min="schema.min", :data-step="schema.step", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldSpectrum.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input(type="text", :disabled="disabled", :placeholder="schema.placeholder")
2+
input(type="text", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldText.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
input.form-control(type="text", v-model="value", :maxlength="schema.max", :readonly="schema.readonly", :disabled="disabled", :placeholder="schema.placeholder")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :maxlength="schema.max", :pattern="schema.pattern", :placeholder="schema.placeholder", :readonly="schema.readonly")
33
</template>
44

55
<script>

src/fields/fieldTextArea.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
textarea.form-control(v-model="value", :rows="schema.rows || 2", :readonly="schema.readonly", :placeholder="schema.placeholder", :disabled="disabled", :maxlength="schema.max")
2+
textarea.form-control(v-model="value", :disabled="disabled", :maxlength="schema.max", :minlength="schema.min", :placeholder="schema.placeholder", :readonly="schema.readonly", :rows="schema.rows || 2")
33
</template>
44

55
<script>

test/unit/specs/fields/fieldCheckbox.spec.js

+13-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { createVueField, trigger } from "../util";
2+
import { createVueField, trigger, checkAttribute } from "../util";
33

44
import Vue from "vue";
55
import FieldCheckbox from "src/fields/fieldCheckbox.vue";
@@ -18,7 +18,8 @@ describe("FieldCheckbox.vue", function() {
1818
let schema = {
1919
type: "checkbox",
2020
label: "Status",
21-
model: "status"
21+
model: "status",
22+
autocomplete: "off"
2223
};
2324
let model = { status: true };
2425
let input;
@@ -34,28 +35,29 @@ describe("FieldCheckbox.vue", function() {
3435

3536
expect(input).to.be.defined;
3637
expect(input.type).to.be.equal("checkbox");
37-
expect(input.disabled).to.be.false;
3838
});
3939

4040
it("should contain the value", (done) => {
4141
vm.$nextTick( () => {
42-
expect(input.checked).to.be.true;
42+
expect(input.checked).to.be.true;
4343
done();
4444
});
4545
});
4646

47-
it("should set disabled", (done) => {
48-
field.disabled = true;
49-
vm.$nextTick( () => {
50-
expect(input.disabled).to.be.true;
51-
done();
47+
describe("check optional attribute", () => {
48+
let attributes = ["autocomplete", "disabled"];
49+
50+
attributes.forEach(function(name) {
51+
it("should set " + name, function(done) {
52+
checkAttribute(name, vm, input, field, schema, done);
53+
});
5254
});
5355
});
5456

5557
it("input value should be the model value after changed", (done) => {
5658
model.status = false;
5759
vm.$nextTick( () => {
58-
expect(input.checked).to.be.false;
60+
expect(input.checked).to.be.false;
5961
done();
6062
});
6163

@@ -66,7 +68,7 @@ describe("FieldCheckbox.vue", function() {
6668
trigger(input, "change");
6769

6870
vm.$nextTick( () => {
69-
expect(model.status).to.be.true;
71+
expect(model.status).to.be.true;
7072
done();
7173
});
7274

test/unit/specs/fields/fieldChecklist.spec.js

+8-16
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,6 @@ describe("fieldChecklist.vue", function() {
6464
expect(isChecked(6)).to.be.true;
6565
});
6666

67-
/*it("should set disabled", (done) => {
68-
field.disabled = true;
69-
vm.$nextTick( () => {
70-
expect(listbox.disabled).to.be.true;
71-
done();
72-
});
73-
});*/
74-
7567
it("listbox value should be the model value after changed", (done) => {
7668
model.skills = ["ReactJS"];
7769
vm.$nextTick( () => {
@@ -89,7 +81,7 @@ describe("fieldChecklist.vue", function() {
8981
trigger(checkboxes[0], "change");
9082

9183
vm.$nextTick( () => {
92-
expect(model.skills).to.be.deep.equal(["ReactJS", "HTML5"]);
84+
expect(model.skills).to.be.deep.equal(["ReactJS", "HTML5"]);
9385
done();
9486
});
9587

@@ -153,7 +145,7 @@ describe("fieldChecklist.vue", function() {
153145
trigger(checkboxes[0], "change");
154146

155147
vm.$nextTick( () => {
156-
expect(model.skills).to.be.deep.equal([3, 1]);
148+
expect(model.skills).to.be.deep.equal([3, 1]);
157149
done();
158150
});
159151

@@ -219,13 +211,13 @@ describe("fieldChecklist.vue", function() {
219211
trigger(checkboxes[0], "change");
220212

221213
vm.$nextTick( () => {
222-
expect(model.skills).to.be.deep.equal([3, 1]);
214+
expect(model.skills).to.be.deep.equal([3, 1]);
223215
done();
224216
});
225217

226218
});
227219

228-
});
220+
});
229221

230222
});
231223

@@ -316,7 +308,7 @@ describe("fieldChecklist.vue", function() {
316308
trigger(checkboxes[0], "change");
317309

318310
vm.$nextTick( () => {
319-
expect(model.skills).to.be.deep.equal(["ReactJS", "HTML5"]);
311+
expect(model.skills).to.be.deep.equal(["ReactJS", "HTML5"]);
320312
done();
321313
});
322314

@@ -327,7 +319,7 @@ describe("fieldChecklist.vue", function() {
327319
trigger(checkboxes[0], "change");
328320

329321
vm.$nextTick( () => {
330-
expect(model.skills).to.be.deep.equal(["ReactJS"]);
322+
expect(model.skills).to.be.deep.equal(["ReactJS"]);
331323
done();
332324
});
333325

@@ -339,11 +331,11 @@ describe("fieldChecklist.vue", function() {
339331
trigger(checkboxes[0], "change");
340332

341333
vm.$nextTick( () => {
342-
expect(model.skills).to.be.deep.equal(["HTML5"]);
334+
expect(model.skills).to.be.deep.equal(["HTML5"]);
343335
done();
344336
});
345337

346-
});
338+
});
347339

348340
});
349341

test/unit/specs/fields/fieldCleave.spec.js

+15-25
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { createVueField, trigger } from "../util";
2+
import { createVueField, trigger, checkAttribute } from "../util";
33

44
import Vue from "vue";
55
import FieldCleave from "src/fields/fieldCleave.vue";
@@ -19,8 +19,9 @@ describe("fieldCleave.vue", function() {
1919
type: "masked",
2020
label: "Phone",
2121
model: "phone",
22+
autocomplete: "off",
23+
placeholder: "",
2224
readonly: false,
23-
placeholder: "Field placeholder",
2425
cleaveOptions: {
2526
phone: true,
2627
phoneRegionCode: "HU",
@@ -41,40 +42,29 @@ describe("fieldCleave.vue", function() {
4142
expect(input).to.be.defined;
4243
expect(input.type).to.be.equal("text");
4344
expect(input.classList.contains("form-control")).to.be.true;
44-
expect(input.placeholder).to.be.equal(schema.placeholder);
45-
expect(input.readOnly).to.be.false;
46-
expect(input.disabled).to.be.false;
4745
});
4846

4947
it("should contain the value", (done) => {
5048
vm.$nextTick( () => {
51-
expect(input.value).to.be.equal("30 123 4567");
49+
expect(input.value).to.be.equal("30 123 4567");
5250
done();
5351
});
5452
});
5553

56-
it("should set readOnly", (done) => {
57-
schema.readonly = true;
58-
vm.$nextTick( () => {
59-
expect(input.readOnly).to.be.true;
60-
schema.readonly = false;
61-
done();
62-
});
63-
});
54+
describe("check optional attribute", () => {
55+
let attributes = ["autocomplete", "disabled", "readonly"];
6456

65-
it("should set disabled", (done) => {
66-
field.disabled = true;
67-
vm.$nextTick( () => {
68-
expect(input.disabled).to.be.true;
69-
field.disabled = false;
70-
done();
57+
attributes.forEach(function(name) {
58+
it("should set " + name, function(done) {
59+
checkAttribute(name, vm, input, field, schema, done);
60+
});
7161
});
7262
});
7363

7464
it("input value should be the model value after changed", (done) => {
7565
model.phone = "70 555 4433";
7666
vm.$nextTick( () => {
77-
expect(input.value).to.be.equal("70 555 4433");
67+
expect(input.value).to.be.equal("70 555 4433");
7868
done();
7969
});
8070

@@ -85,23 +75,23 @@ describe("fieldCleave.vue", function() {
8575
trigger(input, "input");
8676

8777
vm.$nextTick( () => {
88-
expect(model.phone).to.be.equal("21 888 6655");
78+
expect(model.phone).to.be.equal("21 888 6655");
8979
done();
9080
});
9181

9282
});
9383

9484
it("should be formatted data in model", (done) => {
9585
field.cleave.setRawValue("301234567");
96-
expect(input.value).to.be.equal("30 123 4567");
86+
expect(input.value).to.be.equal("30 123 4567");
9787
trigger(input, "change");
9888

9989
vm.$nextTick( () => {
100-
expect(model.phone).to.be.equal("30 123 4567");
90+
expect(model.phone).to.be.equal("30 123 4567");
10191
done();
10292
});
10393

104-
});
94+
});
10595

10696
});
10797

0 commit comments

Comments
 (0)