Import vendor v1.20.0922

Canadian-Provinces-Territories-Award-Layer v1.20.0922
Paul Traina 2020-09-22 09:51:16 -07:00
rodzic c4bb533c78
commit acb82c67b7
12 zmienionych plików z 376 dodań i 359 usunięć

Wyświetl plik

@ -282,10 +282,10 @@
<div id="conditionsButton" onclick="showConditionsBox();" class="iconButton" title="View Current Conditions" ><img src="./img/conditions.svg" class="buttonImg" /></div> <div id="conditionsButton" onclick="showConditionsBox();" class="iconButton" title="View Current Conditions" ><img src="./img/conditions.svg" class="buttonImg" /></div>
<div id="donateButton" onclick="gotoDonate();" class="iconButton" title="Donate with PayPal"><img style="-webkit-filter: brightness(50%);" src="./img/donate.svg" class="buttonImg" /></div> <div id="donateButton" onclick="gotoDonate();" class="iconButton" title="Donate with PayPal"><img style="-webkit-filter: brightness(50%);" src="./img/donate.svg" class="buttonImg" /></div>
<div id="alterMuteDiv" onclick="toggleAlertMute()" class="iconButton" title="Toggle Audio Mute" ><img id="alertMuteImg" src="" class="buttonImg" /></div> <div id="alterMuteDiv" onclick="toggleAlertMute()" class="iconButton" title="Toggle Audio Mute" ><img id="alertMuteImg" src="" class="buttonImg" /></div>
<div id="buttonPSKSpotsBoxDiv" onClick="togglePskSpots();" class="iconButton" title="View PSK-Reporter Reception Reports"><img id="pskSpotsImg" src="./img/psk_spots_off.png" class="buttonImg" /></div> <div id="buttonPSKSpotsBoxDiv" onClick="togglePskSpots();" class="iconButton" title="View Spot Reports"><img id="pskSpotsImg" src="./img/spots.svg" class="buttonImg" /></div>
<div id="buttonPsk24CheckBoxDiv" onclick="grabPsk24()" class="iconButton" title="Your PSK 24hour report"><img id="pskImg" src="./img/psk_24_32.png" class="buttonImg" /></div> <div id="buttonPsk24CheckBoxDiv" onclick="grabPsk24()" class="iconButton" title="Your PSK 24hour report"><img id="pskImg" src="./img/psk_24_32.png" class="buttonImg" /></div>
<div id="buttonQRZCheckBoxDiv" onclick="if ( ValidateQrzApi(qrzApiKey ) ) grabQrzComLog()" class="iconButton" title="Download log from QRZ.com" ><img id="qrzLogImg" src="./img/log_QRZ.png" class="buttonImg" /></div> <div id="buttonQRZCheckBoxDiv" onclick="if ( ValidateQrzApi(qrzApiKey ) ) grabQrzComLog()" class="iconButton" title="Download log from QRZ.com" ><img id="qrzLogImg" src="./img/log_QRZ.png" class="buttonImg" /></div>
<div id="buttonLOTWCheckBoxDiv" onclick="if ( ValidateText(lotwLogin) && ValidateText(lotwPassword) ) { grabLOtWLogQSO(false); grabLOtWLog(false); } " class="iconButton" title="Download log from Logbook of the World" ><img id="lotwLogImg" src="./img/log_LoTW.png" class="buttonImg" /></div> <div id="buttonLOTWCheckBoxDiv" onclick="if ( ValidateText(lotwLogin) && ValidateText(lotwPassword) ) { grabLOtWLog(false); } " class="iconButton" title="Download log from Logbook of the World" ><img id="lotwLogImg" src="./img/log_LoTW.png" class="buttonImg" /></div>
<div id="buttonClubCheckBoxDiv" onclick="if ( ValidateText(clubEmail) && ValidateText(clubPassword) ) grabClubLog()" class="iconButton" title="Download log from ClubLog" ><img id="ClubLogImg" src="./img/log_club.png" class="buttonImg" /></div> <div id="buttonClubCheckBoxDiv" onclick="if ( ValidateText(clubEmail) && ValidateText(clubPassword) ) grabClubLog()" class="iconButton" title="Download log from ClubLog" ><img id="ClubLogImg" src="./img/log_club.png" class="buttonImg" /></div>
<div id="buttonAdifCheckBoxDiv" onclick="startupAdifLoadFunction()" class="iconButton" title="Reload Local ADIF Files" ><img src="./img/log_local.png" class="buttonImg" /></div> <div id="buttonAdifCheckBoxDiv" onclick="startupAdifLoadFunction()" class="iconButton" title="Reload Local ADIF Files" ><img src="./img/log_local.png" class="buttonImg" /></div>
<div id="timezoneButton" onclick="toggleTimezones()" class="iconButton" title="Toggle Timezone Layer"><img src="./img/timezone-button.svg" class="buttonImg" /></div> <div id="timezoneButton" onclick="toggleTimezones()" class="iconButton" title="Toggle Timezone Layer"><img src="./img/timezone-button.svg" class="buttonImg" /></div>
@ -360,7 +360,7 @@
<button class="settingsTablinks" onclick="openSettingsTab(event, 'logSettingsDiv');">Logging</button> <button class="settingsTablinks" onclick="openSettingsTab(event, 'logSettingsDiv');">Logging</button>
<button class="settingsTablinks" onclick="openSettingsTab(event, 'alertsDiv')">Alerts</button> <button class="settingsTablinks" onclick="openSettingsTab(event, 'alertsDiv')">Alerts</button>
<button class="settingsTablinks" onclick="openSettingsTab(event, 'callRosterDiv')">Call Roster</button> <button class="settingsTablinks" onclick="openSettingsTab(event, 'callRosterDiv')">Call Roster</button>
<button class="settingsTablinks" onclick="openSettingsTab(event, 'chatSettingsDiv')">Messaging</button> <button class="settingsTablinks" onclick="openSettingsTab(event, 'chatSettingsDiv')">OAMS</button>
<button id="logbut" class="settingsTablinks" onclick="openSettingsTab(event, 'logbookSettingsDiv')">Logbook</button> <button id="logbut" class="settingsTablinks" onclick="openSettingsTab(event, 'logbookSettingsDiv')">Logbook</button>
<button id="updatebut" class="settingsTablinks" onclick="openSettingsTab(event, 'updateSettingsDiv')">Update</button> <button id="updatebut" class="settingsTablinks" onclick="openSettingsTab(event, 'updateSettingsDiv')">Update</button>
<button class="settingsTablinks" style="margin-right:25px;" onclick="openSettingsTab(event, 'aboutDiv')">About</button> <button class="settingsTablinks" style="margin-right:25px;" onclick="openSettingsTab(event, 'aboutDiv')">About</button>
@ -1660,7 +1660,20 @@
</td> </td>
</tr> </tr>
</table> </table>
</div><br/> </div>
<div class="mapItem" id="GTspotDiv" >
<table align="center">
<tr >
<td title="Send and Recieve Spot Reports through the OAMS network">Spotting</td>
</tr>
<tr>
<td>
<input title="Enable / Disable Spotting" type="checkbox" id="GTspotEnable" onclick="setGTspotEnable(this);" />
</td>
</tr>
</table>
</div>
<br/>
<div id="msgSettingsDiv" class="mapItem" style="padding:5px"> <div id="msgSettingsDiv" class="mapItem" style="padding:5px">
<div class="mapItem"> <div class="mapItem">
<table align="center"> <table align="center">

Wyświetl plik

@ -654,9 +654,9 @@ Close GridTracker, lose the text. So write anything down you want to save.
</div> </div>
</div> </div>
<img id="clearSearch" title="Clear Search" onclick='searchBox.value="";KeepUpper(searchBox);' src='/img/trash_24x48.png' style='display:none;top:29px;right:114px;position:absolute;width:30px;cursor:pointer'> <img id="clearSearch" title="Clear Search" onclick='searchBox.value="";KeepUpper(searchBox);' src='/img/trash_24x48.png' style='display:none;top:30px;right:114px;position:absolute;width:30px;cursor:pointer'>
<input id="searchBox" type="text" title="Call Search" class="inputTextValue" style='top:22px;right:43px;position:absolute;vertical-align:top;display:inline-block;overflow:auto;overflow-x:hidden;width:75px;background-color:green;color:yellow' maxlength="100" oninput='KeepUpper(this);'/> <input id="searchBox" type="text" title="Call Search" class="inputTextValue" style='top:26px;right:45px;position:absolute;vertical-align:top;display:inline-block;overflow:auto;overflow-x:hidden;width:75px;background-color:green;color:yellow' maxlength="100" oninput='KeepUpper(this);'/>
<div id="userCount" class="roundBorderValue" style='top:29px;right:3px;position:absolute;vertical-align:top;overflow:hidden;width:40px;margin:0px;padding:0px;text-overflow:ellipsis' title="Station Count" >0</div> <div id="userCount" class="roundBorderValue" style='top:30px;right:3px;position:absolute;vertical-align:top;overflow:hidden;width:40px;margin:0px;padding:0px;text-overflow:ellipsis' title="Station Count" >0</div>
<div id="allCallsignsDiv" class="boxDisplay" style='top:48px;right:2px;bottom:5px;position:fixed;vertical-align:top;display:inline-block;overflow:auto;overflow-x:hidden;width:132px;'><table style='width:100%' id='allCallTable'></table></div> <div id="allCallsignsDiv" class="boxDisplay" style='top:48px;right:2px;bottom:5px;position:fixed;vertical-align:top;display:inline-block;overflow:auto;overflow-x:hidden;width:132px;'><table style='width:100%' id='allCallTable'></table></div>

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 514 514" xmlns="http://www.w3.org/2000/svg">
<path d="M 395.032 253.447 C 395.032 330.49 332.575 392.947 255.532 392.947 C 178.489 392.947 116.032 330.49 116.032 253.447 C 116.032 176.404 178.489 113.947 255.532 113.947 C 332.575 113.947 395.032 176.404 395.032 253.447 Z" style="fill: rgb(6, 119, 224);"/>
<path d="M 117.144 309.886 L 117.144 256.938 L 117.333 216.725 L 117.333 175.94 C 117.415 175.89 117.963 175.868 118.971 175.868 L 122.122 175.868 C 123.338 175.868 124.264 175.797 124.894 175.654 L 135.607 175.153 C 138.335 175.06 140.459 175.01 141.971 175.01 L 155.645 175.01 L 180.976 174.294 C 184.423 174.294 188.222 174.459 192.381 174.795 L 192.948 174.795 C 194.921 174.652 196.162 174.581 196.666 174.581 C 208.134 174.581 217.945 178.731 226.093 187.031 C 230.082 190.988 233.213 196.096 235.482 202.343 C 237.794 208.64 238.948 215.129 238.948 221.805 C 238.948 228.481 238.336 234.162 237.12 238.835 C 235.942 243.557 234.411 247.543 232.52 250.784 C 224.915 263.95 210.233 271.656 188.474 273.895 L 169.886 274.754 C 169.3 290.403 169.003 302.567 169.003 311.246 L 169.066 314.251 L 169.066 322.193 C 168.858 323.102 168.436 323.718 167.806 324.054 L 118.593 324.912 C 117.629 321.814 117.144 316.806 117.144 309.886 Z M 192.507 215.008 C 190.239 208.139 184.145 204.489 174.233 204.06 C 172.803 203.967 170.831 203.917 168.31 203.917 C 167.636 203.917 167.22 213.555 167.05 232.824 L 166.861 240.123 L 167.113 245.99 C 174.17 245.847 180.39 244.151 185.765 240.91 C 191.14 237.668 193.83 231.73 193.83 223.093 C 193.83 219.465 193.389 216.775 192.507 215.008 Z" style="white-space: pre; fill: rgb(208, 0, 208);"/>
<path d="M 18.118 283.702 L 65.964 282.844 C 67.156 282.844 68.169 283.966 69.009 286.204 C 69.803 288.399 70.598 290.136 71.392 291.423 C 73.245 294.569 76.335 296.141 80.656 296.141 C 84.978 296.141 88.466 295.048 91.113 292.853 C 93.76 290.658 95.083 287.848 95.083 284.417 C 95.083 280.935 94.27 278.576 92.635 277.339 C 91.001 276.052 89.24 274.815 87.341 273.621 C 85.402 272.427 82.53 271.498 78.737 270.833 C 74.985 270.168 72.934 269.761 72.583 269.618 L 72.782 269.618 L 67.619 268.188 C 64.264 267.523 61.484 266.808 59.281 266.043 C 44.854 261.847 34.417 256.606 27.977 250.315 C 21.578 243.974 18.382 235.466 18.382 224.792 C 18.382 217.021 19.705 210.043 22.352 203.845 C 25 197.647 28.461 192.599 32.742 188.689 C 45.138 177.443 62.212 171.817 83.965 171.817 C 101.258 171.817 114.872 175.198 124.798 181.968 L 124.666 181.968 C 131.019 186.923 135.368 191.813 137.704 196.624 C 140.085 201.393 141.562 207.298 142.137 214.354 L 139.821 216.857 C 123.938 217.522 109.888 217.858 97.665 217.858 C 93.959 217.858 91.755 216.692 91.047 214.354 C 90.736 213.354 90.405 212.374 90.055 211.423 C 89.213 209.043 86.5 207.849 81.914 207.849 L 81.517 207.849 C 77.99 207.849 74.945 208.757 72.384 210.565 C 69.87 212.374 68.592 214.118 68.546 215.784 C 68.499 217.5 68.831 218.908 69.538 220.002 C 70.247 221.096 70.994 221.983 71.789 222.647 C 72.536 223.312 73.728 223.984 75.362 224.649 C 76.997 225.314 78.228 225.772 79.068 226.008 C 79.862 226.244 81.14 226.63 82.907 227.151 L 86.083 228.009 C 87.321 228.388 91.001 229.368 97.135 230.941 C 103.27 232.513 108.386 234.015 112.489 235.445 L 112.489 235.373 C 125.328 240.042 134.083 245.882 138.762 252.889 C 143.441 259.895 145.777 268.045 145.777 277.339 C 145.777 302.168 132.058 318.282 104.614 325.668 C 96.626 327.812 88.115 329.335 79.068 330.243 C 67.997 330.243 57.03 328.477 46.177 324.953 C 35.324 321.428 28.044 315.709 24.338 307.795 C 21.87 303.934 20.215 300.381 19.375 297.142 C 18.534 293.947 17.833 289.443 17.257 283.63 C 17.475 283.68 17.767 283.702 18.118 283.702 Z" style="white-space: pre; fill: rgb(64, 203, 0);"/>
<path d="M 383.748 204.59 L 383.802 212.379 C 383.802 214.523 383.624 215.595 383.262 215.595 C 383.262 215.595 374.352 215.502 356.532 215.309 C 356.462 221.648 356.424 231.531 356.424 244.966 C 356.424 258.351 356.44 267.669 356.478 272.907 L 356.802 324.646 C 356.548 325.553 356.046 326.054 355.29 326.146 L 339.737 325.861 L 339.629 325.932 L 334.769 325.861 L 321.269 325.861 C 317.635 325.861 314.897 325.882 313.061 325.932 L 311.819 324.431 C 311.781 324.381 311.457 323.881 310.847 322.931 C 310.847 317.164 311.025 304.422 311.387 284.699 L 312.197 232.746 L 312.035 230.245 C 311.673 223.813 311.349 220.004 311.063 218.811 C 310.739 217.574 310.107 216.903 309.173 216.81 C 308.239 216.717 307.536 216.667 307.067 216.667 L 304.151 216.881 L 285.844 216.524 C 285.196 214.809 284.872 211 284.872 205.09 L 285.034 196.443 L 285.034 193.799 C 284.964 183.416 284.888 177.863 284.818 177.148 C 284.888 177.148 285.072 177.199 285.358 177.291 L 379.374 176.219 C 381.281 176.219 382.49 176.412 382.992 176.791 C 383.495 177.127 383.748 177.792 383.748 178.792 L 383.748 204.59 Z" style="white-space: pre; fill: rgb(236, 236, 0);"/>
<path d="M 376.538 283.702 L 424.579 282.844 C 425.775 282.844 426.792 283.966 427.636 286.204 C 428.433 288.399 429.23 290.136 430.028 291.423 C 431.888 294.569 434.992 296.141 439.33 296.141 C 443.669 296.141 447.172 295.048 449.829 292.853 C 452.487 290.658 453.816 287.848 453.816 284.417 C 453.816 280.935 452.999 278.576 451.357 277.339 C 449.716 276.052 447.949 274.815 446.042 273.621 C 444.095 272.427 441.21 271.498 437.403 270.833 C 433.636 270.168 431.576 269.761 431.223 269.618 L 431.423 269.618 L 426.24 268.188 C 422.872 267.523 420.08 266.808 417.868 266.043 C 403.382 261.847 392.903 256.606 386.438 250.315 C 380.012 243.974 376.803 235.466 376.803 224.792 C 376.803 217.021 378.132 210.043 380.79 203.845 C 383.448 197.647 386.923 192.599 391.222 188.689 C 403.668 177.443 420.812 171.817 442.653 171.817 C 460.016 171.817 473.683 175.198 483.65 181.968 L 483.517 181.968 C 489.897 186.923 494.263 191.813 496.609 196.624 C 499 201.393 500.482 207.298 501.06 214.354 L 498.734 216.857 C 482.787 217.522 468.68 217.858 456.407 217.858 C 452.686 217.858 450.473 216.692 449.763 214.354 C 449.45 213.354 449.118 212.374 448.766 211.423 C 447.922 209.043 445.197 207.849 440.593 207.849 L 440.194 207.849 C 436.652 207.849 433.596 208.757 431.025 210.565 C 428.499 212.374 427.217 214.118 427.17 215.784 C 427.123 217.5 427.456 218.908 428.167 220.002 C 428.878 221.096 429.629 221.983 430.426 222.647 C 431.177 223.312 432.373 223.984 434.015 224.649 C 435.656 225.314 436.892 225.772 437.736 226.008 C 438.533 226.244 439.815 226.63 441.589 227.151 L 444.779 228.009 C 446.022 228.388 449.716 229.368 455.876 230.941 C 462.036 232.513 467.172 234.015 471.292 235.445 L 471.292 235.373 C 484.183 240.042 492.973 245.882 497.671 252.889 C 502.369 259.895 504.714 268.045 504.714 277.339 C 504.714 302.168 490.94 318.282 463.384 325.668 C 455.364 327.812 446.819 329.335 437.736 330.243 C 426.619 330.243 415.609 328.477 404.711 324.953 C 393.813 321.428 386.505 315.709 382.783 307.795 C 380.305 303.934 378.643 300.381 377.799 297.142 C 376.956 293.947 376.252 289.443 375.673 283.63 C 375.893 283.68 376.185 283.702 376.538 283.702 Z" style="white-space: pre; fill: rgb(142, 2, 217);"/>
<circle style="fill: rgb(236, 236, 0);" cx="63.977" cy="447.836" r="50.549"/>
<circle style="fill: rgb(0, 208, 0);" cx="407.92" cy="420.495" r="50.549"/>
<circle style="fill: rgb(0, 208, 208);" cx="111.002" cy="80.38" r="50.549"/>
<circle style="fill: rgb(208, 0, 0);" cx="440.728" cy="67.258" r="50.549"/>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 7.3 KiB

Wyświetl plik

@ -90,8 +90,8 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
if ( activeAdifLogMode ) if ( activeAdifLogMode )
{ {
var confirmed = false; var confirmed = false;
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE"); var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS"); var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS").toUpperCase();
var finalVucc = []; var finalVucc = [];
var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_","/"); var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_","/");
var finalDEcall = findAdiField(activeAdifArray[x], "STATION_CALLSIGN").replace("_","/"); var finalDEcall = findAdiField(activeAdifArray[x], "STATION_CALLSIGN").replace("_","/");
@ -205,8 +205,8 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
} }
else else
{ {
var finalMyGrid = findAdiField(activeAdifArray[x], "MY_GRIDSQUARE"); var finalMyGrid = findAdiField(activeAdifArray[x], "MY_GRIDSQUARE").toUpperCase();
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE"); var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
var finalDXcall = findAdiField(activeAdifArray[x], "CALL"); var finalDXcall = findAdiField(activeAdifArray[x], "CALL");
var finalDEcall = findAdiField(activeAdifArray[x], "OPERATOR"); var finalDEcall = findAdiField(activeAdifArray[x], "OPERATOR");
var finalRSTsent = findAdiField(activeAdifArray[x], "APP_PSKREP_SNR"); var finalRSTsent = findAdiField(activeAdifArray[x], "APP_PSKREP_SNR");
@ -425,76 +425,17 @@ function lotwCallback(buffer, flag)
var shouldAppend = false; var shouldAppend = false;
g_fromDirectCallNoFileDialog = true; g_fromDirectCallNoFileDialog = true;
var lastQsl = findAdiField(rawAdiBuffer, "APP_LoTW_LASTQSL");
if ( lastQsl.length > 0 ) rawAdiBuffer = cleanAndPrepADIF("lotw.adif",rawAdiBuffer, true,shouldAppend);
{
var dateTime = new Date(Date.UTC(lastQsl.substr(0,4), parseInt(lastQsl.substr(5,2))-1,lastQsl.substr(8,2), lastQsl.substr(11,2), lastQsl.substr(14,2),lastQsl.substr(17,2)));
dateTime.setSeconds( dateTime.getSeconds() + 1 );
var newQsl = getUTCString(dateTime);
if ( !("lotw_qsl" in g_adifLogSettings.downloads ) )
{
g_adifLogSettings.downloads["lotw_qsl"] = Object();
}
g_adifLogSettings.downloads["lotw_qsl"][lotwLogin.value] = newQsl;
localStorage.adifLogSettings = JSON.stringify(g_adifLogSettings);
}
shouldAppend = shouldWeAppendInsteadOfCreate("lotw_QSL.adif"); rawAdiBuffer = tryToWriteAdifToDocFolder("lotw.adif",rawAdiBuffer, shouldAppend);
rawAdiBuffer = cleanAndPrepADIF("lotw_QSL.adif",rawAdiBuffer, true,shouldAppend); onAdiLoadComplete(rawAdiBuffer, true, "lotw.adif", true);
rawAdiBuffer = tryToWriteAdifToDocFolder("lotw_QSL.adif",rawAdiBuffer, shouldAppend);
onAdiLoadComplete(rawAdiBuffer, true, "lotw_QSL.adif", true);
} }
} }
} }
function lotwQsoCallback(buffer, flag)
{
var rawAdiBuffer = String(buffer);
if ( rawAdiBuffer.indexOf("password incorrect") > -1 )
{
if ( flag )
lotwTestResult.innerHTML = "Invalid";
}
else
{
if ( flag )
lotwTestResult.innerHTML = "Passed";
else
{
var shouldAppend = false;
g_fromDirectCallNoFileDialog = true;
var lastQsl = findAdiField(rawAdiBuffer, "APP_LoTW_LASTQSORX");
if ( lastQsl.length > 0 )
{
var dateTime = new Date(Date.UTC(lastQsl.substr(0,4), parseInt(lastQsl.substr(5,2))-1,lastQsl.substr(8,2), lastQsl.substr(11,2), lastQsl.substr(14,2),lastQsl.substr(17,2)));
dateTime.setSeconds( dateTime.getSeconds() + 1 );
var newQsl = getUTCString(dateTime);
if ( !("lotw_qso" in g_adifLogSettings.downloads ) )
{
g_adifLogSettings.downloads["lotw_qso"] = Object();
}
g_adifLogSettings.downloads["lotw_qso"][lotwLogin.value] = newQsl;
localStorage.adifLogSettings = JSON.stringify(g_adifLogSettings);
}
shouldAppend = shouldWeAppendInsteadOfCreate("lotw_QSO.adif");
rawAdiBuffer = cleanAndPrepADIF("lotw_QSO.adif",rawAdiBuffer, true,shouldAppend);
rawAdiBuffer = tryToWriteAdifToDocFolder("lotw_QSO.adif",rawAdiBuffer, shouldAppend);
onAdiLoadComplete(rawAdiBuffer, true, "lotw_QSO.adif", true);
}
}
}
function shouldWeAppendInsteadOfCreate( filename ) function shouldWeAppendInsteadOfCreate( filename )
@ -545,51 +486,13 @@ function grabLOtWLog(test)
lotwTestResult.innerHTML = "Testing"; lotwTestResult.innerHTML = "Testing";
lastQSLDateString = "&qso_qslsince=2100-01-01"; lastQSLDateString = "&qso_qslsince=2100-01-01";
} }
else
{ getABuffer("https://lotw.arrl.org/lotwuser/lotwreport.adi?login=" + lotwLogin.value + "&password=" + encodeURIComponent(lotwPassword.value) +"&qso_query=1&qso_qsldetail=yes&qso_withown=yes&qso_qsl=yes"+lastQSLDateString, lotwCallback, test,"https",443, lotwLogImg,"g_isGettingLOTW", 120000);
if ( !("lotw_qsl" in g_adifLogSettings.downloads ) )
{
g_adifLogSettings.downloads["lotw_qsl"] = Object();
localStorage.adifLogSettings = JSON.stringify(g_adifLogSettings);
}
if ( lotwLogin.value in g_adifLogSettings.downloads["lotw_qsl"] && shouldWeAppendInsteadOfCreate("lotw_QSL.adif") )
{
lastQSLDateString="&qso_qslsince="+g_adifLogSettings.downloads["lotw_qsl"][lotwLogin.value];
}
}
getABuffer("https://lotw.arrl.org/lotwuser/lotwreport.adi?login=" + lotwLogin.value + "&password=" + encodeURIComponent(lotwPassword.value) +"&qso_query=1&qso_qsldetail=yes&qso_withown=yes&qso_qsl=yes"+lastQSLDateString, lotwCallback, test,"https",443, lotwLogImg,"g_isGettingLOTW", 120000, "g_lotwCount");
} }
} }
var g_isGettingLOTWQSO = false;
function grabLOtWLogQSO(test)
{
if ( g_isGettingLOTWQSO == false )
{
var lastQSODateString = "&qso_qsorxsince=1900-01-01";
if ( test )
{
lotwTestResult.innerHTML = "Testing";
lastQSODateString = "&qso_qsorxsince=2100-01-01";
}
else
{
if ( !("lotw_qso" in g_adifLogSettings.downloads ) )
{
g_adifLogSettings.downloads["lotw_qso"] = Object();
localStorage.adifLogSettings = JSON.stringify(g_adifLogSettings);
}
if ( lotwLogin.value in g_adifLogSettings.downloads["lotw_qso"] && shouldWeAppendInsteadOfCreate("lotw_QSO.adif") )
{
lastQSODateString="&qso_qsorxsince="+g_adifLogSettings.downloads["lotw_qso"][lotwLogin.value];
}
}
getABuffer("https://lotw.arrl.org/lotwuser/lotwreport.adi?login=" + lotwLogin.value + "&password=" + encodeURIComponent(lotwPassword.value) +"&qso_query=1&qso_qsldetail=yes&qso_withown=yes&qso_qsl=no"+lastQSODateString, lotwQsoCallback, test,"https",443, lotwLogImg,"g_isGettingLOTWQSO", 120000, "g_lotwCount");
}
}
function qrzCallback(buffer, flag) function qrzCallback(buffer, flag)
@ -1230,14 +1133,8 @@ function startupAdifLoadCheck()
if (g_appSettings.gtFlagImgSrc == 1) if (g_appSettings.gtFlagImgSrc == 1)
showGtFlags(); showGtFlags();
if ( loadPsk24CheckBox.checked == true )
grabPsk24();
if ( loadLOTWCheckBox.checked == true ) if ( loadLOTWCheckBox.checked == true )
{
grabLOtWLogQSO(false);
grabLOtWLog(false); grabLOtWLog(false);
}
if ( loadQRZCheckBox.checked == true ) if ( loadQRZCheckBox.checked == true )
grabQrzComLog(false); grabQrzComLog(false);
@ -1245,10 +1142,13 @@ function startupAdifLoadCheck()
if ( loadClubCheckBox.checked == true ) if ( loadClubCheckBox.checked == true )
grabClubLog(false); grabClubLog(false);
if ( loadPsk24CheckBox.checked == true )
grabPsk24();
} }
} }
function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFlag , timeoutX, stringOfCounter = null ) function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFlag , timeoutX )
{ {
var url = require('url'); var url = require('url');
var http = require(mode); var http = require(mode);
@ -1265,13 +1165,13 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
} }
if ( typeof stringOfFlag != "undefined" ) if ( typeof stringOfFlag != "undefined" )
window[stringOfFlag] = true; window[stringOfFlag] = true;
if ( typeof imgToGray != "undefined" && imgToGray.style.webkitFilter == "" ) if ( typeof imgToGray != "undefined" )
imgToGray.style.webkitFilter = "invert(100%) grayscale(1)";
if ( stringOfCounter != null )
{ {
window[stringOfCounter]++; imgToGray.parentNode.style.background = "linear-gradient(grey 0%, black 0% 100% )";
imgToGray.style.webkitFilter = "invert(100%) grayscale(1)";
} }
var req = http.request(options, function(res) { var req = http.request(options, function(res) {
var fsize = res.headers['content-length']; var fsize = res.headers['content-length'];
var cookies = null; var cookies = null;
@ -1285,6 +1185,17 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
else else
fileBuffer += data; fileBuffer += data;
if ( typeof imgToGray != "undefined" )
{
var percent = 0;
if ( fsize > 0 )
percent = parseInt( (fileBuffer.length/fsize) * 100 ) ;
else
percent = parseInt( (( fileBuffer.length / 100000 ) * 100 ) % 100 );
imgToGray.parentNode.style.background = "linear-gradient(grey "+percent+"%, black "+Number(percent+10)+"% 100% )";
}
}).on('end', function() { }).on('end', function() {
if (typeof callback === "function") { if (typeof callback === "function") {
// Call it, since we have confirmed it is callable // Call it, since we have confirmed it is callable
@ -1293,44 +1204,24 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
{ {
window[stringOfFlag] = false; window[stringOfFlag] = false;
} }
if ( stringOfCounter == null && typeof imgToGray != "undefined") if ( typeof imgToGray != "undefined")
{ {
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
} }
if ( stringOfCounter != null && typeof imgToGray != "undefined" )
{
window[stringOfCounter]--;
if ( window[stringOfCounter] == 0 )
{
imgToGray.style.webkitFilter = "";
}
if ( window[stringOfCounter] < 0 )
{
window[stringOfCounter] = 0;
}
}
} }
}).on('error', function() { }).on('error', function() {
if ( typeof stringOfFlag != "undefined" ) if ( typeof stringOfFlag != "undefined" )
{ {
window[stringOfFlag] = false; window[stringOfFlag] = false;
} }
if ( stringOfCounter == null && typeof imgToGray != "undefined") if ( typeof imgToGray != "undefined")
{ {
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
} }
if ( stringOfCounter != null && typeof imgToGray != "undefined" )
{
window[stringOfCounter]--;
if ( window[stringOfCounter] == 0 )
{
imgToGray.style.webkitFilter = "";
}
if ( window[stringOfCounter] < 0 )
{
window[stringOfCounter] = 0;
}
}
}); });
}); });
@ -1342,23 +1233,17 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
}); });
}); });
req.on('error', function(err) { req.on('error', function() {
if ( typeof stringOfFlag != "undefined" ) if ( typeof stringOfFlag != "undefined" )
{ {
window[stringOfFlag] = false; window[stringOfFlag] = false;
} }
if ( stringOfCounter == null && typeof imgToGray != "undefined") if ( typeof imgToGray != "undefined")
{ {
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
} }
if ( stringOfCounter != null && typeof imgToGray != "undefined" )
{
window[stringOfCounter]--;
if ( window[stringOfCounter] == 0 )
{
imgToGray.style.webkitFilter = "";
}
}
}); });
@ -1386,7 +1271,11 @@ function getAPostBuffer(file_url, callback, flag, mode, port, theData, imgToGra
window[stringOfFlag] = true; window[stringOfFlag] = true;
if ( typeof imgToGray != "undefined" )
{
imgToGray.parentNode.style.background = "linear-gradient(grey 0%, black 0% 100% )";
imgToGray.style.webkitFilter = "invert(100%) grayscale(1)"; imgToGray.style.webkitFilter = "invert(100%) grayscale(1)";
}
var req = http.request(options, function(res) { var req = http.request(options, function(res) {
var fsize = res.headers['content-length']; var fsize = res.headers['content-length'];
@ -1402,22 +1291,40 @@ function getAPostBuffer(file_url, callback, flag, mode, port, theData, imgToGra
else else
fileBuffer += data; fileBuffer += data;
if ( typeof imgToGray != "undefined" )
{
var percent = 0;
if ( fsize > 0 )
percent = parseInt( (fileBuffer.length/fsize) * 100 ) ;
else
percent = parseInt( (( fileBuffer.length / 100000 ) * 100 ) % 100 );
imgToGray.parentNode.style.background = "linear-gradient(grey "+percent+"%, black "+Number(percent+10)+"% 100% )";
}
}).on('end', function() { }).on('end', function() {
if (typeof callback === "function") { if (typeof callback === "function") {
// Call it, since we have confirmed it is callable // Call it, since we have confirmed it is callable
callback(fileBuffer, flag, cookies); callback(fileBuffer, flag, cookies);
window[stringOfFlag] = false; window[stringOfFlag] = false;
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
} }
}
}).on('error', function() { }).on('error', function() {
window[stringOfFlag] = false; window[stringOfFlag] = false;
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
}
}); });
}); });
req.on('socket', function (socket) req.on('socket', function (socket)
{ {
socket.setTimeout(60000);
socket.on('timeout', function() socket.on('timeout', function()
{ {
req.abort(); req.abort();
@ -1426,7 +1333,11 @@ function getAPostBuffer(file_url, callback, flag, mode, port, theData, imgToGra
req.on('error', function(err) { req.on('error', function(err) {
window[stringOfFlag] = false; window[stringOfFlag] = false;
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = ""; imgToGray.style.webkitFilter = "";
}
}); });
req.write(postData); req.write(postData);

Wyświetl plik

@ -642,7 +642,7 @@ function processulsCallsigns(data, flag, cookies, starting, finished)
g_ulsWhenDate = 0; g_ulsWhenDate = 0;
g_ulsCallsignsCount = 0; g_ulsCallsignsCount = 0;
ulsUpdatedTd.innerHTML = "<b><i>Processing...</i></b>"; ulsUpdatedTd.innerHTML = "<b><i>Processing...</i></b>";
tx.executeSql('CREATE TABLE IF NOT EXISTS calls ( callsign TEXT PRIMARY KEY, zip, state)'); tx.executeSql('delete from calls');
} }
for (var x in lines ) for (var x in lines )

Wyświetl plik

@ -89,7 +89,8 @@ var def_appSettings =
"workingCallsignEnable" : false, "workingCallsignEnable" : false,
"workingCallsigns" : {}, "workingCallsigns" : {},
"workingDateEnable": false, "workingDateEnable": false,
"workingDate" : 0 "workingDate" : 0,
"gtSpotEnable" : true
}; };
var def_mapSettings = var def_mapSettings =

Wyświetl plik

@ -1,8 +1,8 @@
// GridTracker ©2020 N0TTL // GridTracker ©2020 N0TTL
var gtComment1 = "GridTracker is not open source, you may not change, modify or 'borrow' code for your needs that is redistributed in any form without first asking and receiving permission from N0TTL *and* N2VFL"; var gtComment1 = "GridTracker is not open source, you may not change, modify or 'borrow' code for your needs that is redistributed in any form without first asking and receiving permission from N0TTL *and* N2VFL";
var gtComment2 = "Third party libraries and functions used are seperated to third-party.js or their respective lib .js files, the GT close-source directive does not apply to these files of course"; var gtComment2 = "Third party libraries and functions used are seperated to third-party.js or their respective lib .js files, the GT close-source directive does not apply to these files of course";
var gtVersion = 1200906; var gtVersion = 1200922;
var gtBeta = ""; var gtBeta = "Elsa";
var g_startVersion = 0; var g_startVersion = 0;
@ -287,7 +287,7 @@ function saveAndCloseApp()
g_callRosterWindowHandle.window.close(true); g_callRosterWindowHandle.window.close(true);
} }
catch (e) { catch (e) {
console.log(e);
} }
nw.App.quit(); nw.App.quit();
} }
@ -387,16 +387,19 @@ var g_cqZones = {};
var g_wacZones = {}; var g_wacZones = {};
var g_wasZones = {}; var g_wasZones = {};
var g_ituZones = {}; var g_ituZones = {};
var g_gtFlagPins = {};
var g_dxccCount = {}; var g_dxccCount = {};
var g_tracker = {};
initQSOdata(); initQSOdata();
var g_tracker = { "worked": {} , "confirmed": {} };
function initQSOdata() { function initQSOdata() {
g_tracker = { "worked": {} , "confirmed": {} };
g_tracker.worked = {};
g_tracker.confirmed = {};
g_tracker.worked.band = {}; g_tracker.worked.band = {};
g_tracker.worked.call = {}; g_tracker.worked.call = {};
@ -574,9 +577,7 @@ g_viewInfo[6] = ["g_countyData", "US Counties",0,0,3220];
g_viewInfo[7] = ["g_us48Data", "US Continental Grids",0,0,488]; g_viewInfo[7] = ["g_us48Data", "US Continental Grids",0,0,488];
var g_spotImageArray = Array();
g_spotImageArray[0] = "./img/psk_spots_off.png";
g_spotImageArray[1] = "./img/psk_spots.png";
var g_soundCard = g_appSettings.soundCard; var g_soundCard = g_appSettings.soundCard;
@ -1263,7 +1264,7 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
if (finalDxcc < 1) if (finalDxcc < 1)
finalDxcc = callsignToDxcc(finalDXcall); finalDxcc = callsignToDxcc(finalDXcall);
var hash = finalDXcall + band + mode; hash = finalDXcall + band + mode;
if (notQso) { if (notQso) {
if (hash in g_liveCallsigns) if (hash in g_liveCallsigns)
callsign = g_liveCallsigns[hash]; callsign = g_liveCallsigns[hash];
@ -1645,10 +1646,10 @@ function remove_duplicates(arr) {
} }
function splitNoParen(s){ function splitNoParen(s){
let results = []; var results = [];
let next; var next;
let str = ''; var str = '';
let left = 0, right = 0; var left = 0, right = 0;
function keepResult() { function keepResult() {
results.push(str.trim()); results.push(str.trim());
@ -2835,7 +2836,7 @@ function trophyOver(feature) {
wc1Table += "<tr>"; wc1Table += "<tr>";
wc1Table += "<td align=right><font color='orange'>Mode</font></td>"; wc1Table += "<td align=right><font color='orange'>Mode</font></td>";
wc1Table += "<td align=left><table class='subtable'>"; wc1Table += "<td align=left><table class='subtable'>";
var keys = Object.keys(infoObject.worked_modes).sort(); keys = Object.keys(infoObject.worked_modes).sort();
for (key in keys) { for (key in keys) {
wc1Table += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.worked_modes[keys[key]] + ") " + "</font></td></tr>"; wc1Table += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.worked_modes[keys[key]] + ") " + "</font></td></tr>";
} }
@ -2860,7 +2861,7 @@ function trophyOver(feature) {
wcTable += "<tr>"; wcTable += "<tr>";
wcTable += "<td align=right><font color='orange'>Mode</font></td>"; wcTable += "<td align=right><font color='orange'>Mode</font></td>";
wcTable += "<td align=left><table class='subtable'>"; wcTable += "<td align=left><table class='subtable'>";
var keys = Object.keys(infoObject.confirmed_modes).sort(); keys = Object.keys(infoObject.confirmed_modes).sort();
for (key in keys) { for (key in keys) {
wcTable += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.confirmed_modes[keys[key]] + ") " + "</font></td></tr>"; wcTable += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.confirmed_modes[keys[key]] + ") " + "</font></td></tr>";
} }
@ -3140,7 +3141,7 @@ function reloadInfo( bandOrMode ) {
function twoWideToLatLong(qth) function twoWideToLatLong(qth)
{ {
var qth = qth.toUpperCase(); qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65; var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65; var b = qth.charCodeAt(1) - 65;
@ -3162,7 +3163,7 @@ function twoWideToLatLong(qth)
} }
function squareToLatLongAll(qth) { function squareToLatLongAll(qth) {
var qth = qth.toUpperCase(); qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65; var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65; var b = qth.charCodeAt(1) - 65;
var c = qth.charCodeAt(2) - 48; var c = qth.charCodeAt(2) - 48;
@ -3204,7 +3205,7 @@ function squareToLatLongAll(qth) {
} }
function squareToLatLong(qth) { function squareToLatLong(qth) {
var qth = qth.toUpperCase(); qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65; var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65; var b = qth.charCodeAt(1) - 65;
var c = qth.charCodeAt(2) - 48; var c = qth.charCodeAt(2) - 48;
@ -4168,6 +4169,7 @@ function clearLogFilesAndCounts()
{ {
tryToDeleteLog("lotw_QSL.adif"); tryToDeleteLog("lotw_QSL.adif");
tryToDeleteLog("lotw_QSO.adif"); tryToDeleteLog("lotw_QSO.adif");
tryToDeleteLog("lotw.adif");
tryToDeleteLog("qrz.adif"); tryToDeleteLog("qrz.adif");
tryToDeleteLog("clublog.adif"); tryToDeleteLog("clublog.adif");
g_adifLogSettings.downloads = {}; g_adifLogSettings.downloads = {};
@ -5607,13 +5609,16 @@ function handleWsjtxStatus(newMessage) {
setStatsDiv("decodeLastListDiv", worker); setStatsDiv("decodeLastListDiv", worker);
setStatsDivHeight("decodeLastListDiv", ( getStatsWindowHeight() + 26 ) + "px" ); setStatsDivHeight("decodeLastListDiv", ( getStatsWindowHeight() + 26 ) + "px" );
if ( g_appSettings.gtShareEnable === true && Object.keys(g_spotCollector).length > 0)
{
gtChatSendSpots( g_spotCollector );
g_spotCollector = {};
}
} }
txrxdec.style.backgroundColor = 'Green'; txrxdec.style.backgroundColor = 'Green';
txrxdec.style.borderColor = 'GreenYellow'; txrxdec.style.borderColor = 'GreenYellow';
txrxdec.innerHTML = "RECEIVE"; txrxdec.innerHTML = "RECEIVE";
} }
if (newMessage.TxEnabled == 1) if (newMessage.TxEnabled == 1)
@ -5791,6 +5796,8 @@ function fitViewBetweenPoints( points, maxZoom = 20) {
delete line; delete line;
} }
var g_spotCollector = {};
function handleWsjtxDecode(newMessage) { function handleWsjtxDecode(newMessage) {
if (g_ignoreMessages == 1 || g_map == null) if (g_ignoreMessages == 1 || g_map == null)
return; return;
@ -5879,6 +5886,12 @@ function handleWsjtxDecode(newMessage) {
if (hash in g_liveCallsigns) if (hash in g_liveCallsigns)
callsign = g_liveCallsigns[hash]; callsign = g_liveCallsigns[hash];
if ( validQTH == "" && msgDEcallsign in g_gtCallsigns )
{
if ( g_gtFlagPins[g_gtCallsigns[msgDEcallsign]].grid.length > 0 )
validQTH = g_gtFlagPins[g_gtCallsigns[msgDEcallsign]].grid;
}
var canPath = false; var canPath = false;
if ( if (
(g_appSettings.gtBandFilter.length == 0 || (g_appSettings.gtBandFilter == 'auto' && newMessage.OB == myBand) || newMessage.OB == g_appSettings.gtBandFilter) && (g_appSettings.gtBandFilter.length == 0 || (g_appSettings.gtBandFilter == 'auto' && newMessage.OB == myBand) || newMessage.OB == g_appSettings.gtBandFilter) &&
@ -6040,6 +6053,10 @@ function handleWsjtxDecode(newMessage) {
lastMessageWasInfo = true; lastMessageWasInfo = true;
} }
if ( g_appSettings.gtSpotEnable === true && callsign.DEcall in g_gtCallsigns )
{
g_spotCollector[g_gtCallsigns[callsign.DEcall]] = callsign.RSTsent;
}
} }
if (callsign.dxcc != -1) if (callsign.dxcc != -1)
@ -6261,7 +6278,7 @@ function handleWsjtxClear(newMessage)
{ {
for ( var hash in g_liveCallsigns ) for ( var hash in g_liveCallsigns )
{ {
if ( g_liveCallsigns[hash].instance == newMessage.instance ) if ( g_liveCallsigns[hash].instance == newMessage.instance || g_liveCallsigns[hash].mode == g_instances[ newMessage.instance].status.MO )
delete g_liveCallsigns[hash]; delete g_liveCallsigns[hash];
} }
for (var call in g_callRoster) { for (var call in g_callRoster) {
@ -6800,7 +6817,7 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
bands[list[key].band] = list[key].band; bands[list[key].band] = list[key].band;
modes[list[key].mode] = list[key].mode; modes[list[key].mode] = list[key].mode;
var pp = ( g_dxccToGeoData[list[key].dxcc] in g_worldGeoData ? g_worldGeoData[g_dxccToGeoData[list[key].dxcc]].pp : "?"); var pp = ( g_dxccToGeoData[list[key].dxcc] in g_worldGeoData ? g_worldGeoData[g_dxccToGeoData[list[key].dxcc]].pp : "?");
dxccs[list[key].dxcc] = g_dxccToAltName[list[key].dxcc] + " ("+pp+")"; dxccs[g_dxccToAltName[list[key].dxcc] + " ("+pp+")"] = list[key].dxcc;
} }
if (g_filterBand != "Mixed" ) if (g_filterBand != "Mixed" )
@ -6867,12 +6884,7 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
} }
ObjectCount = list.length;
var ObjectCount = list.length;
var g_qsoPages = parseInt(ObjectCount / g_qsoItemsPerPage) + 1; var g_qsoPages = parseInt(ObjectCount / g_qsoItemsPerPage) + 1;
@ -6971,7 +6983,7 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
option.value = "Mixed"; option.value = "Mixed";
option.text = "Mixed"; option.text = "Mixed";
newSelect.appendChild(option); newSelect.appendChild(option);
Object.keys(bands).sort().forEach(function(key) { Object.keys(bands).sort(function(a, b) { return parseInt(a) - parseInt(b); }).forEach(function(key) {
var option = document.createElement("option"); var option = document.createElement("option");
option.value = key; option.value = key;
option.text = key; option.text = key;
@ -6982,17 +6994,17 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select"); newSelect = document.createElement("select");
newSelect.id = "modeFilter"; newSelect.id = "modeFilter";
newSelect.title = "Mode Filter"; newSelect.title = "Mode Filter";
var option = document.createElement("option"); option = document.createElement("option");
option.value = "Mixed"; option.value = "Mixed";
option.text = "Mixed"; option.text = "Mixed";
newSelect.appendChild(option); newSelect.appendChild(option);
var option = document.createElement("option"); option = document.createElement("option");
option.value = "Phone"; option.value = "Phone";
option.text = "Phone"; option.text = "Phone";
newSelect.appendChild(option); newSelect.appendChild(option);
var option = document.createElement("option"); option = document.createElement("option");
option.value = "Digital"; option.value = "Digital";
option.text = "Digital"; option.text = "Digital";
newSelect.appendChild(option); newSelect.appendChild(option);
@ -7009,15 +7021,16 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select"); newSelect = document.createElement("select");
newSelect.id = "dxccFilter"; newSelect.id = "dxccFilter";
newSelect.title = "DXCC Filter"; newSelect.title = "DXCC Filter";
var option = document.createElement("option"); option = document.createElement("option");
option.value = 0; option.value = 0;
option.text = "All"; option.text = "All";
newSelect.appendChild(option); newSelect.appendChild(option);
Object.keys(dxccs).sort(myDxccIntCompare).forEach(function(key) {
Object.keys(dxccs).sort().forEach(function(key) {
var option = document.createElement("option"); var option = document.createElement("option");
option.value = key; option.value = dxccs[key];
option.text = dxccs[key]; option.text = key;
newSelect.appendChild(option); newSelect.appendChild(option);
}); });
@ -7026,17 +7039,17 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select"); newSelect = document.createElement("select");
newSelect.id = "qslFilter"; newSelect.id = "qslFilter";
newSelect.title = "QSL Filter"; newSelect.title = "QSL Filter";
var option = document.createElement("option"); option = document.createElement("option");
option.value = "All"; option.value = "All";
option.text = "All"; option.text = "All";
newSelect.appendChild(option); newSelect.appendChild(option);
var option = document.createElement("option"); option = document.createElement("option");
option.value = true; option.value = true;
option.text = "Yes"; option.text = "Yes";
newSelect.appendChild(option); newSelect.appendChild(option);
var option = document.createElement("option"); option = document.createElement("option");
option.value = false; option.value = false;
option.text = "No"; option.text = "No";
newSelect.appendChild(option); newSelect.appendChild(option);
@ -7623,6 +7636,12 @@ function openLookupWindow( show = false ) {
g_lookupWindowHandle.window.g_isShowing = true; g_lookupWindowHandle.window.g_isShowing = true;
g_lookupWindowHandle.window.saveScreenSettings(); g_lookupWindowHandle.window.saveScreenSettings();
} }
else
{
g_lookupWindowHandle.hide();
g_lookupWindowHandle.window.g_isShowing = false;
g_lookupWindowHandle.window.saveScreenSettings();
}
} }
catch (e){} catch (e){}
} }
@ -8584,7 +8603,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'>Modes</font></td>";
wc1Table += "<td align=left><table class='subtable'>"; wc1Table += "<td align=left><table class='subtable'>";
var keys = Object.keys(infoObject.worked_modes).sort(); keys = Object.keys(infoObject.worked_modes).sort();
for (var key in keys) { for (var key in keys) {
wc1Table += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.worked_modes[keys[key]] + ")</font></td></tr>"; wc1Table += "<tr><td align=right>" + keys[key] + "</td><td align=left> <font color='white'>(" + infoObject.worked_modes[keys[key]] + ")</font></td></tr>";
} }
@ -9093,6 +9112,13 @@ function setUdpForwardEnable(checkbox) {
g_appSettings.wsjtForwardUdpEnable = checkbox.checked; g_appSettings.wsjtForwardUdpEnable = checkbox.checked;
} }
function setGTspotEnable(checkbox) {
g_appSettings.gtSpotEnable = checkbox.checked;
g_gtLiveStatusUpdate = true;
}
function setMsgEnable(checkbox) { function setMsgEnable(checkbox) {
g_appSettings.gtMsgEnable = checkbox.checked; g_appSettings.gtMsgEnable = checkbox.checked;
if (g_appSettings.gtShareEnable == true) { if (g_appSettings.gtShareEnable == true) {
@ -9124,9 +9150,7 @@ function checkForNewVersion(showUptoDate) {
"https", 443); "https", 443);
} }
function findBandInBandArray(obj) {
return (obj.band == g_searchBand);
}
function renderBandActivity() function renderBandActivity()
@ -9139,15 +9163,15 @@ function renderBandActivity()
var bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "4m","2m"]; var bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "4m","2m"];
if ( g_myDXCC in g_callsignDatabaseUSplus ) if ( g_myDXCC in g_callsignDatabaseUSplus )
bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "2m"]; bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "2m"];
var bandData = Array(); var bandData = {};
var maxValue = 0; var maxValue = 0;
for (var i = 0; i < bands.length; i++) { for (var i = 0; i < bands.length; i++) {
bandData[bandData.length] = Array(); bandData[bands[i]] = {};
bandData[bandData.length - 1].band = bands[i];
bandData[bandData.length - 1].score = 0; bandData[bands[i]].score = 0;
bandData[bandData.length - 1].spots = 0; bandData[bands[i]].spots = 0;
bandData[bandData.length - 1].tx = 0; bandData[bands[i]].tx = 0;
bandData[bandData.length - 1].rx = 0; bandData[bands[i]].rx = 0;
} }
for (var x = 0; x < lines.length; x++) { for (var x = 0; x < lines.length; x++) {
var firstChar = lines[x].charCodeAt(0); var firstChar = lines[x].charCodeAt(0);
@ -9155,9 +9179,11 @@ function renderBandActivity()
{ {
var values = lines[x].trim().split(" "); var values = lines[x].trim().split(" ");
var band = Number(Number(values[0]) / 1000000).formatBand(); var band = Number(Number(values[0]) / 1000000).formatBand();
g_searchBand = band;
var place = bandData.find(findBandInBandArray); if ( band in bandData )
if (typeof place != 'undefined') { {
var place = bandData[band];
place.score += Number(values[1]); place.score += Number(values[1]);
place.spots += Number(values[2]); place.spots += Number(values[2]);
place.tx += Number(values[3]); place.tx += Number(values[3]);
@ -9166,7 +9192,9 @@ function renderBandActivity()
maxValue = place.score; maxValue = place.score;
if (maxValue < place.spots) if (maxValue < place.spots)
maxValue = place.spots; maxValue = place.spots;
} }
} }
} }
@ -9174,21 +9202,20 @@ function renderBandActivity()
if (maxValue > 26) { if (maxValue > 26) {
scaleFactor = 26 / maxValue; scaleFactor = 26 / maxValue;
} }
for (var x = 0; x < bandData.length; x++) { for (var band in bandData ) {
var blockMyBand = ""; var blockMyBand = "";
if (bandData[x].band == myBand) if (band == myBand)
blockMyBand = " class='myBand' "; blockMyBand = " class='myBand' ";
{ {
var title = "Score: " + bandData[x].score + " Spots: " + bandData[x].spots + "\nTx: " + bandData[ var title = "Score: " + bandData[band].score + " Spots: " + bandData[band].spots + "\nTx: " + bandData[
x].tx + "\tRx: " + bandData[x].rx; band].tx + "\tRx: " + bandData[band].rx;
buffer += "<div title='" + title + "' style='display:inline-block;margin:1px;' class='aBand'>"; buffer += "<div title='" + title + "' style='display:inline-block;margin:1px;' class='aBand'>";
buffer += "<div style='height: " + ((bandData[x].score * scaleFactor) + 1) + buffer += "<div style='height: " + ((bandData[band].score * scaleFactor) + 1) +
"px;' class='barTx'></div>"; "px;' class='barTx'></div>";
buffer += "<div style='height: " + ((bandData[x].spots * scaleFactor) + 1) + buffer += "<div style='height: " + ((bandData[band].spots * scaleFactor) + 1) +
"px;' class='barRx'></div>"; "px;' class='barRx'></div>";
buffer += "<div style='font-size:10px' " + blockMyBand + ">" + bandData[x].band.substr(0, buffer += "<div style='font-size:10px' " + blockMyBand + ">" + parseInt(band) + "</div>";
bandData[x].band.length - 1) + "</div>";
buffer += "</div>"; buffer += "</div>";
} }
} }
@ -9259,8 +9286,9 @@ function getIniFromApp(appName) {
result.appName = appName; result.appName = appName;
var wsjtxCfgPath = ""; var wsjtxCfgPath = "";
var data = String(nw.App.dataPath); var data = String(nw.App.dataPath);
var end = 0;
if (g_platform == "windows") { if (g_platform == "windows") {
var end = data.indexOf("GridTracker\\User Data\\Default"); end = data.indexOf("GridTracker\\User Data\\Default");
if (end > -1) { if (end > -1) {
wsjtxCfgPath = data.substr(0, end) + appName + "\\" + appName + ".ini"; wsjtxCfgPath = data.substr(0, end) + appName + "\\" + appName + ".ini";
} }
@ -9960,7 +9988,7 @@ function loadMaidenHeadData() {
var fileBuf = fs.readFileSync(file, "UTF-8"); var fileBuf = fs.readFileSync(file, "UTF-8");
g_worldGeoData = JSON.parse(fileBuf); g_worldGeoData = JSON.parse(fileBuf);
//fs.writeFileSync( file, JSON.stringify(g_worldGeoData) );
for (var key in g_worldGeoData) { for (var key in g_worldGeoData) {
g_worldGeoData[key].geo = "deleted"; g_worldGeoData[key].geo = "deleted";
@ -9989,7 +10017,7 @@ function loadMaidenHeadData() {
} }
var file = "./data/dxcc.json"; file = "./data/dxcc.json";
var files = fs.readFileSync(file); var files = fs.readFileSync(file);
var dxccGeo = JSON.parse(files); var dxccGeo = JSON.parse(files);
@ -10647,7 +10675,9 @@ function loadMapSettings() {
setStrikesButton(); setStrikesButton();
trafficDecode.checked = g_mapSettings.trafficDecode; trafficDecode.checked = g_mapSettings.trafficDecode;
pskSpotsImg.src = g_spotImageArray[g_spotsEnabled];
pskSpotsImg.style.filter = (g_spotsEnabled==1?"":"grayscale(1);");
g_bandToColor = JSON.parse(JSON.stringify(g_pskColors)); g_bandToColor = JSON.parse(JSON.stringify(g_pskColors));
@ -11025,6 +11055,9 @@ function loadViewSettings() {
function loadMsgSettings() { function loadMsgSettings() {
msgEnable.checked = g_appSettings.gtMsgEnable; msgEnable.checked = g_appSettings.gtMsgEnable;
GTspotEnable.checked = g_appSettings.gtSpotEnable;
pskSpotsImg.style.filter = (g_spotsEnabled==1?"":"grayscale(1)");
for (var key in g_msgSettings) { for (var key in g_msgSettings) {
document.getElementById(key).value = g_msgSettings[key]; document.getElementById(key).value = g_msgSettings[key];
@ -11366,7 +11399,6 @@ function loadPortSettings()
} }
var g_wsjtCurrentPort = -1; var g_wsjtCurrentPort = -1;
var g_wsjtCurrentPort = "none";
var g_wsjtUdpServer = null; var g_wsjtUdpServer = null;
var g_wsjtUdpSocketReady = false; var g_wsjtUdpSocketReady = false;
var g_wsjtUdpSocketError = false; var g_wsjtUdpSocketError = false;
@ -12142,6 +12174,9 @@ function qthHamLookupResults(buffer, gridPass,useCache) {
if (json.hasOwnProperty("search")) { if (json.hasOwnProperty("search")) {
if (gridPass) if (gridPass)
json.search.gtGrid = gridPass; json.search.gtGrid = gridPass;
json.search.source =
"<tr><td>Source</td><td><font color='orange'><b><div style='cursor:pointer' onClick='window.opener.openSite(\"https://www.hamqth.com/"+json.search.callsign.toUpperCase()+"\");'>HamQTH</div></b></font></td></tr>";
cacheLookupObject(json.search, gridPass, true); cacheLookupObject(json.search, gridPass, true);
} else { } else {
g_qrzLookupSessionId = null; g_qrzLookupSessionId = null;
@ -12167,6 +12202,12 @@ function qrzLookupResults(buffer, gridPass, useCache) {
} }
if ( json.Callsign.hasOwnProperty("call") ) if ( json.Callsign.hasOwnProperty("call") )
call = json.Callsign.call; call = json.Callsign.call;
if (g_appSettings.lookupService == "QRZ")
json.Callsign.source =
"<tr><td>Source</td><td><font color='orange'><b><div style='cursor:pointer' onClick='window.opener.openSite(\"https://www.qrz.com/lookup?callsign="+call+"\");'>QRZ.com</div></b></font></td></tr>";
else
json.Callsign.source =
"<tr><td>Source</td><td><font color='orange'><b><div style='cursor:pointer' onClick='window.opener.openSite(\"https://www.qrzcq.com/call/"+call+"\");'>QRZCQ.com</div></b></font></td></tr>";
if (gridPass) if (gridPass)
json.Callsign.gtGrid = gridPass; json.Callsign.gtGrid = gridPass;
cacheLookupObject(json.Callsign, gridPass, true); cacheLookupObject(json.Callsign, gridPass, true);
@ -12218,7 +12259,7 @@ function initialDatabases()
function addLookupObjectToIndexedDB( lookupObject ) { function addLookupObjectToIndexedDB( lookupObject ) {
let request = g_Idb.transaction(["lookups"], "readwrite") var request = g_Idb.transaction(["lookups"], "readwrite")
.objectStore("lookups") .objectStore("lookups")
.put(lookupObject); .put(lookupObject);
@ -12229,7 +12270,7 @@ function addLookupObjectToIndexedDB( lookupObject ) {
function getLookupCachedObject( call, gridPass, resultFunction = null, noResultFunction = null, callObject = null ) function getLookupCachedObject( call, gridPass, resultFunction = null, noResultFunction = null, callObject = null )
{ {
let request = g_Idb.transaction(["lookups"], "readwrite") var request = g_Idb.transaction(["lookups"], "readwrite")
.objectStore("lookups") .objectStore("lookups")
.get(call); .get(call);
@ -12384,7 +12425,10 @@ function cacheLookupObject(lookup, gridPass, cacheable = false) {
delete lookup.land; delete lookup.land;
} }
if ( lookup.cnty == null && lookup.hasOwnProperty("state") && lookup.hasOwnProperty("county") ) if ( "grid" in lookup )
lookup.grid = lookup.grid.toUpperCase();
if ( lookup.cnty === null && lookup.hasOwnProperty("state") && lookup.hasOwnProperty("county") )
{ {
lookup.county = lookup.state + ", " + lookup.county; lookup.county = lookup.state + ", " + lookup.county;
var finalCnty = lookup.county.toUpperCase(); var finalCnty = lookup.county.toUpperCase();
@ -12563,7 +12607,7 @@ function displayLookupObject(lookup, gridPass, fromCache = false)
worker += makeRow("QSL Via", lookup, "qsl_via"); worker += makeRow("QSL Via", lookup, "qsl_via");
worker += makeRow("QRZ Admin", lookup, "user"); worker += makeRow("QRZ Admin", lookup, "user");
worker += makeRow("Prefix", lookup, "prefix"); worker += makeRow("Prefix", lookup, "prefix");
worker += lookup.source;
if (g_callsignLookups.lotwUseEnable == true && thisCall in g_lotwCallsigns) if (g_callsignLookups.lotwUseEnable == true && thisCall in g_lotwCallsigns)
@ -13107,13 +13151,13 @@ function pskSpotCheck(timeSec) {
if (myDEcall == null || myDEcall == "NOCALL" || myDEcall == "") if (myDEcall == null || myDEcall == "NOCALL" || myDEcall == "")
return; return;
if (timeSec - g_receptionReports.lastDownloadTimeSec > 120 && (g_spotsEnabled || g_rosterSpot) ) { if (timeSec - g_receptionReports.lastDownloadTimeSec > 120 && (g_spotsEnabled==1 || g_rosterSpot) ) {
g_receptionReports.lastDownloadTimeSec = timeSec; g_receptionReports.lastDownloadTimeSec = timeSec;
localStorage.receptionSettings = JSON.stringify(g_receptionSettings); localStorage.receptionSettings = JSON.stringify(g_receptionSettings);
spotRefreshDiv.innerHTML = "..refreshing.."; spotRefreshDiv.innerHTML = "..refreshing..";
getBuffer("https://retrieve.pskreporter.info/query?rronly=1&lastseqno=" + g_receptionReports.lastSequenceNumber + "&senderCallsign=" + encodeURIComponent(myRawCall) + "&appcontact=" + encodeURIComponent("tag.loomis@gmail.com"), getBuffer("https://retrieve.pskreporter.info/query?rronly=1&lastseqno=" + g_receptionReports.lastSequenceNumber + "&senderCallsign=" + encodeURIComponent(myRawCall) + "&appcontact=" + encodeURIComponent("tag.loomis@gmail.com"),
pskSpotResults, null, "https", 443); pskSpotResults, null, "https", 443);
} else if (g_spotsEnabled) { } else if (g_spotsEnabled==1) {
spotRefreshDiv.innerHTML = "Refresh: " + Number(120 - (timeSec - g_receptionReports.lastDownloadTimeSec)).toDHMS(); spotRefreshDiv.innerHTML = "Refresh: " + Number(120 - (timeSec - g_receptionReports.lastDownloadTimeSec)).toDHMS();
} }
@ -13147,7 +13191,7 @@ function pskSpotResults(buffer, flag) {
report = g_receptionReports.spots[hash] = {}; report = g_receptionReports.spots[hash] = {};
report.call = call; report.call = call;
report.band = band; report.band = band;
report.grid = grid; report.grid = grid.toUpperCase();
report.mode = mode; report.mode = mode;
} }
@ -13183,49 +13227,65 @@ function pskSpotResults(buffer, flag) {
goProcessRoster(); goProcessRoster();
} }
var g_oamsSpotTimeout = null;
function addNewOAMSSpot( cid, db)
{
if ( cid in g_gtFlagPins )
{
if ( g_oamsSpotTimeout !== null )
{
clearTimeout(g_oamsSpotTimeout);
g_oamsSpotTimeout = null;
}
var report;
var call = g_gtFlagPins[cid].call;
var mode = g_gtFlagPins[cid].mode;
var grid = g_gtFlagPins[cid].grid.substr(0, 6);
var band = g_gtFlagPins[cid].band;
var hash = call + mode + band + grid.substr(0,4);
if (hash in g_receptionReports.spots) {
report = g_receptionReports.spots[hash];
} else {
report = g_receptionReports.spots[hash] = {};
report.call = call;
report.band = band;
report.grid = grid;
report.mode = mode;
}
report.dxcc = g_gtFlagPins[cid].dxcc;
report.when = timeNowSec();
report.snr = Number(db);
report.freq = g_gtFlagPins[cid].freq;
var SNR = parseInt((parseInt(report.snr) + 25) * 9);
if (SNR > 255)
SNR = 255;
if (SNR < 0)
SNR = 0;
report.color = SNR;
g_oamsSpotTimeout = setTimeout(redrawSpots,500);
}
}
function spotFeature(center) { function spotFeature(center) {
return new ol.Feature(ol.geom.Polygon.circular(center, 30000, 63).transform('EPSG:4326', 'EPSG:3857')); return new ol.Feature(ol.geom.Polygon.circular(center, 30000, 63).transform('EPSG:4326', 'EPSG:3857'));
} }
function redrawSpots() { var g_spotTotalCount = 0;
var shouldSave = false;
var now = timeNowSec();
var count = 0;
g_layerSources["psk-spots"].clear();
g_layerSources["psk-flights"].clear();
g_layerSources["psk-hop"].clear();
g_layerSources["psk-heat"].clear();
function createSpot( report , key, fromPoint, addToLayer = true)
var fromPoint = getPoint(myRawGrid);
if (g_receptionSettings.mergeSpots == false) {
var spot = iconFeature(fromPoint, g_gtFlagIcon, 100);
g_layerSources["psk-spots"].addFeature(spot);
g_layerSources["psk-heat"].addFeature(spot);
}
for (var key in g_receptionReports.spots) {
report = g_receptionReports.spots[key];
if (now - report.when > 86400) {
delete g_receptionReports.spots[key];
shouldSave = true;
continue;
}
if ((g_appSettings.gtBandFilter.length == 0 || (g_appSettings.gtBandFilter == 'auto' ? myBand ==
report.band : g_appSettings.gtBandFilter == report.band)) &&
( validateMapMode(report.mode) ))
{ {
if (now - report.when <= g_receptionSettings.viewHistoryTimeSec) {
var LL = squareToLatLongAll(report.grid); var LL = squareToLatLongAll(report.grid);
var Lat = LL.la2 - ((LL.la2 - LL.la1) / 2); var Lat = LL.la2 - ((LL.la2 - LL.la1) / 2);
var Lon = LL.lo2 - ((LL.lo2 - LL.lo1) / 2); var Lon = LL.lo2 - ((LL.lo2 - LL.lo1) / 2);
spot = spotFeature([Lon, Lat]); var spot = spotFeature([Lon, Lat]);
var colorNoAlpha = "#" + g_bandToColor[report.band]; var colorNoAlpha = "#" + g_bandToColor[report.band];
@ -13280,14 +13340,56 @@ function redrawSpots() {
}, "psk-flights", false); }, "psk-flights", false);
} }
count++;
}
function redrawSpots() {
var shouldSave = false;
var now = timeNowSec();
g_spotTotalCount = 0;
g_layerSources["psk-spots"].clear();
g_layerSources["psk-flights"].clear();
g_layerSources["psk-hop"].clear();
g_layerSources["psk-heat"].clear();
var fromPoint = getPoint(myRawGrid);
if (g_receptionSettings.mergeSpots == false) {
var spot = iconFeature(fromPoint, g_gtFlagIcon, 100);
g_layerSources["psk-spots"].addFeature(spot);
g_layerSources["psk-heat"].addFeature(spot);
}
for (var key in g_receptionReports.spots) {
report = g_receptionReports.spots[key];
if (now - report.when > 86400) {
delete g_receptionReports.spots[key];
shouldSave = true;
continue;
}
if ((g_appSettings.gtBandFilter.length == 0 || (g_appSettings.gtBandFilter == 'auto' ? myBand ==
report.band : g_appSettings.gtBandFilter == report.band)) &&
( validateMapMode(report.mode) ))
{
if (now - report.when <= g_receptionSettings.viewHistoryTimeSec) {
createSpot(report, key, fromPoint );
g_spotTotalCount++;
} }
} }
} }
if (shouldSave) { if (shouldSave) {
saveReceptionReports(); saveReceptionReports();
} }
spotCountDiv.innerHTML = "Spots: " + count;
updateSpotCountDiv();
}
function updateSpotCountDiv()
{
spotCountDiv.innerHTML = "Spots: " + g_spotTotalCount;
} }
var g_spotFlightColor = "#FFFFFFBB"; var g_spotFlightColor = "#FFFFFFBB";
@ -13406,7 +13508,7 @@ function toggleHeatSpots() {
function togglePskSpots() { function togglePskSpots() {
g_spotsEnabled ^= 1; g_spotsEnabled ^= 1;
g_appSettings.spotsEnabled = g_spotsEnabled; g_appSettings.spotsEnabled = g_spotsEnabled;
pskSpotsImg.src = g_spotImageArray[g_spotsEnabled]; pskSpotsImg.style.filter = (g_spotsEnabled==1?"":"grayscale(1)");
setTrophyOverlay(g_currentOverlay); setTrophyOverlay(g_currentOverlay);
updateSpotView(); updateSpotView();
} }

Wyświetl plik

@ -6,7 +6,7 @@ var g_chatRecvFunctions = {
"info" : gtChatUpdateCall, "info" : gtChatUpdateCall,
"drop" : gtChatRemoveCall, "drop" : gtChatRemoveCall,
"mesg" : gtChatMessage, "mesg" : gtChatMessage,
"spam" : gtSpamMessage "o" : gtSpotMessage
}; };
var ChatState = Object(); var ChatState = Object();
@ -40,7 +40,7 @@ var g_gtSentAwayToCid = Object();
var g_gtState = ChatState.none; var g_gtState = ChatState.none;
var g_gtStatusCount = 0; var g_gtStatusCount = 0;
var g_gtStatusTime = 300; var g_gtStatusTime = 500;
var g_gtMaxChatMessages = 100; var g_gtMaxChatMessages = 100;
var g_gtNeedUsersList = true; var g_gtNeedUsersList = true;
@ -254,6 +254,7 @@ function gtChatSendStatus()
msg.mode = myMode; msg.mode = myMode;
msg.band = myBand; msg.band = myBand;
msg.canmsg = (g_appSettings.gtMsgEnable == true); msg.canmsg = (g_appSettings.gtMsgEnable == true);
msg.o = (g_appSettings.gtSpotEnable == true ? 1:0);
msg = JSON.stringify(msg); msg = JSON.stringify(msg);
if ( msg != g_lastGtStatus ) if ( msg != g_lastGtStatus )
@ -263,6 +264,16 @@ function gtChatSendStatus()
} }
} }
function gtChatSendSpots( spotsObject )
{
var msg = Object();
msg.type = "o";
msg.uuid = g_appSettings.chatUUID;
msg.o = spotsObject;
msg = JSON.stringify(msg);
sendGtJson(msg);
}
function gtChatRemoveCall(jsmesg) function gtChatRemoveCall(jsmesg)
{ {
@ -334,6 +345,7 @@ function gtChatUpdateCall(jsmesg)
g_gtFlagPins[cid].band = jsmesg.band; g_gtFlagPins[cid].band = jsmesg.band;
g_gtFlagPins[cid].mode = jsmesg.mode; g_gtFlagPins[cid].mode = jsmesg.mode;
g_gtFlagPins[cid].canmsg = jsmesg.canmsg; g_gtFlagPins[cid].canmsg = jsmesg.canmsg;
g_gtFlagPins[cid].o = jsmesg.o;
g_gtFlagPins[cid].dxcc = callsignToDxcc(jsmesg.call); g_gtFlagPins[cid].dxcc = callsignToDxcc(jsmesg.call);
g_gtFlagPins[cid].live = true; g_gtFlagPins[cid].live = true;
// Make a pin here // Make a pin here
@ -600,10 +612,13 @@ function gtChatStateMachine()
} }
function gtSpamMessage (jsmesg)
{
function gtSpotMessage (jsmesg)
{
addNewOAMSSpot( jsmesg.cid, jsmesg.db);
} }
function gtChatSystemInit() function gtChatSystemInit()
{ {
g_gtEngineInterval = setInterval(gtChatStateMachine, 1000); g_gtEngineInterval = setInterval(gtChatStateMachine, 1000);

Wyświetl plik

@ -34,8 +34,6 @@ var g_targetCQ = "";
var g_clearCQIgnore = null; var g_clearCQIgnore = null;
var g_clearCQIgnoreMainMenu = null; var g_clearCQIgnoreMainMenu = null;
var g_timerInterval = null; var g_timerInterval = null;
var g_styleFont = null;
var g_hotKeys = { "NumpadSubtract":reduceFont , "Minus":reduceFont , "NumpadAdd":increaseFont, "Equal":increaseFont, "Numpad0":resetFont , "Digit0":resetFont };
var g_regFocus = false; var g_regFocus = false;
var g_awards = {}; var g_awards = {};
var g_awardTypes = {}; var g_awardTypes = {};
@ -918,7 +916,7 @@ function viewRoster()
if ( window.opener.g_instances[callRoster[callHash].callObj.instance].crEnable == true ) if ( window.opener.g_instances[callRoster[callHash].callObj.instance].crEnable == true )
{ {
// Calling us, but we wouldn't normally display // Calling us, but we wouldn't normally display
// If they are not ignored or we're in a QSO with them, let it through // If they are not ignored or we're in a QSO with them, var it through
if ( ( !( callRoster[callHash].DEcall in g_blockedCalls) && !( callRoster[callHash].callObj.dxcc in g_blockedDxcc) ) || if ( ( !( callRoster[callHash].DEcall in g_blockedCalls) && !( callRoster[callHash].callObj.dxcc in g_blockedDxcc) ) ||
window.opener.g_instances[callRoster[callHash].callObj.instance].status.DXcall == callRoster[callHash].DEcall ) window.opener.g_instances[callRoster[callHash].callObj.instance].status.DXcall == callRoster[callHash].DEcall )
@ -1109,11 +1107,11 @@ function viewRoster()
{ {
if ( callRoster[callHash].callObj.qual == false ) if ( callRoster[callHash].callObj.qual == false )
{ {
let counties = window.opener.g_zipToCounty[callRoster[callHash].callObj.zipcode]; var counties = window.opener.g_zipToCounty[callRoster[callHash].callObj.zipcode];
var foundHit = false; var foundHit = false;
for ( let cnt in counties ) for ( var cnt in counties )
{ {
let hh = counties[cnt] + workHash; var hh = counties[cnt] + workHash;
callRoster[callHash].callObj.cnty = counties[cnt]; callRoster[callHash].callObj.cnty = counties[cnt];
if ( g_rosterSettings.huntNeed == "worked" && !(hh in g_worked.cnty) ) if ( g_rosterSettings.huntNeed == "worked" && !(hh in g_worked.cnty) )
{ {
@ -2626,42 +2624,12 @@ function openIgnoreEdit()
} }
function setScreenScale()
{
nw.Window.get().zoomLevel = g_rosterSettings.screenScale;
}
function reduceFont()
{
g_rosterSettings.screenScale-=0.1;
writeRosterSettings();
setScreenScale();
}
function increaseFont()
{
g_rosterSettings.screenScale+= 0.1;
writeRosterSettings();
setScreenScale();
}
function resetFont()
{
g_rosterSettings.screenScale = g_defaultSettings.screenScale;
writeRosterSettings();
setScreenScale();
}
function onMyKeyDown(event) function onMyKeyDown(event)
{ {
if ( event.ctrlKey ) if ( !g_regFocus )
{
if ( event.code in g_hotKeys )
{
g_hotKeys[event.code]();
}
}
else if ( !g_regFocus )
{ {
window.opener.onMyKeyDown(event); window.opener.onMyKeyDown(event);
} }
@ -3221,7 +3189,6 @@ function init()
g_timerInterval = setInterval(realtimeRoster,1000); g_timerInterval = setInterval(realtimeRoster,1000);
updateInstances(); updateInstances();
setScreenScale();
} }

Wyświetl plik

@ -271,10 +271,8 @@
-webkit-border-radius:6px; -webkit-border-radius:6px;
border:1px solid #999; border:1px solid #999;
outline:none; outline:none;
margin:1px; margin:2px;
padding:2px; padding:1px;
padding-bottom:1px;
border-style:inset; border-style:inset;
} }
.inputTextValue:hover { .inputTextValue:hover {

Wyświetl plik

@ -68,8 +68,6 @@ function latLonToGridSquare(param1,param2){
GLon = U[Math.trunc(adjLon/20)]; GLon = U[Math.trunc(adjLon/20)];
nLat = ''+Math.trunc(adjLat % 10); nLat = ''+Math.trunc(adjLat % 10);
nLon = ''+Math.trunc((adjLon/2) % 10); nLon = ''+Math.trunc((adjLon/2) % 10);
// rLat = (adjLat - Math.trunc(adjLat)) * 60;
// rLon = (adjLon - 2*Math.trunc(adjLon/2)) *60;
// gLat = L[Math.trunc(rLat/2.5)]; // gLat = L[Math.trunc(rLat/2.5)];
// gLon = L[Math.trunc(rLon/5)]; // gLon = L[Math.trunc(rLon/5)];
return GLon+GLat+nLon+nLat; return GLon+GLat+nLon+nLat;