Skip to main content

agorakit/agorakit

434 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

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.