Files
librenms-librenms/resources/views/device-group/index.blade.php
SourceDoctor 4ead80d06c Trigger Device Rediscovery for a device group (#10832)
* trigger rediscover for whole device group
* travis fix
* Update rediscover-device.inc.php
2019-11-21 11:55:15 +01:00

146 lines
6.7 KiB
PHP

@extends('layouts.librenmsv1')
@section('title', __('Device Groups'))
@section('content')
<div class="container-fluid">
<div id="manage-device-groups-panel" class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<i class="fa fa-th fa-fw fa-lg" aria-hidden="true"></i> @lang('Device Groups')
</h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<a type="button" class="btn btn-primary" href="{{ route('device-groups.create') }}">
<i class="fa fa-plus"></i> @lang('New Device Group')
</a>
</div>
</div>
<div class="table-responsive">
<table id="manage-device-groups-table" class="table table-condensed table-hover">
<thead>
<tr>
<th>@lang('Name')</th>
<th>@lang('Description')</th>
<th>@lang('Type')</th>
<th>@lang('Devices')</th>
<th>@lang('Pattern')</th>
<th>@lang('Actions')</th>
</tr>
</thead>
<tbody>
@foreach($device_groups as $device_group)
<tr id="row_{{ $device_group->id }}">
<td>{{ $device_group->name }}</td>
<td>{{ $device_group->desc }}</td>
<td>{{ __(ucfirst($device_group->type)) }}</td>
<td>
<a href="{{ url("/devices/group=$device_group->id") }}">{{ $device_group->devices_count }}</a>
</td>
<td>{{ $device_group->type == 'dynamic' ? $device_group->getParser()->toSql(false) : '' }}</td>
<td>
<button type="button" title="@lang('Rediscover all Devices of Device Group')" class="btn btn-warning btn-sm" aria-label="@lang('Rediscover Group')"
onclick="discover_dg(this, '{{ $device_group->id }}')">
<i
class="fa fa-retweet" aria-hidden="true"></i></button>
<a type="button" title="@lang('edit Device Group')" class="btn btn-primary btn-sm" aria-label="@lang('Edit')"
href="{{ route('device-groups.edit', $device_group->id) }}">
<i class="fa fa-pencil" aria-hidden="true"></i></a>
<button type="button" class="btn btn-danger btn-sm" title="@lang('delete Device Group')" aria-label="@lang('Delete')"
onclick="delete_dg(this, '{{ $device_group->name }}', '{{ route('device-groups.destroy', $device_group->id) }}')">
<i
class="fa fa-trash" aria-hidden="true"></i></button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div id="unmanaged-devices-panel" class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
@lang('Ungrouped Devices') ({{ $ungrouped_devices->count() }})
</h4>
</div>
<div class="panel-body">
<div class="table-responsive">
<table id="ungrouped-devices-table" class="table table-condensed table-hover">
<thead>
<tr>
<th style="width:32px">@lang('Vendor')</th>
<th>@lang('Device')</th>
<th>@lang('Platform')</th>
<th>@lang('Operating System')</th>
</tr>
</thead>
<tbody>
@foreach($ungrouped_devices as $device)
<tr id="row_{{ $device->device_id }}">
<td><img alt="{{ $device->os }}" src="{{ asset($device->icon) }}" width="32px" height="32px" title="{{ $device->os }}"></td>
<td>{!! \LibreNMS\Util\Url::deviceLink($device) !!}<br />{{ $device->sysName }}</td>
<td>{{ $device->hardware }}</td>
<td>{{ $device->os }} {{ $device->version }} @if($device->features) ({{ $device->features }}) @endif </td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
function delete_dg(button, name, url) {
var index = button.parentNode.parentNode.rowIndex;
if (confirm('@lang('Are you sure you want to delete ')' + name + '?')) {
$.ajax({
url: url,
type: 'DELETE',
success: function (msg) {
document.getElementById("manage-device-groups-table").deleteRow(index);
toastr.success(msg);
},
error: function () {
toastr.error('@lang('The device group could not be deleted')');
}
});
}
return false;
}
function discover_dg(button, id) {
$.ajax({
type: 'POST',
url: 'ajax_form.php',
data: { type: "rediscover-device", device_group_id: id },
dataType: "json",
success: function(data){
if(data['status'] == 'ok') {
toastr.success(data['message']);
} else {
toastr.error(data['message']);
}
},
error:function(){
toastr.error('An error occured setting this device Group to be rediscovered');
}
});
}
</script>
@endsection
@section('css')
<style>
.table-responsive {
padding-top: 16px
}
</style>
@endsection