* Improve the efficiency of some queries
Mostly by switching from whereIn to whereIntegerInRaw.
This inserts integers directly into the query instead of using placeholders (also escapes them)
also remove extra json_encode/json_decode in PingCheck
* Fix return types
Probably will result in some missing baseline exceptions.
* Update PingCheck.php
* whitespace
* add timeout for widget in widget settings
* forgot get saved timeout and added default value for all widgets
* code correction
* move refresh to json
* forgot remove old code
* added refresh validate rule
* fix empty refresh for exist widgets
* fix empty settings for new widgets
* Set refresh in base
Update refresh at runtime (doesn't interrupt previous timeout)
* Update WidgetSettingsController.php
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Move services graph code from device to service and remove unused code
* Add proper support for services to dashboard graph weidget
* Fix phpdoc in ServiceController still pointing to MuninPluginController
Implemented in Laravel
Doesn't use legacy PHP session
Several widgets have new features and settings, for example:
- Multiple ports in one graph
- Maps settings are configurable and override system settings but default to system settings
- Graylog stream and/or device selection
- Much improved graph widget selection
- Many more
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.