fix: bulk edit refused the fields it offered (#3)
My mistake yesterday: the new confirmation columns went into uploadStatusCols — the QSL Manager's FILTER whitelist — instead of bulkEditableCols. The dialog listed QRZ.com received status and the ten dates, and the repository refused them at Apply, after the operator had selected 54 QSOs. Moved to the right map. And two fields have been broken this way since long before: State and County were offered under "Contacted station" (whose IOTA / POTA / SOTA / SIG siblings are all allowed) but were missing from the whitelist, so choosing one always failed. Added — they are exactly what an import loses and what a whole run shares. The real fix is the test. Two lists in two languages had to agree by hand and nothing checked it, so the failure only ever surfaced as an error message at the last click. The new tests read the ACTUAL field ids out of BulkEditModal.tsx and FilterBuilder.tsx and assert the repository accepts every one — a field added to the UI alone now fails the build instead of the operator.
This commit is contained in:
@@ -1052,7 +1052,7 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan
|
||||
const [bandDraft, setBandDraft] = useState('');
|
||||
const [modeDraft, setModeDraft] = useState('');
|
||||
const [catCfg, setCatCfg] = useState<CATSettings>({
|
||||
enabled: false, backend: 'omnirig', omnirig_rig: 1, flex_host: '', flex_port: 4992, flex_spots: false, flex_decode_spots: false, flex_decode_secs: 120,
|
||||
enabled: false, backend: 'omnirig', omnirig_rig: 1, omnirig_vfo: '', flex_host: '', flex_port: 4992, flex_spots: false, flex_decode_spots: false, flex_decode_secs: 120,
|
||||
icom_port: '', icom_baud: 115200, icom_addr: 0x98, icom_net_host: '', icom_net_user: '', icom_net_pass: '', icom_net_audio: false,
|
||||
tci_host: '', tci_port: 40001, tci_spots: false, poll_ms: 250, delay_ms: 0,
|
||||
digital_default: 'FT8',
|
||||
@@ -2334,6 +2334,21 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan
|
||||
</Select>
|
||||
</div>
|
||||
)}
|
||||
{catCfg.backend === 'omnirig' && (
|
||||
<div className="space-y-1">
|
||||
<Label>{t('cat.omnirigVfo')}</Label>
|
||||
<Select value={catCfg.omnirig_vfo || 'auto'}
|
||||
onValueChange={(v) => setCatCfg((s) => ({ ...s, omnirig_vfo: v === 'auto' ? '' : v }))}>
|
||||
<SelectTrigger><SelectValue /></SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="auto">{t('cat.omnirigVfoAuto')}</SelectItem>
|
||||
<SelectItem value="A">{t('cat.omnirigVfoA')}</SelectItem>
|
||||
<SelectItem value="B">{t('cat.omnirigVfoB')}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<p className="text-[10px] text-muted-foreground">{t('cat.omnirigVfoHint')}</p>
|
||||
</div>
|
||||
)}
|
||||
{catCfg.backend === 'flex' && (
|
||||
<>
|
||||
<div className="space-y-1">
|
||||
|
||||
Reference in New Issue
Block a user