mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-08-03 08:46:44 -04:00
The rule for whether the monitor filter panel is shown inline (with its own toggle icon) or embedded in the left sidebar was duplicated across console, montage, montagereview and watch, plus the body-class logic in getBodyTopHTML. Each copy only checked ZM_WEB_FILTER_SETTINGS_POSITION and ignored the navbar, so the toggle was missing whenever the panel was shown inline. The sidebar can only embed into a left navbar, so without one the filters must be inline and keep their toggle. The effective navbar position is not the ZM_WEB_NAVBAR_TYPE default but the per-user value that index.php resolves from the request/cookie/session into the global $navbar_type; skin.js uses that same value to decide whether to relocate the panel. Add filterSettingsInline() to the skin functions and use it in all five places. It returns true when $navbar_type is not 'left', or when the position is explicitly inline, matching skin.js. Verified live by flipping the zmNavbar_type cookie: with 'normal' the views render inline and show the working toggle (console, montage, montagereview); with 'left' and a sidebar position they render in sidebar mode with no inline toggle. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Modern ZoneMinder Skin
This web frontend to ZoneMinder is a complete rewrite of the classic frontend, based on CakePHP.