@extends('layouts.app') @section('htmlheader_title') Dashboard @endsection @section('content') <h1>{{ $user->name }}</h1> <div class="row"> @if($user->systems->count()) <div class="col-8"> <div id="network_messages"></div> </div> <!-- System Addresses --> <div class="col-4"> <div class="row"> <div class="col-12"> <table class="table monotable"> <thead> <tr><th colspan="2">System Addresses</th></tr> </thead> <tbody> @foreach ($user->systems as $o) <tr> <th><a href="{{ url('system/addedit',[$o->id]) }}">{{ $o->name }}</a></th> <th class="text-end">{!! $o->akas->pluck('ftn')->join('<br>') !!}</th> </tr> @endforeach </tbody> </table> </div> </div> <div class="row"> <div class="col-12"> <table class="table monotable"> <thead> <tr><th colspan="2">Available Echos</th></tr> </thead> <tbody> @foreach ($user->systems as $o) <tr> <th><a href="{{ url('system/addedit',[$o->id]) }}">{{ $o->name }}</a></th> <th class="text-end">{!! $o->addresses->pluck('zone.domain.echoareas')->flatten()->pluck('name')->unique()->sort()->join(', ') !!}</th> </tr> @endforeach </tbody> </table> </div> </div> </div> @else <p>You are not linked to any BBS systems. Start <a href="{{ url('user/system/register') }}">here</a> to link to your first.</p> @endif </div> @endsection @section('page-css') <style> .highcharts-data-table table { min-width: 310px; max-width: 800px; margin: 1em auto; } .highcharts-data-table table { border-collapse: collapse; border: 1px solid #EBEBEB; margin: 10px auto; text-align: center; width: 100%; max-width: 500px; } .highcharts-data-table caption { padding: 1em 0; font-size: 1.2em; color: #555; } .highcharts-data-table th { font-weight: 600; padding: 0.5em; } .highcharts-data-table td, .highcharts-data-table th, .highcharts-data-table caption { padding: 0.5em; } {{-- .highcharts-data-table thead tr, .highcharts-data-table tr:nth-child(even) { background: #f8f8f8; } .highcharts-data-table tr:hover { background: #f1f7ff; } --}} </style> @append @section('page-scripts') @js('highcharts') <script> @if($user->systems->count()) // Create the chart Highcharts.chart('network_messages',{ chart: { type: 'column', backgroundColor: '#000000', }, credits: { enabled: false }, exporting: { buttons: false }, title: { text: 'Echomail Statistics' }, subtitle: { text: '{{ sprintf('%s - %s',\Carbon\Carbon::now()->subMonths(6)->startOfMonth()->format('Y-m-d'),\Carbon\Carbon::now()->format('Y-m-d')) }}' }, xAxis: { type: 'category' }, yAxis: { title: { text: '# Msgs' }, stackLabels: { enabled: true, style: { fontWeight: 'bold', color: (Highcharts.defaultOptions.title.style && Highcharts.defaultOptions.title.style.color) || 'gray' } } }, legend: { align: 'right', //x: -30, verticalAlign: 'top', y: 40, floating: true, backgroundColor: Highcharts.defaultOptions.legend.backgroundColor || 'white', borderColor: '#e0e0e0', borderWidth: 1, shadow: false }, plotOptions: { column: { dataLabels: { enabled: true } }, series: { borderWidth: 0, grouping: false, } }, tooltip: { headerFormat: '<span style="font-size:11px">{series.name}</span><br>', pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.0f}</b>' }, series: [ { name: 'Networks', colorByPoint: true, data: [ @foreach(($xx=$user->systems->pluck('addresses')->flatten()->pluck('zone.domain')->unique(function($item) { return $item->name; })->sortBy('name')) as $do) { name: '{{ $do->name }}', y: {{ $do->daily_area_stats()->sum('y') }}, drilldown: 'n-{{ $do->name }}', }, @endforeach ] }, { name: 'Yours', colorByPoint: true, pointPlacement: 0.1, data: [ @foreach($xx as $do) { name: '{{ $do->name }}', y: {{ $do->daily_area_stats(FALSE,$user->systems)->sum('y') }}, drilldown: 'ny-{{ $do->name }}', color: Highcharts.color(Highcharts.getOptions().colors[{{$loop->index}}]).brighten(-0.2).get() }, @endforeach ] }, ], drilldown: { drillUpButton: { position: { x: 0, y: -50, } }, series: [ @foreach($xx as $do) { name: '{{ $do->name }}', id: 'n-{{ $do->name }}', data: {!! $do->daily_area_stats(TRUE)->sortBy('name')->map(function($item) { return ['name'=>$item['name'],'y'=>$item['data']->sum('y'),'drilldown'=>'e-'.$item['name']]; })->values() !!} }, @endforeach @foreach($xx as $do) { name: '{{ $do->name }}', id: 'ny-{{ $do->name }}', data: {!! $do->daily_area_stats(TRUE,$user->systems)->sortBy('name')->map(function($item) { return ['name'=>$item['name'],'y'=>$item['data']->sum('y'),'drilldown'=>'ey-'.$item['name']]; })->values() !!} }, @endforeach ] }, }); @endif </script> @append