[feat](trx-rs): add ham sat pass predictions; rename SAT tab
- Rename "Weather Satellites" sub-tab to "SAT" - Add "Predictions" view: next 24 h flyby table for 13 ham sats (ISS, AO-91, AO-92, SO-50, AO-73, JO-97, PO-101, LilacSat-2, CAS-4B, EO-88, RS-44, SALSAT, GREENCUBE) - trx-core/geo: add PassPrediction, HAM_SATS, compute_upcoming_passes(), find_passes_for_sat(), compute_az_el() helpers; spawn_tle_refresh_task now also fetches CelesTrak amateur group on startup and every 24 h - trx-frontend-http: add GET /sat_passes endpoint - app.js: locator tooltips now accumulate all receivers per station via remotes Set; _detailPassesRigFilter checks the Set Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -4538,7 +4538,7 @@ button:focus-visible, input:focus-visible, select:focus-visible {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
/* ── Weather Satellite panel ────────────────────────────────────────── */
|
||||
/* ── SAT panel ──────────────────────────────────────────────────────── */
|
||||
.wxsat-view-bar { display: flex; gap: 0; margin-bottom: 0.75rem; border-bottom: 1px solid var(--border); }
|
||||
.wxsat-view-btn { flex-shrink: 0; background: transparent; border: none; border-bottom: 2px solid transparent; border-radius: 0; padding: 0.3rem 0.9rem; color: var(--text-muted); cursor: pointer; font-size: 0.82rem; }
|
||||
.wxsat-view-active { border-bottom-color: var(--accent-green); color: var(--accent-green); font-weight: 600; }
|
||||
@@ -4561,7 +4561,20 @@ button:focus-visible, input:focus-visible, select:focus-visible {
|
||||
.wxsat-latest-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 0.4rem; padding: 0.6rem 0.75rem; }
|
||||
.wxsat-latest-card .wxsat-latest-title { font-size: 0.82rem; font-weight: 600; margin-bottom: 0.25rem; }
|
||||
.wxsat-latest-card .wxsat-latest-meta { font-size: 0.78rem; color: var(--text-muted); }
|
||||
.sat-pred-header { display: grid; grid-template-columns: 6rem 1fr 4.5rem 5rem 6rem; gap: 0.25rem; padding: 0.25rem 0.4rem; font-size: 0.75rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.03em; border-bottom: 1px solid var(--border); }
|
||||
.sat-pred-row { display: grid; grid-template-columns: 6rem 1fr 4.5rem 5rem 6rem; gap: 0.25rem; padding: 0.35rem 0.4rem; font-size: 0.82rem; border-bottom: 1px solid var(--border-faint, rgba(255,255,255,0.04)); }
|
||||
.sat-pred-row:hover { background: var(--bg-hover, rgba(255,255,255,0.02)); }
|
||||
.sat-pred-col-time { font-variant-numeric: tabular-nums; color: var(--text-muted); }
|
||||
.sat-pred-col-sat { font-weight: 500; }
|
||||
.sat-pred-col-el { font-variant-numeric: tabular-nums; text-align: right; }
|
||||
.sat-pred-col-dur { font-variant-numeric: tabular-nums; color: var(--text-muted); }
|
||||
.sat-pred-col-dir { color: var(--text-muted); }
|
||||
.sat-pred-el-high { color: var(--accent-green); font-weight: 600; }
|
||||
.sat-pred-el-mid { color: #f0a020; }
|
||||
.sat-pred-el-low { color: var(--text-muted); }
|
||||
@media (max-width: 600px) {
|
||||
.wxsat-live-grid { grid-template-columns: 1fr; }
|
||||
.wxsat-history-header, .wxsat-history-row { grid-template-columns: 5rem 4rem 6rem 4rem 3.5rem 1fr; font-size: 0.75rem; }
|
||||
.sat-pred-header, .sat-pred-row { grid-template-columns: 5.5rem 1fr 4rem 4.5rem; font-size: 0.75rem; }
|
||||
.sat-pred-col-dir { display: none; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user