Import vendor_v1.20.0825 beta
|
@ -3,6 +3,7 @@
|
|||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>GridTracker ©2020 N0TTL</title>
|
||||
<link rel="stylesheet" href="./lib/dp-dark.css">
|
||||
<link rel="stylesheet" href="./lib/ol.css" />
|
||||
<link rel="stylesheet" href="./lib/style.css"/>
|
||||
<script src="./lib/defaults.js" type="text/javascript" ></script>
|
||||
|
@ -14,6 +15,7 @@
|
|||
<script src="./lib/arc.js" type="text/javascript"></script>
|
||||
<script src="./lib/moment-with-locales.js" type="text/javascript"></script>
|
||||
<script src="./lib/moment-timezone-with-data.js" type="text/javascript"></script>
|
||||
<script src="./lib/datepicker.js"></script>
|
||||
<script src="./lib/callsigns.js" type="text/javascript"></script>
|
||||
<script src="./lib/shadow.js" type="text/javascript"></script>
|
||||
<script src="./lib/gtws.js" type="text/javascript"></script>
|
||||
|
@ -173,8 +175,7 @@
|
|||
|
||||
<tr>
|
||||
<td colspan=2 ><div class="button" onclick="clearLive();" title="Clear Live Data from GridTracker">Clear Live</div></td>
|
||||
<td colspan=2 ><div style="min-width:58px" id="clearOrLoadButton" class="button" onclick="clearOrLoadQSOs();updateCountStats();" title="Clear or Reload Log Data
|
||||
(does not delete files)">Clear Log</div></td>
|
||||
<td colspan=2 ><div style="min-width:58px" id="clearOrLoadButton" class="button" onclick="clearOrLoadQSOs();updateCountStats();" title="Clear or Reload Log Data&10;(does not delete files)">Clear Log</div></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -262,12 +263,15 @@
|
|||
</table>
|
||||
</div>
|
||||
<div id="buttonsDiv" style="margin-left:0px;white-space:normal;">
|
||||
<div id="callRosterButton" style="color:#EEE;font-weight:bold;border-width:2px;margin:0px;padding-left:2px;padding-right:2px;text-align:center" class="button" onclick="openCallRosterWindow();" title="Open Call Roster" >Call Roster + Award Tracker</div>
|
||||
<div id="callRosterButton" class="iconButton" style="padding:0px;" onclick="openCallRosterWindow();" title="Open Call Roster" ><img src="./img/roster-button.svg" class="buttonImgWide" /></div>
|
||||
<div id="pushPinButton" onclick="togglePushPinMode();" class="iconButton" title="Toggle Push-Pin Mode"><img id="pinImg" src="" class="buttonImg" /></div>
|
||||
<div id="lookupButton" onclick="openLookupWindow()" class="iconButton" title="Open Lookup Window" ><img style="" src="./img/lookup.svg" class="buttonImg" /></div>
|
||||
<div id="statsDiv" onclick="showRootInfoBox();" class="iconButton" title="Show Stats"><img src="./img/stats.png" class="buttonImg" /></div>
|
||||
<div id="modeModeDiv" onclick="toggleOffline()" class="iconButton" title="Toggle Online/Offline Mode"><img id="offlineImg" src="" class="buttonImg" /></div>
|
||||
<div id="earthShadow" onclick="toggleEarth()" class="iconButton" title="Toggle Grayline"><img id="earthImg" src="" class="buttonImg" /></div>
|
||||
<div id="pushPinButton" onclick="togglePushPinMode();" class="iconButton" title="Toggle Push-Pin Mode"><img id="pinImg" src="" class="buttonImg" /></div>
|
||||
<div id="lookupButton" onclick="openLookupWindow()" class="iconButton" title="Open Lookup Window" ><img style="" src="./img/eye2.png" class="buttonImg" /></div>
|
||||
<div id="statsDiv" onclick="showRootInfoBox();" class="iconButton" title="Show Stats"><img src="./img/stats.png" class="buttonImg" /></div>
|
||||
<div id="legendToggleDiv" onclick="toggleLegend()" class="iconButton" title="Toggle Map Legend"><img id="legendImg" src="./img/gt_key.png" class="buttonImg" /></div>
|
||||
<div id="gtShareButton" onclick="toggleGtShareEnable();" class="iconButton" title="Share your On-Air Status with other GridTracker users"><img id="gtShareFlagImg" src="./img/share-off.png" class="buttonImg" /></div>
|
||||
<div id="helpButton" onclick="toggleHelp();" class="iconButton" title="Toggle Hotkey List"><img src="./img/help.svg" class="buttonImg" /></div>
|
||||
<div id="trophyButton" onclick="cycleTrophyOverlay();" class="iconButton" title="Cycle Award Overlays"><img id="trophyImg" src="./img/blank_trophy.png" class="buttonImg" /></div>
|
||||
<div id="buttonStrikesDiv" onclick="toggleStrikesValue()" class="iconButton" title="Toggle Lightning Strikes" ><img id="strikesImg" src="./img/lw.png" class="buttonImg" /></div>
|
||||
<div id="lunaButton" onclick="toggleMoon();" class="iconButton" title="Toggle Moon" ><img id="lunaButonImg" src="./img/luna.png" class="buttonImg" /></div>
|
||||
|
@ -282,11 +286,12 @@
|
|||
<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="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="gtShareButton" onclick="toggleGtShareEnable();" class="iconButton" title="Share your On-Air Status with other GridTracker users"><img id="gtShareFlagImg" src="./img/share-off.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="radarButton" onclick="toggleNexrad()" class="iconButton" title="Toggle US Nexrad"><img src="./img/radar-button.svg" class="buttonImg" /></div>
|
||||
<div id="gtFlagButton" onclick="toggleGtMap();" class="iconButton" title="Toggle View GridTracker Users"><img id="gtFlagImg" src="" class="buttonImg" /></div>
|
||||
<div id="msgButton" onclick="showMessaging();" class="iconButton" title="Messaging Window" ><img id="msgImg" src="./img/gt_chat.png" class="buttonImg" /></div>
|
||||
<div id="legendToggleDiv" onclick="toggleLegend()" class="iconButton" title="Toggle Map Legend"><img id="legendImg" src="./img/gt_key.png" class="buttonImg" /></div>
|
||||
|
||||
</div>
|
||||
<div id="SpotsDiv" style="display:none;border:1px solid yellow;margin:1px;margin-bottom:1px;margin-top:2px;" class="roundBorder" >
|
||||
<table align="center">
|
||||
|
@ -305,36 +310,36 @@
|
|||
<div id="myMoonTooltip" style="background-color:black;padding:5px;text-align:center;display:block;position:absolute;z-index:-499;left:50px;top:50px;border:2px solid white;white-space: nowrap;overflow:hidden" class="roundBorder"></div>
|
||||
<div id="helpDiv"style="animation: fadeInEffect .1s;margin: 2px;left:30px;top:20px;display:none;background-color:black;padding:5px;text-align:center;vertical-align:middle;position:absolute;z-index:600;border:1px cyan;" class="roundBorder" >
|
||||
<div id="printHotKeyDiv" style="border:1px solid cyan;color:white;text-align:auto;" >
|
||||
<table align=center class="darkTable" >
|
||||
<tr><th colspan=6 >Hot Key List</th>
|
||||
<table align=center class="darkTable" >
|
||||
<tr><th colspan=6 >Hot Key List (v1.20.0825+)</th>
|
||||
<tr><th>Key</th><th align='left'>Action</th><th>Condition</th><th>Key</th><th align='left'>Action</th><th>Condition</th>
|
||||
<tr><td>1</td><td align='left' >Show General Map Layer</td> <td></td><td>Q</td><td align='left' >Cycle QSO/LIVE view</td> <td></td></tr>
|
||||
<tr><td>2</td><td align='left' >Show CQ Zones Award Layer</td><td></td><td>R</td><td align='left' >Open Call Roster Window</td><td></td></tr>
|
||||
<tr><td>3</td><td align='left' >Show ITU Zones Award Layer</td><td></td><td>S</td><td align='left' >Open Settings</td> <td></td></tr>
|
||||
<tr><td>4</td><td align='left' >Show Continents Award Layer</td><td></td><td>T</td><td align='left' >Add TTS Alert</td><td>right-click<br>empty grid</td></tr>
|
||||
<tr><td>5</td><td align='left' >Show US States Award Layer</td><td></td><td>T</td><td align='left' >Toggle RX Spots over Grids</td><td></td></tr>
|
||||
<tr><td>6</td><td align='left' >Show DXCC Award Layer</td><td></td><td>U</td><td align='left' >Toggle Award Layer Merge</td><td></td></tr>
|
||||
<tr><td>7</td><td align='left' >Show US Counties Award Layer</td><td></td><td>V</td><td align='left' >Add PopUp Alert</td><td>right-click<br>empty grid</td></tr>
|
||||
<tr><td>A</td><td align='left' >Toggle Active Path Animation</td><td></td><td>W</td><td align='left' >Toggle Maidenhead Grid Size</td> <td></td></tr>
|
||||
<tr><td>B</td><td align='left' >Toggle All Grid Overlay</td><td></td><td>Z</td><td align='left' >Center Map on QTH Grid</td><td></td></tr>
|
||||
<tr><td>C</td><td align='left' >Open Conditions Windows</td><td></td><td>F1</td><td align='left' >Hot Key List (This List)</td><td></td></tr>
|
||||
<tr><td>D</td><td align='left' >Toggle Moon Tracking</td><td></td><td>F5</td><td align='left' >Recall Map Position 1</td><td></td></tr>
|
||||
<tr><td>E</td><td align='left' >Toggle 24h Moon Trajectory</td><td></td><td>F5</td><td align='left' >Store Map Position 1</td><td>Shift-Key</td></tr>
|
||||
<tr><td>F</td><td align='left' >Toggle RX Spots Flight</td><td></td><td>F6</td><td align='left' >Recall Map Position 2</td><td></td></tr>
|
||||
<tr><td>G</td><td align='left' >Toggle GridTracker Flags</td><td></td><td>F6</td><td align='left' >Store Map Position 2</td><td>Shift-Key</td></tr>
|
||||
<tr><td>H</td><td align='left' >Toggle RX Spots Heatmap</td><td></td><td>F7</td><td align='left' >Recall Map Position 3</td><td></td></tr>
|
||||
<tr><td>I</td><td align='left' >Open Stats/Info </td><td></td><td>F7</td><td align='left' >Store Map Position 3</td><td>Shift-Key</td></tr>
|
||||
<tr><td>=</td><td align='left' >Cycle Award Layers</td><td></td><td>F8</td><td align='left' >Recall Map Position 4</td><td></td></tr>
|
||||
<tr><td>K</td><td align='left' >Capture Screenshot</td><td></td><td>F8</td><td align='left' >Store Map Position 4</td><td>Shift-Key</td></tr>
|
||||
<tr><td>L</td><td align='left' >Open ADIF file</td><td></td><td>F9</td><td align='left' >Recall Map Position 5</td><td></td></tr>
|
||||
<tr><td>M</td><td align='left' >Add MapCenter Alert</td><td>right-click<br>empty grid</td><td>F9</td><td align='left' >Store Map Position 5</td><td>Shift-Key</td></tr>
|
||||
<tr><td>M</td><td align='left' >Toggle Audio Mute</td><td></td><td>F10</td><td align='left' >Recall Map Position 6</td><td></td></tr>
|
||||
<tr><td>N</td><td align='left' >Toggle Grayline</td><td></td><td>F10</td><td align='left' >Store Map Position 6</td><td>Shift-Key</td></tr>
|
||||
<tr><td>O</td><td align='left' >Toggle RX Spots</td><td></td><td>F11</td><td align='left' >Toggle Fullscreen</td><td></td></tr>
|
||||
<tr><td>P</td><td align='left' >Toggle Grid/PushPin Mode</td><td></td><td>F12</td><td align='left' >Toggle Sidebar Menu</td><td></td>
|
||||
<tr><td>Y</td><td align='left' >Toggle Global Lightning</td><td></td><td>X</td><td align='left' >Toggle Map Position Info</td><td></td>
|
||||
<tr><td>Ø</td><td align='left' >Toggle US Nexrad Overlay</td><td></td><td>9</td><td align='left' >Toggle Timezone Overlay</td><td></td>
|
||||
<tr><td>8</td><td align='left' >Show FFMA Award Layer</td><td></td><td>J</td><td align='left' >Show GMA Award Layer</td><td></td>
|
||||
<tr><td>1</td><td align='left' >Show General Map Layer</td><td></td> <td>Q</td><td align='left' >Cycle Logbook/Live View</td> <td></td></tr>
|
||||
<tr><td>2</td><td align='left' >Show CQ Zones Award Layer</td><td></td> <td>R</td><td align='left' >Open Call Roster Window</td><td></td></tr>
|
||||
<tr><td>3</td><td align='left' >Show ITU Zones Award Layer</td><td></td> <td>S</td><td align='left' >Open Settings</td> <td></td></tr>
|
||||
<tr><td>4</td><td align='left' >Show Continents Award Layer</td><td></td> <td>T</td><td align='left' >Toggle RX Spots over Grids</td><td></td></tr>
|
||||
<tr><td>5</td><td align='left' >Show US States Award Layer</td><td></td> <td>T</td><td align='left' >Add TTS Alert</td><td>right-click<br>empty grid</td></tr>
|
||||
<tr><td>6</td><td align='left' >Show DXCC Award Layer</td><td></td> <td>U</td><td align='left' >Toggle Award Layer Merge</td><td></td></tr>
|
||||
<tr><td>7</td><td align='left' >Show US Counties Award Layer</td><td></td> <td>V</td><td align='left' >Add PopUp Alert</td><td>right-click<br>empty grid</td></tr>
|
||||
<tr><td>8</td><td align='left' >Show US Continental Grids Award Layer</td><td></td> <td>W</td><td align='left' >Toggle Maidenhead Grid Size</td> <td></td></tr>
|
||||
<tr><td>9</td><td align='left' >Toggle Timezone Overlay</td><td></td> <td>X</td><td align='left' >Toggle Map Position Info</td><td></td></tr>
|
||||
<tr><td>0</td><td align='left' >Toggle US Nexrad Overlay</td><td></td> <td>Y</td><td align='left' >Toggle Global Lightning</td><td></td></tr>
|
||||
<tr><td>=</td><td align='left' >Cycle Award Layers</td><td></td> <td>Z</td><td align='left' >Center Map on QTH Grid</td><td></td></tr>
|
||||
<tr><td>A</td><td align='left' >Toggle Active Path Animation</td><td></td> <td>F1</td><td align='left' >Hot Key List (This List)</td><td></td></tr>
|
||||
<tr><td>B</td><td align='left' >Toggle All Grid Overlay</td><td></td> <td>F5</td><td align='left' >Recall Map Position 1</td><td></td></tr>
|
||||
<tr><td>C</td><td align='left' >Open Conditions Windows</td><td></td> <td>F5</td><td align='left' >Store Map Position 1</td><td>Shift-Key</td></tr>
|
||||
<tr><td>D</td><td align='left' >Toggle Moon Tracking</td><td></td> <td>F6</td><td align='left' >Recall Map Position 2</td><td></td></tr>
|
||||
<tr><td>E</td><td align='left' >Toggle 24h Moon Trajectory</td><td></td> <td>F6</td><td align='left' >Store Map Position 2</td><td>Shift-Key</td></tr>
|
||||
<tr><td>F</td><td align='left' >Toggle RX Spots Flight</td><td></td> <td>F7</td><td align='left' >Recall Map Position 3</td><td></td></tr>
|
||||
<tr><td>G</td><td align='left' >Toggle GridTracker Flags</td><td></td> <td>F7</td><td align='left' >Store Map Position 3</td><td>Shift-Key</td></tr>
|
||||
<tr><td>H</td><td align='left' >Toggle RX Spots Heatmap</td><td></td> <td>F8</td><td align='left' >Recall Map Position 4</td><td></td></tr>
|
||||
<tr><td>I</td><td align='left' >Open Stats/Info </td><td></td> <td>F8</td><td align='left' >Store Map Position 4</td><td>Shift-Key</td></tr>
|
||||
<tr><td>K</td><td align='left' >Capture Screenshot</td><td></td> <td>F9</td><td align='left' >Recall Map Position 5</td><td></td></tr>
|
||||
<tr><td>L</td><td align='left' >Open ADIF file</td><td></td> <td>F9</td><td align='left' >Store Map Position 5</td><td>Shift-Key</td></tr>
|
||||
<tr><td>M</td><td align='left' >Toggle Audio Mute</td><td></td> <td>F10</td><td align='left' >Recall Map Position 6</td><td></td></tr>
|
||||
<tr><td>M</td><td align='left' >Add MapCenter Alert</td><td>right-click<br>empty grid</td> <td>F10</td><td align='left' >Store Map Position 6</td><td>Shift-Key</td></tr>
|
||||
<tr><td>N</td><td align='left' >Toggle Grayline</td><td></td> <td>F11</td><td align='left' >Toggle Fullscreen</td><td></td></tr>
|
||||
<tr><td>O</td><td align='left' >Toggle RX Spots</td><td></td> <td>F12</td><td align='left' >Toggle Sidebar Menu</td><td></td></tr>
|
||||
<tr><td>P</td><td align='left' >Toggle Grid/PushPin Mode</td><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
|
@ -348,10 +353,10 @@
|
|||
<div id="rootSettingsDiv" style="margin:0;top:1px;display:none;background-color:#00000000;padding:0px;text-align:center;vertical-align:middle;position:relative;z-index:600;" class="roundBorder" >
|
||||
<div class="settingstab">
|
||||
<button id="generalbut" class="settingsTablinks active" onclick="openSettingsTab(event, 'udpSettingsDiv')">General</button>
|
||||
<button id="logbut" class="settingsTablinks" onclick="openSettingsTab(event, 'logbookSettingsDiv')">Logbook</button>
|
||||
<button id="lookupbut" class="settingsTablinks" onclick="openSettingsTab(event, 'lookupsSettingsDiv')">Lookups</button>
|
||||
<button class="settingsTablinks" onclick="openSettingsTab(event, 'SpeechSettingsDiv')">Audio</button>
|
||||
<button class="settingsTablinks" onclick="openSettingsTab(event, 'mapSettingsDiv')">Map</button>
|
||||
<button class="settingsTablinks" onclick="openSettingsTab(event, 'spotSettingsDiv')">RX Spots</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, 'callRosterDiv')">Call Roster</button>
|
||||
|
@ -589,134 +594,47 @@
|
|||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<table align=center style="display:inline-table">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="ulsLoadDiv" class="mapItem" >
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td colspan=2 style="font-weight:bold;color:yellow">US Callsign Database</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>Use?<input title="Display US callsign status in Call Roster" type="checkbox" id="ulsUseEnable" onclick="ulsValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="ulsWeeklyTd" style="display:none" colspan=2>Download Weekly?<input title="Download US callsigns weekly" type="checkbox" id="ulsWeeklyEnable" onclick="ulsValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="ulsNowTd" style="display:none" colspan=2><div class="button" onclick="ulsDownload(true);">Download Now!</div></td>
|
||||
</tr>
|
||||
<tr id="ulsLastTr">
|
||||
<td align=right>Last Update:</td><td id="ulsUpdatedTd" align=left><b>Never<b></td>
|
||||
</tr>
|
||||
<tr id="ulsWhenTr">
|
||||
<td align=right>Next Update:</td><td align=left id="ulsWhenTd"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center colspan=2 id="ulsCountTd"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center style="display:inline-table">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="lotwLoadDiv" class="mapItem" >
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td colspan=2 style="font-weight:bold;color:yellow">Logbook of The World Callsigns</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>Use?<input title="Display LoTW callsign status in Call Roster" type="checkbox" id="lotwUseEnable" onclick="lotwValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="lotwWeeklyTd" style="display:none" colspan=2>Download Weekly?<input title="Download LoTW callsigns weekly" type="checkbox" id="lotwWeeklyEnable" onclick="lotwValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="lotwNowTd" style="display:none" colspan=2><div class="button" onclick="lotwDownload(true);">Download Now!</div></td>
|
||||
</tr>
|
||||
<tr id="lotwLastTr">
|
||||
<td align=right>Last Update:</td><td id="lotwUpdatedTd" align=left><b>Never<b></td>
|
||||
</tr>
|
||||
<tr id="lotwWhenTr">
|
||||
<td align=right>Next Update:</td><td align=left id="lotwWhenTd"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center colspan=2 id="lotwCountTd"></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<div id="callsignDatabaseDiv" class="mapItem" >
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table><br/>
|
||||
<table align=center style="display:inline-table">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="eqslLoadDiv" class="mapItem" >
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td colspan=2 style="font-weight:bold;color:yellow">eQSL Callsigns</td>
|
||||
</tr>
|
||||
<table align=center class="darkTable" >
|
||||
<tr><th colspan=6 style="font-weight:bold;color:yellow" >Callsign Databases</th></tr>
|
||||
<tr><th>Database</th><th>Enabled</th><th>Last Download</th><th>Count</th></tr>
|
||||
<tr>
|
||||
<td colspan=2>Use?<input title="Display eqsl callsign status in Call Roster" type="checkbox" id="eqslUseEnable" onclick="eqslValuesChanged();" /></td>
|
||||
<td>United States ULS</td>
|
||||
<td>
|
||||
<input type="checkbox" id="ulsUseEnable" onclick="ulsValuesChanged();" >
|
||||
</td>
|
||||
<td id="ulsUpdatedTd" >Never</td>
|
||||
<td id="ulsCountTd">0</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="eqslWeeklyTd" style="display:none" colspan=2>Download Weekly?<input title="Download eqsl callsigns weekly" type="checkbox" id="eqslWeeklyEnable" onclick="eqslValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="eqslNowTd" style="display:none" colspan=2><div class="button" onclick="eqslDownload(true);">Download Now!</div></td>
|
||||
</tr>
|
||||
<tr id="eqslLastTr">
|
||||
<td align=right>Last Update:</td><td id="eqslUpdatedTd" align=left><b>Never<b></td>
|
||||
</tr>
|
||||
<tr id="eqslWhenTr">
|
||||
<td align=right>Next Update:</td><td align=left id="eqslWhenTd"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center colspan=2 id="eqslCountTd"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table align=center style="display:inline-table">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="orqsLoadDiv" class="mapItem" >
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td colspan=2 style="font-weight:bold;color:yellow">ClubLog OQRS Callsigns</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>Use?<input title="Display Clublog OQRS Status in Call Roster?" type="checkbox" id="oqrsUseEnable" onclick="oqrsValuesChanged();" /></td>
|
||||
<td>Logbook of The World</td>
|
||||
<td>
|
||||
<input type="checkbox" id="lotwUseEnable" onclick="lotwValuesChanged();" >
|
||||
</td>
|
||||
<td id="lotwUpdatedTd" >Never</td>
|
||||
<td id="lotwCountTd">0</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="oqrsWeeklyTd" style="display:none" colspan=2>Download Weekly?<input title="Download oqrs callsigns weekly" type="checkbox" id="oqrsWeeklyEnable" onclick="oqrsValuesChanged();" /></td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td id="oqrsNowTd" style="display:none" colspan=2><div class="button" onclick="oqrsDownload(true);">Download Now!</div></td>
|
||||
<tr>
|
||||
<td>eQSL</td>
|
||||
<td>
|
||||
<input type="checkbox" id="eqslUseEnable" onclick="eqslValuesChanged();" >
|
||||
</td>
|
||||
<td id="eqslUpdatedTd" >Never</td>
|
||||
<td id="eqslCountTd">0</td>
|
||||
</tr>
|
||||
<tr id="oqrsLastTr">
|
||||
<td align=right>Last Update:</td><td id="oqrsUpdatedTd" align=left><b>Never<b></td>
|
||||
<tr>
|
||||
<td>ClubLog OQRS</td>
|
||||
<td>
|
||||
<input type="checkbox" id="oqrsUseEnable" onclick="oqrsValuesChanged();" >
|
||||
</td>
|
||||
<td id="oqrsUpdatedTd" >Never</td>
|
||||
<td id="oqrsCountTd">0</td>
|
||||
</tr>
|
||||
<tr id="oqrsWhenTr">
|
||||
<td align=right>Next Update:</td><td align=left id="oqrsWhenTd"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=center colspan=2 id="oqrsCountTd"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="SpeechSettingsDiv" class="settingsTabcontent">
|
||||
<div class="roundBorder" style="border:1px solid #666;margin:2px;padding:5px">
|
||||
|
@ -830,6 +748,46 @@
|
|||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="logbookSettingsDiv" class="settingsTabcontent" style="padding:5px;">
|
||||
<div style="padding:5px;" class="mapItem">
|
||||
<div style="padding:5px;" class="mapItem" title="Filter Logbook QSO To These Callsigns Only (comma seperated)">
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td><b>Working Callsign(s)</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Enable? <input title="Enable Filtering" type="checkbox" id="workingCallsignEnable" onclick="workingCallsignEnableChanged(this);" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="workingCallsignsTd" style="" >Callsign(s)<input id="workingCallsignsValue" type="text" class="inputTextValue" size="15" onkeypress='return validCallsignsKeys(event.charCode);' oninput="if ( ValidateCallsigns(this) ) workingCallsignsChanged(this);"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="padding:5px;" class="mapItem" title="Filter Logbook QSO From This Date And After">
|
||||
<table align=center>
|
||||
<tr>
|
||||
<td><b>Working Date</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Enable? <input title="Enable Filtering" type="checkbox" id="workingDateEnable" onclick="workingDateEnableChanged(this);" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="roundBorderValue" style="width:auto;font-size:larger;font-weight:bold;" id="workingDateString">No Date</div>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="workingDateTd" title="Date is UTC">
|
||||
<input style="display:none" type="text" id="workingDateValue" />
|
||||
<div id="pick-inline"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div style="padding:5px;display:none;font-size:larger:font-weight:bold:color:cyan;" id="applyCallsignsAndDateDiv" class="button" onclick="applyCallsignsAndDates();" title="Apply Changes and Re-Import Logbook(s)">Apply Changes</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mapSettingsDiv" class="settingsTabcontent" style="background-color:#00000044;text-shadow: 0 0 5px #000000FF;">
|
||||
<div class="mapItem" >
|
||||
<table align="center">
|
||||
|
@ -844,7 +802,6 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
|
@ -870,28 +827,7 @@
|
|||
<td colspan=2><input type="range" min="0" max="86400" value="600" step="60" class="slider" id="gridDecay" oninput="changeGridDecay()" onkeyup="redrawGrids()" onmouseup="redrawGrids()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Split QSL Grids</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Split QSL Grids with Live Grids"><input type="checkbox" id="splitQSLValue" onclick="changeSplitQSL()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Grid Mouse-Over Tables</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Grid Mouse-Over Tables"><input type="checkbox" id="mouseOverValue" onclick="changeMouseOverValue()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
</div><br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
|
@ -935,17 +871,8 @@
|
|||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Merge Award Overlay</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Merge Award Overlay"><input type="checkbox" id="mergeOverlayValue" onclick="changeMergeOverlayValue()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Grayline Darkness</td>
|
||||
|
@ -977,7 +904,37 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Split QSL Grids</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Split QSL Grids with Live Grids"><input type="checkbox" id="splitQSLValue" onclick="changeSplitQSL()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Grid Mouse-Over Tables</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Grid Mouse-Over Tables"><input type="checkbox" id="mouseOverValue" onclick="changeMouseOverValue()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Merge Award Overlay</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle Merge Award Overlay"><input type="checkbox" id="mergeOverlayValue" onclick="changeMergeOverlayValue()" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
|
@ -997,18 +954,7 @@
|
|||
<td title="Toggle 'CQ XX' Highlighting"><input type="checkbox" id="CqHiliteValue" onclick="changeCqHiliteValue(this);" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">US Weather Radar</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td title="Toggle U.S. Weather Radar Overlay"><input type="checkbox" id="UsNexradValue" onclick="toggleNexrad();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div><br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr>
|
||||
|
@ -1018,7 +964,40 @@
|
|||
<td title="If a station grid is not known use the DXCC"><input type="checkbox" id="qrzDxccFallbackValue" onclick="changeQrzDxccFallbackValue();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><br/>
|
||||
</div>
|
||||
<div class="mapItem" id="spotPathColorDiv">
|
||||
<table align="center">
|
||||
<tr align="center">
|
||||
<td align="center" ><b>PSK-Spot Color</b></td>
|
||||
</tr>
|
||||
<tr align="center" >
|
||||
<td colspan=2><input type="range" min="-1" max="361" value="-1" class="slider" id="spotPathColorValue" oninput="spotPathChange();" onkeyup="redrawSpots();" onmouseup="redrawSpots();"/></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td id="spotPathInfoTd">PSK-Reporter Palette</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem" >
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td title="Place RX Spots over Grid Layer">PSK-Spots Over Grids</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title="Place RX Spots over Grid Layer"><input type="checkbox" id="spotMergeValue" onclick="changeSpotValues();redrawSpots();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem" id="spotPathsDiv">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td title="Toggle flight paths to spots">PSK-Spot Paths</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title="Toggle flight paths to spots"><input type="checkbox" id="spotPathsValue" onclick="changeSpotValues();redrawSpots();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><br/>
|
||||
<div class="mapItem">
|
||||
<table align="center">
|
||||
<tr >
|
||||
|
@ -1063,6 +1042,19 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem" id="spotNightPathColorDiv" style="display:none">
|
||||
<table align="center">
|
||||
<tr align="center">
|
||||
<td align="center" ><b>Night PSK-Spot Color</b></td>
|
||||
</tr>
|
||||
<tr align="center" >
|
||||
<td colspan=2><input type="range" min="-1" max="361" value="-1" class="slider" id="spotNightPathColorValue" oninput="spotPathChange();" onkeyup="redrawSpots();" onmouseup="redrawSpots();"/></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td id="spotNightPathInfoTd">PSK-Reporter Palette</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="mapItem" >
|
||||
<table align="center">
|
||||
|
@ -1078,73 +1070,21 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div id="spotSettingsDiv" class="settingsTabcontent" style="background-color:#00000044;text-shadow: 0 0 5px #000000FF;">
|
||||
<div class="mapItem" id="spotPathColorDiv">
|
||||
<table align="center">
|
||||
<tr align="center">
|
||||
<td align="center" ><b>Spot Color</b></td>
|
||||
</tr>
|
||||
<tr align="center" >
|
||||
<td colspan=2><input type="range" min="-1" max="361" value="-1" class="slider" id="spotPathColorValue" oninput="spotPathChange();" onkeyup="redrawSpots();" onmouseup="redrawSpots();"/></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td id="spotPathInfoTd">PSK-Reporter Palette</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem" id="spotNightPathColorDiv" style="display:none">
|
||||
<table align="center">
|
||||
<tr align="center">
|
||||
<td align="center" ><b>Night Spot Color</b></td>
|
||||
</tr>
|
||||
<tr align="center" >
|
||||
<td colspan=2><input type="range" min="-1" max="361" value="-1" class="slider" id="spotNightPathColorValue" oninput="spotPathChange();" onkeyup="redrawSpots();" onmouseup="redrawSpots();"/></td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td id="spotNightPathInfoTd">PSK-Reporter Palette</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="mapItem" id="spotPathsDiv">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td title="Toggle flight paths to spots">PSK-Reporter Spot Paths</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title="Toggle flight paths to spots"><input type="checkbox" id="spotPathsValue" onclick="changeSpotValues();redrawSpots();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="mapItem" id="spotPathWidthDiv">
|
||||
|
||||
<div class="mapItem" id="spotPathWidthDiv">
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td align="center">Spot Path Width</td>
|
||||
<td align="center">PSK-Spot Path Width</td>
|
||||
<td align="left" id="spotWidthTd">1.5</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td colspan=2><input type="range" min="0.0" max="5" value="1.5" step="0.05" class="slider" id="spotWidthValue" oninput="spotPathChange();" onkeyup="redrawSpots();" onmouseup="redrawSpots();"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<br/>
|
||||
<div class="mapItem" >
|
||||
<table align="center">
|
||||
<tr>
|
||||
<td title="Place RX Spots over Grid Layer">Spots over Grids</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title="Place RX Spots over Grid Layer"><input type="checkbox" id="spotMergeValue" onclick="changeSpotValues();redrawSpots();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div id="logSettingsDiv" class="settingsTabcontent">
|
||||
<div id="LoadAdifOnStartupDiv" style="left:0;padding:1px;overflow:auto;overflow-x:hidden;display:inline-block;height:602px" class="roundBorder">
|
||||
<table class='darkTable' align=center>
|
||||
|
@ -1318,7 +1258,7 @@
|
|||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>N3FJP ACLog</td>
|
||||
<td>N3FJP Loggers</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><input type="checkbox" checked="false" class="inputTextValue" id="buttonacLogCheckBox" onclick=" ValidateIPaddress(acLogIpInput,this); ValidatePort(acLogPortInput,this, null ); acLogLoggerChanged(); " /></td>
|
||||
|
@ -1805,7 +1745,9 @@
|
|||
©2020 Stephen "Tag" Loomis / NØTTL<br />
|
||||
<br />
|
||||
©2020 Henry "atouk" Forte / N2VFL<br/>
|
||||
<br />
|
||||
<p>
|
||||
<H3>Contributors</H3>
|
||||
<b>NRØQ</b> - "d3jake" KEØRIY - "Don" KB2YSI - K4KPW
|
||||
<br />
|
||||
<img src="./gridview.png" /> <br />
|
||||
|
||||
|
|
|
@ -1,100 +1,108 @@
|
|||
<!--center>
|
||||
<img style=" display: inline-block;" src="./img/award-medal.svg" width="75px">
|
||||
<div style=" display: inline-block;font-size:36px;font-weight:bold;vertical-align:top;padding-top:15px;">
|
||||
Award Tracker is here!
|
||||
</div>
|
||||
<img style=" display: inline-block;" src="./img/award-trophy.svg" width="75px">
|
||||
</center-->
|
||||
<center>
|
||||
<img src="./img/roster-button.svg" width="120px"><br/>
|
||||
<font size="larger">
|
||||
This is the last release until we have documentation ready or there is a bug.<p>
|
||||
All feature requests will be added to the backlog.<p>
|
||||
We will prioritize them in our public #Round-Table room on our Discord server.<p>
|
||||
Here is a link to our Discord server. <a href="https://discord.gg/j9Cv9XU" target="_blank" style="font-weight:bold;color:cyan">Link</a><p>
|
||||
</font>
|
||||
<i>We recommend downloading the Discord app instead of using the browser.</i>
|
||||
</center>
|
||||
<pre>
|
||||
[v1.20.0821] August 21st, 2020
|
||||
GridTracker:
|
||||
I have improved the UI/UX (User interface/User Experience) in this release
|
||||
I have moved buttons around & items are labeled for clarity
|
||||
Most items/buttons that you can interact with have a tooltip
|
||||
Simply hover your mouse-pointer over an item/field/button & it will describe it
|
||||
|
||||
Main Window:
|
||||
Update:
|
||||
"Call Roster + Award Tracker" Text button now a
|
||||
"Call Roster + Award" Icon button
|
||||
|
||||
"Lookup" Icon button less creepy
|
||||
|
||||
New:
|
||||
"?" Icon button toggles the Hotkey List
|
||||
In the next release it will open documentation
|
||||
|
||||
"Timezone" Icon button toggles Timezone layer
|
||||
|
||||
"Radar" Icon button toggles US Nexrad Weather layer
|
||||
|
||||
Hotkey List:
|
||||
Ordered by Key for clarity
|
||||
Added Version to header
|
||||
|
||||
Map:
|
||||
Fixed:
|
||||
"Timezone" layer very slow to react
|
||||
|
||||
Settings:
|
||||
Update:
|
||||
Merged Spots Tab with Map Tab to make room for Logbook Tab
|
||||
|
||||
Logbook:
|
||||
New Tab!:
|
||||
"Working Callsign(s)"
|
||||
When enabled, filter your logbooks by callsigns
|
||||
eg: "N0TTL,N0OAW,KE0PEA"
|
||||
|
||||
"Working Date"
|
||||
When enabled, filter your logbooks by anything on or after date
|
||||
|
||||
Lookups:
|
||||
Update:
|
||||
Callsign Database now list instead of boxes
|
||||
Making room for more callsign databases
|
||||
NR0Q found the Canadian call-db and will be in a future release
|
||||
|
||||
Downloads are now automatic and weekly when enabled
|
||||
The US Database is only 10mb
|
||||
|
||||
US Callsign Database:
|
||||
Fixed:
|
||||
Corrupt/Incomplete database due to program close while downloading
|
||||
|
||||
GridTracker Main Window:
|
||||
Update:
|
||||
"Map View" renamed "Map View Filters"
|
||||
"Callable Roster" renamed "Call Roster + Award Tracker"
|
||||
Minimum width now 200 pixels (you can hide the map now)
|
||||
|
||||
New:
|
||||
"Prop" added to "Map View Filters"
|
||||
Propagation Mode for filtering Logbook data *only*
|
||||
Live data view is unaffected
|
||||
|
||||
Update:
|
||||
Removed "FFMA" and "GMA" award layers and replaced with "US48" layer
|
||||
To view your Fred Fish Memorial "FFMA" Award:
|
||||
Select "US48" hotkey (8) then;
|
||||
Set your Band filter to "6m"
|
||||
|
||||
To view your AMSAT GridMaster "GMA" Award:
|
||||
Select "US48" hotkey (8) then;
|
||||
Set your Band & Mode filters to "Mixed"
|
||||
Set your Prop filter to "Satellite"
|
||||
|
||||
Call Roster:
|
||||
Update:
|
||||
Callable Roster renamed to "Call Roster"
|
||||
|
||||
Fixed:
|
||||
Award Tracking:
|
||||
"Wanted" box remains as it's needed
|
||||
Fix bad filtering flags
|
||||
|
||||
When enabling "Wanted" entities; right-click menu now tracks correctly
|
||||
|
||||
Issue with New/Unconfirmed callsigns not showing up at all
|
||||
|
||||
Return of the "strikeout" on callsigns that have been confirmed
|
||||
by popular demand
|
||||
|
||||
Compact Mode:
|
||||
Sorted by "Age" for now
|
||||
(Will add a right-click menu to select sort type later on)
|
||||
|
||||
Added "DXCC" under "Callsign"
|
||||
|
||||
Tooltip(mouse-over) added with decode details
|
||||
(Will add Worked/Confirmed status by band/mode later on)
|
||||
|
||||
|
||||
PSK-Spots:
|
||||
Fixed:
|
||||
Memory issue when 1500 spots in 24 hours
|
||||
Thanks to mister "I get out" NR0Q for finding this one
|
||||
|
||||
Logging:
|
||||
Local Files(s)
|
||||
Details:
|
||||
Filename now has a tooltip with the full file path
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Fixed:
|
||||
Hide Controls/Show Controls getting out of sync when switching views
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Below is the backlog of features that have been prioritized for the next
|
||||
release *after* we get our first update to documentation in over 2 years!
|
||||
|
||||
Output from the most recent Round-Table discussion on new features...
|
||||
|
||||
Ordered by priority:
|
||||
|
||||
DX Logbook, HRD Logbook , N3FJP ACLog, Log4OM.. QSL Import and Synchronization
|
||||
|
||||
Create Award Tracker Stats Tab
|
||||
|
||||
Add Settings Window To Call Roster
|
||||
|
||||
Add New Ignores in "new settings window" in Call Roster
|
||||
|
||||
Add Callsign and DXCC right-click "Add Call/DXCC Watcher" + "Edit Watcher"
|
||||
|
||||
Add Lighting alert volume .. and mute override and media selector
|
||||
|
||||
Audio Alerts fix up
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Thank you for reading the entire update!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Mention "phone-sofa" in any forum I read and I'll send you a GridTracker token
|
||||
to the address associated with your callsign lookup
|
||||
|
||||
Please don't mention this easter-egg to anyone. I want to see who reads the update
|
||||
|
||||
To the 21 of you out of 650-ish, who downloaded and read the update in v1.20.0819:
|
||||
I salute you! And I'll be shipping out tokens when I get a chance! Thank you!
|
||||
|
||||
</pre>
|
||||
<center><img class="button" src="./img/tokens.jpg" width="400px"></center>
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(0.878906, 0, 0, 0.878906, 36.273491, 36.273491)">
|
||||
<path style="fill:#FFC10D;" d="M 250.001 47.353 C 138.386 47.353 47.355 138.228 47.355 249.999 C 47.355 361.771 138.229 452.648 250.001 452.648 C 361.616 452.648 452.647 361.774 452.647 250.002 C 452.647 138.23 361.616 47.353 250.001 47.353 Z"/>
|
||||
<g transform="matrix(2.448987, 0, 0, 2.448987, -455.308258, -6.001185)">
|
||||
<path style="fill:#194F82;" d="M288,139.313c-6.012,0-10.925,4.848-10.925,10.925v4.396c0,6.012,4.849,10.925,10.925,10.925 s10.925-4.848,10.925-10.925v-4.396C298.861,144.162,294.012,139.313,288,139.313z"/>
|
||||
<path style="fill:#194F82;" d="M288,0c-57.665,0-104.533,46.933-104.533,104.533S230.4,209.067,288,209.067 s104.533-46.933,104.533-104.533S345.665,0,288,0z M288,187.281c-45.576,0-82.747-37.107-82.747-82.747S242.36,21.786,288,21.786 c45.576,0,82.747,37.107,82.747,82.747S333.576,187.281,288,187.281z"/>
|
||||
<path style="fill:#194F82;" d="M296.081,44.412c-35.362-5.172-46.287,23.855-46.287,37.301c0,6.012,4.848,10.925,10.925,10.925 c6.077,0,10.731-4.848,10.925-10.925c0.323-8.986,9.503-19.653,20.04-15.968c5.883,2.069,11.055,6.271,12.347,12.347 c1.875,8.986-3.168,15.709-9.051,18.489c-10.796,5.107-17.842,16.097-17.842,27.798c0,6.012,4.848,10.925,10.925,10.925 c6.077,0,10.925-4.848,10.925-10.925c0-3.491,2.069-6.594,5.301-8.145c16.097-7.564,24.76-25.083,21.075-42.667 C322.327,59.281,308.558,46.287,296.081,44.412z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
<g transform="matrix(1, 0, 0, 1, 82.247354, 53.825489)"/>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 2.4 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.5 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" id="Capa_1" x="0px" y="0px" width="462.406px" height="462.406px" viewBox="0 0 462.406 462.406" style="enable-background:new 0 0 462.406 462.406;" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient gradientUnits="userSpaceOnUse" x1="217.806" y1="-218.892" x2="217.806" y2="279.522" id="gradient-1" gradientTransform="matrix(-0.716123, 0.697973, -0.484537, -0.497134, 382.170738, 69.41588)">
|
||||
<stop offset="0" style="stop-color: rgb(85, 114, 218);"/>
|
||||
<stop offset="1" style="stop-color: rgb(253, 253, 253);"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="matrix(0.927755, 0, 0, 0.927756, 16.702961, 16.703011)">
|
||||
<path d="M 252.931 158.19 C 252.931 194.626 223.401 224.156 186.965 224.156 C 150.53 224.156 120.999 194.626 120.999 158.19 C 120.999 121.755 150.53 92.225 186.965 92.225 C 223.394 92.225 252.931 121.763 252.931 158.19 Z M 467.526 467.526 C 458.943 476.115 447.684 480.41 436.434 480.41 C 425.182 480.41 413.924 476.115 405.341 467.526 C 405.341 467.526 293.331 355.398 292.445 354.299 C 261.103 374.301 223.907 385.94 183.968 385.94 C 72.421 385.941 -18.004 295.515 -18.004 183.969 C -18.004 72.421 72.427 -18.004 183.969 -18.004 C 295.51 -18.004 385.941 72.421 385.941 183.968 C 385.941 223.906 374.301 261.103 354.3 292.445 C 355.399 293.323 467.527 405.341 467.527 405.341 C 484.705 422.509 484.705 450.352 467.526 467.526 Z M 343.862 183.968 C 343.862 95.662 272.274 24.074 183.969 24.074 C 95.663 24.074 24.075 95.662 24.075 183.968 C 24.075 234.929 47.947 280.292 85.086 309.574 C 89.916 273.777 120.518 246.152 157.641 246.152 L 216.277 246.152 C 251.877 246.152 281.524 271.541 288.164 305.19 C 322.247 275.866 343.862 232.453 343.862 183.968 Z" style="paint-order: stroke; stroke: rgb(56, 36, 230); stroke-width: 0px; fill: url(#gradient-1);"/>
|
||||
</g>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 1.8 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<path style="fill:#A4E276;" d="M488.727,186.182H325.818V23.273C325.818,10.418,315.398,0,302.545,0H256h-46.545
|
||||
c-12.853,0-23.273,10.418-23.273,23.273v162.909H23.273C10.42,186.182,0,196.6,0,209.455v93.091
|
||||
c0,12.853,10.42,23.273,23.273,23.273h162.909v162.909c0,12.853,10.42,23.273,23.273,23.273H256h46.545
|
||||
c12.853,0,23.273-10.42,23.273-23.273V325.818h162.909c12.853,0,23.273-10.42,23.273-23.273v-93.091
|
||||
C512,196.6,501.58,186.182,488.727,186.182z"/>
|
||||
<path style="fill:#64C37D;" d="M209.455,0c-12.853,0-23.273,10.418-23.273,23.273v162.909H23.273C10.42,186.182,0,196.6,0,209.455
|
||||
v93.091c0,12.853,10.42,23.273,23.273,23.273h162.909v162.909c0,12.853,10.42,23.273,23.273,23.273H256V0H209.455z"/>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 1.0 KiB |
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(1.15723, 0, 0, 1.15723, -40.250763, -40.250763)">
|
||||
<circle style="fill: rgb(0, 157, 26);" cx="256" cy="256" r="211.908"/>
|
||||
<path style="fill:#4D4D4D;" d="M 255.996 406.842 C 172.823 406.842 105.155 339.176 105.155 256.001 C 105.155 172.826 172.821 105.16 255.996 105.16 C 296.288 105.16 334.168 120.85 362.658 149.342 C 366.294 152.978 366.294 158.873 362.658 162.508 C 359.022 166.144 353.127 166.144 349.492 162.508 C 324.519 137.534 291.316 123.781 255.997 123.781 C 183.091 123.781 123.776 183.094 123.776 256.002 C 123.776 328.91 183.089 388.223 255.997 388.223 C 328.905 388.223 388.218 328.91 388.218 256.002 C 388.218 250.86 392.386 246.692 397.528 246.692 C 402.67 246.692 406.838 250.86 406.838 256.002 C 406.837 339.174 339.169 406.842 255.996 406.842 Z"/>
|
||||
<path style="fill: rgb(210, 210, 52);" d="M 255.996 265.311 C 253.614 265.311 251.231 264.402 249.413 262.584 C 245.777 258.948 245.777 253.053 249.413 249.418 L 399.221 99.609 C 402.857 95.973 408.752 95.973 412.387 99.609 C 416.023 103.245 416.023 109.14 412.387 112.775 L 262.579 262.584 C 260.761 264.403 258.378 265.311 255.996 265.311 Z"/>
|
||||
<path style="fill:#F95428;" d="M 381.412 211.747 C 378.954 211.747 376.558 210.754 374.821 209.028 C 374.399 208.594 374.002 208.122 373.667 207.613 C 373.332 207.104 373.046 206.558 372.81 205.999 C 372.574 205.44 372.4 204.857 372.276 204.261 C 372.164 203.653 372.102 203.044 372.102 202.436 C 372.102 201.828 372.164 201.22 372.276 200.624 C 372.4 200.028 372.574 199.445 372.81 198.874 C 373.046 198.315 373.331 197.782 373.667 197.273 C 374.002 196.764 374.399 196.28 374.821 195.858 C 376.981 193.698 380.196 192.705 383.225 193.313 C 383.821 193.437 384.404 193.611 384.963 193.847 C 385.534 194.07 386.068 194.368 386.577 194.704 C 387.086 195.039 387.558 195.424 387.992 195.858 C 389.73 197.596 390.723 199.992 390.723 202.437 C 390.723 203.045 390.661 203.654 390.537 204.262 C 390.413 204.858 390.239 205.441 390.003 206 C 389.767 206.559 389.482 207.105 389.146 207.614 C 388.811 208.123 388.414 208.595 387.992 209.029 C 386.253 210.753 383.857 211.747 381.412 211.747 Z"/>
|
||||
<path style="fill: rgba(6, 6, 6, 0.34);" d="M 256 477.218 C 134.02 477.218 34.782 377.98 34.782 256 C 34.782 134.02 134.02 34.782 256 34.782 C 377.98 34.782 477.218 134.02 477.218 256 C 477.218 377.98 377.98 477.218 256 477.218 Z M 256 53.402 C 144.288 53.402 53.402 144.288 53.402 256 C 53.402 367.712 144.288 458.598 256 458.598 C 367.712 458.598 458.598 367.712 458.598 256 C 458.598 144.288 367.712 53.402 256 53.402 Z"/>
|
||||
<path style="fill:#4D4D4D;" d="M255.996,322.598c-36.721,0-66.595-29.875-66.595-66.596s29.874-66.595,66.595-66.595 c17.79,0,34.514,6.928,47.092,19.508c3.636,3.636,3.636,9.531,0,13.166c-3.636,3.636-9.531,3.636-13.166,0 c-9.062-9.063-21.11-14.053-33.927-14.053c-26.454,0-47.975,21.521-47.975,47.975s21.521,47.976,47.975,47.976 s47.976-21.522,47.976-47.976c0-5.142,4.168-9.31,9.31-9.31c5.142,0,9.31,4.168,9.31,9.31 C322.591,292.722,292.717,322.598,255.996,322.598z"/>
|
||||
<path style="fill:#F95428;" d="M 372.186 223.129 C 369.728 223.129 367.332 222.136 365.595 220.41 C 365.173 219.976 364.776 219.504 364.441 218.995 C 364.106 218.486 363.82 217.94 363.584 217.381 C 363.348 216.822 363.174 216.239 363.05 215.643 C 362.938 215.035 362.876 214.426 362.876 213.818 C 362.876 213.21 362.938 212.602 363.05 212.006 C 363.174 211.41 363.348 210.827 363.584 210.256 C 363.82 209.697 364.105 209.164 364.441 208.655 C 364.776 208.146 365.173 207.662 365.595 207.24 C 367.755 205.08 370.97 204.087 373.999 204.695 C 374.595 204.819 375.178 204.993 375.737 205.229 C 376.308 205.452 376.842 205.75 377.351 206.086 C 377.86 206.421 378.332 206.806 378.766 207.24 C 380.504 208.978 381.497 211.374 381.497 213.819 C 381.497 214.427 381.435 215.036 381.311 215.644 C 381.187 216.24 381.013 216.823 380.777 217.382 C 380.541 217.941 380.256 218.487 379.92 218.996 C 379.585 219.505 379.188 219.977 378.766 220.411 C 377.027 222.135 374.631 223.129 372.186 223.129 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 395.043 192.654 C 392.585 192.654 390.189 191.661 388.452 189.935 C 388.03 189.501 387.633 189.029 387.298 188.52 C 386.963 188.011 386.677 187.465 386.441 186.906 C 386.205 186.347 386.031 185.764 385.907 185.168 C 385.795 184.56 385.733 183.951 385.733 183.343 C 385.733 182.735 385.795 182.127 385.907 181.531 C 386.031 180.935 386.205 180.352 386.441 179.781 C 386.677 179.222 386.962 178.689 387.298 178.18 C 387.633 177.671 388.03 177.187 388.452 176.765 C 390.612 174.605 393.827 173.612 396.856 174.22 C 397.452 174.344 398.035 174.518 398.594 174.754 C 399.165 174.977 399.699 175.275 400.208 175.611 C 400.717 175.946 401.189 176.331 401.623 176.765 C 403.361 178.503 404.354 180.899 404.354 183.344 C 404.354 183.952 404.292 184.561 404.168 185.169 C 404.044 185.765 403.87 186.348 403.634 186.907 C 403.398 187.466 403.113 188.012 402.777 188.521 C 402.442 189.03 402.045 189.502 401.623 189.936 C 399.884 191.66 397.488 192.654 395.043 192.654 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 395.043 192.654 C 392.585 192.654 390.189 191.661 388.452 189.935 C 388.03 189.501 387.633 189.029 387.298 188.52 C 386.963 188.011 386.677 187.465 386.441 186.906 C 386.205 186.347 386.031 185.764 385.907 185.168 C 385.795 184.56 385.733 183.951 385.733 183.343 C 385.733 182.735 385.795 182.127 385.907 181.531 C 386.031 180.935 386.205 180.352 386.441 179.781 C 386.677 179.222 386.962 178.689 387.298 178.18 C 387.633 177.671 388.03 177.187 388.452 176.765 C 390.612 174.605 393.827 173.612 396.856 174.22 C 397.452 174.344 398.035 174.518 398.594 174.754 C 399.165 174.977 399.699 175.275 400.208 175.611 C 400.717 175.946 401.189 176.331 401.623 176.765 C 403.361 178.503 404.354 180.899 404.354 183.344 C 404.354 183.952 404.292 184.561 404.168 185.169 C 404.044 185.765 403.87 186.348 403.634 186.907 C 403.398 187.466 403.113 188.012 402.777 188.521 C 402.442 189.03 402.045 189.502 401.623 189.936 C 399.884 191.66 397.488 192.654 395.043 192.654 Z" transform="matrix(1, 0, 0, 1, 25.03314, 13.060962)"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 395.043 192.654 C 392.585 192.654 390.189 191.661 388.452 189.935 C 388.03 189.501 387.633 189.029 387.298 188.52 C 386.963 188.011 386.677 187.465 386.441 186.906 C 386.205 186.347 386.031 185.764 385.907 185.168 C 385.795 184.56 385.733 183.951 385.733 183.343 C 385.733 182.735 385.795 182.127 385.907 181.531 C 386.031 180.935 386.205 180.352 386.441 179.781 C 386.677 179.222 386.962 178.689 387.298 178.18 C 387.633 177.671 388.03 177.187 388.452 176.765 C 390.612 174.605 393.827 173.612 396.856 174.22 C 397.452 174.344 398.035 174.518 398.594 174.754 C 399.165 174.977 399.699 175.275 400.208 175.611 C 400.717 175.946 401.189 176.331 401.623 176.765 C 403.361 178.503 404.354 180.899 404.354 183.344 C 404.354 183.952 404.292 184.561 404.168 185.169 C 404.044 185.765 403.87 186.348 403.634 186.907 C 403.398 187.466 403.113 188.012 402.777 188.521 C 402.442 189.03 402.045 189.502 401.623 189.936 C 399.884 191.66 397.488 192.654 395.043 192.654 Z" transform="matrix(1, 0, 0, 1, 25.03314, 13.060962)"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 401.573 201.362 C 399.115 201.362 396.719 200.369 394.982 198.643 C 394.56 198.209 394.163 197.737 393.828 197.228 C 393.493 196.719 393.207 196.173 392.971 195.614 C 392.735 195.055 392.561 194.472 392.437 193.876 C 392.325 193.268 392.263 192.659 392.263 192.051 C 392.263 191.443 392.325 190.835 392.437 190.239 C 392.561 189.643 392.735 189.06 392.971 188.489 C 393.207 187.93 393.492 187.397 393.828 186.888 C 394.163 186.379 394.56 185.895 394.982 185.473 C 397.142 183.313 400.357 182.32 403.386 182.928 C 403.982 183.052 404.565 183.226 405.124 183.462 C 405.695 183.685 406.229 183.983 406.738 184.319 C 407.247 184.654 407.719 185.039 408.153 185.473 C 409.891 187.211 410.884 189.607 410.884 192.052 C 410.884 192.66 410.822 193.269 410.698 193.877 C 410.574 194.473 410.4 195.056 410.164 195.615 C 409.928 196.174 409.643 196.72 409.307 197.229 C 408.972 197.738 408.575 198.21 408.153 198.644 C 406.414 200.368 404.018 201.362 401.573 201.362 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 395.043 192.654 C 392.585 192.654 390.189 191.661 388.452 189.935 C 388.03 189.501 387.633 189.029 387.298 188.52 C 386.963 188.011 386.677 187.465 386.441 186.906 C 386.205 186.347 386.031 185.764 385.907 185.168 C 385.795 184.56 385.733 183.951 385.733 183.343 C 385.733 182.735 385.795 182.127 385.907 181.531 C 386.031 180.935 386.205 180.352 386.441 179.781 C 386.677 179.222 386.962 178.689 387.298 178.18 C 387.633 177.671 388.03 177.187 388.452 176.765 C 390.612 174.605 393.827 173.612 396.856 174.22 C 397.452 174.344 398.035 174.518 398.594 174.754 C 399.165 174.977 399.699 175.275 400.208 175.611 C 400.717 175.946 401.189 176.331 401.623 176.765 C 403.361 178.503 404.354 180.899 404.354 183.344 C 404.354 183.952 404.292 184.561 404.168 185.169 C 404.044 185.765 403.87 186.348 403.634 186.907 C 403.398 187.466 403.113 188.012 402.777 188.521 C 402.442 189.03 402.045 189.502 401.623 189.936 C 399.884 191.66 397.488 192.654 395.043 192.654 Z" transform="matrix(1, 0, 0, 1, 23.944737, 14.149365)"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 386.88 201.906 C 384.422 201.906 382.026 200.913 380.289 199.187 C 379.867 198.753 379.47 198.281 379.135 197.772 C 378.8 197.263 378.514 196.717 378.278 196.158 C 378.042 195.599 377.868 195.016 377.744 194.42 C 377.632 193.812 377.57 193.203 377.57 192.595 C 377.57 191.987 377.632 191.379 377.744 190.783 C 377.868 190.187 378.042 189.604 378.278 189.033 C 378.514 188.474 378.799 187.941 379.135 187.432 C 379.47 186.923 379.867 186.439 380.289 186.017 C 382.449 183.857 385.664 182.864 388.693 183.472 C 389.289 183.596 389.872 183.77 390.431 184.006 C 391.002 184.229 391.536 184.527 392.045 184.863 C 392.554 185.198 393.026 185.583 393.46 186.017 C 395.198 187.755 396.191 190.151 396.191 192.596 C 396.191 193.204 396.129 193.813 396.005 194.421 C 395.881 195.017 395.707 195.6 395.471 196.159 C 395.235 196.718 394.95 197.264 394.614 197.773 C 394.279 198.282 393.882 198.754 393.46 199.188 C 391.721 200.912 389.325 201.906 386.88 201.906 Z"/>
|
||||
<path style="fill: rgb(249, 239, 40);" d="M 392.866 223.129 C 390.408 223.129 388.012 222.136 386.275 220.41 C 385.853 219.976 385.456 219.504 385.121 218.995 C 384.786 218.486 384.5 217.94 384.264 217.381 C 384.028 216.822 383.854 216.239 383.73 215.643 C 383.618 215.035 383.556 214.426 383.556 213.818 C 383.556 213.21 383.618 212.602 383.73 212.006 C 383.854 211.41 384.028 210.827 384.264 210.256 C 384.5 209.697 384.785 209.164 385.121 208.655 C 385.456 208.146 385.853 207.662 386.275 207.24 C 388.435 205.08 391.65 204.087 394.679 204.695 C 395.275 204.819 395.858 204.993 396.417 205.229 C 396.988 205.452 397.522 205.75 398.031 206.086 C 398.54 206.421 399.012 206.806 399.446 207.24 C 401.184 208.978 402.177 211.374 402.177 213.819 C 402.177 214.427 402.115 215.036 401.991 215.644 C 401.867 216.24 401.693 216.823 401.457 217.382 C 401.221 217.941 400.936 218.487 400.6 218.996 C 400.265 219.505 399.868 219.977 399.446 220.411 C 397.707 222.135 395.311 223.129 392.866 223.129 Z"/>
|
||||
<path style="fill: rgb(255, 255, 255);" d="M 424.974 188.845 C 422.516 188.845 420.12 187.852 418.383 186.126 C 417.961 185.692 417.564 185.22 417.229 184.711 C 416.894 184.202 416.608 183.656 416.372 183.097 C 416.136 182.538 415.962 181.955 415.838 181.359 C 415.726 180.751 415.664 180.142 415.664 179.534 C 415.664 178.926 415.726 178.318 415.838 177.722 C 415.962 177.126 416.136 176.543 416.372 175.972 C 416.608 175.413 416.893 174.88 417.229 174.371 C 417.564 173.862 417.961 173.378 418.383 172.956 C 420.543 170.796 423.758 169.803 426.787 170.411 C 427.383 170.535 427.966 170.709 428.525 170.945 C 429.096 171.168 429.63 171.466 430.139 171.802 C 430.648 172.137 431.12 172.522 431.554 172.956 C 433.292 174.694 434.285 177.09 434.285 179.535 C 434.285 180.143 434.223 180.752 434.099 181.36 C 433.975 181.956 433.801 182.539 433.565 183.098 C 433.329 183.657 433.044 184.203 432.708 184.712 C 432.373 185.221 431.976 185.693 431.554 186.127 C 429.815 187.851 427.419 188.845 424.974 188.845 Z"/>
|
||||
<path style="fill: rgb(255, 255, 255);" d="M 411.913 193.743 C 409.455 193.743 407.059 192.75 405.322 191.024 C 404.9 190.59 404.503 190.118 404.168 189.609 C 403.833 189.1 403.547 188.554 403.311 187.995 C 403.075 187.436 402.901 186.853 402.777 186.257 C 402.665 185.649 402.603 185.04 402.603 184.432 C 402.603 183.824 402.665 183.216 402.777 182.62 C 402.901 182.024 403.075 181.441 403.311 180.87 C 403.547 180.311 403.832 179.778 404.168 179.269 C 404.503 178.76 404.9 178.276 405.322 177.854 C 407.482 175.694 410.697 174.701 413.726 175.309 C 414.322 175.433 414.905 175.607 415.464 175.843 C 416.035 176.066 416.569 176.364 417.078 176.7 C 417.587 177.035 418.059 177.42 418.493 177.854 C 420.231 179.592 421.224 181.988 421.224 184.433 C 421.224 185.041 421.162 185.65 421.038 186.258 C 420.914 186.854 420.74 187.437 420.504 187.996 C 420.268 188.555 419.983 189.101 419.647 189.61 C 419.312 190.119 418.915 190.591 418.493 191.025 C 416.754 192.749 414.358 193.743 411.913 193.743 Z"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 403.206 256.598 C 400.748 256.598 398.352 255.605 396.615 253.879 C 396.193 253.445 395.796 252.973 395.461 252.464 C 395.126 251.955 394.84 251.409 394.604 250.85 C 394.368 250.291 394.194 249.708 394.07 249.112 C 393.958 248.504 393.896 247.895 393.896 247.287 C 393.896 246.679 393.958 246.071 394.07 245.475 C 394.194 244.879 394.368 244.296 394.604 243.725 C 394.84 243.166 395.125 242.633 395.461 242.124 C 395.796 241.615 396.193 241.131 396.615 240.709 C 398.775 238.549 401.99 237.556 405.019 238.164 C 405.615 238.288 406.198 238.462 406.757 238.698 C 407.328 238.921 407.862 239.219 408.371 239.555 C 408.88 239.89 409.352 240.275 409.786 240.709 C 411.524 242.447 412.517 244.843 412.517 247.288 C 412.517 247.896 412.455 248.505 412.331 249.113 C 412.207 249.709 412.033 250.292 411.797 250.851 C 411.561 251.41 411.276 251.956 410.94 252.465 C 410.605 252.974 410.208 253.446 409.786 253.88 C 408.047 255.604 405.651 256.598 403.206 256.598 Z"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 399.94 240.272 C 397.482 240.272 395.086 239.279 393.349 237.553 C 392.927 237.119 392.53 236.647 392.195 236.138 C 391.86 235.629 391.574 235.083 391.338 234.524 C 391.102 233.965 390.928 233.382 390.804 232.786 C 390.692 232.178 390.63 231.569 390.63 230.961 C 390.63 230.353 390.692 229.745 390.804 229.149 C 390.928 228.553 391.102 227.97 391.338 227.399 C 391.574 226.84 391.859 226.307 392.195 225.798 C 392.53 225.289 392.927 224.805 393.349 224.383 C 395.509 222.223 398.724 221.23 401.753 221.838 C 402.349 221.962 402.932 222.136 403.491 222.372 C 404.062 222.595 404.596 222.893 405.105 223.229 C 405.614 223.564 406.086 223.949 406.52 224.383 C 408.258 226.121 409.251 228.517 409.251 230.962 C 409.251 231.57 409.189 232.179 409.065 232.787 C 408.941 233.383 408.767 233.966 408.531 234.525 C 408.295 235.084 408.01 235.63 407.674 236.139 C 407.339 236.648 406.942 237.12 406.52 237.554 C 404.781 239.278 402.385 240.272 399.94 240.272 Z"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 399.941 228.299 C 397.483 228.299 395.087 227.306 393.35 225.58 C 392.928 225.146 392.531 224.674 392.196 224.165 C 391.861 223.656 391.575 223.11 391.339 222.551 C 391.103 221.992 390.929 221.409 390.805 220.813 C 390.693 220.205 390.631 219.596 390.631 218.988 C 390.631 218.38 390.693 217.772 390.805 217.176 C 390.929 216.58 391.103 215.997 391.339 215.426 C 391.575 214.867 391.86 214.334 392.196 213.825 C 392.531 213.316 392.928 212.832 393.35 212.41 C 395.51 210.25 398.725 209.257 401.754 209.865 C 402.35 209.989 402.933 210.163 403.492 210.399 C 404.063 210.622 404.597 210.92 405.106 211.256 C 405.615 211.591 406.087 211.976 406.521 212.41 C 408.259 214.148 409.252 216.544 409.252 218.989 C 409.252 219.597 409.19 220.206 409.066 220.814 C 408.942 221.41 408.768 221.993 408.532 222.552 C 408.296 223.111 408.011 223.657 407.675 224.166 C 407.34 224.675 406.943 225.147 406.521 225.581 C 404.782 227.305 402.386 228.299 399.941 228.299 Z"/>
|
||||
<path style="fill:#F95428;" d="M 372.186 223.129 C 369.728 223.129 367.332 222.136 365.595 220.41 C 365.173 219.976 364.776 219.504 364.441 218.995 C 364.106 218.486 363.82 217.94 363.584 217.381 C 363.348 216.822 363.174 216.239 363.05 215.643 C 362.938 215.035 362.876 214.426 362.876 213.818 C 362.876 213.21 362.938 212.602 363.05 212.006 C 363.174 211.41 363.348 210.827 363.584 210.256 C 363.82 209.697 364.105 209.164 364.441 208.655 C 364.776 208.146 365.173 207.662 365.595 207.24 C 367.755 205.08 370.97 204.087 373.999 204.695 C 374.595 204.819 375.178 204.993 375.737 205.229 C 376.308 205.452 376.842 205.75 377.351 206.086 C 377.86 206.421 378.332 206.806 378.766 207.24 C 380.504 208.978 381.497 211.374 381.497 213.819 C 381.497 214.427 381.435 215.036 381.311 215.644 C 381.187 216.24 381.013 216.823 380.777 217.382 C 380.541 217.941 380.256 218.487 379.92 218.996 C 379.585 219.505 379.188 219.977 378.766 220.411 C 377.027 222.135 374.631 223.129 372.186 223.129 Z" transform="matrix(1, 0, 0, 1, 5.98662, 1.633016)"/>
|
||||
<path style="fill:#F95428;" d="M 381.982 232.925 C 379.524 232.925 377.128 231.932 375.391 230.206 C 374.969 229.772 374.572 229.3 374.237 228.791 C 373.902 228.282 373.616 227.736 373.38 227.177 C 373.144 226.618 372.97 226.035 372.846 225.439 C 372.734 224.831 372.672 224.222 372.672 223.614 C 372.672 223.006 372.734 222.398 372.846 221.802 C 372.97 221.206 373.144 220.623 373.38 220.052 C 373.616 219.493 373.901 218.96 374.237 218.451 C 374.572 217.942 374.969 217.458 375.391 217.036 C 377.551 214.876 380.766 213.883 383.795 214.491 C 384.391 214.615 384.974 214.789 385.533 215.025 C 386.104 215.248 386.638 215.546 387.147 215.882 C 387.656 216.217 388.128 216.602 388.562 217.036 C 390.3 218.774 391.293 221.17 391.293 223.615 C 391.293 224.223 391.231 224.832 391.107 225.44 C 390.983 226.036 390.809 226.619 390.573 227.178 C 390.337 227.737 390.052 228.283 389.716 228.792 C 389.381 229.301 388.984 229.773 388.562 230.207 C 386.823 231.931 384.427 232.925 381.982 232.925 Z"/>
|
||||
<path style="fill:#F95428;" d="M 382.526 234.558 C 380.068 234.558 377.672 233.565 375.935 231.839 C 375.513 231.405 375.116 230.933 374.781 230.424 C 374.446 229.915 374.16 229.369 373.924 228.81 C 373.688 228.251 373.514 227.668 373.39 227.072 C 373.278 226.464 373.216 225.855 373.216 225.247 C 373.216 224.639 373.278 224.031 373.39 223.435 C 373.514 222.839 373.688 222.256 373.924 221.685 C 374.16 221.126 374.445 220.593 374.781 220.084 C 375.116 219.575 375.513 219.091 375.935 218.669 C 378.095 216.509 381.31 215.516 384.339 216.124 C 384.935 216.248 385.518 216.422 386.077 216.658 C 386.648 216.881 387.182 217.179 387.691 217.515 C 388.2 217.85 388.672 218.235 389.106 218.669 C 390.844 220.407 391.837 222.803 391.837 225.248 C 391.837 225.856 391.775 226.465 391.651 227.073 C 391.527 227.669 391.353 228.252 391.117 228.811 C 390.881 229.37 390.596 229.916 390.26 230.425 C 389.925 230.934 389.528 231.406 389.106 231.84 C 387.367 233.564 384.971 234.558 382.526 234.558 Z"/>
|
||||
<path style="fill:#F95428;" d="M 372.186 223.129 C 369.728 223.129 367.332 222.136 365.595 220.41 C 365.173 219.976 364.776 219.504 364.441 218.995 C 364.106 218.486 363.82 217.94 363.584 217.381 C 363.348 216.822 363.174 216.239 363.05 215.643 C 362.938 215.035 362.876 214.426 362.876 213.818 C 362.876 213.21 362.938 212.602 363.05 212.006 C 363.174 211.41 363.348 210.827 363.584 210.256 C 363.82 209.697 364.105 209.164 364.441 208.655 C 364.776 208.146 365.173 207.662 365.595 207.24 C 367.755 205.08 370.97 204.087 373.999 204.695 C 374.595 204.819 375.178 204.993 375.737 205.229 C 376.308 205.452 376.842 205.75 377.351 206.086 C 377.86 206.421 378.332 206.806 378.766 207.24 C 380.504 208.978 381.497 211.374 381.497 213.819 C 381.497 214.427 381.435 215.036 381.311 215.644 C 381.187 216.24 381.013 216.823 380.777 217.382 C 380.541 217.941 380.256 218.487 379.92 218.996 C 379.585 219.505 379.188 219.977 378.766 220.411 C 377.027 222.135 374.631 223.129 372.186 223.129 Z" transform="matrix(1, 0, 0, 1, 13.06124, 12.517046)"/>
|
||||
<path style="fill:#F95428;" d="M 372.186 223.129 C 369.728 223.129 367.332 222.136 365.595 220.41 C 365.173 219.976 364.776 219.504 364.441 218.995 C 364.106 218.486 363.82 217.94 363.584 217.381 C 363.348 216.822 363.174 216.239 363.05 215.643 C 362.938 215.035 362.876 214.426 362.876 213.818 C 362.876 213.21 362.938 212.602 363.05 212.006 C 363.174 211.41 363.348 210.827 363.584 210.256 C 363.82 209.697 364.105 209.164 364.441 208.655 C 364.776 208.146 365.173 207.662 365.595 207.24 C 367.755 205.08 370.97 204.087 373.999 204.695 C 374.595 204.819 375.178 204.993 375.737 205.229 C 376.308 205.452 376.842 205.75 377.351 206.086 C 377.86 206.421 378.332 206.806 378.766 207.24 C 380.504 208.978 381.497 211.374 381.497 213.819 C 381.497 214.427 381.435 215.036 381.311 215.644 C 381.187 216.24 381.013 216.823 380.777 217.382 C 380.541 217.941 380.256 218.487 379.92 218.996 C 379.585 219.505 379.188 219.977 378.766 220.411 C 377.027 222.135 374.631 223.129 372.186 223.129 Z" transform="matrix(1, 0, 0, 1, 13.06124, 15.238053)"/>
|
||||
<path style="fill:#F95428;" d="M 388.512 248.707 C 386.054 248.707 383.658 247.714 381.921 245.988 C 381.499 245.554 381.102 245.082 380.767 244.573 C 380.432 244.064 380.146 243.518 379.91 242.959 C 379.674 242.4 379.5 241.817 379.376 241.221 C 379.264 240.613 379.202 240.004 379.202 239.396 C 379.202 238.788 379.264 238.18 379.376 237.584 C 379.5 236.988 379.674 236.405 379.91 235.834 C 380.146 235.275 380.431 234.742 380.767 234.233 C 381.102 233.724 381.499 233.24 381.921 232.818 C 384.081 230.658 387.296 229.665 390.325 230.273 C 390.921 230.397 391.504 230.571 392.063 230.807 C 392.634 231.03 393.168 231.328 393.677 231.664 C 394.186 231.999 394.658 232.384 395.092 232.818 C 396.83 234.556 397.823 236.952 397.823 239.397 C 397.823 240.005 397.761 240.614 397.637 241.222 C 397.513 241.818 397.339 242.401 397.103 242.96 C 396.867 243.519 396.582 244.065 396.246 244.574 C 395.911 245.083 395.514 245.555 395.092 245.989 C 393.353 247.713 390.957 248.707 388.512 248.707 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 403.75 207.348 C 401.292 207.348 398.896 206.355 397.159 204.629 C 396.737 204.195 396.34 203.723 396.005 203.214 C 395.67 202.705 395.384 202.159 395.148 201.6 C 394.912 201.041 394.738 200.458 394.614 199.862 C 394.502 199.254 394.44 198.645 394.44 198.037 C 394.44 197.429 394.502 196.821 394.614 196.225 C 394.738 195.629 394.912 195.046 395.148 194.475 C 395.384 193.916 395.669 193.383 396.005 192.874 C 396.34 192.365 396.737 191.881 397.159 191.459 C 399.319 189.299 402.534 188.306 405.563 188.914 C 406.159 189.038 406.742 189.212 407.301 189.448 C 407.872 189.671 408.406 189.969 408.915 190.305 C 409.424 190.64 409.896 191.025 410.33 191.459 C 412.068 193.197 413.061 195.593 413.061 198.038 C 413.061 198.646 412.999 199.255 412.875 199.863 C 412.751 200.459 412.577 201.042 412.341 201.601 C 412.105 202.16 411.82 202.706 411.484 203.215 C 411.149 203.724 410.752 204.196 410.33 204.63 C 408.591 206.354 406.195 207.348 403.75 207.348 Z" transform="matrix(1, 0, 0, 1, 19.047147, 4.89738)"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 418.444 220.953 C 415.986 220.953 413.59 219.96 411.853 218.234 C 411.431 217.8 411.034 217.328 410.699 216.819 C 410.364 216.31 410.078 215.764 409.842 215.205 C 409.606 214.646 409.432 214.063 409.308 213.467 C 409.196 212.859 409.134 212.25 409.134 211.642 C 409.134 211.034 409.196 210.426 409.308 209.83 C 409.432 209.234 409.606 208.651 409.842 208.08 C 410.078 207.521 410.363 206.988 410.699 206.479 C 411.034 205.97 411.431 205.486 411.853 205.064 C 414.013 202.904 417.228 201.911 420.257 202.519 C 420.853 202.643 421.436 202.817 421.995 203.053 C 422.566 203.276 423.1 203.574 423.609 203.91 C 424.118 204.245 424.59 204.63 425.024 205.064 C 426.762 206.802 427.755 209.198 427.755 211.643 C 427.755 212.251 427.693 212.86 427.569 213.468 C 427.445 214.064 427.271 214.647 427.035 215.206 C 426.799 215.765 426.514 216.311 426.178 216.82 C 425.843 217.329 425.446 217.801 425.024 218.235 C 423.285 219.959 420.889 220.953 418.444 220.953 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 411.369 234.013 C 408.911 234.013 406.515 233.02 404.778 231.294 C 404.356 230.86 403.959 230.388 403.624 229.879 C 403.289 229.37 403.003 228.824 402.767 228.265 C 402.531 227.706 402.357 227.123 402.233 226.527 C 402.121 225.919 402.059 225.31 402.059 224.702 C 402.059 224.094 402.121 223.486 402.233 222.89 C 402.357 222.294 402.531 221.711 402.767 221.14 C 403.003 220.581 403.288 220.048 403.624 219.539 C 403.959 219.03 404.356 218.546 404.778 218.124 C 406.938 215.964 410.153 214.971 413.182 215.579 C 413.778 215.703 414.361 215.877 414.92 216.113 C 415.491 216.336 416.025 216.634 416.534 216.97 C 417.043 217.305 417.515 217.69 417.949 218.124 C 419.687 219.862 420.68 222.258 420.68 224.703 C 420.68 225.311 420.618 225.92 420.494 226.528 C 420.37 227.124 420.196 227.707 419.96 228.266 C 419.724 228.825 419.439 229.371 419.103 229.88 C 418.768 230.389 418.371 230.861 417.949 231.295 C 416.21 233.019 413.814 234.013 411.369 234.013 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 405.927 217.687 C 403.469 217.687 401.073 216.694 399.336 214.968 C 398.914 214.534 398.517 214.062 398.182 213.553 C 397.847 213.044 397.561 212.498 397.325 211.939 C 397.089 211.38 396.915 210.797 396.791 210.201 C 396.679 209.593 396.617 208.984 396.617 208.376 C 396.617 207.768 396.679 207.16 396.791 206.564 C 396.915 205.968 397.089 205.385 397.325 204.814 C 397.561 204.255 397.846 203.722 398.182 203.213 C 398.517 202.704 398.914 202.22 399.336 201.798 C 401.496 199.638 404.711 198.645 407.74 199.253 C 408.336 199.377 408.919 199.551 409.478 199.787 C 410.049 200.01 410.583 200.308 411.092 200.644 C 411.601 200.979 412.073 201.364 412.507 201.798 C 414.245 203.536 415.238 205.932 415.238 208.377 C 415.238 208.985 415.176 209.594 415.052 210.202 C 414.928 210.798 414.754 211.381 414.518 211.94 C 414.282 212.499 413.997 213.045 413.661 213.554 C 413.326 214.063 412.929 214.535 412.507 214.969 C 410.768 216.693 408.372 217.687 405.927 217.687 Z"/>
|
||||
<path style="fill: rgb(255, 255, 255);" d="M 425.518 204.627 C 423.06 204.627 420.664 203.634 418.927 201.908 C 418.505 201.474 418.108 201.002 417.773 200.493 C 417.438 199.984 417.152 199.438 416.916 198.879 C 416.68 198.32 416.506 197.737 416.382 197.141 C 416.27 196.533 416.208 195.924 416.208 195.316 C 416.208 194.708 416.27 194.1 416.382 193.504 C 416.506 192.908 416.68 192.325 416.916 191.754 C 417.152 191.195 417.437 190.662 417.773 190.153 C 418.108 189.644 418.505 189.16 418.927 188.738 C 421.087 186.578 424.302 185.585 427.331 186.193 C 427.927 186.317 428.51 186.491 429.069 186.727 C 429.64 186.95 430.174 187.248 430.683 187.584 C 431.192 187.919 431.664 188.304 432.098 188.738 C 433.836 190.476 434.829 192.872 434.829 195.317 C 434.829 195.925 434.767 196.534 434.643 197.142 C 434.519 197.738 434.345 198.321 434.109 198.88 C 433.873 199.439 433.588 199.985 433.252 200.494 C 432.917 201.003 432.52 201.475 432.098 201.909 C 430.359 203.633 427.963 204.627 425.518 204.627 Z"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 389.601 212.245 C 387.143 212.245 384.747 211.252 383.01 209.526 C 382.588 209.092 382.191 208.62 381.856 208.111 C 381.521 207.602 381.235 207.056 380.999 206.497 C 380.763 205.938 380.589 205.355 380.465 204.759 C 380.353 204.151 380.291 203.542 380.291 202.934 C 380.291 202.326 380.353 201.718 380.465 201.122 C 380.589 200.526 380.763 199.943 380.999 199.372 C 381.235 198.813 381.52 198.28 381.856 197.771 C 382.191 197.262 382.588 196.778 383.01 196.356 C 385.17 194.196 388.385 193.203 391.414 193.811 C 392.01 193.935 392.593 194.109 393.152 194.345 C 393.723 194.568 394.257 194.866 394.766 195.202 C 395.275 195.537 395.747 195.922 396.181 196.356 C 397.919 198.094 398.912 200.49 398.912 202.935 C 398.912 203.543 398.85 204.152 398.726 204.76 C 398.602 205.356 398.428 205.939 398.192 206.498 C 397.956 207.057 397.671 207.603 397.335 208.112 C 397 208.621 396.603 209.093 396.181 209.527 C 394.442 211.251 392.046 212.245 389.601 212.245 Z"/>
|
||||
<path style="fill: rgb(75, 249, 40);" d="M 408.104 211.157 C 405.646 211.157 403.25 210.164 401.513 208.438 C 401.091 208.004 400.694 207.532 400.359 207.023 C 400.024 206.514 399.738 205.968 399.502 205.409 C 399.266 204.85 399.092 204.267 398.968 203.671 C 398.856 203.063 398.794 202.454 398.794 201.846 C 398.794 201.238 398.856 200.63 398.968 200.034 C 399.092 199.438 399.266 198.855 399.502 198.284 C 399.738 197.725 400.023 197.192 400.359 196.683 C 400.694 196.174 401.091 195.69 401.513 195.268 C 403.673 193.108 406.888 192.115 409.917 192.723 C 410.513 192.847 411.096 193.021 411.655 193.257 C 412.226 193.48 412.76 193.778 413.269 194.114 C 413.778 194.449 414.25 194.834 414.684 195.268 C 416.422 197.006 417.415 199.402 417.415 201.847 C 417.415 202.455 417.353 203.064 417.229 203.672 C 417.105 204.268 416.931 204.851 416.695 205.41 C 416.459 205.969 416.174 206.515 415.838 207.024 C 415.503 207.533 415.106 208.005 414.684 208.439 C 412.945 210.163 410.549 211.157 408.104 211.157 Z"/>
|
||||
<path style="fill:#F95428;" d="M 389.057 265.033 C 386.599 265.033 384.203 264.04 382.466 262.314 C 382.044 261.88 381.647 261.408 381.312 260.899 C 380.977 260.39 380.691 259.844 380.455 259.285 C 380.219 258.726 380.045 258.143 379.921 257.547 C 379.809 256.939 379.747 256.33 379.747 255.722 C 379.747 255.114 379.809 254.506 379.921 253.91 C 380.045 253.314 380.219 252.731 380.455 252.16 C 380.691 251.601 380.976 251.068 381.312 250.559 C 381.647 250.05 382.044 249.566 382.466 249.144 C 384.626 246.984 387.841 245.991 390.87 246.599 C 391.466 246.723 392.049 246.897 392.608 247.133 C 393.179 247.356 393.713 247.654 394.222 247.99 C 394.731 248.325 395.203 248.71 395.637 249.144 C 397.375 250.882 398.368 253.278 398.368 255.723 C 398.368 256.331 398.306 256.94 398.182 257.548 C 398.058 258.144 397.884 258.727 397.648 259.286 C 397.412 259.845 397.127 260.391 396.791 260.9 C 396.456 261.409 396.059 261.881 395.637 262.315 C 393.898 264.039 391.502 265.033 389.057 265.033 Z"/>
|
||||
<path style="fill: rgb(249, 249, 40);" d="M 412.457 250.339 C 409.999 250.339 407.603 249.346 405.866 247.62 C 405.444 247.186 405.047 246.714 404.712 246.205 C 404.377 245.696 404.091 245.15 403.855 244.591 C 403.619 244.032 403.445 243.449 403.321 242.853 C 403.209 242.245 403.147 241.636 403.147 241.028 C 403.147 240.42 403.209 239.812 403.321 239.216 C 403.445 238.62 403.619 238.037 403.855 237.466 C 404.091 236.907 404.376 236.374 404.712 235.865 C 405.047 235.356 405.444 234.872 405.866 234.45 C 408.026 232.29 411.241 231.297 414.27 231.905 C 414.866 232.029 415.449 232.203 416.008 232.439 C 416.579 232.662 417.113 232.96 417.622 233.296 C 418.131 233.631 418.603 234.016 419.037 234.45 C 420.775 236.188 421.768 238.584 421.768 241.029 C 421.768 241.637 421.706 242.246 421.582 242.854 C 421.458 243.45 421.284 244.033 421.048 244.592 C 420.812 245.151 420.527 245.697 420.191 246.206 C 419.856 246.715 419.459 247.187 419.037 247.621 C 417.298 249.345 414.902 250.339 412.457 250.339 Z"/>
|
||||
</g>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 31 KiB |
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 948.148 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="XMLID_848_" transform="matrix(1.706854, 0, 0, 1.462857, 461.694611, 0)" style="">
|
||||
<polygon id="XMLID_37_" style="fill:#003778;" points="65.001,60 122.713,43.592 172.713,190 115,206.408 	"/>
|
||||
<polygon id="XMLID_36_" style="fill:#0052B4;" points="285,60 227.287,43.592 177.287,190 235,206.408 	"/>
|
||||
<circle id="XMLID_849_" style="fill:#FF9811;" cx="175" cy="260" r="90"/>
|
||||
<path id="XMLID_850_" style="fill:#BF720D;" d="M175,350c-49.705,0-90-40.295-90-90c0-49.706,40.295-90,90-90"/>
|
||||
<circle id="XMLID_851_" style="fill:#FFDA44;" cx="175" cy="260" r="60"/>
|
||||
<rect id="XMLID_852_" x="65" style="fill: rgb(0, 82, 180);" width="110.443" height="60"/>
|
||||
<rect id="XMLID_853_" x="175" style="fill:#006DF0;" width="110" height="60"/>
|
||||
</g>
|
||||
<g id="XMLID_1088_" transform="matrix(2.002172, 0, 0, 1.462238, -110.119476, 0.108337)" style="">
|
||||
<rect id="XMLID_1089_" x="55" y="30" style="fill: rgb(255, 218, 68); stroke-linejoin: round; stroke-linecap: round;" width="240" height="320"/>
|
||||
<circle id="XMLID_1091_" style="fill:#006DF0;" cx="175" cy="30" r="30"/>
|
||||
<path id="XMLID_1092_" style="fill:#0052B4;" d="M175,60c-16.568,0-30-13.432-30-30s13.432-30,30-30"/>
|
||||
<rect id="XMLID_1093_" x="105" y="30" style="fill: rgb(0, 82, 180);" width="70.926" height="50"/>
|
||||
<rect id="XMLID_1094_" x="175" y="30" style="fill:#006DF0;" width="70" height="50"/>
|
||||
<rect id="XMLID_1090_" x="108.776" y="124.555" style="stroke-linecap: round; stroke-linejoin: round; stroke-width: 5.77299px; fill: rgb(110, 110, 110); stroke: rgb(110, 110, 110);" width="167.856" height="30"/>
|
||||
<polyline id="XMLID_1095_" style="fill: none; stroke-miterlimit: 10; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(212, 4, 0); stroke-width: 17.8963px;" points="65.761 133.876 85.319 164.992 124.436 102.758"/>
|
||||
<rect id="rect-5" x="108.776" y="193.664" style="stroke-linecap: round; stroke-linejoin: round; stroke-width: 5.77299px; fill: rgb(110, 110, 110); stroke: rgb(110, 110, 110);" width="167.856" height="30"/>
|
||||
<rect id="rect-6" x="108.898" y="264.223" style="stroke-linecap: round; stroke-linejoin: round; stroke-width: 5.77299px; fill: rgb(110, 110, 110); stroke: rgb(110, 110, 110);" width="167.856" height="30"/>
|
||||
<polyline id="polyline-1" style="fill: none; stroke-miterlimit: 10; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(212, 4, 0); stroke-width: 17.8963px;" points="65.883 273.544 85.441 304.66 124.558 242.426"/>
|
||||
</g>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 2.5 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 2.0 KiB |
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 350 350" style="enable-background:new 0 0 350 350;" xml:space="preserve">
|
||||
<g id="XMLID_1088_">
|
||||
<rect id="XMLID_1089_" x="55" y="30" style="fill:#FFDA44;" width="240" height="320"/>
|
||||
<rect id="XMLID_1090_" x="175" y="130" style="fill:#FFFFFF;" width="90" height="30"/>
|
||||
<circle id="XMLID_1091_" style="fill:#006DF0;" cx="175" cy="30" r="30"/>
|
||||
<path id="XMLID_1092_" style="fill:#0052B4;" d="M175,60c-16.568,0-30-13.432-30-30s13.432-30,30-30"/>
|
||||
<rect id="XMLID_1093_" x="105" y="30" style="fill:#0052B4;" width="70" height="50"/>
|
||||
<rect id="XMLID_1094_" x="175" y="30" style="fill:#006DF0;" width="70" height="50"/>
|
||||
<polyline id="XMLID_1095_" style="fill:none;stroke:#FF9811;stroke-width:30;stroke-miterlimit:10;" points="85,140 105,160
|
||||
145,120 "/>
|
||||
<rect id="XMLID_1096_" x="175" y="200" style="fill:#FFFFFF;" width="90" height="30"/>
|
||||
<polyline id="XMLID_1097_" style="fill:none;stroke:#FF9811;stroke-width:30;stroke-miterlimit:10;" points="85,210 105,230
|
||||
145,190 "/>
|
||||
<rect id="XMLID_1098_" x="175" y="270" style="fill:#FFFFFF;" width="90" height="30"/>
|
||||
<polyline id="XMLID_1099_" style="fill:none;stroke:#FF9811;stroke-width:30;stroke-miterlimit:10;" points="85,280 105,300
|
||||
145,260 "/>
|
||||
</g>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 1.5 KiB |
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 256 256" width="256px" height="256px" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient gradientUnits="userSpaceOnUse" x1="26.024" y1="47.137" x2="26.024" y2="47.222" id="gradient-8">
|
||||
<stop offset="0" style="stop-color: rgba(82, 214, 0, 1)"/>
|
||||
<stop offset="1" style="stop-color: rgba(43, 112, 0, 1)"/>
|
||||
</linearGradient>
|
||||
<linearGradient gradientUnits="userSpaceOnUse" x1="24" y1="-0.687" x2="24" y2="47.312" id="gradient-9">
|
||||
<stop offset="0" style="stop-color: rgba(82, 214, 0, 1)"/>
|
||||
<stop offset="1" style="stop-color: rgb(0, 18, 151);"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="matrix(5.333333, 0, 0, 5.258077, 0, 3.612299)">
|
||||
<path d="M36,24c-6.627,0-12,5.373-12,12s5.373,12,12,12s12-5.373,12-12S42.627,24,36,24z M36,46 c-5.523,0-10-4.477-10-10s4.477-10,10-10s10,4.477,10,10S41.523,46,36,46z" style="paint-order: fill; fill: rgb(152, 152, 152);"/>
|
||||
<rect height="1.5" width="1.5" x="35.25" y="27.5" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<rect height="1.5" width="1.5" x="27.5" y="35.25" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<rect height="1.5" transform="matrix(0.7068 0.7074 -0.7074 0.7068 33.7364 -20.4359)" width="1.501" x="40.77" y="29.729" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<rect height="1.5" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 22.868 92.3511)" width="1.5" x="29.811" y="40.69" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<rect height="1.501" transform="matrix(0.7071 0.7071 -0.7071 0.7071 30.5199 -12.6415)" width="1.5" x="29.77" y="29.77" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<rect height="1.5" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 41.4805 100.1427)" width="1.5" x="40.731" y="40.731" style="paint-order: fill; fill: rgb(214, 214, 214);"/>
|
||||
<polygon points="35.25,35.25 35.25,36 35.25,36.75 35.25,43 35.25,44.5 36.75,44.5 36.75,43 36.75,36.75 43,36.75 44.5,36.75 44.5,35.25 43,35.25 " style="paint-order: fill; fill: rgb(255, 255, 255);"/>
|
||||
<path d="M26.015,47.222c0.017-0.001,0.032-0.005,0.049-0.007c-0.027-0.024-0.052-0.054-0.079-0.078 C25.994,47.164,26.005,47.194,26.015,47.222z" style="paint-order: fill; fill: url(#gradient-8);"/>
|
||||
<path d="M16.403,34.099c-0.215-0.463-0.319-0.724-0.319-0.724h5.16c0.596-3.369,2.313-6.342,4.756-8.533V19.25 h7.566c0.096,0.635,0.167,1.28,0.218,1.932C34.509,21.074,35.245,21,36,21c0.543,0,1.077,0.032,1.604,0.088 c-0.043-0.618-0.099-1.232-0.174-1.838h6.155C43.856,20.562,44,21.92,44,23.312c0,0.005-0.001,0.009-0.001,0.014 c1.428,0.903,2.692,2.034,3.739,3.351C47.894,25.575,48,24.458,48,23.312c0-12.576-9.675-22.886-21.986-23.91 C26.009-0.6,26.005-0.604,26-0.607v0.009c-0.66-0.054-1.326-0.089-2-0.089s-1.34,0.035-2,0.089v-0.009 c-0.005,0.003-0.009,0.007-0.014,0.01C9.675,0.427,0,10.736,0,23.312s9.674,22.886,21.986,23.909 c0.005,0.004,0.009,0.008,0.014,0.011v-0.01c0.66,0.055,1.326,0.09,2,0.09s1.34-0.035,2-0.09v0.01 c0.005-0.003,0.01-0.007,0.015-0.011c-3.987-3.825-6.612-7.686-8.157-10.355C17.318,35.99,16.836,35.063,16.403,34.099z M42.295,15.25h-5.626c-1.002-3.905-2.704-7.44-4.943-10.388C36.443,6.84,40.232,10.578,42.295,15.25z M26,4.818 c2.988,2.605,5.321,6.223,6.647,10.432H26V4.818z M22,29.375h-7.183c-0.443-1.932-0.688-3.962-0.688-6.062 c0-1.387,0.106-2.744,0.304-4.062H22V29.375z M22,4.818V15.25h-6.647C16.679,11.041,19.012,7.423,22,4.818z M16.274,4.862 c-2.239,2.947-3.941,6.483-4.943,10.388H5.706C7.768,10.578,11.557,6.84,16.274,4.862z M4.941,29.375 C4.333,27.462,4,25.427,4,23.312c0-1.392,0.144-2.75,0.415-4.062h6.154c-0.165,1.326-0.256,2.681-0.256,4.062 c0,2.085,0.204,4.111,0.571,6.062H4.941z M6.735,33.375h5.182c1.027,3.114,2.508,5.953,4.358,8.388 C12.253,40.077,8.915,37.106,6.735,33.375z" style="paint-order: fill; fill: url(#gradient-9);"/>
|
||||
</g>
|
||||
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 3.8 KiB |
|
@ -95,6 +95,11 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
|
|||
var finalVucc = [];
|
||||
var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_","/");
|
||||
var finalDEcall = findAdiField(activeAdifArray[x], "STATION_CALLSIGN").replace("_","/");
|
||||
|
||||
if ( finalDEcall == "" )
|
||||
finalDEcall = myDEcall;
|
||||
if ( g_appSettings.workingCallsignEnable && !(finalDEcall in g_appSettings.workingCallsigns) )
|
||||
continue;
|
||||
var finalRSTsent = findAdiField(activeAdifArray[x], "RST_SENT");
|
||||
var finalRSTrecv = findAdiField(activeAdifArray[x], "RST_RCVD");
|
||||
var finalBand = findAdiField(activeAdifArray[x], "BAND").toLowerCase();
|
||||
|
@ -147,9 +152,7 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
|
|||
finalDxcc = Number(callsignToDxcc( finalDXcall ));
|
||||
|
||||
// If my callsign isn't present, it must be for me anyway
|
||||
if ( finalDEcall == "" )
|
||||
finalDEcall = myDEcall;
|
||||
|
||||
|
||||
var finalCqZone = findAdiField(activeAdifArray[x], "CQZ");
|
||||
if ( finalCqZone.length == 1 )
|
||||
finalCqZone = "0" + finalCqZone;
|
||||
|
@ -177,6 +180,10 @@ function onAdiLoadComplete( adiBuffer, saveAdifFile, adifFileName, newFile)
|
|||
var dateTime = new Date(Date.UTC(dateVal.substr(0,4), parseInt(dateVal.substr(4,2))-1,dateVal.substr(6,2), timeVal.substr(0,2), timeVal.substr(2,2),timeVal.substr(4,2)));
|
||||
|
||||
var finalTime = parseInt(dateTime.getTime()/1000);
|
||||
|
||||
if ( g_appSettings.workingDateEnable && finalTime < g_appSettings.workingDate )
|
||||
continue;
|
||||
|
||||
finalGrid = finalGrid.substr(0,6);
|
||||
if ( !validateGridFromString(finalGrid) )
|
||||
finalGrid = "";
|
||||
|
|
|
@ -12,7 +12,7 @@ var g_ulsCallsignsCount = 0;
|
|||
|
||||
var g_ulsWhenDate = 0;
|
||||
var g_ulsLoadTimer = null;
|
||||
var g_ulsDownloadPending = false;
|
||||
|
||||
var g_oqrsCallsigns = Object();
|
||||
var g_oqrsFile = "";
|
||||
var g_oqrsWhenDate = 0;
|
||||
|
@ -72,27 +72,18 @@ function saveCallsignSettings()
|
|||
|
||||
function lotwLoadCallsigns()
|
||||
{
|
||||
if ( g_callsignLookups.lotwWeeklyEnable == true )
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.lotwLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.lotwLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.lotwLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.lotwLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var lotwWhenTimer = (86400 * 7) - (now - g_callsignLookups.lotwLastUpdate);
|
||||
g_lotwWhenDate = now + lotwWhenTimer;
|
||||
g_lotwLoadTimer = setTimeout(lotwDownload,(lotwWhenTimer)*1000);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( g_lotwLoadTimer != null )
|
||||
{
|
||||
clearTimeout(g_lotwLoadTimer);
|
||||
g_lotwLoadTimer = null;
|
||||
g_lotwWhenTimer = 0;
|
||||
}
|
||||
var lotwWhenTimer = (86400 * 7) - (now - g_callsignLookups.lotwLastUpdate);
|
||||
g_lotwWhenDate = now + lotwWhenTimer;
|
||||
g_lotwLoadTimer = setTimeout(lotwDownload,(lotwWhenTimer)*1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!fs.existsSync(g_lotwFile))
|
||||
{
|
||||
|
@ -116,50 +107,32 @@ function lotwLoadCallsigns()
|
|||
function lotwSettingsDisplay()
|
||||
{
|
||||
lotwUseEnable.checked = g_callsignLookups.lotwUseEnable;
|
||||
lotwWeeklyEnable.checked = g_callsignLookups.lotwWeeklyEnable;
|
||||
|
||||
if ( g_callsignLookups.lotwLastUpdate == 0 )
|
||||
{
|
||||
lotwUpdatedTd.innerHTML = "<b>Never</b>";
|
||||
lotwWhenTd.innerHTML = "<b>Never</b>";
|
||||
lotwUpdatedTd.innerHTML = "Never";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
lotwUpdatedTd.innerHTML = "<b>"+userTimeString(g_callsignLookups.lotwLastUpdate * 1000)+"</b>";
|
||||
lotwWhenTd.innerHTML = "<b>"+userTimeString(g_lotwWhenDate * 1000) + "</b>";
|
||||
lotwUpdatedTd.innerHTML = userTimeString(g_callsignLookups.lotwLastUpdate * 1000);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( g_callsignLookups.lotwUseEnable )
|
||||
if ( !g_callsignLookups.lotwUseEnable )
|
||||
{
|
||||
lotwWeeklyTd.style.display = "table-cell";
|
||||
lotwNowTd.style.display = "table-cell";
|
||||
lotwCountTd.style.display = "table-cell";
|
||||
if ( lotwWeeklyEnable.checked == true )
|
||||
lotwWhenTr.style.display = "table-row";
|
||||
else
|
||||
lotwWhenTr.style.display = "none";
|
||||
lotwLastTr.style.display = "table-row";
|
||||
}
|
||||
else
|
||||
{
|
||||
lotwWeeklyTd.style.display = "none";
|
||||
lotwNowTd.style.display = "none";
|
||||
lotwCountTd.style.display = "none";
|
||||
lotwWhenTr.style.display = "none";
|
||||
lotwLastTr.style.display = "none";
|
||||
|
||||
if ( g_lotwLoadTimer != null )
|
||||
clearTimeout(g_lotwLoadTimer);
|
||||
g_lotwLoadTimer = null;
|
||||
g_lotwCallsigns = Object();
|
||||
}
|
||||
lotwCountTd.innerHTML = Object.keys(g_lotwCallsigns).length + " callsigns found";
|
||||
lotwCountTd.innerHTML = Object.keys(g_lotwCallsigns).length;
|
||||
}
|
||||
|
||||
function lotwValuesChanged()
|
||||
{
|
||||
g_callsignLookups.lotwUseEnable = lotwUseEnable.checked;
|
||||
g_callsignLookups.lotwWeeklyEnable = lotwWeeklyEnable.checked;
|
||||
saveCallsignSettings();
|
||||
if ( g_callsignLookups.lotwUseEnable == true )
|
||||
{
|
||||
|
@ -185,7 +158,8 @@ function processLotwCallsigns(result, flag)
|
|||
{
|
||||
//var result = String(buffer);
|
||||
var lines = Array();
|
||||
lines = result.split("\n");
|
||||
lines = result.split("\n");
|
||||
delete result;
|
||||
var lotwCallsigns = Object();
|
||||
for ( x in lines )
|
||||
{
|
||||
|
@ -196,18 +170,17 @@ function processLotwCallsigns(result, flag)
|
|||
lotwCallsigns[breakout[0]] = parseInt(dateTime.getTime() / 1000)/86400;
|
||||
}
|
||||
}
|
||||
delete lines;
|
||||
g_callsignLookups.lotwLastUpdate = timeNowSec();
|
||||
if ( g_callsignLookups.lotwWeeklyEnable == true )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( g_lotwLoadTimer != null )
|
||||
clearTimeout(g_lotwLoadTimer);
|
||||
|
||||
var lotwWhenTimer = (86400 * 7) - (now - g_callsignLookups.lotwLastUpdate);
|
||||
g_lotwWhenDate = now + lotwWhenTimer;
|
||||
g_lotwLoadTimer = setTimeout(lotwDownload,(lotwWhenTimer)*1000);
|
||||
}
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( g_lotwLoadTimer != null )
|
||||
clearTimeout(g_lotwLoadTimer);
|
||||
|
||||
var lotwWhenTimer = (86400 * 7) - (now - g_callsignLookups.lotwLastUpdate);
|
||||
g_lotwWhenDate = now + lotwWhenTimer;
|
||||
g_lotwLoadTimer = setTimeout(lotwDownload,(lotwWhenTimer)*1000);
|
||||
|
||||
if ( Object.keys(lotwCallsigns).length > 100 )
|
||||
{
|
||||
g_lotwCallsigns = lotwCallsigns;
|
||||
|
@ -220,26 +193,15 @@ function processLotwCallsigns(result, flag)
|
|||
|
||||
function oqrsLoadCallsigns()
|
||||
{
|
||||
if ( g_callsignLookups.oqrsWeeklyEnable == true )
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.oqrsLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.oqrsLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.oqrsLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.oqrsLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var oqrsWhenTimer = (86400 * 7) - (now - g_callsignLookups.oqrsLastUpdate);
|
||||
g_oqrsWhenDate = now + oqrsWhenTimer;
|
||||
g_oqrsLoadTimer = setTimeout(oqrsDownload,(oqrsWhenTimer)*1000);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( g_oqrsLoadTimer != null )
|
||||
{
|
||||
clearTimeout(g_oqrsLoadTimer);
|
||||
g_oqrsLoadTimer = null;
|
||||
g_oqrsWhenTimer = 0;
|
||||
}
|
||||
var oqrsWhenTimer = (86400 * 7) - (now - g_callsignLookups.oqrsLastUpdate);
|
||||
g_oqrsWhenDate = now + oqrsWhenTimer;
|
||||
g_oqrsLoadTimer = setTimeout(oqrsDownload,(oqrsWhenTimer)*1000);
|
||||
}
|
||||
|
||||
if (!fs.existsSync(g_oqrsFile))
|
||||
|
@ -260,50 +222,33 @@ function oqrsLoadCallsigns()
|
|||
function oqrsSettingsDisplay()
|
||||
{
|
||||
oqrsUseEnable.checked = g_callsignLookups.oqrsUseEnable;
|
||||
oqrsWeeklyEnable.checked = g_callsignLookups.oqrsWeeklyEnable;
|
||||
|
||||
|
||||
if ( g_callsignLookups.oqrsLastUpdate == 0 )
|
||||
{
|
||||
oqrsUpdatedTd.innerHTML = "<b>Never</b>";
|
||||
oqrsWhenTd.innerHTML = "<b>Never</b>";
|
||||
oqrsUpdatedTd.innerHTML = "Never";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
oqrsUpdatedTd.innerHTML = "<b>"+userTimeString(g_callsignLookups.oqrsLastUpdate * 1000)+"</b>";
|
||||
oqrsWhenTd.innerHTML = "<b>"+userTimeString(g_oqrsWhenDate * 1000) + "</b>";
|
||||
oqrsUpdatedTd.innerHTML = userTimeString(g_callsignLookups.oqrsLastUpdate * 1000);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( g_callsignLookups.oqrsUseEnable )
|
||||
if ( !g_callsignLookups.oqrsUseEnable )
|
||||
{
|
||||
oqrsWeeklyTd.style.display = "table-cell";
|
||||
oqrsNowTd.style.display = "table-cell";
|
||||
oqrsCountTd.style.display = "table-cell";
|
||||
if ( oqrsWeeklyEnable.checked == true )
|
||||
oqrsWhenTr.style.display = "table-row";
|
||||
else
|
||||
oqrsWhenTr.style.display = "none";
|
||||
oqrsLastTr.style.display = "table-row";
|
||||
}
|
||||
else
|
||||
{
|
||||
oqrsWeeklyTd.style.display = "none";
|
||||
oqrsNowTd.style.display = "none";
|
||||
oqrsCountTd.style.display = "none";
|
||||
oqrsWhenTr.style.display = "none";
|
||||
oqrsLastTr.style.display = "none";
|
||||
if ( g_oqrsLoadTimer != null )
|
||||
clearTimeout(g_oqrsLoadTimer);
|
||||
g_oqrsLoadTimer = null;
|
||||
g_oqrsCallsigns = Object();
|
||||
}
|
||||
oqrsCountTd.innerHTML = Object.keys(g_oqrsCallsigns).length + " callsigns found";
|
||||
oqrsCountTd.innerHTML = Object.keys(g_oqrsCallsigns).length;
|
||||
}
|
||||
|
||||
function oqrsValuesChanged()
|
||||
{
|
||||
g_callsignLookups.oqrsUseEnable = oqrsUseEnable.checked;
|
||||
g_callsignLookups.oqrsWeeklyEnable = oqrsWeeklyEnable.checked;
|
||||
saveCallsignSettings();
|
||||
if ( g_callsignLookups.oqrsUseEnable == true )
|
||||
{
|
||||
|
@ -328,16 +273,15 @@ function processoqrsCallsigns(buffer, flag)
|
|||
g_oqrsCallsigns = JSON.parse(buffer);
|
||||
|
||||
g_callsignLookups.oqrsLastUpdate = timeNowSec();
|
||||
if ( g_callsignLookups.oqrsWeeklyEnable == true )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( g_oqrsLoadTimer != null )
|
||||
clearTimeout(g_oqrsLoadTimer);
|
||||
|
||||
var oqrsWhenTimer = (86400 * 7) - (now - g_callsignLookups.oqrsLastUpdate);
|
||||
g_oqrsWhenDate = now + oqrsWhenTimer;
|
||||
g_oqrsLoadTimer = setTimeout(oqrsDownload,(oqrsWhenTimer)*1000);
|
||||
}
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( g_oqrsLoadTimer != null )
|
||||
clearTimeout(g_oqrsLoadTimer);
|
||||
|
||||
var oqrsWhenTimer = (86400 * 7) - (now - g_callsignLookups.oqrsLastUpdate);
|
||||
g_oqrsWhenDate = now + oqrsWhenTimer;
|
||||
g_oqrsLoadTimer = setTimeout(oqrsDownload,(oqrsWhenTimer)*1000);
|
||||
|
||||
|
||||
fs.writeFileSync(g_oqrsFile, JSON.stringify(g_oqrsCallsigns));
|
||||
oqrsSettingsDisplay();
|
||||
|
@ -345,27 +289,17 @@ function processoqrsCallsigns(buffer, flag)
|
|||
|
||||
function eqslLoadCallsigns()
|
||||
{
|
||||
if ( g_callsignLookups.eqslWeeklyEnable == true )
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.eqslLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.eqslLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.eqslLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.eqslLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var eqslWhenTimer = (86400 * 7) - (now - g_callsignLookups.eqslLastUpdate);
|
||||
g_eqslWhenDate = now + eqslWhenTimer;
|
||||
g_eqslLoadTimer = setTimeout(eqslDownload,(eqslWhenTimer)*1000);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( g_eqslLoadTimer != null )
|
||||
{
|
||||
clearTimeout(g_eqslLoadTimer);
|
||||
g_eqslLoadTimer = null;
|
||||
g_eqslWhenTimer = 0;
|
||||
}
|
||||
var eqslWhenTimer = (86400 * 7) - (now - g_callsignLookups.eqslLastUpdate);
|
||||
g_eqslWhenDate = now + eqslWhenTimer;
|
||||
g_eqslLoadTimer = setTimeout(eqslDownload,(eqslWhenTimer)*1000);
|
||||
}
|
||||
|
||||
|
||||
if (!fs.existsSync(g_eqslFile))
|
||||
{
|
||||
|
@ -385,50 +319,32 @@ function eqslLoadCallsigns()
|
|||
function eqslSettingsDisplay()
|
||||
{
|
||||
eqslUseEnable.checked = g_callsignLookups.eqslUseEnable;
|
||||
eqslWeeklyEnable.checked = g_callsignLookups.eqslWeeklyEnable;
|
||||
|
||||
if ( g_callsignLookups.eqslLastUpdate == 0 )
|
||||
{
|
||||
eqslUpdatedTd.innerHTML = "<b>Never</b>";
|
||||
eqslWhenTd.innerHTML = "<b>Never</b>";
|
||||
eqslUpdatedTd.innerHTML = "Never";
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
eqslUpdatedTd.innerHTML = "<b>"+userTimeString(g_callsignLookups.eqslLastUpdate * 1000)+"</b>";
|
||||
eqslWhenTd.innerHTML = "<b>"+userTimeString(g_eqslWhenDate * 1000) + "</b>";
|
||||
eqslUpdatedTd.innerHTML = userTimeString(g_callsignLookups.eqslLastUpdate * 1000);
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( g_callsignLookups.eqslUseEnable )
|
||||
if ( !g_callsignLookups.eqslUseEnable )
|
||||
{
|
||||
eqslWeeklyTd.style.display = "table-cell";
|
||||
eqslNowTd.style.display = "table-cell";
|
||||
eqslCountTd.style.display = "table-cell";
|
||||
if ( eqslWeeklyEnable.checked == true )
|
||||
eqslWhenTr.style.display = "table-row";
|
||||
else
|
||||
eqslWhenTr.style.display = "none";
|
||||
eqslLastTr.style.display = "table-row";
|
||||
}
|
||||
else
|
||||
{
|
||||
eqslWeeklyTd.style.display = "none";
|
||||
eqslNowTd.style.display = "none";
|
||||
eqslCountTd.style.display = "none";
|
||||
eqslWhenTr.style.display = "none";
|
||||
eqslLastTr.style.display = "none";
|
||||
if ( g_eqslLoadTimer != null )
|
||||
clearTimeout(g_eqslLoadTimer);
|
||||
g_eqslLoadTimer = null;
|
||||
g_eqslCallsigns = Object();
|
||||
}
|
||||
eqslCountTd.innerHTML = Object.keys(g_eqslCallsigns).length + " callsigns found";
|
||||
eqslCountTd.innerHTML = Object.keys(g_eqslCallsigns).length;
|
||||
}
|
||||
|
||||
function eqslValuesChanged()
|
||||
{
|
||||
g_callsignLookups.eqslUseEnable = eqslUseEnable.checked;
|
||||
g_callsignLookups.eqslWeeklyEnable = eqslWeeklyEnable.checked;
|
||||
saveCallsignSettings();
|
||||
if ( g_callsignLookups.eqslUseEnable == true )
|
||||
{
|
||||
|
@ -456,21 +372,21 @@ function processeqslCallsigns(buffer, flag)
|
|||
g_eqslCallsigns = Object();
|
||||
for ( x in lines )
|
||||
{
|
||||
g_eqslCallsigns[lines[x].trim()] = 1;
|
||||
g_eqslCallsigns[lines[x].trim()] = true;
|
||||
}
|
||||
g_callsignLookups.eqslLastUpdate = timeNowSec();
|
||||
if ( g_callsignLookups.eqslWeeklyEnable == true )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( g_eqslLoadTimer != null )
|
||||
clearTimeout(g_eqslLoadTimer);
|
||||
|
||||
var eqslWhenTimer = (86400 * 7) - (now - g_callsignLookups.eqslLastUpdate);
|
||||
g_eqslWhenDate = now + eqslWhenTimer;
|
||||
g_eqslLoadTimer = setTimeout(eqslDownload,(eqslWhenTimer)*1000);
|
||||
}
|
||||
|
||||
var now = timeNowSec();
|
||||
if ( g_eqslLoadTimer != null )
|
||||
clearTimeout(g_eqslLoadTimer);
|
||||
|
||||
var eqslWhenTimer = (86400 * 7) - (now - g_callsignLookups.eqslLastUpdate);
|
||||
g_eqslWhenDate = now + eqslWhenTimer;
|
||||
g_eqslLoadTimer = setTimeout(eqslDownload,(eqslWhenTimer)*1000);
|
||||
|
||||
if ( Object.keys(g_eqslCallsigns).length > 10000 )
|
||||
fs.writeFileSync(g_eqslFile, JSON.stringify(g_eqslCallsigns));
|
||||
|
||||
fs.writeFileSync(g_eqslFile, JSON.stringify(g_eqslCallsigns));
|
||||
eqslSettingsDisplay();
|
||||
}
|
||||
|
||||
|
@ -484,32 +400,61 @@ function ulsLoadCallsigns()
|
|||
|
||||
}
|
||||
|
||||
if ( g_callsignLookups.ulsWeeklyEnable == true )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.ulsLastUpdate > (86400 * 7) )
|
||||
g_callsignLookups.ulsLastUpdate = 0;
|
||||
else
|
||||
{
|
||||
var ulsWhenTimer = (86400 * 7) - (now - g_callsignLookups.ulsLastUpdate);
|
||||
g_ulsWhenDate = now + ulsWhenTimer;
|
||||
g_ulsLoadTimer = setTimeout(ulsDownload,(ulsWhenTimer)*1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( g_callsignLookups.ulsLastUpdate == 0 )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( now - g_callsignLookups.ulsLastUpdate > (86400 * 7) )
|
||||
ulsDownload();
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
updateCallsignCount(true);
|
||||
var ulsWhenTimer = (86400 * 7) - (now - g_callsignLookups.ulsLastUpdate);
|
||||
g_ulsWhenDate = now + ulsWhenTimer;
|
||||
g_ulsLoadTimer = setTimeout(ulsDownload,(ulsWhenTimer)*1000);
|
||||
updateCallsignCount();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function updateCallsignCount( shouldDownload = false )
|
||||
function updateQSO()
|
||||
{
|
||||
if ( g_ulsCallsignsCount > 0 )
|
||||
{
|
||||
for ( hash in g_QSOhash )
|
||||
{
|
||||
var details = g_QSOhash[hash];
|
||||
var lookupCall = false;
|
||||
|
||||
|
||||
if ( (details.cnty == null || details.state == null) && isKnownCallsignDXCC(details.dxcc))
|
||||
{
|
||||
// Do County Lookup
|
||||
lookupCall = true;
|
||||
}
|
||||
else if (details.cnty != null && isKnownCallsignUSplus(details.dxcc))
|
||||
{
|
||||
if (!(details.cnty in g_cntyToCounty))
|
||||
{
|
||||
if (details.cnty.indexOf(",") == -1)
|
||||
{
|
||||
if (!(details.state + "," + details.cnty in g_cntyToCounty))
|
||||
lookupCall = true;
|
||||
}
|
||||
else
|
||||
lookupCall = true;
|
||||
|
||||
}
|
||||
}
|
||||
if (lookupCall)
|
||||
{
|
||||
if (g_callsignLookups.ulsUseEnable)
|
||||
{
|
||||
lookupUsCallsign(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateCallsignCount()
|
||||
{
|
||||
g_ulsDatabase.transaction(function (tx) {
|
||||
tx.executeSql('SELECT count(*) as cnt FROM calls', [], function (tx, results)
|
||||
|
@ -517,51 +462,11 @@ function updateCallsignCount( shouldDownload = false )
|
|||
var len = results.rows.length, i;
|
||||
if ( len == 1 )
|
||||
{
|
||||
g_ulsCallsignsCount = results.rows[0]["cnt"];
|
||||
ulsCountTd.innerHTML = g_ulsCallsignsCount + " callsigns found";
|
||||
if ( g_ulsCallsignsCount > 0 )
|
||||
{
|
||||
for ( hash in g_QSOhash )
|
||||
{
|
||||
var details = g_QSOhash[hash];
|
||||
var lookupCall = false;
|
||||
|
||||
if ( (details.cnty == null || details.state == null) && (details.dxcc == 291 || details.dxcc == 110 || details.dxcc == 6 || details.dxcc == 202))
|
||||
{
|
||||
// Do County Lookup
|
||||
lookupCall = true;
|
||||
}
|
||||
else if (details.cnty != null && (details.dxcc == 291 || details.dxcc == 110 || details.dxcc == 6 || details.dxcc == 202))
|
||||
{
|
||||
if (!(details.cnty in g_cntyToCounty))
|
||||
{
|
||||
if (details.cnty.indexOf(",") == -1)
|
||||
{
|
||||
if (!(details.state + "," + details.cnty in g_cntyToCounty))
|
||||
lookupCall = true;
|
||||
}
|
||||
else
|
||||
lookupCall = true;
|
||||
|
||||
}
|
||||
}
|
||||
if (lookupCall)
|
||||
{
|
||||
if (g_callsignLookups.ulsUseEnable)
|
||||
{
|
||||
lookupUsCallsign(details);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ulsDownload();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ulsDownload();
|
||||
g_ulsCallsignsCount = results.rows[0]["cnt"];
|
||||
ulsCountTd.innerHTML = g_ulsCallsignsCount;
|
||||
|
||||
updateQSO();
|
||||
}
|
||||
|
||||
}, null);
|
||||
|
@ -572,75 +477,52 @@ function updateCallsignCount( shouldDownload = false )
|
|||
function ulsSettingsDisplay()
|
||||
{
|
||||
ulsUseEnable.checked = g_callsignLookups.ulsUseEnable;
|
||||
ulsWeeklyEnable.checked = g_callsignLookups.ulsWeeklyEnable;
|
||||
|
||||
|
||||
if ( g_callsignLookups.ulsLastUpdate == 0 )
|
||||
{
|
||||
ulsUpdatedTd.innerHTML = "<b>Never</b>";
|
||||
ulsWhenTd.innerHTML = "<b>Never</b>";
|
||||
ulsUpdatedTd.innerHTML = "Never";
|
||||
}
|
||||
else
|
||||
{
|
||||
ulsUpdatedTd.innerHTML = "<b>"+userTimeString(g_callsignLookups.ulsLastUpdate * 1000)+"</b>";
|
||||
ulsWhenTd.innerHTML = "<b>"+userTimeString(g_ulsWhenDate * 1000) + "</b>";
|
||||
ulsUpdatedTd.innerHTML = userTimeString(g_callsignLookups.ulsLastUpdate * 1000);
|
||||
}
|
||||
|
||||
|
||||
if ( g_callsignLookups.ulsUseEnable )
|
||||
if ( !g_callsignLookups.ulsUseEnable )
|
||||
{
|
||||
ulsWeeklyTd.style.display = "table-cell";
|
||||
ulsNowTd.style.display = "table-cell";
|
||||
ulsCountTd.style.display = "table-cell";
|
||||
if ( ulsWeeklyEnable.checked == true )
|
||||
ulsWhenTr.style.display = "table-row";
|
||||
else
|
||||
ulsWhenTr.style.display = "none";
|
||||
ulsLastTr.style.display = "table-row";
|
||||
}
|
||||
else
|
||||
{
|
||||
ulsWeeklyTd.style.display = "none";
|
||||
ulsNowTd.style.display = "none";
|
||||
ulsCountTd.style.display = "none";
|
||||
ulsWhenTr.style.display = "none";
|
||||
ulsLastTr.style.display = "none";
|
||||
if ( g_ulsLoadTimer != null )
|
||||
clearTimeout(g_ulsLoadTimer);
|
||||
g_ulsLoadTimer = null;
|
||||
g_ulsCallsignsCount = 0;
|
||||
ulsCountTd.innerHTML = g_ulsCallsignsCount;
|
||||
}
|
||||
}
|
||||
|
||||
function ulsValuesChanged()
|
||||
{
|
||||
g_callsignLookups.ulsUseEnable = ulsUseEnable.checked;
|
||||
g_callsignLookups.ulsWeeklyEnable = ulsWeeklyEnable.checked;
|
||||
saveCallsignSettings();
|
||||
|
||||
if ( g_callsignLookups.ulsUseEnable == true )
|
||||
{
|
||||
ulsLoadCallsigns();
|
||||
}
|
||||
else
|
||||
g_callsignToState = Object();
|
||||
{
|
||||
resetULSDatabase();
|
||||
ulsCountTd.innerHTML = 0;
|
||||
}
|
||||
saveCallsignSettings();
|
||||
|
||||
ulsSettingsDisplay();
|
||||
|
||||
|
||||
goProcessRoster();
|
||||
if ( g_callRosterWindowHandle )
|
||||
g_callRosterWindowHandle.window.resize();
|
||||
}
|
||||
|
||||
function ulsDownload(fromSettings)
|
||||
function ulsDownload()
|
||||
{
|
||||
if ( g_ulsDownloadPending == true )
|
||||
{
|
||||
ulsUpdatedTd.innerHTML = "<b><i>Download pending</i></b>";
|
||||
return;
|
||||
}
|
||||
g_ulsDownloadPending = true;
|
||||
ulsUpdatedTd.innerHTML = "<b><i>Downloading...</i></b>";
|
||||
g_callsignLookups.ulsLastUpdate = 0;
|
||||
ulsCountTd.innerHTML = "";
|
||||
ulsCountTd.innerHTML = 0;
|
||||
getChunkedBuffer("https://dl.dropboxusercontent.com/s/91iynrvdse7zcf5/callsigns.txt?cb="+timeNowSec(), processulsCallsigns, null, "https", 443);
|
||||
}
|
||||
|
||||
|
@ -669,30 +551,31 @@ function getChunkedBuffer(file_url, callback, flag, mode, port, cookie, errorHan
|
|||
}
|
||||
http.get(options, function (res) {
|
||||
var fsize = res.headers['content-length'];
|
||||
var fread = 0;
|
||||
var cookies = null;
|
||||
if (typeof res.headers['set-cookie'] != 'undefined')
|
||||
cookies = res.headers['set-cookie'];
|
||||
res.on('data', function (data) {
|
||||
var isEnd = false;
|
||||
fread += data.length;
|
||||
if ( fread == fsize )
|
||||
isEnd = true;
|
||||
if (fileBuffer == null)
|
||||
{
|
||||
fileBuffer = callback(data, flag, cookies, true, false);
|
||||
fileBuffer = callback(data, flag, cookies, true, isEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
fileBuffer = callback(fileBuffer + data, flag, cookies, false, false);
|
||||
fileBuffer = callback(fileBuffer + data, flag, cookies, false, isEnd);
|
||||
}
|
||||
}).on('end', function () {
|
||||
if (typeof callback === "function") {
|
||||
// Call it, since we have confirmed it is callable
|
||||
callback(null, flag, cookies, false , true);
|
||||
}
|
||||
|
||||
}).on('error', function (e) {
|
||||
console.error('Got error: ' + e.message);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
var g_callsignToState = Object();
|
||||
|
||||
var g_ulsDatabase = openDatabase('ulsDB', '1.0', 'US Callsigns', 40 * 1024 * 1024);
|
||||
|
||||
|
@ -700,13 +583,19 @@ g_ulsDatabase.transaction(function (tx) {
|
|||
tx.executeSql('CREATE TABLE IF NOT EXISTS calls (callsign PRIMARY KEY, zip, state)');
|
||||
});
|
||||
|
||||
var g_currentULSBuffer = 0;
|
||||
|
||||
function resetULSDatabase()
|
||||
{
|
||||
g_callsignLookups.ulsLastUpdate = 0;
|
||||
g_ulsCallsignsCount = 0;
|
||||
}
|
||||
|
||||
function processulsCallsigns(data, flag, cookies, starting, finished)
|
||||
{
|
||||
var buffer = String(data);
|
||||
var returnBuffer = "";
|
||||
|
||||
|
||||
if ( buffer && buffer.length > 0 )
|
||||
{
|
||||
var lines = null;
|
||||
|
@ -727,49 +616,58 @@ function processulsCallsigns(data, flag, cookies, starting, finished)
|
|||
g_ulsDatabase.transaction(function (tx) {
|
||||
if ( starting == true )
|
||||
{
|
||||
g_ulsCallsignsCount = 0;
|
||||
g_callsignLookups.ulsLastUpdate = 0;
|
||||
saveCallsignSettings();
|
||||
ulsUpdatedTd.innerHTML = "<b><i>Processing...</i></b>";
|
||||
tx.executeSql('drop table calls');
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS calls (callsign PRIMARY KEY, zip, state)');
|
||||
g_ulsCallsignsCount = 0;
|
||||
g_currentLine = 0;
|
||||
}
|
||||
for (var x in lines )
|
||||
{
|
||||
if ( lines[x].length )
|
||||
{
|
||||
tx.executeSql( 'INSERT INTO calls (callsign, zip, state) VALUES ("'+lines[x].substr(7)+'","'+lines[x].substr(0,5)+'","'+lines[x].substr(5,2)+'")');
|
||||
++g_ulsCallsignsCount;
|
||||
if ( g_ulsCallsignsCount % 7969 == 0 )
|
||||
ulsCountTd.innerHTML = g_ulsCallsignsCount;
|
||||
}
|
||||
}
|
||||
delete lines;
|
||||
lines = null;
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if ( finished == true )
|
||||
{
|
||||
g_ulsDownloadPending = false;
|
||||
var now = timeNowSec();
|
||||
|
||||
g_callsignLookups.ulsLastUpdate = timeNowSec();
|
||||
if ( g_callsignLookups.ulsWeeklyEnable == true )
|
||||
{
|
||||
var now = timeNowSec();
|
||||
if ( g_ulsLoadTimer != null )
|
||||
clearTimeout(g_ulsLoadTimer);
|
||||
|
||||
var ulsWhenTimer = (86400 * 7) - (now - g_callsignLookups.ulsLastUpdate);
|
||||
g_ulsWhenDate = now + ulsWhenTimer;
|
||||
g_ulsLoadTimer = setTimeout(ulsDownload,(ulsWhenTimer)*1000);
|
||||
}
|
||||
updateCallsignCount();
|
||||
ulsValuesChanged();
|
||||
if ( g_ulsLoadTimer != null )
|
||||
clearTimeout(g_ulsLoadTimer);
|
||||
|
||||
var ulsWhenTimer = 86400 * 7;
|
||||
g_ulsWhenDate = ulsWhenTimer + now;
|
||||
g_ulsLoadTimer = setTimeout(ulsDownload,(ulsWhenTimer)*1000);
|
||||
|
||||
g_ulsDatabase.transaction(function (tx) {
|
||||
tx.executeSql('SELECT count(*) as cnt FROM calls', [], function (rx, results)
|
||||
{
|
||||
var len = results.rows.length, i;
|
||||
if ( len == 1 )
|
||||
{
|
||||
g_ulsCallsignsCount = results.rows[0]["cnt"];
|
||||
ulsCountTd.innerHTML = g_ulsCallsignsCount;
|
||||
g_callsignLookups.ulsLastUpdate = timeNowSec();
|
||||
saveCallsignSettings();
|
||||
ulsSettingsDisplay();
|
||||
updateQSO();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
g_currentULSBuffer++;
|
||||
if ( g_currentULSBuffer % 40 == 0 )
|
||||
{
|
||||
updateCallsignCount();
|
||||
}
|
||||
|
||||
return Buffer(returnBuffer);
|
||||
}
|
||||
|
@ -781,12 +679,20 @@ function lookupUsCallsign( object , writeState = false)
|
|||
var qry = 'SELECT * FROM calls where callsign = "'+object.DEcall+'"';
|
||||
tx.executeSql(qry, [], function (tx, results)
|
||||
{
|
||||
|
||||
var len = results.rows.length, i;
|
||||
if ( len == 1 )
|
||||
{
|
||||
if ( object.state == null )
|
||||
object.state = "US-"+results.rows[0]["state"];
|
||||
{
|
||||
if ( object.dxcc == 1 )
|
||||
{
|
||||
object.state = "CA-"+results.rows[0]["state"];
|
||||
}
|
||||
else
|
||||
{
|
||||
object.state = "US-"+results.rows[0]["state"];
|
||||
}
|
||||
}
|
||||
object.zipcode = results.rows[0]["zip"];
|
||||
if ( object.cnty == null )
|
||||
{
|
||||
|
|
|
@ -0,0 +1,238 @@
|
|||
var picker = {
|
||||
attach : function (opt) {
|
||||
// attach() : attach datepicker to target
|
||||
// opt : options (object)
|
||||
// target : datepicker will populate this field
|
||||
// container : datepicker will be generated in this container
|
||||
// startmon : start on Monday (default false)
|
||||
// disableday : array of days to disable, e.g. [2,7] to disable Tue and Sun
|
||||
|
||||
// (A) Create new datepicker
|
||||
var dp = document.createElement("div");
|
||||
dp.dataset.target = opt.target;
|
||||
dp.dataset.fire = opt.fire;
|
||||
dp.dataset.startmon = opt.startmon ? "1" : "0";
|
||||
dp.classList.add("picker");
|
||||
if (opt.disableday) {
|
||||
dp.dataset.disableday = JSON.stringify(opt.disableday);
|
||||
}
|
||||
|
||||
// (B) Default to current month + year
|
||||
// ! NOTE: UTC+0 !
|
||||
var today = new Date(),
|
||||
thisMonth = today.getUTCMonth(), // Note: Jan is 0
|
||||
thisYear = today.getUTCFullYear(),
|
||||
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
||||
|
||||
// (C) Month select
|
||||
var select = document.createElement("select"),
|
||||
option = null;
|
||||
select.classList.add("picker-m");
|
||||
for (var mth in months) {
|
||||
option = document.createElement("option");
|
||||
option.value = parseInt(mth) + 1;
|
||||
option.text = months[mth];
|
||||
select.appendChild(option);
|
||||
}
|
||||
select.selectedIndex = thisMonth;
|
||||
select.addEventListener("change", function(){ picker.draw(this); });
|
||||
dp.appendChild(select);
|
||||
|
||||
// (D) Year select
|
||||
var yRange = 100; // Year range to show, I.E. from thisYear-yRange to thisYear+yRange
|
||||
select = document.createElement("select");
|
||||
select.classList.add("picker-y");
|
||||
for (var y = thisYear-yRange; y < thisYear+20; y++) {
|
||||
option = document.createElement("option");
|
||||
option.value = y;
|
||||
option.text = y;
|
||||
select.appendChild(option);
|
||||
}
|
||||
select.selectedIndex = yRange;
|
||||
select.addEventListener("change", function(){ picker.draw(this); });
|
||||
dp.appendChild(select);
|
||||
|
||||
// (E) Day select
|
||||
var days = document.createElement("div");
|
||||
days.classList.add("picker-d");
|
||||
dp.appendChild(days);
|
||||
|
||||
// (F) Attach date picker to target container + draw the dates
|
||||
picker.draw(select);
|
||||
|
||||
// (F1) Popup datepicker
|
||||
if (opt.container==1) {
|
||||
// Mark this as a "popup"
|
||||
var uniqueID = 0;
|
||||
while (document.getElementById("picker-" + uniqueID) != null) {
|
||||
uniqueID = Math.floor(Math.random() * (100 - 2)) + 1;
|
||||
}
|
||||
dp.dataset.popup = "1";
|
||||
dp.dataset.dpid = uniqueID;
|
||||
|
||||
// Create wrapper
|
||||
var wrapper = document.createElement("div");
|
||||
wrapper.id = "picker-" + uniqueID;
|
||||
wrapper.classList.add("picker-wrap");
|
||||
wrapper.appendChild(dp);
|
||||
|
||||
// Attach onclick to show/hide datepicker
|
||||
var target = document.getElementById(opt.target);
|
||||
target.dataset.dp = uniqueID;
|
||||
target.onfocus = function () {
|
||||
document.getElementById("picker-" + this.dataset.dp).classList.add("show");
|
||||
};
|
||||
wrapper.addEventListener("click", function (evt) {
|
||||
if (evt.target.classList.contains("picker-wrap")) {
|
||||
this.classList.remove("show");
|
||||
}
|
||||
});
|
||||
|
||||
// Attach popup datepicker to document
|
||||
document.documentElement.appendChild(wrapper);
|
||||
}
|
||||
|
||||
// (F2) Inline datepicker
|
||||
else {
|
||||
document.getElementById(opt.container).appendChild(dp);
|
||||
}
|
||||
},
|
||||
|
||||
draw : function (el) {
|
||||
// draw() : draw the days in month
|
||||
// el : HTML reference to either year or month selector
|
||||
|
||||
// (A) Get date picker components
|
||||
var parent = el.parentElement,
|
||||
year = parent.getElementsByClassName("picker-y")[0].value,
|
||||
month = parent.getElementsByClassName("picker-m")[0].value,
|
||||
days = parent.getElementsByClassName("picker-d")[0];
|
||||
|
||||
// (B) Date range calculation
|
||||
// ! NOTE: UTC+0 !
|
||||
var daysInMonth = new Date(Date.UTC(year, month, 0)).getUTCDate(),
|
||||
startDay = new Date(Date.UTC(year, month-1, 1)).getUTCDay(), // Note: Sun = 0
|
||||
endDay = new Date(Date.UTC(year, month-1, daysInMonth)).getUTCDay(),
|
||||
startDay = startDay==0 ? 7 : startDay,
|
||||
endDay = endDay==0 ? 7 : endDay;
|
||||
|
||||
// (C) Generate date squares (in array first)
|
||||
var squares = [],
|
||||
disableday = null;
|
||||
if (parent.dataset.disableday) {
|
||||
disableday = JSON.parse(parent.dataset.disableday);
|
||||
}
|
||||
|
||||
// (C1) Empty squares before first day of month
|
||||
if (parent.dataset.startmon=="1" && startDay!=1) {
|
||||
for (var i=1; i<startDay; i++) { squares.push("B"); }
|
||||
}
|
||||
if (parent.dataset.startmon=="0" && startDay!=7) {
|
||||
for (var i=0; i<startDay; i++) { squares.push("B"); }
|
||||
}
|
||||
|
||||
// (C2) Days of month
|
||||
// All days enabled, just add
|
||||
if (disableday==null) {
|
||||
for (var i=1; i<=daysInMonth; i++) { squares.push([i, false]); }
|
||||
}
|
||||
// Some days disabled
|
||||
else {
|
||||
var thisday = startDay;
|
||||
for (var i=1; i<=daysInMonth; i++) {
|
||||
// Check if day is disabled
|
||||
var disabled = disableday.includes(thisday);
|
||||
// Day of month, disabled
|
||||
squares.push([i, disabled]);
|
||||
// Next day
|
||||
thisday++;
|
||||
if (thisday==8) { thisday = 1; }
|
||||
}
|
||||
}
|
||||
|
||||
// (C2) Empty squares after last day of month
|
||||
if (parent.dataset.startmon=="1" && endDay!=7) {
|
||||
for (var i=endDay; i<7; i++) { squares.push("B"); }
|
||||
}
|
||||
if (parent.dataset.startmon=="0" && endDay!=6) {
|
||||
for (var i=endDay; i<(endDay==7?13:6); i++) { squares.push("B"); }
|
||||
}
|
||||
|
||||
// (D) Draw HTML
|
||||
var daynames = ["Mon", "Tue", "Wed", "Thur", "Fri", "Sat"];
|
||||
if (parent.dataset.startmon=="1") { daynames.push("Sun"); }
|
||||
else { daynames.unshift("Sun"); }
|
||||
|
||||
// (D1) Header
|
||||
var table = document.createElement("table"),
|
||||
row = table.insertRow()
|
||||
cell = null;
|
||||
row.classList.add("picker-d-h");
|
||||
for (let d of daynames) {
|
||||
cell = row.insertCell();
|
||||
cell.innerHTML = d;
|
||||
}
|
||||
|
||||
// (D2) Date cells
|
||||
var total = squares.length;
|
||||
row = table.insertRow();
|
||||
for (var i=0; i<total; i++) {
|
||||
if (i!=total && i%7==0) { row = table.insertRow(); }
|
||||
cell = row.insertCell();
|
||||
if (squares[i] == "B") {
|
||||
cell.classList.add("picker-d-b");
|
||||
} else {
|
||||
cell.innerHTML = squares[i][0];
|
||||
// Not allowed to choose this day
|
||||
if (squares[i][1]) {
|
||||
cell.classList.add("picker-d-dd");
|
||||
}
|
||||
// Allowed to choose this day
|
||||
else {
|
||||
cell.classList.add("picker-d-d");
|
||||
cell.addEventListener("click", function(){ picker.pick(this); });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// (D3) Attach new calendar to datepicker
|
||||
days.innerHTML = "";
|
||||
days.appendChild(table);
|
||||
},
|
||||
|
||||
pick : function (el) {
|
||||
// pick() : choose a date
|
||||
// el : HTML reference to selected date cell
|
||||
|
||||
// (A) Get all components
|
||||
var parent = el.parentElement;
|
||||
while (!parent.classList.contains("picker")) {
|
||||
parent = parent.parentElement;
|
||||
}
|
||||
|
||||
// (B) Get full selected year month day
|
||||
var year = parent.getElementsByClassName("picker-y")[0].value,
|
||||
month = parent.getElementsByClassName("picker-m")[0].value,
|
||||
day = el.innerHTML;
|
||||
|
||||
// YYYY-MM-DD Format
|
||||
// ! CHANGE FORMAT HERE IF YOU WANT !
|
||||
if (parseInt(month)<10) { month = "0" + month; }
|
||||
if (parseInt(day)<10) { day = "0" + day; }
|
||||
var fullDate = year + "-" + month + "-" + day;
|
||||
|
||||
// (C) Update selected date
|
||||
document.getElementById(parent.dataset.target).value = fullDate;
|
||||
|
||||
if ( parent.dataset.fire.length > 0 )
|
||||
{
|
||||
window[parent.dataset.fire]();
|
||||
}
|
||||
|
||||
// (D) Popup only - close the popup
|
||||
if (parent.dataset.popup == "1") {
|
||||
document.getElementById("picker-" + parent.dataset.dpid).classList.remove("show");
|
||||
}
|
||||
}
|
||||
};
|
|
@ -36,15 +36,15 @@ var def_appSettings =
|
|||
"rosterAlwaysOnTop": false,
|
||||
"centerGridsquare" : "",
|
||||
"chatUUID" : "",
|
||||
"crScript" : 1,
|
||||
"distanceUnit" : "KM",
|
||||
"crScript" : 0,
|
||||
"distanceUnit" : "MI",
|
||||
"earthImgSrc" : 0,
|
||||
"gridViewMode" : 3,
|
||||
"gridsquareDecayTime" : 300,
|
||||
"gtAgree" : "",
|
||||
"gtBandFilter" : "auto",
|
||||
"gtBandFilter" : "",
|
||||
"gtFlagImgSrc" : 0,
|
||||
"gtModeFilter" : "auto",
|
||||
"gtModeFilter" : "",
|
||||
"gtPropFilter" : "mixed",
|
||||
"gtMsgEnable" : true,
|
||||
"gtShareEnable" : true,
|
||||
|
@ -85,7 +85,11 @@ var def_appSettings =
|
|||
"wsjtForwardUdpIp" : "127.0.0.1",
|
||||
"wsjtForwardUdpPort" : 2238,
|
||||
"wsjtIP" : "",
|
||||
"wsjtUdpPort" : 2237
|
||||
"wsjtUdpPort" : 0,
|
||||
"workingCallsignEnable" : false,
|
||||
"workingCallsigns" : {},
|
||||
"workingDateEnable": false,
|
||||
"workingDate" : 0
|
||||
};
|
||||
|
||||
var def_mapSettings =
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
/* [POPUP] */
|
||||
.picker-wrap {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: rgba(0,0,0,0.5);
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
.picker-wrap.show {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
.picker-wrap .picker{
|
||||
margin: 50vh auto 0 auto;
|
||||
transform: translateY(-50%)
|
||||
}
|
||||
|
||||
/* [CONTAINER] */
|
||||
.picker {
|
||||
max-width: 300px;
|
||||
border: 1px solid #000;
|
||||
background: #444;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* [MONTH + YEAR] */
|
||||
.picker-m, .picker-y {
|
||||
width: 50%;
|
||||
padding: 5px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* [DAY] */
|
||||
.picker-d table {
|
||||
color: #fff;
|
||||
border-collapse: separate;
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.picker-d table td {
|
||||
width: 14.28%; /* 7 equal columns */
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
/* Header cells */
|
||||
.picker-d-h td {
|
||||
font-weight: bold;
|
||||
}
|
||||
/* Blank dates */
|
||||
.picker-d-b {
|
||||
background: #4e4e4e;
|
||||
}
|
||||
/* Pickable Dates */
|
||||
.picker-d-d:hover {
|
||||
cursor: pointer;
|
||||
background: #a33c3c;
|
||||
}
|
||||
/* Unpickable Dates */
|
||||
.picker-d-dd {
|
||||
color: #888;
|
||||
background: #4e4e4e;
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
/* [POPUP] */
|
||||
.picker-wrap {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background: rgba(0,0,0,0.5);
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
.picker-wrap.show {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
.picker-wrap .picker{
|
||||
margin: 50vh auto 0 auto;
|
||||
transform: translateY(-50%)
|
||||
}
|
||||
|
||||
/* [CONTAINER] */
|
||||
.picker {
|
||||
max-width: 300px;
|
||||
border: 1px solid #eee;
|
||||
background: #fafafa;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* [MONTH + YEAR] */
|
||||
.picker-m, .picker-y {
|
||||
width: 50%;
|
||||
padding: 5px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* [DAY] */
|
||||
.picker-d table {
|
||||
color: #333;
|
||||
border-collapse: separate;
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.picker-d table td {
|
||||
width: 14.28%; /* 7 equal columns */
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
/* Header */
|
||||
.picker-d-h td {
|
||||
font-weight: bold;
|
||||
}
|
||||
/* Blank dates */
|
||||
.picker-d-b {
|
||||
background: #ddd;
|
||||
}
|
||||
/* Pickable Dates */
|
||||
.picker-d-d:hover {
|
||||
cursor: pointer;
|
||||
background: #2d68c4;
|
||||
color: #fff;
|
||||
}
|
||||
/* Unpickable Dates */
|
||||
.picker-d-dd {
|
||||
color: #aaa;
|
||||
background: #ddd;
|
||||
}
|
|
@ -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 = 1200821;
|
||||
var gtBeta = "";
|
||||
var gtVersion = 1200825;
|
||||
var gtBeta = "Betamax";
|
||||
|
||||
var g_startVersion = 0;
|
||||
|
||||
|
@ -48,7 +48,6 @@ var g_popupWindowHandle = null;
|
|||
var g_callRosterWindowHandle = null;
|
||||
var g_conditionsWindowHandle = null;
|
||||
var g_chatWindowHandle = null;
|
||||
var g_settingsWindowHandle = null;
|
||||
var g_statsWindowHandle = null;
|
||||
var g_lookupWindowHandle = null;
|
||||
var g_baWindowHandle = null;
|
||||
|
@ -69,6 +68,26 @@ var g_callsignLookups = {};
|
|||
var g_startupLogs = [];
|
||||
var g_mapMemory = [];
|
||||
|
||||
var g_callsignDatabaseDXCC = {
|
||||
291 : true,
|
||||
1 : true,
|
||||
6 : true,
|
||||
110 : true,
|
||||
202 : true
|
||||
};
|
||||
|
||||
var g_callsignDatabaseUS = {
|
||||
291 : true,
|
||||
6 : true,
|
||||
110 : true
|
||||
}
|
||||
|
||||
var g_callsignDatabaseUSplus = {
|
||||
291 : true,
|
||||
6 : true,
|
||||
110 : true,
|
||||
202 : true
|
||||
}
|
||||
|
||||
function loadAllSettings()
|
||||
{
|
||||
|
@ -264,6 +283,24 @@ function saveAndCloseApp()
|
|||
saveAppSettings();
|
||||
saveMapSettings();
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
if ( g_callRosterWindowHandle )
|
||||
{
|
||||
g_callRosterWindowHandle.window.writeRosterSettings();
|
||||
g_callRosterWindowHandle.close(true);
|
||||
}
|
||||
if ( g_popupWindowHandle ) g_popupWindowHandle.close(true);
|
||||
if ( g_conditionsWindowHandle ) g_conditionsWindowHandle.close(true);
|
||||
if ( g_chatWindowHandle ) g_chatWindowHandle.close(true);
|
||||
if ( g_statsWindowHandle ) g_statsWindowHandle.close(true);
|
||||
if ( g_lookupWindowHandle ) g_lookupWindowHandle.close(true);
|
||||
if ( g_baWindowHandle ) g_baWindowHandle.close(true);
|
||||
}
|
||||
catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
nw.App.quit();
|
||||
}
|
||||
|
||||
|
@ -866,6 +903,32 @@ function setState( details )
|
|||
}
|
||||
}
|
||||
|
||||
function isKnownCallsignDXCC(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseDXCC )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function isKnownCallsignUS(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseUS )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function isKnownCallsignUSplus(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseUSplus )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRSTsent, finalTime, ifinalMsg,
|
||||
mode, band, confirmed, notQso, finalRSTrecv, finalDxcc, finalState, finalCont, finalCnty, finalCqZone, finalItuZone,
|
||||
finalVucc = [], finalPropMode = "", finalDigital = false, finalPhone = false, finalIOTA = "", finalSatName = "") {
|
||||
|
@ -961,11 +1024,11 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
|
|||
details.zone = Number(details.px.charAt(details.px.length-1));
|
||||
}
|
||||
|
||||
if (details.state != null && finalDxcc != 291 && finalDxcc != 110 && finalDxcc != 6 && finalDxcc != 202)
|
||||
details.state = null;
|
||||
else if (details.state == null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202) && finalGrid.length > 0) {
|
||||
|
||||
if (details.state == null && isKnownCallsignUSplus(finalDxcc) && finalGrid.length > 0) {
|
||||
var fourGrid = finalGrid.substr(0, 4);
|
||||
if ((fourGrid in g_gridToState) && g_gridToState[fourGrid].length == 1) {
|
||||
if ((fourGrid in g_gridToState) && g_gridToState[fourGrid].length == 1 )
|
||||
{
|
||||
details.state = g_gridToState[fourGrid][0];
|
||||
}
|
||||
lookupCall = true;
|
||||
|
@ -981,20 +1044,28 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
|
|||
|
||||
details.cnty = finalCnty;
|
||||
|
||||
if (details.cnty == null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202)) {
|
||||
// Do County Lookup
|
||||
lookupCall = true;
|
||||
} else if (details.cnty != null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202)) {
|
||||
if (!(details.cnty in g_cntyToCounty)) {
|
||||
if (details.cnty.indexOf(",") == -1) {
|
||||
if (!(details.state + "," + details.cnty in g_cntyToCounty))
|
||||
lookupCall = true;
|
||||
} else
|
||||
lookupCall = true;
|
||||
|
||||
if ( isKnownCallsignUSplus(finalDxcc) )
|
||||
{
|
||||
if (details.cnty == null )
|
||||
{
|
||||
lookupCall = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(details.cnty in g_cntyToCounty))
|
||||
{
|
||||
if (details.cnty.indexOf(",") == -1)
|
||||
{
|
||||
if (!(details.state + "," + details.cnty in g_cntyToCounty))
|
||||
lookupCall = true;
|
||||
}
|
||||
else
|
||||
lookupCall = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (lookupCall) {
|
||||
if (g_callsignLookups.ulsUseEnable) {
|
||||
lookupUsCallsign(details, true);
|
||||
|
@ -1009,8 +1080,6 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
|
|||
if (finalMsg.length > 0)
|
||||
details.msg = finalMsg;
|
||||
|
||||
|
||||
|
||||
g_tracker.worked.call[finalDXcall + band + mode] = true;
|
||||
g_tracker.worked.call[finalDXcall] = true;
|
||||
g_tracker.worked.call[finalDXcall + mode] = true;
|
||||
|
@ -1292,12 +1361,12 @@ function addDeDx(finalGrid, finalDXcall, cq, cqdx, locked, finalDEcall, finalRST
|
|||
newCallsign.IOTA = finalIOTA;
|
||||
newCallsign.satName = finalSatName;
|
||||
|
||||
if (newCallsign.state == null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202) && finalGrid.length > 0) {
|
||||
if (newCallsign.state == null && isKnownCallsignDXCC(finalDxcc) && finalGrid.length > 0) {
|
||||
if (g_callsignLookups.ulsUseEnable) {
|
||||
lookupUsCallsign(newCallsign);
|
||||
}
|
||||
|
||||
if (newCallsign.state == null) {
|
||||
if (newCallsign.state == null && isKnownCallsignUSplus(finalDxcc) ) {
|
||||
var fourGrid = finalGrid.substr(0, 4);
|
||||
if ((fourGrid in g_gridToState) && g_gridToState[finalGrid.substr(0, 4)].length == 1) {
|
||||
newCallsign.state = g_gridToState[finalGrid.substr(0, 4)][0];
|
||||
|
@ -1912,7 +1981,8 @@ function openCallRosterWindow( show = true ) {
|
|||
var gui = require('nw.gui');
|
||||
gui.Window.open('gt_roster.html', {
|
||||
"show": false,
|
||||
"id": "GT-roster"
|
||||
"id": "GT-roster",
|
||||
"icon" : "img/roster-icon.png"
|
||||
}, function (new_win) {
|
||||
g_callRosterWindowHandle = new_win;
|
||||
new_win.on('loaded', function () {
|
||||
|
@ -2945,6 +3015,24 @@ function mouseOverGtFlag(feature)
|
|||
|
||||
myFlagtip.style.zIndex = 499;
|
||||
myFlagtip.style.display = "block";
|
||||
|
||||
|
||||
if (feature.size == 73 && feature != g_lasttimezone )
|
||||
{
|
||||
if ( g_lasttimezone != null )
|
||||
{
|
||||
g_lasttimezone.setStyle(null);
|
||||
}
|
||||
|
||||
var style = new ol.style.Style({
|
||||
fill: new ol.style.Fill({
|
||||
color: "#FFFF0088"
|
||||
})
|
||||
});
|
||||
|
||||
feature.setStyle(style);
|
||||
g_lasttimezone = feature;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -4057,6 +4145,22 @@ function clearOrLoadQSOs()
|
|||
}
|
||||
}
|
||||
|
||||
function clearAndLoadQSOs()
|
||||
{
|
||||
initQSOdata();
|
||||
g_QSOhash = {};
|
||||
g_QSLcount = 0;
|
||||
g_QSOcount = 0;
|
||||
setTrophyOverlay(g_currentOverlay);
|
||||
redrawGrids();
|
||||
updateCountStats();
|
||||
updateLogbook();
|
||||
updateRosterWorked();
|
||||
goProcessRoster();
|
||||
updateCountStats();
|
||||
startupAdifLoadCheck();
|
||||
}
|
||||
|
||||
function clearQSOs() {
|
||||
|
||||
initQSOdata();
|
||||
|
@ -4636,22 +4740,6 @@ function initMap() {
|
|||
if (features[index].geometryName_ == "tz" )
|
||||
{
|
||||
features[index].size = 73;
|
||||
if ( features[index] != g_lasttimezone )
|
||||
{
|
||||
if ( g_lasttimezone != null )
|
||||
{
|
||||
g_lasttimezone.setStyle(null);
|
||||
}
|
||||
|
||||
var style = new ol.style.Style({
|
||||
fill: new ol.style.Fill({
|
||||
color: "#FFFF0088"
|
||||
})
|
||||
});
|
||||
|
||||
features[index].setStyle(style);
|
||||
g_lasttimezone = features[index];
|
||||
}
|
||||
}
|
||||
if (typeof features[index].size == "undefined")
|
||||
continue;
|
||||
|
@ -4667,6 +4755,13 @@ function initMap() {
|
|||
break;
|
||||
}
|
||||
|
||||
if (features[index].size == 1) {
|
||||
mouseOverGtFlag(features[index]);
|
||||
noFlag = false;
|
||||
noFeature = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (features[index].size == 6) {
|
||||
noFeature = false;
|
||||
finalGridFeature = features[index];
|
||||
|
@ -4674,25 +4769,20 @@ function initMap() {
|
|||
if (features[index].size == 4 && finalGridFeature == null) {
|
||||
noFeature = false;
|
||||
finalGridFeature = features[index];
|
||||
noFlag = true;
|
||||
}
|
||||
if (features[index].size == 73) {
|
||||
if (features[index].size == 73 && finalGridFeature == null ) {
|
||||
mouseOverGtFlag(features[index]);
|
||||
noFlag = false;
|
||||
finalGridFeature == null;
|
||||
noFeature = true;
|
||||
break;
|
||||
}
|
||||
if (features[index].size == 1) {
|
||||
mouseOverGtFlag(features[index]);
|
||||
noFlag = false;
|
||||
finalGridFeature == null;
|
||||
noFeature = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (finalGridFeature)
|
||||
{
|
||||
mouseOverDataItem(finalGridFeature, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4860,9 +4950,7 @@ function toggleNexrad()
|
|||
delete g_Nexrad;
|
||||
g_Nexrad = null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
createNexRad();
|
||||
|
||||
if ( g_nexradInterval == null )
|
||||
|
@ -4882,17 +4970,10 @@ function toggleNexrad()
|
|||
g_Nexrad = null;
|
||||
}
|
||||
}
|
||||
if ( g_nexradEnable )
|
||||
{
|
||||
UsNexradValue.checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
UsNexradValue.checked = false;
|
||||
}
|
||||
|
||||
|
||||
g_mapSettings.usNexrad = UsNexradValue.checked;
|
||||
saveMapSettings();
|
||||
g_mapSettings.usNexrad = (g_nexradEnable==1?true:false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -5875,7 +5956,7 @@ function handleWsjtxDecode(newMessage) {
|
|||
newCallsign.cqza = Array();
|
||||
newCallsign.distance = 0;
|
||||
newCallsign.heading = 0;
|
||||
if (g_callsignLookups.ulsUseEnable == true && (newCallsign.dxcc == 291 || newCallsign.dxcc == 110 || newCallsign.dxcc == 6 || newCallsign.dxcc == 202)) {
|
||||
if (g_callsignLookups.ulsUseEnable == true && isKnownCallsignDXCC(newCallsign.dxcc) ) {
|
||||
lookupUsCallsign(newCallsign);
|
||||
}
|
||||
|
||||
|
@ -7509,7 +7590,8 @@ function openLookupWindow( show = true ) {
|
|||
var gui = require('nw.gui');
|
||||
gui.Window.open('gt_lookup.html', {
|
||||
"show": false,
|
||||
"id": "GT-lookups"
|
||||
"id": "GT-lookups",
|
||||
"icon" : "img/lookup-icon.png"
|
||||
}, function (new_win) {
|
||||
g_lookupWindowHandle = new_win;
|
||||
new_win.on('loaded', function () {
|
||||
|
@ -7858,7 +7940,7 @@ function renderStatsBox()
|
|||
else
|
||||
workObject(modet.Other, true, band, mode, type, didConfirm);
|
||||
|
||||
if (state != null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6)) {
|
||||
if (state != null && isKnownCallsignUS(finalDxcc) ) {
|
||||
if (state.substr(0, 2) != "US")
|
||||
state = "US-" + state;
|
||||
|
||||
|
@ -8642,7 +8724,7 @@ function redrawGrids() {
|
|||
var ituz = g_QSOhash[i].ituz;
|
||||
var cqz = g_QSOhash[i].cqz;
|
||||
|
||||
if (state != null && (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6)) {
|
||||
if (state != null && isKnownCallsignUS(finalDxcc) ) {
|
||||
if (state.substr(0, 2) != "US")
|
||||
state = "US-" + state;
|
||||
|
||||
|
@ -9323,8 +9405,13 @@ function updateRunningProcesses() {
|
|||
|
||||
function updateBasedOnIni() {
|
||||
var which = null;
|
||||
var count = 0;
|
||||
if ( g_wsjtxProcessRunning )
|
||||
count++;
|
||||
if ( g_jtdxProcessRunning )
|
||||
count++;
|
||||
// UdpPortNotSet
|
||||
if (g_appSettings.wsjtUdpPort == 0) {
|
||||
if (g_appSettings.wsjtUdpPort == 0 || count == 1) {
|
||||
if (g_wsjtxProcessRunning)
|
||||
which = g_wsjtxIni;
|
||||
else if (g_jtdxProcessRunning)
|
||||
|
@ -9335,8 +9422,14 @@ function updateBasedOnIni() {
|
|||
}
|
||||
if (which == null) {
|
||||
g_appSettings.wsjtUdpPort = 2237;
|
||||
g_appSettings.ip = "";
|
||||
g_appSettings.wsjtIP = "";
|
||||
}
|
||||
if (ipToInt(g_appSettings.wsjtIP) >= ipToInt("224.0.0.0") && ipToInt(g_appSettings.wsjtIP) < ipToInt("240.0.0.0"))
|
||||
{
|
||||
g_appSettings.multicast = true;
|
||||
}
|
||||
else
|
||||
g_appSettings.multicast = false;
|
||||
}
|
||||
// Which INI do we load?
|
||||
if (g_appSettings.wsjtUdpPort) {
|
||||
|
@ -9422,6 +9515,57 @@ function validateNumAndLetter( input )
|
|||
return false;
|
||||
}
|
||||
|
||||
function validCallsignsKeys( value )
|
||||
{
|
||||
if (value == 44)
|
||||
return true;
|
||||
if ( value >= 48 && value <= 57 )
|
||||
return true;
|
||||
if ( value >= 65 && value <= 90 )
|
||||
return true;
|
||||
return (value >=97 && value <= 122);
|
||||
}
|
||||
|
||||
function ValidateCallsigns(inputText, validDiv)
|
||||
{
|
||||
inputText.value = inputText.value.toUpperCase();
|
||||
var callsigns = inputText.value.split(",");
|
||||
var passed = false;
|
||||
for ( var call in callsigns )
|
||||
{
|
||||
if (callsigns[call].length > 0)
|
||||
{
|
||||
if (/\d/.test(callsigns[call]) && /[A-Z]/.test(callsigns[call]) )
|
||||
{
|
||||
passed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
passed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
passed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (passed)
|
||||
{
|
||||
inputText.style.color = "#FF0";
|
||||
inputText.style.backgroundColor = "green";
|
||||
}
|
||||
else
|
||||
{
|
||||
inputText.style.color = "#000";
|
||||
inputText.style.backgroundColor = "yellow";
|
||||
}
|
||||
return passed;
|
||||
}
|
||||
|
||||
|
||||
function ValidateCallsign(inputText, validDiv) {
|
||||
addError.innerHTML = "";
|
||||
if ((inputText.value.length > 0)) {
|
||||
|
@ -9562,7 +9706,7 @@ function ValidateMulticast(inputText) {
|
|||
if (inputText.value.match(ipformat)) {
|
||||
if (inputText.value != "0.0.0.0" && inputText.value != "255.255.255.255") {
|
||||
var ipInt = ipToInt(inputText.value);
|
||||
if (ipInt > ipToInt("224.0.0.0") && ipInt < ipToInt("240.0.0.0")) {
|
||||
if (ipInt >= ipToInt("224.0.0.0") && ipInt < ipToInt("240.0.0.0")) {
|
||||
if (ipInt > ipToInt("224.0.0.255")) {
|
||||
inputText.style.color = "black";
|
||||
inputText.style.backgroundColor = "yellow";
|
||||
|
@ -9635,6 +9779,59 @@ function ValidatePort(inputText, checkBox, callBackCheck) {
|
|||
}
|
||||
}
|
||||
|
||||
function workingCallsignEnableChanged(ele)
|
||||
{
|
||||
g_appSettings.workingCallsignEnable = ele.checked;
|
||||
applyCallsignsAndDateDiv.style.display = "";
|
||||
}
|
||||
|
||||
function workingDateEnableChanged(ele)
|
||||
{
|
||||
g_appSettings.workingDateEnable = ele.checked;
|
||||
applyCallsignsAndDateDiv.style.display = "";
|
||||
|
||||
}
|
||||
|
||||
function workingDateChanged()
|
||||
{
|
||||
var fields = workingDateValue.value.split("-");
|
||||
var date = new Date( Date.UTC(parseInt(fields[0]), parseInt(fields[1])-1, parseInt(fields[2]),0,0,0));
|
||||
g_appSettings.workingDate = Date.UTC(parseInt(fields[0]), parseInt(fields[1])-1, parseInt(fields[2]),0,0,0) / 1000;
|
||||
displayWorkingDate();
|
||||
applyCallsignsAndDateDiv.style.display = "";
|
||||
}
|
||||
|
||||
function displayWorkingDate()
|
||||
{
|
||||
var date = new Date(g_appSettings.workingDate*1000);
|
||||
workingDateString.innerHTML = dateToString( date );
|
||||
}
|
||||
|
||||
var g_tempWorkingCallsigns = {};
|
||||
function workingCallsignsChanged(ele)
|
||||
{
|
||||
g_tempWorkingCallsigns = {};
|
||||
var callsigns = ele.value.split(",");
|
||||
for ( var call in callsigns )
|
||||
{
|
||||
g_tempWorkingCallsigns[callsigns[call]] = true;
|
||||
}
|
||||
if ( callsigns.length > 0 )
|
||||
{
|
||||
g_appSettings.workingCallsigns = Object.assign({},g_tempWorkingCallsigns);
|
||||
if ( g_appSettings.workingCallsignEnable )
|
||||
applyCallsignsAndDateDiv.style.display = "";
|
||||
}
|
||||
else
|
||||
applyCallsignsAndDateDiv.style.display = "none";
|
||||
}
|
||||
|
||||
function applyCallsignsAndDates()
|
||||
{
|
||||
clearAndLoadQSOs();
|
||||
applyCallsignsAndDateDiv.style.display = "none";
|
||||
}
|
||||
|
||||
function selectElementContents(el) {
|
||||
var body = document.body,
|
||||
range,
|
||||
|
@ -9671,21 +9868,22 @@ function ipLocation(buffer, flag) {
|
|||
|
||||
function popupNewWindows() {
|
||||
if (typeof nw != 'undefined') {
|
||||
var gui = require('nw.gui');
|
||||
var win = gui.Window.get();
|
||||
win.on('new-win-policy', function (frame, url, policy) {
|
||||
policy.forceNewPopup();
|
||||
g_lastUrl = "";
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var g_lastUrl = "";
|
||||
function lockNewWindows() {
|
||||
if (typeof nw != 'undefined') {
|
||||
var gui = require('nw.gui');
|
||||
var win = gui.Window.get();
|
||||
win.on('new-win-policy', function (frame, url, policy) {
|
||||
var gui = require('nw.gui');
|
||||
gui.Shell.openExternal(url);
|
||||
win.on('new-win-policy', function (frame, url, policy) {
|
||||
if ( url != g_lastUrl )
|
||||
{
|
||||
nw.Shell.openExternal(url);
|
||||
g_lastUrl = url;
|
||||
}
|
||||
policy.ignore();
|
||||
});
|
||||
}
|
||||
|
@ -10424,7 +10622,6 @@ function loadMapSettings() {
|
|||
|
||||
offlineImg.src = g_mapImageArray[(g_mapSettings.offlineMode ? 0 : 1)];
|
||||
|
||||
|
||||
|
||||
mapSelect.value = g_mapSettings.mapIndex;
|
||||
mapNightSelect.value = g_mapSettings.nightMapIndex;
|
||||
|
@ -10441,7 +10638,6 @@ function loadMapSettings() {
|
|||
haltAllOnTxValue.checked = g_mapSettings.haltAllOnTx;
|
||||
strikesAlert.value = g_mapSettings.strikesAlert;
|
||||
|
||||
UsNexradValue.checked = g_mapSettings.usNexrad;
|
||||
|
||||
setStrikesButton();
|
||||
|
||||
|
@ -10874,7 +11070,18 @@ function setMsgSettingsView() {
|
|||
}
|
||||
|
||||
function loadAdifSettings() {
|
||||
|
||||
|
||||
workingCallsignEnable.checked = g_appSettings.workingCallsignEnable;
|
||||
workingCallsignsValue.value = (Object.keys(g_appSettings.workingCallsigns).join(","));
|
||||
|
||||
if ( workingCallsignsValue.value.length == 0 )
|
||||
workingCallsignsValue.value = myDEcall;
|
||||
|
||||
ValidateCallsigns(workingCallsignsValue);
|
||||
|
||||
workingDateEnable.checked = g_appSettings.workingDateEnable ;
|
||||
displayWorkingDate();
|
||||
|
||||
if ( g_platform == "mac" )
|
||||
{
|
||||
selectTQSLButton.style.display = "none";
|
||||
|
@ -10955,6 +11162,7 @@ function loadAdifSettings() {
|
|||
}
|
||||
setAdifStartup(loadAdifCheckBox);
|
||||
ValidateQrzApi(qrzApiKey);
|
||||
|
||||
}
|
||||
|
||||
function startupVersionInit() {
|
||||
|
@ -11033,14 +11241,7 @@ function postInit() {
|
|||
updateForwardListener();
|
||||
addLastTraffic("GridTracker</br>" + gtShortVersion );
|
||||
|
||||
if ( UsNexradValue.checked == true )
|
||||
{
|
||||
g_nexradEnable = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_nexradEnable = 1;
|
||||
}
|
||||
g_nexradEnable = g_mapSettings.usNexrad?0:1;
|
||||
toggleNexrad();
|
||||
|
||||
updateText.innerHTML = fs.readFileSync("./gt_update.html");
|
||||
|
@ -11053,6 +11254,13 @@ function postInit() {
|
|||
}
|
||||
g_finishedLoading = true;
|
||||
//tagme
|
||||
var x = document.querySelectorAll("input[type='range']");
|
||||
for (var i = 0; i < x.length; i++) {
|
||||
if ( x[i].title.length > 0 )
|
||||
x[i].title += "\n";
|
||||
x[i].title += "(Use Arrow Keys For Smaller Increments)";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -13198,4 +13406,17 @@ function makeScreenshots()
|
|||
|
||||
}
|
||||
|
||||
window.addEventListener("load", function(){
|
||||
picker.attach({
|
||||
target: "workingDateValue",
|
||||
container: "pick-inline",
|
||||
fire: "workingDateChanged"
|
||||
});
|
||||
});
|
||||
|
||||
process.on('uncaughtException', function (e) {
|
||||
alert(e);
|
||||
console.error('uncaughtException:', e);
|
||||
console.error(e.stack);
|
||||
});
|
||||
|
||||
|
|
|
@ -390,7 +390,7 @@ function makeGtPin( obj )
|
|||
obj.pin = null;
|
||||
}
|
||||
|
||||
if (typeof obj.grid == 'undefined' || typeof obj.grid == null )
|
||||
if (typeof obj.grid == 'undefined' || obj.grid == null )
|
||||
return;
|
||||
|
||||
if ( obj.grid.length != 4 && obj.grid.length != 6 )
|
||||
|
|
|
@ -41,6 +41,9 @@ var g_regFocus = false;
|
|||
var g_awards = {};
|
||||
var g_awardTypes = {};
|
||||
var g_awardTracker = {};
|
||||
var g_callsignDatabaseDXCC = {};
|
||||
var g_callsignDatabaseUS = {}
|
||||
var g_callsignDatabaseUSplus = {};
|
||||
|
||||
|
||||
var g_modeColors = {};
|
||||
|
@ -197,6 +200,30 @@ function writeRosterSettings()
|
|||
localStorage.rosterSettings = JSON.stringify(g_rosterSettings);
|
||||
}
|
||||
|
||||
function isKnownCallsignDXCC(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseDXCC )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function isKnownCallsignUS(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseUS )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function isKnownCallsignUSplus(dxcc)
|
||||
{
|
||||
if ( dxcc in g_callsignDatabaseUSplus )
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function timeNowSec()
|
||||
{
|
||||
return parseInt(Date.now() / 1000);
|
||||
|
@ -427,6 +454,7 @@ function viewRoster()
|
|||
var callMode = g_rosterSettings.callsign;
|
||||
var onlyHits = false;
|
||||
var isAwardTracker = false;
|
||||
|
||||
if ( callMode == "hits" )
|
||||
{
|
||||
callMode = "all";
|
||||
|
@ -438,6 +466,7 @@ function viewRoster()
|
|||
onlyHits = false;
|
||||
isAwardTracker = true;
|
||||
g_rosterSettings.huntNeed = "confirmed";
|
||||
|
||||
}
|
||||
|
||||
var canMsg = (window.opener.g_mapSettings.offlineMode == false && window.opener.g_appSettings.gtShareEnable == "true" && window.opener.g_appSettings.gtMsgEnable == "true" );
|
||||
|
@ -859,7 +888,6 @@ function viewRoster()
|
|||
|
||||
}
|
||||
callRoster[callHash].tx = tx;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1067,7 +1095,7 @@ function viewRoster()
|
|||
if ( huntCounty.checked == true && window.opener.g_callsignLookups.ulsUseEnable == true )
|
||||
{
|
||||
var finalDxcc = callRoster[callHash].callObj.dxcc;
|
||||
if ( callRoster[callHash].callObj.cnty && ( finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6) && callRoster[callHash].callObj.cnty.length > 0 )
|
||||
if ( callRoster[callHash].callObj.cnty && ( finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6 || finalDxcc == 202) && callRoster[callHash].callObj.cnty.length > 0 )
|
||||
{
|
||||
|
||||
var hash = callRoster[callHash].callObj.cnty + workHash;
|
||||
|
@ -2643,6 +2671,10 @@ function resize()
|
|||
|
||||
function init()
|
||||
{
|
||||
g_callsignDatabaseDXCC = window.opener.g_callsignDatabaseDXCC;
|
||||
g_callsignDatabaseUS = window.opener.g_callsignDatabaseUS
|
||||
g_callsignDatabaseUSplus = window.opener.g_callsignDatabaseUSplus;
|
||||
|
||||
loadAwardJson();
|
||||
|
||||
updateWorked();
|
||||
|
@ -2689,11 +2721,34 @@ function init()
|
|||
rosterHead.style.display = "block";
|
||||
g_rosterSettings.controls = true;
|
||||
}
|
||||
g_compactMenu.items[0].label = g_rosterSettings.controls? "Hide Controls":"Show Controls";
|
||||
localStorage.rosterSettings = JSON.stringify(g_rosterSettings);
|
||||
resize();
|
||||
}
|
||||
});
|
||||
g_menu.append(item);
|
||||
|
||||
item = new nw.MenuItem({
|
||||
type: "normal",
|
||||
label: g_rosterSettings.controls? "Hide Controls":"Show Controls",
|
||||
click: function() {
|
||||
if ( this.label == "Hide Controls" )
|
||||
{
|
||||
this.label = "Show Controls";
|
||||
rosterHead.style.display = "none";
|
||||
g_rosterSettings.controls = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.label = "Hide Controls";
|
||||
rosterHead.style.display = "block";
|
||||
g_rosterSettings.controls = true;
|
||||
}
|
||||
g_menu.items[0].label = g_rosterSettings.controls? "Hide Controls":"Show Controls";
|
||||
localStorage.rosterSettings = JSON.stringify(g_rosterSettings);
|
||||
resize();
|
||||
}
|
||||
});
|
||||
g_compactMenu.append(item);
|
||||
|
||||
item = new nw.MenuItem({
|
||||
|
@ -2789,7 +2844,7 @@ function init()
|
|||
|
||||
item = new nw.MenuItem({ type: 'separator' });
|
||||
g_menu.append(item);
|
||||
g_compactMenu.append(item);
|
||||
|
||||
|
||||
item = new nw.MenuItem({
|
||||
type: "checkbox",
|
||||
|
@ -2842,7 +2897,7 @@ function init()
|
|||
}
|
||||
});
|
||||
g_menu.append(g_clearIgnores);
|
||||
g_compactMenu.append(g_clearIgnores);
|
||||
|
||||
|
||||
g_clearIgnoresCall = new nw.MenuItem({
|
||||
type: "normal",
|
||||
|
@ -2896,7 +2951,7 @@ function init()
|
|||
}
|
||||
});
|
||||
g_menu.append(g_clearCQIgnoreMainMenu);
|
||||
g_compactMenu.append(g_clearCQIgnoreMainMenu);
|
||||
|
||||
|
||||
g_clearCQIgnore = new nw.MenuItem({
|
||||
type: "normal",
|
||||
|
@ -2949,7 +3004,7 @@ function init()
|
|||
}
|
||||
});
|
||||
g_menu.append(g_clearDxccIgnoreMainMenu);
|
||||
g_compactMenu.append(g_clearDxccIgnoreMainMenu);
|
||||
|
||||
|
||||
g_clearDxccIgnore = new nw.MenuItem({
|
||||
type: "normal",
|
||||
|
@ -2972,7 +3027,7 @@ function init()
|
|||
}
|
||||
});
|
||||
g_menu.append(item);
|
||||
g_compactMenu.append(item);
|
||||
|
||||
|
||||
|
||||
item = new nw.MenuItem({
|
||||
|
@ -3799,16 +3854,18 @@ function testApxa(award, obj, baseHash)
|
|||
{
|
||||
if ( test.rule.pxa[i].indexOf(obj.px) > -1 )
|
||||
{
|
||||
return false;
|
||||
if ( String(obj.px)+baseHash in g_tracker[award.test.look].px )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( String(obj.px)+baseHash in g_tracker[award.test.look].px )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
function scoreAsfx(award, obj)
|
||||
|
|
|
@ -477,6 +477,19 @@ img {
|
|||
.buttonImg
|
||||
{
|
||||
height:32px;
|
||||
padding:0;
|
||||
margin:0;
|
||||
|
||||
}
|
||||
|
||||
.buttonImgWide
|
||||
{
|
||||
width:74px;
|
||||
height:36px;
|
||||
padding:0;
|
||||
margin-top:1px;
|
||||
margin-bottom:-1px;
|
||||
|
||||
}
|
||||
|
||||
.solarImg
|
||||
|
|
|
@ -218,13 +218,13 @@ table.darkTable thead th:first-child {
|
|||
}
|
||||
|
||||
.compactCallsign {
|
||||
padding:3px;
|
||||
padding:1px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.compactDXCC {
|
||||
padding:3px;
|
||||
padding:2px;
|
||||
max-width: 9em;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"toolbar" : false,
|
||||
"show" : false,
|
||||
"width" : 800,
|
||||
"height" : 640
|
||||
"height" : 652
|
||||
},
|
||||
"webkit": {
|
||||
"plugin": true
|
||||
|
|