|
@@ -10,7 +10,7 @@ function unbase64(base64) {
|
|
|
|
|
|
// Nitrogen Compatibility Layer
|
|
|
|
|
|
-function direct(term) { ws.send(enc(tuple(atom('direct'),term))); }
|
|
|
+function direct(term) { active ? ws.send(enc(tuple(atom('direct'),term))) : null; }
|
|
|
function validateSources() { return true; }
|
|
|
function querySourceRaw(Id) {
|
|
|
var val, el = document.getElementById(Id);
|
|
@@ -21,7 +21,7 @@ function querySourceRaw(Id) {
|
|
|
val = qs('[id="'+Id+'"]:checked'); val = val ? val.value : ""; break;
|
|
|
case 'INPUT':
|
|
|
switch (el.getAttribute("type")) {
|
|
|
- case 'radio': case 'checkbox': val = qs('input[name='+Id+']:checked'); val = val ? val.value : ""; break;
|
|
|
+ case 'radio': case 'checkbox': val = el ? el.checked : ""; break;
|
|
|
case 'date': val = Date.parse(el.value); val = val && new Date(val) || ""; break;
|
|
|
case 'calendar': val = pickers[el.id]._d || ""; break;
|
|
|
case 'comboLookup': case 'hidden':
|
|
@@ -37,13 +37,26 @@ function querySourceRaw(Id) {
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- if(el.getAttribute('data-text-input')) {
|
|
|
+ if (el.getAttribute('data-text-input')) {
|
|
|
val = querySourceRaw(el.children[1].children[0].id);
|
|
|
- }
|
|
|
- else if (el.getAttribute('data-vector-input')) {
|
|
|
+ } else if (el.getAttribute('data-vector-input')) {
|
|
|
val = querySourceRaw(el.children[1].id);
|
|
|
} else if (el.getAttribute('data-modify-input')) {
|
|
|
- val = querySourceRaw(el.children[1].id);
|
|
|
+ sourceRaw = el.children[1] ? el.children[1].id : el.children[0].id;
|
|
|
+ val = querySourceRaw(sourceRaw)
|
|
|
+ } else if (el.getAttribute('data-group-input')) {
|
|
|
+ val = Array.from(el.querySelectorAll('[data-group-list="saved"]')).map(function (list) {
|
|
|
+ return querySourceRaw(list.id);
|
|
|
+ })
|
|
|
+ } else if (el.getAttribute('data-group-list')) {
|
|
|
+ const items = el.querySelectorAll('[data-group-item]')
|
|
|
+ val = Array.from(items).map(function (item) {
|
|
|
+ let text = item.firstChild.innerHTML;
|
|
|
+ let bind = item.getAttribute('data-bind');
|
|
|
+ if (bind) return {'text': text, 'bind': bind};
|
|
|
+ return text;
|
|
|
+ });
|
|
|
+ val = val.length > 1 ? val : val[0];
|
|
|
} else if (el.getAttribute('data-edit-input')) {
|
|
|
let sortableList = el.children[1];
|
|
|
let sourceRaw = sortableList ? sortableList.id :
|