Skip to main content

agorakit/agorakit

450 stars
4 code files
View agorakit/agorakit on GitHub

composer.json

Open in GitHub
{
"require": {
"php": "^7.3",
//
"consoletvs/charts": "6.*",
}
}

app/Charts/AgorakitChart.php

Open in GitHub
use ConsoleTVs\Charts\Classes\Chartjs\Chart;
 
class AgorakitChart extends Chart
{
public function __construct()
{
parent::__construct();
}
}

app/Http/Controllers/Admin/InsightsController.php

Open in GitHub
use App\Http\Controllers\Controller;
use App\Charts\AgorakitChart;
 
class InsightsController extends Controller
{
public function index()
{
$chart = new AgorakitChart;
$chart->title('General stats');
$chart->labels(['Groups', 'Active groups', 'Users', 'Verified users', 'Active users', 'Discussions', 'Comments', 'Events', 'Files']);
$chart->dataset('Amount', 'bar', [
\App\Group::count(),
\App\Group::active()->count(),
\App\User::count(),
\App\User::verified()->count(),
\App\User::active()->verified()->count(),
\App\Discussion::count(),
\App\Comment::count(),
\App\Action::count(),
\App\File::count()
]);
$charts[] = $chart;
 
$results = \App\Discussion::selectRaw('year(created_at) year, extract(YEAR_MONTH FROM created_at) AS yearmonth, monthname(created_at) month, count(*) data')
->groupBy('yearmonth')
->orderBy('yearmonth', 'asc')
->get();
 
$dataset = [];
$labels = [];
foreach ($results as $result) {
$dataset[] = $result->data;
$labels[] = $result->year . ' / ' . $result->month;
}
 
$chart = new AgorakitChart;
$chart->title('Discussions per month');
$chart->labels($labels);
$chart->dataset('Amount', 'line', $dataset);
$charts[] = $chart;
//
}
}

resources/views/admin/insights.blade.php

Open in GitHub
@foreach ($charts as $chart)
<div style="height: 300px" class="mb-4">
{!! $chart->container() !!}
</div>
{!! $chart->script() !!}
@endforeach