* 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
* 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
* 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.
* Modified the date selector to use the session timezone
* Set the timezone in the datetime picker and make sure it is always passed a moment date object, then altered the submit javascript function to use the existing moment object instead of creating its own
* Update the poll log to display in the correct timezone
* Fix the poll log to make the search work and be timezone aware
* Fix the displayed time on the device overview event log
* Style fixes
* 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
* Added support for user timezones and user browser timezone byt default
* Formatting fixes
* Use the timezone for alert log display
also added validation for the timezone because it's being used in SQL.
* Formatting fixes
* Added return type
* Formatting"
* Update the latency graphs to use the user timezone
* Simplify the web routes config
* Update phpstan to ignore type error
* Fixed up the phpstan config
* Reverse phpstan change
* Re-apply phpstan override
* Remove the option to unset the session timezone
* Formatting fix
* Update outge and event logs to use session timezone
* Fix route for the timezone control
* Made the timezone more dynamic
* Fix a logic error that was stopping the timezone from being set automatically on login
* Prevent getPref from being called twice
* again prevent getPref double call
* getPref double call
* Fixed typo made during merge
* Fixed merge error in phpstan-baseline.neon
* Change spaces to tabs in phpstan-baseline.neon
* Update error count
---------
Co-authored-by: Tony Murray <murraytony@gmail.com>
* 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.
* Implement OAuth and SAML2 support via Socialite
* Add socialite docs
* fixes
* Additional information added
* wip
* 22.3.0 targeted version
* Allow mysql auth as long as there is a password saved
Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Global search: search device display
Add display field to search (also port_desc_descr, portName, and bgpPeerDescr)
Rewrite backend
update typeahead bundle
update devices and ports indexes
reduce some port field sizes so we can index them
* Style fixes
* remove nonsense
* 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
* Update manifest and add service worker
cleanup icons a bit
* Push notifications WIP
* navigate working
* cleanup
* acknowledge wired up
* Set VAPID keys on composer install
* Component to control notification permissions.
* Allow all user option to validate
* Enable on browser load if transport exists.
* Check for transport before showing user permissions
translations
* Documentation
* style fixes
* access via the attribute model
* fix alerting test
* update schema
* cleanup subscription on disable
* non-configurable db and table for webpush subscriptions (respect system connection)
* revert AlertTransport change
hopefully phpstan can figure it out
* phpstan fixes
* Support custom details display
* Match transport names to brand's preferred display
* less duplicate id errors
* Tests are done in Laravel code now so
remove legacy function usage... could be better, but ok
* Style fixes
* Style fixes 2
* Fix alert test
* Doc updates requires HTTPS and GMP
* unregister subscription when permission is set to denied
* cleanup after user deletion
* delete the right thing
* fix whitespace
* update install docs to include php-gmp
* suggest ext-gmp
* update javascript
* Update functions.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* 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
* Dynamic Select setting
embeds select2 and uses ajax to call to backend for options
poller-group included
* fix validation a bit
* fix typehint
* move minProperties into the select schema
* Change dashboard-select to select-dynamic
Love deleting code
* Change dashboard-select to select-dynamic
Love deleting code
wire up a few select2 options
* fix whitespace
* Not a model, just an object
* Suggestion from @SourceDoctor autocomplete values of select and select-dynamic
Got a little creative with InternalHttpRequest...
* Oxidized API cleanup
Import more settings to the UI
use lnms config:set
* validate os and type exist
* map settings WIP
* oops
* editing working. Needed to add new property to pass update state to child
* implement deleting and handle text overflow a little better.
* Update app/Models/Device.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Update app/Models/Device.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* revert change
* fix style
* add return
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Add a executable type to settings page
This allow us to validate the value is a valid executable
* Add a directory type to settings page
This allow us to validate the value is a valid directory
* fixes
* Poller settings WIP
* Poller settings WIP2
* working on SettingMultiple
* setting multiple working
* settings sent with all required info
* fix translation
* Fix keys
* fix groups setting
* Apply settings to service
fixes and validations for setting
* don't error when no poller_cluster entry exists
* hid tab when no poller cluster entries
* Authorization
* make prod
* daily maintenance toggle should be advanced
* Update schema def