Commit Graph

325 Commits

Author SHA1 Message Date
Neil Lathwood
c4ca7acc4d Improve reset to default button on settings page (#16436) 2024-09-25 23:17:42 -05:00
Tony Murray
d2fb66d3d5 Added global VLAN ports page (#16415)
* Global VLAN ports page

* Show a list of devices too

* Fix a little theme color issues

* oops

* Just put css in the theme

* Apply fixes from StyleCI

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
Co-authored-by: Neil Lathwood <gh+n@laf.io>
2024-09-25 16:14:13 +01:00
Gilles Depeyrot
e10443864d Fix commit 'Update styles.css (#16138)' which disaligns Leaflet Awesome marker icons (#16321) 2024-08-27 16:58:56 -05:00
Tony Murray
b41d1b7ffb Fix Port Channels take 2 (#16246)
* Resubmit of #16227

* Add missing new files
2024-07-26 08:45:34 -05:00
Jellyfrog
e45dd59f77 Revert "Fix Port Channel (#16227)" (#16245)
This reverts commit 0d201c44c9.
2024-07-26 15:26:04 +02:00
Tony Murray
0d201c44c9 Fix Port Channel (#16227)
* Fix expandable sizing

* Temp fix: port_id_{low,high} is actually ifIndex

* new PortsStack discovery module, store actual port_ids

* Show 4 rows of ports by default

* Add test data

* Fix up the single port view too

* Apply fixes from StyleCI

* Update db_schema.yaml

* Update base migration because sqlite cannot add primary keys

* Fix phpstan failures

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
2024-07-25 23:39:36 -05:00
Jeff Engleman
8866ab3119 Add link on alert-rules page to display active alerts for rule (#16232)
* Add link on alert-rules page to display active alerts for rule

* replace ? with / per convention

* make the alert icon clickable too

* Lower the brightness of the warning rows
2024-07-25 21:43:44 -05:00
Tony Murray
cf7b025fb1 Custom Maps configurable new map defaults (#16212) 2024-07-17 16:05:44 -05:00
Slashdoom
56f36f094d omit dark media left (#16152) 2024-06-24 19:41:41 -05:00
Andy Norwood
6f030b7082 Update styles.css (#16138)
Left align text for dashboard widgets
2024-06-18 07:49:54 -05:00
Tony Murray
075ba4c932 Ports UI update (#16115)
* WIP Device Ports porting to Laravel

* WIP port links

* Port Links WIP

* Port Links

* in_array -> isset

* Add request to DeviceTab data

* Add initial Pagination

* Missing select component

* Collapsed and expandable port neighbors
New expandable component

* Port sorting

* Fix port transfer

* Use menu entries to filter ports

* Add translatable strings

* style fixes and cleanup

* update css

* graph views and tidy controller
basic port link view

* cleanup

* port row blade to reuse in legacy port view

* Legacy tab url handling
work properly in subdirectory
remove includes from sub tab directory to prevent oddity

* fallback to detail list when the view doesn't exist

* Use named variable to simplify

* Fix issue from file that was a symlink

* Submenu handle sub items and query string urls

* extract pageLinks to improve readability

* fix typo

* Apply fixes from StyleCI

* phpstan was not happy using the relationship HasMany query

* Don't allow *bps etc to be on a second line

* Improve table on small screens

* Fix sort

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
2024-06-16 11:29:06 -05:00
Tony Murray
fa16c025ba Fix popup toast messages (Remove Flasher) (#16090)
* Remove flasher
Just use a bit of custom code to interface with toastr js
This is able to retain our custom theme and work properly

* Fix style issues

* Missed reference rename

* Remove test code :)

* Fix a missed rename

* Fix one more missed reference

* Fix typo
2024-06-05 08:07:42 -05:00
Gonza
b8e20bf615 Fix for issue #15841 && #15495 (#16083)
* Centering of <thead> in device summary table

I add the property "text-align: center;" to class ".gridster *"

* Adding lines in app.css

I add these two lines to the style sheet:

.select2-dropdown:is(.tw-dark *) {background-color: #2E3338;}

.select2-results__group:is(.tw-dark *) {border: 1px solid #1f2225;}
2024-06-02 11:18:52 -05:00
Tony Murray
f0966f4d23 Widget hot refresh & worldmap cleanup (#16053)
* 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
2024-05-22 21:23:39 -05:00
Tony Murray
7c4f04ab9d Manage Maps limit width (#16055) 2024-05-22 10:04:05 -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
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
43e6846cbc Custom Map: Show crosshairs when adding (#15978)
* Custom Map: Show crosshairs when adding
When adding a node or edge, give cursor feedback.
Updates js deps

* Missed package-lock.json
2024-04-25 15:36:16 -05: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
Tony Murray
6a32fcec2d Update javascript dependencies (#15651) 2023-12-15 11:42:09 -06:00
eskyuu
cc7e02cbcd Device links formatting changes (#15580)
Make the images inline so they appear side by side
Put newlines between the major device information sections (name, model/OS, location)
2023-11-16 08:54:29 -06:00
QWERin
1d361c9447 Fix Top menu search on mobile respo (#15439) 2023-10-13 22:27:52 -05:00
Tony Murray
efb763d8c5 Vertically center device icons (#15361) 2023-09-29 00:07:23 +02:00
Tony Murray
2cd207028a Implement RBAC (only built in roles) (#15212)
* Install bouncer

* Seeder and level migration

* Display and edit roles

* remove unused deluser page

* Update Radius and SSO to assign roles

* update AlertUtil direct level check to use roles instead

* rewrite ircbot auth handling

* Remove legacy auth getUserlist and getUserlevel methods, add getRoles
Set roles in LegacyUserProvider

* Small cleanups

* centralize role sync code
show roles on user preferences page

* VueSelect component WIP and a little docs

* WIP

* SelectControllers id and text fields.

* LibrenmsSelect component extracted from SettingSelectDynamic

* Handle multiple selections

* allow type coercion

* full width settings

* final style adjustments

* Final compiled assets update

* Style fixes

* Fix SSO tests

* Lint cleanups

* small style fix

* don't use json yet

* Update baseline for usptream package issues

* Change schema, not 100% sure it is correct
not sure why xor doesn't work
2023-08-28 00:13:40 -05:00
eggbeater98
510d5dc94b Update dark.css (#15155)
Change text for services to white for visibility.
2023-07-19 22:22:42 -05:00
eggbeater98
0eebe7a255 Update dark.css (#15141)
Fix device name and drop-down text color for availability.
2023-07-11 13:10:48 +03:00
Tony Murray
5c25cece48 Convert the inventory page to Laravel (#15004)
* Convert the inventory page to Laravel
Fix several XSS issues (hopefully no new ones snuck in)
Small improvement to the SelectController to allow filtering by filterFields()

* style fixes

* Fix lint issues

* Fix part device filter
2023-04-28 07:51:41 -05:00
electrocret
b993f38903 Fix Inventory table for Dark theme (#14377) 2022-09-21 23:35:24 +02:00
Tony Murray
ad8580d694 Cleanup and optimize the availability widget (#14329)
* Cleanup and optimize the availability widget
Default sort is display name
Sort applies to services too (services always last)
May need to refresh the page to get new css

* style

* We don't need request (lint fix)

* Wrong service field name
2022-09-09 18:22:58 +02:00
Peca Nesovanovic
a551a95404 [gui] enable permanent vertical scroll (#14102)
* [gui] permanent vertical scroll

* switch to styles.css
2022-07-27 11:18:25 -05:00
James
f6a7b73c55 Update dark.css (#13951) 2022-04-25 20:13:11 -05:00
Tony Murray
806e10ace1 Fix snmp.timeout setting via Web UI (#13937)
Add Float type for global settings
2022-04-23 08:35:24 -05:00
Tony Murray
0a84098211 Port Validation Page to Laravel (#13921)
* Revamp validate web page
 to load page then validate, instead of validate then load page

* style fixes

* lint cleanups

* fixes

* translations and a couple fixes

* style fixes

* move result serialization into the class.
2022-04-14 11:22:40 -05:00
Jellyfrog
af98992f9c Upgrade to font awesome 6 (#13760) 2022-02-10 20:33:42 +01:00
Jellyfrog
b9e55bc462 Upgrade to font awesome 5 (#13754)
* Upgrade to font awesome 5

* Update memory icon
2022-02-09 00:49:07 +01:00
Santiago Z
2e35844056 [WebUI] Show selected option of devices-graphs-select in Mono theme (#13752) 2022-02-06 23:13:27 +01:00
dfitton
722de2ebe5 Update dark.css to improve visibility (#13749)
Fixed certain colours to make them more readable against the dark background. Mainly the blue colour against the dark background I have changed to a lighter blue.
Some dark greys and blacks as well.
2022-02-04 15:35:51 +01:00
Jellyfrog
3a4efc6fa0 Update to tailwind 3 (#13695) 2022-01-26 19:10:56 -06:00
Jellyfrog
f4f297fd48 Update JS deps (#13694) 2022-01-23 19:45:44 +01:00
Tony Murray
edd645264c Regenerate app.js (#13613) 2021-12-10 22:28:20 -06:00
Tony Murray
d69674b36e Correct graph row component responsive layout for linked graphs (#13587)
* Correct graph row component responsive layout for linked graphs
Enable pass through height and legend.  Probably need more, but this is just for a start.
Switch Poller performance page

* revert accidental change

* Update Graph.php
2021-11-30 19:21:41 -06:00
Tony Murray
e7a26e8faf Tweak new notification appearance (#13477) 2021-11-05 22:20:00 -05:00
Tony Murray
5900edbf16 PHP-Flasher for toast messages (#13401)
* PHP-Flasher for toast messages
Allows customized template
removes dependency on unmaintained package using dev stability
no solution for javascript toasts yet

Use DI in places it makes sense

allow html in flashes

Use "template.librenms" as a default notification style

merge toast containers
toastr needs to be second because it will find the containr made by flasher, but the inverse is not true

upgrade php-flasher to add custom options and persistent notifications

Add dark theme

* update composer.lock
2021-10-29 09:13:56 -05:00
Tony Murray
65b385f0fe Workaround for dashboard widgets showing over popups. (#13257)
* Workaround for dashboard widgets showing over popups.
z-index is being set on the popup, and I verified it is applied, but for some reason the widget with a z-index of 2 still shows over top.
I don't think this has any side-affects, but I don't know for sure.
Could not find another work-around.  Gridster is dead, so unlikely we will update the js and override this fix.

* version file to make clients update
2021-09-30 20:13:21 -05:00
Tony Murray
66dddbaa66 SNMP Capabilities (#13289)
* SNMP Capabilities
Allow all available auth algorithms to be set in global settings
cleanup other usages

* fix style
2021-09-28 18:35:59 -05:00
Tony Murray
2687fc509e Improve tailwind dark theme colors (#13262)
* Improve tailwind dark theme colors
Import the dark theme colors into the Tailwind color palette
update components to use those new colors

* remove colors import, it isn't used right now
2021-09-23 15:38:41 +02:00
Martin
a357224465 Update to fix table row color and hover color (#13244)
The last update changed row color for all rows except the first instead of changing color for every 2nd row.
2021-09-15 17:43:36 +02:00
Tony Murray
c5b63bde86 New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197)
* working popover

* popup component

* cleanup

* finalize device-link component

* attributes WIP

* working graph component

* widgets WIP

* More dynamic configs

* Graph row component

* Build CSS so we can use a dark theme

* graph row set columns

* only one popup visible at a time.

* Just set graph row width statically

* responsive WIP

* rsponsive option for graph-row "working"

* remove @deviceLink and @portLink

* fix non-responsive graph row

* update js/css

* fix style

* bad type?

* types

* types

* types #3

* remove testing code

* full rebel, no closing tags for meta and link

* match previous formatting

* fix vlans display

* restore newline

* remove silly comment

* remove unused line

* style I guess
2021-09-10 08:07:08 -05:00
Facundo Caselles
8bb6eec732 Dark mode improvements (#13141)
* Changes to dark theme.
- Tables with white background now has dark background.
- Listbox in searchbar now has dark background.

* Minor change to internal css to modify all tables without 'table' class applied. (view screenshot)

* -Transparency on mini graphs on ports

* bootgrid-table td.no-results now has dark background

* Changes suggested by @Talkabout
2021-08-21 20:06:13 +02:00
Facundo Caselles
9723c44479 Improvements to dark theme (#13139)
- Tables with white background now has dark background.
- Listbox in searchbar now has dark background.
2021-08-15 09:27:14 +02:00