clrghouz/resources/views/domain/list.blade.php

107 lines
2.5 KiB
PHP

@extends('layouts.app')
@section('htmlheader_title')
Known FTN Networks
@endsection
@php
use App\Models\{Address,Domain};
@endphp
@section('content')
<div class="row">
<div class="col-12">
<h2>List of known FTN Networks</h2>
<p>Here is a list of known <strong class="highlight">FTN Networks</strong>.</p>
<table class="table monotable" id="ftnlist">
<thead>
<tr>
<th>Domain</th>
<th>Zones</th>
<th>Active</th>
<th>Available Here</th>
<th>Head Quarters</th>
<th>Known Systems</th>
</tr>
</thead>
<tbody>
@foreach (Domain::public()->orderBy('name')->with(['zones.addresses.system'])->get() as $do)
<tr>
<td>
@if($do->active)
<a href="{{ url('domain/view',$do->id) }}">{{ $do->name }}</a>
@else
{{ $do->name }}
@endif
</td>
<td>{{ $do->zones->where('active',TRUE)->pluck('zone_id')->sort()->join(', ') }}</td>
<td class="text-end">{{ $do->active ? 'Active' : 'Not Active' }}</td>
<td class="text-end">{{ $do->isManaged() ? 'YES' : 'NO' }}</td>
<td>
@foreach (($x=$do->zones->pluck('addresses')->flatten())->filter(fn($item)=>$item->node_id === 0)->where('role_id',Address::NODE_ZC)->sortBy('zone.zone_id') as $ao)
{{ $ao->system->sysop }}, <a href="{{ url('system/view',$ao->system_id) }}">{{ $ao->system->name }}</a><br>
@endforeach
</td>
<td class="text-end">{{ $x->pluck('system')->unique('name')->count() }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
@section('page-css')
@css('datatables')
@append
@section('page-scripts')
@js('datatables')
<script type="text/javascript">
$(document).ready(function() {
$('table tr').click(function() {
var href = $(this).find('a:not(.disabled)').attr('href');
if (href)
window.location = href;
});
$('#ftnlist').DataTable({
paging: true,
pageLength: 25,
searching: true,
autoWidth: false,
conditionalPaging: {
style: 'fade',
speed: 500 // optional
},
columnDefs: [
{
targets: 1,
type: 'num-fmt',
render: {
'sort': function (data,type,row,meta) {
return data ? parseFloat(data) : 0;
},
}
},
{
targets: [2],
visible: false,
},
],
orderFixed: [2, 'asc'],
rowGroup: {
dataSrc: [2],
},
language: {
paginate: {
previous: '&lt;&lt;',
next: '&gt;&gt;'
}
},
});
});
</script>
@append