const templateIcons = { alarmConfirm : ``, alarmConfirmed : `` } var AppTemplate = { /* variableNameToPL : { Status1: 'Stan', CurrentP1: 'Prąd', WorkTimeP1: 'Łączny czas pracy', StopTimeP1: 'Czas zatrzymania', CounterP1: 'Liczba załączeń', WasteP1: 'Ilość cieczy', StatusP1P2: 'Stan', CurrentP2: 'Prąd', WorkTimeP2: 'Łączny czas pracy', StopTimeP2: 'Czas zatrzymania', CounterP2: 'Liczba załączeń', WasteP2: 'Ilość cieczy' }, */ decodeValue : function (regData) { return regData.value; }, /* ------------------------------------------------------------------------------------------------------------------------- */ SITE_SETTINGS : { options_singleModems : function (modemData) { let modems = ``; for (var i = 0; i < modemData.length; i++) { modems += ``; } return modems; }, div_singleDevice_new : function (devData, modemList, onlyContent = false) { let htmlCode = ''; if (!onlyContent) htmlCode += `
`; let htmlAdm = ''; if (modemList instanceof Array) { modemList = this.options_singleModems(modemList); } if (modemList.length > 70) { htmlAdm = `

DANE TECHNICZNE

Id PLC ${devData.controllerId} ${txtLabel.settings_tabDev2} ${devData.controllerName} Modem Monitoring Priorytet


Usuń
`; } htmlCode +=`
${devData.controllerName}
${htmlAdm}
`; if (!onlyContent) htmlCode += `
`; return htmlCode; }, div_singleDevice_new_old : function (devData, modemList, onlyContent = false) { let htmlCode = ''; if (!onlyContent) htmlCode += `
`; let htmlAdm = ''; if (modemList instanceof Array) { modemList = this.options_singleModems(modemList); } if (modemList.length > 70) { htmlAdm = `

DANE TECHNICZNE

Id PLC ${devData.controllerId} Modem Monitoring


Usuń
`; } htmlCode +=`
${devData.controllerName}
${htmlAdm}

DANE OBIEKTU

Kontakt ${devData.operatorName} Telefon ${devData.operatorPhone} Adres ${devData.operatorAddress} Notatka ${devData.operatorNotes}
`; if (!onlyContent) htmlCode += `
`; return htmlCode; }, div_singleModem_new : function (modemData, onlyContent = false) { let htmlCode = ''; if (!onlyContent) htmlCode += `
`; htmlCode += ` ID modemu ${modemData.modemName} Lokalizacja ${modemData.locationName} AKTYWNY Usuń `; if (!onlyContent) htmlCode += `
`; return htmlCode; }, div_customerInfo : function (cInfo) { return ` NAZWA FIRMY${cInfo.companyName} NUMER NIP${cInfo.nip} E-MAIL${cInfo.email} Osoba${cInfo.nameSurname} NR TELEFONU${cInfo.phone} ADRES KORESPONDENCYJNY${cInfo.compCoresp} `; }, /* ------------------------------------------------------------------------------------------------------------------------- */ SUB_USERS : { rowOperator: function(userData) { }, rowEndUser : function (userData) { }, rowUser : function (userData, btnIndx) { var tplAdd = { usrIcon : ``, sUsrIcon : ``, devIcon : ``, faxIcon : ``, plusIcon : ``, icon : ``, addClass : "", subUsersCountInfo : "", devicesCounterInfo : userData.devices.length, modemCounterInfo : "", toggleIcon : (userData.status=="1")?"fa-toggle-on":"fa-toggle-off", allowAddSubuser : (userData.perm!="EU")?``:'', removeUser : (userData.perm=="EU" || userData.subusers.length==0)?``:'' } if (userData.perm=="EU") { tplAdd.icon = tplAdd.sUsrIcon; tplAdd.addClass = "su"; } else { tplAdd.modemCounterInfo = tplAdd.faxIcon + " " + userData.modems.length + ""; tplAdd.subUsersCountInfo = tplAdd.sUsrIcon + " " + userData.subusers.length + ""; } var htmlUserDevices = this.userDevices(userData, btnIndx); var htmlUserModems = ``; if (userData.perm != "EU") { if (userData.modems.length > 0) { var htmlUserModemsList = ``; for (var i = 0; i < userData.modems.length; i++) { htmlUserModemsList += `
${tplAdd.faxIcon}
${userData.modems[i].name}
`; } } else { htmlUserModemsList = `
Brak dodanych modemów
`; } htmlUserModems = `
Modemy ${tplAdd.faxIcon}
${htmlUserModemsList}
`; } var htmlRes = `
${tplAdd.icon} ${userData.mail}
${tplAdd.subUsersCountInfo}
${tplAdd.modemCounterInfo}
${tplAdd.devIcon + " " + tplAdd.devicesCounterInfo + ""}
${htmlUserModems}
Urządzenia
${tplAdd.allowAddSubuser}
${tplAdd.removeUser}${userData.mail}
${htmlUserDevices}
`; return htmlRes; }, userDevices : function (userData,btnIndx) { var htmlRes = ""; for (var i = 0; i < userData.devices.length; i++) htmlRes += `
${userData.devices[i].controllerId}
${userData.devices[i].controllerName}
${userData.devices[i].locationName}
`; return htmlRes; }, footer : function (usr) { if (usr.perm == "AD") return `
`; if (usr.perm == "OP") return `
`; if (usr.perm == "EU") return ''; } } }, /* ------------------------------------------------------------------------------------------------------------------------- */ SITE_PUMPING_STATIONS : { modemsSelectList: function(modems) { let ret = "",counter = 0; let dChart = ""; for (key in modems) { if (!modems[key].hideByFilter) { let loopChart = ``; if (modems[key].serverData.onlineStatus) { let modCLT = modems[key].serverData.connectionLoopTime; if (modCLT.length) { const minLT = modCLT.reduce((min, p) => p.time < min ? p.time : min, modCLT[0].time); //let av = 0; modCLT.map(e=>{e.time-minLT+5}); //modCLT.map(e=>{av+=e.time}); //av = av/modCLT.length; const maxLT = modCLT.reduce((max, p) => p.time > max ? p.time : max, modCLT[0].time); let x=0; modCLT.forEach(e => { //loopChart += `${e.endTime} (${e.time}s)`; loopChart += `${e.endTime} (${e.time}s)`; x+=5; }) loopChart+=``; } } counter += modems[key].devices.length; ret += `

${key}

${modems[key].serverData.onlineStatus?'
ON-LINE
':'
OFF-LINE
'}
Urządzeń: ${modems[key].devices.length}
${loopChart}
`; } } return ret; }, deviceListSingleDev : function(device) { let htmlRes = ''; let ledBgColor = "#000"; if (typeof device.serverData=="undefined") device.serverData = {onlineStatus : false}; if (!device.serverData.onlineStatus) { ledBgColor = "#000"; } else { if (device.serverData.alarmsReadTime == null) { ledBgColor = "#888"; } else { if (device.serverData.alarms.length) { ledBgColor = "#F88"; } else { if (typeof(device.serverData.regs[47]) != "undefined" && device.serverData.regs[47].rawVal == 1) { ledBgColor = "#FF8"; } else { let isReady = false; for (let i = 43; i <=46; i++) { if (typeof(device.serverData.regs[i]) != "undefined" && device.serverData.regs[i].rawVal == 16) isReady = true; } if (isReady) { ledBgColor = "#8FF"; } else { if (typeof(device.serverData.regs[47]) != "undefined" && (device.serverData.regs[47].rawVal == 64 || device.serverData.regs[47].rawVal == 32)) { ledBgColor = "linear-gradient(180deg, #7F7 50%, #55F 50%)"; } else { ledBgColor = "#8F8"; } } } } } } htmlRes += `
`; if (device.serverData.onlineStatus) { const pumpCount = device.serverData.pumpCount; if (isNaN(device.serverData.transmitQ)) device.serverData.transmitQ = 0; htmlRes += `
ON-LINE ${device.serverData.lastActivityTime}
`; htmlRes += `
TX: ${device.serverData.transmitQality.tx} | txFAIL: ${device.serverData.transmitQality.retr} | QTY: ${device.serverData.transmitQ.toFixed(2)}
`; let alarms = ""; device.serverData.alarms.forEach(a=>{ alarms += `
${a.time}
${a.name}
` }); htmlRes += `
${alarms}
`; let sensorsType = null; for (key in device.serverData.regs) { const r = device.serverData.regs[key]; if (typeof(r.value) == "undefined" || r.value == null) r.value = "- - -"; const rrt = r.regReadTime==null?'Brak odczytu':r.regReadTime; if (r.xid == "work_mode") { htmlRes += `
${r.name}
${r.value}
`; } if (r.xid == "pump_mode") { htmlRes += `
${r.name}
${r.value}
`; } if (r.xid == "sensor_type") { htmlRes += `
${r.name}
${r.value}
`; sensorsType = r.value; } if (r.xid == "sensor_level_digit" ) { if (sensorsType == "SA") //zmienna 49 = 4 :"SA" { let valLevel = "
"; if (r.value & 1) valLevel += `
`; else valLevel += `
`; if (r.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; htmlRes += `
${r.name}
${valLevel}
`; } else if (sensorsType == "3xP" || sensorsType == "HSI") //zmienna 49= 1:"3xP" || "8":"HSI { let valLevel = "
"; if (r.value & 1) valLevel += `
`; else valLevel += `
`; if (r.value & 2) valLevel += `
`; else valLevel += `
`; if (r.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; htmlRes += `
${r.name}
${valLevel}
`; } else if (sensorsType == "4xP") //zmienna 49= 2:"4xP",, { let valLevel = "
"; if (r.value & 1) valLevel += `
`; else valLevel += `
`; if (r.value & 2) valLevel += `
`; else valLevel += `
`; if (r.value & 4) valLevel += `
`; else valLevel += `
`; if (r.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; htmlRes += `
${r.name}
${valLevel}
`; } } if (r.xid == "sensor_level_analog" && sensorsType == "SA") { htmlRes += `
${r.name}
${r.value} [${r.suffix}]
`; let levelVal = { vOff: device.serverData.regs[546].value, vOn1p: device.serverData.regs[547].value, vOn2p: device.serverData.regs[548].value, vAlarm: device.serverData.regs[549].value, vMax: device.serverData.regs[550].value, floatOff: parseFloat(device.serverData.regs[546].value), floatOn1p: parseFloat(device.serverData.regs[547].value), floatOn2p: parseFloat(device.serverData.regs[548].value), floatAlarm: parseFloat(device.serverData.regs[549].value), floatMax: parseFloat(device.serverData.regs[550].value) } //let barH = (($(".sa-sensor-level").height() * r.value) / levelVal.floatMax)-2; if (device.serverData.regs[27].rawVal == 3 || device.serverData.regs[27].rawVal == 7 || device.serverData.regs[27].rawVal == 15) { htmlRes += `
${levelVal.vMax}

MAX

${levelVal.vAlarm}

Alarm

${levelVal.vOn2p}

ON2P

${levelVal.vOn1p}

ON1P

${levelVal.vOff}

OFF

`; } else{ htmlRes += `
${levelVal.vMax}

MAX

${levelVal.vAlarm}

Alarm

${levelVal.vOn1p}

ON1P

${levelVal.vOff}

OFF

`; } /*htmlRes += `
${levelVal.vMax}

MAX

${levelVal.vAlarm}

Alarm

${levelVal.vOn2p}

ON2P

${levelVal.vOn1p}

ON1P

${levelVal.vOff}

OFF

`;*/ } } htmlRes += `
Dane pompy `; for (i = 0; i < pumpCount; i++) { if (i == device.selPump2ShowDetail) htmlRes += `${i + 1}`; else htmlRes += `${i + 1}`; } htmlRes += `
`; htmlRes += `
`; htmlRes += this.pumpDetail(device); htmlRes += `
`; } else { htmlRes += `
OFF-LINE
`; } htmlRes += `
`; return htmlRes; }, devicesList : function (device) { let htmlRes = ''; htmlRes += `
`; htmlRes += `
${device.name}
`; if (device.serverData.onlineStatus) { const pumpCount = device.serverData.pumpCount;//parseInt(device.serverData.regs['48'].value.substr(0, 1));//rejestr z trybem pomp - PumpModeAct if (isNaN(device.serverData.transmitQ)) device.serverData.transmitQ = 0; htmlRes += `
ON-LINE ${device.serverData.lastActivityTime}
`; htmlRes += `
TX: ${device.serverData.transmitQality.tx} | txFAIL: ${device.serverData.transmitQality.retr} | QTY: ${device.serverData.transmitQ.toFixed(2)}
`; let alarms = ""; device.serverData.alarms.forEach(a=>{ alarms += `
${a.time}
${a.name}
` }); htmlRes += `
${alarms}
`; for (key in device.serverData.regs) { const r = device.serverData.regs[key]; if (typeof(r.value) == "undefined" || r.value == null) r.value = "- - -"; if (r.xid == "work_mode") { htmlRes += `
${r.name}
${r.value}
`; } if (r.xid == "pump_mode") { htmlRes += `
${r.name}
${r.value}
`; } let sensorsType = null; if (r.xid == "sensor_type") { htmlRes += `
${reg.name}
${reg.value}
`; sensorsType = r.value; } } htmlRes += `
Dane pompy `; for (i = 0; i < pumpCount; i++) { if (i == device.selPump2ShowDetail) htmlRes += `${i + 1}`; else htmlRes += `${i + 1}`; } htmlRes += `
`; htmlRes += `
`; htmlRes += this.pumpDetail(device); htmlRes += `
`; } else { htmlRes += `
OFF-LINE
`; } htmlRes += `
`; return htmlRes; }, pumpDetail : function(device) { const pumpReg = [ [417, 43, 85, 86, 87, 88, 89], [449, 44, 92, 93, 94, 95, 96], [481, 45, 99, 100, 101, 102, 103], [513, 46, 106, 107, 108, 109, 110] ] const pDetail = pumpReg[device.selPump2ShowDetail]; let htmlRes = ``; pDetail.forEach(e=>{ const r = device.serverData.regs[e]; let sfx = ''; if (typeof(r.value) == "undefined" || r.value === null) r.value = "- - -"; if (r.suffix) sfx = ` [${r.suffix}]`; let addInfo = ''; if (e == 85 || e == 92 || e == 99 || e == 106) { addInfo = ` / ${device.serverData.regs[e - 1].value}`; } htmlRes += `
${r.name}
${r.value}${addInfo}${sfx}
`; }) return htmlRes; } }, /* ------------------------------------------------------------------------------------------------------------------------- */ SITE_MAP : { pumpStationInfo : function(data) { let sDetail = `
Ostatnia komunikacja:
${data.lastActivityTime==null?"Brak danych":data.lastActivityTime}
`; let sensorsType = null; for (key in data.regs) { const reg = data.regs[key]; if (typeof(reg.value) == "undefined" || reg.value == null) reg.value = "- - -"; const rrt = reg.regReadTime==null?'Brak odczytu':reg.regReadTime; if (reg.xid == "work_mode") { sDetail += `
${reg.name}
${reg.value}
`; } if (reg.xid == "pump_mode") { sDetail += `
${reg.name}
${reg.value}
`; } if (reg.xid == "sensor_type") { sDetail += `
${reg.name}
${reg.value}
`; sensorsType = reg.value; } if (reg.xid == "sensor_level_digit" ) { if (sensorsType == "SA") //zmienna 49 = 4 :"SA" { let valLevel = "
"; if (reg.value & 1) valLevel += `
`; else valLevel += `
`; if (reg.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; sDetail += `
${reg.name}
${valLevel}
`; } else if (sensorsType == "3xP" || sensorsType == "HSI") //zmienna 49= 1:"3xP" || "8":"HSI { let valLevel = "
"; if (reg.value & 1) valLevel += `
`; else valLevel += `
`; if (reg.value & 2) valLevel += `
`; else valLevel += `
`; if (reg.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; sDetail += `
${reg.name}
${valLevel}
`; } else if (sensorsType == "4xP") //zmienna 49= 2:"4xP",, { let valLevel = "
"; if (reg.value & 1) valLevel += `
`; else valLevel += `
`; if (reg.value & 2) valLevel += `
`; else valLevel += `
`; if (reg.value & 4) valLevel += `
`; else valLevel += `
`; if (reg.value & 8) valLevel += `
`; else valLevel += `
`; valLevel += "
"; sDetail += `
${reg.name}
${valLevel}
`; } } if (reg.xid == "sensor_level_analog" && sensorsType == "SA") { sDetail += `
${reg.name}
${reg.value} [${reg.suffix}]
`; let levelVal = { vOff: data.regs[546].value, vOn1p: data.regs[547].value, vOn2p: data.regs[548].value, vAlarm: data.regs[549].value, vMax: data.regs[550].value, floatOff: parseFloat(data.regs[546].value), floatOn1p: parseFloat(data.regs[547].value), floatOn2p: parseFloat(data.regs[548].value), floatAlarm: parseFloat(data.regs[549].value), floatMax: parseFloat(data.regs[550].value) } if (data.regs[27].rawVal == 3 || data.regs[27].rawVal == 7 || data.regs[27].rawVal == 15) { sDetail += `
${levelVal.vMax}

MAX

${levelVal.vAlarm}

Alarm

${levelVal.vOn2p}

ON2P

${levelVal.vOn1p}

ON1P

${levelVal.vOff}

OFF

`; } else{ sDetail += `
${levelVal.vMax}

MAX

${levelVal.vAlarm}

Alarm

${levelVal.vOn1p}

ON1P

${levelVal.vOff}

OFF

`; } } } return sDetail; }, panelPumpsDetail : function(data, pumpCount) { /*const pumpReg = [ [416, 417, 43, 85, 86, 87, 88, 89, 90], [448, 449, 44, 92, 93, 94, 95, 96, 97], [480, 481, 45, 99, 100, 101, 102, 103, 104], [512, 513, 46, 106, 107, 108, 109, 110, 111] ]*/ const pumpReg = [ [417, 43, 85, 86, 87, 88, 89], [449, 44, 92, 93, 94, 95, 96], [481, 45, 99, 100, 101, 102, 103], [513, 46, 106, 107, 108, 109, 110] ] let sDetail = `
`; if (pumpCount) { for (i = 0; i < pumpCount; i++) { sDetail += `
Dane pompy ${i + 1}
`; pumpReg[i].forEach(e=>{ let sfx = '', addInfo = ''; if (!data[e]){ data[e] = {value: "- - -", name: "- - -", regReadTime: null} } else{ if (typeof(data[e].value) == "undefined" || data[e].value === null) data[e].value = "- - -"; if (data[e].suffix) sfx = ` [${data[e].suffix}]`; if (e == 85 || e == 92 || e == 99 || e == 106) { if (data[e - 1]) addInfo = ` / ${data[e - 1].value}`; } } sDetail += `
${data[e].name}
${data[e].value}${addInfo}${sfx}
`; }) } } else { sDetail += `
BRAK DANYCH DO WYŚWIETLENIA
`; } sDetail += `
`; return sDetail; }, panelCurrentAlarms :function (data = [], lastReadTime = null) { let sDetail = `
Lista alarmów ${lastReadTime!=null?'('+lastReadTime+')':''}
`; if (data.length == 0) { if (lastReadTime == null) sDetail += `
NIE ODCZYTANO LIST ALARMÓW
`; else sDetail += `
BRAK ALARMÓW
`; } for (var i = 0; i < data.length; i++) { var lrv = data[i]; let ico = ``; if (lrv.isActive && !lrv.isConfirmed) { ico = `

${templateIcons.alarmConfirm}

`; } if (lrv.isActive && lrv.isConfirmed) { ico = `

${templateIcons.alarmConfirmed}

`; } sDetail += `
${data[i].time}
${data[i].name}${ico}
`; } sDetail += `
`; return sDetail; }, panelCurrentAlarms_hitorySection :function (data = [], lastReadTime = null) { let sDetail = `
ALARMY HISTORYCZNE
`; if (data.length == 0) { sDetail += `
BRAK ALARMÓW HISTORYCZNYCH
`; } for (var i = 0; i < data.length; i++) { sDetail += `
${data[i].time}
${data[i].name}
`; } sDetail += ``; return sDetail; }, panelCurrentAlarmsAllDevices : function(data) { let alarms = []; for (key in data) { const al = data[key].serverData.alarms; if (data[key].serverData.onlineStatus && al && al.length > 0) { for (let i = 0; i < al.length; i++) { alarms.push({devId:key,devName:data[key].name, alTime:al[i].time, alName: al[i].name}); } } } let sDetail = `
Zbiorcza lista alarmów
`; if (alarms.length > 0) { alarms.sort(function (a, b){const x = a.devName.toLowerCase(); const y = b.devName.toLowerCase();return x < y ? -1 : x > y ? 1 : 0}); sDetail += `
`; for (var i = 0; i < alarms.length; i++) { sDetail += ``; } sDetail += `
${alarms[i].alTime}${alarms[i].devName}${alarms[i].alName}
`; } else { sDetail += `
BRAK ALARMÓW
`; } sDetail += `
`; /* if (data.alarms.length == 0) sDetail += `
BRAK ALARMÓW
`; for (var i = 0; i < data.alarms.length; i++) { var lrv = data.alarms[i]; } */ return sDetail; }, panelSelectedInfo : function(data) { var sDetail = `
`; if (data.length == 0) { sDetail += `
BRAK ZAZNACZONYCH URZĄDZEŃ
`; } else { for (var i = 0; i < data.length; i++) { var lrv = data[i]; var dName = lrv.name; if (dName == "- - - -") dName = lrv.id; sDetail += `${dName}`; } sDetail += ``; sDetail += `
`; } return sDetail; }, panelGroupSelectedInfo : function (data) { var sDetail = `
`; if (data.length == 0) { sDetail += `
BRAK ZAZNACZONYCH URZĄDZEŃ
`; } else { sDetail += ` ZDALNE STEROWANIE POZWÓL NA PRACĘ

Lista sterowników

`; for (var i = 0; i < data.length; i++) { var lrv = data[i]; var dName = lrv.name; if (dName == "- - - -") dName = lrv.id; sDetail += `
${dName}
`; } sDetail += ``; } return sDetail; }, panelManualControl : function(data) { if (data == null) return '

- - - - -

'; if (!data.serverData.onlineStatus) return '

OFF-LINE'; let htmlActPx = ` P1 Aktywna `; if (data.serverData.pumpCount>1) htmlActPx += ` P2 Aktywna `; if (data.serverData.pumpCount>2) htmlActPx += ` P3 Aktywna `; if (data.serverData.pumpCount>3) htmlActPx += ` P4 Aktywna `; let htmlHandWork = ` Praca ręczna P1 `; if (data.serverData.pumpCount>1) htmlHandWork +=` Praca ręczna P2 `; if (data.serverData.pumpCount>2) htmlHandWork +=` Praca ręczna P3 `; if (data.serverData.pumpCount>3) htmlHandWork +=` Praca ręczna P4 `; let sDetail = `

STEROWANIE RĘCZNE
`; sDetail += `
${htmlActPx} ${htmlHandWork}
Tryb pracy
Wycisz
Syrena
Ochrona
AC serwis
Kasuj alarmy
Czas pracy ręcznej s
Łącze 1 do 1
`; return sDetail; }, panelOperatorInfo : function(data) { var sDetail = `
`; if (data.prm>=10) { sDetail += `
Osoba
${data.name}
`; sDetail += `
Telefon
${data.phone}
`; sDetail += `
Adres
${data.address}
`; sDetail += `
Informacje dodatkowe
${data.notes}
`; sDetail += `
`; } else { sDetail += `
Osoba
${data.name}
`; sDetail += `
Telefon
${data.phone}
`; sDetail += `
Adres
${data.address}
`; sDetail += `
Informacje dodatkowe
${data.notes}
`; sDetail += ``; } return sDetail; }, selectDevices : function(data, devsList=null) { let devTab = []; if (devsList === null) { for (let i = 0; i < data.length; i++) { if (data[i].type=="device") { devTab.push({id : data[i].devId, title : data[i].title.replace("\n","
")}) } } } else { devTab = devsList; } devTab.sort(function (a, b){const x = a.title.toLowerCase(); const y = b.title.toLowerCase();return x < y ? -1 : x > y ? 1 : 0}); let ret = ""; if (devTab.length > 0) { for (let i = 0; i < devTab.length; i++) { ret += `
${devTab[i].title}
`; } } else { ret = ``; } return ret; } }, /* ------------------------------------------------------------------------------------------------------------------------- */ SITE_CHARTS : { generateVariableContent : function(data) { let _res = "

Brak zmiennych do wyświetlenia

"; if (data.variable.length > 0) { _res = ``; for (let i = 0; i < data.variable.length; i++) { _res += ` `; } _res += `
${data.variable[i].varDescription}
`; } return _res; }, generateDevicesContent : function(data) { let _res = "

Brak urządzeń do wyświetlenia

"; if (data.devices.length > 0) { _res = ``; for (let i = 0; i < data.devices.length; i++) { _res += ` `; } _res += `
${data.devices[i].name!="- - - -"?data.devices[i].name:data.devices[i].id}
`; } return _res; } } }