Commit Graph

228 Commits

Author SHA1 Message Date
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
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
3e35ee0e7d Refactored and update Location Geocoding (#9359)
- Fix location so it is a regular database relation (this allows multiple devices to be accurately linked to one location and saves api calls)
- Parse coordinates from the location more consistently
- Add settings to webui
- ~~Used [PHP Geocoder](http://geocoder-php.org/), which has lots of backends and is well tested. (also includes reverse and geoip)~~
- Google Maps, Bing, Mapquest, and OpenStreetMap supported initially.
- Default to OpenStreetMap, which doesn't require a key.  They will liberally hand out bans if you exceed 1 query per second though.
- All other Geocoding APIs require an API key. (Google requires a credit card on file, but seems to be the most accurate)
- Update all (I think) sql queries to handle the new structure
- Remove final vestiges of override_sysLocation as a device attribute
- Update existing device groups and rules in DB
- Tested all APIs with good/bad location, no/bad/good key, and no connection.
- Cannot fix advanced queries that use location

This blocks #8868

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-11-28 22:49:18 +00:00
VirTechSystems
b8cf24c30e Allow 6 or 12 icons across on server stats widget (#9408)
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.

- [ ] 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-10-30 23:17:23 +00:00
cchance27
dd39a1ab03 Allow zoom to be decimal and switch zoomSnap to 0.1 for World map (#9259)
Allow 1 decimal place for initial zoom and lower zoom snap interval to improve initial zoom in widgets.

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-10-06 23:08:11 +01:00
Tony Murray
6242f941f6 Update Eventlog WebUI/backend to use ajax (#9252)
* WIP Eventlog table

* Initial Eventlog rework

* fromdevice is not a request parameter

* updates

* remove unneeded field

* Cleanups
2018-09-24 08:07:00 +01:00
Tony Murray
21ca8bf0b0 Update syslog display and backend (#9228)
* Update syslog display backend
select boxes now dynamically load instead of loading all on pageload
select and table ajax backends completely redone with Laravel (just syslog for now)
duplicate url creation to Url utility class for now (uses Device model instead of array)
build short hostname functionality into Device->displayName() helper

* Fix whitespace

* Some tidying up. Split out displayName() and shortDisplayName()

* Enable auto-sizing.
Fix small error in Url

* Eager load device
Use bootstrap theme for select2
2018-09-20 21:33:03 +01:00
Neil Lathwood
86d862fb25 Added support for allowing alerts to un-ack (#9136)
* Add support for allowing alerts to un-ack

* Updated db_schema.yaml

* Update and rename 263.sql to 265.sql

* Fix up ui a bit.

* Renamed sql file
2018-09-19 23:38:01 +01:00
TheGreatDoc
ba8497d484 Added Transit+Peering to Port Aggregator in the graph widget (#9234) 2018-09-19 15:50:40 -05:00
Tony Murray
32a7c50189 Use Laravel authentication (#8702)
* Use Laravel for authentication
Support legacy auth methods
Always create DB entry for users (segregate by auth method)

Port api auth to Laravel

restrict poller errors to devices the user has access to

Run checks on every page load.  But set a 5 minute (configurable) timer.
Only run some checks if the user is an admin

Move toastr down a few pixels so it isn't as annoying.

Fix menu not loaded on laravel pages when twofactor is enabled for the system, but disabled for the user.
Add two missing menu entries in the laravel menu

Rewrite 2FA code
Simplify some and verify code before applying

Get http-auth working
Handle legacy $_SESSION differently.  Allows Auth::once(), etc to work.

* Fix tests and mysqli extension check

* remove duplicate Toastr messages

* Fix new items

* Rename 266.sql to 267.sql
2018-09-11 07:51:35 -05:00
Tony Murray
e9ff8c48b6 Fixed IN db queries (#9077)
Most were fine as they hardcoded the in into the query.
Change them all to use PDO properly.
Did not fix IRCBot, they are are all hardcoded.

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`
2018-08-26 13:42:21 +01:00
Neil Lathwood
d65ea76355 Fix top interfaces for non-admin users (#9038) 2018-08-19 20:21:03 -05:00
Neil Lathwood
65e07d1951 Fixed widgets from updated dbFacile changes (#9033)
* Fixed widgets from updated dbFacile changes

* Updated top interfaces
2018-08-18 17:07:42 +01:00
dsgagi
d9bbc60041 Added support for sorting alerts by severity on the Alerts widget (#8895)
Added feature to sort alerts by severity on the Alerts widget.


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`
2018-07-12 21:48:18 +01:00
Roger
e22642c73f feature: Added feature to filter delayed alerts on widget (#8704)
* Added feature to filter delayed alerts on widget

* fix build job error

* change filter name to fired
2018-05-15 20:54:02 +01:00
Neil Lathwood
80ef4d4324 Fixed clicking notes on device alerts page (#8629) 2018-04-27 11:58:07 -05:00
Neil Lathwood
1eee6e8195 alert: Added ability to make notes for acking alerts + record who did so (#8433)
* alert: Added ability to make notes for acking alerts + record who did so

* Updated schema

* moved sql file

* Updated from comments in PR

* warning changed to blue

* reset notes + keep notes on ack
2018-04-26 00:00:56 -05:00
Tony Murray
7250376104 refactor: Don't access $_SESSION directly for Auth (#8513)
* Don't access $_SESSION directly for Auth

* fix style

* add property annotations
2018-04-07 21:55:28 +01:00
Wheel
b1ec1d14f0 webui: Added override default device grouping radius (#8485)
* Override default device grouping radius

Added an option to override the default group_radius 80. Usefull in fullscreenmap

* Update worldmap.inc.php

* Update worldmap.inc.php
2018-03-29 12:05:38 +01:00
BlackDex
5af51fa46f webui: Added auto width and height dimensions parameters to generic image dashboard widget (#8314)
Added the ability to substituted special parameters for width and height of the Generic-image widget to be added to an Image URL.
2018-03-01 22:12:46 +00:00
Rémy Jacquin
8d4fca33b1 webui: Devices in maintenance show as blue on worldmap widget (#8207)
* Added new worldmap widget setting:
The user can chose how down devices under maintenance are shown
Signed-off-by: Rémy Jacquin <remy@remyj.fr>

* Added documentation related to this feature

Signed-off-by: Rémy Jacquin <remy@remyj.fr>

* Change icon to light blue and remove option
Reverted "Added new worldmap widget setting"
Signed-off-by: Rémy Jacquin <remy@remyj.fr>
2018-02-18 20:43:24 +00:00
Neil Lathwood
31fe743273 fix: Fixed the HTML Purifier config so allowed values work (#8239) 2018-02-10 21:27:04 -06:00
Maurice den Braber
1cdb37d416 Update notes.inc.php (#8219)
Allow from iframe border removal by allowing frameborder attribute.
2018-02-08 08:38:59 -06:00
Neil Lathwood
feec7da16c fix: Fixed bad queries in top device widget to stop listing all devices (#8105) 2018-01-17 16:38:48 +00:00
crcro
7e03905e63 webui: Small graylog cleanup (#8057) 2018-01-09 20:47:33 +00:00
crcro
d85a228d5b webui: Small eventlog cleanup (#8056)
* include status badge in first datetime col

* code formatting
2018-01-09 20:36:28 +00:00
crcro
520fc4a268 webui: Graylog table refresh (#7832)
* initial release

* style fixes
2017-12-24 19:59:16 +00:00
crcro
71711326fb webui: Syslog table refresh (#7796)
* initial changes

* final changes

* added missing copyright, removed commented old code
2017-12-24 19:57:54 +00:00
crcro
9e63d3200d webui: Eventlog table refresh (#7793)
* initial release

* added copyright info

* set username to System if empty

* eventlog page cleanup

* added copyright
2017-12-24 19:56:24 +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
Aldemir Akpinar
0628e0bfd1 Fix placement of multiple server stats (#7941) 2017-12-22 23:36:49 +00:00
Aldemir Akpinar
5d7d99a748 webui: Added Single server details widget (#7923)
* webui: Single Server Details widget

* Labels should fit for windows disks on smaller screens

* Fix for travis ci errors

* Moved js includes to the widget itself

* updated queries for non-admin users + moved schema file
2017-12-21 22:17:02 +00:00
Aldemir Akpinar
79c42743a6 webui: Added diskusage to top devices widget (#7903)
* webui: added diskusage to top devices widget

* Update top-devices.inc.php
2017-12-13 22:37:36 +00:00
crcro
0cb3470be0 webui: Timezone support for graylog (#7799)
* added timezone support for graylog

* using default user timezone if none is configured

* newline fix, added copyrights

* copyright correction

* copyright correction

* copyright fix
2017-12-04 07:56:13 +00:00
Zmegolaz
03820d3bd8 Fix: availability-map showed ping devices as warning. (#7592) 2017-10-31 08:15:23 -05:00
Florian Beer
ab1658e90a webui: Show only authorized services in availability map (#7498)
* Show only authorized services in availability map

Up until now, normal users could see all configured services in availability map. This PR checks for permissions first, before displaying the items. I haven't looked at the dashboard widget yet, maybe it needs similar changes.

* Update to use userlevel helper function
2017-10-19 07:49:07 +01:00
Ryan Medlyn
62867a6661 webui: Allow user to display ok/warning/critical alerts only (#7484)
* Allow user to display ok/warning/critical alerts only

* Update alerts.inc.php

* Update alerts.inc.php
2017-10-15 19:50:55 +01:00
Neil Lathwood
4f4719b66a webui: Updated all tables to have the same set number of items showing (#6798) 2017-06-08 22:10:30 -05:00
Neil Lathwood
3fbdc749e0 webui: Allow iframe in notes widget (#6773)
* webui: Allow iframe in notes widget

* added height+width to notes widget
2017-06-03 17:14:16 +01:00
Neil Lathwood
34c35f3627 webui: Updated remaining display options where we do not show sysName if hostname is IP (#6585)
* webui: Updated remaining display options where we do not show sysName if hostname is IP

* renamed function + simplified
2017-05-05 06:25:58 -05:00
Neil Lathwood
1bbbaff58b refactor: Moved ifLabel -> cleanPort and updated the usage (#6288)
* refactor: Moved ifLabel -> cleanPort and updated the usage

* added list of tags allowed

* few updates as per comments from @murrant

* Added simple unit tests

* double display for javascript popover

* Remove ifNameDescr() function
Fix realtime port page

* remove accidental temp code

* Remove double display calls in ajax tables
2017-04-04 08:08:23 +01:00
Ryan Medlyn
3712ca91fe Localizes alerts_grid variable to fix errors with multiple alerts tables (#6285) 2017-03-28 16:00:09 +01:00
towster
7bb9d58a07 feature: Store the username in eventlog for any entries created through the Webui (#6032)
* Added identification of user who removed a device to eventlog entry

* Fixed spaces

* updated to store username for all eventlog where applicable

* moved sql file

* updated
2017-03-11 07:03:52 -06:00
philmd
ad6dafd3a5 webui: display sysnames/hostnames instead of ip addresses #4155
When a network is mostly assigned using RFC 1918, DNS resolution is not useful
and devices are displayed by IP address.

When $config['force_ip_to_sysname'] is enabled, use ip_to_sysname() to display
the device hostname or SNMP sysName if present instead of the device IP address.

UI modified by this patch:
- Hover in Dashboard Availability Map (/overview)
- Name in Availability Map (/availability-map/)
- Title of device page (/device/device=...)

* I agree to the conditions of the Contributor Agreement contained in
doc/General/Contributing.md.

GitHub-issue: #4155
Suggested-by: Andres Rahn <andreser@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
2017-03-03 19:48:53 +00:00
towster
d06aaaa222 fix: Modify worldmap tooltip and popup to use ip_to_sysname (#5914)
* Update discovery-protocols.inc.php

Allow invalid hostnames if discovery by IP is true

* Update AUTHORS.md

signing

* Update AUTHORS.md

signing

* CDP discovery by IP modification

CDP would not discover devices that had invalid DNS value for cdpCacheDeviceId - modified to accept 
Also exclude adding devices whose hostname matches the IP

* Update AUTHORS.md

* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* Made tooltip and popup on worldmap show sysName when ip_to_sysname is config'd

* fixed style
2017-02-16 08:18:40 +00:00
Richard Mayhew
5bfd23e7eb webui: New eventlog severity classification (#5830)
* New event log severity model

* Revert "New event log severity model"

This reverts commit 0783527af8.

* New event log severity model

* Fixed spaces vs tabs

* Learning the format requirements

* Learning the format requirements

* Moved the colours in to the stylesheet

* change SQL file to stop conflicting

* refactor log_event so severity isn't last, but reference is.

* keep having to move the file due to new PR conflicts

* Revert "keep having to move the file due to new PR conflicts"

This reverts commit f3030e7218.

* extended support to dashboard and eventlog page

* formatting
2017-02-12 22:41:05 +00:00
Robert Verspuy
27417f72ad fix: incorrect hostname in the mouse-over of the services in the availability-map #5734 2017-02-02 16:57:42 +00:00
Neil Lathwood
981e974a70 fix: Check lat/lng are numeric rather than !empty #5585 (#5657) 2017-01-31 08:07:27 +00:00
Neil Lathwood
fa92cc5e24 fix: top-devices widget now will honour for ip to sysName config #5388 (#5643) 2017-01-28 00:58:43 +00:00
Richard Mayhew
6a1fd3ec05 webui: Additional Font Awesome icons (#5572) 2017-01-25 17:42:26 +00:00