// // // var blocks = []; // // update or add a new element // function block_Update(blockdata) { for (var i = 0; i < blocks.length; i++) { if (blockdata.name == blocks[i].name) { blocks[i].name = blockdata.name; blocks[i].flags = blockdata.flags; return; } } // not found add element //debug ("Add Interface:" + intdata.name + "(" + intdata.host + ")"); blocks.push ({ name: blockdata.name, flags: blockdata.flags }); }; // // 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 block_Delete(name) { var l = new Array(); for (var i = 0; i < blocks.length; i++) { if (name != blocks[i].name) { l.push (blocks[i]); } } // clear list and replace list with new data. blocks.lenght = 0; blocks = l; }; // // send new element to server // function block_server_Add(elm) { var request = { command: "addblock", block: elm }; serverinout (request, serverinout_defaultCallback); }; // // send delete element to server // function block_server_Del(elm) { var request = { command: "delblock", block: elm }; serverinout (request, serverinout_defaultCallback); }; function blockdetail_show(name) { var win = document.getElementById("blockdetail"); debug ("blockdetail_show"); if (!win) { debug ("blockdetail_show create window"); win = gWindowCreate("blockdetail", "Block", 400, 300, " \
\ Block Name: \
\ \ \


\
\
\

\
\ \ \ \
\ \ "); gAddEventListener("blockdet_CLOSE", 'click', blockdetail_cb_close); gAddEventListener("blockdet_DELETE", 'click', blockdetail_cb_delete); gAddEventListener("blockdet_SAVE", 'click', blockdetail_cb_save); gAddEventListener("blockdet_NEXT", 'click', blockdetail_cb_next); gAddEventListener("blockdet_PREV", 'click', blockdetail_cb_prev); } if (name) { for (var i = 0; i < blocks.length; i++) { if (name == blocks[i].name) blockdetail_setData(blocks[i]); } } }; function blockdetail_cb_close () { var win = document.getElementById("blockdetail"); if (win) document.body.removeChild(win); }; // // Callback: Delete Button // function blockdetail_cb_delete () { var elm = {}; elm = blockdetail_getData(); block_Delete(elm.name); block_server_Del(elm); }; // // Callback: Save Button // function blockdetail_cb_save () { var elm = {}; elm = blockdetail_getData(); block_Update(elm); block_server_Add(elm); }; // // Callback: Next Button // function blockdetail_cb_next () { var cursel = -1; var name = document.getElementById("blockdet_name"); for (var i = 0; i < blocks.length; i++) { if (name.value == blocks[i].name) cursel = i; } cursel = cursel + 1; if (cursel >= blocks.length) cursel = 0; if (cursel < 0) cursel = 0; for (var i = 0; i < blocks.length; i++) { if (i == cursel) blockdetail_setData(blocks[i]); } // debug ("Cursel: " + cursel + " interfaces.lenght:" + interfaces.length); }; // // Callback: Prev Button // function blockdetail_cb_prev () { var cursel = -1; var name = document.getElementById("blockdet_name"); for (var i = 0; i < blocks.length; i++) { if (name.value == blocks[i].name) cursel = i; } cursel = cursel - 1; if (cursel < 0 || cursel >= blocks.length) cursel = blocks.length - 1; for (var i = 0; i < blocks.length; i++) { if (i == cursel) blockdetail_setData(blocks[i]); } // debug ("Cursel: " + cursel + " interfaces.lenght:" + interfaces.length); }; // // fill out all the elements on the dialogbox // function blockdetail_setData(elm) { var name = document.getElementById("blockdet_name"); var flags = document.getElementById("blockdet_flags"); if (elm) { if (name) name.value = elm.name; if (flags) flags.value = elm.flags; } }; // // return all elements from the dialogbox // function blockdetail_getData() { var res = { name: "", flags:0 }; var name = document.getElementById("blockdet_name"); var flags = document.getElementById("blockdet_flags"); if (name) res.name = name.value; if (flags) res.flags = flags.value; return res; };