Import vendor v1.20.0922

merge-requests/31/head 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="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="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="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="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>
@ -360,7 +360,7 @@
<button class="settingsTablinks" onclick="openSettingsTab(event, 'logSettingsDiv');">Logging</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, '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="updatebut" class="settingsTablinks" onclick="openSettingsTab(event, 'updateSettingsDiv')">Update</button>
<button class="settingsTablinks" style="margin-right:25px;" onclick="openSettingsTab(event, 'aboutDiv')">About</button>
@ -1660,7 +1660,20 @@
</td>
</tr>
</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 class="mapItem">
<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>
<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'>
<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);'/>
<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>
<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: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: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>

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 )
{
var confirmed = false;
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE");
var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS");
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS").toUpperCase();
var finalVucc = [];
var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_","/");
var finalDEcall = findAdiField(activeAdifArray[x], "STATION_CALLSIGN").replace("_","/");
@ -205,8 +205,8 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
}
else
{
var finalMyGrid = findAdiField(activeAdifArray[x], "MY_GRIDSQUARE");
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE");
var finalMyGrid = findAdiField(activeAdifArray[x], "MY_GRIDSQUARE").toUpperCase();
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
var finalDXcall = findAdiField(activeAdifArray[x], "CALL");
var finalDEcall = findAdiField(activeAdifArray[x], "OPERATOR");
var finalRSTsent = findAdiField(activeAdifArray[x], "APP_PSKREP_SNR");
@ -425,78 +425,19 @@ function lotwCallback(buffer, flag)
var shouldAppend = false;
g_fromDirectCallNoFileDialog = true;
var lastQsl = findAdiField(rawAdiBuffer, "APP_LoTW_LASTQSL");
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_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 = cleanAndPrepADIF("lotw_QSL.adif",rawAdiBuffer, true,shouldAppend);
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;
rawAdiBuffer = cleanAndPrepADIF("lotw.adif",rawAdiBuffer, true,shouldAppend);
var lastQsl = findAdiField(rawAdiBuffer, "APP_LoTW_LASTQSORX");
rawAdiBuffer = tryToWriteAdifToDocFolder("lotw.adif",rawAdiBuffer, shouldAppend);
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);
onAdiLoadComplete(rawAdiBuffer, true, "lotw.adif", true);
}
}
}
function shouldWeAppendInsteadOfCreate( filename )
{
var finalFile = g_appData + g_dirSeperator + filename;
@ -545,51 +486,13 @@ function grabLOtWLog(test)
lotwTestResult.innerHTML = "Testing";
lastQSLDateString = "&qso_qslsince=2100-01-01";
}
else
{
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");
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);
}
}
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)
@ -1230,14 +1133,8 @@ function startupAdifLoadCheck()
if (g_appSettings.gtFlagImgSrc == 1)
showGtFlags();
if ( loadPsk24CheckBox.checked == true )
grabPsk24();
if ( loadLOTWCheckBox.checked == true )
{
grabLOtWLogQSO(false);
grabLOtWLog(false);
}
if ( loadQRZCheckBox.checked == true )
grabQrzComLog(false);
@ -1245,10 +1142,13 @@ function startupAdifLoadCheck()
if ( loadClubCheckBox.checked == true )
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 http = require(mode);
@ -1265,12 +1165,12 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
}
if ( typeof stringOfFlag != "undefined" )
window[stringOfFlag] = true;
if ( typeof imgToGray != "undefined" && imgToGray.style.webkitFilter == "" )
imgToGray.style.webkitFilter = "invert(100%) grayscale(1)";
if ( stringOfCounter != null )
if ( typeof imgToGray != "undefined" )
{
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 fsize = res.headers['content-length'];
@ -1284,6 +1184,17 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
fileBuffer = data;
else
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() {
if (typeof callback === "function") {
@ -1293,44 +1204,24 @@ function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFl
{
window[stringOfFlag] = false;
}
if ( stringOfCounter == null && typeof imgToGray != "undefined")
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
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() {
if ( typeof stringOfFlag != "undefined" )
{
window[stringOfFlag] = false;
}
if ( stringOfCounter == null && typeof imgToGray != "undefined")
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
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" )
{
window[stringOfFlag] = false;
}
if ( stringOfCounter == null && typeof imgToGray != "undefined")
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
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;
imgToGray.style.webkitFilter = "invert(100%) grayscale(1)";
if ( typeof imgToGray != "undefined" )
{
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 fsize = res.headers['content-length'];
@ -1401,23 +1290,41 @@ function getAPostBuffer(file_url, callback, flag, mode, port, theData, imgToGra
fileBuffer = data;
else
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() {
if (typeof callback === "function") {
// Call it, since we have confirmed it is callable
callback(fileBuffer, flag, cookies);
window[stringOfFlag] = false;
imgToGray.style.webkitFilter = "";
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = "";
}
}
}).on('error', function() {
window[stringOfFlag] = false;
imgToGray.style.webkitFilter = "";
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = "";
}
});
});
req.on('socket', function (socket)
{
socket.setTimeout(60000);
socket.on('timeout', function()
{
req.abort();
@ -1426,7 +1333,11 @@ function getAPostBuffer(file_url, callback, flag, mode, port, theData, imgToGra
req.on('error', function(err) {
window[stringOfFlag] = false;
imgToGray.style.webkitFilter = "";
if ( typeof imgToGray != "undefined")
{
imgToGray.parentNode.style.background = "";
imgToGray.style.webkitFilter = "";
}
});
req.write(postData);

Wyświetl plik

@ -642,7 +642,7 @@ function processulsCallsigns(data, flag, cookies, starting, finished)
g_ulsWhenDate = 0;
g_ulsCallsignsCount = 0;
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 )

Wyświetl plik

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

Wyświetl plik

@ -1,8 +1,8 @@
// 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 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 gtBeta = "";
var gtVersion = 1200922;
var gtBeta = "Elsa";
var g_startVersion = 0;
@ -287,7 +287,7 @@ function saveAndCloseApp()
g_callRosterWindowHandle.window.close(true);
}
catch (e) {
console.log(e);
}
nw.App.quit();
}
@ -387,16 +387,19 @@ var g_cqZones = {};
var g_wacZones = {};
var g_wasZones = {};
var g_ituZones = {};
var g_gtFlagPins = {};
var g_dxccCount = {};
var g_tracker = {};
initQSOdata();
var g_tracker = { "worked": {} , "confirmed": {} };
function initQSOdata() {
g_tracker = { "worked": {} , "confirmed": {} };
g_tracker.worked = {};
g_tracker.confirmed = {};
g_tracker.worked.band = {};
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];
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;
@ -1263,7 +1264,7 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
if (finalDxcc < 1)
finalDxcc = callsignToDxcc(finalDXcall);
var hash = finalDXcall + band + mode;
hash = finalDXcall + band + mode;
if (notQso) {
if (hash in g_liveCallsigns)
callsign = g_liveCallsigns[hash];
@ -1645,10 +1646,10 @@ function remove_duplicates(arr) {
}
function splitNoParen(s){
let results = [];
let next;
let str = '';
let left = 0, right = 0;
var results = [];
var next;
var str = '';
var left = 0, right = 0;
function keepResult() {
results.push(str.trim());
@ -2835,7 +2836,7 @@ function trophyOver(feature) {
wc1Table += "<tr>";
wc1Table += "<td align=right><font color='orange'>Mode</font></td>";
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) {
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 += "<td align=right><font color='orange'>Mode</font></td>";
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) {
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)
{
var qth = qth.toUpperCase();
qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65;
@ -3162,7 +3163,7 @@ function twoWideToLatLong(qth)
}
function squareToLatLongAll(qth) {
var qth = qth.toUpperCase();
qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65;
var c = qth.charCodeAt(2) - 48;
@ -3204,7 +3205,7 @@ function squareToLatLongAll(qth) {
}
function squareToLatLong(qth) {
var qth = qth.toUpperCase();
qth = qth.toUpperCase();
var a = qth.charCodeAt(0) - 65;
var b = qth.charCodeAt(1) - 65;
var c = qth.charCodeAt(2) - 48;
@ -4168,6 +4169,7 @@ function clearLogFilesAndCounts()
{
tryToDeleteLog("lotw_QSL.adif");
tryToDeleteLog("lotw_QSO.adif");
tryToDeleteLog("lotw.adif");
tryToDeleteLog("qrz.adif");
tryToDeleteLog("clublog.adif");
g_adifLogSettings.downloads = {};
@ -5606,14 +5608,17 @@ function handleWsjtxStatus(newMessage) {
setStatsDiv("decodeLastListDiv", worker);
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.borderColor = 'GreenYellow';
txrxdec.innerHTML = "RECEIVE";
}
if (newMessage.TxEnabled == 1)
@ -5791,6 +5796,8 @@ function fitViewBetweenPoints( points, maxZoom = 20) {
delete line;
}
var g_spotCollector = {};
function handleWsjtxDecode(newMessage) {
if (g_ignoreMessages == 1 || g_map == null)
return;
@ -5879,6 +5886,12 @@ function handleWsjtxDecode(newMessage) {
if (hash in g_liveCallsigns)
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;
if (
(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;
}
if ( g_appSettings.gtSpotEnable === true && callsign.DEcall in g_gtCallsigns )
{
g_spotCollector[g_gtCallsigns[callsign.DEcall]] = callsign.RSTsent;
}
}
if (callsign.dxcc != -1)
@ -6261,7 +6278,7 @@ function handleWsjtxClear(newMessage)
{
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];
}
for (var call in g_callRoster) {
@ -6800,7 +6817,7 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
bands[list[key].band] = list[key].band;
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 : "?");
dxccs[list[key].dxcc] = g_dxccToAltName[list[key].dxcc] + " ("+pp+")";
dxccs[g_dxccToAltName[list[key].dxcc] + " ("+pp+")"] = list[key].dxcc;
}
if (g_filterBand != "Mixed" )
@ -6866,13 +6883,8 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
}
}
var ObjectCount = list.length;
ObjectCount = list.length;
var g_qsoPages = parseInt(ObjectCount / g_qsoItemsPerPage) + 1;
@ -6971,7 +6983,7 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
option.value = "Mixed";
option.text = "Mixed";
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");
option.value = key;
option.text = key;
@ -6982,17 +6994,17 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select");
newSelect.id = "modeFilter";
newSelect.title = "Mode Filter";
var option = document.createElement("option");
option = document.createElement("option");
option.value = "Mixed";
option.text = "Mixed";
newSelect.appendChild(option);
var option = document.createElement("option");
option = document.createElement("option");
option.value = "Phone";
option.text = "Phone";
newSelect.appendChild(option);
var option = document.createElement("option");
option = document.createElement("option");
option.value = "Digital";
option.text = "Digital";
newSelect.appendChild(option);
@ -7009,15 +7021,16 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select");
newSelect.id = "dxccFilter";
newSelect.title = "DXCC Filter";
var option = document.createElement("option");
option = document.createElement("option");
option.value = 0;
option.text = "All";
newSelect.appendChild(option);
Object.keys(dxccs).sort(myDxccIntCompare).forEach(function(key) {
Object.keys(dxccs).sort().forEach(function(key) {
var option = document.createElement("option");
option.value = key;
option.text = dxccs[key];
option.value = dxccs[key];
option.text = key;
newSelect.appendChild(option);
});
@ -7026,17 +7039,17 @@ function showWorkedBox( sortIndex, nextPage, redraw) {
newSelect = document.createElement("select");
newSelect.id = "qslFilter";
newSelect.title = "QSL Filter";
var option = document.createElement("option");
option = document.createElement("option");
option.value = "All";
option.text = "All";
newSelect.appendChild(option);
var option = document.createElement("option");
option = document.createElement("option");
option.value = true;
option.text = "Yes";
newSelect.appendChild(option);
var option = document.createElement("option");
option = document.createElement("option");
option.value = false;
option.text = "No";
newSelect.appendChild(option);
@ -7623,6 +7636,12 @@ function openLookupWindow( show = false ) {
g_lookupWindowHandle.window.g_isShowing = true;
g_lookupWindowHandle.window.saveScreenSettings();
}
else
{
g_lookupWindowHandle.hide();
g_lookupWindowHandle.window.g_isShowing = false;
g_lookupWindowHandle.window.saveScreenSettings();
}
}
catch (e){}
}
@ -8584,7 +8603,7 @@ function createStatTable(title, infoObject, awardName)
wc1Table += "<tr>";
wc1Table += "<td align=center><font color='orange'>Modes</font></td>";
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) {
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;
}
function setGTspotEnable(checkbox) {
g_appSettings.gtSpotEnable = checkbox.checked;
g_gtLiveStatusUpdate = true;
}
function setMsgEnable(checkbox) {
g_appSettings.gtMsgEnable = checkbox.checked;
if (g_appSettings.gtShareEnable == true) {
@ -9124,9 +9150,7 @@ function checkForNewVersion(showUptoDate) {
"https", 443);
}
function findBandInBandArray(obj) {
return (obj.band == g_searchBand);
}
function renderBandActivity()
@ -9139,15 +9163,15 @@ function renderBandActivity()
var bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "4m","2m"];
if ( g_myDXCC in g_callsignDatabaseUSplus )
bands = [ "630m", "160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m", "6m", "2m"];
var bandData = Array();
var bandData = {};
var maxValue = 0;
for (var i = 0; i < bands.length; i++) {
bandData[bandData.length] = Array();
bandData[bandData.length - 1].band = bands[i];
bandData[bandData.length - 1].score = 0;
bandData[bandData.length - 1].spots = 0;
bandData[bandData.length - 1].tx = 0;
bandData[bandData.length - 1].rx = 0;
bandData[bands[i]] = {};
bandData[bands[i]].score = 0;
bandData[bands[i]].spots = 0;
bandData[bands[i]].tx = 0;
bandData[bands[i]].rx = 0;
}
for (var x = 0; x < lines.length; x++) {
var firstChar = lines[x].charCodeAt(0);
@ -9155,9 +9179,11 @@ function renderBandActivity()
{
var values = lines[x].trim().split(" ");
var band = Number(Number(values[0]) / 1000000).formatBand();
g_searchBand = band;
var place = bandData.find(findBandInBandArray);
if (typeof place != 'undefined') {
if ( band in bandData )
{
var place = bandData[band];
place.score += Number(values[1]);
place.spots += Number(values[2]);
place.tx += Number(values[3]);
@ -9166,7 +9192,9 @@ function renderBandActivity()
maxValue = place.score;
if (maxValue < place.spots)
maxValue = place.spots;
}
}
}
@ -9174,21 +9202,20 @@ function renderBandActivity()
if (maxValue > 26) {
scaleFactor = 26 / maxValue;
}
for (var x = 0; x < bandData.length; x++) {
for (var band in bandData ) {
var blockMyBand = "";
if (bandData[x].band == myBand)
if (band == myBand)
blockMyBand = " class='myBand' ";
{
var title = "Score: " + bandData[x].score + " Spots: " + bandData[x].spots + "\nTx: " + bandData[
x].tx + "\tRx: " + bandData[x].rx;
var title = "Score: " + bandData[band].score + " Spots: " + bandData[band].spots + "\nTx: " + bandData[
band].tx + "\tRx: " + bandData[band].rx;
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>";
buffer += "<div style='height: " + ((bandData[x].spots * scaleFactor) + 1) +
buffer += "<div style='height: " + ((bandData[band].spots * scaleFactor) + 1) +
"px;' class='barRx'></div>";
buffer += "<div style='font-size:10px' " + blockMyBand + ">" + bandData[x].band.substr(0,
bandData[x].band.length - 1) + "</div>";
buffer += "<div style='font-size:10px' " + blockMyBand + ">" + parseInt(band) + "</div>";
buffer += "</div>";
}
}
@ -9259,8 +9286,9 @@ function getIniFromApp(appName) {
result.appName = appName;
var wsjtxCfgPath = "";
var data = String(nw.App.dataPath);
var end = 0;
if (g_platform == "windows") {
var end = data.indexOf("GridTracker\\User Data\\Default");
end = data.indexOf("GridTracker\\User Data\\Default");
if (end > -1) {
wsjtxCfgPath = data.substr(0, end) + appName + "\\" + appName + ".ini";
}
@ -9960,7 +9988,7 @@ function loadMaidenHeadData() {
var fileBuf = fs.readFileSync(file, "UTF-8");
g_worldGeoData = JSON.parse(fileBuf);
//fs.writeFileSync( file, JSON.stringify(g_worldGeoData) );
for (var key in g_worldGeoData) {
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 dxccGeo = JSON.parse(files);
@ -10647,7 +10675,9 @@ function loadMapSettings() {
setStrikesButton();
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));
@ -11025,7 +11055,10 @@ function loadViewSettings() {
function loadMsgSettings() {
msgEnable.checked = g_appSettings.gtMsgEnable;
GTspotEnable.checked = g_appSettings.gtSpotEnable;
pskSpotsImg.style.filter = (g_spotsEnabled==1?"":"grayscale(1)");
for (var key in g_msgSettings) {
document.getElementById(key).value = g_msgSettings[key];
}
@ -11366,7 +11399,6 @@ function loadPortSettings()
}
var g_wsjtCurrentPort = -1;
var g_wsjtCurrentPort = "none";
var g_wsjtUdpServer = null;
var g_wsjtUdpSocketReady = false;
var g_wsjtUdpSocketError = false;
@ -12142,6 +12174,9 @@ function qthHamLookupResults(buffer, gridPass,useCache) {
if (json.hasOwnProperty("search")) {
if (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);
} else {
g_qrzLookupSessionId = null;
@ -12167,6 +12202,12 @@ function qrzLookupResults(buffer, gridPass, useCache) {
}
if ( json.Callsign.hasOwnProperty("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)
json.Callsign.gtGrid = gridPass;
cacheLookupObject(json.Callsign, gridPass, true);
@ -12218,7 +12259,7 @@ function initialDatabases()
function addLookupObjectToIndexedDB( lookupObject ) {
let request = g_Idb.transaction(["lookups"], "readwrite")
var request = g_Idb.transaction(["lookups"], "readwrite")
.objectStore("lookups")
.put(lookupObject);
@ -12229,7 +12270,7 @@ function addLookupObjectToIndexedDB( lookupObject ) {
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")
.get(call);
@ -12384,7 +12425,10 @@ function cacheLookupObject(lookup, gridPass, cacheable = false) {
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;
var finalCnty = lookup.county.toUpperCase();
@ -12563,7 +12607,7 @@ function displayLookupObject(lookup, gridPass, fromCache = false)
worker += makeRow("QSL Via", lookup, "qsl_via");
worker += makeRow("QRZ Admin", lookup, "user");
worker += makeRow("Prefix", lookup, "prefix");
worker += lookup.source;
if (g_callsignLookups.lotwUseEnable == true && thisCall in g_lotwCallsigns)
@ -13107,13 +13151,13 @@ function pskSpotCheck(timeSec) {
if (myDEcall == null || myDEcall == "NOCALL" || myDEcall == "")
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;
localStorage.receptionSettings = JSON.stringify(g_receptionSettings);
spotRefreshDiv.innerHTML = "..refreshing..";
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);
} else if (g_spotsEnabled) {
} else if (g_spotsEnabled==1) {
spotRefreshDiv.innerHTML = "Refresh: " + Number(120 - (timeSec - g_receptionReports.lastDownloadTimeSec)).toDHMS();
}
@ -13147,7 +13191,7 @@ function pskSpotResults(buffer, flag) {
report = g_receptionReports.spots[hash] = {};
report.call = call;
report.band = band;
report.grid = grid;
report.grid = grid.toUpperCase();
report.mode = mode;
}
@ -13183,14 +13227,125 @@ function pskSpotResults(buffer, flag) {
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) {
return new ol.Feature(ol.geom.Polygon.circular(center, 30000, 63).transform('EPSG:4326', 'EPSG:3857'));
}
var g_spotTotalCount = 0;
function createSpot( report , key, fromPoint, addToLayer = true)
{
var LL = squareToLatLongAll(report.grid);
var Lat = LL.la2 - ((LL.la2 - LL.la1) / 2);
var Lon = LL.lo2 - ((LL.lo2 - LL.lo1) / 2);
var spot = spotFeature([Lon, Lat]);
var colorNoAlpha = "#" + g_bandToColor[report.band];
var colorAlpha = intAlphaToRGB(colorNoAlpha, report.color);
var spotColor = colorAlpha;
var workingColor = (g_mapSettings.nightMapEnable && g_nightTime) ? g_receptionSettings.pathNightColor : g_receptionSettings.pathColor;
if ( workingColor != -1 )
{
var testColor = (workingColor < 1 ? "#0000000" : (workingColor == 361 ? "#FFFFFF" : "hsla(" + workingColor + ", 100%, 50%,"+ report.color / 255 +")"));
if ( workingColor < 1 || workingColor == 361 )
spotColor = intAlphaToRGB(testColor.substr(0,7), report.color);
else
spotColor = testColor;
}
featureStyle = new ol.style.Style({
fill: new ol.style.Fill({
color: spotColor
}),
stroke: new ol.style.Stroke({
color: "#000000FF",
width: 0.25
}),
});
spot.setStyle(featureStyle);
spot.spot = key;
spot.size = 6; // Mouseover detection
g_layerSources["psk-spots"].addFeature(spot);
var toPoint = ol.proj.fromLonLat([Lon, Lat]);
var lonLat = new ol.geom.Point(toPoint);
var pointFeature = new ol.Feature({
geometry: lonLat,
weight: report.color / 255 // e.g. temperature
});
g_layerSources["psk-heat"].addFeature(pointFeature);
if (g_receptionSettings.viewPaths && g_receptionSettings.spotWidth > 0) {
var strokeWeight = g_receptionSettings.spotWidth;
var flightColor = workingColor == -1 ? colorNoAlpha + "BB" : (g_mapSettings.nightMapEnable && g_nightTime) ? g_spotNightFlightColor : g_spotFlightColor;
var feature = flightFeature([fromPoint, toPoint], {
weight: strokeWeight,
color: flightColor,
steps: 75
}, "psk-flights", false);
}
}
function redrawSpots() {
var shouldSave = false;
var now = timeNowSec();
var count = 0;
g_spotTotalCount = 0;
g_layerSources["psk-spots"].clear();
g_layerSources["psk-flights"].clear();
g_layerSources["psk-hop"].clear();
@ -13220,74 +13375,21 @@ function redrawSpots() {
( validateMapMode(report.mode) ))
{
if (now - report.when <= g_receptionSettings.viewHistoryTimeSec) {
var LL = squareToLatLongAll(report.grid);
var Lat = LL.la2 - ((LL.la2 - LL.la1) / 2);
var Lon = LL.lo2 - ((LL.lo2 - LL.lo1) / 2);
spot = spotFeature([Lon, Lat]);
var colorNoAlpha = "#" + g_bandToColor[report.band];
var colorAlpha = intAlphaToRGB(colorNoAlpha, report.color);
var spotColor = colorAlpha;
var workingColor = (g_mapSettings.nightMapEnable && g_nightTime) ? g_receptionSettings.pathNightColor : g_receptionSettings.pathColor;
if ( workingColor != -1 )
{
var testColor = (workingColor < 1 ? "#0000000" : (workingColor == 361 ? "#FFFFFF" : "hsla(" + workingColor + ", 100%, 50%,"+ report.color / 255 +")"));
if ( workingColor < 1 || workingColor == 361 )
spotColor = intAlphaToRGB(testColor.substr(0,7), report.color);
else
spotColor = testColor;
}
featureStyle = new ol.style.Style({
fill: new ol.style.Fill({
color: spotColor
}),
stroke: new ol.style.Stroke({
color: "#000000FF",
width: 0.25
}),
});
spot.setStyle(featureStyle);
spot.spot = key;
spot.size = 6; // Mouseover detection
g_layerSources["psk-spots"].addFeature(spot);
var toPoint = ol.proj.fromLonLat([Lon, Lat]);
var lonLat = new ol.geom.Point(toPoint);
var pointFeature = new ol.Feature({
geometry: lonLat,
weight: report.color / 255 // e.g. temperature
});
g_layerSources["psk-heat"].addFeature(pointFeature);
if (g_receptionSettings.viewPaths && g_receptionSettings.spotWidth > 0) {
var strokeWeight = g_receptionSettings.spotWidth;
var flightColor = workingColor == -1 ? colorNoAlpha + "BB" : (g_mapSettings.nightMapEnable && g_nightTime) ? g_spotNightFlightColor : g_spotFlightColor;
var feature = flightFeature([fromPoint, toPoint], {
weight: strokeWeight,
color: flightColor,
steps: 75
}, "psk-flights", false);
}
count++;
createSpot(report, key, fromPoint );
g_spotTotalCount++;
}
}
}
if (shouldSave) {
saveReceptionReports();
}
spotCountDiv.innerHTML = "Spots: " + count;
updateSpotCountDiv();
}
function updateSpotCountDiv()
{
spotCountDiv.innerHTML = "Spots: " + g_spotTotalCount;
}
var g_spotFlightColor = "#FFFFFFBB";
@ -13406,7 +13508,7 @@ function toggleHeatSpots() {
function togglePskSpots() {
g_spotsEnabled ^= 1;
g_appSettings.spotsEnabled = g_spotsEnabled;
pskSpotsImg.src = g_spotImageArray[g_spotsEnabled];
pskSpotsImg.style.filter = (g_spotsEnabled==1?"":"grayscale(1)");
setTrophyOverlay(g_currentOverlay);
updateSpotView();
}

Wyświetl plik

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

Wyświetl plik

@ -34,8 +34,6 @@ var g_targetCQ = "";
var g_clearCQIgnore = null;
var g_clearCQIgnoreMainMenu = 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_awards = {};
var g_awardTypes = {};
@ -918,7 +916,7 @@ function viewRoster()
if ( window.opener.g_instances[callRoster[callHash].callObj.instance].crEnable == true )
{
// 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) ) ||
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 )
{
let counties = window.opener.g_zipToCounty[callRoster[callHash].callObj.zipcode];
var counties = window.opener.g_zipToCounty[callRoster[callHash].callObj.zipcode];
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];
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)
{
if ( event.ctrlKey )
{
if ( event.code in g_hotKeys )
{
g_hotKeys[event.code]();
}
}
else if ( !g_regFocus )
if ( !g_regFocus )
{
window.opener.onMyKeyDown(event);
}
@ -3221,7 +3189,6 @@ function init()
g_timerInterval = setInterval(realtimeRoster,1000);
updateInstances();
setScreenScale();
}

Wyświetl plik

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

Wyświetl plik

@ -68,8 +68,6 @@ function latLonToGridSquare(param1,param2){
GLon = U[Math.trunc(adjLon/20)];
nLat = ''+Math.trunc(adjLat % 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)];
// gLon = L[Math.trunc(rLon/5)];
return GLon+GLat+nLon+nLat;