Merge branch '134-630m-band-shown-as-worked-in-lookup-window' into 'master'

Resolve "630m band shown as worked in Lookup Window"

Closes #134

See merge request gridtracker.org/gridtracker!215

If this is changing anything in the UI or operational behavior, please prepare to update the wiki!
merge-requests/201/merge
T Loomis 2022-10-05 05:57:47 +00:00
commit 468d0ea955
7 zmienionych plików z 112 dodań i 112 usunięć

Wyświetl plik

@ -41,6 +41,28 @@ function dropHandler(ev)
}
}
function dateToISO8601(dString, tZone)
{
var retDate = "";
var tZone = (typeof tZone !== "undefined") ? tZone : "Z";
var dateParts = dString.match(/(\d{4}-\d{2}-\d{2})(\s+(\d{2}:\d{2}:\d{2}))?/);
if (dateParts !== null)
{
retDate = dateParts[1]
if ((typeof dateParts[3]) !== "undefined")
{
retDate += "T" + dateParts[3] + ".000" + tZone;
}
else
{
retDate += "T00:00:00.000" + tZone;
}
}
return retDate;
}
function findAdiField(row, field)
{
var value = "";

Wyświetl plik

@ -1237,13 +1237,13 @@ function alertCheckDXCC(key, callObj)
if (
status == "worked" &&
String(callObj.dxcc) + hashMaker(callObj.band, callObj.mode) in
String(callObj.dxcc) + "|" + hashMaker(callObj.band, callObj.mode) in
g_tracker.worked.dxcc
)
{ return 0; }
if (
status == "confirmed" &&
String(callObj.dxcc) + hashMaker(callObj.band, callObj.mode) in
String(callObj.dxcc) + "|" + hashMaker(callObj.band, callObj.mode) in
g_tracker.confirmed.dxcc
)
{ return 0; }
@ -1259,7 +1259,7 @@ function alertCheckCQz(key, callObj)
var workedFound = (confirmedFound = 0);
for (index in callObj.cqza)
{
var hash = callObj.cqza[index] + hashMaker(callObj.band, callObj.mode);
var hash = callObj.cqza[index] + "|" + hashMaker(callObj.band, callObj.mode);
if (hash in g_tracker.worked.cqz) workedFound++;
if (hash in g_tracker.confirmed.cqz) confirmedFound++;
@ -1281,7 +1281,7 @@ function alertCheckITUz(key, callObj)
var workedFound = (confirmedFound = 0);
for (index in callObj.ituza)
{
var hash = callObj.ituza[index] + hashMaker(callObj.band, callObj.mode);
var hash = callObj.ituza[index] + "|" + hashMaker(callObj.band, callObj.mode);
if (hash in g_tracker.worked.ituz) workedFound++;
if (hash in g_tracker.confirmed.ituz) confirmedFound++;

Wyświetl plik

@ -7,19 +7,20 @@ var gtVersion = parseInt(gtVersionStr.replace(/\./g, ""));
var gtBeta = pjson.betaVersion;
var g_startVersion = 0;
var g_readInternalQso = true;
if (typeof localStorage.currentVersion != "undefined")
{
g_startVersion = localStorage.currentVersion;
}
if (
typeof localStorage.currentVersion == "undefined" ||
localStorage.currentVersion != String(gtVersion)
)
if (typeof localStorage.currentVersion == "undefined" || localStorage.currentVersion != String(gtVersion))
{
localStorage.currentVersion = String(gtVersion);
var gui = require("nw.gui");
gui.App.clearCache();
// If the version changed, the interanl qso file is possibly out of date so don't read it
g_readInternalQso = false;
}
var vers = String(gtVersion);
@ -490,7 +491,6 @@ function initQSOdata()
var g_offlineLayer = null;
var g_mapsLayer = Array();
var g_tileLayer = null;
var g_mapControl = null;
var g_mapView = null;
var g_layerSources = {};
var g_layerVectors = {};
@ -529,8 +529,6 @@ var g_stateToCounty = {};
var g_cntyToCounty = {};
var g_us48Data = {};
var g_startupFunctions = Array();
var g_pskColors = {};
g_pskColors.OOB = "888888";
g_pskColors["4000m"] = "45E0FF";
@ -863,6 +861,7 @@ function toggleOffline()
changeMapValues();
}
// from GridTracker.html
function ignoreMessagesToggle()
{
g_ignoreMessages ^= 1;
@ -882,6 +881,7 @@ function ignoreMessagesToggle()
}
}
// from GridTracker.html
function toggleTime()
{
g_appSettings.useLocalTime ^= 1;
@ -916,28 +916,6 @@ function userTimeString(Msec)
return dateToString(dateTime);
}
function dateToISO8601(dString, tZone)
{
var retDate = "";
var tZone = (typeof tZone !== "undefined") ? tZone : "Z";
var dateParts = dString.match(/(\d{4}-\d{2}-\d{2})(\s+(\d{2}:\d{2}:\d{2}))?/);
if (dateParts !== null)
{
retDate = dateParts[1]
if ((typeof dateParts[3]) !== "undefined")
{
retDate += "T" + dateParts[3] + ".000" + tZone;
}
else
{
retDate += "T00:00:00.000" + tZone;
}
}
return retDate;
}
function getWpx(callsign)
{
var prefix = null;
@ -1252,14 +1230,14 @@ function addDeDx(
}
if (details.ituz.length > 0)
{
g_tracker.worked.ituz[details.ituz + band + mode] = true;
g_tracker.worked.ituz[details.ituz] = true;
g_tracker.worked.ituz[details.ituz + mode] = true;
g_tracker.worked.ituz[details.ituz + band] = true;
g_tracker.worked.ituz[details.ituz + "|" + band + mode] = true;
g_tracker.worked.ituz[details.ituz + "|"] = true;
g_tracker.worked.ituz[details.ituz + "|" + mode] = true;
g_tracker.worked.ituz[details.ituz + "|" + band] = true;
if (isDigi == true)
{
g_tracker.worked.ituz[details.ituz + "dg"] = true;
g_tracker.worked.ituz[details.ituz + band + "dg"] = true;
g_tracker.worked.ituz[details.ituz + "|dg"] = true;
g_tracker.worked.ituz[details.ituz + "|" + band + "dg"] = true;
}
}
if (
@ -1272,14 +1250,14 @@ function addDeDx(
}
if (details.cqz.length > 0)
{
g_tracker.worked.cqz[details.cqz + band + mode] = true;
g_tracker.worked.cqz[details.cqz] = true;
g_tracker.worked.cqz[details.cqz + mode] = true;
g_tracker.worked.cqz[details.cqz + band] = true;
g_tracker.worked.cqz[details.cqz + "|" + band + mode] = true;
g_tracker.worked.cqz[details.cqz + "|"] = true;
g_tracker.worked.cqz[details.cqz + "|" + mode] = true;
g_tracker.worked.cqz[details.cqz + "|" + band] = true;
if (isDigi == true)
{
g_tracker.worked.cqz[details.cqz + "dg"] = true;
g_tracker.worked.cqz[details.cqz + band + "dg"] = true;
g_tracker.worked.cqz[details.cqz + "|dg"] = true;
g_tracker.worked.cqz[details.cqz + "|" + band + "dg"] = true;
}
if (isCurrentYear)
{
@ -1290,14 +1268,14 @@ function addDeDx(
if (details.dxcc > 0)
{
var sDXCC = String(details.dxcc);
g_tracker.worked.dxcc[sDXCC + band + mode] = true;
g_tracker.worked.dxcc[sDXCC] = true;
g_tracker.worked.dxcc[sDXCC + mode] = true;
g_tracker.worked.dxcc[sDXCC + band] = true;
g_tracker.worked.dxcc[sDXCC + "|" + band + mode] = true;
g_tracker.worked.dxcc[sDXCC + "|"] = true;
g_tracker.worked.dxcc[sDXCC + "|" + mode] = true;
g_tracker.worked.dxcc[sDXCC + "|" + band] = true;
if (isDigi == true)
{
g_tracker.worked.dxcc[sDXCC + "dg"] = true;
g_tracker.worked.dxcc[sDXCC + band + "dg"] = true;
g_tracker.worked.dxcc[sDXCC + "|dg"] = true;
g_tracker.worked.dxcc[sDXCC + "|" + band + "dg"] = true;
}
if (isCurrentYear)
{
@ -1397,40 +1375,40 @@ function addDeDx(
}
if (details.ituz.length > 0)
{
g_tracker.confirmed.ituz[details.ituz + band + mode] = true;
g_tracker.confirmed.ituz[details.ituz] = true;
g_tracker.confirmed.ituz[details.ituz + mode] = true;
g_tracker.confirmed.ituz[details.ituz + band] = true;
g_tracker.confirmed.ituz[details.ituz + "|" + band + mode] = true;
g_tracker.confirmed.ituz[details.ituz + "|"] = true;
g_tracker.confirmed.ituz[details.ituz + "|" + mode] = true;
g_tracker.confirmed.ituz[details.ituz + "|" + band] = true;
if (isDigi == true)
{
g_tracker.confirmed.ituz[details.ituz + "dg"] = true;
g_tracker.confirmed.ituz[details.ituz + band + "dg"] = true;
g_tracker.confirmed.ituz[details.ituz + "|dg"] = true;
g_tracker.confirmed.ituz[details.ituz + "|" + band + "dg"] = true;
}
}
if (details.cqz.length > 0)
{
g_tracker.confirmed.cqz[details.cqz + band + mode] = true;
g_tracker.confirmed.cqz[details.cqz] = true;
g_tracker.confirmed.cqz[details.cqz + mode] = true;
g_tracker.confirmed.cqz[details.cqz + band] = true;
g_tracker.confirmed.cqz[details.cqz + "|" + band + mode] = true;
g_tracker.confirmed.cqz[details.cqz + "|"] = true;
g_tracker.confirmed.cqz[details.cqz + "|" + mode] = true;
g_tracker.confirmed.cqz[details.cqz + "|" + band] = true;
if (isDigi == true)
{
g_tracker.confirmed.cqz[details.cqz + "dg"] = true;
g_tracker.confirmed.cqz[details.cqz + band + "dg"] = true;
g_tracker.confirmed.cqz[details.cqz + "|dg"] = true;
g_tracker.confirmed.cqz[details.cqz + "|" + band + "dg"] = true;
}
}
if (details.dxcc > 0)
{
var sDXCC = String(details.dxcc);
g_tracker.confirmed.dxcc[sDXCC + band + mode] = true;
g_tracker.confirmed.dxcc[sDXCC] = true;
g_tracker.confirmed.dxcc[sDXCC + mode] = true;
g_tracker.confirmed.dxcc[sDXCC + band] = true;
g_tracker.confirmed.dxcc[sDXCC + "|" + band + mode] = true;
g_tracker.confirmed.dxcc[sDXCC + "|"] = true;
g_tracker.confirmed.dxcc[sDXCC + "|" + mode] = true;
g_tracker.confirmed.dxcc[sDXCC + "|" + band] = true;
if (isDigi == true)
{
g_tracker.confirmed.dxcc[sDXCC + "dg"] = true;
g_tracker.confirmed.dxcc[sDXCC + band + "dg"] = true;
g_tracker.confirmed.dxcc[sDXCC + "|dg"] = true;
g_tracker.confirmed.dxcc[sDXCC + "|" + band + "dg"] = true;
}
}
@ -15602,10 +15580,10 @@ function searchLogForCallsign(call)
")</th><td>";
for (var band in g_colorBands)
{
if (String(dxcc) + g_colorBands[band] in g_tracker.worked.dxcc)
if (String(dxcc) + "|" + g_colorBands[band] in g_tracker.worked.dxcc)
{
var strike = "";
if (String(dxcc) + g_colorBands[band] in g_tracker.confirmed.dxcc) { strike = "text-decoration: underline overline;"; }
if (String(dxcc) + "|" + g_colorBands[band] in g_tracker.confirmed.dxcc) { strike = "text-decoration: underline overline;"; }
worker +=
"<div style='" +
strike +
@ -15807,7 +15785,7 @@ function mediaCheck()
try
{
if (fs.existsSync(g_NWappData + "internal_qso.json"))
if (fs.existsSync(g_NWappData + "internal_qso.json") && g_readInternalQso)
{
var data = JSON.parse(fs.readFileSync(g_NWappData + "internal_qso.json"));

Wyświetl plik

@ -645,10 +645,10 @@ function updateAwardList(target = null)
g_awards[award.sponsor].sponsor +
")\n";
tooltip += toTitleCase(award.test.qsl_req) + " QSO\n";
for (let mode in award.comp.counts)
for (const mode in award.comp.counts)
{
tooltip += mode + "\n";
for (let count in award.comp.counts[mode])
for (const count in award.comp.counts[mode])
{
endorseTotal++;
if (award.comp.counts[mode][count].per == 100)
@ -670,7 +670,7 @@ function updateAwardList(target = null)
let wrk = "";
if (Object.keys(award.comp.endorse).length > 0)
{
for (let band in award.comp.endorse[mode])
for (const band in award.comp.endorse[mode])
{
endorseTotal++;
if (award.comp.endorse[mode][band][count] == true)
@ -797,7 +797,7 @@ function createAwardSelector(cell, target, value, forObject)
selector.style.padding = "1px";
if (selector.disabled) selector.style.cursor = "auto";
selector.addEventListener("change", awardValueChanged);
for (let opt in forObject)
for (const opt in forObject)
{
let option = document.createElement("option");
option.value = forObject[opt];
@ -871,7 +871,7 @@ function setVisual()
}
else
{
for (let key in g_rosterSettings.wanted)
for (const key in g_rosterSettings.wanted)
{
if (document.getElementById(key))
{ document.getElementById(key).checked = g_rosterSettings.wanted[key]; }
@ -1091,7 +1091,7 @@ function valuesChanged()
writeRosterSettings();
g_scriptReport = Object();
for (let callHash in window.opener.g_callRoster)
for (const callHash in window.opener.g_callRoster)
{ window.opener.g_callRoster[callHash].callObj.alerted = false; }
window.opener.goProcessRoster();
}
@ -1151,7 +1151,7 @@ function callsignResult(buffer, flag)
r_currentUSState = flag;
g_currentUSCallsigns = Object();
for (let key in rawData.c) g_currentUSCallsigns[rawData.c[key]] = true;
for (const key in rawData.c) g_currentUSCallsigns[rawData.c[key]] = true;
window.opener.goProcessRoster();
}
@ -1209,7 +1209,7 @@ function initDXCCSelector()
});
let newSelect = document.getElementById("DXCCsSelect");
for (let i in items)
for (const i in items)
{
let key = items[i];
@ -1237,7 +1237,7 @@ function manifestResult(buffer, flag)
r_callsignManifest = JSON.parse(buffer);
let newSelect = document.getElementById("stateSelect");
for (let key in r_callsignManifest.cnt)
for (const key in r_callsignManifest.cnt)
{
let option = document.createElement("option");
if (window.opener.g_enums[key])
@ -1545,7 +1545,7 @@ function init()
window.opener.setRosterSpot(g_rosterSettings.columns.Spot);
for (let key in g_rosterSettings.wanted)
for (const key in g_rosterSettings.wanted)
{
if (document.getElementById(key))
{ document.getElementById(key).checked = g_rosterSettings.wanted[key]; }
@ -1724,7 +1724,7 @@ function init()
item = new nw.MenuItem({ type: "separator" });
g_menu.append(item);
for (let columnIndex in g_rosterSettings.columnOrder)
for (const columnIndex in g_rosterSettings.columnOrder)
{
let key = g_rosterSettings.columnOrder[columnIndex];
if (key != "Callsign")
@ -2359,7 +2359,7 @@ function processAward(awardName)
g_awardTracker[awardName].stat = {};
for (let i in window.opener.g_QSOhash)
for (const i in window.opener.g_QSOhash)
{
let obj = window.opener.g_QSOhash[i];
@ -2592,7 +2592,7 @@ function scoreAdxcc(award, obj)
function testAdxcc(award, obj, baseHash)
{
if (String(obj.dxcc) + baseHash in g_tracker[award.test.look].dxcc)
if (String(obj.dxcc) + "|" + baseHash in g_tracker[award.test.look].dxcc)
{
return false;
}
@ -2939,7 +2939,7 @@ function scoreApxa(award, obj)
if (obj.px)
{
let test = g_awards[award.sponsor].awards[award.name];
for (let i in test.rule.pxa)
for (const i in test.rule.pxa)
{
if (test.rule.pxa[i].indexOf(obj.px) > -1)
{
@ -2962,7 +2962,7 @@ function testApxa(award, obj, baseHash)
if (obj.px)
{
let test = g_awards[award.sponsor].awards[award.name];
for (let i in test.rule.pxa)
for (const i in test.rule.pxa)
{
if (test.rule.pxa[i].indexOf(obj.px) > -1)
{
@ -2984,9 +2984,9 @@ function scoreAsfx(award, obj)
{
let test = g_awards[award.sponsor].awards[award.name];
let suf = obj.DEcall.replace(obj.px, "");
for (let i in test.rule.sfx)
for (const i in test.rule.sfx)
{
for (let s in test.rule.sfx[i])
for (const s in test.rule.sfx[i])
{
if (suf.indexOf(test.rule.sfx[i][s]) == 0)
{
@ -3009,9 +3009,9 @@ function testAsfx(award, obj, baseHash)
{
let test = g_awards[award.sponsor].awards[award.name];
let suf = obj.DEcall.replace(obj.px, "");
for (let i in test.rule.sfx)
for (const i in test.rule.sfx)
{
for (let s in test.rule.sfx[i])
for (const s in test.rule.sfx[i])
{
if (suf.indexOf(test.rule.sfx[i][s]) == 0)
{
@ -3085,7 +3085,7 @@ function scoreAdxcc2band(award, obj)
function testAdxcc2band(award, obj, baseHash)
{
if (String(obj.dxcc) + baseHash in g_tracker[award.test.look].dxcc)
if (String(obj.dxcc) + "|" + baseHash in g_tracker[award.test.look].dxcc)
{
return false;
}
@ -3114,9 +3114,9 @@ function testAcqz(award, obj, baseHash)
if (obj.cqza)
{
let x = 0;
for (let z in obj.cqza)
for (const z in obj.cqza)
{
if (obj.cqza[z] + baseHash in g_tracker[award.test.look].cqz) x++;
if (obj.cqza[z] + "|" + baseHash in g_tracker[award.test.look].cqz) x++;
}
if (obj.cqza.length == x) return false;
}
@ -3129,9 +3129,9 @@ function scoreAnumsfx(award, obj)
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 (let i in test.rule.numsfx)
for (const i in test.rule.numsfx)
{
for (let s in test.rule.numsfx[i])
for (const s in test.rule.numsfx[i])
{
if (suf.indexOf(test.rule.numsfx[i][s]) == 0)
{
@ -3156,9 +3156,9 @@ function testAnumsfx(award, obj)
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 (let i in test.rule.numsfx)
for (const i in test.rule.numsfx)
{
for (let s in test.rule.numsfx[i])
for (const s in test.rule.numsfx[i])
{
if (suf.indexOf(test.rule.numsfx[i][s]) == 0)
{
@ -3176,7 +3176,7 @@ function scoreApxplus(award, obj)
if (test.rule.pxplus)
{
for (let i in test.rule.pxplus)
for (const i in test.rule.pxplus)
{
if (obj.DEcall.indexOf(test.rule.pxplus[i]) == 0)
{
@ -3200,7 +3200,7 @@ function testApxplus(award, obj)
if (test.rule.pxplus)
{
for (let i in test.rule.pxplus)
for (const i in test.rule.pxplus)
{
if (obj.DEcall.indexOf(test.rule.pxplus[i]) == 0)
{
@ -3223,9 +3223,9 @@ function loadAwardJson()
g_awards = JSON.parse(fileBuf);
// fs.writeFileSync("./data/awards.json", JSON.stringify(g_awards,null,2));
for (let sp in g_awards)
for (const sp in g_awards)
{
for (let aw in g_awards[sp].awards)
for (const aw in g_awards[sp].awards)
{
if (!("unique" in g_awards[sp].awards[aw].rule))
{ g_awards[sp].awards[aw].rule.unique = 1; }

Wyświetl plik

@ -227,7 +227,7 @@ function processRosterFiltering(callRoster, rosterSettings)
}
if (g_rosterSettings.hunting == "dxcc")
{
let hash = hashMaker(String(callObj.dxcc),
let hash = hashMaker(String(callObj.dxcc) + "|",
callObj, g_rosterSettings.reference);
if (rosterSettings.huntIndex && (hash in rosterSettings.huntIndex.dxcc))
@ -283,7 +283,7 @@ function processRosterFiltering(callRoster, rosterSettings)
let huntFound = 0;
for (index in callObj.cqza)
{
let hash = hashMaker(callObj.cqza[index], callObj, g_rosterSettings.reference);
let hash = hashMaker(callObj.cqza[index] + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.cqz) huntFound++;
}
@ -306,7 +306,7 @@ function processRosterFiltering(callRoster, rosterSettings)
let huntFound = 0;
for (index in callObj.ituza)
{
let hash = hashMaker(callObj.ituza[index], callObj, g_rosterSettings.reference);
let hash = hashMaker(callObj.ituza[index] + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.ituz) huntFound++;
}

Wyświetl plik

@ -296,8 +296,8 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
// Hunting for DXCC
if (huntDXCC.checked)
{
let hash = String(callObj.dxcc) + workHashSuffix;
let 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))
{
@ -508,8 +508,8 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
for (const index in callObj.cqza)
{
let hash = callObj.cqza[index] + workHashSuffix;
let layeredHash = rosterSettings.layeredMode && (callObj.cqza[index] + layeredHashSuffix);
let hash = callObj.cqza[index] + "|" + workHashSuffix;
let layeredHash = rosterSettings.layeredMode && (callObj.cqza[index] + "|" + layeredHashSuffix);
let marathonHash = huntMarathon.checked && `${callObj.cqza[index]}-${currentYear}`;
if (rosterSettings.huntIndex && hash in rosterSettings.huntIndex.cqz) huntFound++;
@ -590,8 +590,8 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
for (const index in callObj.ituza)
{
let hash = callObj.ituza[index] + workHashSuffix;
let 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++;

Wyświetl plik

@ -1,7 +1,7 @@
{
"name": "GridTracker",
"product_string_do_not_use": "gridtracker",
"version": "1.22.1002",
"version": "1.22.1004",
"betaVersion": "",
"description": "GridTracker, an amateur radio companion",
"author": "GridTracker.org",