Commit Graph

48 Commits

Author SHA1 Message Date
Tony Murray
0b8b97bb68 Push Notifications (Mobile and PC) (#13277)
* 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>
2021-10-06 07:29:47 -05:00
Tony Murray
3d62be5003 Jquery upgrade (#12802)
* WIP js upgrades

* trying 3.0

* Event handler changes

* fix alert rule collection loading

* blur fix

* jQuery 3.5
homescreen no warnings

* actually 3.6 include js

* Update bootstrap to 3.4.1

* missed file

* Update and test install process

* cleanup

* attempt to version js files that were updated.
2021-05-11 08:08:06 -05:00
Tony Murray
500f50e867 JS fixes for IE (#12721)
* JS fixes for IE
just a couple that caused the issues with graph loading and widget settings not saving.

* remove polyfill

* Update ports.inc.php
2021-04-08 11:22:44 +02:00
Tony Murray
5ac05e9221 Fix new bill search input (#11524)
* Work around select2 in a modal

* Update select2
2020-05-01 21:49:36 -05:00
Tony Murray
e6423852ef Remove $_SESSION usage, except install (#10745)
* Remove $_SESSION usage, except install
Fixes issue with device debug capture
Removes secure_cookies setting, use the .env variable SESSION_SECURE_COOKIE instead.  Reminder secure cookies requires cookies are transported over https, if everything is already transported via https, the setting won't make a difference.

* Fix availability map controls
2019-10-26 00:29:12 +00:00
Tony Murray
699aa8a042 Consolidate configuration settings and implement dynamic webui settings (#9809)
* initial db/defaults dump

* numeric values

* Remove $config['time']

* Use config_definitions.json

* try setting definition as a complete array

* a little more

* fix format

* WIP converting dynamic setting pages

* rewriting the webui

* remove legacy and add translations

* finish email section

* improve navigation
update js a bit

* Import the remaining existing settings

* Update backend still some wip
migration

* fix config loading (db not overriding defaults)

* some cleanup

* more array collapsing

* update settings

* Settings search

* add purge settings to ui, order groups and sections

* collapse more arrays

* Auth definitions WIP

* remove needless slash escapes

* add warning to json

* moving settings from defaults.inc

* remove slow_statistics

* Move rrdtool settings to the poller section

* Use translations more consistently

* removing more settings from defaults.inc.php

* show setting name in tooltip

* allow help text to be shown on mobile

* disable settings that are set in config.php

* Implement undo and reset to default.

* Vue.js functional

* Vue.js WIP

* Implement tabs component

* accordion WIP

* lodash ver update

* two items

* Accordion somewhat working

* hash navigation

* Refine Accordion

* Fix up tab styling a bit

* Cleaner tab selected property
Hide html while loading

* spinner?

* Icon support
property for accordion to active

* WIP

* Tabs/Sections from ajax

* Setting Component skeletons

* Dynamic Component resolution

* Basic functionality

* toggle class

* Refactor components

* translate tabs and accordions

* simple array attempt

* improve readonly tooltip

* array styling

* array value editing

* organize snmp info

* Handle initial tab/section in url

* Use Laravel to parse tab/section, dump old

* Draggable array entries

* v-tooltip, for clickable (and touch) help tooltips
disable draggable

* Navigation WIP

* Navigation WIP

* groups computed

* filter settings

* fix event reference

* vue.js i18n initial

* missing description = just setting name

* en fallback

* tidy up the language support and js generation

* persist value to db

* fix issue with 0

* Delete settings from DB instead of setting them to default

* ldap-groups
fixup style

* Default dashboard selection

* fix array of options instead of object

* allow custom validation for settings

* translate options in SettingSelect

* SNMP v3 WIP

* fix setting arrays

* Split persist out of set

* Hook up events for SNMP v3 Auth
correct Config::persist behaviour with arrays

* dependent settings (primitive for now)
actually update the settings values in the LibrenmsSettings component

* more complex "when" behaviour

* remove un-needed seeder

* add poller_modules.cisco-qfp

* remove en.json (disable warning)

* don't set default for log_dir or log_file, otherwise it won't be processed correctly

* Fix module order
add some missing settings

* more config corrections

* correct graphs
correct loading values set to null (although it should have no difference)
remove project_name_version

* Add nfsen settings.  Docs are very confusing, so might have flubbed something
remove option for array definition of select option as numeric indexes messes it up

* Correct more upstream config differences

* Config cleanup after a bunch of merges.

* Fixes

* add version tags to js/css files
remove old js

* Print out full settings list read-only

* Add http_proxy setting
fix indents in config_definitions.json

* repeaters default is 0 (aka 20)

* cleanups

* rewrite the dynamic config docs

* add language docs

* Don't show snmp v3 auth add/remove if disabled by config.php
2019-10-16 21:22:05 +00:00
Tony Murray
e9ae08d5db Use Laravel url helpers to improve functionality without dns name (#10227)
* Use Laravel url helpers to improve functionality without dns name
Not exhaustive...

* Fix Url generated urls

* Bump js version
2019-05-20 11:47:34 -05:00
Tony Murray
590c488d74 Rewrite devices page backend (and a little frontend) (#9726)
* Implement devices table data output

* initial filter

* Add select2 filters
improve table header layout
improve init_select2

* bump versions to be safe

* add group filtering
fix location sorting

* allow filter value morphing

* add missing state filter

* remove the old devices endpoint
2019-01-25 15:31:33 -06:00
PipoCanaja
9d843650b7 Improve display for 802.1X NAC (#9706)
* improve graphical display for 802.1X NAC

* AuthZ col width

* function for humanize_duration

* function for humanize_duration

* Update legacy_index.php

* Update librenmsv1.blade.php
2019-01-22 17:10:54 -06:00
Tony Murray
2a765bfed7 Widget fixes 4 (#9583)
* Globe: fix issue with more than one widget

* Widgets/JS: prevent race conditions by storing all callbacks waiting for the same script.  After the script is loaded run all callbacks.

* Fix broken Mapquest maps
2018-12-21 09:00:53 -06:00
Tony Murray
74882e3950 Dashboard widget update (#9515)
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.
2018-12-16 21:18:17 +00:00
Neil Lathwood
dd695dde53 Fixed openstreetmap support in device not using custom tiles (#9536)
* Fixed openstreetmap support in device not using custom tiles

* Updated blade template for locations

* Removed console.log()
2018-12-16 08:56:29 -06:00
Tony Murray
4413d8c092 Mapquest layers for location editors (#9505) 2018-12-11 08:14:59 -06:00
Tony Murray
00cd32f725 Device management fall back to http if https isn't available.
Adds a slight delay on management clicking, may be blocked by popup blocker...
2018-12-05 13:52:07 -06:00
Tony Murray
095a4a024a Add bing layer to leaflet (#9497)
Also, polyfill for IE used by both bing and google maps
2018-11-30 14:36:52 -06:00
Tony Murray
957ecc2441 Locations UI and editing (#9480)
* Better handling of errors
Mapquest seems to return the center of the US on error.......

* Editable locations WIP

* Change to bootgrid ajax table WIP

* Graphs working, using handlebars
update js libs
add current location button

* remove sql query, change icon

* Add the map to the device view, only when gps is expanded.
Allow edit on device page, share js code

* fix chevron rotation, improve click area

* extra warning

* fix overview layout (remove containers)

* fix style

* fix html divs, change collapse ui a bit
move css, update css/js versions

* start zoomed out on new locations

* don't double load scripts, zoom to 17

* fix php-md errors, remove unused use statement

* improve non-admin experience

* Move locations page to Laravel
More functions in Url and Html util classes
reduce code duplication

* translation buttons too

* fix whitespace

* move formatters to the frontend

* small changes

* disable traffic for locations with no devices

* change down 0 to green from gray

* missing "

* Fix paginate all

* working fix for paginate all

* allow sort by counts

* fix down sort

* a little safety

* Don't call the function twice

* btn-xs
2018-11-29 19:23:40 -06:00
Tony Murray
f439eb4f1d Disable page refresh on health sensors pages, autorefresh most tables (#9386)
* Disable page refresh on health sensors pages
Refresh all bootgrid tables every 5 minutes

* Update legacy_index.php

* Update librenmsv1.blade.php
2018-11-08 22:29:20 +00:00
PipoCanaja
56aed0ffbe WebGUI Oxidized - Add author+message + refresh button (#9163)
* WebGUI Oxidized - Add author+message + refresh button

* WebGUI Oxidized - Add author+message + refresh button

* WebGUI oxidized - move refresh_oxidized_node to js/librenms.js

* WebGUI oxidized - Style upgrade for refresh button

* WebGUI oxidized - move refresh_oxidized_node to js/librenms.js

* Update showconfig.inc.php
2018-09-10 09:04:39 -05:00
Tony Murray
1ad7f3138b Add Laravel to LibreNMS (#8318)
* Add Laravel to LibreNMS.

* Try to set permissions during initial install and first composer update to Laravel.

* Fix composer.lock
Fix missing db config keys

* Start building v1 layout
Port ajax_setresolution, inject csrf into jquery ajax calls
Layout works, building menu
Partially done.

* Fix device group list
remove stupid count relationships

* Print messages for common boot errors.
Don't log to laravel.log file.
Log to error_log until booted, then librenms.log

* Fix up some issues with Config loading
Start of custom directives

* Custom blade directives: config, notconfig, admin

* Preflight checks
Only load config files once.

* Update the composer.lock for php 5.6

* Menu through routing

* Start of alert menu

* Better alert scopes

* reduce cruft in models

* Alerting menu more or less working :D

* Fix style

* Improved preflight

* Fix chicken-eggs!

* Remove examples

* Better alert_rule status queries
Debugbar

* fix app.env check

* User Menu

* Settings bar (dropped refresh)
Search JS

* Toastr messages

* Rename preflight

* Use hasAccess(User) on most models.
Add port counts

* Missed a Preflight -> Checks rename

* Fix some formatting

* Boot Eloquent outside of Laravel
Use Eloquent for Config and Plugins so we don't have to connect with dbFacile inside Laravel.
Move locate_binary() into Config class

* Config WIP

* Try to fix a lot of config loading issues.

* Improve menu for non-admins removing unneeded menus
url() for all in menu

* Only use eloquent if it exists

* Include APP_URL in initial .env settings

* Implement Legacy User Provider

* Helper class for using Eloquent outside of Laravel.
Allows access to DB style queries too and checking the connection status.

* Fix up tests

* Fix device groups query

* Checking Travis

* copy config.test.php earlier

* dbFacile check config before connecting
Don't use exception to check if eloquent is connected, it gets grabbed by the exception handler.
Ignore missing config.php error.

* Fix config load with database is not migrated yet.

* Remove Config::load() from early boot.

* Use laravel config settings to init db (this prefers .env settings)
Fix bgp vars not set in menu
add _ide_helper.php to .gitignore

* Restrict dependencies to versions that support php 5.6

* Update ConfigTest

* Fix a couple of installation issues

* Add unique NODE_ID to .env

* Correct handling of title image

* Fix database config not loading. Thanks @laf

* Don't prepend /

* add class_exists checks for development service providers

* Fix config value casting

* Don't use functions that may not exist

* Update dbFacile.php

* d_echo may not be defined when Config used called.

* Add SELinux configuration steps
More detailed permissions check.
Check all and give complete corrective commands in one step.

* Ignore node_modules directory

* Re-add accidetal removal
2018-05-09 08:05:17 -05:00
Neil Lathwood
9897b5fbd4 webui: Removed unused JS causing issues with typeahead (#8307)
* webui: Removed unused JS causing issues with typeahead

* updated reference url for typeahead
2018-03-09 18:11:24 +01:00
Zmegolaz
5c4b6877b0 Fixed form validation JS. (#8036) 2018-01-05 15:04:47 +00:00
Zmegolaz
d7b4a30acf webui: Added validation for Oxidized API URL config (#7978)
* Add http:// to oxidized URLs missing them.

* Fixed typo.

* Form validation instead of backend fix.

* Don't update setting on invalid pattern.
2018-01-05 08:58:42 +00:00
crcro
34e07a1d66 webui: Alerts table refresh (#7765)
* initial release

* changed layout, matching pr 7628

* style changes
usage of short hostname

* alerts page cleanup

* reduced css class, added js function

* initial release

* added min-height, also apply min-height via js if parrent is smaller

* remove status column
2017-12-24 19:55:24 +00:00
Bennett Blodinger
07574b27d8 Move to Font Awesome
Keeps the look more in line with the navigation bar icons.
In the future with Bootstrap 4, Glyphicons will not be included, so this
starts the transistions away.
2016-09-22 10:44:17 -04:00
Tony Murray
e0cc8dfb48 Disable refreshing on window resize when $no_refresh is set. 2016-09-20 10:16:22 -05:00
crcro
921d5b9ed5 webui: availability map update (#4300)
* a-map update 3

* pre-commit.php fixes

* moved group query inside if
2016-09-02 12:42:45 -05:00
crcro
e575271126 added linux os distro icon, fixed formatting 2016-08-13 03:20:55 +03:00
crcro
655363082c rewrite of availability-map 2016-08-12 22:51:29 +03:00
laf
6b7030c082 Added show/hide line numbers button to show config page 2016-02-11 23:19:56 +00:00
laf
eb689fe66e Rebased from upstream 2015-12-01 21:50:13 +00:00
Louis Bailleul
8d0976de51 Only resize graphs if browser resize width is less than 200px, refresh the page otherwise 2015-11-30 11:10:35 +00:00
Louis Bailleul
094f7d50da Replace the reload on browser resize by a graph width resize 2015-11-27 11:58:56 +00:00
Louis Bailleul
ef1c7a58e3 Fix infinite reload loop due to bad cherry pick
Fix code to respect coding standard
2015-11-26 17:41:41 +00:00
Louis Bailleul
4d6e194a52 Add reload on resize event to regenerate the graphs correctly 2015-11-26 17:35:16 +00:00
Louis Bailleul
ce8e79c63a Update the session variables for browser width and height when browser is resized 2015-11-26 17:26:27 +00:00
Louis Bailleul
12e37a20ee Fix syntax 2015-11-26 17:14:25 +00:00
Louis Bailleul
b1fd1b3137 Only update resolution if session variables don't exist
Tune print-graphrow.inc.php to avoid last graph going to a new line in certain cases
2015-11-26 17:13:29 +00:00
Louis Bailleul
4731e8621b Correct code to match code standards 2015-11-26 17:12:38 +00:00
Louis Bailleul
bafdeaf9ee Update the session variables for browser width and height when browser is resized 2015-11-26 17:10:34 +00:00
Louis Bailleul
fc9f7eade8 Store browser height and width in session using ajax call
Modify html/includes/print-graphrow.inc.php to make use of the new Session variable
2015-11-26 17:08:39 +00:00
Louis Bailleul
db37acbe83 Replace left and bottom arrow icons by plus and minus icons 2015-11-19 12:01:10 +00:00
Louis Bailleul
32f97ab424 Add hide/show feature for neighbors interfaces in the device ports page 2015-11-19 09:54:26 +00:00
laf
253b27d403 More updates to tune rrdfiles 2015-11-17 05:14:41 -08:00
laf
af8df3469c Added support for per device unix-agent port 2015-11-17 00:20:06 +00:00
laf
12cd422702 Updated devices Graphs links to use non-static time references 2015-10-26 19:49:30 +00:00
laf
e9deae1315 Centralised the date selector for graphs for re-use 2015-10-20 21:35:08 +00:00
laf
83ad9b36d2 Created generic function for dynamic config pages 2015-10-12 21:28:31 +00:00
laf
13e3ff04aa Moved some files around 2015-10-10 13:49:09 +00:00