Update DOM prep JS and add html options wrapper function
This commit is contained in:
@@ -223,6 +223,7 @@ const cel = (tag, id = '', content = '', css = [], options = {}) =>
|
|||||||
element = {
|
element = {
|
||||||
tag: tag,
|
tag: tag,
|
||||||
id: id,
|
id: id,
|
||||||
|
name: options.name, // override name if set [name gets ignored in tree build anyway]
|
||||||
content: content,
|
content: content,
|
||||||
css: css,
|
css: css,
|
||||||
options: options,
|
options: options,
|
||||||
@@ -279,7 +280,7 @@ function phfo(tree)
|
|||||||
line += ' id="' + tree.id + '"';
|
line += ' id="' + tree.id + '"';
|
||||||
// if anything input (input, textarea, select then add name too)
|
// if anything input (input, textarea, select then add name too)
|
||||||
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
if (['input', 'textarea', 'select'].includes(tree.tag)) {
|
||||||
line += ' name="' + tree.id + '"';
|
line += ' name="' + (tree.name ? tree.name : tree.id) + '"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// second CSS
|
// second CSS
|
||||||
@@ -322,3 +323,58 @@ function phfo(tree)
|
|||||||
// combine to string
|
// combine to string
|
||||||
return content.join('');
|
return content.join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BLOCK: html wrappers for quickly creating html data blocks
|
||||||
|
// METHOD: html_options
|
||||||
|
// PARAMS: name/id, array for the options, selected item uid
|
||||||
|
// options_only: if this is true, it will not print the select part
|
||||||
|
// return_string, return as string and not as element
|
||||||
|
// RETURN: html with build options block
|
||||||
|
// DESC : creates an select/options drop down block.
|
||||||
|
// the array needs to be key -> value format. key is for the option id and value is for the data output
|
||||||
|
function html_options(name, data, selected = '', options_only = false, return_string = false)
|
||||||
|
{
|
||||||
|
let content = [];
|
||||||
|
let element_select;
|
||||||
|
let element_option;
|
||||||
|
// set outside select, gets stripped on return if options only is true
|
||||||
|
element_select = cel('select', name);
|
||||||
|
// console.log('Call for %s, options: %s', name, options_only);
|
||||||
|
$H(data).each(function(t) {
|
||||||
|
console.log('options: key: %s, value: %s', t.key, t.value);
|
||||||
|
// basic options init
|
||||||
|
let options = {
|
||||||
|
'label': t.value,
|
||||||
|
'value': t.key
|
||||||
|
};
|
||||||
|
// add selected if matching
|
||||||
|
if (selected == t.key) {
|
||||||
|
options.selected = '';
|
||||||
|
}
|
||||||
|
// create the element option
|
||||||
|
element_option = cel('option', '', t.value, '', options);
|
||||||
|
// attach it to the select element
|
||||||
|
ael(element_select, element_option);
|
||||||
|
});
|
||||||
|
// if with select part, convert to text
|
||||||
|
if (!options_only) {
|
||||||
|
if (return_string) {
|
||||||
|
content.push(phfo(element_select));
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// strip select part
|
||||||
|
if (return_string) {
|
||||||
|
element.sub.each(function(t) {
|
||||||
|
content.push(phfo(t));
|
||||||
|
});
|
||||||
|
return content.join('');
|
||||||
|
} else {
|
||||||
|
return element_select.sub;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* END */
|
||||||
|
|||||||
Reference in New Issue
Block a user