Merge branch 'mh-root-extended' into 'master'

Mh root extended

See merge request gridtracker.org/gridtracker!226

If this is changing anything in the UI or operational behavior, please prepare to update the wiki!
merge-requests/227/merge v1.22.1008
Matthew Chambers 2022-10-08 04:19:20 +00:00
commit b82c1a432d
13 zmienionych plików z 40463 dodań i 18883 usunięć

2
debian/changelog vendored
Wyświetl plik

@ -1,4 +1,4 @@
gridtracker (1.22.1007) unstable; urgency=low
gridtracker (1.22.1008) unstable; urgency=low
- Fix missing callsigns in mh-root when importing BIGCTY
-- Matthew Chambers <nr0q@gridtracker.org> Fri, 07 Oct 2022 17:19:00 -0000

Wyświetl plik

@ -1,6 +1,6 @@
Name: {{{ git_name name=gridtracker }}}
Summary: GridTracker: An amateur radio companion to WSJT-X or JTDX
Version: {{{ git_version lead=1.22.1007 }}}
Version: {{{ git_version lead=1.22.1008 }}}
Release: 1%{?dist}
BuildArch: noarch
Source0: {{{ git_dir_pack }}}
@ -40,7 +40,7 @@ DESTDIR=${RPM_BUILD_ROOT} make clean
%license %{_docdir}/%{name}/
%changelog
* Fri Oct 07 2022 Matthew Chambers <nr0q@gridtracker.org> - 1.22.1007-1
* Sat Oct 08 2022 Matthew Chambers <nr0q@gridtracker.org> - 1.22.1008-1
- Fix missing callsigns in mh-root when importing BIGCTY
* Fri Oct 07 2022 Matthew Chambers <nr0q@gridtracker.org> - 1.22.1006-1
- Main App:

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -1253,44 +1253,22 @@ function alertCheckDXCC(key, callObj)
function alertCheckCQz(key, callObj)
{
var workedTotal = (confirmedTotal = callObj.cqza.length);
if (workedTotal == 0) return 0;
var workedFound = (confirmedFound = 0);
for (index in callObj.cqza)
{
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++;
}
var status = document.getElementById(key + "Need").value;
if (status == "worked" && workedFound == workedTotal) return 0;
if (status == "worked" && callObj.cqz + "|" + hashMaker(callObj.band, callObj.mode) in g_tracker.worked.cqz) return 0;
if (status == "confirmed" && confirmedFound == confirmedTotal) return 0;
if (status == "confirmed" && callObj.cqz + "|" + hashMaker(callObj.band, callObj.mode) in g_tracker.confirmed.cqz) return 0;
return 1;
}
function alertCheckITUz(key, callObj)
{
var workedTotal = (confirmedTotal = callObj.ituza.length);
if (workedTotal == 0) return 0;
var workedFound = (confirmedFound = 0);
for (index in callObj.ituza)
{
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++;
}
var status = document.getElementById(key + "Need").value;
if (status == "worked" && workedFound == workedTotal) return 0;
if (status == "confirmed" && confirmedFound == confirmedTotal) return 0;
if (status == "worked" && callObj.ituz + "|" + hashMaker(callObj.band, callObj.mode) in g_tracker.worked.ituz) return 0;
if (status == "confirmed" && callObj.ituz + "|" + hashMaker(callObj.band, callObj.mode) in g_tracker.confirmed.ituz) return 0;
return 1;
}

Wyświetl plik

@ -829,7 +829,7 @@ function downloadCtyDat()
{
ctyDatStatus.innerHTML = "<b><i>Downloading...</i></b>";
getBuffer(
"https://storage.googleapis.com/gt_app/ctydat.json",
"https://storage.googleapis.com/gt_app/ctydat.json?cb=" + Date.now(),
processCtyDat,
null,
"https",
@ -851,42 +851,103 @@ function processCtyDat(buffer)
var worldGeoData = JSON.parse(fileBuf);
for (const key in worldGeoData)
{
worldGeoData[key].ituzone = null;
worldGeoData[key].cqzone = null;
worldGeoData[key].prefixITU = {};
worldGeoData[key].prefixCQ = {};
worldGeoData[key].directITU = {};
worldGeoData[key].directCQ = {};
if (worldGeoData[key].dxcc in ctydata)
{
worldGeoData[key].cqzone = Number(ctydata[worldGeoData[key].dxcc].cqzone).pad(2);
worldGeoData[key].ituzone = Number(ctydata[worldGeoData[key].dxcc].ituzone).pad(2);
// Skip Guantanamo Bay, hand crafted with love
if (worldGeoData[key].dxcc != "105")
{
worldGeoData[key].prefix = [];
worldGeoData[key].direct = [];
var arr = ctydata[worldGeoData[key].dxcc].prefix.substr(0, ctydata[worldGeoData[key].dxcc].prefix.length - 1).split(" ");
for (const x in arr)
{
var test = arr[x];
var i = arr[x].indexOf("(");
var direct = false;
var cq = null;
var itu = null;
if (test.charAt(0) == "=")
{
direct = true;
test = test.substr(1);
}
var cqTest = test.match(/\((.*)\)/);
if (cqTest)
{
cq = Number(cqTest[1]).pad(2);
}
var ituTest = test.match(/\[(.*)\]/);
if (ituTest)
{
itu = Number(ituTest[1]).pad(2);
}
var i = test.indexOf("(");
if (i > -1)
{
test = test.substr(0, i);
}
i = arr[x].indexOf("[");
i = test.indexOf("[");
if (i > -1)
{
test = test.substr(0, i);
}
i = arr[x].indexOf("<");
i = test.indexOf("<");
if (i > -1)
{
test = test.substr(0, i);
}
i = arr[x].indexOf("{");
i = test.indexOf("{");
if (i > -1)
{
test = test.substr(0, i);
}
worldGeoData[key].prefix.push(test);
i = test.indexOf("~");
if (i > -1)
{
test = test.substr(0, i);
}
if (direct)
{
worldGeoData[key].direct.push(test);
if (cq)
{
worldGeoData[key].directCQ[test] = cq;
}
if (itu)
{
worldGeoData[key].directITU[test] = itu;
}
}
else
{
worldGeoData[key].prefix.push(test);
if (cq)
{
worldGeoData[key].prefixCQ[test] = cq;
}
if (itu)
{
worldGeoData[key].prefixITU[test] = itu;
}
}
}
worldGeoData[key].prefix = uniqueArrayFromArray(worldGeoData[key].prefix);
worldGeoData[key].prefix.sort();
worldGeoData[key].direct = uniqueArrayFromArray(worldGeoData[key].direct);
worldGeoData[key].direct.sort();
}
}
}

Wyświetl plik

@ -438,12 +438,15 @@ var g_workingIniPath = "";
var g_worldGeoData = {};
var g_prefixToMap = {};
var g_directCallToDXCC = {};
var g_directCallToCQzone = {};
var g_directCallToITUzone = {};
var g_prefixToCQzone = {};
var g_prefixToITUzone = {};
var g_dxccToAltName = {};
var g_dxccToADIFName = {};
var g_dxccToGeoData = {};
var g_gridToDXCC = {};
var g_gridToCQZone = {};
var g_gridToITUZone = {};
var g_gridToState = {};
var g_StateData = {};
var g_cqZones = {};
@ -1221,15 +1224,11 @@ function addDeDx(
g_tracker.worked.grid[fourGrid + band + "dg"] = true;
}
}
if (
details.ituz.length == 0 &&
fourGrid in g_gridToITUZone &&
g_gridToITUZone[fourGrid].length == 1
)
if (!details.ituz || details.ituz.length == 0)
{
details.ituz = g_gridToITUZone[fourGrid][0];
details.ituz = ituZoneFromCallsign(finalDXcall, details.dxcc);
}
if (details.ituz.length > 0)
if (details.ituz)
{
g_tracker.worked.ituz[details.ituz + "|" + band + mode] = true;
g_tracker.worked.ituz[details.ituz + "|"] = true;
@ -1241,15 +1240,13 @@ function addDeDx(
g_tracker.worked.ituz[details.ituz + "|" + band + "dg"] = true;
}
}
if (
details.cqz.length == 0 &&
fourGrid in g_gridToCQZone &&
g_gridToCQZone[fourGrid].length == 1
)
if (!details.cqz || details.cqz.length == 0)
{
details.cqz = g_gridToCQZone[fourGrid][0];
details.cqz = cqZoneFromCallsign(finalDXcall, details.dxcc);
}
if (details.cqz.length > 0)
if (details.cqz)
{
g_tracker.worked.cqz[details.cqz + "|" + band + mode] = true;
g_tracker.worked.cqz[details.cqz + "|"] = true;
@ -7096,13 +7093,12 @@ function handleWsjtxDecode(newMessage)
);
}
newCallsign.cont =
g_worldGeoData[g_dxccToGeoData[newCallsign.dxcc]].continent;
newCallsign.cont = g_worldGeoData[g_dxccToGeoData[newCallsign.dxcc]].continent;
if (newCallsign.dxcc == 390 && newCallsign.zone == 1) { details.cont = "EU"; }
}
newCallsign.ituza = Array();
newCallsign.cqza = Array();
newCallsign.ituz = ituZoneFromCallsign(newCallsign.DEcall, newCallsign.dxcc);
newCallsign.cqz = cqZoneFromCallsign(newCallsign.DEcall, newCallsign.dxcc);
newCallsign.distance = 0;
newCallsign.heading = 0;
@ -7198,15 +7194,6 @@ function handleWsjtxDecode(newMessage)
LL.la2 - (LL.la2 - LL.la1) / 2,
LL.lo2 - (LL.lo2 - LL.lo1) / 2
);
if (callsign.grid in g_gridToITUZone)
{
callsign.ituza = g_gridToITUZone[callsign.grid];
}
if (callsign.grid in g_gridToCQZone)
{
callsign.cqza = g_gridToCQZone[callsign.grid];
}
}
if (g_appSettings.potaEnabled == 1)
@ -7847,10 +7834,8 @@ function showCallsignBox(redraw)
{
if (newCallList[x].DEcall == myRawCall) continue;
var grid = newCallList[x].rect ? newCallList[x].rect.qth : "-";
var cqzone =
grid in g_gridToCQZone ? g_gridToCQZone[grid].join(", ") : "-";
var ituzone =
grid in g_gridToITUZone ? g_gridToITUZone[grid].join(", ") : "-";
var cqzone = newCallList[x].cqz ? newCallList[x].cqz : "-";
var ituzone = newCallList[x].ituz ? newCallList[x].ituz : "-";
var geo = g_worldGeoData[g_dxccToGeoData[newCallList[x].dxcc]];
var thisCall = newCallList[x].DEcall.formatCallsign();
worker +=
@ -9696,51 +9681,25 @@ function renderStatsBox()
);
}
if (cqz.length > 0)
{
var name = g_cqZones[cqz].name;
if (!(name in cqZones)) cqZones[name] = newStatObject();
workObject(cqZones[name], false, band, mode, type, didConfirm);
}
if (ituz.length > 0)
{
if (!(ituz in ituZones)) ituZones[ituz] = newStatObject();
workObject(ituZones[ituz], false, band, mode, type, didConfirm);
}
if (finalGrid.length > 0)
{
var gridCheck = finalGrid.substr(0, 4);
if (cqz.length > 0)
{
var name = g_cqZones[cqz].name;
if (!(name in cqZones)) cqZones[name] = newStatObject();
workObject(cqZones[name], false, band, mode, type, didConfirm);
}
else if (gridCheck in g_gridToCQZone)
{
if (g_gridToCQZone[gridCheck].length == 1)
{
var name = g_cqZones[g_gridToCQZone[gridCheck][0]].name;
if (!(name in cqZones)) cqZones[name] = newStatObject();
workObject(cqZones[name], false, band, mode, type, didConfirm);
}
}
if (ituz.length > 0)
{
if (!(ituz in ituZones)) ituZones[ituz] = newStatObject();
workObject(ituZones[ituz], false, band, mode, type, didConfirm);
}
else if (gridCheck in g_gridToITUZone)
{
if (g_gridToITUZone[gridCheck].length == 1)
{
if (!(g_gridToITUZone[gridCheck][0] in ituZones)) { ituZones[g_gridToITUZone[gridCheck][0]] = newStatObject(); }
workObject(
ituZones[g_gridToITUZone[gridCheck][0]],
false,
band,
mode,
type,
didConfirm
);
}
}
if (!(gridCheck in gridData)) gridData[gridCheck] = newStatObject();
workObject(gridData[gridCheck], false, band, mode, type, didConfirm);
@ -10676,41 +10635,7 @@ function redrawGrids()
~~g_cqZones[cqz].confirmed_modes[mode] + 1;
}
}
else if (gridCheck in g_gridToCQZone)
{
if (g_gridToCQZone[gridCheck].length == 1)
{
if (g_cqZones[g_gridToCQZone[gridCheck][0]].worked == false)
{
g_cqZones[g_gridToCQZone[gridCheck][0]].worked = worked;
}
if (worked)
{
g_cqZones[g_gridToCQZone[gridCheck][0]].worked_bands[band] =
~~g_cqZones[g_gridToCQZone[gridCheck][0]].worked_bands[band] +
1;
g_cqZones[g_gridToCQZone[gridCheck][0]].worked_modes[mode] =
~~g_cqZones[g_gridToCQZone[gridCheck][0]].worked_modes[mode] +
1;
}
if (g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed == false)
{
g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed = didConfirm;
}
if (didConfirm)
{
g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed_bands[band] =
~~g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed_bands[
band
] + 1;
g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed_modes[mode] =
~~g_cqZones[g_gridToCQZone[gridCheck][0]].confirmed_modes[
mode
] + 1;
}
}
}
if (ituz.length > 0)
{
if (g_ituZones[ituz].worked == false)
@ -10736,40 +10661,6 @@ function redrawGrids()
~~g_ituZones[ituz].confirmed_modes[mode] + 1;
}
}
else if (gridCheck in g_gridToITUZone)
{
if (g_gridToITUZone[gridCheck].length == 1)
{
if (g_ituZones[g_gridToITUZone[gridCheck][0]].worked == false)
{
g_ituZones[g_gridToITUZone[gridCheck][0]].worked = worked;
}
if (worked)
{
g_ituZones[g_gridToITUZone[gridCheck][0]].worked_bands[band] =
~~g_ituZones[g_gridToITUZone[gridCheck][0]].worked_bands[band] +
1;
g_ituZones[g_gridToITUZone[gridCheck][0]].worked_modes[mode] =
~~g_ituZones[g_gridToITUZone[gridCheck][0]].worked_modes[mode] +
1;
}
if (g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed == false)
{
g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed = didConfirm;
}
if (didConfirm)
{
g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed_bands[band] =
~~g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed_bands[
band
] + 1;
g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed_modes[mode] =
~~g_ituZones[g_gridToITUZone[gridCheck][0]].confirmed_modes[
mode
] + 1;
}
}
}
}
for (var key in g_QSOhash[i].vucc_grids)
@ -12047,6 +11938,60 @@ function callsignToDxcc(insign)
return -1;
}
function cqZoneFromCallsign(insign, dxcc)
{
var callsign = insign;
if (!/\d/.test(callsign) || !/[a-zA-Z]/.test(callsign))
{
return null;
}
if (callsign in g_directCallToCQzone) { return g_directCallToCQzone[callsign]; }
for (var x = callsign.length; x > 0; x--)
{
if (callsign.substr(0, x) in g_prefixToCQzone)
{
return g_prefixToCQzone[callsign.substr(0, x)];
}
}
if (dxcc > 0)
{
return g_worldGeoData[g_dxccToGeoData[dxcc]].cqzone;
}
return null;
}
function ituZoneFromCallsign(insign, dxcc)
{
var callsign = insign;
if (!/\d/.test(callsign) || !/[a-zA-Z]/.test(callsign))
{
return null;
}
if (callsign in g_directCallToITUzone) { return g_directCallToITUzone[callsign]; }
for (var x = callsign.length; x > 0; x--)
{
if (callsign.substr(0, x) in g_prefixToITUzone)
{
return g_prefixToITUzone[callsign.substr(0, x)];
}
}
if (dxcc > 0)
{
return g_worldGeoData[g_dxccToGeoData[dxcc]].ituzone;
}
return null;
}
function loadMaidenHeadData()
{
var file = "./data/mh-root-prefixed.json";
@ -12068,14 +12013,40 @@ function loadMaidenHeadData()
for (var x = 0; x < g_worldGeoData[key].prefix.length; x++)
{
if (g_worldGeoData[key].prefix[x].charAt(0) == "=")
{
g_directCallToDXCC[g_worldGeoData[key].prefix[x].substr(1)] =
g_worldGeoData[key].dxcc;
}
else g_prefixToMap[g_worldGeoData[key].prefix[x]] = key;
g_prefixToMap[g_worldGeoData[key].prefix[x]] = key;
}
delete g_worldGeoData[key].prefix;
for (var x = 0; x < g_worldGeoData[key].direct.length; x++)
{
g_directCallToDXCC[g_worldGeoData[key].direct[x]] = g_worldGeoData[key].dxcc;
}
delete g_worldGeoData[key].direct;
for (var val in g_worldGeoData[key].prefixCQ)
{
g_prefixToCQzone[val] = g_worldGeoData[key].prefixCQ[val];
}
delete g_worldGeoData[key].prefixCQ;
for (var val in g_worldGeoData[key].prefixITU)
{
g_prefixToITUzone[val] = g_worldGeoData[key].prefixITU[val];
}
delete g_worldGeoData[key].prefixITU;
for (var val in g_worldGeoData[key].directCQ)
{
g_directCallToCQzone[val] = g_worldGeoData[key].directCQ[val];
}
delete g_worldGeoData[key].directCQ;
for (var val in g_worldGeoData[key].directITU)
{
g_directCallToITUzone[val] = g_worldGeoData[key].directITU[val];
}
delete g_worldGeoData[key].directITU;
for (var x = 0; x < g_worldGeoData[key].mh.length; x++)
{
if (!(g_worldGeoData[key].mh[x] in g_gridToDXCC)) { g_gridToDXCC[g_worldGeoData[key].mh[x]] = Array(); }
@ -12270,11 +12241,6 @@ function loadMaidenHeadData()
for (var key in g_cqZones)
{
for (var x = 0; x < g_cqZones[key].mh.length; x++)
{
if (!(g_cqZones[key].mh[x] in g_gridToCQZone)) { g_gridToCQZone[g_cqZones[key].mh[x]] = Array(); }
g_gridToCQZone[g_cqZones[key].mh[x]].push(String(key));
}
delete g_cqZones[key].mh;
}
@ -12283,11 +12249,6 @@ function loadMaidenHeadData()
for (var key in g_ituZones)
{
for (var x = 0; x < g_ituZones[key].mh.length; x++)
{
if (!(g_ituZones[key].mh[x] in g_gridToITUZone)) { g_gridToITUZone[g_ituZones[key].mh[x]] = Array(); }
g_gridToITUZone[g_ituZones[key].mh[x]].push(String(key));
}
delete g_ituZones[key].mh;
}

Wyświetl plik

@ -1891,7 +1891,7 @@ function init()
label: "Ignore CQ Zone",
click: function ()
{
g_blockedCQz[callRoster[g_targetCQz].callObj.cqza] = true;
g_blockedCQz[callRoster[g_targetCQz].callObj.cqz] = true;
storeBlocks();
window.opener.goProcessRoster();
}
@ -1945,7 +1945,7 @@ function init()
label: "Ignore ITU Zone",
click: function ()
{
g_blockedITUz[callRoster[g_targetITUz].callObj.ituza] = true;
g_blockedITUz[callRoster[g_targetITUz].callObj.ituz] = true;
storeBlocks();
window.opener.goProcessRoster();
}
@ -2259,7 +2259,7 @@ function handleContextMenu(ev)
g_targetITUz = ev.target.parentNode.id;
g_ITUzMenu.popup(mouseX, mouseY);
}
else if (name.startsWith("DXCC"))
else if (name && name.startsWith("DXCC"))
{
let dxcca = name.split("(");
let dxcc = parseInt(dxcca[1]);
@ -3151,14 +3151,9 @@ function scoreAcqz(award, obj)
function testAcqz(award, obj, baseHash)
{
if (obj.cqza)
if (obj.cqz)
{
let x = 0;
for (const z in obj.cqza)
{
if (obj.cqza[z] + "|" + baseHash in g_tracker[award.test.look].cqz) x++;
}
if (obj.cqza.length == x) return false;
if (obj.cqz + "|" + baseHash in g_tracker[award.test.look].cqz) return false;
}
return true;
}

Wyświetl plik

@ -45,12 +45,12 @@ function processRosterFiltering(callRoster, rosterSettings)
entry.tx = false;
continue;
}
if (callObj.ituza in g_blockedITUz)
if (callObj.ituz in g_blockedITUz)
{
entry.tx = false;
continue;
}
if (callObj.cqza in g_blockedCQz)
if (callObj.cqz in g_blockedCQz)
{
entry.tx = false;
continue;
@ -274,53 +274,39 @@ function processRosterFiltering(callRoster, rosterSettings)
if (g_rosterSettings.hunting == "cq")
{
let huntTotal = callObj.cqza.length;
if (huntTotal == 0 || !rosterSettings.huntIndex)
if (callObj.cqz == null || !rosterSettings.huntIndex)
{
entry.tx = false;
continue;
}
let huntFound = 0;
for (index in callObj.cqza)
{
let hash = hashMaker(callObj.cqza[index] + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.cqz) huntFound++;
}
if (huntFound == huntTotal)
let hash = hashMaker(callObj.cqz + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.cqz)
{
entry.tx = false;
continue;
}
continue;
}
if (g_rosterSettings.hunting == "itu")
{
let huntTotal = callObj.ituza.length;
if (huntTotal == 0 || !rosterSettings.huntIndex)
{
entry.tx = false;
continue;
}
let huntFound = 0;
for (index in callObj.ituza)
{
let hash = hashMaker(callObj.ituza[index] + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.ituz) huntFound++;
}
if (huntFound == huntTotal)
if (callObj.ituz == null || !rosterSettings.huntIndex)
{
entry.tx = false;
continue;
}
if (callObj.grid.length == 0)
let hash = hashMaker(callObj.ituz + "|", callObj, g_rosterSettings.reference);
if (hash in rosterSettings.huntIndex.ituz)
{
entry.tx = false;
continue;
}
continue;
}

Wyświetl plik

@ -501,27 +501,24 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
}
// Hunting for CQ Zones
if (huntCQz.checked)
if (huntCQz.checked && callObj.cqz)
{
let huntTotal = callObj.cqza.length;
let huntTotal = 1;
let huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0, marathonFound = 0;
let hash = callObj.cqz + "|" + workHashSuffix;
let layeredHash = rosterSettings.layeredMode && (callObj.cqz + "|" + layeredHashSuffix);
let marathonHash = huntMarathon.checked && `${callObj.cqz}-${currentYear}`;
for (const index in callObj.cqza)
if (rosterSettings.huntIndex && hash in rosterSettings.huntIndex.cqz) huntFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.cqz) layeredFound++;
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.cqz) workedFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.cqz) layeredWorkedFound++;
if (marathonHash)
{
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++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.cqz) layeredFound++;
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.cqz) workedFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.cqz) layeredWorkedFound++;
if (marathonHash)
{
if (rosterSettings.huntIndex && marathonHash in rosterSettings.huntIndex.cqz) marathonFound++;
else if (rosterSettings.workedIndex && marathonHash in rosterSettings.workedIndex.cqz) marathonFound++;
}
if (rosterSettings.huntIndex && marathonHash in rosterSettings.huntIndex.cqz) marathonFound++;
else if (rosterSettings.workedIndex && marathonHash in rosterSettings.workedIndex.cqz) marathonFound++;
}
if (huntFound != huntTotal)
{
shouldAlert = true;
@ -583,21 +580,18 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
}
// Hunting for ITU Zones
if (huntITUz.checked == true)
if (huntITUz.checked == true && callObj.ituz)
{
let huntTotal = callObj.ituza.length;
let huntTotal = 1;
let huntFound = 0, layeredFound = 0, workedFound = 0, layeredWorkedFound = 0;
let hash = callObj.ituz + "|" + workHashSuffix;
let layeredHash = rosterSettings.layeredMode && (callObj.ituz + "|" + layeredHashSuffix)
for (const index in callObj.ituza)
{
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++;
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.ituz) workedFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.ituz) layeredWorkedFound++;
}
if (rosterSettings.huntIndex && hash in rosterSettings.huntIndex.ituz) huntFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.ituz) layeredFound++;
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.ituz) workedFound++;
if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.ituz) layeredWorkedFound++;
if (huntFound != huntTotal)
{
shouldAlert = true;

Wyświetl plik

@ -218,7 +218,7 @@ const ROSTER_COLUMNS = {
tableData: (callObj) => ({
name: "CQz",
rawAttrs: callObj.style.cqz,
html: [callObj.cqza.join(","), callObj.cqzSuffix].join("&nbsp;")
html: [callObj.cqz, callObj.cqzSuffix].join("&nbsp;")
})
},
@ -227,7 +227,7 @@ const ROSTER_COLUMNS = {
tableData: (callObj) => ({
name: "ITUz",
rawAttrs: callObj.style.ituz,
html: callObj.ituza.join(",")
html: callObj.ituz
})
},

Wyświetl plik

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