346 lines
11 KiB
PHP
346 lines
11 KiB
PHP
<!-- $o = Domain::class -->
|
|
@extends('layouts.app')
|
|
@section('htmlheader_title')
|
|
{{ $o->name }}
|
|
@endsection
|
|
|
|
@section('content')
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h1>{{ $o->name }} <small class="float-end">Last Update: {{ $o->updated_at->format('Y-m-d H:i') }}</small></h1>
|
|
|
|
<div class="accordion" id="accordion_homepage">
|
|
<!-- About -->
|
|
<div class="accordion-item">
|
|
<h3 class="accordion-header">
|
|
<span class="accordion-button" id="about" data-bs-toggle="collapse" data-bs-target="#collapse_about" aria-expanded="true" aria-controls="collapse_about">About</span>
|
|
</h3>
|
|
|
|
<div id="collapse_about" class="accordion-collapse collapse show" aria-labelledby="about" data-bs-parent="#accordion_homepage">
|
|
<div class="accordion-body">
|
|
<div class="float-end" style="max-height: 25em;" id="network_traffic"></div>
|
|
{!! \Illuminate\Mail\Markdown::parse($o->homepage) !!}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Echomail -->
|
|
<div class="accordion-item">
|
|
<h3 class="accordion-header">
|
|
<span class="accordion-button collapsed" id="echoareas" data-bs-toggle="collapse" data-bs-target="#collapse_echoareas" aria-expanded="false" aria-controls="collapse_echoareas">Echo Areas</span>
|
|
</h3>
|
|
|
|
<div id="collapse_echoareas" class="accordion-collapse collapse" aria-labelledby="echoareas" data-bs-parent="#accordion_homepage">
|
|
<div class="accordion-body">
|
|
@if($o->echoareas->count())
|
|
<p>This network provides the following Echomail areas:</p>
|
|
<table class="table monotable w-100" id="echoarea">
|
|
<thead>
|
|
<tr>
|
|
<th class="w-75" colspan="4"></th>
|
|
<th colspan="4" class="text-center">Messages</th>
|
|
</tr>
|
|
<tr>
|
|
<th>Echoarea</th>
|
|
<th>Description</th>
|
|
<th>Last Message</th>
|
|
<th>Area Active</th>
|
|
<th class="text-end">Day</th>
|
|
<th class="text-end">Week</th>
|
|
<th class="text-end">Month</th>
|
|
<th class="text-end">Total</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
@foreach ($o->echoarea_stats()->groupBy('id') as $oo)
|
|
<tr>
|
|
<td style="width: 15%;"><a href="{{ url('echoarea/addedit',[($x=$oo->first())->id]) }}">{{ $x->name }}</a></td>
|
|
<td>{{ $x->description }}</td>
|
|
<td style="width: 15%;">{{ $x->last_message ? $x->last_message->format('Y-m-d H:i') : '-' }}</td>
|
|
<td>{{ $x->active ? 'Active' : 'Archive' }}</td>
|
|
<td class="text-end">{{ number_format($oo->where('stats','day')->pop()?->count) }}</td>
|
|
<td class="text-end">{{ number_format($oo->where('stats','week')->pop()?->count) }}</td>
|
|
<td class="text-end">{{ number_format($oo->where('stats','month')->pop()?->count) }}</td>
|
|
<td class="text-end">{{ number_format($oo->sum('count')) }}</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
@else
|
|
This network doesnt have any Echomail areas (yet). Perhaps you would like to create one?
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- File areas -->
|
|
<div class="accordion-item">
|
|
<h3 class="accordion-header">
|
|
<span class="accordion-button collapsed" id="fileareas" data-bs-toggle="collapse" data-bs-target="#collapse_fileareas" aria-expanded="false" aria-controls="collapse_fileareas">File Areas</span>
|
|
</h3>
|
|
|
|
<div id="collapse_fileareas" class="accordion-collapse collapse" aria-labelledby="fileareas" data-bs-parent="#accordion_homepage">
|
|
<div class="accordion-body">
|
|
@if($o->fileareas->count())
|
|
<p>This network provides the following File areas:</p>
|
|
<table class="table monotable" id="filearea">
|
|
<thead>
|
|
<tr>
|
|
<th>Filearea</th>
|
|
<th>Description</th>
|
|
<th>Last File Sent</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
@foreach ($o->fileareas->sortBy('name') as $oo)
|
|
<tr>
|
|
<td style="width: 15%;"><a href="{{ url('filearea/addedit',[$oo->id]) }}">{{ $oo->name }}</a></td>
|
|
<td>{{ $oo->description }}</td>
|
|
<td style="width: 15%;">-</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
@else
|
|
This network doesnt have any File areas (yet). Perhaps you would like to create one?
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Systems -->
|
|
<div class="accordion-item">
|
|
<h3 class="accordion-header">
|
|
<span class="accordion-button collapsed" id="systems" data-bs-toggle="collapse" data-bs-target="#collapse_systems" aria-expanded="false" aria-controls="collapse_systems">Systems</span>
|
|
</h3>
|
|
|
|
<div id="collapse_systems" class="accordion-collapse collapse" aria-labelledby="systems" data-bs-parent="#accordion_homepage">
|
|
<div class="accordion-body">
|
|
<p>The following systems are members of this network.</p>
|
|
<table class="table monotable" id="system">
|
|
<thead>
|
|
<tr>
|
|
<th>System</th>
|
|
<th>Sysop</th>
|
|
<th>Location</th>
|
|
<th>Address</th>
|
|
<th>Last Echomail</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
@foreach ($o->zones->sortBy('zone_id') as $oz)
|
|
@foreach ($oz->addresses as $ao)
|
|
<tr>
|
|
<td><a href="{{ url('system/addedit',[$ao->system_id]) }}">{{ $ao->system->full_name($ao) }}</a> @auth<span class="float-end"><small>@if($ao->is_hosted)<sup>{{ $ao->is_default ? '**' : '*' }}</sup>@elseif($ao->system->setup)<sup class="success">+</sup>@endif[{{ $ao->system_id }}]</small></span>@endauth</td>
|
|
<td>{{ $ao->system->sysop }}</td>
|
|
<td>{{ $ao->system->location }}</td>
|
|
<td>{{ $ao->ftn4d }}</td>
|
|
<td>{{ $ao->echomail_from->count() ? $ao->echomail_from->first()->datetime->format('Y-m-d H:i') : '-' }}</td>
|
|
</tr>
|
|
@endforeach
|
|
@endforeach
|
|
</tbody>
|
|
@auth
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="5"><sup>**</sup>Default route <sup>*</sup>System defined here <sup class="success">+</sup>This system</td>
|
|
</tr>
|
|
</tfoot>
|
|
@endauth
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sign up -->
|
|
@if ($o->can_accept_app)
|
|
<div class="accordion-item">
|
|
<h3 class="accordion-header">
|
|
<span class="accordion-button collapsed" id="signup" data-bs-toggle="collapse" data-bs-target="#collapse_signup" aria-expanded="false" aria-controls="collapse_signup">Join Network</span>
|
|
</h3>
|
|
|
|
<div id="collapse_signup" class="accordion-collapse collapse" aria-labelledby="signup" data-bs-parent="#accordion_homepage">
|
|
<div class="accordion-body">
|
|
<p>Your system(s) <strong class="highlight">{!! $o->userHasSystemsNotInNet(Auth::user())->pluck('name')->join('</strong>, <strong class="highlight">') !!}</strong> can join this network.</p>
|
|
<p>
|
|
If you want to join it/them to this network, make sure:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>it is online and can accept mailer calls</li>
|
|
<li>you have the <strong class="highlight">BBS Internet Hostname</strong> configured with the correct hostname</li>
|
|
<li>you have selected either <strong class="highlight">BINKP</strong> or <strong class="highlight">EMSI</strong> in the mailer settings, with the correct TCP port</li>
|
|
</ul>
|
|
|
|
<p>Here's what will happen next</p>
|
|
|
|
<ul>
|
|
<li>You complete the application form (see the button below)</li>
|
|
<li>We'll poll your system to make sure it is connectable</li>
|
|
<li>Your applicaiton will then be forwarded to the <strong class="highlight">ZC</strong> of the domain</li>
|
|
<li>You'll hear back from your assigned hub to configure your system with your assigned FTN address</li>
|
|
<li>Configure your system, subscribe to file and echo areas</li>
|
|
<li>Enjoy!</li>
|
|
</ul>
|
|
|
|
<button class="btn btn-success">Lets Do It</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
@section('page-css')
|
|
@css('datatables')
|
|
@append
|
|
|
|
@section('page-scripts')
|
|
@js('datatables')
|
|
@js('highcharts')
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$('table tr').click(function() {
|
|
var href = $(this).find('a').attr('href');
|
|
|
|
if (href)
|
|
window.location = href;
|
|
});
|
|
|
|
$('#echoarea').DataTable({
|
|
paging: true,
|
|
pageLength: 25,
|
|
searching: true,
|
|
ordering: true,
|
|
order: [[3,'asc'],[1,'asc']],
|
|
conditionalPaging: {
|
|
style: 'fade',
|
|
speed: 500 // optional
|
|
},
|
|
rowGroup: {
|
|
dataSrc: [3],
|
|
},
|
|
columnDefs: [
|
|
{
|
|
targets: [3],
|
|
visible: false,
|
|
},
|
|
],
|
|
});
|
|
|
|
$('#filearea').DataTable({
|
|
paging: true,
|
|
pageLength: 25,
|
|
searching: true,
|
|
ordering: true,
|
|
order: [1,'asc'],
|
|
conditionalPaging: {
|
|
style: 'fade',
|
|
speed: 500 // optional
|
|
}
|
|
});
|
|
|
|
$('#system').DataTable({
|
|
paging: true,
|
|
pageLength: 25,
|
|
searching: true,
|
|
ordering: true,
|
|
order: [],
|
|
conditionalPaging: {
|
|
style: 'fade',
|
|
speed: 500 // optional
|
|
},
|
|
language: {
|
|
paginate: {
|
|
previous: '<<',
|
|
next: '>>'
|
|
}
|
|
}
|
|
});
|
|
|
|
@if ($o->can_accept_app)
|
|
$('#join_top').on('click',function(item) {
|
|
$('.accordion-collapse').each(function(){
|
|
if ($(this).hasClass('show')) {
|
|
$(this).toggle();
|
|
}
|
|
});
|
|
|
|
$('#collapse_signup').toggle();
|
|
return false;
|
|
});
|
|
@endif
|
|
});
|
|
|
|
Highcharts.chart('network_traffic', {
|
|
chart: {
|
|
type: 'spline',
|
|
zoomType: 'x',
|
|
backgroundColor: '#0a0a0a',
|
|
resetZoomButton: {
|
|
position: {
|
|
align: 'left',
|
|
x: -40,
|
|
y: -40,
|
|
}
|
|
}
|
|
},
|
|
credits: {
|
|
enabled: false
|
|
},
|
|
exporting: {
|
|
buttons: false
|
|
},
|
|
title: {
|
|
text: 'FTN Network Traffic for {{ $o->name }}'
|
|
},
|
|
xAxis: {
|
|
type: 'datetime',
|
|
title: {
|
|
text: 'Time'
|
|
},
|
|
},
|
|
yAxis: {
|
|
title: {
|
|
text: 'Echomail'
|
|
},
|
|
},
|
|
legend: {
|
|
align: 'right',
|
|
layout: 'vertical',
|
|
symbolWidth: 20,
|
|
floating: false,
|
|
navigation: {
|
|
arrowSize: 10
|
|
},
|
|
},
|
|
plotOptions: {
|
|
series: {
|
|
point: {
|
|
events: {
|
|
click: function () {
|
|
//window.location.href = this.series.options.website;
|
|
}
|
|
}
|
|
},
|
|
cursor: 'pointer'
|
|
}
|
|
},
|
|
series: {!! $o->echoarea_total_daily()
|
|
->groupBy('name')
|
|
->transform(function($item,$key) { return [
|
|
'name'=>$key,
|
|
'dashStyle'=>'ShortDot',
|
|
'visible'=>$item->first()->show,
|
|
'data'=>$item->map(function($item) { return ['x'=>\Carbon\Carbon::createFromFormat('Y-m-d',$item->date)->timestamp*1000,'y'=>$item->count]; })
|
|
]; })
|
|
->values() !!}
|
|
});
|
|
</script>
|
|
@append |