X-data-* vendor extension for parameter objects
Exposes X-data- as html data attributes for parameter objects See comment in #991
This commit is contained in:
@@ -11,6 +11,14 @@ Handlebars.registerHelper('renderTextParam', function(param) {
|
|||||||
var isArray = param.type.toLowerCase() === 'array' || param.allowMultiple;
|
var isArray = param.type.toLowerCase() === 'array' || param.allowMultiple;
|
||||||
var defaultValue = isArray && Array.isArray(param.default) ? param.default.join('\n') : param.default;
|
var defaultValue = isArray && Array.isArray(param.default) ? param.default.join('\n') : param.default;
|
||||||
|
|
||||||
|
var dataVendorExtensions = Object.keys(param).filter(function(property) {
|
||||||
|
// filter X-data- properties
|
||||||
|
return property.match(/^X-data-/) !== null;
|
||||||
|
}).reduce(function(result, property) {
|
||||||
|
// remove X- from property name, so it results in html attributes like data-foo='bar'
|
||||||
|
return result += ' ' + property.substring(2, property.length) + '=\'' + param[property] + '\'';
|
||||||
|
}, '');
|
||||||
|
|
||||||
if (typeof defaultValue === 'undefined') {
|
if (typeof defaultValue === 'undefined') {
|
||||||
defaultValue = '';
|
defaultValue = '';
|
||||||
}
|
}
|
||||||
@@ -24,7 +32,7 @@ Handlebars.registerHelper('renderTextParam', function(param) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(isArray) {
|
if(isArray) {
|
||||||
result = '<textarea class=\'body-textarea' + (param.required ? ' required' : '') + '\' name=\'' + param.name + '\'' + idAtt;
|
result = '<textarea class=\'body-textarea' + (param.required ? ' required' : '') + '\' name=\'' + param.name + '\'' + idAtt + dataVendorExtensions;
|
||||||
result += ' placeholder=\'Provide multiple values in new lines' + (param.required ? ' (at least one required).' : '.') + '\'>';
|
result += ' placeholder=\'Provide multiple values in new lines' + (param.required ? ' (at least one required).' : '.') + '\'>';
|
||||||
result += defaultValue + '</textarea>';
|
result += defaultValue + '</textarea>';
|
||||||
} else {
|
} else {
|
||||||
@@ -33,7 +41,7 @@ Handlebars.registerHelper('renderTextParam', function(param) {
|
|||||||
parameterClass += ' required';
|
parameterClass += ' required';
|
||||||
}
|
}
|
||||||
result = '<input class=\'' + parameterClass + '\' minlength=\'' + (param.required ? 1 : 0) + '\'';
|
result = '<input class=\'' + parameterClass + '\' minlength=\'' + (param.required ? 1 : 0) + '\'';
|
||||||
result += ' name=\'' + param.name +'\' placeholder=\'' + (param.required ? '(required)' : '') + '\'' + idAtt;
|
result += ' name=\'' + param.name +'\' placeholder=\'' + (param.required ? '(required)' : '') + '\'' + idAtt + dataVendorExtensions;
|
||||||
result += ' type=\'' + type + '\' value=\'' + defaultValue + '\'/>';
|
result += ' type=\'' + type + '\' value=\'' + defaultValue + '\'/>';
|
||||||
}
|
}
|
||||||
return new Handlebars.SafeString(result);
|
return new Handlebars.SafeString(result);
|
||||||
|
|||||||
Reference in New Issue
Block a user