kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Fix log viewer, add canadian provinces
Safety commit Safety commit II Functional more touches Lint Just the State code Safety commit III POTA update Show worked shadow always Removed mydetail for now version bump more version bump, why it's needed for a win build? Set name for was, wacp Aus callsigns Release notes Speed increase and code reduction cleaning Working grids Version bump and notesmaster
rodzic
15132c5243
commit
3a38027331
|
@ -1,3 +1,11 @@
|
||||||
|
gridtracker (1.23.1226) unstable; urgency=low
|
||||||
|
- System - Improved Primary Administrative Area (State) detection
|
||||||
|
- System - Added Canadian and Australian callsign databases
|
||||||
|
- Map - Added 'Worked All Canadian Provinces' award layer (Key 9)
|
||||||
|
- POTA - Map marker updated when park worked
|
||||||
|
- Call Roster - Properly show POTA worked status
|
||||||
|
- Logbook - Filter QSO by grid “Working Grid(s)”
|
||||||
|
-- Tag Loomis <n0ttl@gridtracker.org> Tue, 26 Dec 2023 00:00:00 -0000
|
||||||
gridtracker (1.23.1217) unstable; urgency=low
|
gridtracker (1.23.1217) unstable; urgency=low
|
||||||
- BIGCTY - Update from December 15th
|
- BIGCTY - Update from December 15th
|
||||||
- System - Add QSO processing indicator
|
- System - Add QSO processing indicator
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Name: {{{ git_name name=gridtracker }}}
|
Name: {{{ git_name name=gridtracker }}}
|
||||||
Summary: GridTracker: An Amateur Radio Companion
|
Summary: GridTracker: An Amateur Radio Companion
|
||||||
Version: 1.23.1217
|
Version: 1.23.1226
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Source0: {{{ git_dir_pack }}}
|
Source0: {{{ git_dir_pack }}}
|
||||||
|
@ -40,6 +40,13 @@ DESTDIR=${RPM_BUILD_ROOT} make clean
|
||||||
%license %{_docdir}/%{name}/
|
%license %{_docdir}/%{name}/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Dec 26 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.1226-1
|
||||||
|
- System - Improved Primary Administrative Area (State) detection
|
||||||
|
- System - Added Canadian and Australian callsign databases
|
||||||
|
- Map - Added 'Worked All Canadian Provinces' award layer (Key 9)
|
||||||
|
- POTA - Map marker updated when park worked
|
||||||
|
- Call Roster - Properly show POTA worked status
|
||||||
|
- Logbook - Filter QSO by grid “Working Grid(s)”
|
||||||
* Sun Dec 17 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.1217-1
|
* Sun Dec 17 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.1217-1
|
||||||
- BIGCTY - Update from December 15th
|
- BIGCTY - Update from December 15th
|
||||||
- System - Add QSO processing indicator
|
- System - Add QSO processing indicator
|
||||||
|
|
|
@ -715,7 +715,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
<div id="printHotKeyDiv" style="border: 1px solid cyan; color: white; text-align: auto">
|
<div id="printHotKeyDiv" style="border: 1px solid cyan; color: white; text-align: auto">
|
||||||
<table align="center" class="darkTable">
|
<table align="center" class="darkTable">
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="6">Hot Key List (v1.20.0825+)</th>
|
<th colspan="6">Hot Key List (v1.23.1220+)</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Key</th>
|
<th>Key</th>
|
||||||
|
@ -791,7 +791,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>9</td>
|
<td>9</td>
|
||||||
<td align="left">Toggle Timezone Overlay</td>
|
<td align="left">Show CA Provinces Award Layer</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>X</td>
|
<td>X</td>
|
||||||
<td align="left">Toggle Map Position Info</td>
|
<td align="left">Toggle Map Position Info</td>
|
||||||
|
@ -870,8 +870,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
<td>Shift-Key</td>
|
<td>Shift-Key</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td>H</td>
|
||||||
<td align="left"></td>
|
<td align="left">Toggle Timezone Overlay</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>F8</td>
|
<td>F8</td>
|
||||||
<td align="left">Recall Map Position 4</td>
|
<td align="left">Recall Map Position 4</td>
|
||||||
|
@ -1374,13 +1374,29 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
<th data-i18n="settings.lookup.Count.header">Count</th>
|
<th data-i18n="settings.lookup.Count.header">Count</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td data-i18n="settings.lookup.db.ULS">United States ULS</td>
|
<td data-i18n="settings.lookup.db.ULS">US Callsigns</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox" id="ulsUseEnable" onclick="ulsValuesChanged();" />
|
<input type="checkbox" id="ulsUseEnable" onclick="ulsValuesChanged();" />
|
||||||
</td>
|
</td>
|
||||||
<td id="ulsUpdatedTd">Never</td>
|
<td id="ulsUpdatedTd">Never</td>
|
||||||
<td id="ulsCountTd">0</td>
|
<td id="ulsCountTd">0</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Canada Callsigns</td>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" id="cacUseEnable" onclick="cacValuesChanged();" />
|
||||||
|
</td>
|
||||||
|
<td id="cacUpdatedTd">Never</td>
|
||||||
|
<td id="cacCountTd">0</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Australia Callsigns</td>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" id="ausUseEnable" onclick="ausValuesChanged();" />
|
||||||
|
</td>
|
||||||
|
<td id="ausUpdatedTd">Never</td>
|
||||||
|
<td id="ausCountTd">0</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td data-i18n="settings.lookup.db.LoTW">Logbook of The World</td>
|
<td data-i18n="settings.lookup.db.LoTW">Logbook of The World</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -1552,7 +1568,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
title="Filter Logbook QSOs to include these Callsigns only (comma separated)">
|
title="Filter Logbook QSOs to include these Callsigns only (comma separated)">
|
||||||
<table align="center">
|
<table align="center">
|
||||||
<tr>
|
<tr>
|
||||||
<td data-i18n="settings.logbook.callsigns.label"><b>Working Callsign(s)</b></td>
|
<td data-i18n="settings.logbook.callsigns.label">Working Callsign(s)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
@ -1569,8 +1585,38 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
oninput="if ( ValidateCallsigns(this) ) workingCallsignsChanged(this);" />
|
oninput="if ( ValidateCallsigns(this) ) workingCallsignsChanged(this);" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="qsoCallsignsFound"></td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="padding: 5px" class="mapItem"
|
||||||
|
title="Filter Logbook QSOs to include these Grids only (comma separated)">
|
||||||
|
<table align="center">
|
||||||
|
<tr>
|
||||||
|
<td>Working Grid(s)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<label for="workingGridEnable">Enable?</label>
|
||||||
|
<input title="Enable Filtering" type="checkbox" id="workingGridEnable"
|
||||||
|
onclick="workingGridEnableChanged(this);" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="workingGridsTd">
|
||||||
|
<label for="workingGridsValue">Grid(s)</label>
|
||||||
|
<input id="workingGridsValue" type="text" class="inputTextValue" size="15"
|
||||||
|
onkeypress="return validGridKeys(event.charCode);"
|
||||||
|
oninput="if ( ValidateGrids(this) ) workingGridsChanged(this);" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="qsoGridsFound"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
<div style="padding: 5px" class="mapItem" title="Filter Logbook QSOs from before this Date">
|
<div style="padding: 5px" class="mapItem" title="Filter Logbook QSOs from before this Date">
|
||||||
<table align="center">
|
<table align="center">
|
||||||
<tr>
|
<tr>
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -72,12 +72,8 @@
|
||||||
<button id="itubox" class="infoTablinks" onclick="openInfoTab(event, 'ituzoneBoxDiv', 'showITUzoneBox')">
|
<button id="itubox" class="infoTablinks" onclick="openInfoTab(event, 'ituzoneBoxDiv', 'showITUzoneBox')">
|
||||||
ITU Zones
|
ITU Zones
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button id="waswacbox" class="infoTablinks" onclick="openInfoTab(event, 'waswaczoneBoxDiv', 'showWASWACzoneBox')">
|
||||||
id="waswacbox"
|
WAC / WAS / WACP
|
||||||
class="infoTablinks"
|
|
||||||
onclick="openInfoTab(event, 'waswaczoneBoxDiv', 'showWASWACzoneBox')"
|
|
||||||
>
|
|
||||||
WAC / WAS
|
|
||||||
</button>
|
</button>
|
||||||
<button id="wpxbox" class="infoTablinks" onclick="openInfoTab(event, 'wpxBoxDiv', 'showWPXBox')">WPX</button>
|
<button id="wpxbox" class="infoTablinks" onclick="openInfoTab(event, 'wpxBoxDiv', 'showWPXBox')">WPX</button>
|
||||||
<button id="calbox" class="infoTablinks" onclick="openInfoTab(event, 'callsignBoxDiv', 'showCallsignBox')">
|
<button id="calbox" class="infoTablinks" onclick="openInfoTab(event, 'callsignBoxDiv', 'showCallsignBox')">
|
||||||
|
|
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
|
@ -597,7 +597,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ分區",
|
"stats.tabs.CQZones": "CQ分區",
|
||||||
"stats.tabs.ITUZones": "ITU分區",
|
"stats.tabs.ITUZones": "ITU分區",
|
||||||
"stats.tabs.WASWAC": "洲大陸/美國州",
|
"stats.tabs.WASWAC": "洲大陸/美國州/加拿大省",
|
||||||
"stats.tabs.live": "在線",
|
"stats.tabs.live": "在線",
|
||||||
"stats.noDecodes": "還沒有解碼",
|
"stats.noDecodes": "還沒有解碼",
|
||||||
"stats.viewing": "檢視",
|
"stats.viewing": "檢視",
|
||||||
|
@ -833,6 +833,7 @@
|
||||||
"gt.ITUZoneBox.Worked": "曾通聯的 ITU分區",
|
"gt.ITUZoneBox.Worked": "曾通聯的 ITU分區",
|
||||||
"gt.WASWACBox.WAC": "曾通聯的所有大洲",
|
"gt.WASWACBox.WAC": "曾通聯的所有大洲",
|
||||||
"gt.WASWACBox.WAS": "曾通聯的所有美國州份",
|
"gt.WASWACBox.WAS": "曾通聯的所有美國州份",
|
||||||
|
"gt.WASWACBox.WACP": "Worked All Canadian Provinces",
|
||||||
"gt.displayItemsList.Worked": "曾通聯",
|
"gt.displayItemsList.Worked": "曾通聯",
|
||||||
"gt.displayItemsList.Confirmed": "已確認",
|
"gt.displayItemsList.Confirmed": "已確認",
|
||||||
"gt.displayItemsList.Needed": "需要的",
|
"gt.displayItemsList.Needed": "需要的",
|
||||||
|
|
|
@ -597,7 +597,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ分区",
|
"stats.tabs.CQZones": "CQ分区",
|
||||||
"stats.tabs.ITUZones": "ITU分区",
|
"stats.tabs.ITUZones": "ITU分区",
|
||||||
"stats.tabs.WASWAC": "洲大陆/美国州",
|
"stats.tabs.WASWAC": "洲大陆/美国州/WACP",
|
||||||
"stats.tabs.live": "实时",
|
"stats.tabs.live": "实时",
|
||||||
"stats.noDecodes": "还没有解码",
|
"stats.noDecodes": "还没有解码",
|
||||||
"stats.viewing": "检视",
|
"stats.viewing": "检视",
|
||||||
|
@ -833,6 +833,7 @@
|
||||||
"gt.ITUZoneBox.Worked": "通联过的 ITU分区",
|
"gt.ITUZoneBox.Worked": "通联过的 ITU分区",
|
||||||
"gt.WASWACBox.WAC": "通联过的所有大洲",
|
"gt.WASWACBox.WAC": "通联过的所有大洲",
|
||||||
"gt.WASWACBox.WAS": "通联过的所有美国州",
|
"gt.WASWACBox.WAS": "通联过的所有美国州",
|
||||||
|
"gt.WASWACBox.WACP": "Worked All Canadian Provinces",
|
||||||
"gt.displayItemsList.Worked": "通联过的",
|
"gt.displayItemsList.Worked": "通联过的",
|
||||||
"gt.displayItemsList.Confirmed": "已确认的",
|
"gt.displayItemsList.Confirmed": "已确认的",
|
||||||
"gt.displayItemsList.Needed": "需要的",
|
"gt.displayItemsList.Needed": "需要的",
|
||||||
|
|
|
@ -594,8 +594,8 @@
|
||||||
"stats.tabs.scores": "Ergebnisse",
|
"stats.tabs.scores": "Ergebnisse",
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ-Zonen",
|
"stats.tabs.CQZones": "CQ-Zonen",
|
||||||
"stats.tabs.ITUZones": "ITU-Zones",
|
"stats.tabs.ITUZones": "ITU-Zonen",
|
||||||
"stats.tabs.WASWAC": "WAC / WAS",
|
"stats.tabs.WASWAC": "WAC / WAS / WACP",
|
||||||
"stats.tabs.live": "Live",
|
"stats.tabs.live": "Live",
|
||||||
"stats.noDecodes": "Noch keine Nachrichten",
|
"stats.noDecodes": "Noch keine Nachrichten",
|
||||||
"stats.viewing": "Ansicht",
|
"stats.viewing": "Ansicht",
|
||||||
|
@ -857,7 +857,8 @@
|
||||||
"gt.CQZoneBox.Worked": "Gearbeitete CQ-Zonen",
|
"gt.CQZoneBox.Worked": "Gearbeitete CQ-Zonen",
|
||||||
"gt.ITUZoneBox.Worked": "Gearbeitete ITU-Zonen",
|
"gt.ITUZoneBox.Worked": "Gearbeitete ITU-Zonen",
|
||||||
"gt.WASWACBox.WAC": "Worked All Continents",
|
"gt.WASWACBox.WAC": "Worked All Continents",
|
||||||
"gt.WASWACBox.WAS": "Worked All States",
|
"gt.WASWACBox.WAS": "Worked All US States",
|
||||||
|
"gt.WASWACBox.WACP": "Worked All Canadian Provinces",
|
||||||
"gt.displayItemsList.Worked": "Gearbeitet",
|
"gt.displayItemsList.Worked": "Gearbeitet",
|
||||||
"gt.displayItemsList.Confirmed": "Bestätigt",
|
"gt.displayItemsList.Confirmed": "Bestätigt",
|
||||||
"gt.displayItemsList.Needed": "Benötigt",
|
"gt.displayItemsList.Needed": "Benötigt",
|
||||||
|
|
|
@ -226,7 +226,7 @@
|
||||||
"settings.lookup.Enabled.header": "Enabled",
|
"settings.lookup.Enabled.header": "Enabled",
|
||||||
"settings.lookup.LastDwnld.header": "Last Download",
|
"settings.lookup.LastDwnld.header": "Last Download",
|
||||||
"settings.lookup.Count.header": "Count",
|
"settings.lookup.Count.header": "Count",
|
||||||
"settings.lookup.db.ULS": "United States ULS",
|
"settings.lookup.db.ULS": "US Callsigns",
|
||||||
"settings.lookup.db.LoTW": "Logbook of The World",
|
"settings.lookup.db.LoTW": "Logbook of The World",
|
||||||
"settings.lookup.db.eQSL": "eQSL",
|
"settings.lookup.db.eQSL": "eQSL",
|
||||||
"settings.lookup.db.OQRS": "ClubLog OQRS",
|
"settings.lookup.db.OQRS": "ClubLog OQRS",
|
||||||
|
@ -596,7 +596,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ Zones",
|
"stats.tabs.CQZones": "CQ Zones",
|
||||||
"stats.tabs.ITUZones": "ITU Zones",
|
"stats.tabs.ITUZones": "ITU Zones",
|
||||||
"stats.tabs.WASWAC": "WAC / WAS",
|
"stats.tabs.WASWAC": "WAC / WAS / WACP",
|
||||||
"stats.tabs.live": "Live",
|
"stats.tabs.live": "Live",
|
||||||
"stats.noDecodes": "No decodes yet",
|
"stats.noDecodes": "No decodes yet",
|
||||||
"stats.viewing": "Viewing",
|
"stats.viewing": "Viewing",
|
||||||
|
@ -832,7 +832,8 @@
|
||||||
"gt.CQZoneBox.Worked": "Worked CQ Zones",
|
"gt.CQZoneBox.Worked": "Worked CQ Zones",
|
||||||
"gt.ITUZoneBox.Worked": "Worked ITU Zones",
|
"gt.ITUZoneBox.Worked": "Worked ITU Zones",
|
||||||
"gt.WASWACBox.WAC": "Worked All Continents",
|
"gt.WASWACBox.WAC": "Worked All Continents",
|
||||||
"gt.WASWACBox.WAS": "Worked All States",
|
"gt.WASWACBox.WAS": "Worked All US States",
|
||||||
|
"gt.WASWACBox.WACP": "Worked All Canadian Provinces",
|
||||||
"gt.displayItemsList.Worked": "Worked",
|
"gt.displayItemsList.Worked": "Worked",
|
||||||
"gt.displayItemsList.Confirmed": "Confirmed",
|
"gt.displayItemsList.Confirmed": "Confirmed",
|
||||||
"gt.displayItemsList.Needed": "Needed",
|
"gt.displayItemsList.Needed": "Needed",
|
||||||
|
|
|
@ -595,7 +595,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "Zonas CQ",
|
"stats.tabs.CQZones": "Zonas CQ",
|
||||||
"stats.tabs.ITUZones": "Zonas ITU",
|
"stats.tabs.ITUZones": "Zonas ITU",
|
||||||
"stats.tabs.WASWAC": "WAC / WAS",
|
"stats.tabs.WASWAC": "WAC / WAS / WACP",
|
||||||
"stats.tabs.live": "En Vivo",
|
"stats.tabs.live": "En Vivo",
|
||||||
"stats.noDecodes": "Sin decodificaciones",
|
"stats.noDecodes": "Sin decodificaciones",
|
||||||
"stats.viewing": "Viendo",
|
"stats.viewing": "Viendo",
|
||||||
|
@ -828,6 +828,7 @@
|
||||||
"gt.ITUZoneBox.Worked": "Zonas ITU Trabajadas",
|
"gt.ITUZoneBox.Worked": "Zonas ITU Trabajadas",
|
||||||
"gt.WASWACBox.WAC": "WAC - Continentes Trabajados",
|
"gt.WASWACBox.WAC": "WAC - Continentes Trabajados",
|
||||||
"gt.WASWACBox.WAS": "WAS - Estados Trabajados",
|
"gt.WASWACBox.WAS": "WAS - Estados Trabajados",
|
||||||
|
"gt.WASWACBox.WACP": "WACP - Provincias canadienses",
|
||||||
"gt.displayItemsList.Worked": "Trabajados",
|
"gt.displayItemsList.Worked": "Trabajados",
|
||||||
"gt.displayItemsList.Confirmed": "Confirmados",
|
"gt.displayItemsList.Confirmed": "Confirmados",
|
||||||
"gt.displayItemsList.Needed": "Necesarios",
|
"gt.displayItemsList.Needed": "Necesarios",
|
||||||
|
|
|
@ -596,7 +596,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ Zones",
|
"stats.tabs.CQZones": "CQ Zones",
|
||||||
"stats.tabs.ITUZones": "ITU Zones",
|
"stats.tabs.ITUZones": "ITU Zones",
|
||||||
"stats.tabs.WASWAC": "WAC / WAS",
|
"stats.tabs.WASWAC": "WAC / WAS / WACP",
|
||||||
"stats.tabs.live": "Live",
|
"stats.tabs.live": "Live",
|
||||||
"stats.noDecodes": "Aucun décodage pour l'instant",
|
"stats.noDecodes": "Aucun décodage pour l'instant",
|
||||||
"stats.viewing": "Visualisation",
|
"stats.viewing": "Visualisation",
|
||||||
|
@ -832,7 +832,8 @@
|
||||||
"gt.CQZoneBox.Worked": "Zones CQ travaillées",
|
"gt.CQZoneBox.Worked": "Zones CQ travaillées",
|
||||||
"gt.ITUZoneBox.Worked": "Zones ITU travaillées",
|
"gt.ITUZoneBox.Worked": "Zones ITU travaillées",
|
||||||
"gt.WASWACBox.WAC": "Continents",
|
"gt.WASWACBox.WAC": "Continents",
|
||||||
"gt.WASWACBox.WAS": "États",
|
"gt.WASWACBox.WAS": "États américains",
|
||||||
|
"gt.WASWACBox.WACP": "Provinces canadiennes",
|
||||||
"gt.displayItemsList.Worked": "Travaillé",
|
"gt.displayItemsList.Worked": "Travaillé",
|
||||||
"gt.displayItemsList.Confirmed": "Confirmé",
|
"gt.displayItemsList.Confirmed": "Confirmé",
|
||||||
"gt.displayItemsList.Needed": "Nécessaire",
|
"gt.displayItemsList.Needed": "Nécessaire",
|
||||||
|
|
|
@ -596,7 +596,7 @@
|
||||||
"stats.tabs.DXCCs": "DXCCs",
|
"stats.tabs.DXCCs": "DXCCs",
|
||||||
"stats.tabs.CQZones": "CQ Zone",
|
"stats.tabs.CQZones": "CQ Zone",
|
||||||
"stats.tabs.ITUZones": "ITU Zone",
|
"stats.tabs.ITUZones": "ITU Zone",
|
||||||
"stats.tabs.WASWAC": "WAC / WAS",
|
"stats.tabs.WASWAC": "WAC / WAS / WACP",
|
||||||
"stats.tabs.live": "Live",
|
"stats.tabs.live": "Live",
|
||||||
"stats.noDecodes": "Nessuna decodifica per il momento",
|
"stats.noDecodes": "Nessuna decodifica per il momento",
|
||||||
"stats.viewing": "Visualizzazione",
|
"stats.viewing": "Visualizzazione",
|
||||||
|
@ -832,7 +832,8 @@
|
||||||
"gt.CQZoneBox.Worked": "Zona CQ lavorata",
|
"gt.CQZoneBox.Worked": "Zona CQ lavorata",
|
||||||
"gt.ITUZoneBox.Worked": "Zona ITU lavorata",
|
"gt.ITUZoneBox.Worked": "Zona ITU lavorata",
|
||||||
"gt.WASWACBox.WAC": "Continenti",
|
"gt.WASWACBox.WAC": "Continenti",
|
||||||
"gt.WASWACBox.WAS": "Stati",
|
"gt.WASWACBox.WAS": "Stati Uniti",
|
||||||
|
"gt.WASWACBox.WACP": "Province canadesi",
|
||||||
"gt.displayItemsList.Worked": "Lavorato",
|
"gt.displayItemsList.Worked": "Lavorato",
|
||||||
"gt.displayItemsList.Confirmed": "Confermato",
|
"gt.displayItemsList.Confirmed": "Confermato",
|
||||||
"gt.displayItemsList.Needed": "Necessario",
|
"gt.displayItemsList.Needed": "Necessario",
|
||||||
|
|
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 5.1 KiB |
|
@ -170,6 +170,7 @@ function onAdiLoadComplete(adiBuffer)
|
||||||
{
|
{
|
||||||
finalDEcall = GT.appSettings.myCall;
|
finalDEcall = GT.appSettings.myCall;
|
||||||
}
|
}
|
||||||
|
GT.myQsoCalls[finalDEcall] = true;
|
||||||
|
|
||||||
if (GT.appSettings.workingCallsignEnable && !(finalDEcall in GT.appSettings.workingCallsigns))
|
if (GT.appSettings.workingCallsignEnable && !(finalDEcall in GT.appSettings.workingCallsigns))
|
||||||
{
|
{
|
||||||
|
@ -199,6 +200,19 @@ function onAdiLoadComplete(adiBuffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
var confirmed = false;
|
var confirmed = false;
|
||||||
|
|
||||||
|
var myGrid = findAdiField(activeAdifArray[x], "MY_GRIDSQUARE").toUpperCase();
|
||||||
|
if (myGrid.length > 3)
|
||||||
|
{
|
||||||
|
let finalMyGrid = myGrid.substr(0, 4);
|
||||||
|
GT.myQsoGrids[finalMyGrid] = true;
|
||||||
|
if (GT.appSettings.workingGridEnable && !(finalMyGrid in GT.appSettings.workingGrids))
|
||||||
|
{
|
||||||
|
// not in the working grids, move to next
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_", "/");
|
var finalDXcall = findAdiField(activeAdifArray[x], "CALL").replace("_", "/");
|
||||||
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
|
var finalGrid = findAdiField(activeAdifArray[x], "GRIDSQUARE").toUpperCase();
|
||||||
var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS").toUpperCase();
|
var vuccGrids = findAdiField(activeAdifArray[x], "VUCC_GRIDS").toUpperCase();
|
||||||
|
@ -514,6 +528,9 @@ function onAdiLoadComplete(adiBuffer)
|
||||||
GT.fileSelector.value = null;
|
GT.fileSelector.value = null;
|
||||||
}
|
}
|
||||||
GT.fromDirectCallNoFileDialog = false;
|
GT.fromDirectCallNoFileDialog = false;
|
||||||
|
|
||||||
|
qsoGridsFound.innerHTML = "Found: " + Object.keys(GT.myQsoGrids).join(",");
|
||||||
|
qsoCallsignsFound.innerHTML = "Found: " + Object.keys(GT.myQsoCalls).join(",");
|
||||||
}
|
}
|
||||||
|
|
||||||
function clubLogCallback(buffer, flag, cookie)
|
function clubLogCallback(buffer, flag, cookie)
|
||||||
|
@ -782,6 +799,7 @@ function grabLoTWQSO()
|
||||||
lotwLogin.value +
|
lotwLogin.value +
|
||||||
"&password=" +
|
"&password=" +
|
||||||
encodeURIComponent(lotwPassword.value) +
|
encodeURIComponent(lotwPassword.value) +
|
||||||
|
((GT.appSettings.workingGridEnable == true) ? "&qso_mydetail=yes" : "") +
|
||||||
"&qso_query=1&qso_qsl=no&qso_qsldetail=yes&qso_withown=yes" +
|
"&qso_query=1&qso_qsl=no&qso_qsldetail=yes&qso_withown=yes" +
|
||||||
lastQSLDateString,
|
lastQSLDateString,
|
||||||
lotwCallback,
|
lotwCallback,
|
||||||
|
@ -808,6 +826,7 @@ function grabLoTWQSL()
|
||||||
lotwLogin.value +
|
lotwLogin.value +
|
||||||
"&password=" +
|
"&password=" +
|
||||||
encodeURIComponent(lotwPassword.value) +
|
encodeURIComponent(lotwPassword.value) +
|
||||||
|
((GT.appSettings.workingGridEnable == true) ? "&qso_mydetail=yes" : "") +
|
||||||
"&qso_query=1&qso_qsl=yes&qso_qsldetail=yes&qso_withown=yes" +
|
"&qso_query=1&qso_qsl=yes&qso_qsldetail=yes&qso_withown=yes" +
|
||||||
lastQSLDateString,
|
lastQSLDateString,
|
||||||
lotwCallback,
|
lotwCallback,
|
||||||
|
@ -1487,6 +1506,10 @@ function startupAdifLoadCheck()
|
||||||
{
|
{
|
||||||
logEventMedia.value = GT.alertSettings.logEventMedia;
|
logEventMedia.value = GT.alertSettings.logEventMedia;
|
||||||
|
|
||||||
|
loadWsjtLogFile();
|
||||||
|
|
||||||
|
if (loadGTCheckBox.checked == true) loadGtQSOLogFile();
|
||||||
|
|
||||||
if (loadAdifCheckBox.checked == true && GT.startupLogs.length > 0) startupAdifLoadFunction();
|
if (loadAdifCheckBox.checked == true && GT.startupLogs.length > 0) startupAdifLoadFunction();
|
||||||
|
|
||||||
if (GT.mapSettings.offlineMode == false)
|
if (GT.mapSettings.offlineMode == false)
|
||||||
|
@ -1496,13 +1519,7 @@ function startupAdifLoadCheck()
|
||||||
if (loadQRZCheckBox.checked == true) grabQrzComLog(false);
|
if (loadQRZCheckBox.checked == true) grabQrzComLog(false);
|
||||||
|
|
||||||
if (loadClubCheckBox.checked == true) grabClubLog(false);
|
if (loadClubCheckBox.checked == true) grabClubLog(false);
|
||||||
|
|
||||||
if (loadPsk24CheckBox.checked == true) grabPsk24();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadGTCheckBox.checked == true) loadGtQSOLogFile();
|
|
||||||
|
|
||||||
loadWsjtLogFile();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFlag, timeoutX)
|
function getABuffer(file_url, callback, flag, mode, port, imgToGray, stringOfFlag, timeoutX)
|
||||||
|
@ -2030,6 +2047,16 @@ function finishSendingReport(record, localMode)
|
||||||
}
|
}
|
||||||
report += "<EOR>";
|
report += "<EOR>";
|
||||||
|
|
||||||
|
var reportNoPotaNoStateNoCnty = "";
|
||||||
|
for (const key in record)
|
||||||
|
{
|
||||||
|
if (key != "POTA" && key != "STATE" && key != "CNTY")
|
||||||
|
{
|
||||||
|
reportNoPotaNoStateNoCnty += "<" + key + ":" + Buffer.byteLength(record[key]) + ">" + record[key] + " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reportNoPotaNoStateNoCnty += "<EOR>";
|
||||||
|
|
||||||
// this report is for internal use ONLY!
|
// this report is for internal use ONLY!
|
||||||
var reportWithPota = "";
|
var reportWithPota = "";
|
||||||
for (const key in record)
|
for (const key in record)
|
||||||
|
@ -2099,7 +2126,7 @@ function finishSendingReport(record, localMode)
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
sendQrzLogEntry(report);
|
sendQrzLogEntry(reportNoPotaNoStateNoCnty);
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,15 +6,26 @@ GT.lotwCallsigns = Object();
|
||||||
GT.lotwFile = "";
|
GT.lotwFile = "";
|
||||||
GT.lotwWhenDate = 0;
|
GT.lotwWhenDate = 0;
|
||||||
GT.lotwLoadTimer = null;
|
GT.lotwLoadTimer = null;
|
||||||
|
|
||||||
GT.eqslCallsigns = Object();
|
GT.eqslCallsigns = Object();
|
||||||
GT.eqslFile = "";
|
GT.eqslFile = "";
|
||||||
GT.eqslWhenDate = 0;
|
GT.eqslWhenDate = 0;
|
||||||
GT.eqslLoadTimer = null;
|
GT.eqslLoadTimer = null;
|
||||||
GT.ulsCallsignsCount = 0;
|
|
||||||
|
|
||||||
|
GT.ulsCallsignsCount = 0;
|
||||||
GT.ulsWhenDate = 0;
|
GT.ulsWhenDate = 0;
|
||||||
GT.ulsLoadTimer = null;
|
GT.ulsLoadTimer = null;
|
||||||
|
|
||||||
|
GT.cacCallsigns = Object();
|
||||||
|
GT.cacFile = "";
|
||||||
|
GT.cacWhenDate = 0;
|
||||||
|
GT.cacLoadTimer = null;
|
||||||
|
|
||||||
|
GT.ausCallsigns = Object();
|
||||||
|
GT.ausFile = "";
|
||||||
|
GT.ausWhenDate = 0;
|
||||||
|
GT.ausLoadTimer = null;
|
||||||
|
|
||||||
GT.oqrsCallsigns = Object();
|
GT.oqrsCallsigns = Object();
|
||||||
GT.oqrsFile = "";
|
GT.oqrsFile = "";
|
||||||
GT.oqrsWhenDate = 0;
|
GT.oqrsWhenDate = 0;
|
||||||
|
@ -54,6 +65,8 @@ function callsignServicesInit()
|
||||||
GT.lotwFile = GT.NWappData + "lotw-ts-callsigns.json";
|
GT.lotwFile = GT.NWappData + "lotw-ts-callsigns.json";
|
||||||
GT.eqslFile = GT.NWappData + "eqsl-callsigns.json";
|
GT.eqslFile = GT.NWappData + "eqsl-callsigns.json";
|
||||||
GT.oqrsFile = GT.NWappData + "cloqrs-callsigns.json";
|
GT.oqrsFile = GT.NWappData + "cloqrs-callsigns.json";
|
||||||
|
GT.cacFile = GT.NWappData + "canada-callsigns.txt";
|
||||||
|
GT.ausFile = GT.NWappData + "aus-callsigns.txt";
|
||||||
|
|
||||||
if (GT.callsignLookups.lotwUseEnable)
|
if (GT.callsignLookups.lotwUseEnable)
|
||||||
{
|
{
|
||||||
|
@ -67,6 +80,14 @@ function callsignServicesInit()
|
||||||
{
|
{
|
||||||
ulsLoadCallsigns();
|
ulsLoadCallsigns();
|
||||||
}
|
}
|
||||||
|
if (GT.callsignLookups.cacUseEnable)
|
||||||
|
{
|
||||||
|
cacLoadCallsigns();
|
||||||
|
}
|
||||||
|
if (GT.callsignLookups.ausUseEnable)
|
||||||
|
{
|
||||||
|
ausLoadCallsigns();
|
||||||
|
}
|
||||||
if (GT.callsignLookups.oqrsUseEnable)
|
if (GT.callsignLookups.oqrsUseEnable)
|
||||||
{
|
{
|
||||||
oqrsLoadCallsigns();
|
oqrsLoadCallsigns();
|
||||||
|
@ -75,6 +96,8 @@ function callsignServicesInit()
|
||||||
lotwSettingsDisplay();
|
lotwSettingsDisplay();
|
||||||
eqslSettingsDisplay();
|
eqslSettingsDisplay();
|
||||||
ulsSettingsDisplay();
|
ulsSettingsDisplay();
|
||||||
|
cacSettingsDisplay();
|
||||||
|
ausSettingsDisplay();
|
||||||
oqrsSettingsDisplay();
|
oqrsSettingsDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,6 +241,227 @@ function processLotwCallsigns(result, flag)
|
||||||
lotwSettingsDisplay();
|
lotwSettingsDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cacLoadCallsigns()
|
||||||
|
{
|
||||||
|
var now = timeNowSec();
|
||||||
|
if (now - GT.callsignLookups.cacLastUpdate > 86400 * 7)
|
||||||
|
{ GT.callsignLookups.cacLastUpdate = 0; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var cacWhenTimer = 86400 * 7 - (now - GT.callsignLookups.cacLastUpdate);
|
||||||
|
GT.cacWhenDate = now + cacWhenTimer;
|
||||||
|
GT.cacLoadTimer = nodeTimers.setTimeout(cacDownload, cacWhenTimer * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!fs.existsSync(GT.cacFile))
|
||||||
|
{
|
||||||
|
GT.callsignLookups.cacLastUpdate = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parseCacCallsigns(fs.readFileSync(GT.cacFile, "UTF-8"));
|
||||||
|
}
|
||||||
|
if (GT.callsignLookups.cacLastUpdate == 0)
|
||||||
|
{
|
||||||
|
cacDownload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
GT.callsignLookups.cacLastUpdate = 0;
|
||||||
|
cacDownload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseCacCallsigns(data)
|
||||||
|
{
|
||||||
|
let callsignRows = data.split("\n");
|
||||||
|
for (let x = 0; x < callsignRows.length; x++)
|
||||||
|
{
|
||||||
|
if (callsignRows[x].length > 1)
|
||||||
|
{
|
||||||
|
GT.cacCallsigns[callsignRows[x].substr(8)] = callsignRows[x].substr(6, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fs.writeFileSync(GT.cacFile, data, "UTF-8");
|
||||||
|
updateQSO();
|
||||||
|
}
|
||||||
|
|
||||||
|
function processCacCallsigns(buffer, flag)
|
||||||
|
{
|
||||||
|
let data = (typeof buffer == "object") ? String(buffer) : buffer;
|
||||||
|
parseCacCallsigns(data);
|
||||||
|
|
||||||
|
GT.callsignLookups.cacLastUpdate = timeNowSec();
|
||||||
|
|
||||||
|
var now = timeNowSec();
|
||||||
|
if (GT.cacLoadTimer != null) nodeTimers.clearTimeout(GT.cacLoadTimer);
|
||||||
|
|
||||||
|
var cacWhenTimer = 86400 * 7 - (now - GT.callsignLookups.cacLastUpdate);
|
||||||
|
GT.cacWhenDate = now + cacWhenTimer;
|
||||||
|
GT.cacLoadTimer = nodeTimers.setTimeout(cacDownload, cacWhenTimer * 1000);
|
||||||
|
|
||||||
|
cacSettingsDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
function cacDownload(fromSettings)
|
||||||
|
{
|
||||||
|
cacUpdatedTd.innerHTML = "<b><i>Downloading...</i></b>";
|
||||||
|
getBuffer(
|
||||||
|
"https://storage.googleapis.com/gt_app/canada.txt",
|
||||||
|
processCacCallsigns,
|
||||||
|
null,
|
||||||
|
"http",
|
||||||
|
80
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cacSettingsDisplay()
|
||||||
|
{
|
||||||
|
cacUseEnable.checked = GT.callsignLookups.cacUseEnable;
|
||||||
|
|
||||||
|
if (GT.callsignLookups.cacLastUpdate == 0)
|
||||||
|
{
|
||||||
|
cacUpdatedTd.innerHTML = "Never";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cacUpdatedTd.innerHTML = userTimeString(GT.callsignLookups.cacLastUpdate * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!GT.callsignLookups.cacUseEnable)
|
||||||
|
{
|
||||||
|
if (GT.cacLoadTimer != null) nodeTimers.clearTimeout(GT.cacLoadTimer);
|
||||||
|
GT.cacLoadTimer = null;
|
||||||
|
GT.cacCallsigns = Object();
|
||||||
|
}
|
||||||
|
cacCountTd.innerHTML = Object.keys(GT.cacCallsigns).length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cacValuesChanged()
|
||||||
|
{
|
||||||
|
GT.callsignLookups.cacUseEnable = cacUseEnable.checked;
|
||||||
|
saveCallsignSettings();
|
||||||
|
if (GT.callsignLookups.cacUseEnable == true)
|
||||||
|
{
|
||||||
|
cacLoadCallsigns();
|
||||||
|
}
|
||||||
|
cacSettingsDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
function ausLoadCallsigns()
|
||||||
|
{
|
||||||
|
var now = timeNowSec();
|
||||||
|
if (now - GT.callsignLookups.ausLastUpdate > 86400 * 7)
|
||||||
|
{ GT.callsignLookups.ausLastUpdate = 0; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var ausWhenTimer = 86400 * 7 - (now - GT.callsignLookups.ausLastUpdate);
|
||||||
|
GT.ausWhenDate = now + ausWhenTimer;
|
||||||
|
GT.ausLoadTimer = nodeTimers.setTimeout(ausDownload, ausWhenTimer * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!fs.existsSync(GT.ausFile))
|
||||||
|
{
|
||||||
|
GT.callsignLookups.ausLastUpdate = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parseAusCallsigns(fs.readFileSync(GT.ausFile, "UTF-8"));
|
||||||
|
}
|
||||||
|
if (GT.callsignLookups.ausLastUpdate == 0)
|
||||||
|
{
|
||||||
|
ausDownload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
GT.callsignLookups.ausLastUpdate = 0;
|
||||||
|
ausDownload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseAusCallsigns(data)
|
||||||
|
{
|
||||||
|
let callsignRows = data.split("\n");
|
||||||
|
for (let x = 0; x < callsignRows.length; x++)
|
||||||
|
{
|
||||||
|
let parts = callsignRows[x].split(",");
|
||||||
|
if (parts.length == 2)
|
||||||
|
{
|
||||||
|
GT.ausCallsigns[parts[1].trim()] = parts[0].trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fs.writeFileSync(GT.ausFile, data, "UTF-8");
|
||||||
|
updateQSO();
|
||||||
|
}
|
||||||
|
|
||||||
|
function processAusCallsigns(buffer, flag)
|
||||||
|
{
|
||||||
|
let data = (typeof buffer == "object") ? String(buffer) : buffer;
|
||||||
|
parseAusCallsigns(data);
|
||||||
|
|
||||||
|
GT.callsignLookups.ausLastUpdate = timeNowSec();
|
||||||
|
|
||||||
|
var now = timeNowSec();
|
||||||
|
if (GT.ausLoadTimer != null) nodeTimers.clearTimeout(GT.ausLoadTimer);
|
||||||
|
|
||||||
|
var ausWhenTimer = 86400 * 7 - (now - GT.callsignLookups.ausLastUpdate);
|
||||||
|
GT.ausWhenDate = now + ausWhenTimer;
|
||||||
|
GT.ausLoadTimer = nodeTimers.setTimeout(ausDownload, ausWhenTimer * 1000);
|
||||||
|
|
||||||
|
ausSettingsDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
function ausDownload(fromSettings)
|
||||||
|
{
|
||||||
|
ausUpdatedTd.innerHTML = "<b><i>Downloading...</i></b>";
|
||||||
|
getBuffer(
|
||||||
|
"https://storage.googleapis.com/gt_app/aus.txt",
|
||||||
|
processAusCallsigns,
|
||||||
|
null,
|
||||||
|
"http",
|
||||||
|
80
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ausSettingsDisplay()
|
||||||
|
{
|
||||||
|
ausUseEnable.checked = GT.callsignLookups.ausUseEnable;
|
||||||
|
|
||||||
|
if (GT.callsignLookups.ausLastUpdate == 0)
|
||||||
|
{
|
||||||
|
ausUpdatedTd.innerHTML = "Never";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ausUpdatedTd.innerHTML = userTimeString(GT.callsignLookups.ausLastUpdate * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!GT.callsignLookups.ausUseEnable)
|
||||||
|
{
|
||||||
|
if (GT.ausLoadTimer != null) nodeTimers.clearTimeout(GT.ausLoadTimer);
|
||||||
|
GT.ausLoadTimer = null;
|
||||||
|
GT.ausCallsigns = Object();
|
||||||
|
}
|
||||||
|
ausCountTd.innerHTML = Object.keys(GT.ausCallsigns).length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function ausValuesChanged()
|
||||||
|
{
|
||||||
|
GT.callsignLookups.ausUseEnable = ausUseEnable.checked;
|
||||||
|
saveCallsignSettings();
|
||||||
|
if (GT.callsignLookups.ausUseEnable == true)
|
||||||
|
{
|
||||||
|
ausLoadCallsigns();
|
||||||
|
}
|
||||||
|
ausSettingsDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
function oqrsLoadCallsigns()
|
function oqrsLoadCallsigns()
|
||||||
{
|
{
|
||||||
var now = timeNowSec();
|
var now = timeNowSec();
|
||||||
|
@ -454,44 +698,66 @@ function ulsLoadCallsigns()
|
||||||
|
|
||||||
function updateQSO()
|
function updateQSO()
|
||||||
{
|
{
|
||||||
if (GT.ulsCallsignsCount > 0)
|
if (GT.ulsCallsignsCount > 0 && GT.callsignLookups.ulsUseEnable)
|
||||||
{
|
{
|
||||||
for (hash in GT.QSOhash)
|
for (let hash in GT.QSOhash)
|
||||||
{
|
{
|
||||||
var details = GT.QSOhash[hash];
|
let details = GT.QSOhash[hash];
|
||||||
var lookupCall = false;
|
if (isKnownCallsignUSplus(details.dxcc))
|
||||||
|
|
||||||
if ((details.cnty == null || details.state == null) && isKnownCallsignDXCC(details.dxcc))
|
|
||||||
{
|
{
|
||||||
// Do County Lookup
|
let lookupCall = false;
|
||||||
lookupCall = true;
|
if ((details.cnty == null || details.state == null))
|
||||||
}
|
|
||||||
else if (details.cnty != null && isKnownCallsignUSplus(details.dxcc))
|
|
||||||
{
|
|
||||||
if (!(details.cnty in GT.cntyToCounty))
|
|
||||||
{
|
{
|
||||||
if (details.cnty.indexOf(",") == -1)
|
// Do County Lookup
|
||||||
|
lookupCall = true;
|
||||||
|
}
|
||||||
|
else if (details.cnty != null)
|
||||||
|
{
|
||||||
|
if (!(details.cnty in GT.cntyToCounty))
|
||||||
{
|
{
|
||||||
if (!(details.state + "," + details.cnty in GT.cntyToCounty))
|
if (details.cnty.indexOf(",") == -1)
|
||||||
|
{
|
||||||
|
if (!(details.state + "," + details.cnty in GT.cntyToCounty))
|
||||||
|
{
|
||||||
|
lookupCall = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
lookupCall = true;
|
lookupCall = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
lookupCall = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
if (lookupCall)
|
||||||
if (lookupCall)
|
|
||||||
{
|
|
||||||
if (GT.callsignLookups.ulsUseEnable)
|
|
||||||
{
|
{
|
||||||
lookupUsCallsign(details, true);
|
lookupKnownCallsign(details, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GT.callsignLookups.cacUseEnable || GT.callsignLookups.ausUseEnable)
|
||||||
|
{
|
||||||
|
for (let hash in GT.QSOhash)
|
||||||
|
{
|
||||||
|
let details = GT.QSOhash[hash];
|
||||||
|
if (details.dxcc == 1 && details.state == null)
|
||||||
|
{
|
||||||
|
if (details.DEcall in GT.cacCallsigns)
|
||||||
|
{
|
||||||
|
details.state = "CA-" + GT.cacCallsigns[details.DEcall];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (details.dxcc == 150 && details.state == null)
|
||||||
|
{
|
||||||
|
if (details.DEcall in GT.ausCallsigns)
|
||||||
|
{
|
||||||
|
details.state = "AU-" + GT.ausCallsigns[details.DEcall];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
refreshQSOs();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCallsignCount()
|
function updateCallsignCount()
|
||||||
|
@ -751,7 +1017,7 @@ function processulsCallsigns(data, flag, cookies, starting, finished)
|
||||||
return Buffer(returnBuffer); // eslint-disable-line node/no-deprecated-api
|
return Buffer(returnBuffer); // eslint-disable-line node/no-deprecated-api
|
||||||
}
|
}
|
||||||
|
|
||||||
function lookupUsCallsign(object, writeState = false)
|
function lookupKnownCallsign(object, writeState = false)
|
||||||
{
|
{
|
||||||
GT.ulsDatabase.transaction(function (tx)
|
GT.ulsDatabase.transaction(function (tx)
|
||||||
{
|
{
|
||||||
|
@ -765,14 +1031,7 @@ function lookupUsCallsign(object, writeState = false)
|
||||||
{
|
{
|
||||||
if (object.state == null)
|
if (object.state == null)
|
||||||
{
|
{
|
||||||
if (object.dxcc == 1)
|
object.state = "US-" + results.rows[0].state;
|
||||||
{
|
|
||||||
object.state = "CA-" + results.rows[0].state;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
object.state = "US-" + results.rows[0].state;
|
|
||||||
}
|
|
||||||
if (writeState)
|
if (writeState)
|
||||||
{
|
{
|
||||||
refreshQSOs();
|
refreshQSOs();
|
||||||
|
|
|
@ -98,6 +98,8 @@ var def_appSettings = {
|
||||||
wsjtUdpPort: 0,
|
wsjtUdpPort: 0,
|
||||||
workingCallsignEnable: false,
|
workingCallsignEnable: false,
|
||||||
workingCallsigns: {},
|
workingCallsigns: {},
|
||||||
|
workingGridEnable: false,
|
||||||
|
workingGrids: {},
|
||||||
workingDateEnable: false,
|
workingDateEnable: false,
|
||||||
workingDate: 0,
|
workingDate: 0,
|
||||||
qsoItemsPerPage: 100,
|
qsoItemsPerPage: 100,
|
||||||
|
@ -267,6 +269,12 @@ var def_callsignLookups = {
|
||||||
ulsUseEnable: true,
|
ulsUseEnable: true,
|
||||||
ulsWeeklyEnable: true,
|
ulsWeeklyEnable: true,
|
||||||
ulsLastUpdate: 0,
|
ulsLastUpdate: 0,
|
||||||
|
cacUseEnable: true,
|
||||||
|
cacWeeklyEnable: true,
|
||||||
|
cacLastUpdate: 0,
|
||||||
|
ausUseEnable: true,
|
||||||
|
ausWeeklyEnable: true,
|
||||||
|
ausLastUpdate: 0,
|
||||||
oqrsUseEnable: false,
|
oqrsUseEnable: false,
|
||||||
oqrsWeeklyEnable: false,
|
oqrsWeeklyEnable: false,
|
||||||
oqrsLastUpdate: 0
|
oqrsLastUpdate: 0
|
||||||
|
|
Plik diff jest za duży
Load Diff
|
@ -54,6 +54,13 @@ GT.gtParkOnInstance = new ol.style.Text({
|
||||||
justify: "center"
|
justify: "center"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
GT.gtParkWorkedOnInstance = new ol.style.Text({
|
||||||
|
text: "🌄",
|
||||||
|
font: "20px Verdana",
|
||||||
|
textAlign: "center",
|
||||||
|
justify: "center"
|
||||||
|
});
|
||||||
|
|
||||||
GT.gtParkOffInstance = new ol.style.Text({
|
GT.gtParkOffInstance = new ol.style.Text({
|
||||||
text: "🌲",
|
text: "🌲",
|
||||||
font: "20px Verdana",
|
font: "20px Verdana",
|
||||||
|
@ -147,6 +154,10 @@ function makeParkFeatures()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
let now = timeNowSec();
|
||||||
|
let day = parseInt(now / 86400);
|
||||||
|
let dayAsString = String(day);
|
||||||
|
|
||||||
for (const park in GT.pota.parkSpots)
|
for (const park in GT.pota.parkSpots)
|
||||||
{
|
{
|
||||||
if (park in GT.pota.parks)
|
if (park in GT.pota.parks)
|
||||||
|
@ -163,7 +174,15 @@ function makeParkFeatures()
|
||||||
{
|
{
|
||||||
if (GT.instances[instance].valid && GT.instances[instance].status.Band == report.band && GT.instances[instance].status.MO == report.mode)
|
if (GT.instances[instance].valid && GT.instances[instance].status.Band == report.band && GT.instances[instance].status.MO == report.mode)
|
||||||
{
|
{
|
||||||
parkIcon = GT.gtParkOnInstance;
|
let hash = dayAsString + park + report.band + report.mode;
|
||||||
|
if (hash in GT.tracker.worked.pota)
|
||||||
|
{
|
||||||
|
parkIcon = GT.gtParkWorkedOnInstance;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parkIcon = GT.gtParkOnInstance;
|
||||||
|
}
|
||||||
zIndex = 2;
|
zIndex = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -353,11 +372,24 @@ function addParkSpotFeature(park, report)
|
||||||
{
|
{
|
||||||
let parkIcon = GT.gtParkOffInstance;
|
let parkIcon = GT.gtParkOffInstance;
|
||||||
let zIndex = 1;
|
let zIndex = 1;
|
||||||
|
|
||||||
|
let now = timeNowSec();
|
||||||
|
let day = parseInt(now / 86400);
|
||||||
|
let dayAsString = String(day);
|
||||||
|
|
||||||
for (let instance in GT.instances)
|
for (let instance in GT.instances)
|
||||||
{
|
{
|
||||||
if (GT.instances[instance].valid && GT.instances[instance].status.Band == report.band && GT.instances[instance].status.MO == report.mode)
|
if (GT.instances[instance].valid && GT.instances[instance].status.Band == report.band && GT.instances[instance].status.MO == report.mode)
|
||||||
{
|
{
|
||||||
parkIcon = GT.gtParkOnInstance;
|
let hash = dayAsString + park + report.band + report.mode;
|
||||||
|
if (hash in GT.tracker.worked.pota)
|
||||||
|
{
|
||||||
|
parkIcon = GT.gtParkWorkedOnInstance;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parkIcon = GT.gtParkOnInstance;
|
||||||
|
}
|
||||||
zIndex = 2;
|
zIndex = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,20 @@ function processRosterFiltering(callRoster, rosterSettings)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CR.rosterSettings.columns.Spot == true)
|
||||||
|
{
|
||||||
|
callObj.spot = window.opener.getSpotTime(callObj.DEcall + callObj.mode + callObj.band);
|
||||||
|
if (CR.rosterSettings.onlySpot == true && (callObj.spot.when == 0 || (timeNowSec() - callObj.spot.when > window.opener.GT.receptionSettings.viewHistoryTimeSec)))
|
||||||
|
{
|
||||||
|
entry.tx = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callObj.spot = { when: 0, snr: 0 };
|
||||||
|
}
|
||||||
|
|
||||||
if (rosterSettings.now - callObj.age > CR.rosterSettings.rosterTime)
|
if (rosterSettings.now - callObj.age > CR.rosterSettings.rosterTime)
|
||||||
{
|
{
|
||||||
entry.tx = false;
|
entry.tx = false;
|
||||||
|
@ -146,24 +160,6 @@ function processRosterFiltering(callRoster, rosterSettings)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CR.rosterSettings.columns.Spot == true)
|
|
||||||
{
|
|
||||||
callObj.spot = window.opener.getSpotTime(callObj.DEcall + callObj.mode + callObj.band);
|
|
||||||
if (callObj.spot == null)
|
|
||||||
{
|
|
||||||
callObj.spot = { when: 0, snr: 0 };
|
|
||||||
}
|
|
||||||
if (CR.rosterSettings.onlySpot == true && (callObj.spot.when == 0 || (timeNowSec() - callObj.spot.when > window.opener.GT.receptionSettings.viewHistoryTimeSec)))
|
|
||||||
{
|
|
||||||
entry.tx = false;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
callObj.spot = { when: 0, snr: 0 };
|
|
||||||
}
|
|
||||||
|
|
||||||
let usesOneOf = 0;
|
let usesOneOf = 0;
|
||||||
let checkUses = 0;
|
let checkUses = 0;
|
||||||
|
|
||||||
|
|
|
@ -392,57 +392,53 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hunting for US States
|
// Hunting for Known States
|
||||||
if ((huntState.checked || awardTrackerOverrides.states) && window.opener.GT.callsignLookups.ulsUseEnable == true)
|
if (huntState.checked || awardTrackerOverrides.states)
|
||||||
{
|
{
|
||||||
let stateSearch = callObj.state;
|
let stateSearch = callObj.state;
|
||||||
let finalDxcc = callObj.dxcc;
|
if (stateSearch in window.opener.GT.StateData)
|
||||||
if (finalDxcc == 291 || finalDxcc == 110 || finalDxcc == 6)
|
|
||||||
{
|
{
|
||||||
if (stateSearch in window.opener.GT.StateData)
|
let hash = stateSearch + workHashSuffix;
|
||||||
|
let layeredHash = rosterSettings.layeredMode && (stateSearch + layeredHashSuffix)
|
||||||
|
|
||||||
|
if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.state))
|
||||||
{
|
{
|
||||||
let hash = stateSearch + workHashSuffix;
|
shouldAlert = true;
|
||||||
let layeredHash = rosterSettings.layeredMode && (stateSearch + layeredHashSuffix)
|
callObj.reason.push("state");
|
||||||
|
|
||||||
if (rosterSettings.huntIndex && !(hash in rosterSettings.huntIndex.state))
|
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.state)
|
||||||
{
|
{
|
||||||
shouldAlert = true;
|
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.state)
|
||||||
callObj.reason.push("state");
|
|
||||||
|
|
||||||
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.state)
|
|
||||||
{
|
{
|
||||||
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.state)
|
callObj.hunting.state = "worked-and-mixed";
|
||||||
{
|
stateConf = `${layeredUnconf}${state}${layeredUnconfAlpha};`;
|
||||||
callObj.hunting.state = "worked-and-mixed";
|
stateBg = `${state}${layeredInversionAlpha}`;
|
||||||
stateConf = `${layeredUnconf}${state}${layeredUnconfAlpha};`;
|
state = bold;
|
||||||
stateBg = `${state}${layeredInversionAlpha}`;
|
|
||||||
state = bold;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
callObj.hunting.state = "worked";
|
|
||||||
stateConf = `${unconf}${state}${inversionAlpha};`;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.state)
|
callObj.hunting.state = "worked";
|
||||||
{
|
stateConf = `${unconf}${state}${inversionAlpha};`;
|
||||||
callObj.hunting.state = "mixed";
|
}
|
||||||
stateBg = `${state}${layeredAlpha};`;
|
}
|
||||||
state = bold;
|
else
|
||||||
}
|
{
|
||||||
else if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.state)
|
if (rosterSettings.layeredMode && layeredHash in rosterSettings.huntIndex.state)
|
||||||
{
|
{
|
||||||
callObj.hunting.state = "mixed-worked";
|
callObj.hunting.state = "mixed";
|
||||||
stateConf = `${unconf}${state}${layeredAlpha};`;
|
stateBg = `${state}${layeredAlpha};`;
|
||||||
}
|
state = bold;
|
||||||
else
|
}
|
||||||
{
|
else if (rosterSettings.layeredMode && layeredHash in rosterSettings.workedIndex.state)
|
||||||
callObj.hunting.state = "hunted";
|
{
|
||||||
stateBg = `${state}${inversionAlpha};`;
|
callObj.hunting.state = "mixed-worked";
|
||||||
state = bold;
|
stateConf = `${unconf}${state}${layeredAlpha};`;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callObj.hunting.state = "hunted";
|
||||||
|
stateBg = `${state}${inversionAlpha};`;
|
||||||
|
state = bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -504,16 +500,26 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
|
||||||
if (potaEnabled && huntPOTA.checked == true && callObj.pota)
|
if (potaEnabled && huntPOTA.checked == true && callObj.pota)
|
||||||
{
|
{
|
||||||
let hash = CR.dayAsString + callsign + callObj.pota + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix);
|
let hash = CR.dayAsString + callsign + callObj.pota + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix);
|
||||||
|
let parkHash = callObj.pota + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix);
|
||||||
// POTA is only in the worked list
|
// POTA is only in the worked list
|
||||||
if (!(hash in CR.worked.pota))
|
if (!(hash in CR.worked.pota))
|
||||||
{
|
{
|
||||||
shouldAlert = true;
|
shouldAlert = true;
|
||||||
callObj.reason.push("pota");
|
callObj.reason.push("pota");
|
||||||
|
|
||||||
callObj.hunting.pota = "hunted";
|
callObj.hunting.pota = "hunted";
|
||||||
potaBg = `${pota}${inversionAlpha};`;
|
if (parkHash in CR.worked.pota)
|
||||||
pota = bold;
|
{
|
||||||
|
potaConf = `${unconf}${pota}${inversionAlpha};`;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
potaBg = `${pota}${inversionAlpha};`;
|
||||||
|
pota = bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (parkHash in CR.worked.pota)
|
||||||
|
{
|
||||||
|
potaConf = `${unconf}${pota}${inversionAlpha};`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,8 @@ const ROSTER_COLUMNS = {
|
||||||
tableData: (callObj) => ({
|
tableData: (callObj) => ({
|
||||||
align: "center",
|
align: "center",
|
||||||
rawAttrs: callObj.style.state,
|
rawAttrs: callObj.style.state,
|
||||||
html: callObj.state ? callObj.state.substr(3) : " "
|
html: callObj.state ? callObj.state.substr(3) : " ",
|
||||||
|
title: (callObj.state in window.opener.GT.StateData) ? window.opener.GT.StateData[callObj.state].name : null
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -125,10 +125,16 @@ function validateCallByElement(elementString)
|
||||||
|
|
||||||
function init()
|
function init()
|
||||||
{
|
{
|
||||||
openInfoTab(event, "workedBoxDiv", "showWorkedBox");
|
openInfoTab(qsobox, "workedBoxDiv", "showWorkedBox");
|
||||||
loadChildWindowI18n();
|
loadChildWindowI18n();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function searchWorked(dxcc, band, mode)
|
||||||
|
{
|
||||||
|
openInfoTab(qsobox, "workedBoxDiv", "showWorkedBox");
|
||||||
|
window.opener.searchWorked(dxcc, band, mode);
|
||||||
|
}
|
||||||
|
|
||||||
function addTextToClipboard(data)
|
function addTextToClipboard(data)
|
||||||
{
|
{
|
||||||
navigator.clipboard.writeText(data);
|
navigator.clipboard.writeText(data);
|
||||||
|
|
|
@ -677,7 +677,7 @@ a {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-top-right-radius: 6px;
|
border-top-right-radius: 6px;
|
||||||
border-top-left-radius: 6px;
|
border-top-left-radius: 6px;
|
||||||
margin-left: 5px;
|
margin-left: 0px;
|
||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
color: #eee;
|
color: #eee;
|
||||||
background: black;
|
background: black;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "GridTracker",
|
"name": "GridTracker",
|
||||||
"product_string_do_not_use": "gridtracker",
|
"product_string_do_not_use": "gridtracker",
|
||||||
"version": "1.23.1217",
|
"version": "1.23.1226",
|
||||||
"betaVersion": "",
|
"betaVersion": "",
|
||||||
"description": "GridTracker: An Amateur Radio Companion",
|
"description": "GridTracker: An Amateur Radio Companion",
|
||||||
"author": "GridTracker.org",
|
"author": "GridTracker.org",
|
||||||
|
|
Ładowanie…
Reference in New Issue