radio: fix quick log insert (timestamp param), 'ch 16' falls back to the marine channel, ISS list fits half-width cards
All checks were successful
Deploy production / deploy (push) Successful in 1m26s
All checks were successful
Deploy production / deploy (push) Successful in 1m26s
This commit is contained in:
@@ -320,10 +320,15 @@ export async function addLog(form: FormData): Promise<Result> {
|
||||
if (typed && !frequencyId) {
|
||||
const ch = typed.match(/^ch\s*(\d{1,3})$/i);
|
||||
if (ch) {
|
||||
// A scanner memory first; banks 1-3 are empty, so "ch 16" there means marine channel 16.
|
||||
const [r] =
|
||||
await client`SELECT frequency_id FROM radio.channels WHERE channel = ${Number(ch[1])}`;
|
||||
if (!r) return { ok: false, message: `Channel ${ch[1]} is empty.` };
|
||||
frequencyId = r.frequency_id;
|
||||
const [m] = r
|
||||
? [null]
|
||||
: await client`SELECT id FROM radio.frequencies WHERE marine_ch = ${ch[1]}
|
||||
ORDER BY (SELECT count(*) FROM radio.channels c WHERE c.frequency_id = id) DESC, id LIMIT 1`;
|
||||
if (!r && !m) return { ok: false, message: `Channel ${ch[1]} is empty.` };
|
||||
frequencyId = r ? r.frequency_id : m!.id;
|
||||
} else {
|
||||
freqHz = parseFreq(typed);
|
||||
if (!freqHz) return { ok: false, message: 'Frequency not understood.' };
|
||||
@@ -349,7 +354,7 @@ export async function addLog(form: FormData): Promise<Result> {
|
||||
heardAt = fromZoned(+m[1], +m[2], +m[3], +m[4], +m[5]);
|
||||
}
|
||||
await client`INSERT INTO radio.log ${client({
|
||||
heard_at: heardAt,
|
||||
heard_at: heardAt.toISOString(),
|
||||
frequency_id: frequencyId,
|
||||
freq_hz: freqHz,
|
||||
mode,
|
||||
|
||||
Reference in New Issue
Block a user