|
@@ -2,12 +2,12 @@ const FormBus = new Vue();
|
|
|
|
|
|
Vue.filter('translate', function (value) {
|
|
Vue.filter('translate', function (value) {
|
|
if (!value) return ''
|
|
if (!value) return ''
|
|
- value = value.replace(/[ ]/g,"_").replace(/[.]/g, "_").replace(/[-]/g, "_").replace(/[,]/g,"_").replace(/[(]/g,"_").replace(/[)]/g,"_").toUpperCase()
|
|
|
|
- translated_string = labels[value]
|
|
|
|
|
|
+ transvalue = value.replace(/[ ]/g,"_").replace(/[.]/g, "_").replace(/[-]/g, "_").replace(/[,]/g,"_").replace(/[(]/g,"_").replace(/[)]/g,"_").toUpperCase()
|
|
|
|
+ translated_string = labels[transvalue]
|
|
if(!translated_string || translated_string.length === 0){
|
|
if(!translated_string || translated_string.length === 0){
|
|
- return value + '?'
|
|
|
|
|
|
+ return value
|
|
} else {
|
|
} else {
|
|
- return labels[value]
|
|
|
|
|
|
+ return labels[transvalue]
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
@@ -37,18 +37,42 @@ Vue.component('component-text', {
|
|
},
|
|
},
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+Vue.component('component-hidden', {
|
|
|
|
+ props: ['class', 'id', 'maxlength', 'required', 'disabled', 'name', 'type', 'value', 'errors'],
|
|
|
|
+ template: '<div class="hidden">' +
|
|
|
|
+ '<input type="hidden"' +
|
|
|
|
+ ' :id="id"' +
|
|
|
|
+ ' :maxlength="maxlength"' +
|
|
|
|
+ ' :name="name"' +
|
|
|
|
+ ' :value="value"' +
|
|
|
|
+ '@input="update($event, name)">' +
|
|
|
|
+ '</div>',
|
|
|
|
+ methods: {
|
|
|
|
+ update: function($event, name)
|
|
|
|
+ {
|
|
|
|
+ FormBus.$emit('forminput', {'name': name, 'value' : $event.target.value});
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+})
|
|
|
|
+
|
|
Vue.component('component-textarea', {
|
|
Vue.component('component-textarea', {
|
|
props: ['class', 'id', 'description', 'maxlength', 'readonly', 'required', 'disabled', 'placeholder', 'label', 'name', 'type', 'value', 'errors'],
|
|
props: ['class', 'id', 'description', 'maxlength', 'readonly', 'required', 'disabled', 'placeholder', 'label', 'name', 'type', 'value', 'errors'],
|
|
|
|
+ data: function () {
|
|
|
|
+ return {
|
|
|
|
+ textareaclass: ''
|
|
|
|
+ }
|
|
|
|
+ },
|
|
template: '<div class="large">' +
|
|
template: '<div class="large">' +
|
|
'<label>{{ label|translate }}</label>' +
|
|
'<label>{{ label|translate }}</label>' +
|
|
- '<textarea ' +
|
|
|
|
|
|
+ '<textarea rows="8" ' +
|
|
' :id="id"' +
|
|
' :id="id"' +
|
|
|
|
+ ' :class="textareaclass"' +
|
|
' :readonly="readonly"' +
|
|
' :readonly="readonly"' +
|
|
' :required="required"' +
|
|
' :required="required"' +
|
|
' :disabled="disabled"' +
|
|
' :disabled="disabled"' +
|
|
' :name="name"' +
|
|
' :name="name"' +
|
|
' :placeholder="placeholder"' +
|
|
' :placeholder="placeholder"' +
|
|
- ' :value="value"' +
|
|
|
|
|
|
+ ' :value="formatValue(value)"' +
|
|
' @input="update($event, name)"></textarea>' +
|
|
' @input="update($event, name)"></textarea>' +
|
|
'<span v-if="errors[name]" class="error">{{ errors[name] }}</span>' +
|
|
'<span v-if="errors[name]" class="error">{{ errors[name] }}</span>' +
|
|
'<span v-else class="fielddescription"><small>{{ description|translate }}</small></span>' +
|
|
'<span v-else class="fielddescription"><small>{{ description|translate }}</small></span>' +
|
|
@@ -58,6 +82,15 @@ Vue.component('component-textarea', {
|
|
{
|
|
{
|
|
FormBus.$emit('forminput', {'name': name, 'value' : $event.target.value});
|
|
FormBus.$emit('forminput', {'name': name, 'value' : $event.target.value});
|
|
},
|
|
},
|
|
|
|
+ formatValue: function(value)
|
|
|
|
+ {
|
|
|
|
+ if(value !== null && typeof value === 'object')
|
|
|
|
+ {
|
|
|
|
+ this.textareaclass = 'codearea';
|
|
|
|
+ return JSON.stringify(value, undefined, 4);
|
|
|
|
+ }
|
|
|
|
+ return value;
|
|
|
|
+ },
|
|
},
|
|
},
|
|
})
|
|
})
|
|
|
|
|