user();
$projects = Project::skip(0)->take(3)->get();
if ($request->ajax()) {
$data = DB::table('projects')
->select('projects.id', 'projects.title', DB::raw('COUNT(submissions.id) as submission_count'))
->leftJoin('submissions', function ($join) use ($user) {
$join->on('projects.id', '=', 'submissions.project_id')
->where('submissions.user_id', '=', $user->id);
})
->groupBy('projects.id', 'projects.title');
return Datatables::of($data)
->addIndexColumn()
->addColumn('title', function ($row) {
$title_button = '' . $row->title . '';
return $title_button;
})
->addColumn('submission_count', function ($row) {
$submission_count = $row->submission_count ?? 0;
$text = $submission_count > 0 ? 'Submitted' : 'No Submission';
$span_color = $submission_count > 0 ? 'green' : 'gray';
$span = '' . ucfirst($text) . '';
return $span;
})
->rawColumns(['title', 'submission_count'])
->make(true);
}
return view('nodejs.dashboard.index', compact('projects'));
}
}