diff --git a/src/rust/lqosd/src/node_manager/js_build/src/config_devices.js b/src/rust/lqosd/src/node_manager/js_build/src/config_devices.js index c5c91825..452e2975 100644 --- a/src/rust/lqosd/src/node_manager/js_build/src/config_devices.js +++ b/src/rust/lqosd/src/node_manager/js_build/src/config_devices.js @@ -6,212 +6,789 @@ import { validNodeList, } from "./config/config_helper"; -let shaped_devices = null; +let shaped_devices = []; let network_json = null; +let filtered_indices = []; +let page = 0; +let page_size = 25; +let search_term = ""; +let invalid_indices = new Set(); +let edit_index = null; +let creating_new = false; +let search_timer = null; -function rowPrefix(rowId, boxId) { - return "sdr_" + rowId + "_" + boxId; -} - -function makeSheetBox(rowId, boxId, value, small=false) { - let html = ""; - if (!small) { - html = "" - } else { - html = "" - } - return html; -} - -function makeSheetNumberBox(rowId, boxId, value) { - let html = "" - return html; -} - -function separatedIpArray(rowId, boxId, value) { - let html = ""; - let val = ""; - for (let i = 0; i < value.length; i++) { - val += value[i][0]; - val += "/"; - val += value[i][1]; - val += ", "; - } - if (val.length > 0) { - val = val.substring(0, val.length-2); - } - html += ""; - html += ""; - return html; -} - -function nodeDropDown(rowId, boxId, selectedNode) { - let html = ""; - html += ""; - for (let k = 0; k < opts.length; k++) { - const v = opts[k]; - sqmDownHtml += ""; - } - sqmDownHtml += ""; - html += sqmDownHtml; - // Up - let sqmUpHtml = ""; - sqmUpHtml += ""; - html += sqmUpHtml; - html += ""; +function formatSqmDisplay(raw) { + const parsed = parseSqmOverride(raw); + const down = parsed.down || "default"; + const up = parsed.up || "default"; + return ( + "
" + + "
" + + escapeHtml(down) + + "
" + + "
" + + escapeHtml(up) + + "
" + + "
" + ); +} +function buildParentNodeOptions(selectedNode) { + let html = ""; + if (!network_json || typeof network_json !== "object") return html; + + function iterate(data, level) { + let local = ""; + for (const [key, value] of Object.entries(data)) { + const indent = "-".repeat(level); + local += "