Squashed commits '${title}'

merge-requests/237/merge
T Loomis 2023-10-14 20:42:44 +00:00
rodzic c345f5482f
commit 37f1a19d25
23 zmienionych plików z 85 dodań i 84 usunięć

Wyświetl plik

@ -2,7 +2,7 @@
# see https://docs.gitlab.com/ee/ci/yaml/README.html for all available options
variables:
DEFAULT_IMAGE: registry.gitlab.com/gridtracker.org/gtbuilder:v1-0
DEFAULT_IMAGE: registry.gitlab.com/gridtracker.org/gtbuilder:v1-3
APT_CACHE_DIR: $CI_PROJECT_DIR/.cache/apt
NPM_CONFIG_CACHE: $CI_PROJECT_DIR/.cache/npm
@ -16,13 +16,6 @@ variables:
NR0Q_SERVER_ADDRESS: ""
NR0Q_SERVER_PASSWORD: ""
#
# Because it's getting to be that kind of world, we're going to have to
# sign our packages/exectuables with a signing key.
# That signing chain and spec file will be stored in a Gitlab CI Variable and protected,
# here's a placeholder for the script
G_CODE_SIGNING_CHAIN: ""
# nothing in this file ill be allowed to run automatically except for:
# 1. merge requests
# 2. manual tagging
@ -86,7 +79,7 @@ win:package:
mkdir -p artifacts
echo -e "\e[0Ksection_start:`date +%s`:apt_get[collapsed=true]\r\e[0KGetting Build Dependencies"
apt-get update && apt-get upgrade -y
apt-get install p7zip -y
apt-get install curl p7zip -y
wget https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip
unzip -bj Registry.zip Desktop/Plugin/registry.dll -d /usr/share/nsis/Plugins/x86-unicode/
unzip -bj Registry.zip Desktop/Include/Registry.nsh -d /usr/share/nsis/Include/
@ -94,6 +87,7 @@ win:package:
7zr e NsProcess.zip -y -o/usr/share/nsis/Include/ Include/nsProcess.nsh
7zr e NsProcess.zip -y -o/usr/share/nsis/Plugins/x86-unicode/ Plugin/nsProcessW.dll
mv /usr/share/nsis/Plugins/x86-unicode/nsProcessW.dll /usr/share/nsis/Plugins/x86-unicode/nsProcess.dll
curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
script:
- |
# Making our Windows packages
@ -111,7 +105,7 @@ win:package:
rm dist/*-win-*/locales/*.info
# Now we need to sign the executable before it get's stuffed into Nullsoft
# using mono signcode
## signcode -spc codecert.spc -t http://time.certum.pl/ -a sha256 dist/GridTracker-*-win-*/*.exe
echo $SIGN_PASS | signcode -spc .secure_files/beau-gunderson.spc -v .secure_files/beau-gunderson.pvk dist/GridTracker-*-win-*/*.exe
# Now the executable should be signed
sed "s#<versionplaceholder>#`node version.js`#g" windows/win_installer.nsi > windows/setup.nsi.tmp.1
sed "s#<buildplaceholder>#`pwd`#g" windows/setup.nsi.tmp.1 > windows/setup.nsi
@ -119,7 +113,7 @@ win:package:
# clean up generated files
rm windows/setup.nsi
rm windows/setup.nsi.tmp.1
## signcode -spc codecert.spc -t http://time.certum.pl/ -a sha256 dist/GridTracker-Installer.*.exe
echo $SIGN_PASS | signcode -spc .secure_files/beau-gunderson.spc -v .secure_files/beau-gunderson.pvk dist/GridTracker-Installer.*.exe
(cd dist ; mv GridTracker-Installer.*.exe ../artifacts)
echo -e "\e[0Ksection_end:`date +%s`:native_build\e[0K"

8
debian/changelog vendored
Wyświetl plik

@ -1,10 +1,14 @@
gridtracker (1.23.1009) unstable; urgency=low
gridtracker (1.23.1014) unstable; urgency=low
- Call Roster - Fixed "All Traffic/Only Wanted" filtering
- Call Roster - Fixed POTA wanted same-day issue
- Call Roster - Added optional "Rig" column
- System – Support digital mode Q65
- System – BIGCTY update from October 7th
- System – Push notification services Simplepush.io and Pushover.net added (OAMS tab)
- System – Swaziland renamed to Eswatini
- Logging – HamZone.cn service is now HamCQ.cn
- Maps – Toner (online), Terrain, Watercolor and Geography Class no longer public access
-- Tag Loomis <n0ttl@gridtracker.org> Mon, 09 OCt 2023 00:00:00 -0000
-- Tag Loomis <n0ttl@gridtracker.org> Sat, 14 Oct 2023 00:00:00 -0000
gridtracker (1.23.0402) unstable; urgency=low
- Roster - fixed Hunting mode not saving

Wyświetl plik

@ -40,10 +40,14 @@ DESTDIR=${RPM_BUILD_ROOT} make clean
%license %{_docdir}/%{name}/
%changelog
* Mon Oct 09 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.1009-1
* Sat Oct 14 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.1014-1
- Call Roster - Fixed "All Traffic/Only Wanted" filtering
- Call Roster - Fixed POTA wanted same-day issue
- Call Roster - Added optional "Rig" column
- System – Support digital mode Q65
- System – BIGCTY update from October 7th
- System – Push notification services Simplepush.io and Pushover.net added (OAMS tab)
- System – Swaziland renamed to Eswatini
- Logging – HamZone.cn service is now HamCQ.cn
- Maps – Toner (online), Terrain, Watercolor and Geography Class no longer public access
* Sun Apr 02 2023 Tag Loomis <n0ttl@gridtracker.org> - 1.23.0402-1

Wyświetl plik

@ -2267,14 +2267,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<br />
<label data-i18n="settings.logging.CloudLog.details.API" for="CloudlogAPI">API Key</label>
<input id="CloudlogAPI" type="password" class="inputTextValue" size="12"
oninput=" ValidateText(this); adifTextValueChange(this);" />
oninput="ValidateText(this); adifTextValueChange(this);" />
<br />
Station Profile ID<input id="CloudlogStationProfileID" type="text" class="inputTextValue" size="12"
oninput=" ValidateText(this); adifTextValueChange(this);" />
oninput="ValidateText(this); adifTextValueChange(this);" />
</td>
<td>
<div data-i18n="settings.logging.CloudLog.test.button" class="button"
onclick="if ( ValidateText(CloudlogURL) && ValidateText(CloudlogAPI) ) ClublogTest(true);">
onclick="CloudlogTest(true);">
Test
</div>
</td>

Wyświetl plik

@ -359,7 +359,7 @@
"462": ["South Africa", "ZA", "za.png"],
"464": ["Namibia", "NA", "na.png"],
"466": ["Sudan", "SD", "sd.png"],
"468": ["Swaziland", "SZ", "sz.png"],
"468": ["Eswatini", "SZ", "sz.png"],
"470": ["Tanzania", "TZ", "tz.png"],
"474": ["Tunisia", "TN", "tn.png"],
"478": ["Egypt", "EG", "eg.png"],

Wyświetl plik

@ -339,7 +339,7 @@
<input type="checkbox" id="usesOQRS" onchange="valuesChanged();" />
<label data-i18n="roster.secondary.exceptions.usesOQRS" for="usesOQRS">Uses OQRS</label>
</div>
<div id="allOnlyNewDiv">
<input type="checkbox" id="allOnlyNew" onchange="valuesChanged();" />
<label data-i18n="roster.secondary.exceptions.allOnlyNew" for="allOnlyNew">Only New Calls</label>

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -574,9 +574,9 @@
"roster.secondary.execptions.onlyMyDXCC": "我需要的DXCC",
"roster.secondary.exceptions.useseQSL": "eQSL用戶",
"roster.secondary.exceptions.usesOQRS": "OQRS用戶",
"roster.secondary.exceptions.allOnlyNew": "僅限新呼號",
"roster.secondary.exceptions.wantRRCQ": "RR73 as CQ",
"roster.secondary.exceptions.noUnknownDXCC": "No Unknown DXCC",
"roster.secondary.exceptions.allOnlyNew": "僅限新呼號",
"roster.secondary.exceptions.noMsg.label": "不包含",
"roster.secondary.exceptions.noMsg.hover": "不包含解碼...",
"roster.secondary.exceptions.onlyMsg.label": "只包含",

Wyświetl plik

@ -312,7 +312,7 @@
"462": "South Africa",
"464": "Namibia",
"466": "Sudan",
"468": "Swaziland",
"468": "Eswatini",
"470": "Tanzania",
"474": "Tunisia",
"478": "Egypt",

Wyświetl plik

@ -574,9 +574,9 @@
"roster.secondary.exceptions.onlyMyDXCC": "Only My DXCC",
"roster.secondary.exceptions.useseQSL":" Uses eQSL",
"roster.secondary.exceptions.usesOQRS": "Uses OQRS",
"roster.secondary.exceptions.allOnlyNew": "Only New Calls",
"roster.secondary.exceptions.wantRRCQ": "RR73 as CQ",
"roster.secondary.exceptions.noUnknownDXCC": "No Unknown DXCC",
"roster.secondary.exceptions.allOnlyNew": "Only New Calls",
"roster.secondary.exceptions.noMsg.label": "No",
"roster.secondary.exceptions.noMsg.hover": "No Decodes Containing...",
"roster.secondary.exceptions.onlyMsg.label": "Only",

Wyświetl plik

@ -2784,24 +2784,31 @@ function hrdCredentialTest(test)
}
}
function ClublogTest(test)
function CloudlogTest(test)
{
if (test && test == true)
{
CloudlogTestResult.innerHTML = "Testing";
if (ValidateText(CloudlogURL) && ValidateText(CloudlogAPI) && ValidateText(CloudlogStationProfileID))
{
CloudlogTestResult.innerHTML = "Testing";
var postData = { key: CloudlogAPI.value, type: "adif", string: "<eor>" };
getPostJSONBuffer(
CloudlogURL.value,
CloudlogSendLogResult,
test,
"https",
80,
postData,
10000,
CloudUrlErrorCallback,
"No Response<br/>or</br>Timeout"
);
var postData = { key: CloudlogAPI.value, station_profile_id: CloudlogStationProfileID.value, type: "adif", string: "<eor>" };
getPostJSONBuffer(
CloudlogURL.value,
CloudlogSendLogResult,
test,
"https",
80,
postData,
10000,
CloudUrlErrorCallback,
"No Response<br/>or</br>Timeout"
);
}
else
{
CloudlogTestResult.innerHTML = "Missing Fields</br>Test Aborted";
}
}
}

Wyświetl plik

@ -12493,7 +12493,7 @@ function getPostBuffer(
});
req.on("error", function (err) // eslint-disable-line node/handle-callback-err
{
if (typeof timeoutCallback != "undefined")
if (typeof timeoutCallback == "function")
{
timeoutCallback(
file_url,

Wyświetl plik

@ -570,7 +570,11 @@ function htmlEntities(str)
function sendSimplePushMessage(jsmesg)
{
const url = "https://api.simplepush.io/send";
let data = { key: GT.msgSettings.msgSimplepushApiKey, title: "GridTracker Chat Message", msg: jsmesg.call + ": " + jsmesg.msg };
let data = {
key: GT.msgSettings.msgSimplepushApiKey,
title: "GT Chat - " + formatCallsign(GT.appSettings.myCall),
msg: formatCallsign(jsmesg.call) + ": " + jsmesg.msg
};
getPostBuffer(
url,
null, // callback,
@ -578,9 +582,7 @@ function sendSimplePushMessage(jsmesg)
"https",
443,
data,
5000, // timeoutMs,
null, // timeoutCallback,
"simplepush"
5000
);
}
@ -591,8 +593,8 @@ function sendPushOverMessage(jsmesg, test = false)
user: GT.msgSettings.msgPushoverUserKey,
token: GT.msgSettings.msgPushoverToken,
title:
"GridTracker Chat Message",
message: jsmesg.call + ": " + jsmesg.msg
"GT Chat - " + formatCallsign(GT.appSettings.myCall),
message: formatCallsign(jsmesg.call) + ": " + jsmesg.msg
};
getPostBuffer(
url,
@ -601,9 +603,7 @@ function sendPushOverMessage(jsmesg, test = false)
"https",
443,
data,
5000, // timeoutMs,
null, // timeoutCallback,
"pushover"
5000 // timeoutMs,
);
}

Wyświetl plik

@ -118,6 +118,7 @@ CR.defaultSettings = {
Band: false,
Mode: false,
Calling: true,
Rig: false,
Grid: true,
Msg: false,
DXCC: true,

Wyświetl plik

@ -417,12 +417,6 @@ function processRosterFiltering(callRoster, rosterSettings)
}
}
}
let didWork = (baseHash in CR.worked.call);
if (allOnlyNew.checked && didWork && !callObj.qrz)
{
callObj.shouldAlert = false;
tx = false;
}
entry.tx = tx;
}

Wyświetl plik

@ -72,8 +72,6 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
let callPointer = callObj.CQ == true ? "cursor:pointer" : "";
let didWork = false;
let call = "#FFFF00";
let grid = "#00FFFF";
let calling = "#90EE90";
@ -98,6 +96,8 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
let cntyPointer = (callObj.cnty && callObj.qual == false) ? "cursor: pointer;" : "";
let didWork = false;
let hash = callsign + workHashSuffix;
let layeredHash = layeredHashSuffix && (callsign + layeredHashSuffix)
@ -149,7 +149,6 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
entry.tx = false;
continue;
}
// Special Calls
if (callObj.DEcall.match("^[A-Z][0-9][A-Z](/w+)?$"))
{
@ -524,14 +523,10 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
// Hunting for POTAs
if (potaEnabled && huntPOTA.checked == true && callObj.pota)
{
let huntTotal = 1;
let workedFound = 0;
let hash = CR.dayAsString + callsign + callObj.pota + (rosterSettings.layeredMode ? layeredHashSuffix : workHashSuffix);
if (rosterSettings.workedIndex && hash in rosterSettings.workedIndex.pota) workedFound++;
if (workedFound != huntTotal)
// POTA is only in the worked list
if (!(hash in CR.worked.pota))
{
shouldAlert = true;
callObj.reason.push("pota");
@ -809,11 +804,7 @@ function processRosterHunting(callRoster, rosterSettings, awardTracker)
colorObject.ituz = "style='" + ituzConf + "background-color:" + ituzBg + ";color:" + ituz + "'";
colorObject.px = "style='" + wpxConf + "background-color:" + wpxBg + ";color:" + wpx + "'";
// Just in case, don't alert if we worked this callsign alread
if (didWork && shouldAlert) shouldAlert = false;
// callObj.shouldAlert ||= shouldAlert; // eslint doesn't like this, why?
// If alert was set (award tracker), don't clear it
if (!callObj.shouldAlert)
{

Wyświetl plik

@ -64,7 +64,7 @@ function renderRoster(callRoster, rosterSettings)
// callmode (all or only new)
if (rosterSettings.callMode == "all") allOnlyNewDiv.style.display = "";
else allOnlyNewDiv.style.display = "none";
// Show the roster count in the window title
// let visibleCallList = callRoster.filter(entry => entry.tx);
@ -73,7 +73,7 @@ function renderRoster(callRoster, rosterSettings)
for (const entry in callRoster)
{
// entry should populate in general
if (callRoster[entry].tx)
if (callRoster[entry].tx == true)
{
visibleCallList.push(callRoster[entry]);
}

Wyświetl plik

@ -1,5 +1,5 @@
const DEFAULT_COLUMN_ORDER = [
"Callsign", "Band", "Mode", "Calling", "Wanted", "Grid", "Msg",
"Callsign", "Band", "Mode", "Calling", "Rig", "Wanted", "Grid", "Msg",
"POTA", "DXCC", "Flag", "State", "County", "Cont",
"dB", "Freq", "DT", "Dist", "Azim",
"CQz", "ITUz", "PX",
@ -74,6 +74,13 @@ const ROSTER_COLUMNS = {
}
},
Rig: {
compare: callObjSimpleComparer("instance"),
tableData: (callObj) => ({
html: callObj.instance
})
},
Band: {
compare: callObjSimpleComparer("band"),
tableData: (callObj) => ({
@ -451,7 +458,8 @@ function wantedColumnParts(callObj, options)
if (Object.keys(callObj.hunting).length == 0)
{
return ["&nbsp;"];
let sendBlank = (typeof options.html != "undefined" && options.html == true);
return [(sendBlank ? "&nbsp;" : "")];
}
let parts = [];

Wyświetl plik

@ -128,7 +128,7 @@ function sendSimplePushMessage(message)
const url = "https://api.simplepush.io/send";
let data = {
key: window.opener.GT.msgSettings.msgSimplepushApiKey,
title: "GridTracker Alert " + window.opener.GT.appSettings.myCall,
title: "GT Alert - " + formatCallsign(window.opener.GT.appSettings.myCall),
msg: message
};
@ -139,9 +139,7 @@ function sendSimplePushMessage(message)
"https",
443,
data,
500, // timeoutMs,
null, // timeoutCallback,
"simplepush"
5000
);
}
@ -151,7 +149,7 @@ function sendPushOverAlert(message)
let data = {
user: window.opener.GT.msgSettings.msgPushoverUserKey,
token: window.opener.GT.msgSettings.msgPushoverToken,
title: "GridTracker Alert " + window.opener.GT.appSettings.myCall,
title: "GT Alert - " + formatCallsign(window.opener.GT.appSettings.myCall),
message: message
};
@ -162,9 +160,7 @@ function sendPushOverAlert(message)
"https",
443,
data,
500, // timeoutMs,
null, // timeoutCallback,
"pushover"
5000
);
}
@ -175,15 +171,17 @@ function parseCRJson(data)
{
if (data[callsign].shouldAlert === true && data[callsign].alerted === false)
{
let wanted = " (" + wantedColumnParts(data[callsign]) + ")";
if (data[callsign].grid)
{
if (data[callsign].state)
{
message = message + callsign + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].grid + ", " + data[callsign].band + ", " + data[callsign].state + "\n";
message = message + formatCallsign(callsign) + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].grid + ", " + data[callsign].band + ", " + data[callsign].state + wanted + "\n";
}
else
{
message = message + callsign + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].grid + ", " + data[callsign].band + "\n";
message = message + formatCallsign(callsign) + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].grid + ", " + data[callsign].band + wanted + "\n";
}
}
else
@ -192,11 +190,11 @@ function parseCRJson(data)
{
if (data[callsign].state)
{
message = message + callsign + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].band + ", " + data[callsign].state + "\n";
message = message + formatCallsign(callsign) + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].band + ", " + data[callsign].state + wanted + "\n";
}
else
{
message = message + callsign + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].band + "\n";
message = message + formatCallsign(callsign) + ", " + data[callsign].dxccName + ", " + data[callsign].RSTsent.toString() + ", " + data[callsign].band + wanted + "\n";
}
}
}

Wyświetl plik

@ -1,7 +1,7 @@
{
"name": "GridTracker",
"product_string_do_not_use": "gridtracker",
"version": "1.23.1009",
"version": "1.23.1014",
"betaVersion": "",
"description": "GridTracker, an amateur radio companion",
"author": "GridTracker.org",

Wyświetl plik

@ -64,7 +64,7 @@ VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
VIAddVersionKey CompanyWebsite "${URL}"
VIAddVersionKey FileVersion "${VERSION}"
VIAddVersionKey FileDescription "An Amateur Radio Companion"
VIAddVersionKey FileDescription "GridTracker"
VIAddVersionKey LegalCopyright "2023 GridTracker.org"
InstallDirRegKey HKLM "${REGKEY}" Path
ShowUninstDetails nevershow

Wyświetl plik

@ -34,7 +34,7 @@ VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
VIAddVersionKey CompanyWebsite "${URL}"
VIAddVersionKey FileVersion "${VERSION}"
VIAddVersionKey FileDescription "An Amateur Radio Companion"
VIAddVersionKey FileDescription "GridTracker"
VIAddVersionKey LegalCopyright "${CPYEAR} Gridtracker.org"