block assingment

origin
steffen 5 years ago
parent 686570b9ad
commit e9070992d9

@ -1,3 +1,6 @@
2021-01-15:
- web interface for block assignemt seems ready
2020-12-05: 2020-12-05:
- locomotive fixed division by zero - locomotive fixed division by zero
- webinterface: speed 0 was not displayed corecctly in ctrl screen. - webinterface: speed 0 was not displayed corecctly in ctrl screen.

@ -47,54 +47,78 @@ function block_Delete(name) {
function block_contextmenu(name) { function block_contextmenu(name) {
gContextmenuCreate(name); let innerhtml = "";
gContextmenuAdd("Locomotives", 0, 0); innerhtml = "<center><label><select id=\"contextbox_loc\">";
innerhtml += "<option value=\"\"></option>";
for (var i = 0; i < locomotives.length; i++) { for (var i = 0; i < locomotives.length; i++) {
if (locomotives[i].name) if (locomotives[i].name)
gContextmenuAdd(locomotives[i].name, block_ctxmenu_LocoSelect, locomotives[i].name); innerhtml += "<option value=\""+locomotives[i].name+"\">"+locomotives[i].name+"</option>";
} }
gContextmenuAdd("", 0, 0); innerhtml += "</select></label><br>";
gContextmenuAdd("Set DestinationFWD", block_ctxmenu_LocoDestinationFWD, 0); innerhtml += "<button id=\"contextbox_AsgnLD\" type=\"button\">Assign &lArr;&dArr;</button><br>";
gContextmenuAdd("Set DestinationREV", block_ctxmenu_LocoDestinationREV, 0); innerhtml += "<button id=\"contextbox_AsgnRU\" type=\"button\">Assign &rArr;&uArr;</button><br>";
gContextmenuAdd("", 0, 0); innerhtml += "<button id=\"contextbox_SetDLD\" type=\"button\">Go &lArr;&dArr;</button><br>";
gContextmenuAdd("AssignFWD", block_ctxmenu_LocoAssignFWD, 0); innerhtml += "<button id=\"contextbox_SetDRU\" type=\"button\">Go &rArr;&uArr;</button><hr>";
gContextmenuAdd("AssignREV", block_ctxmenu_LocoAssignREV, 0); innerhtml += "<button id=\"contextbox_Clear\" type=\"button\">Clear</button><br>";
gContextmenuAdd("", 0, 0); innerhtml += "<button id=\"contextbox_Off\" type=\"button\">Off</button><hr>";
gContextmenuAdd("Clear", block_ctxmenu_Clear, 0); innerhtml += "<button id=\"contextbox_Close\" type=\"button\">Close</button></center>";
gContextmenuAdd("Offservice", block_ctxmenu_Clear, 1);
gContextmenuCreate(name, innerhtml);
gAddEventListener("contextbox_AsgnLD", 'click', block_ctxmenu_AssignLD);
gAddEventListener("contextbox_AsgnRU", 'click', block_ctxmenu_AssignRU);
gAddEventListener("contextbox_SetDLD", 'click', block_ctxmenu_DestinationLD);
gAddEventListener("contextbox_SetDRU", 'click', block_ctxmenu_DestinationRU);
gAddEventListener("contextbox_Clear", 'click', block_ctxmenu_Clear);
gAddEventListener("contextbox_Off", 'click', block_ctxmenu_Off);
gAddEventListener("contextbox_Close", 'click', gContextmenuClose);
}; };
function block_ctxmenu_LocoSelect (element, value) { function block_ctxmenu_DestinationLD (element, value) {
alert ("LocoSelect:" + value); let loc = document.getElementById("contextbox_loc");
}; if (loc) {
locomotive_server_Dest(loc.value, element.name, 1);
}
function block_ctxmenu_LocoDestinationFWD (element, value) {
alert ("DestinationFWD:" + value);
}; };
function block_ctxmenu_LocoDestinationREV (element, value) { function block_ctxmenu_DestinationRU (element, value) {
alert ("DestinationREV:" + value); let loc = document.getElementById("contextbox_loc");
if (loc) {
locomotive_server_Dest(loc.value, element.name, 0);
}
gContextmenuClose();
}; };
function block_ctxmenu_LocoAssignFWD (element, value) { function block_ctxmenu_AssignLD (element, value) {
alert ("AssignFWD:" + value); let loc = document.getElementById("contextbox_loc");
if (loc) {
locomotive_server_Assign(loc.value, element.name, 1);
}
gContextmenuClose();
}; };
function block_ctxmenu_LocoAssignREV (element, value) { function block_ctxmenu_AssignRU (element, value) {
alert ("AssignREV:" + value); let loc = document.getElementById("contextbox_loc");
if (loc) {
locomotive_server_Assign(loc.value, element.name, 0);
}
gContextmenuClose();
}; };
function block_ctxmenu_Clear (element, value) { function block_ctxmenu_Clear (element, value) {
// value == 0 ... clear block_server_Clear(element.name);
// value == 1 ... Put Off Service gContextmenuClose();
alert ("Clear / Off Service"); }
function block_ctxmenu_Off (element, value) {
block_server_Off(element.name);
gContextmenuClose();
} }
@ -116,6 +140,23 @@ function block_server_Del(elm) {
}; };
//
// send clear block
//
function block_server_Clear(blockname) {
var request = { command: "blockclear", block: blockname };
serverinout (request, serverinout_defaultCallback);
};
//
// send put block off service
//
function block_server_Off(blockname) {
var request = { command: "blockoff", block: blockname };
serverinout (request, serverinout_defaultCallback);
};
function blockdetail_show(name) { function blockdetail_show(name) {
var win = document.getElementById("blockdetail"); var win = document.getElementById("blockdetail");

@ -68,7 +68,8 @@
.GUIcontextmenuClient { .GUIcontextmenuClient {
overflow: auto; overflow: auto;
padding: 0px; padding: 2px;
margin: 0px;
background-color: var(--contextmenu-bg-color); background-color: var(--contextmenu-bg-color);
color: var(--contextmenu-fg-color); color: var(--contextmenu-fg-color);
text-size: small; text-size: small;

@ -58,7 +58,7 @@ function getTextBetween(fulltext, text1, text2) {
// //
// Context Menus // Context Menus
function gContextmenuCreate(title) { function gContextmenuCreate(title, clientInnerHTML) {
let cm = document.getElementById("ContextMenu"); let cm = document.getElementById("ContextMenu");
if (cm) { if (cm) {
let parent = cm.parentNode; let parent = cm.parentNode;
@ -72,16 +72,11 @@ function gContextmenuCreate(title) {
head.setAttribute("class", "GUIcontextmenuHead"); head.setAttribute("class", "GUIcontextmenuHead");
head.innerHTML = title; head.innerHTML = title;
var ul = document.createElement("ul");
ul.setAttribute("id", "ContextMenuElements");
ul.setAttribute("class", "GUIcontextmenuElements");
var client = document.createElement("div"); var client = document.createElement("div");
client.setAttribute("id", "ContextMenuClient"); client.setAttribute("id", "ContextMenuClient");
client.setAttribute("class", "GUIcontextmenuClient"); client.setAttribute("class", "GUIcontextmenuClient");
client.setAttribute("style", "max-height: 400px; max-width:150px;"); client.setAttribute("style", "max-height: 400px; max-width:150px;");
client.innerHTML = ""; client.innerHTML = clientInnerHTML;
client.appendChild (ul);
cm = document.createElement("div"); cm = document.createElement("div");
cm.setAttribute("id", "ContextMenu"); cm.setAttribute("id", "ContextMenu");
@ -96,28 +91,6 @@ function gContextmenuCreate(title) {
return cm; return cm;
}; };
function gContextmenuAdd(text, callback_function, value) {
let ul = document.getElementById("ContextMenuElements");
if (ul) {
let li = document.createElement("li");
li.innerHTML = text;
li.value = value;
if (typeof callback_function === 'object' && callback_function !== null) {
li.addEventListener("click", callback_function);
debug ("add event listener.");
}
else {
debug ("add event listener.");
}
ul.appendChild(li);
}
};
function gContextmenuClose() { function gContextmenuClose() {
let cm = document.getElementById("ContextMenu"); let cm = document.getElementById("ContextMenu");
if (cm) { if (cm) {

@ -88,6 +88,28 @@ function locomotive_server_Del(elm) {
}; };
//
// send locomotive assignment to server (is blockname is empty clear assignment)
//
function locomotive_server_Assign(locname, blockname, reverse) {
var request = { command: "locomotiveassign", locomotive: locname, block: blockname, reverse: reverse };
serverinout (request, serverinout_defaultCallback);
};
//
// set locomotive destination to server (is blockname is empty clear assignment)
//
function locomotive_server_Dest(locname, blockname, reverse) {
var request = { command: "locomotivedestination", locomotive: locname, block: blockname, reverse: reverse };
serverinout (request, serverinout_defaultCallback);
};
// //
// send delete element to server // send delete element to server
// //

Loading…
Cancel
Save