|
|
|
@ -1658,14 +1658,14 @@ function addDeDx(
|
|
|
|
|
function timeoutSetUdpPort()
|
|
|
|
|
{
|
|
|
|
|
GT.appSettings.wsjtUdpPort = udpPortInput.value;
|
|
|
|
|
lastMsgTimeDiv.innerHTML = "Waiting for msg...";
|
|
|
|
|
lastMsgTimeDiv.innerHTML = $.i18n("gt.timeoutSetUdpPort");
|
|
|
|
|
GT.setNewUdpPortTimeoutHandle = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setUdpPort()
|
|
|
|
|
{
|
|
|
|
|
if (GT.setNewUdpPortTimeoutHandle != null) { nodeTimers.clearTimeout(GT.setNewUdpPortTimeoutHandle); }
|
|
|
|
|
lastMsgTimeDiv.innerHTML = "..setting..";
|
|
|
|
|
lastMsgTimeDiv.innerHTML = $.i18n("gt.setUdpPort");
|
|
|
|
|
GT.setNewUdpPortTimeoutHandle = nodeTimers.setTimeout(timeoutSetUdpPort, 1000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2067,11 +2067,22 @@ function createTooltTipTable(toolElement)
|
|
|
|
|
if (Object.keys(toolElement.hashes).length > 0)
|
|
|
|
|
{
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr align='center'><td>Call</td><td>Freq</td><td>Sent</td><td>Rcvd</td><td>Station</td><td>Mode</td><td>Band</td><td>QSL</td><td>Last Msg</td><td>DXCC</td><td>Time</td>";
|
|
|
|
|
"<tr align='center'>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Call") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Freq") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Sent") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Rcvd") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Station") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Mode") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Band") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.QSL") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.LastMsg") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.DXCC") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Time") + "</td>";
|
|
|
|
|
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>LoTW</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>eQSL</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>OQRS</td>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>" + $.i18n("gt.qsoPage.LoTW") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>" + $.i18n("gt.qsoPage.eQSL") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>" + $.i18n("gt.qsoPage.OQRS") + "</td>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
}
|
|
|
|
|
for (var KeyIsHash in toolElement.hashes)
|
|
|
|
@ -2098,11 +2109,21 @@ function createTooltTipTable(toolElement)
|
|
|
|
|
if (toolElement.liveHash != null && Object.keys(toolElement.liveHash).length > 0)
|
|
|
|
|
{
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr align='center'><td>Call</td><td>Freq</td><td>Sent</td><td>Rcvd</td><td>Station</td><td>Mode</td><td>Band</td><td>Last Msg</td><td>DXCC</td><td>Time</td>";
|
|
|
|
|
"<tr align='center'>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Call") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Freq") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Sent") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Rcvd") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Station") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Mode") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Band") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.LastMsg") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.DXCC") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Time") + "</td>";
|
|
|
|
|
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>LoTW</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>eQSL</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>OQRS</td>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.LoTW") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.eQSL") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.OQRS") + "</td>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
}
|
|
|
|
|
for (var KeyIsCall in toolElement.liveHash)
|
|
|
|
@ -2203,7 +2224,7 @@ function createTooltTipTable(toolElement)
|
|
|
|
|
return newCallList.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// creates table for filling the pop-up winodw with log entries of unconfirmed qsos.
|
|
|
|
|
// creates table for filling the pop-up window with log entries of unconfirmed qsos.
|
|
|
|
|
function createTooltTipTableLogbook(toolElement)
|
|
|
|
|
{
|
|
|
|
|
var myTooltip = document.getElementById("myTooltip");
|
|
|
|
@ -2221,11 +2242,20 @@ function createTooltTipTableLogbook(toolElement)
|
|
|
|
|
"</th></tr>";
|
|
|
|
|
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr align='center'><td>Call</td><td>Freq</td><td>Sent</td><td>Rcvd</td><td>Station</td><td>Mode</td><td>Band</td><td>DXCC</td><td>Time</td>";
|
|
|
|
|
"<tr align='center'>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Call") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Freq") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Sent") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Rcvd") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Station") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Mode") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Band") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.DXCC") + "</td>" +
|
|
|
|
|
"<td>" + $.i18n("gt.newCallList.Time") + "</td>";
|
|
|
|
|
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>LoTW</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>eQSL</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>OQRS</td>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.LoTW") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.eQSL") + "</td>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<td>" + $.i18n("gt.newCallList.OQRS") + "</td>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
|
|
|
|
|
var newCallList = Array();
|
|
|
|
@ -3584,7 +3614,7 @@ function trophyOver(feature)
|
|
|
|
|
{
|
|
|
|
|
wc1Table = "<td align=center><table class='darkTable'>";
|
|
|
|
|
wc1Table +=
|
|
|
|
|
"<tr><td colspan=2 ><font color='yellow'>Worked</font></td></tr>";
|
|
|
|
|
"<tr><td colspan=2 ><font color='yellow'>" + $.i18n("gt.wcTable.Worked") + "</font></td></tr>";
|
|
|
|
|
wc1Table += "<tr><td align=right><font color='green'>Band</font></td>";
|
|
|
|
|
wc1Table += "<td align=left><table class='subtable'>";
|
|
|
|
|
var keys = Object.keys(infoObject.worked_bands).sort();
|
|
|
|
@ -3601,7 +3631,7 @@ function trophyOver(feature)
|
|
|
|
|
wc1Table += "</table></td>";
|
|
|
|
|
wc1Table += "</tr>";
|
|
|
|
|
wc1Table += "<tr>";
|
|
|
|
|
wc1Table += "<td align=right><font color='orange'>Mode</font></td>";
|
|
|
|
|
wc1Table += "<td align=right><font color='orange'>" + $.i18n("gt.wcTable.Mode") + "</font></td>";
|
|
|
|
|
wc1Table += "<td align=left><table class='subtable'>";
|
|
|
|
|
keys = Object.keys(infoObject.worked_modes).sort();
|
|
|
|
|
for (key in keys)
|
|
|
|
@ -3624,8 +3654,8 @@ function trophyOver(feature)
|
|
|
|
|
{
|
|
|
|
|
wcTable = "<td align=center><table class='darkTable'>";
|
|
|
|
|
wcTable +=
|
|
|
|
|
"<tr><td colspan=2 ><font color='lightgreen'>Confirmed</font></td></tr>";
|
|
|
|
|
wcTable += "<tr><td align=right><font color='green'>Band</font></td>";
|
|
|
|
|
"<tr><td colspan=2 ><font color='lightgreen'>" + $.i18n("gt.wcTable.Confirmed") + "</font></td></tr>";
|
|
|
|
|
wcTable += "<tr><td align=right><font color='green'>" + $.i18n("gt.wcTable.Band") + "</font></td>";
|
|
|
|
|
wcTable += "<td align=left><table class='subtable'>";
|
|
|
|
|
var keys = Object.keys(infoObject.confirmed_bands).sort();
|
|
|
|
|
for (key in keys)
|
|
|
|
@ -3641,7 +3671,7 @@ function trophyOver(feature)
|
|
|
|
|
wcTable += "</table></td>";
|
|
|
|
|
wcTable += "</tr>";
|
|
|
|
|
wcTable += "<tr>";
|
|
|
|
|
wcTable += "<td align=right><font color='orange'>Mode</font></td>";
|
|
|
|
|
wcTable += "<td align=right><font color='orange'>" + $.i18n("gt.wcTable.Mode") + "</font></td>";
|
|
|
|
|
wcTable += "<td align=left><table class='subtable'>";
|
|
|
|
|
keys = Object.keys(infoObject.confirmed_modes).sort();
|
|
|
|
|
for (key in keys)
|
|
|
|
@ -3661,7 +3691,7 @@ function trophyOver(feature)
|
|
|
|
|
if (!infoObject.worked && !infoObject.confirmed)
|
|
|
|
|
{
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr><td colspan=2 ><font color='orange'>Needed</font></td></tr>";
|
|
|
|
|
"<tr><td colspan=2 ><font color='orange'>" + $.i18n("gt.wcTable.Needed") + "</font></td></tr>";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@ -7455,7 +7485,8 @@ function importSettings()
|
|
|
|
|
function showCallsignBox(redraw)
|
|
|
|
|
{
|
|
|
|
|
var worker =
|
|
|
|
|
"<div style='vertical-align:top;display:inline-block;margin:2px;color:cyan;font-weight:bold'>Callsigns and DXCC Heard</div><br/>";
|
|
|
|
|
"<div style='vertical-align:top;display:inline-block;margin:2px;color:cyan;font-weight:bold'>" +
|
|
|
|
|
$.i18n("gt.callsignBox.title") + "</div><br/>";
|
|
|
|
|
|
|
|
|
|
GT.newCallsignCount = Object.keys(GT.liveCallsigns).length;
|
|
|
|
|
if (GT.newCallsignCount > 0)
|
|
|
|
@ -7464,11 +7495,20 @@ function showCallsignBox(redraw)
|
|
|
|
|
|
|
|
|
|
worker +=
|
|
|
|
|
"<div style='display:inline-block;padding-right:8px;overflow:auto;overflow-x:hidden;height:" +
|
|
|
|
|
Math.min(GT.newCallsignCount * 24 + 26, getStatsWindowHeight()) +
|
|
|
|
|
"px;'><table class='darkTable' align=center><th align=left>Callsign</th><th align=left>Grid</th><th>DXCC</th><th>CQ</th><th>ITU</th><th>Flag</th><th align=left>QSO</th><th>QSL</th><th>When</th>"; // <th>ITUz</th><th>CQz</th><th>ISO</th>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<th>LoTW</th>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<th>eQSL</th>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<th>OQRS</th>";
|
|
|
|
|
Math.min(GT.newCallsignCount * 24 + 26, getStatsWindowHeight()) + "px;'>" +
|
|
|
|
|
"<table class='darkTable' align=center>" +
|
|
|
|
|
"<th align=left>" + $.i18n("gt.callsignBox.callsign") + "</th>" +
|
|
|
|
|
"<th align=left>" + $.i18n("gt.callsignBox.Grid") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.DXCC") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.CQ") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.ITU") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.Flag") + "</th>" +
|
|
|
|
|
"<th align=left>" + $.i18n("gt.callsignBox.QSO") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.Grid") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.When") + "</th>"; // <th>ITUz</th><th>CQz</th><th>ISO</th>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<th>" + $.i18n("gt.callsignBox.LoTW") + "</th>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<th>" + $.i18n("gt.callsignBox.eQSL") + "</th>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<th>" + $.i18n("gt.callsignBox.OQRS") + "</th>";
|
|
|
|
|
for (var x in GT.liveCallsigns)
|
|
|
|
|
{
|
|
|
|
|
if (GT.liveCallsigns[x].dxcc != -1)
|
|
|
|
@ -7567,9 +7607,14 @@ function showCallsignBox(redraw)
|
|
|
|
|
Object.keys(GT.dxccCount).length * 23 + 45,
|
|
|
|
|
getStatsWindowHeight()
|
|
|
|
|
) +
|
|
|
|
|
"px;'><table class='darkTable' align=center><tr><th colspan=4 style='font-weight:bold'>DXCC (" +
|
|
|
|
|
heard +
|
|
|
|
|
")</th><tr><th align=left>Name</th><th>Flag</th><th align=left>Calls</th></tr>";
|
|
|
|
|
"px;'>" +
|
|
|
|
|
"<table class='darkTable' align=center>" +
|
|
|
|
|
"<tr><th colspan=4 style='font-weight:bold'>DXCC (" + heard + ")</th>" +
|
|
|
|
|
"<tr>" +
|
|
|
|
|
"<th align=left>" + $.i18n("gt.callsignBox.Name") + "</th>" +
|
|
|
|
|
"<th>" + $.i18n("gt.callsignBox.Flag") + "</th>" +
|
|
|
|
|
"<th align=left>" + $.i18n("gt.callsignBox.Calls") + "</th>" +
|
|
|
|
|
"</tr>";
|
|
|
|
|
Object.keys(List)
|
|
|
|
|
.sort()
|
|
|
|
|
.forEach(function (key, i)
|
|
|
|
@ -8033,19 +8078,19 @@ function showWorkedBox(sortIndex, nextPage, redraw)
|
|
|
|
|
worker += "<th></th>";
|
|
|
|
|
worker += "<th colspan=2><div id='dxccFilterDiv'></div></th>";
|
|
|
|
|
worker += "</tr> ";
|
|
|
|
|
worker += "<tr><th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(0);'>Station</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(1);'>Grid</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(5);'>Band</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(2);'>Mode</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(6);'>QSL</th>";
|
|
|
|
|
worker += "<th align=center>Sent</th>";
|
|
|
|
|
worker += "<th align=center>Rcvd</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(3);'>DXCC</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(3);'>Flag</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(4);'>When</th>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<th>LoTW</th>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<th>eQSL</th>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<th>OQRS</th>";
|
|
|
|
|
worker += "<tr><th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(0);'>" + $.i18n("gt.qsoPage.Station") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(1);'>" + $.i18n("gt.qsoPage.Grid") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(5);'>" + $.i18n("gt.qsoPage.Band") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(2);'>" + $.i18n("gt.qsoPage.Mode") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(6);'>" + $.i18n("gt.qsoPage.QSL") + "</th>";
|
|
|
|
|
worker += "<th align=center>" + $.i18n("gt.qsoPage.Sent") + "</th>";
|
|
|
|
|
worker += "<th align=center>" + $.i18n("gt.qsoPage.Rcvd") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(3);'>" + $.i18n("gt.qsoPage.DXCC") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(3);'>" + $.i18n("gt.qsoPage.Flag") + "</th>";
|
|
|
|
|
worker += "<th style='cursor:pointer;' align=center onclick='window.opener.showWorkedBox(4);'>" + $.i18n("gt.qsoPage.When") + "</th>";
|
|
|
|
|
if (GT.callsignLookups.lotwUseEnable == true) worker += "<th>" + $.i18n("gt.qsoPage.LoTW") + "</th>";
|
|
|
|
|
if (GT.callsignLookups.eqslUseEnable == true) worker += "<th>" + $.i18n("gt.qsoPage.eQSL") + "</th>";
|
|
|
|
|
if (GT.callsignLookups.oqrsUseEnable == true) worker += "<th>" + $.i18n("gt.qsoPage.OQRS") + "</th>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
|
|
|
|
|
var key = null;
|
|
|
|
@ -9064,7 +9109,7 @@ function showStatBox(resize)
|
|
|
|
|
{
|
|
|
|
|
setStatsDiv(
|
|
|
|
|
"statViewDiv",
|
|
|
|
|
" <br/>...Parsing Log Entries...<br/> "
|
|
|
|
|
" <br/>" + $.i18n("gt.statBox.NoEntries") + "<br/> "
|
|
|
|
|
);
|
|
|
|
|
setStatsDivHeight("statViewDiv", "auto");
|
|
|
|
|
GT.statBoxTimer = nodeTimers.setTimeout(renderStatsBox, 250);
|
|
|
|
@ -9073,7 +9118,7 @@ function showStatBox(resize)
|
|
|
|
|
{
|
|
|
|
|
setStatsDiv(
|
|
|
|
|
"statViewDiv",
|
|
|
|
|
" <br/>No log entries available, load one or more ADIF logs<br/> "
|
|
|
|
|
" <br/>" + $.i18n("gt.statBox.NoEntries") + "<br/> "
|
|
|
|
|
);
|
|
|
|
|
setStatsDivHeight("statViewDiv", "auto");
|
|
|
|
|
}
|
|
|
|
@ -9503,28 +9548,28 @@ function renderStatsBox()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var TypeNames = {
|
|
|
|
|
0: ["MIXED", "Mixed", ""],
|
|
|
|
|
1: ["DIGITAL", "Digital", ""],
|
|
|
|
|
2: ["PHONE", "Phone", ""],
|
|
|
|
|
3: ["CW", "CW", ""],
|
|
|
|
|
4: ["Other", "Other", ""]
|
|
|
|
|
0: ["MIXED", $.i18n("gt.typeNames.Mixed"), ""],
|
|
|
|
|
1: ["DIGITAL", $.i18n("gt.typeNames.Digital"), ""],
|
|
|
|
|
2: ["PHONE", $.i18n("gt.typeNames.Phone"), ""],
|
|
|
|
|
3: ["CW", $.i18n("gt.typeNames.CW"), ""],
|
|
|
|
|
4: ["Other", $.i18n("gt.typeNames.Other"), ""]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var AwardNames = {
|
|
|
|
|
0: ["WRFA", "Callsigns", "WRFA", "yellow"],
|
|
|
|
|
1: ["GRID", "Grids", "GSA", "cyan"],
|
|
|
|
|
2: ["DXCC", "DXCCs", "DXWA", "orange"],
|
|
|
|
|
3: ["CQ", "CQ Zones", "WAZ", "lightgreen"],
|
|
|
|
|
4: ["ITU", "ITU Zones", "ITUz", "#DD44DD"],
|
|
|
|
|
5: ["WAC", "Continents", "WAC", "cyan"],
|
|
|
|
|
6: ["WAS", "US States", "WAS", "lightblue"],
|
|
|
|
|
7: ["USC", "US Counties", "USA-CA", "orange"],
|
|
|
|
|
8: ["WPX", "Prefixes", "WPX", "yellow"]
|
|
|
|
|
0: ["WRFA", $.i18n("gt.awardNames.WRFA"), "WRFA", "yellow"],
|
|
|
|
|
1: ["GRID", $.i18n("gt.awardNames.Grid"), "GSA", "cyan"],
|
|
|
|
|
2: ["DXCC", $.i18n("gt.awardNames.DXCC"), "DXWA", "orange"],
|
|
|
|
|
3: ["CQ", $.i18n("gt.awardNames.CQ"), "WAZ", "lightgreen"],
|
|
|
|
|
4: ["ITU", $.i18n("gt.awardNames.ITU"), "ITUz", "#DD44DD"],
|
|
|
|
|
5: ["WAC", $.i18n("gt.awardNames.WAC"), "WAC", "cyan"],
|
|
|
|
|
6: ["WAS", $.i18n("gt.awardNames.WAS"), "WAS", "lightblue"],
|
|
|
|
|
7: ["USC", $.i18n("gt.awardNames.USC"), "USA-CA", "orange"],
|
|
|
|
|
8: ["WPX", $.i18n("gt.awardNames.WPX"), "WPX", "yellow"]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
worker = "<font color='cyan'>";
|
|
|
|
|
|
|
|
|
|
worker += "<h1>Logbook</h1>";
|
|
|
|
|
worker += "<h1>" + $.i18n("gt.logbook.title") + "</h1>";
|
|
|
|
|
|
|
|
|
|
worker +=
|
|
|
|
|
"<table style='display:inline-table;margin:5px;' class='darkTable'>";
|
|
|
|
@ -9538,20 +9583,22 @@ function renderStatsBox()
|
|
|
|
|
Object.keys(details.callsigns).sort().join(", ") +
|
|
|
|
|
"</b></td></tr>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr><td>First Contact</td><td style='color:white' >" +
|
|
|
|
|
"<tr><td>" + $.i18n("gt.logbook.firstContact") + "</td><td style='color:white' >" +
|
|
|
|
|
userTimeString(details.oldest * 1000) +
|
|
|
|
|
"</td></tr>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr><td>Last Contact</td><td style='color:white' >" +
|
|
|
|
|
"<tr><td>" + $.i18n("gt.logbook.lastContact") + "</td><td style='color:white' >" +
|
|
|
|
|
userTimeString(details.newest * 1000) +
|
|
|
|
|
"</td></tr>";
|
|
|
|
|
worker += "</table>";
|
|
|
|
|
worker += "</br>";
|
|
|
|
|
worker += "<h1>Score Card</h1>";
|
|
|
|
|
worker += "<h1>" + $.i18n("gt.logbook.scoreCard") + "</h1>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<table style='display:inline-table;margin:5px;' class='darkTable'>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr><th>Top Score</th><th style='color:yellow'>Worked</th><th style='color:lightgreen'>Confirmed</th></tr>";
|
|
|
|
|
"<tr><th>" + $.i18n("gt.logbook.topScore") + "</th>" +
|
|
|
|
|
"<th style='color:yellow'>" + $.i18n("gt.logbook.worked") + "</th>" +
|
|
|
|
|
"<th style='color:lightgreen'>" + $.i18n("gt.logbook.confirmed") + "</th></tr>";
|
|
|
|
|
|
|
|
|
|
for (var key in AwardNames)
|
|
|
|
|
{
|
|
|
|
@ -9585,7 +9632,7 @@ function renderStatsBox()
|
|
|
|
|
|
|
|
|
|
scoreSection = "Long Distance";
|
|
|
|
|
|
|
|
|
|
worker += "<tr><td style='color:white'>Long Distance</td>";
|
|
|
|
|
worker += "<tr><td style='color:white'>" + $.i18n("gt.score.LongDist") + "</td>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<td style='color:lightgreen'>" +
|
|
|
|
|
long_distance.worked_unit +
|
|
|
|
@ -9620,7 +9667,7 @@ function renderStatsBox()
|
|
|
|
|
|
|
|
|
|
scoreSection = "Short Distance";
|
|
|
|
|
|
|
|
|
|
worker += "<tr><td style='color:white' >Short Distance</td>";
|
|
|
|
|
worker += "<tr><td style='color:white' >" + $.i18n("gt.score.ShortDist") + "</td>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<td style='color:lightblue'>" +
|
|
|
|
|
short_distance.worked_unit +
|
|
|
|
@ -9656,7 +9703,7 @@ function renderStatsBox()
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
worker += "</table>";
|
|
|
|
|
worker += "</br>";
|
|
|
|
|
worker += "<h1>Award Types</h1>";
|
|
|
|
|
worker += "<h1>" + $.i18n("gt.AwardTypes") + "</h1>";
|
|
|
|
|
|
|
|
|
|
scoreSection = "Award Types";
|
|
|
|
|
for (var key in AwardNames)
|
|
|
|
@ -9672,7 +9719,7 @@ function renderStatsBox()
|
|
|
|
|
|
|
|
|
|
scoreSection = "Mode Types";
|
|
|
|
|
|
|
|
|
|
worker += "<h1>Mode Types</h1>";
|
|
|
|
|
worker += "<h1>" + $.i18n("gt.ModeTypes") + "</h1>";
|
|
|
|
|
for (var key in TypeNames)
|
|
|
|
|
{
|
|
|
|
|
worker += createStatTable(
|
|
|
|
@ -9684,10 +9731,10 @@ function renderStatsBox()
|
|
|
|
|
|
|
|
|
|
worker += "<br/>";
|
|
|
|
|
|
|
|
|
|
worker += "<h1>Distances</h1>";
|
|
|
|
|
worker += "<h1>" + $.i18n("gt.Distances") + "</h1>";
|
|
|
|
|
scoreSection = "Distances";
|
|
|
|
|
worker += createDistanceTable(long_distance, "Longest Distance");
|
|
|
|
|
worker += createDistanceTable(short_distance, "Shortest Distance");
|
|
|
|
|
worker += createDistanceTable(long_distance, $.i18n("gt.LongestDist"));
|
|
|
|
|
worker += createDistanceTable(short_distance, $.i18n("gt.ShortestDist"));
|
|
|
|
|
worker += "<br/>";
|
|
|
|
|
}
|
|
|
|
|
catch (e)
|
|
|
|
@ -9695,7 +9742,7 @@ function renderStatsBox()
|
|
|
|
|
worker +=
|
|
|
|
|
"<br/> In Section: " +
|
|
|
|
|
scoreSection +
|
|
|
|
|
"<br/>Error Generating Stats<br/>Please take a screenshot and send to team@gridtracker.org";
|
|
|
|
|
"<br/>" + $.i18n("gt.scorecardError");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setStatsDiv("statViewDiv", worker);
|
|
|
|
@ -9718,8 +9765,9 @@ function createDistanceTable(obj, name)
|
|
|
|
|
name +
|
|
|
|
|
"</th></tr>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<tr><td></td><td><font color='yellow'>Worked</font></td><td colspan=2 ><font color='lightgreen'>Confirmed</font></td></tr>";
|
|
|
|
|
worker += "<tr><td align=center><font color='lightgreen'>Bands</font></td>";
|
|
|
|
|
"<tr><td></td><td><font color='yellow'>" + $.i18n("gt.distanceTable.Worked") +
|
|
|
|
|
"</font></td><td colspan=2 ><font color='lightgreen'>" + $.i18n("gt.distanceTable.Confirmed") + "</font></td></tr>";
|
|
|
|
|
worker += "<tr><td align=center><font color='lightgreen'>" + $.i18n("gt.distanceTable.Bands") + "</font></td>";
|
|
|
|
|
worker += "<td align=left><table class='subtable'>";
|
|
|
|
|
var keys = Object.keys(obj.band).sort(numberSort);
|
|
|
|
|
for (var key in keys)
|
|
|
|
@ -9777,7 +9825,7 @@ function createDistanceTable(obj, name)
|
|
|
|
|
|
|
|
|
|
worker += "</table></td>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
worker += "<tr><td align=center><font color='orange'>Modes</font></td>";
|
|
|
|
|
worker += "<tr><td align=center><font color='orange'>" + $.i18n("gt.distanceTable.Modes") + "</font></td>";
|
|
|
|
|
worker += "<td align=left><table class='subtable'>";
|
|
|
|
|
keys = Object.keys(obj.mode).sort();
|
|
|
|
|
for (var key in keys)
|
|
|
|
@ -9834,7 +9882,7 @@ function createDistanceTable(obj, name)
|
|
|
|
|
}
|
|
|
|
|
worker += "</table></td>";
|
|
|
|
|
worker += "</tr>";
|
|
|
|
|
worker += "<tr><td align=center><font color='#DD44DD'>Types</font></td>";
|
|
|
|
|
worker += "<tr><td align=center><font color='#DD44DD'>" + $.i18n("gt.distanceTable.Types") + "</font></td>";
|
|
|
|
|
worker += "<td align=left><table class='subtable'>";
|
|
|
|
|
keys = Object.keys(obj.type).sort();
|
|
|
|
|
for (var key in keys)
|
|
|
|
@ -9940,14 +9988,14 @@ function createStatTable(title, infoObject, awardName)
|
|
|
|
|
wc1Table +=
|
|
|
|
|
"<tr>" +
|
|
|
|
|
award +
|
|
|
|
|
"<td><font color='yellow'>Worked</font> <font color='white'>(" +
|
|
|
|
|
"<td><font color='yellow'>" + $.i18n("gt.statTable.Worked") + "</font> <font color='white'>(" +
|
|
|
|
|
infoObject.worked +
|
|
|
|
|
")</font></td><td colspan=2 ><font color='lightgreen'>Confirmed</font> <font color='white'>(" +
|
|
|
|
|
")</font></td><td colspan=2 ><font color='lightgreen'>" + $.i18n("gt.statTable.Confirmed") + "</font> <font color='white'>(" +
|
|
|
|
|
infoObject.confirmed +
|
|
|
|
|
")</font></td></tr>";
|
|
|
|
|
|
|
|
|
|
wc1Table +=
|
|
|
|
|
"<tr><td align=center><font color='lightgreen'>Bands</font></td>";
|
|
|
|
|
"<tr><td align=center><font color='lightgreen'>" + $.i18n("gt.statTable.Bands") + "</font></td>";
|
|
|
|
|
|
|
|
|
|
wc1Table += "<td align=left><table class='subtable'>";
|
|
|
|
|
var keys = Object.keys(infoObject.worked_bands).sort(numberSort);
|
|
|
|
@ -9981,7 +10029,7 @@ function createStatTable(title, infoObject, awardName)
|
|
|
|
|
wc1Table += "</tr>";
|
|
|
|
|
|
|
|
|
|
wc1Table += "<tr>";
|
|
|
|
|
wc1Table += "<td align=center><font color='orange'>Modes</font></td>";
|
|
|
|
|
wc1Table += "<td align=center><font color='orange'>" + $.i18n("gt.statTable.Modes") + "</font></td>";
|
|
|
|
|
wc1Table += "<td align=left><table class='subtable'>";
|
|
|
|
|
keys = Object.keys(infoObject.worked_modes).sort();
|
|
|
|
|
for (var key in keys)
|
|
|
|
@ -10018,7 +10066,7 @@ function createStatTable(title, infoObject, awardName)
|
|
|
|
|
if (infoObject.worked_type_count > 0)
|
|
|
|
|
{
|
|
|
|
|
wc1Table += "<tr>";
|
|
|
|
|
wc1Table += "<td align=center><font color='#DD44DD'>Types</font></td>";
|
|
|
|
|
wc1Table += "<td align=center><font color='#DD44DD'>" + $.i18n("gt.statTable.Types") + "</font></td>";
|
|
|
|
|
wc1Table += "<td align=left><table class='subtable'>";
|
|
|
|
|
var keys = Object.keys(infoObject.worked_types).sort();
|
|
|
|
|
for (var key in keys)
|
|
|
|
@ -13256,7 +13304,7 @@ document.addEventListener("drop", function (event)
|
|
|
|
|
|
|
|
|
|
GT.startupTable = [
|
|
|
|
|
[startupVersionInit, "Completed Version Check"],
|
|
|
|
|
[loadi18n, "Loading Locales"],
|
|
|
|
|
[loadI18n, "Loading Locales"],
|
|
|
|
|
[qsoBackupFileInit, "QSO Backup Initialized"],
|
|
|
|
|
[callsignServicesInit, "Callsign Services Initialized"],
|
|
|
|
|
[loadMapSettings, "Map Settings Initialized"],
|
|
|
|
@ -14076,17 +14124,18 @@ function continueWithLookup(callsign, gridPass)
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var worker =
|
|
|
|
|
"<center>C A L L O O K<br/>NO-NONSENSE AMATEUR RADIO U.S.A. CALLSIGN LOOKUPS<br/>are limited to United States and United States Territories Only<br/>";
|
|
|
|
|
"<center>" + $.i18n("gt.callookDX1") +
|
|
|
|
|
"<br/>" + $.i18n("gt.callookDX2") +
|
|
|
|
|
"<br/>" + $.i18n("gt.callookDX3") + "<br/>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<br/>The callsign <font color='orange'>" +
|
|
|
|
|
"<br/>" + $.i18n("gt.callookDX4") + " <font color='orange'> " +
|
|
|
|
|
callsign +
|
|
|
|
|
"</font> requested is from <font color='yellow'>" +
|
|
|
|
|
"</font> " + $.i18n("gt.callookDX5") + " <font color='yellow'> " +
|
|
|
|
|
where +
|
|
|
|
|
"</font><br/>";
|
|
|
|
|
worker +=
|
|
|
|
|
"<br/><br/>You might want to consider using QRZ.com, they have a free membership that provides limited data for most callsigns<br/>";
|
|
|
|
|
worker +=
|
|
|
|
|
"and they have full details available for paid members<br/></center>";
|
|
|
|
|
"<br/><br/>" + $.i18n("gt.callookDX6") + "<br/>";
|
|
|
|
|
worker += $.i18n("gt.callookDX7") + "<br/></center>";
|
|
|
|
|
|
|
|
|
|
setLookupDiv("lookupInfoDiv", worker);
|
|
|
|
|
}
|
|
|
|
@ -14365,7 +14414,7 @@ function qthHamLookupResults(buffer, gridPass, useCache)
|
|
|
|
|
GT.qrzLookupSessionId = null;
|
|
|
|
|
setLookupDiv(
|
|
|
|
|
"lookupInfoDiv",
|
|
|
|
|
"<br/><b>No result for callsign</b><br/><br/>"
|
|
|
|
|
"<br/><b>" + $.i18n("gt.lookup.NoResult") + "</b><br/><br/>"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -14414,7 +14463,7 @@ function qrzLookupResults(buffer, gridPass, useCache)
|
|
|
|
|
{
|
|
|
|
|
setLookupDiv(
|
|
|
|
|
"lookupInfoDiv",
|
|
|
|
|
"<br/><b>No result for callsign</b><br/><br/>"
|
|
|
|
|
"<br/><b>" + $.i18n("gt.lookup.NoResult") + "</b><br/><br/>"
|
|
|
|
|
);
|
|
|
|
|
GT.qrzLookupSessionId = null;
|
|
|
|
|
}
|
|
|
|
@ -14438,9 +14487,9 @@ function initialDatabases()
|
|
|
|
|
GT.Irequest.onerror = function (event)
|
|
|
|
|
{
|
|
|
|
|
alert(
|
|
|
|
|
"Database error: " +
|
|
|
|
|
$.i18n("gt.dbInit.error1") +
|
|
|
|
|
event.target.errorCode +
|
|
|
|
|
" : GridTracker will have issues"
|
|
|
|
|
$.i18n("gt.dbInit.error2")
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|