GT flags follow map view filters, Spots button now tri-state
merge-requests/237/merge
Tag 2023-01-13 19:59:58 -08:00
rodzic bd1f3a9b66
commit 602ae760a8
14 zmienionych plików z 70 dodań i 520 usunięć

Wyświetl plik

@ -528,15 +528,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<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>
<div id="gridModeDiv" onclick="toggleGridMode()" class="iconButton" title="Toggle Maidenhead Width">
<img id="modeImg" src="" class="buttonImg" />
</div>
<div id="alterMuteDiv" onclick="toggleAlertMute()" class="iconButton" title="Toggle Audio Mute">
<img id="alertMuteImg" src="" class="buttonImg" />
</div>
<div id="settingsButton" onclick="showSettingsBox();" class="iconButton" title="Settings">
<img src="./img/settings-button.png" class="buttonImg" />
</div>
@ -550,11 +550,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<img style="-webkit-filter: brightness(50%); filter: brightness(50%)" src="./img/donate.png"
class="buttonImg" />
</div>
<div id="alterMuteDiv" onclick="toggleAlertMute()" class="iconButton" title="Toggle Audio Mute">
<img id="alertMuteImg" src="" class="buttonImg" />
<div id="timezoneButton" onclick="toggleTimezones()" class="iconButton" title="Toggle Timezone Layer">
<img id="timezoneImg" src="./img/timezone-button.png" class="buttonImg" />
</div>
<div id="buttonPSKSpotsBoxDiv" onClick="togglePskSpots();" class="iconButton" title="View Spot Reports">
<img id="pskSpotsImg" src="./img/spots.png" class="buttonImg" />
<div id="radarButton" onclick="toggleNexrad()" class="iconButton" title="Toggle US Nexrad">
<img id="radarImg" src="./img/radar-button.png" class="buttonImg" />
</div>
<div id="gridOverlayButton" onclick="toggleAllGrids()" class="iconButton" title="Toggle All Grid Overlay">
<img id="gridOverlayImg" src="./img/grid-overlay.png" class="buttonImg" />
</div>
<div id="buttonSpotsBoxDiv" onClick="cycleSpotsView();" class="iconButton" title="View Spot Reports">
<img id="spotsButtonImg" src="./img/spots.png" class="buttonImg" />
</div>
<div id="buttonPsk24CheckBoxDiv" onclick="grabPsk24()" class="iconButton" title="Your PSK 24hour report">
<img id="pskImg" src="./img/psk_24_32.png" class="buttonImg" />
@ -577,14 +583,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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 id="timezoneImg" src="./img/timezone-button.png" class="buttonImg" />
</div>
<div id="radarButton" onclick="toggleNexrad()" class="iconButton" title="Toggle US Nexrad">
<img id="radarImg" src="./img/radar-button.png" class="buttonImg" />
</div>
<div id="gridOverlayButton" onclick="toggleAllGrids()" class="iconButton" title="Toggle All Grid Overlay">
<img id="gridOverlayImg" src="./img/grid-overlay.png" class="buttonImg" />
<div id="potaButton" onClick="togglePotaMap();" class="iconButton" title="Parks On The Air">
<img id="potaImg" src="./img/pota.png" class="buttonImg" />
</div>
<div id="gtFlagButton" onclick="toggleGtMap();" class="iconButton" title="Toggle View GridTracker Users">
<img id="gtFlagImg" src="" class="buttonImg" />
@ -592,9 +592,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<div id="msgButton" onclick="showMessaging();" class="iconButton" title="Messaging Window">
<img id="msgImg" src="./img/gt_chat.png" class="buttonImg" />
</div>
<div id="potaButton" onClick="togglePotaMap();" class="iconButton" title="Parks On The Air">
<img id="potaImg" src="./img/pota.png" class="buttonImg" />
</div>
</div>
<div id="SpotsDiv"
style="display: none; border: 1px solid yellow; margin: 1px; margin-bottom: 1px; margin-top: 2px"
@ -803,8 +800,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<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>
<td align="left"></td>
<td></td>
</tr>
<tr>
@ -873,7 +870,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</tr>
<tr>
<td>H</td>
<td align="left">Toggle RX Spots Heatmap</td>
<td align="left">Cycle Spots View</td>
<td></td>
<td>F8</td>
<td align="left">Recall Map Position 4</td>
@ -1499,24 +1496,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</tr>
</table>
</div>
<div class="mapItem">
<table align="center">
<tr>
<td data-i18n="settings.audio.lighteningAlert.label" title="Lightning Strike Audio Alert">Lightning Strike
Audio Alert</td>
</tr>
<tr>
<td>
<select id="strikesAlert" value="0" onchange="changeStrikesAlert();">
<option data-i18n="settings.audio.lighteningAlert.none" value="0">None</option>
<option data-i18n="settings.audio.lighteningAlert.short" value="1">Short</option>
<option data-i18n="settings.audio.lighteningAlert.long" value="2">Long</option>
<option data-i18n="settings.audio.lighteningAlert.voice" value="3">Voice</option>
</select>
</td>
</tr>
</table>
</div>
<br />
<div class="mapItem" style="white-space: nowrap">
<table align="center">

Wyświetl plik

@ -478,9 +478,8 @@
var who = "<text class='" + className + "'>" + who.formatCallsign() + "</text>";
var time = "<text class='when'>" + window.opener.userTimeString(when) + "</text>";
var worker = who + " " + time + "</br>";
var newMsg = msg.replace(new RegExp("\r?\n", "g"), "<br />");
var msgTextClass = containsDoubleByte(newMsg) ? "msgTextUnicode" : "msgText";
worker += "<text class='" + msgTextClass + "' >" + newMsg.linkify() + "</text><br/>";
var msgTextClass = containsDoubleByte(msg) ? "msgTextUnicode" : "msgText";
worker += "<text class='" + msgTextClass + "' >" + msg.linkify() + "</text><br/>";
return worker;
}
@ -672,7 +671,7 @@
<div id="messageInfoDiv" class="boxDisplay">
<text id="callsign"></text> / <text id="country"></text> / <text id="grid"></text> / <text id="band"></text> / <text id="mode"></text> / <text id="appSource"></text>
</div>
<div id="messageTextDiv" class="boxDisplay" style="overflow: auto; user-select: text"></div>
<div id="messageTextDiv" class="boxDisplay" style="overflow: auto; white-space: pre-wrap;user-select: text"></div>
<div id="messageInputDiv" style="position: fixed; bottom: 3px">
<textarea disabled="true" id="messageInput" maxlength="256" rows="2" value="" class="roundBorder"></textarea>
</div>

Wyświetl plik

@ -1,178 +0,0 @@
<!--
This file is part of GridTracker.
GridTracker is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License.
GridTracker is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GridTracker. If not, see <https://www.gnu.org/licenses/>.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GridTracker - Print</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
table.darkTable {
border-collapse: collapse;
border: 1px solid black;
background-color: white;
text-align: center;
}
table.darkTable td,
table.darkTable th {
border: 1px solid black;
padding: 3px 5px;
}
table.darkTable thead {
border-bottom: 2px solid black;
}
table.darkTable thead th {
font-weight: bold;
text-align: center;
border-left: 2px solid black;
}
table.darkTable thead th:first-child {
border-left: none;
}
</style>
<script>
function init() {
window.print();
}
</script>
</head>
<body id="mainBody" onload="init();">
<div id="main">
<center><h2>GridTracker</h2></center>
<div id="printDiv">
<table align="center" class="darkTable">
<tr>
<th colspan="3">Hot Key List</th>
</tr>
<tr>
<th>Key</th>
<th align="left">Action</th>
<th>Condition</th>
</tr>
<tr>
<td>C</td>
<td align="left">Open Conditions Windows</td>
<td></td>
</tr>
<tr>
<td>G</td>
<td align="left">Toggle GridTracker Flags</td>
<td></td>
</tr>
<tr>
<td>I</td>
<td align="left">Open Stats/Info</td>
<td></td>
</tr>
<tr>
<td>L</td>
<td align="left">Open ADIF file</td>
<td></td>
</tr>
<tr>
<td>M</td>
<td align="left">Toggle Audio Mute</td>
<td></td>
</tr>
<tr>
<td>N</td>
<td align="left">Toggle Earth Shadow</td>
<td></td>
</tr>
<tr>
<td>P</td>
<td align="left">Toggle Grid/PushPin Mode</td>
<td></td>
</tr>
<tr>
<td>Q</td>
<td align="left">Cycle QSO/LIVE view</td>
<td></td>
</tr>
<tr>
<td>R</td>
<td align="left">Open Call Roster Window</td>
<td></td>
</tr>
<tr>
<td>S</td>
<td align="left">Open Settings</td>
<td></td>
</tr>
<tr>
<td>W</td>
<td align="left">Toggle Maidenhead Grid Size</td>
<td></td>
</tr>
<tr>
<td>1</td>
<td align="left">Show General Map Layer</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td align="left">Show CQ Zones Award Layer</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td align="left">Show ITU Zones Award Layer</td>
<td></td>
</tr>
<tr>
<td>4</td>
<td align="left">Show Continents Award Layer</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td align="left">Show US States Award Layer</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td align="left">Show DXCC Award Layer</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td align="left">Show US Counties Award Layer</td>
<td></td>
</tr>
<tr>
<td>M</td>
<td align="left">Add MapCenter Alert</td>
<td>right-click<br />empty grid</td>
</tr>
<tr>
<td>T</td>
<td align="left">Add TTS Alert</td>
<td>right-click<br />empty grid</td>
</tr>
<tr>
<td>V</td>
<td align="left">Add PopUp Alert</td>
<td>right-click<br />empty grid</td>
</tr>
<tr>
<td>F1</td>
<td align="left">Hot Key List</td>
<td></td>
</tr>
</table>
</div>
</div>
</body>
</html>

Wyświetl plik

@ -138,7 +138,7 @@
"controlPanel.Share.hover": "讓其他GridTracker用戶看到您的在線狀態",
"controlPanel.Help.hover": "打開熱鍵清單(F1)",
"controlPanel.Trophy.hover": "循環顯示獎狀圖層(=)",
"controlPanel.Lightening.hover": "顯示全球閃電實時狀態(Y)",
"controlPanel.Moon.hover": "顯示月球位置(D)",
"controlPanel.MaidenheadWidth.hover": "切換梅登黑德網格位數(W)",
"controlPanel.Settings.hover": "設定(S)",
@ -228,12 +228,6 @@
"settings.audio.Speech.Phonetics.hover": "以語音方式播出呼號和網格",
"settings.audio.Device.label": "音頻播放設備",
"settings.audio.File.Volume.label": "音頻檔案音量",
"settings.audio.lighteningAlert.label": "雷擊音頻警報",
"settings.audio.lighteningAlert.hover": "如果有雷擊報警,則發出雷擊音頻警報!",
"settings.audio.lighteningAlert.none": "無",
"settings.audio.lighteningAlert.short": "短",
"settings.audio.lighteningAlert.long": "長",
"settings.audio.lighteningAlert.voice": "聲音",
"settings.audio.QSOLogEventFile.label": "QSO日志記錄通知音頻",
"settings.logbook.callsigns.hover": "QSO日志以僅包含這些呼號的數據逗號分隔",
"settings.logbook.callsigns.label": "過濾通聯呼號",
@ -775,18 +769,11 @@
"gt.gridTable.Azim": "角度",
"gt.gridTable.Lat": "緯度",
"gt.gridTable.Long": "經度",
"gt.LighteningStrike.disclaimer": "閃電雷擊檢測由 Blitzortung.org 提供\n我們對可能造成損害的誤擊不承擔責任.\n請務必向當地氣象服務機構査詢準確數據.",
"gt.UpdateCount.ClearLog": "清除日誌",
"gt.UpdateCount.LoadLog": "載入日誌",
"gt.CurrentBandMode.Band": "混合波段",
"gt.CurrentBandMode.Mode": "混合模式",
"gt.currentTime.never": "從未",
"gt.LighteningStrike.Global": "全球閃電",
"gt.LighteningStrike.Changed": "雷擊距離發生變化",
"gt.LighteningStrike.Disabled": "檢測未啟用!",
"gt.LighteningStrike.Detected": "檢測到雷擊!",
"gt.LighteningStrike.Distance": "距離:",
"gt.LighteningStrike.Bearing": "角度:",
"gt.WSJTMessage.Generated": "產生信息",
"gt.WSJTMessage.TransmitEnable": "發射已啟用!",
"gt.WSJTMessage.Decode": "解碼",

Wyświetl plik

@ -138,7 +138,6 @@
"controlPanel.Share.hover": "让其他GridTracker用户看到您的在线状态",
"controlPanel.Help.hover": "打开热键清单(F1)",
"controlPanel.Trophy.hover": "循环显示奖状图层(=)",
"controlPanel.Lightening.hover": "显示全球闪电实时状态(Y)",
"controlPanel.Moon.hover": "显示月球位置(D)",
"controlPanel.MaidenheadWidth.hover": "切换梅登黑德网格位数(W)",
"controlPanel.Settings.hover": "设置(S)",
@ -228,12 +227,6 @@
"settings.audio.Speech.Phonetics.hover": "以语音方式播出呼号和网格",
"settings.audio.Device.label": "音频播放设备",
"settings.audio.File.Volume.label": "音频文件音量",
"settings.audio.lighteningAlert.label": "雷击音频警报",
"settings.audio.lighteningAlert.hover": "如果有雷击报警,则发出雷击音频警报!",
"settings.audio.lighteningAlert.none": "无",
"settings.audio.lighteningAlert.short": "短",
"settings.audio.lighteningAlert.long": "长",
"settings.audio.lighteningAlert.voice": "声音",
"settings.audio.QSOLogEventFile.label": "QSO日志记录通知音频",
"settings.logbook.callsigns.hover": "QSO日志以仅包含这些呼号的数据逗号分隔",
"settings.logbook.callsigns.label": "过滤通联呼号",
@ -775,18 +768,11 @@
"gt.gridTable.Azim": "方位角",
"gt.gridTable.Lat": "纬度",
"gt.gridTable.Long": "经度",
"gt.LighteningStrike.disclaimer": "开启雷电提示",
"gt.UpdateCount.ClearLog": "清除日志",
"gt.UpdateCount.LoadLog": "载入日志",
"gt.CurrentBandMode.Band": "混合波段",
"gt.CurrentBandMode.Mode": "混合模式",
"gt.currentTime.never": "从不",
"gt.LighteningStrike.Global": "全球雷击",
"gt.LighteningStrike.Changed": "累计距离改变",
"gt.LighteningStrike.Disabled": "未启用检测!!",
"gt.LighteningStrike.Detected": "检测到雷击!",
"gt.LighteningStrike.Distance": "距离:",
"gt.LighteningStrike.Bearing": "影响:",
"gt.WSJTMessage.Generated": "生成消息(JTDX无效)",
"gt.WSJTMessage.TransmitEnable": "开启发射!",
"gt.WSJTMessage.Decode": "解码",

Wyświetl plik

@ -137,7 +137,6 @@
"controlPanel.Share.hover": "Share your On-Air Status with other GridTracker users",
"controlPanel.Help.hover": "Toggle Hotkey List",
"controlPanel.Trophy.hover": "Cycle Award Overlays",
"controlPanel.Lightening.hover": "Toggle Lightening Strikes",
"controlPanel.Moon.hover": "Toggle Moon",
"controlPanel.MaidenheadWidth.hover": "Toggle Maidenhead Width",
"controlPanel.Settings.hover": "Toggle Settings Window",
@ -227,12 +226,6 @@
"settings.audio.Speech.Phonetics.hover": "Speak Callsigns and Gridsquares phonetically",
"settings.audio.Device.label": "Audio Device",
"settings.audio.File.Volume.label": "File Audio Volume",
"settings.audio.lighteningAlert.label": "Lightening Strike Audio Alert",
"settings.audio.lighteningAlert.hover": "Lightening Strike Audio Alert",
"settings.audio.lighteningAlert.none": "None",
"settings.audio.lighteningAlert.short": "Short",
"settings.audio.lighteningAlert.long": "Long",
"settings.audio.lighteningAlert.voice": "Voice",
"settings.audio.QSOLogEventFile.label": "QSO Log Event Notification",
"settings.logbook.callsigns.hover": "Filter Logbook QSOs to include these Callsigns only (comma seperated)",
"settings.logbook.callsigns.label": "Working Callsign(s)",
@ -775,18 +768,12 @@
"gt.gridTable.Azim": "Azim",
"gt.gridTable.Lat": "Lat",
"gt.gridTable.Long": "Long",
"gt.LighteningStrike.disclaimer": "Lighting Strike Detection is provided by Blitzortung.org\nWe are not responsible for missed strikes that could result in damage.\nBe sure to check your local weather providers for accurate data.",
"gt.UpdateCount.ClearLog": "Clear Log",
"gt.UpdateCount.LoadLog": "Load Logs",
"gt.CurrentBandMode.Band": "Mixed Bands",
"gt.CurrentBandMode.Mode": "Mixed Modes",
"gt.currentTime.never": "Never",
"gt.LighteningStrike.Global": "Global Strikes",
"gt.LighteningStrike.Changed": "Strike Distance Chagned",
"gt.LighteningStrike.Disabled": "Detection is not enabled!",
"gt.LighteningStrike.Detected": "Lighting Strike Detected!",
"gt.LighteningStrike.Distance": "Distance:",
"gt.LighteningStrike.Bearing": "Bearing:",
"gt.WSJTMessage.Generated": "Generated Msgs",
"gt.WSJTMessage.TransmitEnable": "Transmit Enabled!",
"gt.WSJTMessage.Decode": "DECODE",

Plik binarny nie jest wyświetlany.

Przed

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

Plik binarny nie jest wyświetlany.

Po

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

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 721 B

Plik binarny nie jest wyświetlany.

Przed

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

Wyświetl plik

@ -50,7 +50,6 @@ var def_appSettings = {
gtMsgEnable: true,
gtShareEnable: true,
gtSpotEnable: true,
heatEnabled: 0,
loadAdifAtStartup: false,
locale: "en",
lookupLoginCq: "",
@ -88,7 +87,7 @@ var def_appSettings = {
sixWideMode: 0,
savedAppData: null,
soundCard: "default",
spotsEnabled: 0,
spotView: 0,
stopAskingVersion: false,
useLocalTime: 0,
wsjtForwardUdpEnable: false,
@ -129,10 +128,6 @@ var def_mapSettings = {
rosterTime: 120,
shadow: 0.1,
splitQSL: true,
strikes: false,
strikesAlert: 2,
strikesGlobal: false,
strikesNotify: false,
trafficDecode: true,
usNexrad: false,
zoom: 4,

Wyświetl plik

@ -181,13 +181,9 @@ var myBand = g_appSettings.myBand;
var myRawFreq = g_appSettings.myRawFreq;
var myRawCall = g_appSettings.myRawCall;
var myRawGrid = g_appSettings.myRawGrid;
var g_flightDuration = 30;
var g_crScript = g_appSettings.crScript;
var g_spotsEnabled = g_appSettings.spotsEnabled;
var g_heatEnabled = g_appSettings.heatEnabled;
var g_spotView = g_appSettings.spotView;
var g_myLat = g_mapSettings.latitude;
var g_myLon = g_mapSettings.longitude;
@ -605,7 +601,6 @@ var g_earthShadowImageArray = Array();
g_earthShadowImageArray[0] = "./img/shadow_on_32.png";
g_earthShadowImageArray[1] = "./img/shadow_off_32.png";
var g_gtFlagImageArray = Array();
g_gtFlagImageArray[2] = "./img/flag_on_freq.png";
g_gtFlagImageArray[1] = "./img/flag_on.png";
g_gtFlagImageArray[0] = "./img/flag_off.png";
var g_gtShareFlagImageArray = Array();
@ -626,6 +621,10 @@ g_qslLockImageArray[1] = "./img/qsl_locked_32.png";
var g_alertImageArray = Array();
g_alertImageArray[0] = "./img/unmuted-button.png";
g_alertImageArray[1] = "./img/muted-button.png";
var g_spotImageArray = Array();
g_spotImageArray[0] = "./img/spots.png";
g_spotImageArray[1] = "./img/spots.png";
g_spotImageArray[2] = "./img/heat.png";
var g_maidenheadModeImageArray = Array();
g_maidenheadModeImageArray[0] = "./img/mh4_32.png";
g_maidenheadModeImageArray[1] = "./img/mh6_32.png";
@ -711,6 +710,7 @@ function gtBandFilterChanged(selector)
removePaths();
redrawGrids();
redrawPins();
redrawSpots();
redrawParks();
}
@ -720,6 +720,7 @@ function gtModeFilterChanged(selector)
g_appSettings.gtModeFilter = selector.value;
redrawGrids();
redrawPins();
redrawSpots();
redrawParks();
}
@ -737,6 +738,7 @@ function setBandAndModeToAuto()
g_appSettings.gtModeFilter = g_appSettings.gtBandFilter = gtBandFilter.value = gtModeFilter.value =
"auto";
redrawGrids();
redrawPins();
redrawSpots();
redrawParks();
}
@ -828,8 +830,8 @@ function toggleOffline()
conditionsButton.style.display = "inline-block";
gtFlagButton.style.display = "inline-block";
gtShareButton.style.display = "inline-block";
buttonStrikesDiv.style.display = "inline-block";
buttonPSKSpotsBoxDiv.style.display = "inline-block";
buttonSpotsBoxDiv.style.display = "inline-block";
donateButton.style.display = "inline-block";
potaButton.style.display = "inline-block";
@ -877,8 +879,7 @@ function toggleOffline()
msgButton.style.display = "none";
donateButton.style.display = "none";
potaButton.style.display = "none";
buttonStrikesDiv.style.display = "none";
buttonPSKSpotsBoxDiv.style.display = "none";
buttonSpotsBoxDiv.style.display = "none";
setGtShareButtons();
}
loadMapSettings();
@ -2964,14 +2965,14 @@ function registerHotKeys()
registerHotKey("KeyE", toggleMoonTrack);
registerHotKey("KeyF", toggleSpotPaths);
registerHotKey("KeyG", toggleGtMap);
registerHotKey("KeyH", toggleHeatSpots);
// registerHotKey("KeyH", cycleSpotView);
registerHotKey("KeyI", showRootInfoBox);
// registerHotKey("KeyJ", setTrophyOverlay, 8);
registerHotKey("KeyK", makeScreenshots);
registerHotKey("KeyL", adifLoadDialog);
registerHotKey("KeyM", toggleAlertMute);
registerHotKey("KeyN", toggleEarth);
registerHotKey("KeyO", togglePskSpots);
registerHotKey("KeyO", cycleSpotsView);
registerHotKey("KeyP", togglePushPinMode);
registerHotKey("KeyQ", cycleGridView);
registerHotKey("KeyR", openCallRosterWindow);
@ -2980,7 +2981,7 @@ function registerHotKeys()
registerHotKey("KeyU", toggleMergeOverlay);
registerHotKey("KeyW", toggleGridMode);
registerHotKey("KeyX", toggleMouseTrack);
registerHotKey("KeyY", toggleStrikeGlobal);
registerHotKey("KeyZ", setCenterQTH);
registerHotKey("Minus", toggleCRScript);
@ -3083,7 +3084,7 @@ function makeTitleInfo(mapWindow)
: g_appSettings.gtModeFilter == "auto"
? myMode
: g_appSettings.gtModeFilter;
var space = " ";
var news = `GridTracker ${gtVersionStr} [Band: ${band} Mode: ${mode}`;
var end = "]";
@ -3194,8 +3195,6 @@ function setTrophyOverlay(which)
mapLoseFocus();
}
g_layerVectors.strikes.setVisible(true);
if (which == 1)
{
for (key in g_cqZones)
@ -3951,7 +3950,7 @@ function mouseOutOfDataItem(mouseEvent)
myTooltip.style.zIndex = -1;
g_lastDataGridUp = null;
if (g_spotsEnabled == 1) g_layerSources["psk-hop"].clear();
if (g_spotView == 1) g_layerSources["psk-hop"].clear();
}
function reloadInfo(bandOrMode)
@ -4589,67 +4588,6 @@ function changeHaltOntTxValue(check)
saveMapSettings();
}
function changeStrikesAlert()
{
g_mapSettings.strikesAlert = strikesAlert.value;
saveMapSettings();
playStrikeAlert();
}
function playStrikeAlert()
{
switch (Number(g_mapSettings.strikesAlert))
{
case 1:
playAlertMediaFile("short-strike.wav", true);
break;
case 2:
playAlertMediaFile("long-strike.mp3", true);
break;
case 3:
playAlertMediaFile("strike-detected.mp3", true);
break;
default:
// do nothing
break;
}
}
function setStrikesButton()
{
if (g_mapSettings.strikes)
{
strikesImg.style.webkitFilter = "";
}
else
{
strikesImg.style.webkitFilter = "grayscale(1)";
}
g_gtLiveStatusUpdate = true;
}
function toggleStrikesValue()
{
if (g_mapSettings.strikesNotify == false && g_mapSettings.strikes == false)
{
var confirmed = window.confirm(
"Lighting Strike Detection is provided by Blitzortung.org\nWe are not responsible for missed strikes that could result in damage.\nBe sure to check your local weather providers for accurate data."
);
if (confirmed == false)
{
return;
}
else
{
g_mapSettings.strikesNotify = true;
}
}
g_mapSettings.strikes = g_mapSettings.strikes != true;
setStrikesButton();
saveMapSettings();
}
function changeSplitQSL()
{
g_mapSettings.splitQSL = splitQSLValue.checked;
@ -5147,23 +5085,6 @@ function displayTime()
pskSpotCheck(g_timeNow);
if (g_mapSettings.strikes && g_mapSettings.offlineMode == false)
{
var now = Date.now();
for (var time in g_bolts)
{
if (now - time > 120000)
{
if (g_layerSources.strikes.hasFeature(g_bolts[time])) { g_layerSources.strikes.removeFeature(g_bolts[time]); }
delete g_bolts[time];
}
}
}
else
{
g_layerSources.strikes.clear();
}
if (g_currentNightState != g_nightTime)
{
changeMapLayer();
@ -5195,7 +5116,7 @@ function createGlobalMapLayer(name, maxResolution, minResolution)
)
{
var zIndex = Object.keys(g_layerVectors).length + 1;
if (name == "strikes") zIndex = 2000;
g_layerVectors[name] = new ol.layer.Vector({
source: g_layerSources[name],
zIndex: zIndex
@ -5273,115 +5194,6 @@ function panTo(location)
});
}
var g_lightningBolt = new ol.style.Icon({
src: "./img/lw.png",
anchorYUnits: "pixels",
anchorXUnits: "pixels",
size: [64, 64],
anchor: [9, 58],
scale: 0.75
});
var g_lightningGlobal = Array();
g_lightningGlobal[0] = new ol.style.Icon({
src: "./img/l0.png",
anchorYUnits: "pixels",
anchorXUnits: "pixels",
opacity: 0.2,
anchor: [2, 31]
});
g_lightningGlobal[1] = new ol.style.Icon({
src: "./img/l6.png",
anchorYUnits: "pixels",
anchorXUnits: "pixels",
opacity: 0.2,
anchor: [1, 34]
});
var g_bolts = {};
var g_strikeRange = 0.4;
function toggleStrikeGlobal()
{
g_mapSettings.strikesGlobal = g_mapSettings.strikesGlobal == false;
saveMapSettings();
var msg = "Local Strikes";
if (g_mapSettings.strikesGlobal == true) msg = "Global Strikes";
var worker =
"<font color='yellow'>Strike Distance Changed<br/>" + msg + "</font>";
if (g_mapSettings.strikes == false) { worker += "<br/><font color='red'>Detection is not enabled!</font>"; }
addLastTraffic(worker);
g_layerSources.strikes.clear();
}
function handleStrike(strike)
{
var index = Date.now();
while (index in g_bolts) index++;
var inRange = true;
if (myRawGrid.length < 4 || Math.abs(strike.o - g_myLon) > g_strikeRange) inRange = false;
if (Math.abs(strike.a - g_myLat) > g_strikeRange) inRange = false;
if (
g_mapSettings.strikesGlobal ||
(g_mapSettings.strikesGlobal == false && inRange)
)
{
g_bolts[index] = iconFeature(
ol.proj.fromLonLat([strike.o, strike.a]),
inRange ? g_lightningBolt : g_lightningGlobal[0],
1
);
g_layerSources.strikes.addFeature(g_bolts[index]);
}
if (inRange == true)
{
playStrikeAlert();
var dist =
parseInt(
MyCircle.distance(
g_myLat,
g_myLon,
strike.a,
strike.o,
distanceUnit.value
) * MyCircle.validateRadius(distanceUnit.value)
).toLocaleString() +
" " +
distanceUnit.value.toLowerCase();
var azim =
parseInt(
MyCircle.bearing(g_myLat, g_myLon, strike.a, strike.o)
).toLocaleString() + "&deg;";
var worker =
"<font style='color:yellow;font-weight:bold'>Lighting Strike Detected!</font><br/>";
worker +=
"<font style='color:white'>" + userTimeString(null) + "</font><br/>";
worker +=
"<font style='color:orange'>Distance: </font><font style='color:lightblue;font-weight:bold'>" +
dist +
"</font><br/>";
worker +=
"<font style='color:cyan'>Bearing: </font><font style='color:lightgreen;font-weight:bold'>" +
azim +
"</font>";
addLastTraffic(worker);
}
}
function toggleMouseTrack()
{
g_appSettings.mouseTrack ^= 1;
@ -5488,7 +5300,6 @@ function initMap()
createGlobalMapLayer("temp");
createGlobalMapLayer("tz");
createGlobalMapLayer("radar");
createGlobalMapLayer("strikes");
g_mapView = new ol.View({
center: [g_myLon, g_myLat],
@ -5501,7 +5312,6 @@ function initMap()
target: "mapDiv",
layers: [
g_tileLayer,
g_layerVectors.award,
g_layerVectors["psk-heat"],
g_layerVectors.qso,
@ -5520,8 +5330,7 @@ function initMap()
g_layerVectors.gtflags,
g_layerVectors.temp,
g_layerVectors.tz,
g_layerVectors.radar,
g_layerVectors.strikes
g_layerVectors.radar
],
controls: g_mapControl,
loadTilesWhileInteracting: false,
@ -6577,7 +6386,7 @@ function handleWsjtxStatus(newMessage)
if (newMessage.TxEnabled)
{
if (g_mapSettings.fitQRZ && (!g_spotsEnabled || g_receptionSettings.mergeSpots))
if (g_mapSettings.fitQRZ && (g_spotView == 0 || g_receptionSettings.mergeSpots))
{
if (g_lastMapView == null)
{
@ -12337,7 +12146,7 @@ function getBuffer(file_url, callback, flag, mode, port, cache = null)
http.get(options, function (res)
{
var fsize = res.headers["content-length"];
// var fsize = res.headers["content-length"];
var cookies = null;
if (typeof res.headers["set-cookie"] != "undefined") { cookies = res.headers["set-cookie"]; }
res
@ -12390,7 +12199,7 @@ function getPostBuffer(
};
var req = http.request(options, function (res)
{
var fsize = res.headers["content-length"];
// var fsize = res.headers["content-length"];
var cookies = null;
if (typeof res.headers["set-cookie"] != "undefined") { cookies = res.headers["set-cookie"]; }
res
@ -12503,20 +12312,17 @@ function loadMapSettings()
fitQRZvalue.checked = g_mapSettings.fitQRZ;
qrzDxccFallbackValue.checked = g_mapSettings.qrzDxccFallback;
CqHiliteValue.checked = g_mapSettings.CQhilite;
focusRigValue.checked = g_mapSettings.focusRig;
haltAllOnTxValue.checked = g_mapSettings.haltAllOnTx;
strikesAlert.value = g_mapSettings.strikesAlert;
clearRosterOnBandChange.checked = g_appSettings.clearRosterOnBandChange;
rosterDelayOnFocus.checked = g_appSettings.rosterDelayOnFocus;
rosterDelayTime.value = g_appSettings.rosterDelayTime;
rosterDelayTimeTd.innerHTML = rosterDelayTime.value + "ms";
setStrikesButton();
trafficDecode.checked = g_mapSettings.trafficDecode;
pskSpotsImg.style.filter = g_spotsEnabled == 1 ? "" : "grayscale(1)";
setSpotImage();
timezoneImg.style.filter = g_timezonesEnable == 1 ? "" : "grayscale(1)";
radarImg.style.filter = g_mapSettings.usNexrad ? "" : "grayscale(1)";
gridOverlayImg.style.filter = g_showAllGrids ? "" : "grayscale(1)";
@ -13037,7 +12843,7 @@ function loadMsgSettings()
msgEnable.checked = g_appSettings.gtMsgEnable;
GTspotEnable.checked = g_appSettings.gtSpotEnable;
pskSpotsImg.style.filter = g_spotsEnabled == 1 ? "" : "grayscale(1)";
setSpotImage();
for (var key in g_msgSettings)
{
@ -13217,7 +13023,7 @@ function startupButtonsAndInputs()
gridViewButton.innerHTML = g_gridViewArray[g_appSettings.gridViewMode];
earthImg.src = g_earthShadowImageArray[g_appSettings.earthImgSrc];
gtFlagImg.src = g_gtFlagImageArray[g_appSettings.gtFlagImgSrc];
gtFlagImg.src = g_gtFlagImageArray[g_appSettings.gtFlagImgSrc % 2];
gtShareFlagImg.src =
g_gtShareFlagImageArray[g_appSettings.gtShareEnable == false ? 0 : 1];
@ -13245,8 +13051,7 @@ function startupButtonsAndInputs()
msgButton.style.display = "none";
donateButton.style.display = "none";
pskReporterBandActivityDiv.style.display = "none";
buttonStrikesDiv.style.display = "none";
buttonPSKSpotsBoxDiv.style.display = "none";
buttonSpotsBoxDiv.style.display = "none";
}
setGtShareButtons();
@ -15618,7 +15423,7 @@ function pskSpotCheck(timeSec)
if (myDEcall == null || myDEcall == "NOCALL" || myDEcall == "") return;
if (
(g_spotsEnabled == 1 || g_rosterSpot) &&
(g_spotView > 0 || g_rosterSpot) &&
(g_receptionReports.lastDownloadTimeSec < g_lastTrasmissionTimeSec) &&
(
timeSec - g_receptionReports.lastDownloadTimeSec > PSKREPORTER_INTERVAL_IN_SECONDS ||
@ -15639,7 +15444,7 @@ function pskSpotCheck(timeSec)
443
);
}
else if (g_spotsEnabled == 1)
else if (g_spotView > 0)
{
if (
g_lastTrasmissionTimeSec < g_receptionReports.lastDownloadTimeSec &&
@ -16043,18 +15848,20 @@ function toggleSpotPaths()
redrawSpots();
}
function toggleHeatSpots()
function setSpotImage()
{
g_heatEnabled ^= 1;
g_appSettings.heatEnabled = g_heatEnabled;
updateSpotView();
spotsButtonImg.src = g_spotImageArray[g_spotView];
spotsButtonImg.style.filter = (g_spotView == 0) ? "grayscale(1)" : "";
}
function togglePskSpots()
function cycleSpotsView()
{
g_spotsEnabled ^= 1;
g_appSettings.spotsEnabled = g_spotsEnabled;
pskSpotsImg.style.filter = g_spotsEnabled == 1 ? "" : "grayscale(1)";
g_spotView++;
g_spotView %= 3;
g_appSettings.spotView = g_spotView;
setSpotImage();
setTrophyOverlay(g_currentOverlay);
updateSpotView();
}
@ -16080,7 +15887,7 @@ function toggleCRScript()
function updateSpotView(leaveCount = true)
{
if (g_spotsEnabled == 1)
if (g_spotView > 0)
{
if (g_receptionSettings.mergeSpots == false)
{
@ -16089,7 +15896,7 @@ function updateSpotView(leaveCount = true)
g_layerVectors[key].setVisible(false);
}
}
if (g_heatEnabled == 0)
if (g_spotView == 1)
{
g_layerVectors["psk-spots"].setVisible(true);
g_layerVectors["psk-flights"].setVisible(true);
@ -16116,7 +15923,6 @@ function updateSpotView(leaveCount = true)
SpotsDiv.style.display = "none";
spotRefreshDiv.innerHTML = "&nbsp;";
}
g_layerVectors.strikes.setVisible(true);
}
function gotoDonate()

Wyświetl plik

@ -9,8 +9,7 @@ var g_chatRecvFunctions = {
info: gtChatUpdateCall,
drop: gtChatRemoveCall,
mesg: gtChatMessage,
o: gtSpotMessage,
l: gtLightningStrike
o: gtSpotMessage
};
var ChatState = Object();
@ -248,7 +247,6 @@ function gtChatSendStatus()
msg.src = "GT";
msg.canmsg = g_appSettings.gtMsgEnable;
msg.o = g_appSettings.gtSpotEnable == true ? 1 : 0;
msg.l = g_mapSettings.strikes == true ? 1 : 0;
msg = JSON.stringify(msg);
if (msg != g_lastGtStatus)
@ -429,7 +427,7 @@ function makeGtPin(obj)
if (validateGridFromString(obj.grid) == false) return;
if (g_appSettings.gtFlagImgSrc == 2 && (obj.mode != myMode || obj.band != myBand))
if (!validateMapBandAndMode(obj.band, obj.mode))
{
return;
}
@ -658,15 +656,6 @@ function gtSpotMessage(jsmesg)
}
}
function gtLightningStrike(jsmesg)
{
// Saftey check
if (g_mapSettings.strikes)
{
handleStrike(jsmesg);
}
}
function gtChatSystemInit()
{
g_gtEngineInterval = nodeTimers.setInterval(gtChatStateMachine, 1000);
@ -697,9 +686,9 @@ function clearGtFlags()
function toggleGtMap()
{
g_appSettings.gtFlagImgSrc += 1;
g_appSettings.gtFlagImgSrc %= 3;
g_appSettings.gtFlagImgSrc %= 2;
gtFlagImg.src = g_gtFlagImageArray[g_appSettings.gtFlagImgSrc];
if (g_spotsEnabled == 1 && g_receptionSettings.mergeSpots == false) return;
if (g_spotView > 0 && g_receptionSettings.mergeSpots == false) return;
if (g_appSettings.gtFlagImgSrc > 0)
{
redrawPins();

Wyświetl plik

@ -1177,7 +1177,7 @@ function getBuffer(file_url, callback, flag, mode, port, cookie)
}
http.get(options, function (res)
{
let fsize = res.headers["content-length"];
// let fsize = res.headers["content-length"];
let cookies = null;
if (typeof res.headers["set-cookie"] != "undefined")
{ cookies = res.headers["set-cookie"]; }