Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

764 lines
48 KiB
PHP
Raw Permalink Normal View History

2018-05-09 08:05:17 -05:00
<nav class="navbar navbar-default {{ $navbar }} navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navHeaderCollapse">
<span class="sr-only">{{ __('Toggle navigation') }}</span>
2018-05-09 08:05:17 -05:00
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="hidden-md hidden-sm navbar-brand" href>
@if($title_image)
<img src="{{ asset($title_image) }}" alt="{{ $project_name }}">
2018-05-09 08:05:17 -05:00
@else
{{ $project_name }}
@endif
</a>
</div>
<div class="collapse navbar-collapse" id="navHeaderCollapse">
<ul class="nav navbar-nav">
{{-- Overview --}}
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('overview') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-home fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span
class="hidden-sm">{{ __('Overview') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu multi-level" role="menu">
<li class="dropdown-submenu">
<a href="{{ route('overview') }}"><i class="fa fa-tv fa-fw fa-lg" aria-hidden="true"></i> {{ __('Dashboard') }}</a>
2021-03-27 03:55:32 +01:00
<ul class="dropdown-menu scrollable-menu">
@foreach($dashboards as $dashboard)
<li><a href="{{ route('overview', ['dashboard' => $dashboard->dashboard_id]) }}"><i class="fa fa-tv fa-fw fa-lg" aria-hidden="true"></i> {{ $dashboard->dashboard_name }}</a></li>
@endforeach
<li role="presentation" class="divider"></li>
<li>
<a onclick="toggleDashboardEditor()">
<i class="fa fa-bar-chart fa-fw fa-lg" aria-hidden="true"></i>
<span id="toggle-dashboard-editor-text">@if ($hide_dashboard_editor) {{ __('Show Dashboard Editor') }} @else {{ __('Hide Dashboard Editor') }}@endif</span>
</a>
</li>
</ul>
</li>
<li role="presentation" class="divider"></li>
2018-05-09 08:05:17 -05:00
<li class="dropdown-submenu">
<a><i class="fa fa-map fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Maps') }}</a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('availability-map') }}"><i class="fa fa-arrow-circle-up fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Availability') }}
2019-06-04 20:03:50 -05:00
</a></li>
2020-01-07 14:23:36 +01:00
<li><a href="{{ url('maps/devicedependency') }}"><i class="fa fa-chain fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Device Dependency') }}</a></li>
2020-01-07 14:23:36 +01:00
@if($device_groups->isNotEmpty())
<li class="dropdown-submenu"><a><i class="fa fa-chain fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Device Groups Dependencies') }}
2020-01-07 14:23:36 +01:00
</a>
<ul class="dropdown-menu scrollable-menu">
@foreach($device_groups as $group)
<li><a href="{{ url("maps/devicedependency?group=$group->id") }}" title="{{ $group->desc }}"><i class="fa fa-chain fa-fw fa-lg" aria-hidden="true"></i>
{{ ucfirst($group->name) }}
</a></li>
@endforeach
</ul></li>
@endif
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('map') }}"><i class="fa fa-sitemap fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Network') }}</a></li>
@if($device_groups->isNotEmpty())
<li class="dropdown-submenu"><a><i class="fa fa-th fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Device Groups Maps') }}
2019-06-04 20:03:50 -05:00
</a>
<ul class="dropdown-menu scrollable-menu">
2018-05-09 08:05:17 -05:00
@foreach($device_groups as $group)
2019-05-21 01:47:13 +12:00
<li><a href="{{ url("map/group=$group->id") }}" title="{{ $group->desc }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i>
2018-05-09 08:05:17 -05:00
{{ ucfirst($group->name) }}
</a></li>
@endforeach
</ul></li>
@endif
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('fullscreenmap') }}"><i class="fa fa-expand fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Geographical') }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
@if(auth()->user()->isAdmin() || $has_v1_plugins || $has_v2_plugins)
2018-05-09 08:05:17 -05:00
<li class="dropdown-submenu">
<a><i class="fa fa-plug fa-fw fa-lg" aria-hidden="true"></i> {{ __('Plugins') }}</a>
2019-05-13 14:53:29 -05:00
<ul class="dropdown-menu">
{!! $v1_plugin_menu !!}
@foreach($menu_hooks as [$view, $data])
<li>@include($view, $data)</li>
@endforeach
2018-05-09 08:05:17 -05:00
@admin
@if($has_v1_plugins || $has_v2_plugins)
<li role="presentation" class="divider"></li>
@endif
<li>
<a href="{{ route('plugin.admin') }}">
<i class="fa fa-lock fa-fw fa-lg" aria-hidden="true"></i>{{ __('Plugin Admin') }}
2019-06-04 20:03:50 -05:00
</a>
2019-05-13 14:53:29 -05:00
</li>
2018-05-09 08:05:17 -05:00
@endadmin
</ul>
</li>
@endif
<li class="dropdown-submenu">
<a><i class="fa fa-wrench fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Tools') }}</a>
2019-05-13 14:53:29 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('ripenccapi') }}"><i class="fa fa-star fa-fw fa-lg"
aria-hidden="true"></i> {{ __('RIPE NCC API') }}
2019-06-04 20:03:50 -05:00
</a></li>
@config('smokeping.integration')
<li><a href="{{ \LibreNMS\Config::get('smokeping.url') }}"><i class="fa fa-line-chart fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Smokeping') }}</a>
</li>
@endconfig
2018-05-09 08:05:17 -05:00
@config('oxidized.enabled')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('oxidized') }}"><i class="fa fa-stack-overflow fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Oxidized') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
@endconfig
</ul>
</li>
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('eventlog') }}"><i class="fa fa-bookmark fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Eventlog') }}</a></li>
2018-05-09 08:05:17 -05:00
@config('enable_syslog')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('syslog') }}"><i class="fa fa-clone fa-fw fa-lg"
aria-hidden="true"></i> {{ __('syslog.title') }}</a></li>
2018-05-09 08:05:17 -05:00
@endconfig
@config('graylog.server')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('graylog') }}"><i class="fa fa-clone fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Graylog') }}</a></li>
2018-05-09 08:05:17 -05:00
@endconfig
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('inventory') }}"><i class="fa fa-cube fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Inventory') }}</a></li>
2020-08-18 20:02:56 +02:00
<li><a href="{{ url('outages') }}"><i class="fa fa-bar-chart fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Outages') }}</a></li>
2018-05-09 08:05:17 -05:00
@if($package_count)
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('search/search=packages') }}"><i class="fa fa-archive fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Packages') }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('search/search=ipv4') }}"><i class="fa fa-search fa-fw fa-lg"
aria-hidden="true"></i> {{ __('IPv4 Address') }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="{{ url('search/search=ipv6') }}"><i class="fa fa-search fa-fw fa-lg"
aria-hidden="true"></i> {{ __('IPv6 Address') }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="{{ url('search/search=mac') }}"><i class="fa fa-search fa-fw fa-lg"
aria-hidden="true"></i> {{ __('MAC Address') }}</a>
2019-06-04 20:03:50 -05:00
</li>
<li><a href="{{ url('search/search=arp') }}"><i class="fa fa-search fa-fw fa-lg"
aria-hidden="true"></i> {{ __('ARP Tables') }}</a>
2019-06-04 20:03:50 -05:00
</li>
<li><a href="{{ url('search/search=fdb') }}"><i class="fa fa-search fa-fw fa-lg"
aria-hidden="true"></i> {{ __('FDB Tables') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
{{-- Devices --}}
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('devices/') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-server fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span class="hidden-sm">{{ __('Devices') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
@if($device_types->isNotEmpty())
2018-05-09 08:05:17 -05:00
<li class="dropdown-submenu">
2019-06-04 20:03:50 -05:00
<a href="{{ url('devices') }}"><i class="fa fa-server fa-fw fa-lg"
aria-hidden="true"></i> {{ __('All Devices') }}</a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu scrollable-menu">
@foreach($device_types as $type)
<li><a href="{{ url("devices/type=$type") }}"><i class="fa fa-angle-double-right fa-fw fa-lg" aria-hidden="true"></i> {{ ucfirst($type) }}</a></li>
@endforeach
</ul></li>
@else
<li class="dropdown-submenu"><a href="#">{{ __('No devices') }}</a></li>
2018-05-09 08:05:17 -05:00
@endif
@if($device_groups->isNotEmpty())
<li class="dropdown-submenu"><a><i class="fa fa-th fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Device Groups') }}
2019-06-04 20:03:50 -05:00
</a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu scrollable-menu">
@foreach($device_groups as $group)
<li><a href="{{ url("devices/group=$group->id") }}" title="{{ $group->desc }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> {{ ucfirst($group->name) }}</a></li>
@endforeach
</ul>
</li>
@endif
@if($locations->isNotEmpty())
2018-05-09 08:05:17 -05:00
<li role="presentation" class="divider"></li>
<li class="dropdown-submenu">
<a href="{{ url('locations') }}"><i class="fa fa-map-marker fa-fw fa-lg" aria-hidden="true"></i> {{ __('Geo Locations') }}</a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu scrollable-menu">
<li><a href="{{ url('locations') }}"><i class="fa fa-map-marker fa-fw fa-lg" aria-hidden="true"></i> {{ __('All Locations') }}</a></li>
2018-05-09 08:05:17 -05:00
@foreach($locations as $location)
2019-05-13 09:45:54 -05:00
<li><a href="{{ url("devices/location=" . $location->id) }}"><i class="fa fa-building fa-fw fa-lg" aria-hidden="true"></i> {{ $location->display() }}</a></li>
2018-05-09 08:05:17 -05:00
@endforeach
</ul>
</li>
@endif
@admin
<li role="presentation" class="divider"></li>
2019-06-19 16:01:53 -05:00
@can('manage', \App\Models\DeviceGroup::class)
<li><a href="{{ url('device-groups') }}"><i class="fa fa-th fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Manage Groups') }}
2019-06-19 16:01:53 -05:00
</a></li>
@endcan
<li><a href="{{ url('device-dependencies') }}"><i class="fa fa-group fa-fw fa-lg"></i> {{ __('Device Dependencies') }}</a></li>
2019-06-03 19:15:13 -05:00
@if($show_vmwinfo)
<li><a href="{{ url('vminfo') }}"><i
class="fa fa-cog fa-fw fa-lg"></i> {{ __('Virtual Machines') }}</a></li>
2019-06-03 19:15:13 -05:00
@endif
2018-05-09 08:05:17 -05:00
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('addhost') }}"><i class="fa fa-plus fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Add Device') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('delhost') }}"><i class="fa fa-trash fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Delete Device') }}</a></li>
2018-05-09 08:05:17 -05:00
@endadmin
</ul>
</li>
{{-- Services --}}
@config('show_services')
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('services') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-cogs fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span
class="hidden-sm">{{ __('Services') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
<li><a href="{{ url('services') }}"><i class="fa fa-cogs fa-fw fa-lg" aria-hidden="true"></i> {{ __('All Services') }}</a>
2021-02-02 06:40:11 +00:00
</li>
<li><a href="{{ route('services.templates.index') }}"><span class="fa-stack" aria-hidden="true" style="font-size: 12px">
<i class="fa fa-square fa-stack-2x"></i>
<i class="fa fa-cogs fa-stack-1x fa-inverse"></i>
</span> {{ __('Services Templates') }}</a>
2019-06-04 20:03:50 -05:00
</li>
@if($service_counts['warning'] || $service_counts['critical'])
2018-05-09 08:05:17 -05:00
<li role="presentation" class="divider"></li>
@if($service_counts['warning'])
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('services/state=warning') }}"><i
class="fa fa-bell fa-col-warning fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Warning :service_count', ['service_count' => $service_counts['warning']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@if($service_counts['critical'])
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('services/state=critical') }}"><i
class="fa fa-bell fa-col-danger fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Critical :service_count', ['service_count' => $service_counts['critical']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@endif
@admin
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('addsrv') }}"><i class="fa fa-plus fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Add Service') }}</a></li>
2018-05-09 08:05:17 -05:00
@endadmin
</ul>
</li>
@endconfig
{{-- Ports --}}
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('ports') }}" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"><i
class="fa fa-link fa-fw fa-lg fa-nav-icons hidden-md" aria-hidden="true"></i> <span
class="hidden-sm">{{ __('Ports') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('ports') }}"><i class="fa fa-link fa-fw fa-lg"
aria-hidden="true"></i> {{ __('All Ports') }}</a></li>
2018-05-09 08:05:17 -05:00
@if($port_counts['errored'] > 0)
2021-09-30 02:41:12 -05:00
<li><a href="{{ url('ports/errors=1') }}"><i class="fa fa-exclamation-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Errored :port_count', ['port_count' => $port_counts['errored']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@if($port_counts['ignored'] > 0)
2021-09-30 02:41:12 -05:00
<li><a href="{{ url('ports/ignore=1') }}"><i class="fa fa-question-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Ignored :port_count', ['port_count' => $port_counts['ignored']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@config('enable_billing')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('bills') }}"><i class="fa fa-money fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Traffic Bills') }}</a></li>
2018-05-09 08:05:17 -05:00
@endconfig
@if($port_counts['pseudowire'] > 0)
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('pseudowires') }}"><i class="fa fa-arrows-alt fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Pseudowires') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
@endif
@if(auth()->user()->hasGlobalRead())
@if($port_groups_exist)
<li role="presentation" class="divider"></li>
@config('int_customers')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('customers') }}"><i class="fa fa-users fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Customers') }}</a>
2019-06-04 20:03:50 -05:00
</li>
@endconfig
@config('int_l2tp')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('iftype/type=l2tp') }}"><i class="fa fa-link fa-fw fa-lg"
aria-hidden="true"></i> {{ __('L2TP') }}</a>
2019-06-04 20:03:50 -05:00
</li>
@endconfig
@config('int_transit')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('iftype/type=transit') }}"><i class="fa fa-truck fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Transit') }}
2019-06-04 20:03:50 -05:00
</a></li>
@endconfig
@config('int_peering')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('iftype/type=peering') }}"><i class="fa fa-handshake-o fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Peering') }}
2019-06-04 20:03:50 -05:00
</a></li>
@endconfig
@if(\LibreNMS\Config::get('int_peering') && \LibreNMS\Config::get('int_transit'))
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('iftype/type=peering,transit') }}"><i
class="fa fa-rocket fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Peering + Transit') }}</a></li>
@endif
@config('int_core')
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('iftype/type=core') }}"><i class="fa fa-code-fork fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Core') }}</a>
2019-06-04 20:03:50 -05:00
</li>
@endconfig
@foreach($custom_port_descr as $custom_descr)
<li><a href="{{ url('iftype/type=' . urlencode($custom_descr['name'])) }}"><i class="fa {{$custom_descr['icon']}} fa-fw fa-lg" aria-hidden="true"></i> {{ ucwords($custom_descr['name']) }}</a></li>
@endforeach
2018-05-09 08:05:17 -05:00
@endif
<li role="presentation" class="divider"></li>
2022-08-07 14:49:57 -05:00
<li><a href="{{ url('port-groups') }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> {{ __('Manage Groups') }} </a></li>
@if($port_groups->isNotEmpty())
<li class="dropdown-submenu">
<a href="{{ url('port-groups') }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> {{ __('Port Groups') }}</a>
<ul class="dropdown-menu scrollable-menu">
@foreach($port_groups as $group)
<li><a href="{{ url("ports/group=$group->id") }}" title="{{ $group->desc }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> {{ ucfirst($group->name) }}</a></li>
@endforeach
</ul>
</li>
@endif
2018-05-09 08:05:17 -05:00
2021-04-07 00:25:08 +02:00
<li role="presentation" class="divider"></li>
2018-05-09 08:05:17 -05:00
@if($port_counts['alerted'])
2021-09-30 02:41:12 -05:00
<li><a href="{{ url('ports/alerted=1') }}"><i
2019-06-04 20:03:50 -05:00
class="fa fa-exclamation-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alerts :port_count', ['port_count' => $port_counts['alerted']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('ports/state=down') }}"><i class="fa fa-arrow-circle-down fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Down :port_count', ['port_count' => $port_counts['down']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="{{ url('ports/state=admindown') }}"><i
class="fa fa-arrow-circle-o-down fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Disabled :port_count', ['port_count' => $port_counts['shutdown']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@if($port_counts['deleted'])
2021-09-30 02:41:12 -05:00
<li><a href="{{ url('ports/deleted=1') }}"><i class="fa fa-minus-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Deleted :port_count', ['port_count' => $port_counts['deleted']]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@endif
</ul>
</li>
{{-- Sensors --}}
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('health') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-heartbeat fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span class="hidden-sm">{{ __('Health') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2022-02-09 00:49:07 +01:00
<li><a href="{{ url('health/metric=mempool') }}"><i class="fas fa-memory fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Memory') }}</a>
2019-06-04 20:03:50 -05:00
</li>
<li><a href="{{ url('health/metric=processor') }}"><i class="fa fa-microchip fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Processor') }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="{{ url('health/metric=storage') }}"><i class="fa fa-database fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Storage') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
@foreach($sensor_menu as $sensor_menu_group)
@foreach($sensor_menu_group as $sensor_menu_entry)
@if($loop->first)
<li role="presentation" class="divider"></li>
@endif
<li><a href="{{ url('health/metric=' . $sensor_menu_entry['class']) }}"><i class="fa fa-{{ $sensor_menu_entry['icon'] }} fa-fw fa-lg" aria-hidden="true"></i> {{ $sensor_menu_entry['descr'] }}</a></li>
2018-05-09 08:05:17 -05:00
@endforeach
@endforeach
</ul>
</li>
{{-- Wireless --}}
@if($wireless_menu->isNotEmpty())
2018-05-09 08:05:17 -05:00
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('wireless') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-wifi fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span
class="hidden-sm">{{ __('wireless.title') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
@foreach($wireless_menu as $wireless_menu_entry)
<li><a href="{{ url('wireless/metric=' . $wireless_menu_entry->sensor_class) }}"><i class="fa fa-{{ $wireless_menu_entry->icon() }} fa-fw fa-lg" aria-hidden="true"></i> {{ $wireless_menu_entry->classDescr() }}</a></li>
@endforeach
</ul>
</li>
@endif
{{-- App --}}
@if($app_menu->isNotEmpty())
2018-05-09 08:05:17 -05:00
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('apps') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-tasks fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span
class="hidden-sm">{{ __('Apps') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('apps') }}"><i class="fa fa-object-group fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Overview') }}</a></li>
2018-05-09 08:05:17 -05:00
@foreach($app_menu as $app_type => $app_instances)
@if($app_instances->filter->app_instance->isNotEmpty())
2018-05-09 08:05:17 -05:00
<li class="dropdown-submenu">
<a href="{{ url('apps/app=' . $app_type) }}"><i class="fa fa-server fa-fw fa-lg" aria-hidden="true"></i> {{ $app_instances->first()->displayName() }}</a>
<ul class="dropdown-menu scrollable-menu">
@foreach($app_instances as $app_instance)
2021-06-21 16:59:26 +01:00
<li><a href="{{ url("apps/app=$app_type/instance=$app_instance->app_instance") }}"><i class="fa fa-angle-double-right fa-fw fa-lg" aria-hidden="true"></i> {{ ucfirst($app_instance->app_instance) }}</a></li>
2018-05-09 08:05:17 -05:00
@endforeach
</ul>
</li>
@else
<li><a href="{{ url('apps/app=' . $app_type) }}"><i class="fa fa-angle-double-right fa-fw fa-lg" aria-hidden="true"></i> {{ $app_instances->first()->displayName() }}</a></li>
@endif
@endforeach
</ul>
</li>
@endif
{{-- Routing --}}
@if($routing_menu)
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="{{ url('routing') }}" class="dropdown-toggle" data-hover="dropdown"
data-toggle="dropdown"><i class="fa fa-random fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span
class="hidden-sm">{{ __('Routing') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
@foreach($routing_menu as $routing_menu_group)
@if(!$loop->first)
<li role="presentation" class="divider"></li>
@endif
@foreach($routing_menu_group as $routing_menu_entry)
<li><a href="{{ url('routing/protocol=' . $routing_menu_entry['url']) }}"><i class="fa fa-{{ $routing_menu_entry['icon'] }} fa-fw fa-lg" aria-hidden="true"></i> {{ $routing_menu_entry['text'] }}</a></li>
@endforeach
@endforeach
@if($bgp_alerts)
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('routing/protocol=bgp/adminstatus=start/state=down') }}"><i
class="fa fa-exclamation-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alerted BGP :alert_count', ['alert_count' => $bgp_alerts]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endif
@admin
@if($show_peeringdb)
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('peering') }}"><i class="fa fa-hand-o-right fa-fw fa-lg"
aria-hidden="true"></i> {{ __('PeeringDB') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
@endif
@endadmin
</ul>
</li>
@endif
{{-- Alerts --}}
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"><i
class="fa fa-exclamation-circle fa-col-{{ $alert_menu_class }} fa-fw fa-lg fa-nav-icons hidden-md"
aria-hidden="true"></i> <span class="hidden-sm">{{ __('Alerts') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('alerts') }}"><i class="fa fa-bell fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Notifications') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('alert-log') }}"><i class="fa fa-file-text fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alert History') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('alert-stats') }}"><i class="fa fa-bar-chart fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Statistics') }}</a></li>
2018-05-09 08:05:17 -05:00
@admin
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('alert-rules') }}"><i class="fa fa-list fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alert Rules') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('alert-schedule') }}"><i class="fa fa-calendar fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Scheduled Maintenance') }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="{{ url('templates') }}"><i class="fa fa-file fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alert Templates') }}</a>
2019-06-04 20:03:50 -05:00
</li>
<li><a href="{{ url('alert-transports') }}"><i class="fa fa-bus fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Alert Transports') }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
@endadmin
</ul>
</li>
@includeIf('menu.custom')
2018-05-09 08:05:17 -05:00
</ul>
{{-- User --}}
<form role="search" class="navbar-form navbar-right global-search">
2019-07-17 07:20:26 -05:00
@csrf
2018-05-09 08:05:17 -05:00
<div class="form-group">
<input class="form-control typeahead" type="search" id="gsearch" name="gsearch"
placeholder="{{ __('Global Search') }}" autocomplete="off">
2018-05-09 08:05:17 -05:00
</div>
</form>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown">
<i class="fa fa-user fa-fw fa-lg fa-nav-icons" aria-hidden="true"></i>
<span class="badge badge-navbar-user count-notif {{ $notification_count ? 'badge-danger' : 'badge-default' }}">{{ $notification_count ?: '' }}</span>
<span class="hidden-sm"><small>{{ Auth::user()->username }}</small></span>
<span class="visible-xs-inline-block">{{ __('User') }}</span>
</a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('preferences') }}"><i class="fa fa-cog fa-fw fa-lg"
aria-hidden="true"></i> {{ __('My Settings') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('notifications') }}"><span
class="badge count-notif">{{ $notification_count }}</span> {{ __('Notifications') }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
<li role="presentation" class="divider"></li>
2018-09-11 07:51:35 -05:00
<li>
<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
<i class="fa fa-sign-out fa-fw fa-lg" aria-hidden="true"></i> {{ __('Logout') }}
2018-09-11 07:51:35 -05:00
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
</li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
<li class="dropdown">
2019-06-04 20:03:50 -05:00
<a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"
style="margin-left:5px"><i class="fa fa-cog fa-fw fa-lg fa-nav-icons" aria-hidden="true"></i>
<span class="visible-xs-inline-block">{{ __('settings.title') }}</span></a>
2018-05-09 08:05:17 -05:00
<ul class="dropdown-menu">
@admin
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('settings') }}"><i class="fa fa-cogs fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Global Settings') }}</a></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('validate') }}"><i class="fa fa-check-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Validate Config') }}</a></li>
2018-05-09 08:05:17 -05:00
<li role="presentation" class="divider"></li>
2019-06-04 20:03:50 -05:00
<li><a href="{{ route('users.index') }}"><i class="fa fa-user-circle-o fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Manage Users') }}</a>
2019-06-04 20:03:50 -05:00
</li>
<li><a href="{{ url('authlog') }}"><i class="fa fa-shield fa-fw fa-lg"
aria-hidden="true"></i> {{ __('Auth History') }}</a></li>
2018-09-11 07:51:35 -05:00
<li role="presentation" class="divider"></li>
2018-05-09 08:05:17 -05:00
<li class="dropdown-submenu">
<a href="{{ route('poller.index') }}"><i class="fa fa-th-large fa-fw fa-lg" aria-hidden="true"></i> {{ __('Poller') }}</a>
2019-05-13 14:53:29 -05:00
<ul class="dropdown-menu">
<li><a href="{{ route('poller.index') }}"><i class="fa fa-th-large fa-fw fa-lg" aria-hidden="true"></i> {{ __('Poller') }}</a></li>
2018-05-09 08:05:17 -05:00
@config('distributed_poller')
<li><a href="{{ route('poller.groups') }}"><i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> {{ __('Groups') }}</a></li>
2018-05-09 08:05:17 -05:00
@endconfig
@if($poller_clusters)
<li><a href="{{ route('poller.settings') }}"><i class="fa fa-gears fa-fw fa-lg" aria-hidden="true"></i> {{ __('Settings') }}</a></li>
@endif
<li><a href="{{ route('poller.performance') }}"><i class="fa fa-line-chart fa-fw fa-lg" aria-hidden="true"></i> {{ __('Performance') }}</a></li>
<li><a href="{{ route('poller.log') }}"><i class="fa fa-file-text fa-fw fa-lg" aria-hidden="true"></i> {{ __('Log') }}</a></li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
<li role="presentation" class="divider"></li>
<li class="dropdown-submenu">
<a href="#"><i class="fa fa-code fa-fw fa-lg" aria-hidden="true"></i> {{ __('API') }}</a>
2019-05-13 14:53:29 -05:00
<ul class="dropdown-menu">
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('api-access') }}"><i class="fa fa-cog fa-fw fa-lg"
aria-hidden="true"></i> {{ __('API Settings') }}
2019-06-04 20:03:50 -05:00
</a></li>
<li><a href="https://docs.librenms.org/API/" target="_blank" rel="noopener"><i
class="fa fa-book fa-fw fa-lg" aria-hidden="true"></i> {{ __('API Docs') }}</a>
2019-06-04 20:03:50 -05:00
</li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
<li role="presentation" class="divider"></li>
@endadmin
@if (isset($refresh))
<li class="dropdown-submenu">
<a href="#"><span class="countdown_timer" id="countdown_timer"></span></a>
2019-05-13 14:53:29 -05:00
<ul class="dropdown-menu">
<li><a href="#"><span class="countdown_timer_status" id="countdown_timer_status"></span></a></li>
</ul>
</li>
<li role="presentation" class="divider"></li>
@endif
2019-06-04 20:03:50 -05:00
<li><a href="{{ url('about') }}"><i class="fa fa-info-circle fa-fw fa-lg"
aria-hidden="true"></i> {{ __('About :project_name', ['project_name' => \LibreNMS\Config::get('project_name')]) }}
2019-06-04 20:03:50 -05:00
</a></li>
2018-05-09 08:05:17 -05:00
</ul>
</li>
</ul>
</div>
</div>
</nav>
<script>
var devices = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: ajax_url + "/search/device?search=%QUERY",
2018-05-09 08:05:17 -05:00
filter: function (devices) {
return $.map(devices, function (device) {
return {
device_id: device.device_id,
device_image: device.device_image,
url: device.url,
name: device.name,
device_os: device.device_os,
version: device.version,
device_hardware: device.device_hardware,
device_ports: device.device_ports,
location: device.location
};
});
},
wildcard: "%QUERY"
}
});
var ports = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: ajax_url + "/search/port/?search=%QUERY",
2018-05-09 08:05:17 -05:00
filter: function (ports) {
return $.map(ports, function (port) {
return {
url: port.url,
name: port.name,
description: port.description,
colours: port.colours,
hostname: port.hostname
};
});
},
wildcard: "%QUERY"
}
});
var bgp = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: ajax_url + "/search/bgp/?search=%QUERY",
2018-05-09 08:05:17 -05:00
filter: function (bgp_sessions) {
return $.map(bgp_sessions, function (bgp) {
return {
url: bgp.url,
name: bgp.name,
description: bgp.description,
localas: bgp.localas,
bgp_image: bgp.bgp_image,
remoteas: bgp.remoteas,
colours: bgp.colours,
hostname: bgp.hostname
};
});
},
wildcard: "%QUERY"
}
});
if ($(window).width() < 768) {
var cssMenu = 'typeahead-left';
} else {
var cssMenu = '';
}
devices.initialize();
ports.initialize();
bgp.initialize();
$('#gsearch').typeahead({
hint: true,
highlight: true,
minLength: 1
2018-05-09 08:05:17 -05:00
},
{
source: devices.ttAdapter(),
limit: '{{ $typeahead_limit }}',
async: true,
display: 'name',
valueKey: 'name',
templates: {
header: '<h5><strong>&nbsp;Devices</strong></h5>',
suggestion: Handlebars.compile('<p><a href="@{{url}}"><img src="@{{device_image}}" style="float: left; min-height: 32px; margin-right: 5px;"> <small><strong>@{{name}}</strong> | @{{device_os}} | @{{version}} <br /> @{{device_hardware}} with @{{device_ports}} port(s) | @{{location}}</small></a></p>')
2018-05-09 08:05:17 -05:00
}
},
{
source: ports.ttAdapter(),
limit: '{{ $typeahead_limit }}',
async: true,
display: 'name',
valueKey: 'name',
templates: {
header: '<h5><strong>&nbsp;Ports</strong></h5>',
suggestion: Handlebars.compile('<p><a href="@{{url}}"><small><i class="fa fa-link fa-sm icon-theme" aria-hidden="true"></i> <strong>@{{name}}</strong> @{{hostname}}<br /><i>@{{description}}</i></small></a></p>')
2018-05-09 08:05:17 -05:00
}
},
{
source: bgp.ttAdapter(),
limit: '{{ $typeahead_limit }}',
async: true,
display: 'name',
valueKey: 'name',
templates: {
header: '<h5><strong>&nbsp;BGP Sessions</strong></h5>',
suggestion: Handlebars.compile('<p><a href="@{{url}}"><small><i class="@{{bgp_image}}" aria-hidden="true"></i> @{{name}} - @{{hostname}}<br />AS@{{localas}} -> AS@{{remoteas}}</small></a></p>')
2018-05-09 08:05:17 -05:00
}
}).on('typeahead:select', function (ev, suggestion) {
window.location.href = suggestion.url;
}).on('keyup', function (e) {
// on enter go to the first selection
if (e.which === 13) {
2021-05-11 08:08:06 -05:00
$('.tt-selectable').first().trigger( "click" );
}
2018-05-09 08:05:17 -05:00
});
var hideDashboardEditor = {{ (int)$hide_dashboard_editor }};
function toggleDashboardEditor() {
$.ajax({
url: '{{ route('preferences.store') }}',
dataType: 'json',
type: 'POST',
data: {
pref: 'hide_dashboard_editor',
value: hideDashboardEditor ? 0 : 1
},
success: function () {
hideDashboardEditor = hideDashboardEditor ? 0 : 1;
$('#toggle-dashboard-editor-text').text(hideDashboardEditor ? '{{ __('Show Dashboard Editor') }}' : '{{ __('Hide Dashboard Editor') }}')
// disable and hide editing
if (typeof gridster !== 'undefined') {
gridster.disable();
gridster.disable_resize();
gridster_state = 0;
$('.fade-edit').fadeOut();
dashboard_collapse("#hide_edit");
}
$('#dashboard-editor').collapse(hideDashboardEditor ? 'hide' : 'show');
}
});
}
2021-10-06 07:29:47 -05:00
@if($browser_push)
if (localStorage.getItem('notifications') !== 'disabled') {
Notification.requestPermission().then(function (permission) {
if (permission === "denied") {
localStorage.setItem('notifications', 'disabled');
}
});
}
@endif
2018-05-09 08:05:17 -05:00
</script>