kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
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
commit
468d0ea955
|
@ -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 = "";
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -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"));
|
||||
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -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",
|
||||
|
|
Ładowanie…
Reference in New Issue