Fixed issue with multiple same callsigns

merge-requests/257/head
Tag 2022-12-03 17:07:35 -08:00
rodzic c113e37e47
commit 6a7046af50
4 zmienionych plików z 48 dodań i 24 usunięć

Wyświetl plik

@ -1,3 +1,4 @@
<!DOCTYPE html>
<!--
This file is part of GridTracker.

Wyświetl plik

@ -7092,11 +7092,13 @@ function handleWsjtxDecode(newMessage)
if (g_appSettings.gtSpotEnable === true && callsign.DEcall in g_gtCallsigns)
{
var key = g_gtCallsigns[callsign.DEcall];
if (key in g_gtFlagPins && g_gtFlagPins[key].o == 1)
for (const cid in g_gtCallsigns[callsign.DEcall])
{
g_spotCollector[key] = callsign.RSTsent;
g_spotDetailsCollector[key] = [callsign.delta + newMessage.OF, callsign.mode];
if (cid in g_gtFlagPins && g_gtFlagPins[cid].o == 1)
{
g_spotCollector[cid] = callsign.RSTsent;
g_spotDetailsCollector[cid] = [callsign.delta + newMessage.OF, callsign.mode];
}
}
}
}
@ -10641,7 +10643,6 @@ function setGtShareButtons()
g_gtFlagPins = Object()
g_gtMessages = Object();
g_gtUnread = Object();
g_gtIdToCid = Object();
g_gtCallsigns = Object();
g_gtSentAwayToCid = Object();

Wyświetl plik

@ -282,13 +282,15 @@ function gtChatRemoveCall(jsmesg)
}
else
{
console.log("drop: No such id in gtCall:");
console.log("drop: No such id in g_gtFlagPins.ids:");
console.log(jsmesg);
console.log(g_gtFlagPins[cid].ids);
}
if (Object.keys(g_gtFlagPins[cid].ids).length == 0)
{
delete g_gtCallsigns[g_gtFlagPins[cid].call][cid];
if (g_gtFlagPins[cid].pin != null)
{
// remove pin from map here
@ -301,18 +303,16 @@ function gtChatRemoveCall(jsmesg)
notifyNoChat(cid);
if (!(cid in g_gtMessages))
{
delete g_gtCallsigns[g_gtFlagPins[cid].call];
if (Object.keys(g_gtCallsigns[g_gtFlagPins[cid].call]).length == 0)
{
delete g_gtCallsigns[g_gtFlagPins[cid].call];
}
delete g_gtFlagPins[cid];
}
updateChatWindow(cid);
}
}
else
{
console.log("drop: No such cid in gtCall");
console.log(jsmesg);
}
}
function gtChatUpdateCall(jsmesg)
@ -332,6 +332,11 @@ function gtChatUpdateCall(jsmesg)
delete g_gtFlagPins[cid].pin;
g_gtFlagPins[cid].pin = null;
}
// Changed callsign?
if (g_gtFlagPins[cid].call != jsmesg.call)
{
delete g_gtCallsigns[g_gtFlagPins[cid].call][cid];
}
}
else
{
@ -362,7 +367,14 @@ function gtChatUpdateCall(jsmesg)
g_layerSources.gtflags.addFeature(g_gtFlagPins[cid].pin);
}
}
g_gtCallsigns[g_gtFlagPins[cid].call] = cid;
if (!(g_gtFlagPins[cid].call in g_gtCallsigns))
{
// Can happen when a user changes callsign
g_gtCallsigns[g_gtFlagPins[cid].call] = Object();
}
g_gtCallsigns[g_gtFlagPins[cid].call][cid] = true;
updateChatWindow(cid);
}
@ -472,7 +484,13 @@ function gtChatNewList(jsmesg)
g_gtFlagPins[cid].o = jsmesg.data.o[key];
g_gtFlagPins[cid].dxcc = callsignToDxcc(g_gtFlagPins[cid].call);
g_gtFlagPins[cid].live = true;
g_gtCallsigns[g_gtFlagPins[cid].call] = cid;
if (!(g_gtFlagPins[cid].call in g_gtCallsigns))
{
g_gtCallsigns[g_gtFlagPins[cid].call] = Object();
}
g_gtCallsigns[g_gtFlagPins[cid].call][cid] = true;
makeGtPin(g_gtFlagPins[cid]);

Wyświetl plik

@ -117,16 +117,20 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
}
// Calls that have OAMS chat support
if (
callsign in window.opener.g_gtCallsigns &&
window.opener.g_gtCallsigns[callsign] in window.opener.g_gtFlagPins &&
window.opener.g_gtFlagPins[window.opener.g_gtCallsigns[callsign]].canmsg == true
)
if (callsign in window.opener.g_gtCallsigns)
{
callObj.callFlags.oams = true;
// grab the CID
callObj.gt = window.opener.g_gtCallsigns[callsign];
hasGtPin = true;
callObj.gt = 0;
for (const cid in window.opener.g_gtCallsigns[callsign])
{
if (cid in window.opener.g_gtFlagPins && window.opener.g_gtFlagPins[cid].canmsg == true)
{
// found the first one we can message, break now
callObj.callFlags.oams = true;
callObj.gt = cid;
hasGtPin = true;
break;
}
}
}
else
{