// // // var interfaces = []; // // update or add a new element // function interface_Update(intdata) { for (var i = 0; i < interfaces.length; i++) { if (intdata.name == interfaces[i].name) { //debug ("Update Interface:" + interfaces[i].name + "(" + interfaces[i].host + ") with Interface:" + intdata.name + "(" + intdata.host + ")"); if (!(intdata.flags & 0x0001)) sideBtnOnOffMode (3); // not connected else if ((intdata.flags & 0x0010)) sideBtnOnOffMode (3); // programming mode else if ((intdata.flags & 0x0008)) sideBtnOnOffMode (3); // short circuit else if ((intdata.flags & 0x0004)) sideBtnOnOffMode (2); // stop else if (!(intdata.flags & 0x0002)) sideBtnOnOffMode (1); // power on else sideBtnOnOffMode (0); interfaces[i].name = intdata.name; interfaces[i].host = intdata.host; interfaces[i].flags = intdata.flags; interfaces[i].type = intdata.type; return; } } // not found add element //debug ("Add Interface:" + intdata.name + "(" + intdata.host + ")"); interfaces.push ({ name: intdata.name, host: intdata.host, flags: intdata.flags, type: intdata.type }); }; // // delete element from the list // in arrays we can not delete just an element, so we create a new one // and replace this one. // function interface_Delete(name) { var l = new Array(); for (var i = 0; i < interfaces.length; i++) { if (name != interfaces[i].name) { l.push (interfaces[i]); } } // clear list and replace list with new data. interfaces.lenght = 0; interfaces = l; }; // // send new element to server // function interface_server_Add(elm) { var request = { command: "addinterface", interface: elm }; serverinout (request, serverinout_defaultCallback); }; // // send delete element to server // function interface_server_Del(elm) { var request = { command: "delinterface", interface: elm }; serverinout (request, serverinout_defaultCallback); }; function intdetail_show(intname) { var win = document.getElementById("intdetail"); debug ("intdetail_show"); if (!win) { debug ("intdetail_show create window"); win = gWindowCreate("intdetail", "Interface", 400, 300, " \
\ Interface Name: \
\ \ \


\
\
\ \ \
Host:
Flags:
\
Type \ Type:
\
\
\
\

\
\ \ \ \
\ \ "); gAddEventListener("intdet_type", 'change', intdetail_cb_typechange); gAddEventListener("intdet_typeunknown", 'click', intdetail_cb_typeselector); gAddEventListener("intdet_typez21", 'click', intdetail_cb_typeselector); gAddEventListener("intdet_CLOSE", 'click', intdetail_cb_close); gAddEventListener("intdet_DELETE", 'click', intdetail_cb_delete); gAddEventListener("intdet_SAVE", 'click', intdetail_cb_save); gAddEventListener("intdet_NEXT", 'click', intdetail_cb_next); gAddEventListener("intdet_PREV", 'click', intdetail_cb_prev); } if (intname) { for (var i = 0; i < interfaces.length; i++) { if (intname == interfaces[i].name) intdetail_setData(interfaces[i]); } } }; function intdetail_cb_close () { var win = document.getElementById("intdetail"); if (win) document.body.removeChild(win); }; // // Callback: Delete Button // function intdetail_cb_delete () { var elm = {}; elm = intdetail_getData(); interface_Delete(elm.name); interface_server_Del(elm); }; // // Callback: Save Button // function intdetail_cb_save () { var elm = {}; elm = intdetail_getData(); interface_Update(elm); interface_server_Add(elm); }; // // Callback: Next Button // function intdetail_cb_next () { var cursel = -1; var if_name = document.getElementById("intdet_name"); for (var i = 0; i < interfaces.length; i++) { if (if_name.value == interfaces[i].name) cursel = i; } cursel = cursel + 1; if (cursel >= interfaces.length) cursel = 0; if (cursel < 0) cursel = 0; for (var i = 0; i < interfaces.length; i++) { if (i == cursel) intdetail_setData(interfaces[i]); } // debug ("Cursel: " + cursel + " interfaces.lenght:" + interfaces.length); }; // // Callback: Prev Button // function intdetail_cb_prev () { var cursel = -1; var if_name = document.getElementById("intdet_name"); for (var i = 0; i < interfaces.length; i++) { if (if_name.value == interfaces[i].name) cursel = i; } cursel = cursel - 1; if (cursel < 0 || cursel >= interfaces.length) cursel = interfaces.length - 1; for (var i = 0; i < interfaces.length; i++) { if (i == cursel) intdetail_setData(interfaces[i]); } // debug ("Cursel: " + cursel + " interfaces.lenght:" + interfaces.length); }; // // fill out all the elements on the dialogbox // function intdetail_setData(elm) { var if_name = document.getElementById("intdet_name"); var if_host = document.getElementById("intdet_host"); var if_flags = document.getElementById("intdet_flags"); var if_type = document.getElementById("intdet_type"); if (elm) { if (if_name) if_name.value = elm.name; if (if_host) if_host.value = elm.host; if (if_flags) if_flags.value = elm.flags; if (if_flags) if_type.value = elm.type; } intdetail_cb_typechange(); }; function intdetail_cb_typechange () { var type = document.getElementById("intdet_type"); var typez21 = document.getElementById("intdet_typez21"); var typeunknown = document.getElementById("intdet_typeunknown"); switch(Number(type.value)) { case 0: typeunknown.checked = true; break; case 1: typez21.checked = true; break; default: type.value = 0; typeunknown.checked = true; break; } }; function intdetail_cb_typeselector () { var type = document.getElementById("intdet_type"); type.value = this.value; }; // // return all elements from the dialogbox // function intdetail_getData() { var res = { name: "", host: "", flags:0, type:0 }; var if_name = document.getElementById("intdet_name"); var if_host = document.getElementById("intdet_host"); var if_flags = document.getElementById("intdet_flags"); var if_type = document.getElementById("intdet_type"); if (if_name) res.name = if_name.value; if (if_host) res.host = if_host.value; if (if_flags) res.flags = if_flags.value; if (if_type) res.type = if_type.value; return res; };