- Remove admin/config_backup.php (backup/restore page) and all nav
links to it across the admin pages and the expert-mode shared header.
- Remove factory reset: the full-device version in configure.php
(JS confirm, POST handler that reset three git repos + wiped /etc
config, and the hidden form) and the CSS-only version in
expert/edit_dashboard.php.
- Remove the PiStar-Remote and BM API full editors
(admin/expert/fulledit_pistar-remote.php, fulledit_bmapikey.php)
and their links from the expert-mode menu.
- Add a "custom" option to the APRS server dropdown in configure.php
so operators can type their own server + port instead of picking
from APRSHosts.txt; wires the port through to ircDDBGateway,
YSFGateway/YSF2DMR/YSF2NXDN/YSF2P25, and APRSGateway (previously
only the hostname was ever configurable, port was hardcoded 14580).
- Extend the POCSAG frequency band validator (functions.js) to also
treat 150-160MHz as a valid/green range.
mmdvmhost/lh.php (and admin/mmdvmhost/lh.php) require_once this file
and call setEmbeddableSecurityHeaders(), but the file was never
committed to this repo (confirmed absent across main/dev/development
history), causing a fatal "failed opening required" 500 on the Last
Heard panel.
Restores both setSecurityHeaders() (full page: adds X-Frame-Options +
CSP frame-ancestors) and setEmbeddableSecurityHeaders() (AJAX partial
variant, omits the framing directives since it's loaded into the
parent via $.load(), not an iframe), matching the behavior described
in the comments already present in lh.php and functions.php.