Commit Graph

824 Commits

Author SHA1 Message Date
Tony Murray
8fdf990dd5 Fix issue loading session preferences (#16041)
during initial login

fixes #15866
2024-05-19 09:45:36 -05:00
Pikamander2
742b0154c1 Fix incorrect number of seconds in a day (#16042) 2024-05-19 09:45:11 -05:00
eskyuu
c1f955e06e Added read permission test to the custom map model (#16030)
* 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
2024-05-16 07:54:45 -05:00
Tony Murray
0d246a6ffc Custom Maps: geo map and color backgrounds (#16020)
* 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.
2024-05-13 08:12:59 -05:00
Peca Nesovanovic
2ff57286f0 [webui] sort ports in VLANs blade (#15960)
* [webui] vlans blade sort

sort ports in VLANs blade

before:
gi1/0/1,gi1/0/10,gi1/0/2,gi1/0/23,gi1/0/24,gi1/0/3,gi1/0/4,gi1/0/5,gi1/0/6,gi1/0/7,gi1/0/8,gi1/0/9,Po1,te1/0/2,te1/0/3,te1/0/4

after:
gi1/0/1,gi1/0/2,gi1/0/3,gi1/0/4,gi1/0/5,gi1/0/6,gi1/0/7,gi1/0/8,gi1/0/9,gi1/0/10,gi1/0/23,gi1/0/24,te1/0/2,te1/0/3,te1/0/4,Po1

Signed-off-by: Peca Nesovanovic <peca.nesovanovic@sattrakt.com>

* sort in controller

* sortby vlan,port

---------

Signed-off-by: Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
2024-05-03 22:37:34 -05:00
whitej46
2efd30fe39 Update WirelessSensor.php (#16016)
I was getting a SQL error that sensors_id was not found.  I changed the reference to sensor_id.
2024-05-03 22:35:07 -05:00
Tony Murray
5b20886732 Map Management: Show Groups (#16005)
* 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
2024-05-03 18:30:03 -05:00
Tony Murray
07655c24af Merge duplicate toBytes functions (#15994)
* 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
2024-04-30 14:40:08 +02:00
Tony Murray
1dc62454fc Show custom maps in device overview (#15985)
* Show custom maps in device overview

* remove extra line return

* Sort by name
2024-04-26 15:10:24 -05:00
Warren Ashcroft
1aa712e189 Fix graph_type variable (svg / png) (#15972) 2024-04-26 08:33:08 -05:00
Tony Murray
f78edf4d11 New Map Menu (#15969)
* Map Menu
New top level Map menu.
Ability to group custom maps.
Ajax Select controller improvements

* Fix style
2024-04-25 15:32:33 -05:00
Tony Murray
ac98abbafb On-demand map menu items (#15971)
Only show map menu items if they have data:
 * Network
 * Device Dependencies
 * Device Group Dependencies
2024-04-25 09:19:21 -05:00
Tony Murray
49f8269262 Improved Latency graph (#15940)
* Improved Latency graph
Store loss+jitter info in rrd instead of database
New graph icmp_perf (legacy ping_perf still valid referencing part of the newer data)
Delete device_perf table

* Change loss to an area so it is more visible

* Style fixes

* Cleanups from phpstan & tests

* exit_code fix

* Remove alert usage of device_perf

* Don't use magic __get

* Add test for bulkPing
Add host to previous tests

* style fixes

* Fix issue fping error responses
2024-04-18 09:57:01 -05:00
voileux
8d99014948 add type property to Device class (#15930) 2024-04-10 15:40:43 +02:00
eskyuu
3463d85053 When a timezone is manually selected, the timezone needs to be explicity set in the session otherwise the setting changes to a blank timezone (#15890) 2024-03-11 14:55:34 -05:00
Walkablenormal
c855d6c2fe Support for InfluxDB V2 API (#15861)
* Addition of influxdb-client-php to Composer.

* Addtion of InfluxDBv2 support.

* Addition of front-end options.

* Addition of documentation.

* Addition of the acknowledgement of the PHP library used.

* Fixed a unneeded bracket.

* Addition of a basic datastore test.

* StyleCI fixes.

* StyleCI fixes.

* StyleCI fixes.

* Fixed exception class.

* Revert accidental change.

* Fix to composer lock to not update all packages.

* Fix to composer lock to not update all packages, but still include the new Influx lib.

* Another attempt at getting Composer to behave the way I think it should work.

* Fixed merge-conflict in Composer due to #15869.

* Update composer.json

* Update composer.lock

* Update composer.json

* Update composer.lock

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2024-03-07 12:26:21 -06:00
Peca Nesovanovic
bfdc2c472f Rewrite ipv4 address discovery to Eloquent (#15830)
* rewrite ipv4 discovery to Eloquent

* style ci
2024-02-21 12:10:00 -06:00
Nicolas
b8095d6811 Don't escape leaflet tile url in location edit map (#15695)
* Don't escape leaflet tile url

* encode config as json and get config value in controller

* fixed array style
2024-02-21 12:09:04 -06:00
Jellyfrog
fed0a7b3d6 Revert "Fix PortsFdb > Ipv4Mac relationship (#15822)" (#15827)
This reverts commit 8d7c1765b2.
2024-02-14 14:06:41 +01:00
Jellyfrog
8d7c1765b2 Fix PortsFdb > Ipv4Mac relationship (#15822) 2024-02-14 06:47:29 -06:00
Ville Hukkamäki
41ddfadad0 'check' field is mandatory; show error message if it is empty. (#15685) 2024-02-13 14:10:08 -06:00
eskyuu
cb09ae0d54 Additional custom map features (#15806)
* Added options on edges for a label and to show graphs as bps as well as percentages

I think that vis.js needs to be updated to allow both bps and percentages at the same time.

* Add database migration

* Try to avoid putting multiple mid points in the same position

* Added a URL parameter for screenshot mode, where node labels are blanked out
Also fixed up the node labels in the editor

* Added legend to the editor as well as database options for reversing arrows and adjusting the edge separation

All features have been implemented in the editor, but need to be implemented in the viewer

* Fix missing defaults on the edit map list page
Added arrow reverse code to the viewer
Added legend code to the viewer
Added code to the editor to correclty handle moving the legend

* Formatting fixes and DB schema update

* Remove view from database schema
2024-02-07 11:42:35 -06:00
eskyuu
81bf68ba88 Make all image URLs absolute and fix path for viewer (#15788) 2024-01-31 22:09:44 -06:00
SourceDoctor
11246ca8e1 option to ignore device status (#15697)
* option to ignore device status

* .

* .

* schema update
2024-01-31 13:18:34 -06:00
eskyuu
30953c386f Add functionality for custom maps (weathermaps) (#15633)
* Initial commit with editor.

* Added custom map models and database migrations.
Modified the controller and view to support saving the custom map settings to the database

* Added menu items and sorted out access permissions for maps and nodes

* Cleaned up some of the conditions in the javascript section of the blade

* Started work on the map data save

* Save of map nodes and edges is complete

* Got the map to load data on page load and added the delete functionality

* Fixed a typo and made link colour black if intertface is down

* Various usability fix-ups

* Show the save button on node and edge delete

* Fixed up access for users without global read

* Increase typeahead search size and standardised the way modals are triggered.

* Update data fetch to copy values into array so I can add more fields

* Convert blank array check to use count()

* Formatting changes

* More formatting fixes

* Formatting again

* DB schema update

* Revert previous commit

* Pass device id to pages

* Remove bad characters from javascript

* Re-add the - character in search results

* Update to avoid background colour being set to the current colour for offline devices

* Fixed a bug in speed detection when no suffix is given

* Fixed up the speed colour calculation and added comments

* Update default edge font size to 12

* Reduce arrow size

* Formatting fix

* Update the custom map controller to handle null interface speeds

* Alter JSON columns to be longtext instead

* Only refresh map data on successful save

* Update labels on default settings to make it clear that they are not saved

* Added timestamps to all custom map tables
Use HasFactory instead of static definitions for custom map tables
convert JSON DB fields to longtext and updated PHP to do the appropriate JSON decoding as a result

* Added missing vis.js images for the editor

* Split the custom map blade into different pages

* formatting fixes

* Initial commit with editor.

* Added custom map models and database migrations.
Modified the controller and view to support saving the custom map settings to the database

* Added menu items and sorted out access permissions for maps and nodes

* Cleaned up some of the conditions in the javascript section of the blade

* Started work on the map data save

* Save of map nodes and edges is complete

* Got the map to load data on page load and added the delete functionality

* Various usability fix-ups

* Show the save button on node and edge delete

* Fixed up access for users without global read

* Increase typeahead search size and standardised the way modals are triggered.

* Convert blank array check to use count()

* Formatting changes

* More formatting fixes

* Formatting again

* DB schema update

* Revert previous commit

* Pass device id to pages

* Remove bad characters from javascript

* Re-add the - character in search results

* Update to avoid background colour being set to the current colour for offline devices

* Reduce arrow size

* Only refresh map data on successful save

* Update labels on default settings to make it clear that they are not saved

* Added timestamps to all custom map tables
Use HasFactory instead of static definitions for custom map tables
convert JSON DB fields to longtext and updated PHP to do the appropriate JSON decoding as a result

* Added missing vis.js images for the editor

* Split the custom map blade into different pages

* Updated the custom maps to use the select2 searches for ports and devices

* Fix port search clearing with select2

* Update DB schema to add timestamps

* Add the ability to set a node alignment value where nodes will align to a grid

* Add a checkbox to re-center edge lines

* Schema update for node alignment

* Removed unused route

* Fixups after rebase

* Remove DevicePortSearchController

* Rebase fixups

* Remove unneeded controller

* Formatting fixes

* Update all network map documentation

* Fixed typo in doc

* Change background imgae database migration

* Update migration for custom map background to fix schema error

* Place a try/catch around the BLOB->MEDIUMBLOB migration

* Formatting fix

* Moved custom map background image location and added some SVG images to test as image options

* Updated the editor to use a static set of device images

* Update the image logic in the editor and added to the viewer

* DB Schema update

* Formatting

* remove svg height/width attributes

* Added some more icon options for arrows

* Added database migration to allow nodes to link to another custom map
Fixed an error in the image migration

* Added the ability to link a node to another custom map

* Formatting fixes

* DB Schema update

* Remove images-custom directory

* Explicitly cast map ID to int

* Made the image selection list dynamic based on the contents of the custom map icons directory

* Formatting fix

* Double-clicking on a link will take you to the link

* Remove whitespace

* Add translations
fix an xss and hopefully not add any new ones
refactor node image to use translations with fallback

* split modals out into separate files
return width/height to avoid js scope issues

* Formatting fixes

* refactor edit select page into a "manage" page
Still left:
validation/custom request
Controller refactor
ui tweaks

* MapSettingsRequest

* Refactor more routes, policy, controller
I think this is the last refactor. Everything is now organized in a standard way.
Missing a method to check if a user has access to a map

* Fix booleans and style

* Add versioning to the background image to prevent browser caching

* Fixed the background image update by splitting it into a separate modal
Changed the delete button on the map editor screen to return to the map list

* Formatting fix

* Added double-click actions in editor to edit nodes and edges

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2024-01-31 08:56:59 -06:00
PipoCanaja
a7a6e67e87 NAC - Improve search in WebUI - Keep Historical data (#15629)
* search improvement for PortNac

* rename func

* style

* DB migration for timestamps

* style

* rules

* fix manually db_schema

* remove vlan only search for now

* add a bool column to ident historical nac entries

* add columns to the table

* queryByOui renamed everywhere

* age value instead of delete

* style

* style

* use Illuminate\Support\Facades\DB;

* tests fix

* module_tables.yaml

* dump model instead of tests/module_tables.yaml

* tests

* testVrp

* daily

* config

* display historical NAC entries in global view

* same for NAC device page

* nac tab on device/port view

* and display the tab link if necessary

* filter by port as well

* historical data in port tab

* formatters
2024-01-24 09:15:40 +01:00
Tony Murray
f09d1d9c47 Update PHP dependencies (#15737)
* Update PHP dependencies
  - Removing doctrine/annotations (2.0.1)
  - Upgrading barryvdh/laravel-debugbar (v3.8.1 => v3.9.2)
  - Locking carbonphp/carbon-doctrine-types (2.1.0)
  - Upgrading composer/ca-bundle (1.3.7 => 1.4.0)
  - Upgrading composer/composer (2.6.4 => 2.6.6)
  - Upgrading composer/pcre (3.1.0 => 3.1.1)
  - Upgrading composer/spdx-licenses (1.5.7 => 1.5.8)
  - Upgrading doctrine/dbal (3.6.5 => 3.7.2)
  - Upgrading doctrine/deprecations (v1.1.1 => 1.1.2)
  - Upgrading dragonmantank/cron-expression (v3.3.2 => v3.3.3)
  - Upgrading egulias/email-validator (4.0.1 => 4.0.2)
  - Upgrading ezyang/htmlpurifier (v4.16.0 => v4.17.0)
  - Upgrading fakerphp/faker (v1.23.0 => v1.23.1)
  - Upgrading filp/whoops (2.15.3 => 2.15.4)
  - Upgrading friendsofphp/php-cs-fixer (v3.22.0 => v3.46.0)
  - Upgrading fruitcake/php-cors (v1.2.0 => v1.3.0)
  - Upgrading graham-campbell/result-type (v1.1.1 => v1.1.2)
  - Upgrading guzzlehttp/guzzle (7.7.0 => 7.8.1)
  - Upgrading guzzlehttp/promises (2.0.0 => 2.0.2)
  - Upgrading guzzlehttp/psr7 (2.5.0 => 2.6.2)
  - Upgrading guzzlehttp/uri-template (v1.0.1 => v1.0.3)
  - Upgrading laravel/dusk (v7.9.0 => v7.12.1)
  - Upgrading laravel/framework (v10.16.1 => v10.40.0)
  - Locking laravel/prompts (v0.1.15)
  - Upgrading laravel/serializable-closure (v1.3.1 => v1.3.3)
  - Upgrading laravel/socialite (v5.8.0 => v5.11.0)
  - Upgrading laravel/tinker (v2.8.1 => v2.9.0)
  - Upgrading laravel/ui (v4.2.2 => v4.3.0)
  - Upgrading league/commonmark (2.4.0 => 2.4.1)
  - Upgrading league/flysystem (3.15.1 => 3.23.0)
  - Upgrading league/flysystem-local (3.15.0 => 3.23.0)
  - Upgrading league/mime-type-detection (1.11.0 => 1.14.0)
  - Upgrading maximebf/debugbar (v1.18.2 => v1.19.1)
  - Upgrading mews/purifier (3.4.0 => 3.4.1)
  - Upgrading mockery/mockery (1.6.4 => 1.6.7)
  - Upgrading monolog/monolog (3.4.0 => 3.5.0)
  - Upgrading nesbot/carbon (2.68.1 => 2.72.1)
  - Upgrading nette/schema (v1.2.3 => v1.2.5)
  - Upgrading nette/utils (v4.0.0 => v4.0.3)
  - Upgrading nikic/php-parser (v4.16.0 => v4.18.0)
  - Upgrading nunomaduro/collision (v7.1.0 => v7.10.0)
  - Upgrading nunomaduro/larastan (v2.6.3 => v2.8.1)
  - Upgrading pear/net_dns2 (v1.5.3 => v1.5.4)
  - Upgrading php-amqplib/php-amqplib (v3.5.4 => v3.6.0)
  - Upgrading php-flasher/flasher (v1.15.3 => v1.15.8)
  - Upgrading php-flasher/flasher-laravel (v1.15.3 => v1.15.8)
  - Upgrading php-webdriver/webdriver (1.14.0 => 1.15.1)
  - Upgrading phpdocumentor/type-resolver (1.7.2 => 1.8.0)
  - Upgrading phpmailer/phpmailer (v6.8.0 => v6.9.1)
  - Upgrading phpmyadmin/sql-parser (5.8.0 => 5.8.2)
  - Upgrading phpoption/phpoption (1.9.1 => 1.9.2)
  - Upgrading phpseclib/phpseclib (3.0.34 => 3.0.35)
  - Upgrading phpstan/phpdoc-parser (1.23.0 => 1.25.0)
  - Upgrading phpstan/phpstan (1.10.26 => 1.10.55)
  - Upgrading phpstan/phpstan-deprecation-rules (1.1.3 => 1.1.4)
  - Upgrading phpstan/phpstan-mockery (1.1.1 => 1.1.2)
  - Upgrading phpunit/php-code-coverage (9.2.27 => 9.2.30)
  - Upgrading phpunit/phpunit (9.6.10 => 9.6.15)
  - Upgrading predis/predis (v2.2.0 => v2.2.2)
  - Locking psr/clock (1.0.0)
  - Upgrading psr/http-client (1.0.2 => 1.0.3)
  - Upgrading psy/psysh (v0.11.19 => v0.12.0)
  - Upgrading ramsey/uuid (4.7.4 => 4.7.5)
  - Upgrading react/promise (v3.0.0 => v3.1.0)
  - Upgrading sebastian/complexity (2.0.2 => 2.0.3)
  - Upgrading sebastian/global-state (5.0.5 => 5.0.6)
  - Upgrading sebastian/lines-of-code (1.0.3 => 1.0.4)
  - Upgrading seld/jsonlint (1.10.0 => 1.10.1)
  - Upgrading socialiteproviders/manager (v4.3.0 => v4.4.0)
  - Upgrading spatie/flare-client-php (1.4.1 => 1.4.3)
  - Upgrading spatie/ignition (1.9.0 => 1.12.0)
  - Upgrading spatie/laravel-ignition (2.2.0 => 2.4.1)
  - Upgrading symfony/console (v6.3.4 => v6.4.2)
  - Upgrading symfony/css-selector (v6.3.0 => v6.4.0)
  - Upgrading symfony/deprecation-contracts (v3.3.0 => v3.4.0)
  - Upgrading symfony/error-handler (v6.3.0 => v6.4.0)
  - Upgrading symfony/event-dispatcher (v6.3.0 => v6.4.2)
  - Upgrading symfony/event-dispatcher-contracts (v3.3.0 => v3.4.0)
  - Upgrading symfony/filesystem (v6.3.1 => v6.4.0)
  - Upgrading symfony/finder (v6.3.3 => v6.4.0)
  - Upgrading symfony/http-foundation (v6.3.1 => v6.4.2)
  - Upgrading symfony/http-kernel (v6.3.1 => v6.4.2)
  - Upgrading symfony/mailer (v6.3.0 => v6.4.2)
  - Upgrading symfony/mime (v6.3.0 => v6.4.0)
  - Upgrading symfony/options-resolver (v6.3.0 => v6.4.0)
  - Upgrading symfony/polyfill-intl-idn (v1.27.0 => v1.28.0)
  - Upgrading symfony/polyfill-php72 (v1.27.0 => v1.28.0)
  - Upgrading symfony/polyfill-php83 (v1.27.0 => v1.28.0)
  - Upgrading symfony/polyfill-uuid (v1.27.0 => v1.28.0)
  - Upgrading symfony/process (v6.3.4 => v6.4.2)
  - Upgrading symfony/routing (v6.3.1 => v6.4.2)
  - Upgrading symfony/service-contracts (v3.3.0 => v3.4.1)
  - Upgrading symfony/stopwatch (v6.3.0 => v6.4.0)
  - Upgrading symfony/string (v6.3.2 => v6.4.2)
  - Upgrading symfony/translation (v6.3.0 => v6.4.2)
  - Upgrading symfony/translation-contracts (v3.3.0 => v3.4.1)
  - Upgrading symfony/uid (v6.3.0 => v6.4.0)
  - Upgrading symfony/var-dumper (v6.3.1 => v6.4.2)
  - Upgrading symfony/yaml (v6.3.0 => v6.4.0)
  - Upgrading tecnickcom/tcpdf (6.6.2 => 6.6.5)
  - Upgrading theseer/tokenizer (1.2.1 => 1.2.2)
  - Upgrading tightenco/ziggy (v1.6.0 => v1.8.1)
  - Upgrading tijsverkoyen/css-to-inline-styles (2.2.6 => v2.2.7)
  - Upgrading vlucas/phpdotenv (v5.5.0 => v5.6.0)
  - Upgrading web-token/jwt-core (3.2.7 => 3.2.9)
  - Upgrading web-token/jwt-key-mgmt (3.2.7 => 3.2.9)
  - Upgrading web-token/jwt-signature (3.2.7 => 3.2.9)
  - Upgrading web-token/jwt-signature-algorithm-ecdsa (3.2.7 => 3.2.9)
  - Upgrading web-token/jwt-util-ecc (3.2.7 => 3.2.9)

* update baseline

* remove unneeded annotation
2024-01-16 18:04:40 +01:00
Tony Murray
ca891b477e Fix XSS in default example plugin (#15711)
* Fix XSS in default example plugin
on* html fields are hard to escape properly, avoid putting user input there

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-08 10:08:41 -06:00
Jellyfrog
071ca9bc2a Apply fixes from StyleCI (#15698)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-04 22:39:12 -06:00
PipoCanaja
01da313228 allow empty searchby as well (#15626) 2023-12-17 20:13:58 -06:00
Tony Murray
c79d8665d8 Link Model (#15611)
* Link Model
and relationships

* Some uses of the new model
2023-12-15 10:13:10 -06:00
Mitt
3a5a64d5c1 fix: device format missing display field (#15623) 2023-12-09 14:24:01 +01:00
Andy Norwood
371a8be7ed webui - Fix vendor search in FDB searchby rules function (#15619) 2023-12-05 18:38:35 +01:00
Peter Childs
90927be973 Add support for Okta Group claims to set Roles (#15592)
* Add support for Okta Group claims to set Roles

* styleci changes

* make Stan happy
2023-11-27 20:38:41 -06:00
Tony Murray
faf66035ea Fix a few XSS vulnerabilities in device group popups (#15581)
I can't tell if the flasher ones are vulnerable, as flasher is still broken.
2023-11-15 08:21:06 -06:00
Tony Murray
42ead493fb Only set user roles if they are defined (#15577)
fixes
https://community.librenms.org/t/admin-permission-removed-when-changing-password-via-my-settings/22796
2023-11-14 21:21:15 +00:00
Tony Murray
7c006e9625 Disable GET login by default (#15558)
* Disable GET login by default
GET login allows users to put username and password in the url, this is helpful for displays where you cannot login interactively.
Unfortunately, the plaintext password will be in the access logs.
GET login also allows brute force attacks against your install.

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-11-07 16:25:28 -06:00
Tony Murray
4be98c7fe2 Fix Down/Up time error if device is unpolled (#15545) 2023-11-04 12:09:26 -05:00
Tony Murray
4622742629 Misc device column cleanups (#15518)
* Misc device column cleanups
Update last_ping on poll

* Revert inserted change for now
2023-11-02 01:51:52 -05:00
Wheel
f0bbab2419 Minor fix and tweak for graylog integration (#15455)
* Minor fix and tweak for graylog integration

* More flexible in other use cases

* fix again?
2023-11-01 22:35:44 -05:00
Tony Murray
183f9559f4 New command: lnms report:devices (#15539)
* New report:devices command
Print out a list of devices with user specified fields, optionally in csv format

* Polish

* Apply fixes from StyleCI

* Use spaces instead of tab for none type

* Fix method call

* other commands use whereDeviceSpec

* Apply fixes from StyleCI

* update command help and back to tab for separator

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-11-01 13:52:21 -05:00
Tony Murray
ef12cef6aa Respect web_mouseover setting in popup component (#15530)
* Respect web_mouseover setting in popup component
fixes #15496

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-31 10:12:17 -05:00
Félix Bouynot
7a6ef2491e Smokeping menu and title use device displayname (#15387)
* Menu and title use displayname

* Fix empty strings

* Fix array creation

* Use groupby instead of loop

* Change one forgotten var

* Revert to working simple changes

* Change test data to include displayname

* Fix bad copy paste in test data
2023-10-31 08:38:51 -05:00
Dominik Riva
6134d9c153 Prefetch devices in group to avoid cost of subquery (#15511)
* prefetch devices in group to avoid cost of subquery

As proposed in https://community.librenms.org/t/librenms-getting-slow-and-eventlog-widget-gets-canceled-or-504/22270/4?u=slalomsk8er

* remove unnecessary implode & explode

* replace whereIn with whereIntegerInRaw

This is needed as whereIn has a default limit of 1000.
2023-10-31 08:34:42 -05:00
Neil Lathwood
840cda00ff Fix Bill using the wrong field for join (#15524) 2023-10-30 13:50:57 -05:00
Tony Murray
6bc8a504bb Plugin update (breaking) (#15498)
* Plugin update (breaking)
A couple breaking changes regarding property types and method arguments.
Add a setting to allow plugin errors to be shown instead of automatically disabling the plugin.
All default hooks now use Dependency Injection to make it easy to get access to whatever you need (such as settings)
Add a ton of comments and examples in the PHP code.
Expand a bit on the documentation, it could still use more help
Fix a bug in the settings and page view where the included blade file was output before the page headers, etc

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-29 22:45:23 -05:00
Tony Murray
f5b21047a1 Print stack trace in error dumps (#15514) 2023-10-28 23:34:56 +02:00
Tony Murray
8f91fb3877 Fix polling down retry (and other items) (#15483)
* Only update last_polled if polled
Because availability now runs always, we need to check if we ran any other modules successfully, if so, we can update last_polled

* Tally results and act accordingly

* Apply fixes from StyleCI

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-19 06:55:41 -05:00
Tony Murray
b263772d23 Fix Device ip address mutator (#15480)
was returning false instead of null, causing extra updates and eventlogs.
2023-10-18 13:14:02 -05:00
Tony Murray
8de08774d6 Fix FDB table ip addresses missing (#15481)
* Fix FDB table ip addresses missing

* comma space

---------

Co-authored-by: Justin Lentz <monkeybrains7@gmail.com>
2023-10-18 13:13:41 -05:00