Skip to content

Commit c727d7a

Browse files
committed
Better label support for more inputs:
- Cleave - DataTimePicker - GoogleAddress - Label - Masked - Select - Spectrum - Switch Don't output labels for the following input types: - button - image - submit - reset
1 parent 6cfde46 commit c727d7a

9 files changed

+34
-25
lines changed

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", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName", :id="getFieldID(schema)")
33
</template>
44

55
<script>

src/fields/fieldDateTimePicker.vue

+3-3
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", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName")
3+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName", :id="getFieldID(schema)")
44
span.input-group-addon
55
span.glyphicon.glyphicon-calendar
66
</template>
@@ -19,7 +19,7 @@
1919
methods: {
2020
2121
getDateFormat() {
22-
if (this.schema.dateTimePickerOptions && this.schema.dateTimePickerOptions.format)
22+
if (this.schema.dateTimePickerOptions && this.schema.dateTimePickerOptions.format)
2323
return this.schema.dateTimePickerOptions.format;
2424
else
2525
return inputFormat;
@@ -62,7 +62,7 @@
6262
if ($.fn.datetimepicker){
6363
$(this.$el).data("DateTimePicker").destroy();
6464
}
65-
}
65+
}
6666
};
6767
</script>
6868

src/fields/fieldGoogleAddress.vue

+4-4
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", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName", debounce="500", @focus="geolocate()")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName", debounce="500", @focus="geolocate()", :id="getFieldID(schema)")
33
</template>
44

55
<script>
@@ -59,7 +59,7 @@
5959
if (place) {
6060
6161
this.value = place.formatted_address;
62-
62+
6363
let data = {};
6464
if (place.address_components !== undefined) {
6565
for (let i = 0; i < place.address_components.length; i++) {
@@ -70,12 +70,12 @@
7070
}
7171
7272
}
73-
73+
7474
// Call event in schema
7575
if (isFunction(this.schema.onPlaceChanged))
7676
this.schema.onPlaceChanged(this.value, data, place, this.model, this.schema);
7777
}
78-
},
78+
},
7979
8080
/**
8181
* Get the user location.

src/fields/fieldLabel.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="jade">
2-
span {{ value }}
2+
span(:id="getFieldID(schema)") {{ value }}
33
</template>
44

55
<script>

src/fields/fieldMasked.vue

+2-2
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", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName")
2+
input.form-control(type="text", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :placeholder="schema.placeholder", :readonly="schema.readonly", :name="schema.inputName", :id="getFieldID(schema)")
33
</template>
44

55
<script>
@@ -22,7 +22,7 @@
2222
beforeDestroy() {
2323
if ($.fn.mask)
2424
$(this.$el).unmask();
25-
}
25+
}
2626
};
2727
</script>
2828

src/fields/fieldSelect.vue

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<template lang="jade">
2-
select.form-control(v-model="value", :disabled="disabled", :name="schema.inputName")
2+
select.form-control(v-model="value", :disabled="disabled", :name="schema.inputName", :id="getFieldID(schema)")
33
option(:disabled="schema.required", :value="null", :selected="value == undefined") {{ selectOptions.noneSelectedText || "&lt;Nothing selected&gt;" }}
44
option(v-for="item in items", :value="getItemID(item)") {{ getItemName(item) }}
55
</template>
66

77
<script>
88
import {isObject} from "lodash";
99
import abstractField from "./abstractField";
10-
10+
1111
export default {
1212
mixins: [ abstractField ],
1313
@@ -22,7 +22,7 @@
2222
return values.apply(this, [this.model, this.schema]);
2323
} else
2424
return values;
25-
}
25+
}
2626
},
2727
2828
methods: {

src/fields/fieldSpectrum.vue

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

55
<script>
@@ -15,7 +15,7 @@
1515
};
1616
},
1717
18-
watch: {
18+
watch: {
1919
model() {
2020
if ($.fn.spectrum) {
2121
this.picker.spectrum("set", this.value);

src/fields/fieldSwitch.vue

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<template lang="jade">
22
label
3-
input(type="checkbox", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :name="schema.inputName")
4-
span.label(:data-on="schema.textOn || 'On'", :data-off="schema.textOff || 'Off'")
3+
input(type="checkbox", v-model="value", :autocomplete="schema.autocomplete", :disabled="disabled", :name="schema.inputName", :id="getFieldID(schema)")
4+
span.label(:data-on="schema.textOn || 'On'", :data-off="schema.textOff || 'Off'", :for="getFieldID(schema)")
55
span.handle
66
</template>
77

88
<script>
99
import abstractField from "./abstractField";
10-
10+
1111
export default {
1212
mixins: [ abstractField ],
1313
1414
methods: {
15-
15+
1616
formatValueToField(value) {
1717
if (value != null && this.schema.valueOn)
1818
return value == this.schema.valueOn;
@@ -29,7 +29,7 @@
2929
}
3030
3131
return value;
32-
}
32+
}
3333
}
3434
};
3535
</script>
@@ -39,7 +39,7 @@
3939
$field-switch-width: 120px;
4040
$field-switch-height: 30px;
4141
42-
.vue-form-generator .field-switch {
42+
.vue-form-generator .field-switch {
4343
4444
.field-wrap label {
4545
position: relative;
@@ -132,11 +132,11 @@
132132
left: calc(100% - ($field-switch-height - 1px));
133133
box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2);
134134
}
135-
135+
136136
/* Transition
137137
========================== */
138138
.label, .handle {
139139
transition: all 0.3s ease;
140140
}
141141
}
142-
</style>
142+
</style>

src/formGenerator.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,18 @@ div
145145
146146
// Should field type have a label?
147147
fieldTypeHasLabel(field) {
148-
switch (field.type) {
148+
let relevantType = "";
149+
if (field.type === "input") {
150+
relevantType = field.inputType;
151+
} else {
152+
relevantType = field.type;
153+
}
154+
155+
switch (relevantType) {
149156
case "button":
157+
case "image":
150158
case "submit":
159+
case "reset":
151160
return false;
152161
default:
153162
return true;

0 commit comments

Comments
 (0)