kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Merge branch 'chrbayer84-sample-logs-for-unconfirmed-dxccs' into 'master'
Chrbayer84 sample logs for unconfirmed dxccs See merge request gridtracker.org/gridtracker!60merge-requests/61/head
commit
4334781335
|
@ -431,6 +431,7 @@ var g_wacZones = {};
|
|||
var g_wasZones = {};
|
||||
var g_ituZones = {};
|
||||
var g_dxccCount = {};
|
||||
var g_unconfirmedCalls = new Map();
|
||||
|
||||
var g_tracker = {};
|
||||
|
||||
|
@ -616,6 +617,41 @@ var g_gridAlpha = "88";
|
|||
|
||||
if (typeof g_mapMemory[6] == "undefined") g_mapMemory[6] = g_mapMemory[0];
|
||||
|
||||
class UnconfirmedCallsKey
|
||||
{
|
||||
constructor(dxcc, band)
|
||||
{
|
||||
this._DXCC = dxcc;
|
||||
this._BAND = band;
|
||||
}
|
||||
|
||||
get dxcc()
|
||||
{
|
||||
return parseInt(this._DXCC);
|
||||
}
|
||||
|
||||
set dxcc(dxcc)
|
||||
{
|
||||
this._DXCC = dxcc;
|
||||
}
|
||||
|
||||
get band()
|
||||
{
|
||||
return this._BAND;
|
||||
}
|
||||
|
||||
set band(band)
|
||||
{
|
||||
this._BAND = band;
|
||||
}
|
||||
|
||||
get key()
|
||||
{
|
||||
return Symbol.for(`UnconfirmedCallsKey[${this.dxcc}:${this.band}]`);
|
||||
}
|
||||
}
|
||||
var unconfirmedCallsSentinel = new UnconfirmedCallsKey(0, "");
|
||||
|
||||
function qsoBackupFileInit()
|
||||
{
|
||||
var adifHeader = "GridTracker v" + gtVersion + " <EOH>\r\n";
|
||||
|
@ -2082,7 +2118,7 @@ function createTooltTipTable(toolElement)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (Object.keys(toolElement.liveHash).length > 0)
|
||||
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>";
|
||||
|
@ -2196,6 +2232,124 @@ function createTooltTipTable(toolElement)
|
|||
return newCallList.length;
|
||||
}
|
||||
|
||||
// creates table for filling the pop-up winodw with log entries of unconfirmed qsos.
|
||||
function createTooltTipTableLogbook(toolElement)
|
||||
{
|
||||
var myTooltip = document.getElementById("myTooltip");
|
||||
var colspan = 10;
|
||||
if (g_callsignLookups.lotwUseEnable == true) colspan++;
|
||||
if (g_callsignLookups.eqslUseEnable == true) colspan++;
|
||||
if (g_callsignLookups.oqrsUseEnable == true) colspan++;
|
||||
if (toolElement.qso == true) colspan += 2;
|
||||
|
||||
var worker =
|
||||
"<table id='tooltipTable' class='darkTable' ><tr><th colspan=" +
|
||||
colspan +
|
||||
" style='color:cyan'>" +
|
||||
"Logbook entries" +
|
||||
"</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>";
|
||||
|
||||
if (g_callsignLookups.lotwUseEnable == true) worker += "<td>LoTW</td>";
|
||||
if (g_callsignLookups.eqslUseEnable == true) worker += "<td>eQSL</td>";
|
||||
if (g_callsignLookups.oqrsUseEnable == true) worker += "<td>OQRS</td>";
|
||||
worker += "</tr>";
|
||||
|
||||
var newCallList = Array();
|
||||
|
||||
toolElement.forEach(function (value, key, set)
|
||||
{
|
||||
newCallList.push(value);
|
||||
});
|
||||
newCallList.sort(compareCallsignTime).reverse();
|
||||
for (var x = 0; x < newCallList.length; x++)
|
||||
{
|
||||
var callsign = newCallList[x];
|
||||
var bgDX = " style='font-weight:bold;color:cyan;' ";
|
||||
var bgDE = " style='font-weight:bold;color:yellow;' ";
|
||||
if (callsign.DXcall == myDEcall)
|
||||
{ bgDX = " style='background-color:cyan;color:#000;font-weight:bold' "; }
|
||||
if (callsign.DEcall == myDEcall)
|
||||
{ bgDE = " style='background-color:#FFFF00;color:#000;font-weight:bold' "; }
|
||||
var ageString = "";
|
||||
if (timeNowSec() - callsign.time < 3601)
|
||||
{ ageString = (timeNowSec() - callsign.time).toDHMS(); }
|
||||
else
|
||||
{
|
||||
ageString = userTimeString(callsign.time * 1000);
|
||||
}
|
||||
worker += "<tr><td" + bgDE + ">";
|
||||
worker +=
|
||||
"<div style='display:inline-table;cursor:pointer' onclick='startLookup(\"" +
|
||||
callsign.DEcall +
|
||||
"\",\"" +
|
||||
toolElement.qth +
|
||||
"\");' >" +
|
||||
callsign.DEcall.formatCallsign() +
|
||||
"</div>";
|
||||
worker += "</td>";
|
||||
worker += "<td>" + (callsign.delta > -1 ? callsign.delta : "-") + "</td>";
|
||||
worker += "<td>" + callsign.RSTsent + "</td>";
|
||||
worker += "<td>" + callsign.RSTrecv + "</td>" + "<td" + bgDX + ">";
|
||||
if (callsign.DXcall.indexOf("CQ") == 0 || callsign.DXcall == "-")
|
||||
{ worker += callsign.DXcall.formatCallsign(); }
|
||||
else
|
||||
{
|
||||
worker +=
|
||||
"<div style='display:inline-table;cursor:pointer' onclick='startLookup(\"" +
|
||||
callsign.DXcall +
|
||||
"\",null);' >" +
|
||||
callsign.DXcall.formatCallsign() +
|
||||
"</div>";
|
||||
}
|
||||
worker +=
|
||||
"</td>" +
|
||||
"<td style='color:lightblue'>" +
|
||||
callsign.mode +
|
||||
"</td>" +
|
||||
"<td style='color:lightgreen'>" +
|
||||
callsign.band +
|
||||
"</td>";
|
||||
worker +=
|
||||
"<td style='color:yellow'>" +
|
||||
g_dxccToAltName[callsign.dxcc] +
|
||||
" <font color='lightgreen'>(" +
|
||||
g_worldGeoData[g_dxccToGeoData[callsign.dxcc]].pp +
|
||||
")</font></td>" +
|
||||
"<td align='center' style='color:lightblue' >" +
|
||||
ageString +
|
||||
"</td>";
|
||||
if (g_callsignLookups.lotwUseEnable == true)
|
||||
{
|
||||
worker +=
|
||||
"<td align='center'>" +
|
||||
(callsign.DEcall in g_lotwCallsigns ? "✔" : "") +
|
||||
"</td>";
|
||||
}
|
||||
if (g_callsignLookups.eqslUseEnable == true)
|
||||
{
|
||||
worker +=
|
||||
"<td align='center'>" +
|
||||
(callsign.DEcall in g_eqslCallsigns ? "✔" : "") +
|
||||
"</td>";
|
||||
}
|
||||
if (g_callsignLookups.oqrsUseEnable == true)
|
||||
{
|
||||
worker +=
|
||||
"<td align='center'>" +
|
||||
(callsign.DEcall in g_oqrsCallsigns ? "✔" : "") +
|
||||
"</td>";
|
||||
}
|
||||
worker += "</tr>";
|
||||
}
|
||||
worker += "</table>";
|
||||
myTooltip.innerHTML = worker;
|
||||
g_passingToolTipTableString = worker;
|
||||
return newCallList.length;
|
||||
}
|
||||
|
||||
function renderTooltipWindow(feature)
|
||||
{
|
||||
if (g_popupWindowHandle != null)
|
||||
|
@ -2219,6 +2373,33 @@ function renderTooltipWindow(feature)
|
|||
}
|
||||
}
|
||||
|
||||
// renders the pop-window for logbook entries of unconfirmed qsos.
|
||||
function renderTooltipWindowLogbook(logbookEntries)
|
||||
{
|
||||
if (g_popupWindowHandle != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
createTooltTipTableLogbook(logbookEntries);
|
||||
var adif = g_popupWindowHandle.window.document.getElementById(
|
||||
"adifTable"
|
||||
);
|
||||
adif.innerHTML = g_passingToolTipTableString;
|
||||
var myTooltip = document.getElementById("myTooltip");
|
||||
var positionInfo = myTooltip.getBoundingClientRect();
|
||||
g_popupWindowHandle.show();
|
||||
g_popupWindowHandle.focus();
|
||||
|
||||
g_popupWindowHandle.width = parseInt(positionInfo.width) + 20;
|
||||
g_popupWindowHandle.height = parseInt(positionInfo.height) + 50;
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function leftClickGtFlag(feature)
|
||||
{
|
||||
var e = window.event;
|
||||
|
@ -8009,6 +8190,34 @@ function showWorkedBox(sortIndex, nextPage, redraw)
|
|||
{
|
||||
bands[list[key].band] = list[key].band;
|
||||
modes[list[key].mode] = list[key].mode;
|
||||
var unconfirmedCallsKey = new UnconfirmedCallsKey(list[key].dxcc, list[key].band);
|
||||
if (
|
||||
g_unconfirmedCalls.has(unconfirmedCallsKey.key) &&
|
||||
list[key].confirmed
|
||||
)
|
||||
{
|
||||
g_unconfirmedCalls.set(unconfirmedCallsKey.key, unconfirmedCallsSentinel);
|
||||
}
|
||||
else if (
|
||||
!list[key].confirmed &&
|
||||
// check for sentinel object -- confirmed country. key needs to be kept in here so that
|
||||
// an recent unconfirmed qso doesn't mark the key as unconfirmed
|
||||
g_unconfirmedCalls.get(unconfirmedCallsKey.key) != unconfirmedCallsSentinel
|
||||
)
|
||||
{
|
||||
var logs = g_unconfirmedCalls.get(unconfirmedCallsKey.key);
|
||||
if (logs == undefined)
|
||||
{
|
||||
logs = new Set();
|
||||
logs.add(list[key]);
|
||||
g_unconfirmedCalls.set(unconfirmedCallsKey.key, logs);
|
||||
}
|
||||
else if (!logs.has(list[key]))
|
||||
{
|
||||
logs.add(list[key]);
|
||||
}
|
||||
}
|
||||
|
||||
var pp =
|
||||
g_dxccToGeoData[list[key].dxcc] in g_worldGeoData
|
||||
? g_worldGeoData[g_dxccToGeoData[list[key].dxcc]].pp
|
||||
|
@ -8506,13 +8715,13 @@ function showDXCCsBox()
|
|||
.sort()
|
||||
.forEach(function (key, i)
|
||||
{
|
||||
var confirmed = List[key].confirmed
|
||||
var rowStyle = List[key].confirmed
|
||||
? ""
|
||||
: "background-clip:content-box;box-shadow: 0 0 8px 3px inset ";
|
||||
var rowAttributes = List[key].confirmed ? "" : "id='unconfirmed" + List[key].dxcc + "Id'";
|
||||
|
||||
worker +=
|
||||
"<tr><td align=left style='color:#ff0;" +
|
||||
confirmed +
|
||||
"' >" +
|
||||
"<tr><td align=left style='color:#ff0;" + rowStyle + "' " + rowAttributes + ">" +
|
||||
key +
|
||||
"</td>";
|
||||
|
||||
|
@ -8580,6 +8789,61 @@ function showDXCCsBox()
|
|||
worker += "</table></div>";
|
||||
}
|
||||
setStatsDiv("dxccListDiv", worker);
|
||||
|
||||
Object.keys(List).forEach(function (key, i)
|
||||
{
|
||||
var band =
|
||||
g_appSettings.gtBandFilter == "auto"
|
||||
? myBand
|
||||
: g_appSettings.gtBandFilter.length == 0
|
||||
? ""
|
||||
: g_appSettings.gtBandFilter;
|
||||
var unconfirmedCallsKey = new UnconfirmedCallsKey(List[key].dxcc, band);
|
||||
if (g_unconfirmedCalls.has(unconfirmedCallsKey.key) &&
|
||||
g_unconfirmedCalls.get(unconfirmedCallsKey.key) != unconfirmedCallsSentinel
|
||||
)
|
||||
{
|
||||
var onMousedown = function (e)
|
||||
{
|
||||
if (e.which === 1)
|
||||
{
|
||||
if (g_popupWindowHandle == null)
|
||||
{
|
||||
popupNewWindows();
|
||||
var gui = require("nw.gui");
|
||||
gui.Window.open(
|
||||
"gt_popup.html",
|
||||
{
|
||||
show: false,
|
||||
id: "GT-popup"
|
||||
},
|
||||
function (new_win)
|
||||
{
|
||||
g_popupWindowHandle = new_win;
|
||||
new_win.on("loaded", function ()
|
||||
{
|
||||
g_popupWindowHandle.show();
|
||||
renderTooltipWindowLogbook(g_unconfirmedCalls.get(unconfirmedCallsKey.key));
|
||||
});
|
||||
new_win.on("close", function ()
|
||||
{
|
||||
g_popupWindowHandle.hide();
|
||||
});
|
||||
}
|
||||
);
|
||||
lockNewWindows();
|
||||
}
|
||||
else
|
||||
{
|
||||
renderTooltipWindowLogbook(g_unconfirmedCalls.get(unconfirmedCallsKey.key));
|
||||
}
|
||||
}
|
||||
};
|
||||
var unconfirmedTd = g_statsWindowHandle.window.document.getElementById("unconfirmed" + List[key].dxcc + "Id");
|
||||
if (unconfirmedTd != null)
|
||||
{ unconfirmedTd.addEventListener("mousedown", onMousedown); }
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showCQzoneBox()
|
||||
|
|
Ładowanie…
Reference in New Issue