External services (QRZ/Clublog/LoTW) + QSL Manager
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -350,7 +350,7 @@ export function SettingsModal({ onClose, onSaved, initialSection }: Props) {
|
||||
// External services (logbook upload). One block per service; only QRZ is
|
||||
// wired today. upload_mode is 'immediate' | 'delayed' (per-service).
|
||||
type ExtServiceCfg = {
|
||||
api_key: string; email: string; password: string; callsign: string;
|
||||
api_key: string; email: string; username: string; password: string; callsign: string;
|
||||
force_station_callsign: string;
|
||||
tqsl_path: string; station_location: string; key_password: string;
|
||||
upload_flag: string; write_log: boolean;
|
||||
@@ -358,7 +358,7 @@ export function SettingsModal({ onClose, onSaved, initialSection }: Props) {
|
||||
};
|
||||
type ExternalServices = { qrz: ExtServiceCfg; clublog: ExtServiceCfg; lotw: ExtServiceCfg };
|
||||
const emptyExtCfg = (): ExtServiceCfg => ({
|
||||
api_key: '', email: '', password: '', callsign: '',
|
||||
api_key: '', email: '', username: '', password: '', callsign: '',
|
||||
force_station_callsign: '', tqsl_path: '', station_location: '', key_password: '',
|
||||
upload_flag: 'R', write_log: false,
|
||||
auto_upload: false, upload_mode: 'immediate',
|
||||
@@ -2022,6 +2022,21 @@ export function SettingsModal({ onClose, onSaved, initialSection }: Props) {
|
||||
) : extSvcTab === 'lotw' ? (
|
||||
<div className="space-y-4 max-w-2xl">
|
||||
<div className="grid grid-cols-[170px_1fr] gap-3 items-center">
|
||||
<Label className="text-sm">LoTW user</Label>
|
||||
<Input
|
||||
value={lotw.username}
|
||||
onChange={(e) => setLotw({ username: e.target.value })}
|
||||
placeholder="LoTW website login (for downloading confirmations)"
|
||||
className="font-mono text-xs"
|
||||
/>
|
||||
<Label className="text-sm">LoTW password</Label>
|
||||
<Input
|
||||
type="password"
|
||||
value={lotw.password}
|
||||
onChange={(e) => setLotw({ password: e.target.value })}
|
||||
placeholder="LoTW website password"
|
||||
className="text-xs"
|
||||
/>
|
||||
<Label className="text-sm">TQSL path</Label>
|
||||
<Input
|
||||
value={lotw.tqsl_path}
|
||||
|
||||
Reference in New Issue
Block a user