diff --git a/webclient/src/js/components/helper.js b/webclient/src/js/components/helper.js index 70bab5b..71c6f74 100644 --- a/webclient/src/js/components/helper.js +++ b/webclient/src/js/components/helper.js @@ -64,9 +64,56 @@ `; } +function createElement(type, props, content) { + const node = document.createElement(type); + + for (const [key, value] of Object.entries(props)) { + if (key === "class") { + node.className = value; + } else if (key === "dataset") { + Object.assign(node.dataset, value); + } else { + node.setAttribute(key, value); + } + } + + node.innerHTML = (typeof content != "undefined") ? content : ""; + return node; +} + +function deviceFieldsUnification(data) { + const map = { + "device_name": "name", + "device_hard_id": "device_id", + "device_ip": "ip", + "device_type": "type", + "ip_address": "ip", + "mac_address": "mac", + "device_mac": "mac", + "core_version": "firmware_core_version" + }; + + const dataObj = {}; + + for(let field in data) { + if(typeof map[field] != "undefined") { + dataObj[ map[field] ] = data[field]; + continue; + } + + dataObj[field] = data[field]; + } + + return dataObj; +} + export default { template: { sidebarNav, - table + table, + createElement + }, + unification: { + deviceFieldsUnification } } \ No newline at end of file