From 0eb2fac9a0efa2e1b97389a5a09cba4ba83ccfa1 Mon Sep 17 00:00:00 2001 From: Matthew Chambers Date: Thu, 16 Dec 2021 14:46:52 -0600 Subject: [PATCH] change vars to lets per Tag's suggestion --- package.nw/lib/roster.js | 2169 ++--------------- .../lib/roster/prepareRosterSettings.js | 2 +- .../lib/roster/processRosterFiltering.js | 44 +- package.nw/lib/roster/processRosterHunting.js | 128 +- package.nw/lib/roster/renderNormalRoster.js | 28 +- package.nw/lib/roster/renderRoster.js | 26 +- 6 files changed, 304 insertions(+), 2093 deletions(-) diff --git a/package.nw/lib/roster.js b/package.nw/lib/roster.js index 6d98b14..a239e81 100644 --- a/package.nw/lib/roster.js +++ b/package.nw/lib/roster.js @@ -192,7 +192,7 @@ function storeAwardTracker() function loadSettings() { - var readSettings = {}; + let readSettings = {}; if (typeof localStorage.rosterSettings != "undefined") { readSettings = JSON.parse(localStorage.rosterSettings); @@ -236,8 +236,8 @@ function lockNewWindows() { if (typeof nw != "undefined") { - var gui = require("nw.gui"); - var win = gui.Window.get(); + let gui = require("nw.gui"); + let win = gui.Window.get(); win.on("new-win-policy", function (frame, url, policy) { gui.Shell.openExternal(url); @@ -273,8 +273,8 @@ function myCallCompare(a, b) function myGridCompare(a, b) { - var gridA = a.callObj.grid ? a.callObj.grid : "0"; - var gridB = b.callObj.grid ? b.callObj.grid : "0"; + let gridA = a.callObj.grid ? a.callObj.grid : "0"; + let gridB = b.callObj.grid ? b.callObj.grid : "0"; if (gridA > gridB) return 1; if (gridA < gridB) return -1; @@ -302,13 +302,13 @@ function myLifeCompare(a, b) function mySpotCompare(a, b) { - var cutoff = timeNowSec() - window.opener.g_receptionSettings.viewHistoryTimeSec; + let cutoff = timeNowSec() - window.opener.g_receptionSettings.viewHistoryTimeSec; if (a.spot.when <= cutoff) return -1; if (b.spot.when <= cutoff) return 1; - var aSNR = Number(a.spot.snr); - var bSNR = Number(b.spot.snr); + let aSNR = Number(a.spot.snr); + let bSNR = Number(b.spot.snr); if (aSNR > bSNR) return 1; if (aSNR < bSNR) return -1; @@ -445,1831 +445,42 @@ function processRoster(roster) function viewRoster() { - var bands = Object(); - var modes = Object(); - - var callMode = g_rosterSettings.callsign; - var onlyHits = false; - var isAwardTracker = false; - - if (callMode == "hits") - { - callMode = "all"; - onlyHits = true; - } - if (referenceNeed.value == LOGBOOK_AWARD_TRACKER) - { - callMode = "all"; - onlyHits = false; - isAwardTracker = true; - g_rosterSettings.huntNeed = "confirmed"; - } - - var canMsg = - window.opener.g_mapSettings.offlineMode == false && - window.opener.g_appSettings.gtShareEnable == "true" && - window.opener.g_appSettings.gtMsgEnable == "true"; - - if (window.opener.g_callsignLookups.lotwUseEnable == true) - { - usesLoTWDiv.style.display = ""; - if (g_rosterSettings.usesLoTW == true) - { - maxLoTW.style.display = ""; - maxLoTWView.style.display = ""; - } - else - { - maxLoTW.style.display = "none"; - maxLoTWView.style.display = "none"; - } - } - else - { - usesLoTWDiv.style.display = "none"; - maxLoTW.style.display = "none"; - maxLoTWView.style.display = "none"; - } - - if (window.opener.g_callsignLookups.eqslUseEnable == true) useseQSLDiv.style.display = ""; - else useseQSLDiv.style.display = "none"; - - if (window.opener.g_callsignLookups.oqrsUseEnable == true) usesOQRSDiv.style.display = ""; - else usesOQRSDiv.style.display = "none"; - - if (g_rosterSettings.columns.Spot == true) onlySpotDiv.style.display = ""; - else onlySpotDiv.style.display = "none"; - - if (callMode == "all") allOnlyNewDiv.style.display = ""; - else allOnlyNewDiv.style.display = "none"; - - var huntIndex, workedIndex, layeredMode; - if (g_rosterSettings.huntNeed == "mixed") - { - huntIndex = g_confirmed; - workedIndex = g_worked; - layeredMode = LAYERED_MODE_FOR[String(g_rosterSettings.reference)]; - } - else if (g_rosterSettings.huntNeed == "worked") - { - huntIndex = g_worked; - workedIndex = false; - layeredMode = false; - } - else if (g_rosterSettings.huntNeed == "confirmed") - { - huntIndex = g_confirmed; - workedIndex = g_worked; - layeredMode = false; - } - else - { - huntIndex = false; - workedIndex = false; - layeredMode = false; - } - - var now = timeNowSec(); - - // First loop, exclude calls, mostly based on "Exceptions" settings - for (var callHash in callRoster) - { - var entry = callRoster[callHash]; - var callObj = entry.callObj; - - var call = entry.DEcall; - - entry.tx = true; - callObj.shouldAlert = false; - callObj.reason = Array(); - callObj.awardReason = "Callsign"; - - if (now - callObj.age > window.opener.g_mapSettings.rosterTime) - { - entry.tx = false; - entry.alerted = false; - callObj.qrz = false; - callObj.reset = true; - continue; - } - if (window.opener.g_instances[callObj.instance].crEnable == false) - { - entry.tx = false; - continue; - } - if (call in g_blockedCalls) - { - entry.tx = false; - continue; - } - if ( - entry.DXcall + " from All" in g_blockedCQ || - entry.DXcall + " from " + window.opener.g_dxccToAltName[callObj.dxcc] in g_blockedCQ - ) - { - entry.tx = false; - continue; - } - if (callObj.dxcc in g_blockedDxcc) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.cqOnly == true && callObj.CQ == false) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.useRegex && g_rosterSettings.callsignRegex.length > 0) - { - try - { - if (!call.match(g_rosterSettings.callsignRegex)) - { - entry.tx = false; - continue; - } - } - catch (e) {} - } - if (g_rosterSettings.requireGrid == true && callObj.grid.length != 4) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.wantMinDB == true && entry.message.SR < g_rosterSettings.minDb) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.wantMaxDT == true && Math.abs(entry.message.DT) > g_rosterSettings.maxDT) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.wantMinFreq == true && entry.message.DF < g_rosterSettings.minFreq) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.wantMaxFreq == true && entry.message.DF > g_rosterSettings.maxFreq) - { - entry.tx = false; - continue; - } - - if (g_rosterSettings.noMsg == true) - { - try - { - if (callObj.msg.match(g_rosterSettings.noMsgValue)) - { - entry.tx = false; - continue; - } - } - catch (e) {} - } - if (g_rosterSettings.onlyMsg == true) - { - try - { - if (!callObj.msg.match(g_rosterSettings.onlyMsgValue)) - { - entry.tx = false; - continue; - } - } - catch (e) {} - } - - if (callObj.dxcc == window.opener.g_myDXCC) - { - if (g_rosterSettings.noMyDxcc == true) - { - entry.tx = false; - continue; - } - } - else - { - if (g_rosterSettings.onlyMyDxcc == true) - { - entry.tx = false; - continue; - } - } - - if (window.opener.g_callsignLookups.lotwUseEnable == true && g_rosterSettings.usesLoTW == true) - { - if (!(call in window.opener.g_lotwCallsigns)) - { - entry.tx = false; - continue; - } - if (g_rosterSettings.maxLoTW < 27) - { - var months = (g_day - window.opener.g_lotwCallsigns[call]) / 30; - if (months > g_rosterSettings.maxLoTW) - { - entry.tx = false; - continue; - } - } - } - - if (window.opener.g_callsignLookups.eqslUseEnable == true && g_rosterSettings.useseQSL == true) - { - if (!(call in window.opener.g_eqslCallsigns)) - { - entry.tx = false; - continue; - } - } - - if (window.opener.g_callsignLookups.oqrsUseEnable == true && g_rosterSettings.usesOQRS == true) - { - if (!(call in window.opener.g_oqrsCallsigns)) - { - entry.tx = false; - continue; - } - } - - if (callMode != "all") - { - if (entry.DXcall == "CQ DX" && callObj.dxcc == window.opener.g_myDXCC) - { - entry.tx = false; - continue; - } - - var hash = hashMaker(call, callObj, g_rosterSettings.reference); - if (callMode == "worked" && hash in g_worked.call) - { - entry.tx = false; - continue; - } - if (callMode == "confirmed" && hash in g_confirmed.call) - { - entry.tx = false; - continue; - } - - if (g_rosterSettings.hunting == "grid") - { - var hash = hashMaker(callObj.grid.substr(0, 4), - callObj, g_rosterSettings.reference); - if (huntIndex && hash in huntIndex.grid) - { - entry.tx = false; - continue; - } - if (callObj.grid.length == 0) - { - entry.tx = false; - continue; - } - continue; - } - if (g_rosterSettings.hunting == "dxcc") - { - var hash = hashMaker(String(callObj.dxcc), - callObj, g_rosterSettings.reference); - - if (huntIndex && (hash in huntIndex.dxcc)) - { - entry.tx = false; - continue; - } - - continue; - } - - if (g_rosterSettings.hunting == "dxccs" && r_currentDXCCs != -1) - { - if (callObj.dxcc != r_currentDXCCs) - { - entry.tx = false; - continue; - } - } - - if (g_rosterSettings.hunting == "wpx") - { - if (String(callObj.px) == null) - { - entry.tx = false; - continue; - } - var hash = hashMaker(String(callObj.px), - callObj, g_rosterSettings.reference); - - if (huntIndex && (hash in huntIndex.px)) - { - entry.tx = false; - continue; - } - - continue; - } - - if (g_rosterSettings.hunting == "cq") - { - var huntTotal = callObj.cqza.length; - if (huntTotal == 0 || !huntIndex) - { - entry.tx = false; - continue; - } - var huntFound = 0; - for (index in callObj.cqza) - { - var hash = hashMaker(callObj.cqza[index], callObj, g_rosterSettings.reference); - - if (hash in huntIndex.cqz) huntFound++; - } - if (huntFound == huntTotal) - { - entry.tx = false; - continue; - } - - continue; - } - - if (g_rosterSettings.hunting == "itu") - { - var huntTotal = callObj.ituza.length; - if (huntTotal == 0 || !huntIndex) - { - entry.tx = false; - continue; - } - var huntFound = 0; - for (index in callObj.ituza) - { - var hash = hashMaker(callObj.ituza[index], callObj, g_rosterSettings.reference); - - if (hash in huntIndex.ituz) huntFound++; - } - if (huntFound == huntTotal) - { - entry.tx = false; - continue; - } - - if (callObj.grid.length == 0) - { - entry.tx = false; - continue; - } - continue; - } - - if (g_rosterSettings.hunting == "usstates" && window.opener.g_callsignLookups.ulsUseEnable == true) - { - var state = callObj.state; - var finalDxcc = callObj.dxcc; - if (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6) - { - if (state in window.opener.g_StateData) - { - var hash = hashMaker(state, callObj, g_rosterSettings.reference); - - if (huntIndex && hash in huntIndex.state) - { - entry.tx = false; - continue; - } - } - else entry.tx = false; - } - else entry.tx = false; - - continue; - } - - if (g_rosterSettings.hunting == "usstate" && g_currentUSCallsigns) - { - if (call in g_currentUSCallsigns) - { - // Do Nothing - } - else - { - entry.tx = false; - continue; - } - continue; - } - } - if (isAwardTracker) - { - var tx = false; - var baseHash = hashMaker("", callObj, g_rosterSettings.reference); - - for (var award in g_awardTracker) - { - if (g_awardTracker[award].enable) - { - tx = testAward(award, callObj, baseHash); - if (tx) - { - var x = g_awardTracker[award]; - callObj.awardReason = - g_awards[x.sponsor].awards[x.name].tooltip + - " (" + - g_awards[x.sponsor].sponsor + - ")"; - - break; - } - } - } - entry.tx = tx; - } - } - - var hasGtPin = false; - - var newCallList = Array(); - var inversionAlpha = "DD"; - var row = "#000000"; - var bold = "#000000;font-weight: bold;"; - var unconf = "background-clip:padding-box;box-shadow: 0 0 7px 3px inset "; - var layeredAlpha = "77"; - var layeredInversionAlpha = "66"; - var layeredUnconf = "background-clip:padding-box;box-shadow: 0 0 4px 2px inset "; - var layeredUnconfAlpha = "AA"; - - // Second loop, hunting and highlighting - for (var callHash in callRoster) - { - var entry = callRoster[callHash]; - var callObj = entry.callObj; - - // Special case check for called station - if (callObj.qrz == true && entry.tx == false) - { - // The instance has to be enabled - if (window.opener.g_instances[callObj.instance].crEnable == true) - { - // Calling us, but we wouldn't normally display - // If they are not ignored or we're in a QSO with them, var it through - - if ((!(entry.DEcall in g_blockedCalls) && !(callObj.dxcc in g_blockedDxcc)) || - window.opener.g_instances[callObj.instance].status.DXcall == entry.DEcall) - { - entry.tx = true; - } - } - } - - // Only render entries with `tx == true`, ignore the rest - if (callObj.dxcc != -1 && entry.tx == true) - { - // In layered mode ("Hunting: mixed") the workHashSuffix becomes a more stricter 'live band', - // while the layered suffix is a broader 'mixed band' - var workHashSuffix, layeredHashSuffix; - if (layeredMode) - { - workHashSuffix = hashMaker("", callObj, layeredMode); - layeredHashSuffix = hashMaker("", callObj, g_rosterSettings.reference); - } - else - { - workHashSuffix = hashMaker("", callObj, g_rosterSettings.reference); - layeredHashSuffix = false - } - var workHash = workHashSuffix; // TODO: Remove after replacing all occurrences with Suffix - - var callsign = entry.DEcall; - - callObj.hunting = {} - callObj.callFlags = {} - - var colorObject = Object(); - - var callPointer = callObj.CQ == true ? "cursor:pointer" : ""; - - var didWork = false; - - var call = "#FFFF00"; - var grid = "#00FFFF"; - var calling = "#90EE90"; - var dxcc = "#FFA500"; - var state = "#90EE90"; - var cnty = "#CCDD00"; - var cont = "#00DDDD"; - var cqz = "#DDDDDD"; - var ituz = "#DDDDDD"; - var wpx = "#FFFF00"; - - hasGtPin = false; - var shouldAlert = false; - var callBg, gridBg, callingBg, dxccBg, stateBg, cntyBg, contBg, cqzBg, ituzBg, wpxBg, gtBg; - var callConf, gridConf, callingConf, dxccConf, stateConf, cntyConf, contConf, cqzConf, ituzConf, wpxConf; - - callBg = gridBg = callingBg = dxccBg = stateBg = cntyBg = contBg = cqzBg = ituzBg = wpxBg = gtBg = row; - - callConf = gridConf = callingConf = dxccConf = stateConf = cntyConf = contConf = cqzConf = ituzConf = wpxConf = - ""; - - var hash = callsign + workHashSuffix; - var layeredHash = layeredHashSuffix && (callsign + layeredHashSuffix) - - // Call worked in current logbook settings, regardless of hunting mode - if (hash in g_worked.call) - { - callObj.callFlags.worked = true; - didWork = true; - callConf = `${unconf}${call}${inversionAlpha};`; - - if (hash in g_confirmed.call) - { - callObj.callFlags.confirmed = true; - callPointer = "text-decoration: line-through; "; - callConf = ""; - } - } - - // Calls that have OAMS chat support - if ( - callsign in window.opener.g_gtCallsigns && - window.opener.g_gtCallsigns[callsign] in window.opener.g_gtFlagPins && - window.opener.g_gtFlagPins[window.opener.g_gtCallsigns[callsign]].canmsg == true - ) - { - callObj.callFlags.oams = true; - // grab the CID - colorObject.gt = window.opener.g_gtCallsigns[callsign]; - hasGtPin = true; - } - else - { - colorObject.gt = 0; - } - - // We only do hunt highlighting when showing all entries - // This means "Callsigns: All Traffic", "Callsigns: All Traffic/Only Wanted" and "Logbook: Award Tracker" - // There is no highlighting in other modes - if (callMode == "all") - { - // Skip when "only new calls" - // Questions: Move to the first loop? Why only skip new calls in "all traffic" and not other modes? - if (allOnlyNew.checked == true && didWork && callObj.qrz == false) - { - entry.tx = false; - continue; - } - - // Hunting for callsigns - if (huntCallsign.checked == true) - { - var hash = callsign + workHashSuffix; - var layeredHash = layeredMode && (callsign + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.call)) - { - shouldAlert = true; - - callObj.reason.push("call"); - - if (workedIndex && hash in workedIndex.call) - { - if (layeredMode && layeredHash in huntIndex.call) - { - callObj.hunting.call = "worked-and-mixed"; - callConf = `${layeredUnconf}${call}${layeredUnconfAlpha};`; - callBg = `${call}${layeredInversionAlpha}`; - call = bold; - } - // /* Currently we don't have a way to figure out - // * if the call is worked only in this band or also others, - // * so we cannot cover this particular combination - // * and have to default to just showing it as plain "worked" - // */ - // else if (layeredMode && layeredHash in workedIndex.call) - // { - // callObj.hunting.call = "worked-and-mixed-worked"; - // callConf = `${layeredUnconf}${call}${layeredAlpha};`; - // } - else - { - callObj.hunting.call = "worked"; - callConf = `${unconf}${call}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.call) - { - callObj.hunting.call = "mixed"; - callBg = `${call}${layeredAlpha};`; - call = bold; - } - else if (layeredMode && layeredHash in workedIndex.call) - { - callObj.hunting.call = "mixed-worked"; - callConf = `${unconf}${call}${layeredAlpha};`; - } - else - { - callObj.hunting.call = "hunted"; - callBg = `${call}${inversionAlpha};`; - call = bold; - } - } - } - } - - // Hunting for "stations calling you" - if (huntQRZ.checked == true && callObj.qrz == true) - { - callObj.callFlags.calling = true - shouldAlert = true; - callObj.reason.push("qrz"); - } - - // Hunting for stations with OAMS - if (huntOAMS.checked == true && hasGtPin == true) - { - callObj.hunting.oams = "hunted"; - shouldAlert = true; - callObj.reason.push("oams"); - } - - // Hunting for grids - if (huntGrid.checked == true && callObj.grid.length > 1) - { - var hash = callObj.grid.substr(0, 4) + workHashSuffix; - var layeredHash = layeredMode && (callObj.grid.substr(0, 4) + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.grid)) - { - shouldAlert = true; - - callObj.reason.push("grid"); - - if (workedIndex && hash in workedIndex.grid) - { - if (layeredMode && layeredHash in huntIndex.grid) - { - callObj.hunting.grid = "worked-and-mixed"; - gridConf = `${layeredUnconf}${grid}${layeredUnconfAlpha};`; - gridBg = `${grid}${layeredInversionAlpha}`; - grid = bold; - } - else - { - callObj.hunting.grid = "worked"; - gridConf = `${unconf}${grid}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.grid) - { - callObj.hunting.grid = "mixed"; - gridBg = `${grid}${layeredAlpha};`; - grid = bold; - } - else if (layeredMode && layeredHash in workedIndex.grid) - { - callObj.hunting.grid = "mixed-worked"; - gridConf = `${unconf}${grid}${layeredAlpha};`; - } - else - { - callObj.hunting.grid = "hunted"; - gridBg = `${grid}${inversionAlpha};`; - grid = bold; - } - } - } - } - - // Hunting for DXCC - if (huntDXCC.checked == true) - { - var hash = String(callObj.dxcc) + workHashSuffix; - var layeredHash = layeredMode && (String(callObj.dxcc) + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.dxcc)) - { - shouldAlert = true; - - callObj.reason.push("dxcc"); - - if (workedIndex && hash in workedIndex.dxcc) - { - if (layeredMode && layeredHash in huntIndex.dxcc) - { - callObj.hunting.dxcc = "worked-and-mixed"; - dxccConf = `${layeredUnconf}${dxcc}${layeredUnconfAlpha};`; - dxccBg = `${dxcc}${layeredInversionAlpha}`; - dxcc = bold; - } - else - { - callObj.hunting.dxcc = "worked"; - dxccConf = `${unconf}${dxcc}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.dxcc) - { - callObj.hunting.dxcc = "mixed"; - dxccBg = `${dxcc}${layeredAlpha};`; - dxcc = bold; - } - else if (layeredMode && layeredHash in workedIndex.dxcc) - { - callObj.hunting.dxcc = "mixed-worked"; - dxccConf = `${unconf}${dxcc}${layeredAlpha};`; - } - else - { - callObj.hunting.dxcc = "hunted"; - dxccBg = `${dxcc}${inversionAlpha};`; - dxcc = bold; - } - } - } - } - - // Hunting for US States - if (huntState.checked == true && window.opener.g_callsignLookups.ulsUseEnable == true) - { - var stateSearch = callObj.state; - var finalDxcc = callObj.dxcc; - if (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6) - { - if (stateSearch in window.opener.g_StateData) - { - var hash = stateSearch + workHashSuffix; - var layeredHash = layeredMode && (stateSearch + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.state)) - { - shouldAlert = true; - - callObj.reason.push("state"); - - if (workedIndex && hash in workedIndex.state) - { - if (layeredMode && layeredHash in huntIndex.state) - { - callObj.hunting.state = "worked-and-mixed"; - stateConf = `${layeredUnconf}${state}${layeredUnconfAlpha};`; - stateBg = `${state}${layeredInversionAlpha}`; - state = bold; - } - else - { - callObj.hunting.state = "worked"; - stateConf = `${unconf}${state}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.state) - { - callObj.hunting.state = "mixed"; - stateBg = `${state}${layeredAlpha};`; - state = bold; - } - else if (layeredMode && layeredHash in workedIndex.state) - { - callObj.hunting.state = "mixed-worked"; - stateConf = `${unconf}${state}${layeredAlpha};`; - } - else - { - callObj.hunting.state = "hunted"; - stateBg = `${state}${inversionAlpha};`; - state = bold; - } - } - } - } - } - } - - // Hunting for US Counties - if (huntCounty.checked == true && window.opener.g_callsignLookups.ulsUseEnable == true) - { - var finalDxcc = callObj.dxcc; - if ( - callObj.cnty && - (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202) && - callObj.cnty.length > 0 - ) - { - var hash = callObj.cnty + (layeredMode ? layeredHashSuffix : workHashSuffix); - - if ((huntIndex && !(hash in huntIndex.cnty)) || callObj.qual == false) - { - if (callObj.qual == false) - { - var counties = window.opener.g_zipToCounty[callObj.zipcode]; - var foundHit = false; - for (var cnt in counties) - { - var hh = counties[cnt] + workHash; - callObj.cnty = counties[cnt]; - if (huntIndex && !(hh in huntIndex.cnty)) - { - foundHit = true; - break; - } - } - if (foundHit) shouldAlert = true; - } - else - { - shouldAlert = true; - } - - if (shouldAlert) - { - callObj.reason.push("cnty"); - - if (workedIndex && hash in workedIndex.cnty) - { - callObj.hunting.cnty = "worked"; - cntyConf = `${unconf}${cnty}${inversionAlpha};`; - } - else - { - callObj.hunting.cnty = "hunted"; - cntyBg = `${cnty}${inversionAlpha}`; - cnty = bold; - } - } - } - } - } - - // Hunting for CQ Zones - if (huntCQz.checked == true) - { - var huntTotal = callObj.cqza.length; - var huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; - - for (index in callObj.cqza) - { - var hash = callObj.cqza[index] + workHashSuffix; - var layeredHash = layeredMode && (callObj.cqza[index] + layeredHashSuffix) - - if (huntIndex && hash in huntIndex.cqz) huntFound++; - if (layeredMode && layeredHash in huntIndex.cqz) layeredFound++; - if (workedIndex && hash in workedIndex.cqz) workedFound++; - if (layeredMode && layeredHash in workedIndex.cqz) layeredWorkedFound++; - } - if (huntFound != huntTotal) - { - shouldAlert = true; - callObj.reason.push("cqz"); - - if (workedIndex && workedFound == huntTotal) - { - if (layeredMode && layeredFound == huntTotal) - { - callObj.hunting.cqz = "worked-and-mixed"; - cqzConf = `${layeredUnconf}${cqz}${layeredUnconfAlpha};`; - cqzBg = `${cqz}${layeredInversionAlpha}`; - cqz = bold; - } - else - { - callObj.hunting.cqz = "worked"; - cqzConf = `${unconf}${cqz}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredFound == huntTotal) - { - callObj.hunting.cqz = "mixed"; - cqzBg = `${cqz}${layeredAlpha};`; - cqz = bold; - } - else if (layeredMode && layeredWorkedFound == huntTotal) - { - callObj.hunting.cqz = "mixed-worked"; - cqzConf = `${unconf}${cqz}${layeredAlpha};`; - } - else - { - callObj.hunting.cqz = "hunted"; - cqzBg = `${cqz}${inversionAlpha};`; - cqz = bold; - } - } - } - } - - // Hunting for ITU Zones - if (huntITUz.checked == true) - { - var huntTotal = callObj.ituza.length; - var huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; - - for (index in callObj.ituza) - { - var hash = callObj.ituza[index] + workHashSuffix; - var layeredHash = layeredMode && (callObj.ituza[index] + layeredHashSuffix) - - if (huntIndex && hash in huntIndex.ituz) huntFound++; - if (layeredMode && layeredHash in huntIndex.ituz) layeredFound++; - if (workedIndex && hash in workedIndex.ituz) workedFound++; - if (layeredMode && layeredHash in workedIndex.ituz) layeredWorkedFound++; - } - if (huntFound != huntTotal) - { - shouldAlert = true; - callObj.reason.push("ituz"); - - if (workedIndex && workedFound == huntTotal) - { - if (layeredMode && layeredFound == huntTotal) - { - callObj.hunting.ituz = "worked-and-mixed"; - ituzConf = `${layeredUnconf}${ituz}${layeredUnconfAlpha};`; - ituzBg = `${ituz}${layeredInversionAlpha}`; - ituz = bold; - } - else - { - callObj.hunting.ituz = "worked"; - ituzConf = `${unconf}${ituz}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredFound == huntTotal) - { - callObj.hunting.ituz = "mixed"; - ituzBg = `${ituz}${layeredAlpha};`; - ituz = bold; - } - else if (layeredMode && layeredWorkedFound == huntTotal) - { - callObj.hunting.ituz = "mixed-worked"; - ituzConf = `${unconf}${ituz}${layeredAlpha};`; - } - else - { - callObj.hunting.ituz = "hunted"; - ituzBg = `${ituz}${inversionAlpha};`; - ituz = bold; - } - } - } - } - - // Hunting for WPX (Prefixes) - if (huntPX.checked == true && callObj.px) - { - var hash = String(callObj.px) + workHashSuffix; - var layeredHash = layeredMode && (String(callObj.px) + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.px)) - { - shouldAlert = true; - - callObj.reason.push("wpx"); - - if (workedIndex && hash in workedIndex.px) - { - if (layeredMode && layeredHash in huntIndex.px) - { - callObj.hunting.wpx = "worked-and-mixed"; - wpxConf = `${layeredUnconf}${wpx}${layeredUnconfAlpha};`; - wpxBg = `${wpx}${layeredInversionAlpha}`; - wpx = bold; - } - else - { - callObj.hunting.wpx = "worked"; - wpxConf = `${unconf}${wpx}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.px) - { - callObj.hunting.wpx = "mixed"; - wpxBg = `${wpx}${layeredAlpha};`; - wpx = bold; - } - else if (layeredMode && layeredHash in workedIndex.px) - { - callObj.hunting.wpx = "mixed-worked"; - wpxConf = `${unconf}${wpx}${layeredAlpha};`; - } - else - { - callObj.hunting.wpx = "hunted"; - wpxBg = `${wpx}${inversionAlpha};`; - wpx = bold; - } - } - } - } - - // Hunting for Continents - if (huntCont.checked == true && callObj.cont) - { - var hash = String(callObj.cont) + workHashSuffix; - var layeredHash = layeredMode && (String(callObj.cont) + layeredHashSuffix) - - if (huntIndex && !(hash in huntIndex.cont)) - { - shouldAlert = true; - - callObj.reason.push("cont"); - - if (workedIndex && hash in workedIndex.cont) - { - if (layeredMode && layeredHash in huntIndex.cont) - { - callObj.hunting.cont = "worked-and-mixed"; - contConf = `${layeredUnconf}${cont}${layeredUnconfAlpha};`; - contBg = `${cont}${layeredInversionAlpha}`; - cont = bold; - } - else - { - callObj.hunting.cont = "worked"; - contConf = `${unconf}${cont}${inversionAlpha};`; - } - } - else - { - if (layeredMode && layeredHash in huntIndex.cont) - { - callObj.hunting.cont = "mixed"; - contBg = `${cont}${layeredAlpha};`; - cont = bold; - } - else if (layeredMode && layeredHash in workedIndex.cont) - { - callObj.hunting.cont = "mixed-worked"; - contConf = `${unconf}${cont}${layeredAlpha};`; - } - else - { - callObj.hunting.cont = "hunted"; - contBg = `${cont}${inversionAlpha};`; - cont = bold; - } - } - } - } - } - - // Station is calling us - if (callObj.DXcall == window.opener.myDEcall) - { - callingBg = "#0000FF" + inversionAlpha; - calling = "#FFFF00;text-shadow: 0px 0px 2px #FFFF00"; - } - else if (callObj.CQ == true && g_rosterSettings.cqOnly == false) - { - callingBg = calling + inversionAlpha; - calling = bold; - } - - // Assemble all styles - colorObject.call = "style='" + callConf + "background-color:" + callBg + ";color:" + - call + ";" + callPointer + "'"; - colorObject.grid = "style='" + gridConf + "background-color:" + gridBg + ";color:" + grid + ";cursor:pointer'"; - colorObject.calling = "style='" + callingConf + "background-color:" + callingBg + ";color:" + calling + "'"; - colorObject.dxcc = "style='" + dxccConf + "background-color:" + dxccBg + ";color:" + dxcc + "'"; - colorObject.state = "style='" + stateConf + "background-color:" + stateBg + ";color:" + state + "'"; - colorObject.cnty = "style='" + cntyConf + "background-color:" + cntyBg + ";color:" + cnty + "'"; - colorObject.cont = "style='" + contConf + "background-color:" + contBg + ";color:" + cont + "'"; - colorObject.cqz = "style='" + cqzConf + "background-color:" + cqzBg + ";color:" + cqz + "'"; - colorObject.ituz = "style='" + ituzConf + "background-color:" + ituzBg + ";color:" + ituz + "'"; - colorObject.px = "style='" + wpxConf + "background-color:" + wpxBg + ";color:" + wpx + "'"; - - // Just in case, don't alert if we worked this callsign alread - if (didWork && shouldAlert) shouldAlert = false; - - callObj.shouldAlert = shouldAlert; - - callObj.style = colorObject; - - if (g_rosterSettings.columns.Spot) - { - callObj.spot = window.opener.getSpotTime( - callObj.DEcall + callObj.mode + callObj.band + callObj.grid - ); - if (callObj.spot == null) - { - callObj.spot = { when: 0, snr: 0 }; - } - } - else - { - callObj.spot = { when: 0, snr: 0 }; - } - - modes[callObj.mode] = true; - bands[callObj.band] = true; - - newCallList.push(callObj); - } - } - - // Show the roster count in the window title - - var totalCount = Object.keys(callRoster).length; - var visibleCount = newCallList.length; - var huntedCount = newCallList.filter(obj => Object.keys(obj.hunting).length > 0).length - var countParts = []; - - if (totalCount != visibleCount) - { - countParts.push(`${totalCount} heard`); - } - - countParts.push(`${visibleCount} in roster`); - - if (huntedCount != visibleCount) - { - countParts.push(`${huntedCount} wanted`); - } - - window.document.title = `Call Roster: ${countParts.join(" • ")}`; - - // Render the roster - - if (g_rosterSettings.compact == false) - { - newCallList.sort(r_sortFunction[g_rosterSettings.lastSortIndex]); - if (g_rosterSettings.lastSortReverse == 1) - { - newCallList.reverse(); - } - } - else - { - // Age sort for now... make this happen Tag - newCallList.sort(r_sortFunction[6]).reverse(); - } - - var showBands = (Object.keys(bands).length > 1) || g_rosterSettings.columns.Band; - var showModes = (Object.keys(modes).length > 1) || g_rosterSettings.columns.Mode; - - var worker = ""; - - // Render the table headers for the regular roster table - if (g_rosterSettings.compact == false) - { - worker = ""; - - worker += ""; - - if (showBands) - { worker += ""; } - - if (showModes) - { worker += ""; } - - worker += ""; - - if (g_rosterSettings.columns.Calling) - { worker += ""; } - - if (g_rosterSettings.columns.Msg) - { worker += ""; } - - if (g_rosterSettings.columns.DXCC) - { worker += ""; } - - if (g_rosterSettings.columns.Flag) - { worker += ""; } - - if (g_rosterSettings.columns.State) - { worker += ""; } - - if (g_rosterSettings.columns.County) - { worker += ""; } - - if (g_rosterSettings.columns.Cont) - { worker += ""; } - - if (g_rosterSettings.columns.dB) - { worker += ""; } - - if (g_rosterSettings.columns.Freq) - { worker += ""; } - - if (g_rosterSettings.columns.DT) - { worker += ""; } - - if (g_rosterSettings.columns.Dist) - { - worker += ""; - } - - if (g_rosterSettings.columns.Azim) - { worker += ""; } - - if (g_rosterSettings.columns.CQz) - { worker += ""; } - - if (g_rosterSettings.columns.ITUz) - { worker += ""; } - - if (g_rosterSettings.columns.PX) - { worker += ""; } - - if (window.opener.g_callsignLookups.lotwUseEnable == true && g_rosterSettings.columns.LoTW) - { worker += ""; } - - if (window.opener.g_callsignLookups.eqslUseEnable == true && g_rosterSettings.columns.eQSL) - { worker += ""; } - - if (window.opener.g_callsignLookups.oqrsUseEnable == true && g_rosterSettings.columns.OQRS) - { worker += ""; } - - if (g_rosterSettings.columns.Spot) - { worker += ""; } - - if (g_rosterSettings.columns.Life) - { worker += ""; } - - if (g_rosterSettings.columns.OAMS) - { worker += ""; } - - if (g_rosterSettings.columns.Age) - { worker += ""; } - } - // No headers for compact roster table - else - { - worker = "
"; - } - - var shouldAlert = 0; - - // Render all rows - for (var x in newCallList) - { - var callObj = newCallList[x]; - - if (callObj.shouldAlert == false && onlyHits == true && callObj.qrz == false) - { continue; } - - var spotString = ""; - if (g_rosterSettings.columns.Spot && callObj.qrz == false) - { - spotString = getSpotString(callObj); - if (g_rosterSettings.onlySpot && spotString == "") continue; - } - var grid = callObj.grid.length > 1 ? callObj.grid.substr(0, 4) : "-"; - - var geo = window.opener.g_worldGeoData[window.opener.g_dxccToGeoData[callObj.dxcc]]; - var cqzone = grid in window.opener.g_gridToCQZone ? window.opener.g_gridToCQZone[grid].join(", ") : "-"; - var ituzone = grid in window.opener.g_gridToITUZone ? window.opener.g_gridToITUZone[grid].join(", ") : "-"; - var thisCall = callObj.DEcall; - - if (thisCall.match("^[A-Z][0-9][A-Z](/w+)?$")) - { callObj.style.call = "class='oneByOne'"; } - if (thisCall == window.opener.g_instances[callObj.instance].status.DXcall) - { - if (window.opener.g_instances[callObj.instance].status.TxEnabled == 1) - { - callObj.style.call = "class='dxCalling'"; - } - else - { - callObj.style.call = "class='dxCaller'"; - } - } - - if (g_rosterSettings.compact == false) - { - var acks = window.opener.g_acknowledgedCalls - - var thisHash = thisCall + callObj.band + callObj.mode; - var callStr = thisCall.formatCallsign() - if (acks[thisCall]) - { - callStr = `${callStr} ` - callObj.awardReason += ` - ${thisCall}: ${acks[thisCall].message}` - } - - worker += "
"; - worker += - ""; - - if (showBands) - { - worker += - ""; - } - if (showModes) - { - var color = "888888"; - if (callObj.mode in g_modeColors) - { color = g_modeColors[callObj.mode]; } - worker += - ""; - } - - worker += - ""; - if (g_rosterSettings.columns.Calling) - { - var lookString = callObj.CQ ? "name='CQ'" : "name='Calling'"; - worker += - ""; - } - if (g_rosterSettings.columns.Msg) - { worker += ""; } - - if (g_rosterSettings.columns.DXCC) - { - worker += - ""; - } - if (g_rosterSettings.columns.Flag) - { - worker += - ""; - } - if (g_rosterSettings.columns.State) - { - worker += - ""; - } - if (g_rosterSettings.columns.County) - { - worker += - ""; - } - if (g_rosterSettings.columns.Cont) - { - worker += - ""; - } - - if (g_rosterSettings.columns.dB) - { - worker += - ""; - } - if (g_rosterSettings.columns.Freq) - { worker += ""; } - if (g_rosterSettings.columns.DT) - { worker += ""; } - if (g_rosterSettings.columns.Dist) - { - worker += - ""; - } - if (g_rosterSettings.columns.Azim) - { - worker += - ""; - } - - if (g_rosterSettings.columns.CQz) - { - worker += - ""; - } - if (g_rosterSettings.columns.ITUz) - { - worker += - ""; - } - - if (g_rosterSettings.columns.PX) - { - worker += - ""; - } - - if ( - window.opener.g_callsignLookups.lotwUseEnable == true && - g_rosterSettings.columns.LoTW - ) - { - if (thisCall in window.opener.g_lotwCallsigns) - { - if (g_rosterSettings.maxLoTW < 27) - { - var months = (g_day - window.opener.g_lotwCallsigns[thisCall]) / 30; - if (months > g_rosterSettings.maxLoTW) - { - worker += - ""; - } - else - { - worker += - ""; - } - } - else - { - worker += - ""; - } - } - else worker += ""; - } - if ( - window.opener.g_callsignLookups.eqslUseEnable == true && - g_rosterSettings.columns.eQSL - ) - { - worker += - ""; - } - if ( - window.opener.g_callsignLookups.oqrsUseEnable == true && - g_rosterSettings.columns.OQRS - ) - { - worker += - ""; - } - - if (g_rosterSettings.columns.Spot) - { - worker += - ""; - } - if (g_rosterSettings.columns.Life) - { - worker += - ""; - } - - if (g_rosterSettings.columns.OAMS) - { - if (callObj.style.gt != 0) - { - if (callObj.reason.includes("oams")) - { - worker += - ""; - } - else - { - worker += - ""; - } - } - else worker += ""; - } - - if (g_rosterSettings.columns.Age) - { - worker += - ""; - } - - worker += ""; - } - else - { - var tt = - callObj.RSTsent + - "㏈, " + - parseInt(callObj.dt * 100) + - "ms, " + - callObj.delta + - "hz" + - (callObj.grid.length ? ", " + callObj.grid : "") + - ", " + - (timeNowSec() - callObj.age).toDHMS(); - worker += - "
"; - worker += - "
" + - thisCall.formatCallsign() + - "
"; - worker += - "
" + - window.opener.g_dxccToAltName[callObj.dxcc] + - "
"; - worker += "
"; - } - - if (g_rosterSettings.realtime == false) - { - var call = callObj.DEcall; - g_scriptReport[call] = Object.assign({}, callObj); - g_scriptReport[call].dxccName = - window.opener.g_dxccToAltName[callObj.dxcc]; - g_scriptReport[call].distance = parseInt( - callObj.distance * - MyCircle.validateRadius(window.opener.distanceUnit.value) - ); - - delete g_scriptReport[call].DEcall; - g_scriptReport[call].rect = null; - delete g_scriptReport[call].rect; - delete g_scriptReport[call].style; - delete g_scriptReport[call].wspr; - delete g_scriptReport[call].qso; - delete g_scriptReport[call].instance; - - if (callMode != "all") - { - g_scriptReport[call].shouldAlert = true; - g_scriptReport[call].reason.push(g_rosterSettings.hunting); - } - } - - if ( - callObj.alerted == false && - callMode == "all" && - callObj.shouldAlert == true - ) - { - callObj.alerted = true; - shouldAlert++; - } - else if (callObj.alerted == false && callMode != "all") - { - callObj.alerted = true; - shouldAlert++; - } - - callObj.shouldAlert = false; - } - - if (g_rosterSettings.compact == false) - { - worker += "
CallsignBandModeGridCallingMsgDXCCFlagStateCountyContdBFreqDTDist(" + - window.opener.distanceUnit.value.toLowerCase() + ")AzimCQzITUzPXLoTWeQSLOQRSSpotLifeOAMSAge
" + - callStr + - "" + - callObj.band + - "" + callObj.mode + "" + - grid + - "" + - callObj.DXcall.formatCallsign() + - "" + callObj.msg + "" + - window.opener.g_dxccToAltName[callObj.dxcc] + "" + - (callObj.state ? callObj.state.substr(3) : "") + - "" + - (callObj.cnty - ? (callObj.qual ? "" : "~ ") + - window.opener.g_cntyToCounty[callObj.cnty] + - (callObj.qual ? "" : " ~") - : "") + - "" + - (callObj.cont ? callObj.cont : "") + - "" + - callObj.RSTsent + - "" + callObj.delta + "" + callObj.dt + "" + - parseInt( - callObj.distance * - MyCircle.validateRadius(window.opener.distanceUnit.value) - ) + - "" + - parseInt(callObj.heading) + - "" + - callObj.cqza.join(",") + - "" + - callObj.ituza.join(",") + - "" + - (callObj.px ? callObj.px : "") + - "?" + - (thisCall in window.opener.g_eqslCallsigns ? "✔" : "") + - "" + - (thisCall in window.opener.g_oqrsCallsigns ? "✔" : "") + - "" + - spotString + - "" + - (timeNowSec() - callObj.life).toDHMS() + - "" + - (timeNowSec() - callObj.age).toDHMS() + - "
"; - RosterTable.innerHTML = worker; - } - else - { - RosterTable.innerHTML = worker + ""; - } - - var dirPath = window.opener.g_scriptDir; - var scriptExists = false; - var script = "cr-alert.sh"; - - try - { - if (fs.existsSync(dirPath)) - { - if (window.opener.g_platform == "windows") - { - script = "cr-alert.bat"; - } - if ( - fs.existsSync(dirPath + script) && - g_rosterSettings.realtime == false - ) - { - scriptExists = true; - scriptIcon.innerHTML = - "
" + - (window.opener.g_crScript == 1 - ? "Script Enabled" - : "Script Disabled") + - "
"; - scriptIcon.style.display = "block"; - } - else - { - scriptIcon.style.display = "none"; - } - } - } - catch (e) {} - - if (shouldAlert > 0) - { - if (window.opener.g_classicAlerts.huntRoster == true) - { - var notify = window.opener.huntRosterNotify.value; - if (notify == "0") - { - var media = window.opener.huntRosterNotifyMedia.value; - if (media != "none") window.opener.playAlertMediaFile(media); - } - else if (notify == "1") - { - window.opener.speakAlertString( - window.opener.huntRosterNotifyWord.value - ); - } - } - - if ( - g_rosterSettings.realtime == false && - scriptExists && - window.opener.g_crScript == 1 - ) - { - try - { - fs.writeFileSync( - dirPath + "cr-alert.json", - JSON.stringify(g_scriptReport, null, 2) - ); - - var thisProc = dirPath + script; - var cp = require("child_process"); - var child = cp.spawn(thisProc, [], { - detached: true, - cwd: dirPath.slice(0, -1), - stdio: ["ignore", "ignore", "ignore"] - }); - child.unref(); - } - catch (e) - { - conosle.log(e); - } - g_scriptReport = Object(); - } - else g_scriptReport = Object(); - } + let rosterSettings = prepareRosterSettings(); + processRosterFiltering(callRoster, rosterSettings); + processRosterHunting(callRoster, rosterSettings); + renderRoster(callRoster, rosterSettings); + sendAlerts(callRoster, rosterSettings); } function realtimeRoster() { - var now = timeNowSec(); + let now = timeNowSec(); g_day = now / 86400; if (g_rosterSettings.realtime == false) return; - var timeCols = document.getElementsByClassName("timeCol"); - for (var x in timeCols) + let timeCols = document.getElementsByClassName("timeCol"); + for (let x in timeCols) { if ((typeof timeCols[x].id != "undefined") && (typeof callRoster[timeCols[x].id.substr(2)] != "undefined")) { - var when = now - callRoster[timeCols[x].id.substr(2)].callObj.age; + let when = now - callRoster[timeCols[x].id.substr(2)].callObj.age; timeCols[x].innerHTML = when.toDHMS(); } } - var lifeCols = document.getElementsByClassName("lifeCol"); - for (var x in lifeCols) + let lifeCols = document.getElementsByClassName("lifeCol"); + for (let x in lifeCols) { if ((typeof lifeCols[x].id != "undefined") && (typeof callRoster[lifeCols[x].id.substr(2)] != "undefined")) { - var when = now - callRoster[lifeCols[x].id.substr(2)].callObj.life; + let when = now - callRoster[lifeCols[x].id.substr(2)].callObj.life; lifeCols[x].innerHTML = when.toDHMS(); } } if (g_rosterSettings.columns.Spot) { - var spotCols = document.getElementsByClassName("spotCol"); - for (var x in spotCols) + let spotCols = document.getElementsByClassName("spotCol"); + for (let x in spotCols) { if ((typeof spotCols[x].id != "undefined") && (typeof callRoster[spotCols[x].id.substr(2)] != "undefined")) { @@ -2288,7 +499,7 @@ function realtimeRoster() function getSpotString(callObj) { - var result = ""; + let result = ""; if (callObj.spot && callObj.spot.when > 0) { when = timeNowSec() - callObj.spot.when; @@ -2319,22 +530,22 @@ function callLookup(thisHash, grid) function callingLookup(thisHash, grid) { - var thisCall = callRoster[thisHash].DXcall; + let thisCall = callRoster[thisHash].DXcall; window.opener.startLookup(thisCall, grid); } function callGenMessage(thisHash, grid) { - var thisCall = callRoster[thisHash].DEcall; - var instance = callRoster[thisHash].callObj.instance; + let thisCall = callRoster[thisHash].DEcall; + let instance = callRoster[thisHash].callObj.instance; window.opener.startGenMessages(thisCall, grid, instance); } function callingGenMessage(thisHash, grid) { - var thisCall = callRoster[thisHash].DXcall; - var instance = callRoster[thisHash].callObj.instance; + let thisCall = callRoster[thisHash].DXcall; + let instance = callRoster[thisHash].callObj.instance; window.opener.startGenMessages(thisCall, grid, instance); } @@ -2354,17 +565,17 @@ function updateInstances() { if (window.opener.g_instancesIndex.length > 1) { - var instances = window.opener.g_instances; + let instances = window.opener.g_instances; - var worker = ""; + let worker = ""; - var keys = Object.keys(instances).sort(); - for (var key in keys) + let keys = Object.keys(instances).sort(); + for (let key in keys) { - var inst = keys[key]; - var sp = inst.split(" - "); - var shortInst = sp[sp.length - 1].substring(0, 18); - var color = "blue"; + let inst = keys[key]; + let sp = inst.split(" - "); + let shortInst = sp[sp.length - 1].substring(0, 18); + let color = "blue"; if (instances[inst].open == false) { @@ -2424,7 +635,7 @@ function toTitleCase(str) function newOption(value, text) { if (typeof text == "undefined") text = value; - var option = document.createElement("option"); + let option = document.createElement("option"); option.value = value; option.text = text; return option; @@ -2439,10 +650,10 @@ function createSelectOptions( checkSponsor = null ) { - var selector = document.getElementById(selectElementString); + let selector = document.getElementById(selectElementString); selector.innerHTML = ""; - var option = document.createElement("option"); + let option = document.createElement("option"); option.value = defaultValue; option.text = selectNameDefault; option.selected = true; @@ -2450,15 +661,15 @@ function createSelectOptions( option.style.display = "none"; selector.appendChild(option); - var obj = null; + let obj = null; if (forObject) { obj = Object.keys(forObject).sort(); } - for (var k in obj) + for (let k in obj) { - var opt = obj[k]; - var option = document.createElement("option"); + let opt = obj[k]; + let option = document.createElement("option"); option.value = opt; option.text = altName ? forObject[opt][altName] : opt; if (checkSponsor && opt + "-" + checkSponsor in g_awardTracker) @@ -2483,13 +694,13 @@ function awardSponsorChanged() function awardNameChanged() { - var awardToAdd = newAwardTrackerObject( + let awardToAdd = newAwardTrackerObject( awardSponsor.value, awardName.value, true ); - var hash = awardToAdd.name + "-" + awardToAdd.sponsor; + let hash = awardToAdd.name + "-" + awardToAdd.sponsor; if (!(hash in g_awardTracker)) { g_awardTracker[hash] = awardToAdd; @@ -2510,7 +721,7 @@ function awardNameChanged() function updateAwardList(target = null) { - var worker = + let worker = ""; worker += ""; worker += ""; + let worker = ""; + let clearString = ""; if (Object.keys(g_blockedCalls).length > 0) { @@ -3375,7 +1586,7 @@ function init() window.opener.setRosterSpot(g_rosterSettings.columns.Spot); - for (var key in g_rosterSettings.wanted) + for (let key in g_rosterSettings.wanted) { if (document.getElementById(key)) { document.getElementById(key).checked = g_rosterSettings.wanted[key]; } @@ -3384,7 +1595,7 @@ function init() g_menu = new nw.Menu(); g_compactMenu = new nw.Menu(); - var item = new nw.MenuItem({ + let item = new nw.MenuItem({ type: "normal", label: g_rosterSettings.controls ? "Hide Controls" : "Show Controls", click: function () @@ -3489,7 +1700,7 @@ function init() label: "Ignore Call", click: function () { - var thisCall = callRoster[g_targetHash].DEcall; + let thisCall = callRoster[g_targetHash].DEcall; g_blockedCalls[thisCall] = true; storeBlocks(); window.opener.goProcessRoster(); @@ -3541,9 +1752,9 @@ function init() item = new nw.MenuItem({ type: "separator" }); g_menu.append(item); - for (var key in g_rosterSettings.columns) + for (let key in g_rosterSettings.columns) { - var itemx = new nw.MenuItem({ + let itemx = new nw.MenuItem({ type: "checkbox", label: key, checked: g_rosterSettings.columns[key], @@ -3785,10 +1996,10 @@ function handleContextMenu(ev) { if (editView.style.display == "inline-block") return false; - var mouseX = Math.round(ev.x); - var mouseY = Math.round(ev.y); + let mouseX = Math.round(ev.x); + let mouseY = Math.round(ev.y); - var len = Object.keys(g_blockedCalls).length; + let len = Object.keys(g_blockedCalls).length; if (len > 0) { g_clearIgnores.enabled = true; @@ -3854,7 +2065,7 @@ function handleContextMenu(ev) } } - var name = ev.target.getAttribute("name"); + let name = ev.target.getAttribute("name"); if (name == "Callsign") { g_targetHash = ev.target.parentNode.id; @@ -3875,8 +2086,8 @@ function handleContextMenu(ev) } else if (name && name.startsWith("DXCC")) { - var dxcca = name.split("("); - var dxcc = parseInt(dxcca[1]); + let dxcca = name.split("("); + let dxcc = parseInt(dxcca[1]); g_targetDxcc = dxcc; g_dxccMenu.popup(mouseX, mouseY); } @@ -3972,15 +2183,15 @@ function testAward(awardName, obj, baseHash) function processAward(awardName) { - var award = + let award = g_awards[g_awardTracker[awardName].sponsor].awards[ g_awardTracker[awardName].name ]; g_awardTracker[awardName].rule = award.rule; - var test = (g_awardTracker[awardName].test = {}); - var mode = award.rule.mode.slice(); + let test = (g_awardTracker[awardName].test = {}); + let mode = award.rule.mode.slice(); - var Index = mode.indexOf("Mixed"); + let Index = mode.indexOf("Mixed"); if (Index > -1) mode.splice(Index, 1); Index = mode.indexOf("Digital"); @@ -4022,9 +2233,9 @@ function processAward(awardName) g_awardTracker[awardName].stat = {}; - for (var i in window.opener.g_QSOhash) + for (let i in window.opener.g_QSOhash) { - var obj = window.opener.g_QSOhash[i]; + let obj = window.opener.g_QSOhash[i]; if (test.confirmed && !obj.confirmed) continue; @@ -4056,7 +2267,7 @@ function processAward(awardName) function newAwardCountObject() { - var statCountObject = {}; + let statCountObject = {}; statCountObject.bands = {}; statCountObject.bands.Mixed = {}; @@ -4266,7 +2477,7 @@ function scoreAcont(award, obj) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "AN") cont = "OC"; if (!(cont in award.stat)) award.stat[cont] = newAwardCountObject(); return workAwardObject( @@ -4284,7 +2495,7 @@ function testAcont(award, obj, baseHash) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "AN") cont = "OC"; if (cont + baseHash in g_tracker[award.test.look].cont) @@ -4299,7 +2510,7 @@ function scoreAcont5(award, obj, baseHash) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "NA" || cont == "SA") cont = "AM"; if (cont == "AN") cont = "OC"; @@ -4319,7 +2530,7 @@ function testAcont5(award, obj, baseHash) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "NA" || cont == "SA") cont = "AM"; if (cont == "AN") cont = "OC"; @@ -4349,7 +2560,7 @@ function testAcont2band(award, obj, baseHash) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "AN") cont = "OC"; if (cont + baseHash in g_tracker[award.test.look].cont) @@ -4364,7 +2575,7 @@ function scoreAcont52band(award, obj) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "NA" || cont == "SA") cont = "AM"; if (cont == "AN") cont = "OC"; @@ -4385,7 +2596,7 @@ function testAcont52band(award, obj, baseHash) { if (obj.cont) { - var cont = obj.cont; + let cont = obj.cont; if (cont == "NA" || cont == "SA") cont = "AM"; if (cont == "AN") cont = "OC"; @@ -4401,7 +2612,7 @@ function scoreAgrids(award, obj) { if (obj.grid) { - var grid = obj.grid.substr(0, 4); + let grid = obj.grid.substr(0, 4); if (!(grid in award.stat)) award.stat[grid] = newAwardCountObject(); return workAwardObject( @@ -4451,7 +2662,7 @@ function testAcnty(award, obj, baseHash) function scoreAcall(award, obj) { - var call = obj.DEcall; + let call = obj.DEcall; if (call.indexOf("/") > -1) { @@ -4484,7 +2695,7 @@ function scoreAIOTA(award, obj) { if (obj.IOTA) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if ("IOTA" in test.rule && test.rule.IOTA.indexOf(obj.IOTA) == -1) { return false; } @@ -4506,7 +2717,7 @@ function testAIOTA(award, obj, baseHash) { /* if ( obj.IOTA ) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if ( "IOTA" in test.rule && test.rule.IOTA.indexOf(obj.IOTA) == -1 ) return false; @@ -4520,7 +2731,7 @@ function scoreAcallarea(award, obj) { if (obj.zone != null) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if ("zone" in test.rule && test.rule.zone.indexOf(obj.zone) == -1) { return false; } @@ -4541,7 +2752,7 @@ function testAcallarea(award, obj, baseHash) { if (obj.zone != null) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if ("zone" in test.rule && test.rule.zone.indexOf(obj.zone) == -1) { return false; } @@ -4553,8 +2764,8 @@ function scoreApx(award, obj) { if (obj.px) { - var test = g_awards[award.sponsor].awards[award.name]; - var px = obj.px; + let test = g_awards[award.sponsor].awards[award.name]; + let px = obj.px; if ("px" in test.rule) { px = px.substr(0, test.rule.px[0].length); @@ -4577,8 +2788,8 @@ function testApx(award, obj, baseHash) { if (obj.px) { - var test = g_awards[award.sponsor].awards[award.name]; - var px = obj.px; + let test = g_awards[award.sponsor].awards[award.name]; + let px = obj.px; if ("px" in test.rule) { px = px.substr(0, test.rule.px[0].length); @@ -4597,8 +2808,8 @@ function scoreApxa(award, obj) { if (obj.px) { - var test = g_awards[award.sponsor].awards[award.name]; - for (var i in test.rule.pxa) + let test = g_awards[award.sponsor].awards[award.name]; + for (let i in test.rule.pxa) { if (test.rule.pxa[i].indexOf(obj.px) > -1) { @@ -4620,8 +2831,8 @@ function testApxa(award, obj, baseHash) { if (obj.px) { - var test = g_awards[award.sponsor].awards[award.name]; - for (var i in test.rule.pxa) + let test = g_awards[award.sponsor].awards[award.name]; + for (let i in test.rule.pxa) { if (test.rule.pxa[i].indexOf(obj.px) > -1) { @@ -4641,11 +2852,11 @@ function testApxa(award, obj, baseHash) function scoreAsfx(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; - var suf = obj.DEcall.replace(obj.px, ""); - for (var i in test.rule.sfx) + let test = g_awards[award.sponsor].awards[award.name]; + let suf = obj.DEcall.replace(obj.px, ""); + for (let i in test.rule.sfx) { - for (var s in test.rule.sfx[i]) + for (let s in test.rule.sfx[i]) { if (suf.indexOf(test.rule.sfx[i][s]) == 0) { @@ -4666,11 +2877,11 @@ function scoreAsfx(award, obj) function testAsfx(award, obj, baseHash) { - var test = g_awards[award.sponsor].awards[award.name]; - var suf = obj.DEcall.replace(obj.px, ""); - for (var i in test.rule.sfx) + let test = g_awards[award.sponsor].awards[award.name]; + let suf = obj.DEcall.replace(obj.px, ""); + for (let i in test.rule.sfx) { - for (var s in test.rule.sfx[i]) + for (let s in test.rule.sfx[i]) { if (suf.indexOf(test.rule.sfx[i][s]) == 0) { @@ -4772,8 +2983,8 @@ function testAcqz(award, obj, baseHash) { if (obj.cqza) { - var x = 0; - for (var z in obj.cqza) + let x = 0; + for (let z in obj.cqza) { if (obj.cqza[z] + baseHash in g_tracker[award.test.look].cqz) x++; } @@ -4784,13 +2995,13 @@ function testAcqz(award, obj, baseHash) function scoreAnumsfx(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; - var px = obj.px.substr(0, obj.px.length - 1); - var suf = obj.DEcall.replace(px, ""); + let test = g_awards[award.sponsor].awards[award.name]; + let px = obj.px.substr(0, obj.px.length - 1); + let suf = obj.DEcall.replace(px, ""); suf = suf.substr(0, test.rule.numsfx[0][0].length); - for (var i in test.rule.numsfx) + for (let i in test.rule.numsfx) { - for (var s in test.rule.numsfx[i]) + for (let s in test.rule.numsfx[i]) { if (suf.indexOf(test.rule.numsfx[i][s]) == 0) { @@ -4811,13 +3022,13 @@ function scoreAnumsfx(award, obj) function testAnumsfx(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; - var px = obj.px.substr(0, obj.px.length - 1); - var suf = obj.DEcall.replace(px, ""); + let test = g_awards[award.sponsor].awards[award.name]; + let px = obj.px.substr(0, obj.px.length - 1); + let suf = obj.DEcall.replace(px, ""); suf = suf.substr(0, test.rule.numsfx[0][0].length); - for (var i in test.rule.numsfx) + for (let i in test.rule.numsfx) { - for (var s in test.rule.numsfx[i]) + for (let s in test.rule.numsfx[i]) { if (suf.indexOf(test.rule.numsfx[i][s]) == 0) { @@ -4831,11 +3042,11 @@ function testAnumsfx(award, obj) function scoreApxplus(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if (test.rule.pxplus) { - for (var i in test.rule.pxplus) + for (let i in test.rule.pxplus) { if (obj.DEcall.indexOf(test.rule.pxplus[i]) == 0) { @@ -4855,11 +3066,11 @@ function scoreApxplus(award, obj) function testApxplus(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; + let test = g_awards[award.sponsor].awards[award.name]; if (test.rule.pxplus) { - for (var i in test.rule.pxplus) + for (let i in test.rule.pxplus) { if (obj.DEcall.indexOf(test.rule.pxplus[i]) == 0) { @@ -4873,7 +3084,7 @@ function testApxplus(award, obj) function loadAwardJson() { g_awards = {}; - var fs = require("fs"); + let fs = require("fs"); if (fs.existsSync("./data/awards.json")) { fileBuf = fs.readFileSync("./data/awards.json"); @@ -4882,9 +3093,9 @@ function loadAwardJson() g_awards = JSON.parse(fileBuf); // fs.writeFileSync("./data/awards.json", JSON.stringify(g_awards,null,2)); - for (var sp in g_awards) + for (let sp in g_awards) { - for (var aw in g_awards[sp].awards) + for (let aw in g_awards[sp].awards) { if (!("unique" in g_awards[sp].awards[aw].rule)) { g_awards[sp].awards[aw].rule.unique = 1; } @@ -4897,7 +3108,7 @@ function loadAwardJson() if (g_awards[sp].awards[aw].rule.band.length == 0) { g_awards[sp].awards[aw].rule.band = []; - for (var key in g_awards[sp].mixed) + for (let key in g_awards[sp].mixed) { g_awards[sp].awards[aw].rule.band.push(g_awards[sp].mixed[key]); } @@ -4908,7 +3119,7 @@ function loadAwardJson() ) { g_awards[sp].awards[aw].rule.endorse = []; - for (var key in g_awards[sp].mixed) + for (let key in g_awards[sp].mixed) { g_awards[sp].awards[aw].rule.endorse.push( g_awards[sp].mixed[key] @@ -4931,7 +3142,7 @@ function loadAwardJson() function processAllAwardTrackers() { - for (var tracker in g_awardTracker) + for (let tracker in g_awardTracker) { if (!(g_awardTracker[tracker].sponsor in g_awards)) { @@ -4955,7 +3166,7 @@ function processAllAwardTrackers() function newAwardTrackerObject(sponsor, award, enable) { - var newAward = {}; + let newAward = {}; newAward.sponsor = sponsor; newAward.name = award; newAward.enable = enable; @@ -4970,13 +3181,13 @@ function newAwardTrackerObject(sponsor, award, enable) function addAllAwards() { - for (var sponsor in g_awards) + for (let sponsor in g_awards) { - for (var award in g_awards[sponsor].awards) + for (let award in g_awards[sponsor].awards) { - var awardToAdd = newAwardTrackerObject(sponsor, award, true); + let awardToAdd = newAwardTrackerObject(sponsor, award, true); - var hash = awardToAdd.name + "-" + awardToAdd.sponsor; + let hash = awardToAdd.name + "-" + awardToAdd.sponsor; if (!(hash in g_awardTracker)) { g_awardTracker[hash] = awardToAdd; @@ -4999,7 +3210,7 @@ function delAllAwards() function newCompileCountObject() { - var compileCountObject = {}; + let compileCountObject = {}; compileCountObject.bands = {}; compileCountObject.modes = {}; compileCountObject.endorse = {}; @@ -5009,19 +3220,19 @@ function newCompileCountObject() function singleCompile(award, obj) { - var test = g_awards[award.sponsor].awards[award.name]; - var rule = test.rule; - var comp = newCompileCountObject(); - for (var mode in rule.mode) + let test = g_awards[award.sponsor].awards[award.name]; + let rule = test.rule; + let comp = newCompileCountObject(); + for (let mode in rule.mode) { comp.modes[rule.mode[mode]] = 0; comp.bands[rule.mode[mode]] = {}; - for (var band in rule.band) + for (let band in rule.band) { comp.bands[rule.mode[mode]][rule.band[band]] = 0; } - for (var key in obj) + for (let key in obj) { if ( rule.mode[mode] in obj[key].bands && @@ -5030,7 +3241,7 @@ function singleCompile(award, obj) { comp.modes[rule.mode[mode]] += 1; - for (var band in rule.band) + for (let band in rule.band) { if (rule.band[band] in obj[key].bands[rule.mode[mode]]) { comp.bands[rule.mode[mode]][rule.band[band]] += 1; } @@ -5039,11 +3250,11 @@ function singleCompile(award, obj) } } - for (var mode in comp.modes) + for (let mode in comp.modes) { comp.endorse[mode] = {}; comp.counts[mode] = {}; - for (var cnts in rule.count) + for (let cnts in rule.count) { comp.counts[mode][rule.count[cnts]] = { num: comp.modes[mode], @@ -5053,10 +3264,10 @@ function singleCompile(award, obj) }; } - for (var endorse in rule.endorse) + for (let endorse in rule.endorse) { comp.endorse[mode][rule.endorse[endorse]] = {}; - for (var cnts in rule.count) + for (let cnts in rule.count) { comp.endorse[mode][rule.endorse[endorse]][rule.count[cnts]] = comp.bands[mode][rule.endorse[endorse]] >= rule.count[cnts]; @@ -5069,22 +3280,22 @@ function singleCompile(award, obj) function doubleCompile(award, firstLevel) { - var test = g_awards[award.sponsor].awards[award.name]; - var rule = test.rule; + let test = g_awards[award.sponsor].awards[award.name]; + let rule = test.rule; - for (var k in firstLevel) + for (let k in firstLevel) { firstLevel[k].bands = {}; // firstLevel[k].modes = {}; - var obj = singleCompile(award, firstLevel[k].unique); + let obj = singleCompile(award, firstLevel[k].unique); - for (var mode in obj.bands) + for (let mode in obj.bands) { - for (var cnt in test.rule.count) + for (let cnt in test.rule.count) { if (obj.counts[mode][test.rule.count[cnt]].num >= test.rule.unique) { - for (var band in obj.bands[mode]) + for (let band in obj.bands[mode]) { if (!(mode in firstLevel[k].bands)) firstLevel[k].bands[mode] = {}; @@ -5097,7 +3308,7 @@ function doubleCompile(award, firstLevel) } } } - /* for ( var mode in obj.modes ) + /* for ( let mode in obj.modes ) { if ( !(mode in firstLevel[k].modes) ) firstLevel[k].modes[mode] = 0; diff --git a/package.nw/lib/roster/prepareRosterSettings.js b/package.nw/lib/roster/prepareRosterSettings.js index 5aa845b..2dd785d 100644 --- a/package.nw/lib/roster/prepareRosterSettings.js +++ b/package.nw/lib/roster/prepareRosterSettings.js @@ -1,6 +1,6 @@ function prepareRosterSettings() { - var rosterSettings = { + let rosterSettings = { bands: {}, modes: {}, callMode: g_rosterSettings.callsign, diff --git a/package.nw/lib/roster/processRosterFiltering.js b/package.nw/lib/roster/processRosterFiltering.js index d879ef4..3b973b5 100644 --- a/package.nw/lib/roster/processRosterFiltering.js +++ b/package.nw/lib/roster/processRosterFiltering.js @@ -2,12 +2,12 @@ function processRosterFiltering(callRoster, rosterSettings) { // First loop, exclude calls, mostly based on "Exceptions" settings // this whole section is full of individual if's that could be broken out - for (var callHash in callRoster) + for (let callHash in callRoster) { - var entry = callRoster[callHash]; - var callObj = entry.callObj; + let entry = callRoster[callHash]; + let callObj = entry.callObj; - var call = entry.DEcall; + let call = entry.DEcall; entry.tx = true; callObj.shouldAlert = false; @@ -144,7 +144,7 @@ function processRosterFiltering(callRoster, rosterSettings) } if (g_rosterSettings.maxLoTW < 27) { - var months = (g_day - window.opener.g_lotwCallsigns[call]) / 30; + let months = (g_day - window.opener.g_lotwCallsigns[call]) / 30; if (months > g_rosterSettings.maxLoTW) { entry.tx = false; @@ -179,7 +179,7 @@ function processRosterFiltering(callRoster, rosterSettings) continue; } - var hash = hashMaker(call, callObj, g_rosterSettings.reference); + let hash = hashMaker(call, callObj, g_rosterSettings.reference); if (rosterSettings.callMode == "worked" && hash in g_worked.call) { entry.tx = false; @@ -193,7 +193,7 @@ function processRosterFiltering(callRoster, rosterSettings) if (g_rosterSettings.hunting == "grid") { - var hash = hashMaker(callObj.grid.substr(0, 4), + let hash = hashMaker(callObj.grid.substr(0, 4), callObj, g_rosterSettings.reference); if (huntIndex && hash in huntIndex.grid) { @@ -209,7 +209,7 @@ function processRosterFiltering(callRoster, rosterSettings) } if (g_rosterSettings.hunting == "dxcc") { - var hash = hashMaker(String(callObj.dxcc), + let hash = hashMaker(String(callObj.dxcc), callObj, g_rosterSettings.reference); if (huntIndex && (hash in huntIndex.dxcc)) @@ -242,7 +242,7 @@ function processRosterFiltering(callRoster, rosterSettings) entry.tx = false; continue; } - var hash = hashMaker(String(callObj.px), + let hash = hashMaker(String(callObj.px), callObj, g_rosterSettings.reference); if (huntIndex && (hash in huntIndex.px)) @@ -256,16 +256,16 @@ function processRosterFiltering(callRoster, rosterSettings) if (g_rosterSettings.hunting == "cq") { - var huntTotal = callObj.cqza.length; + let huntTotal = callObj.cqza.length; if (huntTotal == 0 || !huntIndex) { entry.tx = false; continue; } - var huntFound = 0; + let huntFound = 0; for (index in callObj.cqza) { - var hash = hashMaker(callObj.cqza[index], callObj, g_rosterSettings.reference); + let hash = hashMaker(callObj.cqza[index], callObj, g_rosterSettings.reference); if (hash in huntIndex.cqz) huntFound++; } @@ -279,16 +279,16 @@ function processRosterFiltering(callRoster, rosterSettings) if (g_rosterSettings.hunting == "itu") { - var huntTotal = callObj.ituza.length; + let huntTotal = callObj.ituza.length; if (huntTotal == 0 || !huntIndex) { entry.tx = false; continue; } - var huntFound = 0; + let huntFound = 0; for (index in callObj.ituza) { - var hash = hashMaker(callObj.ituza[index], callObj, g_rosterSettings.reference); + let hash = hashMaker(callObj.ituza[index], callObj, g_rosterSettings.reference); if (hash in huntIndex.ituz) huntFound++; } @@ -308,13 +308,13 @@ function processRosterFiltering(callRoster, rosterSettings) if (g_rosterSettings.hunting == "usstates" && window.opener.g_callsignLookups.ulsUseEnable == true) { - var state = callObj.state; - var finalDxcc = callObj.dxcc; + let state = callObj.state; + let finalDxcc = callObj.dxcc; if (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6) { if (state in window.opener.g_StateData) { - var hash = hashMaker(state, callObj, g_rosterSettings.reference); + let hash = hashMaker(state, callObj, g_rosterSettings.reference); if (huntIndex && hash in huntIndex.state) { @@ -345,17 +345,17 @@ function processRosterFiltering(callRoster, rosterSettings) } if (rosterSettings.isAwardTracker) { - var tx = false; - var baseHash = hashMaker("", callObj, g_rosterSettings.reference); + let tx = false; + let baseHash = hashMaker("", callObj, g_rosterSettings.reference); - for (var award in g_awardTracker) + for (let award in g_awardTracker) { if (g_awardTracker[award].enable) { tx = testAward(award, callObj, baseHash); if (tx) { - var x = g_awardTracker[award]; + let x = g_awardTracker[award]; // TODO: Move award reason out of exclusions code? callObj.awardReason = diff --git a/package.nw/lib/roster/processRosterHunting.js b/package.nw/lib/roster/processRosterHunting.js index a318237..526f0d1 100644 --- a/package.nw/lib/roster/processRosterHunting.js +++ b/package.nw/lib/roster/processRosterHunting.js @@ -1,26 +1,26 @@ function processRosterHunting(callRoster, rosterSettings) { - // these vars, do they rely on anything between the top and here? - // if not could they be put in the var list at the beginning? - var hasGtPin = false; + // these lets, do they rely on anything between the top and here? + // if not could they be put in the let list at the beginning? + let hasGtPin = false; - var inversionAlpha = "DD"; - var row = "#000000"; - var bold = "#000000;font-weight: bold;"; - var unconf = "background-clip:padding-box;box-shadow: 0 0 7px 3px inset "; - var layeredAlpha = "77"; - var layeredInversionAlpha = "66"; - var layeredUnconf = "background-clip:padding-box;box-shadow: 0 0 4px 2px inset "; - var layeredUnconfAlpha = "AA"; + let inversionAlpha = "DD"; + let row = "#000000"; + let bold = "#000000;font-weight: bold;"; + let unconf = "background-clip:padding-box;box-shadow: 0 0 7px 3px inset "; + let layeredAlpha = "77"; + let layeredInversionAlpha = "66"; + let layeredUnconf = "background-clip:padding-box;box-shadow: 0 0 4px 2px inset "; + let layeredUnconfAlpha = "AA"; // TODO: Hunting results might be used to filter, based on the "Callsigns: Only Wanted" option, // so maybe we can move this loop first, and add a check to the filtering loop? // Second loop, hunting and highlighting - for (var callHash in callRoster) + for (let callHash in callRoster) { - var entry = callRoster[callHash]; - var callObj = entry.callObj; + let entry = callRoster[callHash]; + let callObj = entry.callObj; // Special case check for called station if (callObj.qrz == true && entry.tx == false) @@ -29,7 +29,7 @@ function processRosterHunting(callRoster, rosterSettings) if (window.opener.g_instances[callObj.instance].crEnable == true) { // Calling us, but we wouldn't normally display - // If they are not ignored or we're in a QSO with them, var it through + // If they are not ignored or we're in a QSO with them, let it through // TODO: This is here because it's after the filtering stage if ((!(entry.DEcall in g_blockedCalls) && !(callObj.dxcc in g_blockedDxcc)) || @@ -45,7 +45,7 @@ function processRosterHunting(callRoster, rosterSettings) { // In layered mode ("Hunting: mixed") the workHashSuffix becomes a more stricter 'live band', // while the layered suffix is a broader 'mixed band' - var workHashSuffix, layeredHashSuffix; + let workHashSuffix, layeredHashSuffix; if (rosterSettings.layeredMode) { workHashSuffix = hashMaker("", callObj, rosterSettings.layeredMode); @@ -56,42 +56,42 @@ function processRosterHunting(callRoster, rosterSettings) workHashSuffix = hashMaker("", callObj, g_rosterSettings.reference); layeredHashSuffix = false } - var workHash = workHashSuffix; // TODO: Remove after replacing all occurrences with Suffix + let workHash = workHashSuffix; // TODO: Remove after replacing all occurrences with Suffix - var callsign = entry.DEcall; + let callsign = entry.DEcall; callObj.hunting = {} callObj.callFlags = {} - var colorObject = Object(); + let colorObject = Object(); - var callPointer = callObj.CQ == true ? "cursor:pointer" : ""; + let callPointer = callObj.CQ == true ? "cursor:pointer" : ""; - var didWork = false; + let didWork = false; - var call = "#FFFF00"; - var grid = "#00FFFF"; - var calling = "#90EE90"; - var dxcc = "#FFA500"; - var state = "#90EE90"; - var cnty = "#CCDD00"; - var cont = "#00DDDD"; - var cqz = "#DDDDDD"; - var ituz = "#DDDDDD"; - var wpx = "#FFFF00"; + let call = "#FFFF00"; + let grid = "#00FFFF"; + let calling = "#90EE90"; + let dxcc = "#FFA500"; + let state = "#90EE90"; + let cnty = "#CCDD00"; + let cont = "#00DDDD"; + let cqz = "#DDDDDD"; + let ituz = "#DDDDDD"; + let wpx = "#FFFF00"; hasGtPin = false; - var shouldAlert = false; - var callBg, gridBg, callingBg, dxccBg, stateBg, cntyBg, contBg, cqzBg, ituzBg, wpxBg, gtBg; - var callConf, gridConf, callingConf, dxccConf, stateConf, cntyConf, contConf, cqzConf, ituzConf, wpxConf; + let shouldAlert = false; + let callBg, gridBg, callingBg, dxccBg, stateBg, cntyBg, contBg, cqzBg, ituzBg, wpxBg, gtBg; + let callConf, gridConf, callingConf, dxccConf, stateConf, cntyConf, contConf, cqzConf, ituzConf, wpxConf; callBg = gridBg = callingBg = dxccBg = stateBg = cntyBg = contBg = cqzBg = ituzBg = wpxBg = gtBg = row; callConf = gridConf = callingConf = dxccConf = stateConf = cntyConf = contConf = cqzConf = ituzConf = wpxConf = ""; - var hash = callsign + workHashSuffix; - var layeredHash = layeredHashSuffix && (callsign + layeredHashSuffix) + let hash = callsign + workHashSuffix; + let layeredHash = layeredHashSuffix && (callsign + layeredHashSuffix) // Call worked in current logbook settings, regardless of hunting mode if (hash in g_worked.call) @@ -141,8 +141,8 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for callsigns if (huntCallsign.checked == true) { - var hash = callsign + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (callsign + layeredHashSuffix) + let hash = callsign + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (callsign + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.call)) { @@ -217,8 +217,8 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for grids if (huntGrid.checked == true && callObj.grid.length > 1) { - var hash = callObj.grid.substr(0, 4) + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (callObj.grid.substr(0, 4) + layeredHashSuffix) + let hash = callObj.grid.substr(0, 4) + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (callObj.grid.substr(0, 4) + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.grid)) { @@ -267,8 +267,8 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for DXCC if (huntDXCC.checked == true) { - var hash = String(callObj.dxcc) + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (String(callObj.dxcc) + layeredHashSuffix) + let hash = String(callObj.dxcc) + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (String(callObj.dxcc) + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.dxcc)) { @@ -317,14 +317,14 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for US States if (huntState.checked == true && window.opener.g_callsignLookups.ulsUseEnable == true) { - var stateSearch = callObj.state; - var finalDxcc = callObj.dxcc; + let stateSearch = callObj.state; + let finalDxcc = callObj.dxcc; if (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6) { if (stateSearch in window.opener.g_StateData) { - var hash = stateSearch + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (stateSearch + layeredHashSuffix) + let hash = stateSearch + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (stateSearch + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.state)) { @@ -375,24 +375,24 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for US Counties if (huntCounty.checked == true && window.opener.g_callsignLookups.ulsUseEnable == true) { - var finalDxcc = callObj.dxcc; + let finalDxcc = callObj.dxcc; if ( callObj.cnty && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202) && callObj.cnty.length > 0 ) { - var hash = callObj.cnty + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix); + let hash = callObj.cnty + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix); if ((rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.cnty)) || callObj.qual == false) { if (callObj.qual == false) { - var counties = window.opener.g_zipToCounty[callObj.zipcode]; - var foundHit = false; - for (var cnt in counties) + let counties = window.opener.g_zipToCounty[callObj.zipcode]; + let foundHit = false; + for (let cnt in counties) { - var hh = counties[cnt] + workHash; + let hh = counties[cnt] + workHash; callObj.cnty = counties[cnt]; if (rosterSettings.huntIndex && !(hh in rosterSettings.huntIndex.cnty)) { @@ -430,13 +430,13 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for CQ Zones if (huntCQz.checked == true) { - var huntTotal = callObj.cqza.length; - var huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; + let huntTotal = callObj.cqza.length; + let huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; for (index in callObj.cqza) { - var hash = callObj.cqza[index] + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (callObj.cqza[index] + layeredHashSuffix) + let hash = callObj.cqza[index] + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (callObj.cqza[index] + layeredHashSuffix) if (rosterSettings.huntIndex && hash in rosterSettings.huntIndex.cqz) huntFound++; if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.cqz) layeredFound++; @@ -489,13 +489,13 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for ITU Zones if (huntITUz.checked == true) { - var huntTotal = callObj.ituza.length; - var huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; + let huntTotal = callObj.ituza.length; + let huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0; for (index in callObj.ituza) { - var hash = callObj.ituza[index] + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (callObj.ituza[index] + layeredHashSuffix) + let hash = callObj.ituza[index] + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (callObj.ituza[index] + layeredHashSuffix) if (rosterSettings.huntIndex && hash in rosterSettings.huntIndex.ituz) huntFound++; if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.ituz) layeredFound++; @@ -548,8 +548,8 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for WPX (Prefixes) if (huntPX.checked == true && callObj.px) { - var hash = String(callObj.px) + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (String(callObj.px) + layeredHashSuffix) + let hash = String(callObj.px) + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (String(callObj.px) + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.px)) { @@ -598,8 +598,8 @@ function processRosterHunting(callRoster, rosterSettings) // Hunting for Continents if (huntCont.checked == true && callObj.cont) { - var hash = String(callObj.cont) + workHashSuffix; - var layeredHash = rosterSettings.layeredMode && (String(callObj.cont) + layeredHashSuffix) + let hash = String(callObj.cont) + workHashSuffix; + let layeredHash = rosterSettings.layeredMode && (String(callObj.cont) + layeredHashSuffix) if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.cont)) { diff --git a/package.nw/lib/roster/renderNormalRoster.js b/package.nw/lib/roster/renderNormalRoster.js index 6247c8d..55ad3f0 100644 --- a/package.nw/lib/roster/renderNormalRoster.js +++ b/package.nw/lib/roster/renderNormalRoster.js @@ -1,6 +1,6 @@ function renderNormalRosterHeaders(showBands, showModes) { - var worker = "" + let worker = "" worker = "
"; @@ -2531,31 +742,31 @@ function updateAwardList(target = null) AwardWantedList.innerHTML = worker; - var keys = Object.keys(g_awardTracker).sort(); + let keys = Object.keys(g_awardTracker).sort(); - for (var key in keys) + for (let key in keys) { - var award = g_awardTracker[keys[key]]; - var rule = g_awards[award.sponsor].awards[award.name].rule; - var row = awardTable.insertRow(); + let award = g_awardTracker[keys[key]]; + let rule = g_awards[award.sponsor].awards[award.name].rule; + let row = awardTable.insertRow(); row.id = keys[key]; - var baseAward = false; - var baseCount = 0; + let baseAward = false; + let baseCount = 0; - var endorseCount = 0; - var endorseTotal = 0; - var allEndorse = false; + let endorseCount = 0; + let endorseTotal = 0; + let allEndorse = false; - var tooltip = + let tooltip = g_awards[award.sponsor].awards[award.name].tooltip + " (" + g_awards[award.sponsor].sponsor + ")\n"; tooltip += toTitleCase(award.test.qsl_req) + " QSO\n"; - for (var mode in award.comp.counts) + for (let mode in award.comp.counts) { tooltip += mode + "\n"; - for (var count in award.comp.counts[mode]) + for (let count in award.comp.counts[mode]) { endorseTotal++; if (award.comp.counts[mode][count].per == 100) @@ -2574,10 +785,10 @@ function updateAwardList(target = null) " (" + award.comp.counts[mode][count].per + "%)\n"; - var wrk = ""; + let wrk = ""; if (Object.keys(award.comp.endorse).length > 0) { - for (var band in award.comp.endorse[mode]) + for (let band in award.comp.endorse[mode]) { endorseTotal++; if (award.comp.endorse[mode][band][count] == true) @@ -2595,7 +806,7 @@ function updateAwardList(target = null) } if (baseCount > 0 && endorseCount == endorseTotal) allEndorse = true; - var cell = createCellHtml( + let cell = createCellHtml( row, "

" + award.name + " - " + award.sponsor ); @@ -2631,7 +842,7 @@ function updateAwardList(target = null) function deleteAwardTracker(sender) { - var id = sender.parentNode.parentNode.id; + let id = sender.parentNode.parentNode.id; delete g_awardTracker[id]; storeAwardTracker(); resetAwardAdd(); @@ -2641,7 +852,7 @@ function deleteAwardTracker(sender) function awardCheckboxChanged(sender) { - var awardId = sender.target.parentNode.parentNode.id; + let awardId = sender.target.parentNode.parentNode.id; g_awardTracker[sender.target.parentNode.parentNode.id][sender.target.name] = sender.target.checked; storeAwardTracker(); @@ -2650,7 +861,7 @@ function awardCheckboxChanged(sender) function awardValueChanged(sender) { - var awardId = sender.target.parentNode.parentNode.id; + let awardId = sender.target.parentNode.parentNode.id; g_awardTracker[sender.target.parentNode.parentNode.id][sender.target.name] = sender.target.value; storeAwardTracker(); @@ -2666,12 +877,12 @@ function createCell( checkbox = false ) { - var cell = row.insertCell(); + let cell = row.insertCell(); if (data == null) cell.innerHTML = value; if (title) cell.title = title; if (checkbox) { - var x = document.createElement("INPUT"); + let x = document.createElement("INPUT"); x.setAttribute("type", "checkbox"); x.checked = value; x.name = target; @@ -2687,7 +898,7 @@ function createCell( function createCellHtml(row, html, title = null) { - var cell = row.insertCell(); + let cell = row.insertCell(); cell.innerHTML = html; if (title) cell.title = title; @@ -2696,7 +907,7 @@ function createCellHtml(row, html, title = null) function createAwardSelector(cell, target, value, forObject) { - var selector = document.createElement("select"); + let selector = document.createElement("select"); selector.name = target; selector.value = value; selector.disabled = forObject.length == 1; @@ -2704,9 +915,9 @@ function createAwardSelector(cell, target, value, forObject) selector.style.padding = "1px"; if (selector.disabled) selector.style.cursor = "auto"; selector.addEventListener("change", awardValueChanged); - for (var opt in forObject) + for (let opt in forObject) { - var option = document.createElement("option"); + let option = document.createElement("option"); option.value = forObject[opt]; if (option.value == "Phone" || option.value == "CW") option.disabled = true; option.text = forObject[opt]; @@ -2770,7 +981,7 @@ function setVisual() /* for ( key in g_rosterSettings.wanted ) { document.getElementById(key).checked = true; - var t = key.replace("hunt",""); + let t = key.replace("hunt",""); if ( t in g_rosterSettings.columns ) g_rosterSettings.columns[t] = true; } */ @@ -2783,7 +994,7 @@ function setVisual() } else { - for (var key in g_rosterSettings.wanted) + for (let key in g_rosterSettings.wanted) { if (document.getElementById(key)) { document.getElementById(key).checked = g_rosterSettings.wanted[key]; } @@ -2923,13 +1134,13 @@ function wantedChanged(element) if (element.checked == true) { - var t = element.id.replace("hunt", ""); + let t = element.id.replace("hunt", ""); if (t in g_rosterSettings.columns) { g_rosterSettings.columns[t] = true; - for (var i = 0; i < g_menu.items.length; ++i) + for (let i = 0; i < g_menu.items.length; ++i) { if ( typeof g_menu.items[i].checked != "undefined" && @@ -2943,7 +1154,7 @@ function wantedChanged(element) writeRosterSettings(); g_scriptReport = Object(); - for (var callHash in window.opener.g_callRoster) + for (let callHash in window.opener.g_callRoster) { window.opener.g_callRoster[callHash].callObj.alerted = false; } @@ -3002,17 +1213,17 @@ function valuesChanged() writeRosterSettings(); g_scriptReport = Object(); - for (var callHash in window.opener.g_callRoster) + for (let callHash in window.opener.g_callRoster) { window.opener.g_callRoster[callHash].callObj.alerted = false; } window.opener.goProcessRoster(); } function getBuffer(file_url, callback, flag, mode, port, cookie) { - var url = require("url"); - var http = require(mode); - var fileBuffer = null; - var options = null; + let url = require("url"); + let http = require(mode); + let fileBuffer = null; + let options = null; if (cookie != null) { options = { @@ -3034,8 +1245,8 @@ function getBuffer(file_url, callback, flag, mode, port, cookie) } http.get(options, function (res) { - var fsize = res.headers["content-length"]; - var cookies = null; + let fsize = res.headers["content-length"]; + let cookies = null; if (typeof res.headers["set-cookie"] != "undefined") { cookies = res.headers["set-cookie"]; } res @@ -3058,11 +1269,11 @@ function getBuffer(file_url, callback, flag, mode, port, cookie) function callsignResult(buffer, flag) { - var rawData = JSON.parse(buffer); + let rawData = JSON.parse(buffer); r_currentUSState = flag; g_currentUSCallsigns = Object(); - for (var key in rawData.c) g_currentUSCallsigns[rawData.c[key]] = true; + for (let key in rawData.c) g_currentUSCallsigns[rawData.c[key]] = true; window.opener.goProcessRoster(); } @@ -3075,7 +1286,7 @@ function stateChangedValue(what) if (window.opener.g_mapSettings.offlineMode == false) { - var callState = r_currentUSState.replace("CN-", ""); + let callState = r_currentUSState.replace("CN-", ""); getBuffer( "http://app.gridtracker.org/callsigns/" + callState + ".callsigns.json", callsignResult, @@ -3112,24 +1323,24 @@ function DXCCsChangedValue(what) function initDXCCSelector() { - var items = Object.keys(window.opener.g_dxccToAltName).sort(function (a, b) + let items = Object.keys(window.opener.g_dxccToAltName).sort(function (a, b) { return window.opener.g_dxccToAltName[a].localeCompare( window.opener.g_dxccToAltName[b] ); }); - var newSelect = document.getElementById("DXCCsSelect"); + let newSelect = document.getElementById("DXCCsSelect"); - for (var i in items) + for (let i in items) { - var key = items[i]; + let key = items[i]; if ( window.opener.g_worldGeoData[window.opener.g_dxccToGeoData[key]].geo != "deleted" ) { - var option = document.createElement("option"); + let option = document.createElement("option"); option.value = key; option.text = window.opener.g_dxccToAltName[key] + @@ -3146,11 +1357,11 @@ function initDXCCSelector() function manifestResult(buffer, flag) { r_callsignManifest = JSON.parse(buffer); - var newSelect = document.getElementById("stateSelect"); + let newSelect = document.getElementById("stateSelect"); - for (var key in r_callsignManifest.cnt) + for (let key in r_callsignManifest.cnt) { - var option = document.createElement("option"); + let option = document.createElement("option"); if (window.opener.g_enums[key]) { option.value = key; @@ -3239,8 +1450,8 @@ function openIgnoreEdit() { MainCallRoster.style.display = "none"; editView.style.display = "inline-block"; - var worker = ""; - var clearString = "

nonenone
"; worker += ""; @@ -87,29 +87,29 @@ function renderNormalRosterHeaders(showBands, showModes) function renderNormalRosterRow(callObj, showBands, showModes) { - var thisCall = callObj.DEcall; - var acks = window.opener.g_acknowledgedCalls; - var grid = callObj.grid.length > 1 ? callObj.grid.substr(0, 4) : "-"; + let thisCall = callObj.DEcall; + let acks = window.opener.g_acknowledgedCalls; + let grid = callObj.grid.length > 1 ? callObj.grid.substr(0, 4) : "-"; - var geo = window.opener.g_worldGeoData[window.opener.g_dxccToGeoData[callObj.dxcc]]; - var cqzone = grid in window.opener.g_gridToCQZone ? window.opener.g_gridToCQZone[grid].join(", ") : "-"; - var ituzone = grid in window.opener.g_gridToITUZone ? window.opener.g_gridToITUZone[grid].join(", ") : "-"; + let geo = window.opener.g_worldGeoData[window.opener.g_dxccToGeoData[callObj.dxcc]]; + let cqzone = grid in window.opener.g_gridToCQZone ? window.opener.g_gridToCQZone[grid].join(", ") : "-"; + let ituzone = grid in window.opener.g_gridToITUZone ? window.opener.g_gridToITUZone[grid].join(", ") : "-"; - var spotString = ""; + let spotString = ""; if (g_rosterSettings.columns.Spot && callObj.qrz == false) { spotString = getSpotString(callObj); } - var thisHash = thisCall + callObj.band + callObj.mode; - var callStr = thisCall.formatCallsign() + let thisHash = thisCall + callObj.band + callObj.mode; + let callStr = thisCall.formatCallsign() if (acks[thisCall]) { callStr = `${callStr} ` callObj.awardReason += ` - ${acks[thisCall].message}` } - var worker = ""; + let worker = ""; worker += "
Callsign
g_rosterSettings.maxLoTW) { worker += diff --git a/package.nw/lib/roster/renderRoster.js b/package.nw/lib/roster/renderRoster.js index 39bb6a1..981b394 100644 --- a/package.nw/lib/roster/renderRoster.js +++ b/package.nw/lib/roster/renderRoster.js @@ -18,10 +18,10 @@ function renderRoster(callRoster, rosterSettings) // Show the roster count in the window title - // var visibleCallList = callRoster.filter(entry => entry.tx); + // let visibleCallList = callRoster.filter(entry => entry.tx); - var visibleCallList = []; - var band = + let visibleCallList = []; + let band = window.opener.g_appSettings.gtBandFilter == "auto" ? window.opener.g_appSettings.myBand : window.opener.g_appSettings.gtBandFilter.length == 0 @@ -48,15 +48,15 @@ function renderRoster(callRoster, rosterSettings) } } - var totalCount = Object.keys(callRoster).length; - var visibleCount = visibleCallList.length; + let totalCount = Object.keys(callRoster).length; + let visibleCount = visibleCallList.length; - var huntedCount = 0; + let huntedCount = 0; if (typeof (obj) !== "undefined") { huntedCount = visibleCallList.filter(obj => Object.keys().length > 0).length } - var countParts = []; + let countParts = []; if (totalCount != visibleCount) { @@ -86,21 +86,21 @@ function renderRoster(callRoster, rosterSettings) visibleCallList.sort(r_sortFunction[6]).reverse(); } - var showBands = (Object.keys(rosterSettings.bands).length > 1) || g_rosterSettings.columns.Band; - var showModes = (Object.keys(rosterSettings.modes).length > 1) || g_rosterSettings.columns.Mode; + let showBands = (Object.keys(rosterSettings.bands).length > 1) || g_rosterSettings.columns.Band; + let showModes = (Object.keys(rosterSettings.modes).length > 1) || g_rosterSettings.columns.Mode; - var worker = g_rosterSettings.compact ? renderCompactRosterHeaders() : renderNormalRosterHeaders(showBands, showModes) + let worker = g_rosterSettings.compact ? renderCompactRosterHeaders() : renderNormalRosterHeaders(showBands, showModes) // Third loop: render all rows - for (var x in visibleCallList) + for (let x in visibleCallList) { - var callObj = visibleCallList[x].callObj; + let callObj = visibleCallList[x].callObj; // TODO: This is filtering if (callObj.shouldAlert == false && rosterSettings.onlyHits == true && callObj.qrz == false) { continue; } - var thisCall = callObj.DEcall; + let thisCall = callObj.DEcall; if (thisCall.match("^[A-Z][0-9][A-Z](/w+)?$")) { callObj.style.call = "class='oneByOne'"; }