diff --git a/client/SEAWebClient.html b/client/SEAWebClient.html
index 49d51e8..0423481 100644
--- a/client/SEAWebClient.html
+++ b/client/SEAWebClient.html
@@ -34,8 +34,6 @@
-
-
@@ -43,8 +41,6 @@
-
-
@@ -55,7 +51,6 @@
-
diff --git a/client/cssFiles/SEAWebClientGroup.css b/client/cssFiles/SEAWebClientGroup.css
index 48f0a5d..e801f93 100644
--- a/client/cssFiles/SEAWebClientGroup.css
+++ b/client/cssFiles/SEAWebClientGroup.css
@@ -57,7 +57,7 @@
height: 12px;
line-height: 16px;
opacity: .8;
- text-align: top;
+ vertical-align: top;
margin-bottom: 4px;
}
@@ -66,7 +66,8 @@
.col-left {
display: inline-block;
- min-width: 140px;
+ width: 155px;
+ vertical-align: top;
}
/* ------------------------------ info ------------------------------ */
@@ -131,15 +132,18 @@
/* right */
.col-right-modules {
- float: right;
+ display: inline-block;
+ width: 180px;
}
.col-right-parameters {
- float: right;
+ display: inline-block;
+ width: 180px;
}
.col-right-value {
- padding-right: 4px;
+ display: block;
+ text-align: right;
}
.col-right-disabled {
@@ -149,7 +153,9 @@
/* ------------------------------ edit-icon ------------------------------ */
.edit-icon {
- float: right;
+ position: absolute;
+ top: 4px;
+ right: 2px;
cursor: pointer;
}
@@ -270,3 +276,27 @@ option {
border: 2px solid dimgray;
border-radius: 4px;
}
+
+/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
+/* PANEL <- moved here from SEAWebClientSwiper.css */
+.panel {
+ background-color: #303030;
+ /* position: absolute; */
+ z-index: 20;
+ width: 100%;
+ height: 30px;
+}
+.panel:not(.graphics) {
+ color: white;
+ text-align: center;
+ padding: 6px 6px 6px 6px;
+}
+
+.panel.graphics{
+ display: flex;
+ justify-content: flex-end;
+}
+
+.toggle-updates-graphics {
+ float: right;
+}
diff --git a/client/jsFiles/SEAWebClientCommunication.js b/client/jsFiles/SEAWebClientCommunication.js
index 3bf59fd..aaa4365 100644
--- a/client/jsFiles/SEAWebClientCommunication.js
+++ b/client/jsFiles/SEAWebClientCommunication.js
@@ -192,7 +192,7 @@ function updateValues(message, src) {
// Handles changes of parameter-values
for (var i = 0; i < message.updates.length; i++) {
let component = message.updates[i];
- let value = component.value;
+ let comp_value = component.value;
let matches = document.getElementsByName(component.name);
// Check for status updates
@@ -210,27 +210,25 @@ function updateValues(message, src) {
elem.innerHTML = text;
}
} else if (type == "input") {
- let row = elem.parentNode.parentNode.parentNode;
+ let row = elem.closest('div');
row.style.backgroundColor = "white";
- let mval = elem.value;
- let oldValue = ('oldValue' in elem) ? elem.oldValue : mval;
- if (value != mval && parseFloat(value) != parseFloat(mval) && value != oldValue) {
- if (elem == document.activeElement
- || oldValue != mval) {
+
+ let oldValue = ('oldValue' in elem) ? elem.oldValue : elem.value;
+ if (comp_value != elem.value && parseFloat(comp_value) != parseFloat(elem.value) && comp_value != oldValue) {
+ if (elem == document.activeElement || oldValue != elem.value) {
row.style.backgroundColor = "orange";
} else {
- elem.value = value;
+ elem.value = comp_value;
}
}
- elem.actualValue = value;
- resize_textfield(elem);
+ elem.actualValue = comp_value;
+ resizeTextfield(elem);
} else if (type == "checkbox") {
let row = elem.closest('div');
row.style.backgroundColor = "white";
- console.log('receive: ', value);
- // console.log('CBX', elem.name, message, Boolean(value && value != 'false'));
- // elem.checked = Boolean(value && value != 'false');
- if (value === 'False') {
+
+ console.log('receive: ', comp_value);
+ if (comp_value == 'False' || comp_value == 'false' || comp_value == 0) {
elem.checked = false;
} else {
elem.checked = true;
@@ -242,7 +240,7 @@ function updateValues(message, src) {
let options = elem.childNodes;
for (var j = 0; j < options.length; j++) {
- if (options[j].label == value) {
+ if (options[j].label == comp_value) {
elem.value = j + 1;
}
}
@@ -370,16 +368,8 @@ function successHandler(s, message) {
isl = appendToGridElement(2, message.title, 'parameters', createContent(message));
adjustGrid();
if (nColumns == 1 || nColumns == 2 || nColumns == 3) {
- // elements[1].style.display = "none"; // hide modules
- // elements[2].style.display = "inline-block"; // show parameters
- // style(2,"100vw","100vh");
document.getElementById('close-cross').innerHTML = '
';
}
- // else if (nColumns == 2 || nColumns == 3) {
- // adjustGrid();
- // } else {
- // adjustGrid();
- // }
}
nextInitCommand();
// Request for updates.
diff --git a/client/jsFiles/SEAWebClientGroup.js b/client/jsFiles/SEAWebClientGroup.js
index d847e70..06eec24 100644
--- a/client/jsFiles/SEAWebClientGroup.js
+++ b/client/jsFiles/SEAWebClientGroup.js
@@ -29,10 +29,10 @@ function createContent(message) {
component.command = component.name;
if (message.title == 'modules') {
- let row = create_row_for_modules(component);
+ let row = createRowForModules(component);
content.appendChild(row);
} else {
- let row = create_row_for_parameters(component);
+ let row = createRowForParameters(component);
content.appendChild(row);
}
}
@@ -42,13 +42,13 @@ function createContent(message) {
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
// ROW
-function create_row_for_modules(component) {
- let left = create_left_column(component, 1);
+function createRowForModules(component) {
+ let left = createLeftColumnForModules(component);
left.id = component.name;
left.setAttribute('name', 'component.title');
- let right = create_right_column_for_modules(component);
- let row = append_to_content(left, right);
+ let right = createRightColumnForModules(component);
+ let row = appendToContent(left, right);
row.onclick = function () {
getGroup(s, component.title);
@@ -57,8 +57,10 @@ function create_row_for_modules(component) {
return row;
}
-function create_row_for_parameters(component) {
- let left = create_left_column(component);
+function createRowForParameters(component) {
+ let left = document.createElement('span');
+ left.classList.add('col-left');
+ left.innerHTML = component.title;
let right = document.createElement('span');
right.classList.add('col-right-parameters');
let value = document.createElement('span');
@@ -72,26 +74,40 @@ function create_row_for_parameters(component) {
component.type == 'checkbox' ||
component.type == 'enum'
) {
- let edit = document.createElement('img');
- edit.setAttribute('src', 'res/icon_edit.png');
- edit.classList.add('modules-icon', 'edit-icon');
- createFunc = window['create_' + component.type]
- let input_element = createFunc(component);
+ let input_element;
+ switch (component.type) {
+ case 'enum':
+ input_element = createEnum(component);
+ break;
+ case 'pushbutton':
+ input_element = createPushbutton(component);
+ break;
+ case 'input':
+ input_element = createInput(component);
+ break;
+ case 'checkbox':
+ input_element = createCheckbox(component);
+ break;
+ }
input_element.classList.add('input-element', 'input-element-hidden');
- edit.onclick = function () {
+
+ let icon_edit = document.createElement('img');
+ icon_edit.setAttribute('src', 'res/icon_edit.png');
+ icon_edit.classList.add('modules-icon', 'edit-icon');
+ icon_edit.onclick = function () {
let is_hidden = input_element.classList.contains('input-element-hidden');
- hide_input_elements();
+ hideInputElements();
if (is_hidden) {
input_element.classList.remove('input-element-hidden');
}
}
- right.appendChild(edit);
+ right.appendChild(icon_edit);
right.appendChild(input_element);
}
- return append_to_content(left, right);
+ return appendToContent(left, right);
}
-function append_to_content(left, right) {
+function appendToContent(left, right) {
let row = document.createElement('div');
row.classList.add("row");
row.appendChild(left);
@@ -102,32 +118,28 @@ function append_to_content(left, right) {
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
// LEFT COLUMN
-function create_left_column(component, modules) {
+function createLeftColumnForModules(component) {
var left = document.createElement('span');
left.classList.add('col-left');
- if (modules) {
- if (component.statusname) {
- left.appendChild(create_status_icon(component));
- }
- let modules_title = document.createElement('span');
- modules_title.classList.add('modules-title');
- modules_title.innerHTML = component.title;
- left.appendChild(modules_title);
- if (component.statusname) {
- let status_info = document.createElement('span');
- status_info.classList.add('status-info');
- status_info.setAttribute('name', component.title + '-info');
- left.appendChild(status_info);
- }
- if (component.info) {
- let btn_info = document.createElement('span');
- btn_info.innerHTML = '(i)';
- btn_info.classList.add('button-info');
- left.appendChild(btn_info);
- left.appendChild(createInfo(component));
- }
- } else {
- left.innerHTML = component.title;
+ if (component.statusname) {
+ left.appendChild(create_status_icon(component));
+ }
+ let modules_title = document.createElement('span');
+ modules_title.classList.add('modules-title');
+ modules_title.innerHTML = component.title;
+ left.appendChild(modules_title);
+ if (component.statusname) {
+ let status_info = document.createElement('span');
+ status_info.classList.add('status-info');
+ status_info.setAttribute('name', component.title + '-info');
+ left.appendChild(status_info);
+ }
+ if (component.info) {
+ let btn_info = document.createElement('span');
+ btn_info.innerHTML = '(i)';
+ btn_info.classList.add('button-info');
+ left.appendChild(btn_info);
+ left.appendChild(create_info(component));
}
return left;
@@ -139,20 +151,20 @@ function create_left_column(component, modules) {
icon_status.classList.add('status-icon');
return icon_status;
}
-}
-function createInfo(component) {
- // Creates info-box, which isn't visible by default but can be displayed.
- let infoBox = document.createElement('span');
- infoBox.classList.add("info-box");
- infoBox.innerHTML = '' + component.title + ': ' + component.info;
- return infoBox;
+ function create_info(component) {
+ // Creates info-box, which isn't visible by default but can be displayed.
+ let infoBox = document.createElement('span');
+ infoBox.classList.add("info-box");
+ infoBox.innerHTML = '' + component.title + ': ' + component.info;
+ return infoBox;
+ }
}
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
// RIGHT COLUMN
-function create_right_column_for_modules(component) {
+function createRightColumnForModules(component) {
var right = document.createElement('span');
right.classList.add('col-right', 'col-right-modules');
let value = document.createElement('span');
@@ -173,9 +185,9 @@ function create_right_column_for_modules(component) {
/* ---------------------------------------------------------------------------------- */
// input elements
-function create_pushbutton(component) {
+function createPushbutton(component) {
// Creates row-element containing a push button
- var elem = create_input_element(component);
+ var elem = createInputElement(component);
elem.classList.add("push-button");
elem.onclick = function (e) {
console.log('click pushbutton');
@@ -188,10 +200,10 @@ function create_pushbutton(component) {
return elem;
}
-function create_input(component) {
+function createInput(component) {
// Creates row-element containing input-item.
var command = component.command;
- var input = create_input_element(component, 'input', 'input-text');
+ var input = createInputElement(component, 'input', 'input-text');
input.type = "text";
input.style.width = "100px";
input.addEventListener("focus", function(evt) {
@@ -204,10 +216,10 @@ function create_input(component) {
// User decided to cancel
let input = e.target;
input.value = input.oldValue;
- resize_textfield(input);
+ resizeTextfield(input);
var row = input.closest('div');
row.style.backgroundColor = "white";
- hide_input_elements();
+ hideInputElements();
}
}
@@ -247,16 +259,16 @@ function create_input(component) {
row.style.backgroundColor = "orangered";
// Request for command
sendCommand(s, command + " " + value);
- resize_textfield(input);
+ resizeTextfield(input);
prompt = false;
- hide_input_elements();
+ hideInputElements();
}, function () {
// User decided to cancel
input.value = input.actualValue;
- resize_textfield(input);
+ resizeTextfield(input);
row.style.backgroundColor = "white";
prompt = false;
- hide_input_elements();
+ hideInputElements();
});
}
@@ -269,7 +281,7 @@ function create_input(component) {
input.actualValue = input.value;
sendCommand(s, component.name + " " + input.value);
input.blur();
- hide_input_elements();
+ hideInputElements();
};
form.appendChild(input);
return form;
@@ -287,9 +299,9 @@ function create_input(component) {
}
}
-function create_checkbox(component) {
+function createCheckbox(component) {
// Creates row-element containing checkbox-item
- var input = create_input_element(component, 'input', 'parameter-checkbox');
+ var input = createInputElement(component, 'input', 'parameter-checkbox');
input.type = "checkbox";
input.onclick = function () {
@@ -302,7 +314,7 @@ function create_checkbox(component) {
row.style.backgroundColor = "orangered";
console.log('send ', input.checked);
sendCommand(s, component.command + " " + input.checked);
- // hide_input_elements();
+ // hideInputElements();
};
let right = document.createElement('span');
@@ -310,10 +322,10 @@ function create_checkbox(component) {
return right;
}
-function create_enum(component) {
+function createEnum(component) {
// Creates row-element containing dropdown-selection.
var buttons = component.enum_names;
- var select = create_input_element(component, 'select', 'select-params');
+ var select = createInputElement(component, 'select', 'select-params');
for (var i = 0; i < buttons.length; i++) {
var option = document.createElement('option');
@@ -330,7 +342,7 @@ function create_enum(component) {
let index = select.value - 1;
console.log('send', buttons[index].title);
sendCommand(s, component.command + " " + select.value);
- // hide_input_elements();
+ // hideInputElements();
};
select.onfocus = function () {
@@ -343,7 +355,7 @@ function create_enum(component) {
return right;
}
-function create_input_element(component, tag='span', cls='col-right-modules') {
+function createInputElement(component, tag='span', cls='col-right-modules') {
var input_element = document.createElement(tag);
input_element.classList.add('col-right');
if (cls)
@@ -356,14 +368,14 @@ function create_input_element(component, tag='span', cls='col-right-modules') {
/* ---------------------------------------------------------------------------------- */
-function hide_input_elements(){
+function hideInputElements(){
let input_elements = document.getElementsByClassName('input-element');
for (let i = 0; i < input_elements.length; i++) {
input_elements[i].classList.add('input-element-hidden');
}
}
-function resize_textfield(input) {
+function resizeTextfield(input) {
if (input.value.length > input.size * 12 / 20) {
var str0 = window.getComputedStyle(input).fontSize;
var str1 = str0.substring(0, str0.length - 2);
@@ -404,7 +416,7 @@ function appendToGridElement(s, title, type, content) {
/* ---------------------------------------------------------------------------------- */
// obsolete...
-// function create_pushbutton_row(component) {
+// function createPushbutton_row(component) {
// // Creates row-element containing a push button
// var name = component.name;
// var command = component.command;
@@ -413,10 +425,10 @@ function appendToGridElement(s, title, type, content) {
// left.id = component.name;
// left.name = component.title;
-// var right = create_input_element(component);
+// var right = createInputElement(component);
// right.classList.add("push-button");
-// row = append_to_content(left, right);
+// row = appendToContent(left, right);
// right.onclick = function () {
// if (writePermission) {
// var row = left.parentNode;
@@ -456,7 +468,7 @@ function appendToGridElement(s, title, type, content) {
// var command = component.command;
// var left = createTitle(component);
-// var input = create_input_element(component, 'input', 'input-text');
+// var input = createInputElement(component, 'input', 'input-text');
// input.type = "text";
// input.style.width = "100px";
// input.addEventListener("focus", function(evt) {
@@ -468,7 +480,7 @@ function appendToGridElement(s, title, type, content) {
// if (e.which === 27 || e.key == "Escape") {
// // User decided to cancel
// input.value = intput.oldValue;
-// resize_textfield(input);
+// resizeTextfield(input);
// var row = left.parentNode;
// row.style.backgroundColor = "white";
// }
@@ -514,12 +526,12 @@ function appendToGridElement(s, title, type, content) {
// row.style.backgroundColor = "orangered";
// // Request for command
// sendCommand(s, command + " " + value);
-// resize_textfield(input);
+// resizeTextfield(input);
// prompt = false;
// }, function () {
// // User decided to cancel
// input.value = input.actualValue;
-// resize_textfield(input);
+// resizeTextfield(input);
// row.style.backgroundColor = "white";
// prompt = false;
// });
@@ -552,20 +564,20 @@ function appendToGridElement(s, title, type, content) {
// input.actualValue = value;
// // Request for command
// sendCommand(s, command + " " + value);
-// resize_textfield(input);
+// resizeTextfield(input);
// prompt = false;
// }, function () {
// // User decided to cancel
// input.value = input.oldValue;
-// resize_textfield(input);
+// resizeTextfield(input);
// prompt = false;
// });
// }
// };
// form.appendChild(input);
-// var right = create_input_element(component);
+// var right = createInputElement(component);
// right.appendChild(form);
-// return append_to_content(left, right);
+// return appendToContent(left, right);
// function posTextfield(s, left) {
// if (debug_group_daniel) {
@@ -580,11 +592,11 @@ function appendToGridElement(s, title, type, content) {
// }
// }
-// function create_checkbox_row(component) {
+// function createCheckbox_row(component) {
// // Creates row-element containing checkbox-item
// var command = component.command;
// var left = createTitle(component);
-// var input = create_input_element(component, 'input', 'parameter-checkbox');
+// var input = createInputElement(component, 'input', 'parameter-checkbox');
// input.type = "checkbox";
// input.onkeyup = function (e) {
// if (e.keyCode === 32) {
@@ -644,16 +656,16 @@ function appendToGridElement(s, title, type, content) {
// right.classList.add("col-right");
// right.appendChild(input);
// right.appendChild(label);
-// return append_to_content(left, right);
+// return appendToContent(left, right);
// }
-// function create_enum_row(component) {
+// function createEnum_row(component) {
// // Creates row-element containing dropdown-selection.
// var name = component.name;
// var command = component.command;
// var buttons = component.enum_names;
// var left = createTitle(component);
-// var select = create_input_element(component, 'select', 'select-params');
+// var select = createInputElement(component, 'select', 'select-params');
// select.onfocus = function () {
// select.oldIndex = select.selectedIndex;
// }
@@ -698,7 +710,7 @@ function appendToGridElement(s, title, type, content) {
// var right = document.createElement('span');
// right.classList.add("col-right");
// right.appendChild(select);
-// return append_to_content(left, right);
+// return appendToContent(left, right);
// }
// ...obsolete
@@ -738,8 +750,8 @@ function appendToGridElement(s, title, type, content) {
// // Creates row-element containing link AND read-only-item.
// var link = component.link;
// if (!link) // simple rdonly
-// return append_to_content(createTitle(component),
-// create_input_element(component));
+// return appendToContent(createTitle(component),
+// createInputElement(component));
// // with link
// var left = document.createElement('a');
@@ -749,7 +761,7 @@ function appendToGridElement(s, title, type, content) {
// left.id = component.name;
-// row = append_to_content(left, create_input_element(component));
+// row = appendToContent(left, createInputElement(component));
// row.onclick = function () {
// this.style.backgroundColor = "orangered";
// left.click();