* Iterate in javascript and separate processing
* Widget refresh/destroy events
* Remove old dom and unbind events
* fix whitespace
* Fix up bootgrid tables, they inserted a div before the first div breaking event propagation
switch to regular js function to scope variables instead of jquery
* Handle settings the same way as the normal widget
* Use standard init_map and add layer control
* May need L.Control.Locate now
* Set maxZoom for marker cluster
* Try setMaxZoom
* worldmap size 100 and resize on refresh/widget resize
* Add resize event (and throttle it a bit)
* Further worldmap cleanup
* Move most javascript to common js, will cause js errors until page is reloaded, but better in the long run
* Added read permission test to the custom map model
* Formatting fixes
* Moved permission check logic into SQL to avoid errors accessing undefined properties
* Update custom map permission code to avoid unneeded SQL query
* Custom Maps: geo map and color background
tabs blade component
geo-map blade component and related script enhancements
* Update css/js
* style fixes
* update db_schema.yaml
* fix db_schema hand edit
* ignore phpstan being wrong
* Handle null
* another possible null spot
* Use standard file cache for custom map background images
* Create map->image as jpeg so we can compress it
* whitespace fix
* Fix background cancel button when other type is selected than the saved type
* Save and restore layer
* Map must exist before creating static image
* Don't show set as image button for Google and Bing.
Bing gives an odd error, but Google won't work.
* snmpscan.py output errors and nodns
Add symbols for nodns (-o) and errors.
-v will include detailed info as always.
* Add E to legend
* fix too long lines
* Fix it the way black wants, apparently.
* try 3
* attempt 4
* Fixed mysql connection to include additional options for SSL Cert and Key. This allows for TLS client communication.
* Modified config options for mysql database to make SSL/TLS settings optional.
SSL/TLS CA, CERT, and KEY are optional. If they are not provided the array_filter() will remove them.
MYSQL_ATTR_SSL_VERIFY_SERVER_CERT is outside array_filter() because the function will remove the option if it is falsey; however there are times when that variable must be set to false.
* fix style
---------
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Linux MegaRAID SAS fixes
- Updated disk error threshold from 1 to 0.1 because we need to know when
it reaches 1, not when it exceeds 1. It would ideally be set to 0, but
it needs to evaluate to true in order for the threshold to be set.
- Fixed the OID for the virtual disk failure check, which also removes the
duplicate check on the predictive failure OID
* Updated the LSI test output
* Another update to the SNMP results
* Update all thresholds to 0
The warning and error thresholds work correctly when set to 0, so I have updated these values
* Change back to the original sensor OID, with the correct MIB OID and description
* Further re-classification of degraded LSI disk check
* Map Management: Show Groups
* reorganize group selector a bit
* Use uuid to prevent issues with unicode strings and other oddities
* Edit buttons should not be primary
* Reactivity for small screens
This is to avoid the following error when trying to poll:
```
file_put_contents(/opt/librenms/cache/os_defs.cache): Failed to open stream: Permission denied {"exception":"[object] (ErrorException(code: 0): file_put_contents(/opt/librenms/cache/os_defs.cache): Failed to open stream: Permission denied at /opt/librenms/LibreNMS/Util/OS.php:113)"}
```
* Merge duplicate toBytes functions
Replace other duplicate code and add tests
* Allow space between similar to formatSI output
* Style fixes
* Match previous behavior in Docker app