Commit Graph

56 Commits

Author SHA1 Message Date
Tony Murray
90a67c2ece User configurable locale (language) (#10204)
* Support for system APP_LOCALE

* Start preferences re-write

* port 2fa form

* Working user preferences

* Language user preference

* Don't look up locale from the DB every request

* Device list working

* Deny demo user middleware

* Finish password changing

* remove used resource methods

* remove leftover use

* warn that translation is incomplete

* fix style
2019-05-23 10:05:45 -05:00
Tony Murray
c9748b166e More url helper fixes (#10241)
* More url helpers
graph links
ajax search

* Fix for non-Laravel pages using the url helper

* fix widget settings
2019-05-21 08:50:45 -05: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
Slashdoom
c96b72f103 change map to group= url (#10237) 2019-05-20 08:47:13 -05:00
Tony Murray
e599487d09 Disable autocomplete dropdown for global search (#10233) 2019-05-16 18:10:30 +02:00
Tony Murray
8cc988a162 Fix plugins menu (#10222)
* Merge pull request #54 from librenms-plugins/revert-52-PluginNamespaceCorrection

Revert "Adding namespace LibreNMS\Plugins;"
Fix plugins menu

* Only use scrollable where needed
2019-05-13 14:53:29 -05:00
Tony Murray
32e5ef15e9 Fix device location menu links (#10214) 2019-05-13 09:45:54 -05:00
CirnoT
ef90da2a31 Better services graphing support (#10185)
* Move services graph code from device to service and remove unused code

* Add proper support for services to dashboard graph weidget

* Fix phpdoc in ServiceController still pointing to MuninPluginController
2019-05-12 23:40:27 -05:00
Tony Murray
a9bd0f98ad Fix missing container in legacy page blade (#10208) 2019-05-10 13:45:57 -05:00
Tony Murray
9ede688d13 Replace legacy menu with new Blade generated one (#10173)
* Remove legacy index php file

* fix routing page missing data

* WIP

* fix $navbar global usage

* remove global use of $locations

* ObjectCache again...

* move vars.inc.php to init.php for legacy ajax

* navbar is more local than I thought before.  Fix it.

* Fix some sensors tables escaping

* restore custom menu functionality, but with blade
and docs

* cleanup

* tidy menu @if checks

* Fix up the rest of the global variables and remove print-menubar.php

* consolidate some counting in the menu

* filter out empty custom port descr types

* Fix up custom port groups

* Fix up apps menu

* Fix services menu when all are ok

* Limit cached data to the user it is for

* Fix style

* A few clean ups

* fix pseudowire bug
2019-05-10 11:02:39 -05:00
Tony Murray
143cf4cdee Move container to page in blade tempates (#10195)
That way the page can decide container-fluid or container
Remove some unused blade templates as we have our own now
2019-05-09 21:44:18 -05:00
CirnoT
735a81c887 Support multiple params when rendering graph view (#10127) 2019-04-29 22:03:06 -05:00
rkislov
125e8ec8e8 russian language support (#10137)
* russian language

* Add Translation Strings As Keys for russian language.
Translate menu.blade.php, librenms1v.blade.php
2019-04-29 22:01:13 -05:00
Tony Murray
6e6e54cb98 New User Management (#9348)
* Rewrite user management.

Error management

Revert edituser legacy page

Connect user permissions button to legacy page for now.

Implement user creation
Refine form

Remove PingCheck.php accidental add :)

Fixes for redirection and deletion

More fixes: realname accidental validation setting, hide can modify for read-only auths

Use a panel to improve style

Add icon to panel-title

Not allowed to delete own user (at least via the click of a button)

Use request validation to reduce complexity of controller.
Improve protection against users doing things they should not.

Switch to horizontal form and not nearly as wide of layout :)

delete without refresh.
Fix for buttons

Include all users (not just from this auth)
Hide the auth column if there is only one auth type

Show username if real name isn't set

Don't allow creation of demo users via the webui

a fix to the lnms user:add command, it didn't set auth_id

update edituser.inc.php to current
just redirect to users page

* Remove TwoFactorTest for now

* Update edituser.inc.php

* Update .env.dusk.testing

* Enable 2fa for 2fa test...
2019-04-22 19:01:39 -05:00
PipoCanaja
f9d96dadbd Add alert transport to Laravel menu blade 2019-03-13 17:46:41 +01:00
Tony Murray
cb005210d2 Resubmit #9608 (#9941)
* Reorganize trap tests

* Testing db DRIVER to prevent .env from interfering

* New code to detect if Laravel is booted.  Hopefully more reliable.

* WIP external test process

* revert module test helper

* Use .env in Eloquent::boot()

* Fix test database settings loading

* fix undefined classes
(didn't find the one I needed)

* Fix incorrect Config usages
And RrdDefinition return type

* fix .env loading

* use the right DB

* slightly more accurate isConnected

* Move db_name to DBSetupTest specifically

* restore $_SERVER in AuthSSOTest

* missed item

* WIP

* tear down in the correct order.

* some testing cleanups

* remove check for duplicate event listener, it's not working right

* Don't need this change anymore

* Implement Log::event to replace legacy function log_event()

* fix port tests

* fix up tests

* remove pointless TrapTestCase class

* fix style

* Fix db config not being merged...

* skip env check for tests

* defer database operations until after Laravel is booted.

* don't include dbFaciale...

* redundant use
2019-03-12 23:59:03 -05:00
Tony Murray
eb648a1d6f Revert "Changes to improve testing (#9608)" (#9937)
This reverts commit d1a0ccda46.
2019-03-12 00:49:14 -05:00
Tony Murray
d1a0ccda46 Changes to improve testing (#9608)
* Reorganize trap tests

* Testing db DRIVER to prevent .env from interfering

* New code to detect if Laravel is booted.  Hopefully more reliable.

* WIP external test process

* revert module test helper

* Use .env in Eloquent::boot()

* Fix test database settings loading

* fix undefined classes
(didn't find the one I needed)

* Fix incorrect Config usages
And RrdDefinition return type

* fix .env loading

* use the right DB

* slightly more accurate isConnected

* Move db_name to DBSetupTest specifically

* restore $_SERVER in AuthSSOTest

* missed item

* WIP

* tear down in the correct order.

* some testing cleanups

* remove check for duplicate event listener, it's not working right

* Don't need this change anymore

* Implement Log::event to replace legacy function log_event()

* fix port tests

* fix up tests

* remove pointless TrapTestCase class

* fix style
2019-03-11 22:59:39 -05:00
Tony Murray
b5714820de Improved Exception handling (#9844)
* Update LibreNMS exception output
Use built-in laravel exception rendering.
DuskUnsafeExcpetion is triggered before Blade(view) is booted, so, try to boot it

* Cleaner blade registration

* Change 500 error page to generic LibreNMS error page.

* Handle generic exceptions from laravel better.

* Custome LdapMissingException

* Cleanup, don't need to override convertExceptionToResponse anymore

* Update unauthenticated code to current upstream style

* UpgradableException interface

* LdapMissingException extend AuthenticationException

* Code climate cleanups

* Fix code style
2019-02-21 12:08:35 -06:00
Tony Murray
a4b79d3339 lnms user:add command (#9830)
* Add lnms user:add command
Uses events to mark past notifications as read (even for non-manually added users)

* Filter out previous options from auto-completion

* use validation to check cli input

* Warn if using other auth

* abstract LnmsCommand

* Use setPassword helper for hashing instead of mutator

* Extract validation function
2019-02-15 09:00:07 -06:00
Tony Murray
63de34e295 php artisan serve and dusk testing (#9422)
* php artisan serve and dusk testing

* Fix style

* move if into, in case we need to have different configs

* fix travis yml

* Add missing folders files

* Try to fixup Travis-ci

* revert variable, change check

* skip browser tests for phpunit runs
set up env correctly

* maybe bg is needed

* attempt to fix env

* install Chrome

* Update tests
fix migrations

* Move pylint to python2

* use testing .env

* Running chrome on port 9515 conflicts with the instance started by the tests.  It is probably not needed.

* suppress some artisan serve output

* remove the unused updater
2019-02-14 09:06:10 -06:00
Tony Murray
e18f4522d5 Update to Laravel 5.7 (PHP 7.3 support) (#9800)
* Move assets to 5.7 location

* Add 5.7 SVGs

* add cache data dir

* update QUEUE_DRIVER -> QUEUE_CONNECTION

* Update trusted proxy config

* update composer.json

* 5.5 command loading

* @php and @endphp can't be inline

* Laravel 5.6 logging, Nice!

* Update blade directives

* improved redirects

* remove unneeded service providers

* Improved debugbar loading

* no need to emulate renderable exceptions anymore

* merge updated 5.7 files (WIP)

* Enable CSRF

* database_path() call causes issue in init.php

* fix old testcase name

* generic phpunit 7 fixes

* add missed file_get_contents
Keep migrations table content

* fix duplicate key

* Drop old php versions from travis-ci

* remove hhvm

* fix code climate message

* remove use of deprecated function assertInternalType

* Disable CSRF, we'll enable it separately.
All forms need to be updated to work.

* Update document references
2019-02-12 17:45:04 -06:00
TheGreatDoc
75927c8389 Revert "Mattermost Alert Transport (#9711)"
This reverts commit 09d500812e.
2019-01-26 07:59:04 +01:00
George Pantazis
09d500812e Mattermost Alert Transport (#9711)
* fixed #5659
Added support for Mattermost notifications.

George Pantazis <gpant@eservices-greece.com>

* Update Mattermost.php

* changes as requested by @murrant
2019-01-25 15:35:42 -06: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
1222ffae0b Order by support for availability map widget (#9663) 2019-01-14 08:09:32 -06:00
Tony Murray
c6e5a3f283 Pressing enter on global search goes to the first result (#9587) 2019-01-08 20:14:15 -06:00
Tim de Boer
d333d2f29e Fixed typo in globe widget 2019-01-07 16:56:47 +01:00
Tony Murray
ae29d43af0 Sort device select by hostname (#9607)
Plus small format fix for horizontal device summary 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`
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.
2019-01-05 15:31:12 +00: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
7093b362bb Allow multiple worldmap widgets (#9565)
Use unique id for each map
2018-12-19 07:48:47 -06:00
Tony Murray
5d20686d34 More Widget fixes (#9559)
* limit worldmap to active devices, use scope in availability map

* Linkable totals and better option description for disabled/ignored.

* fix disabled / ignore enabled display

* better? links

* style improvements.  Not important enough to bump version

* fix top interfaces query
2018-12-17 16:45:17 -06:00
Tony Murray
220bc2040c Fix error in error page (#9560) 2018-12-17 11:51:29 -06:00
Tony Murray
41b1dc67ed Correctly handle the uniform tiles setting (inverted) 2018-12-17 09:12:05 -06:00
Tony Murray
0b724c3fbe Better handling of log file failures (#9539)
Fix issues when APP_LOG is empty, unwritable , or pointed at a directory.
APP_LOG takes precedence over $config['log_file'] now.

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:26:20 +00: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
59e5c0f560 Manual location coordinate editing (#9526)
* Manual location coordinate editing

* reload bootgrid table on success
2018-12-11 09:37:11 -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
909f2c534d Change locations default sort order (#9502) 2018-11-30 15:16:57 -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
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
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
Tony Murray
0ec8f18459 Graph of overall poller performance (#9381)
* Graph definitions

* Stacked.

* Add display

* remove old poll-log, add redirect

* Handle undefined data in graphs

* Standard pollers

* Change doc to send to the global poller module page.

* remove test code :)

* Link parent menu
2018-10-26 21:04:30 +01:00
Tony Murray
607a567090 Don't check file permissions on every request, handle failures (#9264)
* Don't check file permissions on every request, handle failures
Improve error page visually

* only print minimal mkdir

* invert file_exists check, whoops

* docblock

* revert accidental changes

* rename variable

* Change database errors to use the new layout

* Add support url to the default layout

* Replaced \n for && in fix for user perms

* fix web output
2018-10-18 21:08:46 -05:00
Tony Murray
421bcb030d Force root url if set by user (#9266)
* Force root url if set by user
If user sets APP_URL, force the root url to that.  Empty strings result in default behavior.
Fix some of the urls in the laravel templates.

* Docs update

* Add base_url
2018-10-02 07:56:13 -05: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
Tony Murray
93d909c877 Fix extra large login images (#9183) 2018-09-11 19:21:29 -05:00