});
}
-function renderPreview(section) {
- var preview = E('div', { class: 'cbi-section-preview' }, [
- E('ul'), E('div')
- ]);
-
- section.querySelectorAll('.cbi-value-field[data-name], .cbi-value').forEach(function(field) {
- var name = null, title = null, value = null;
-
- if (field.classList.contains('cbi-value-field')) {
- name = field.getAttribute('data-name');
- title = field.getAttribute('data-title');
- }
- else {
- var label = field.querySelector('label.cbi-value-title[for]');
- if (label) {
- name = label.getAttribute('for').split(/\./)[3];
- title = (label.innerText || '').trim();
- }
- }
-
- if (name === null)
- return;
-
- field.querySelectorAll('select, input').forEach(function(input) {
- var n = (input.name || input.id || '').split(/\./);
-
- if (n.length === 6 && n[0] === 'cbi' && n[1] === 'combobox') {
- if (value && input.selectedIndex >= 0)
- value = input.options[input.selectedIndex].text;
- }
- else if (n.length === 4 && n[0] === 'cbid' && n[3] === name) {
- var v = null;
-
- switch (input.type) {
- case 'checkbox':
- v = input.checked ? '✔' : '✘';
- break;
-
- case 'password':
- v = input.value ? '***' : null;
- break;
-
- case 'submit':
- v = null;
- break;
-
- default:
- if (matchesElem(input, 'select') && input.selectedIndex >= 0)
- v = input.options[input.selectedIndex].text;
- else
- v = input.value;
- break;
- }
-
- if (v !== undefined && v !== null && v !== '')
- value = (value === null) ? v : value + ', ' + v;
- }
- });
-
- if (value !== null)
- preview.firstChild.appendChild(E('li', {}, [
- (title || name), ': ',
- E('strong', {}, value)
- ]));
- });
-
- section.parentNode.insertBefore(preview, section);
-}
-
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('.table').forEach(cbi_update_table);
-
- document.querySelectorAll('.cbi-section-node').forEach(renderPreview);
});