fix(hamlog): stop offering an upload that cannot succeed

HAMLOG.online no longer issues API keys, and its upload API takes
nothing else. An operator without a key cannot obtain one, so the
auto-upload switch, the on-close sweep and the 'Send to' entry were all
arming something that could only fail — silently, once per QSO.

Closed at the source rather than hidden in the UI: the upload returns a
sentinel that says why, the manager stops routing to it and says so once
a session, and the manual path refuses with the same words. The settings
page states it plainly instead of showing a switch that does nothing.

Nothing else goes. Their confirmations arrive as an ADIF FILE and never
needed a key, so that import stays; the sent/received state already in
operators' logs stays readable, filterable and bulk-editable; and the
upload itself is kept whole as uploadHamlogLive, still covered by its
request-shape tests, against the day keys come back.
This commit is contained in:
2026-09-03 22:28:32 +02:00
parent 96b5f2d91f
commit 6cbe29fef1
8 changed files with 69 additions and 29 deletions
+4 -1
View File
@@ -11734,8 +11734,11 @@ func (a *App) UploadQSOsManual(service string, ids []int64) error {
// Cloudlog/Wavelog has no sent-status column ON PURPOSE — it dedupes
// server-side, which is exactly why an explicit selection needs no column to
// be safe. HAMLOG.online and HamQTH keep theirs in ADIF extras.
if svc == extsvc.ServiceHamlog {
return extsvc.ErrHamlogClosed
}
if uploadColumnFor(service) == "" &&
svc != extsvc.ServiceHamlog && svc != extsvc.ServiceHamQTH && svc != extsvc.ServiceCloudlog {
svc != extsvc.ServiceHamQTH && svc != extsvc.ServiceCloudlog {
return fmt.Errorf("unknown service %q", service)
}
cfg := a.loadExternalServices()