Feat: implement Chart Js for analytics
This commit is contained in:
@@ -2,13 +2,16 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Models\ActivitiesAttended;
|
||||
use App\Models\ActivitiesOrganised;
|
||||
use App\Models\BooksPublished;
|
||||
use App\Models\Department;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use App\Models\ExternalEngagement;
|
||||
use App\Models\IvOrganised;
|
||||
use App\Models\OnlineCourse;
|
||||
use App\Models\Patent;
|
||||
use App\Models\Publication;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
@@ -52,4 +55,130 @@ class AdminController extends Controller
|
||||
{
|
||||
return view('pages.patents.index');
|
||||
}
|
||||
public function analyticsActivitiesAttended()
|
||||
{
|
||||
$data = ActivitiesAttended::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'activities_attendeds.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsActivitiesOrganised()
|
||||
{
|
||||
$data = ActivitiesOrganised::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'activities_organiseds.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsIvOrganised()
|
||||
{
|
||||
$data = IvOrganised::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'iv_organiseds.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsPaperPublished()
|
||||
{
|
||||
$data = Publication::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'publications.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsBooksPublished()
|
||||
{
|
||||
$data = BooksPublished::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'books_published.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsExternalEngagement()
|
||||
{
|
||||
$data = ExternalEngagement::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'external_engagements.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
|
||||
public function analyticsOnlineCourse()
|
||||
{
|
||||
$data = OnlineCourse::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'online_courses.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
public function analyticsPatent()
|
||||
{
|
||||
$data = Patent::selectRaw('departments.name as department, COUNT(*) as count')
|
||||
->join('departments', 'patents.department_id', '=', 'departments.id')
|
||||
->groupBy('departments.name')
|
||||
->get();
|
||||
|
||||
$total = $data->sum('count');
|
||||
|
||||
return response()->json([
|
||||
'labels' => $data->pluck('department'),
|
||||
'values' => $data->pluck('count'),
|
||||
'total' => $total,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user