* Put back code to close the popup when view is none
* clean up and reduce depth of some logic
* Increase width of user popup
* fix code style
* Make execute_filter work on a filter Id instead of name
* rework logic to reduce code depth. Change view to events to display the results of execute.
* Change the redirect to stay on the new view. When redirecting from executing a filter, it was redirecting to filter.
* Set a form action for correctness. Change execute button to a button instead of a submit. Stay on the filter view when executing
* Add a validateForm event listener and enforce CSP on the controlcap view
* filter.php: Use .validateFormOnSubmit
* server.php: Use .validateFormOnSubmit and fix makePopupButton condition check
* Use .validateFormOnSubmit and enforce CSP on the storage view
* monitor.php: Add nonce and move <script> inside </body>
* export_functions.php: Untested: Add @nonce to <script>
* blank.php: Add @nonce to <script> and add to CSP enforced views
* Enforce CSP on login and privacy views
* group.php: Add nonce and move <script> inside </body>
* filter.php: Add @nonce to <script>
* Fix updateButtons argument on the filter page upon change and page load
* events.php: Add @nonce to <script>
* Add Content-Security-Policy-Report-Only: script-src 'self' 'nonce-' policy
* Use @data-on-click-this to attach inline click event handlers which expect being called with 'this'
Only handle ones that don't return a value.
* Use @data-on-click to attach inline click event handlers with no args and no return value
* Use @data-on-click-true to attach inline click event handlers with 'true' as the only argument
* Enforce a script-src CSP on views without inline JS
* Convert some onchange attributes to data-on-change
* Move <script> before </body>
* Change makePopupLink to not use onclick
* Change makePopupButton to not use onclick
* Use .popup-link in control_functions.php
* Use makePopupButton in controlcaps.php
* Prevent double-encoding in makePopup*
* Use makePopupButton in devices.php
* Use makePopupButton in logout.php
* Use makePopupLink in monitor.php
* Use makePopupLink and .popup-link in montage.php
* Use makePopupButton in options.php
* Use makePopupButton, makePopupLink, and .popup-link in zones.php
* implement website monitor
* don't check certain fields when using website monitor
* continue to fix javascript errors for website monitors
* check $monitor, not $new_monitor here
* add website monitor documentation
was somehow left out of the initial commit
* fix corruption of functions.php
* add missing comma
* remove errors by testing for existence of key. If it's a new monitor, then none of the keys will be valid
* If the monitor type is WebSite, then default Status to Running.
* put back start function that got lost in merge. Don't start StreamCmd's if it's a WebSite
* Add midding comma
* Hide unrelated tabs when type is WebSite. Put back input fields for Type=WebSite
* Don't show control or any of the status fields for WebSite type monitors
* add some parenthesis to ensure order of operations, seems to fix fps and status fields not being shown for regular monitors
* Fix nearEventsQuery
Removed dbEscape from getNearEvents previous event because it only returns 0. Now matches next. Changed getEventDefaultVideoPath function to return a web path rather than the absolute path based on ic0ns branch. Also added start times to allow for videoJS replaymode.
* Unescape filters
Filters need to be unescaped
* Add initial values to page load
* Add replay modes to videojs
* rough in figuring out a frame in between bulk frames
* Add alarmCues
Add a graphical indication of where alarm frames happened in an event. Similar to what zmNinja shows.
* Add remaining buttons to videojs
Functionality for all buttons on videojs streams. FF/RW buttons show as active when they are active.
* Whitespace and fix Bulkframe calcs
* Fix zms events trying to generate with mp4 code
ZMS events would attempt to generate frames as though they were an mp4/passthrough type because the full eventpath wasn't passed
* ZMS scrub bar
Move zms scrub bar to bottom of image feed. Make it simpler and more like videojs style.
* Wrap event feeds properly
* Fix dvrControls on watch view
* Add scaleToFit
Add a scaleToFit option to event view
* Add navigation for videoJS streams
Disables nav buttons at beginning and end of events. Handles switching from zms to videojs. If zms crashes changes next event function to reload page instead of ajax.
* Add scaleToFit to watch and frame view
Adds scaleToFit to watch view. Since frame view uses the watch cookie this required changes to frame view
* Add transition to zoom
* Change stills view to match stream
Move stills slider bar to match scrub bar on streams. Allow it to resize, make it larger. Add alarmcues.
* Add Stills for every event
Add stills for every event. Match size to stream size
* Progressbox transitions
Cache busting was preventing changing css due to leaving symlinks behind. Adding the css name to each symlink prevents the need for a forced refresh since mtime is the same on unchanged files but filename does not change between css sets.