@extends('Layouts.app') @section('content')
{{-- Notifikasi Sukses --}} @if(session('success')) @endif {{-- Notifikasi Gagal/Error --}} @if(session('error')) @endif {{-- Bagian atas course info --}}

{{ $course->title }} | {{ $course->lecturer_name }} | {{ $course->code }}

{{-- Tombol Gradebook untuk Dosen & Superadmin --}} @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin')) View Gradebook @endif @for ($i = 1; $i <= $course->number_of_meetings; $i++) @php $meetingContents = $meetings->where('meeting_number', $i)->sortBy('type'); $hasContent = $meetingContents->isNotEmpty(); $forumMeeting = $course->meetings()->where('meeting_number', $i)->where('type', 'forum')->first(); @endphp
{{-- Flex container to align heading and button --}}

Pertemuan {{ $i }}

@if($forumMeeting) Buka Diskusi @else
@csrf
@endif @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin'))
@endif
{{-- ... the rest of the meeting content ... --}} @if (!$hasContent)

Belum ada konten untuk pertemuan ini.

@else
@foreach ($meetingContents as $content)

{{ ucfirst($content->type) }}: {{ $content->title }}

{{ $content->description }}

{{-- Tampilkan konten berdasarkan tipe --}} @if ($content->type === 'materi') {{-- Ganti bagian ini --}}

Topik Materi:

@foreach ($content->materials as $material)
@if ($material->file_path) Unduh File: {{ basename($material->file_path) }} @endif @if ($material->video_link) {{-- Bagian ini yang kita ubah --}} Tonton Video @endif
@endforeach @elseif ($content->type === 'url')

Daftar Link:

@forelse ($content->meetingUrls as $url) @empty

Tidak ada link yang tersedia.

@endforelse @elseif ($content->type === 'tugas' || $content->type === 'quiz' || $content->type === 'uts' || $content->type === 'uas') {{-- Logika untuk Dosen --}} @if (($content->type === 'tugas'|| $content->type === 'quiz' || $content->type === 'uts' || $content->type === 'uas' ) && $content->assignments->isNotEmpty() ) @php $assignment = $content->assignments->first(); $courseCode = $assignment->meeting->course->code; @endphp @if(Auth::check() && (Auth::user()->level === 'dosen' || Auth::user()->level === 'superadmin')) Kelola Pengumpulan & Nilai @endif @endif

{{ ucfirst($content->type) }} @if ($content->assignments->isNotEmpty())
Tanggal Mulai {{ \Carbon\Carbon::parse($content->assignments->first()->start_date)->isoFormat('D MMMM YYYY - HH:mm') }} WIB
Batas Akhir: {{ \Carbon\Carbon::parse($content->assignments->first()->end_date)->isoFormat('D MMMM YYYY - HH:mm') }} WIB @endif

@foreach ($content->assignments as $assignment)
{{-- Tampilkan file soal jika ada --}} @if ($assignment->file_path) Unduh File Soal @endif {{-- Logika untuk Mahasiswa (submission) --}} @if(Auth::check() && Auth::user()->level === 'mahasiswa') @php $userSubmission = $assignment->submissions->where('user_id', Auth::user()->id_user)->first(); $now = now(); $isLateSubmissionAllowed = $assignment->allow_late_submission; $isClosed = $now->greaterThan($assignment->end_date); @endphp {{-- Bagian untuk menampilkan status pengumpulan saat ini --}} @if ($userSubmission)
@if ($userSubmission->status === 'late') Anda sudah mengumpulkan tugas ini (Terlambat). @else Anda sudah mengumpulkan tugas ini (Tepat Waktu). @endif

Waktu Pengumpulan: **{{ \Carbon\Carbon::parse($userSubmission->submission_date)->isoFormat('D MMMM YYYY - HH:mm') }} WIB**

Status: **{{ ucfirst($userSubmission->status) }}**

Lihat File Jawaban Anda {{-- Menampilkan Nilai dan Feedback --}} @if ($userSubmission->grade !== null)

Nilai Anda: {{ $userSubmission->grade }}

@if ($userSubmission->feedback)

Feedback dari Dosen:

"{{ $userSubmission->feedback }}"

@endif
@else

Nilai dan feedback belum tersedia.

@endif
@endif {{-- Bagian untuk form unggah/unggah ulang --}} @if ((!$userSubmission || ($userSubmission && $userSubmission->grade === null)) && (!$isClosed || ($isClosed && $isLateSubmissionAllowed)))
@csrf
@error('submission_file')

{{ $message }}

@enderror
@if ($isClosed && $isLateSubmissionAllowed)

Pengumpulan ini akan dicatat sebagai **Terlambat**.

@endif @elseif ($isClosed && !$isLateSubmissionAllowed && !$userSubmission)
Waktu pengumpulan sudah habis dan tidak ada toleransi keterlambatan.
@endif @endif
@endforeach @elseif ($content->type === 'absensi') @php $isAttendanceOpen = now()->greaterThanOrEqualTo($content->start_date) && now()->lessThanOrEqualTo($content->end_date); $myAttendance = $content->attendances->where('user_id', Auth::user()->id_user)->first(); @endphp @if (Auth::user()->level === 'mahasiswa') @if ($myAttendance) {{-- Tampilkan status absensi yang tercatat di database --}} @if ($myAttendance->status === 'present')

Anda sudah absen dengan status: Hadir.

@elseif ($myAttendance->status === 'absent')

Status absensi Anda: Tidak Hadir.

@elseif ($myAttendance->status === 'izin')

Status absensi Anda: Izin.

@else

Status absensi Anda: {{ ucfirst($myAttendance->status) }}.

@endif @elseif ($isAttendanceOpen) {{-- Tampilkan tombol absen hanya jika absensi dibuka dan belum ada data absensi --}}

Absensi sedang dibuka!

{{-- Gunakan ID unik untuk tombol --}} @else {{-- Tampilkan pesan jika absensi belum dibuka atau sudah ditutup --}}

Absensi belum dibuka/sudah ditutup.

@endif @endif {{-- Buat modal untuk setiap pertemuan dengan ID unik --}} {{-- Kode absensi yang sudah ada --}} @if ($content->start_date)


Absensi dibuka mulai tanggal {{ \Carbon\Carbon::parse($content->start_date)->isoFormat('D MMMM YYYY - HH:mm') }} WIB - Hingga {{ \Carbon\Carbon::parse($content->end_date)->isoFormat('D MMMM YYYY - HH:mm') }} WIB.

@endif {{-- Tampilan untuk Dosen --}} @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin'))

Kontrol Absensi:

{{-- Tombol tunggal untuk mengelola absensi, mengarah ke halaman baru --}} Kelola Absensi
{{-- Tampilkan rekapitulasi cepat di sini --}} @php // Get all attendance records for the current content $attendances = $content->attendances; // Filter the already-loaded enrolled users // This is the collection of 'mahasiswa' you got from the controller $mahasiswaEnrolled = $enrolledUsers; // Count present students by checking if their user_id is in the attendance collection $presentCount = $mahasiswaEnrolled->filter(function ($enrol) use ($attendances) { return $attendances->contains(function ($attendance) use ($enrol) { return $attendance->user_id === $enrol->user_id && $attendance->status === 'present'; }); })->count(); // Count students who are marked as 'izin' $izinCount = $mahasiswaEnrolled->filter(function ($enrol) use ($attendances) { return $attendances->contains(function ($attendance) use ($enrol) { return $attendance->user_id === $enrol->user_id && $attendance->status === 'izin'; }); })->count(); // The number of 'mahasiswa' who haven't had their attendance taken yet $nopresentCount = $mahasiswaEnrolled->count() - ($presentCount + $izinCount); @endphp
Hadir: {{ $presentCount }}
Tidak Hadir: {{ $nopresentCount }}
Izin: {{ $izinCount }}
{{-- Anda bisa menambahkan hitungan Izin jika ada di tabel --}}
@endif @endif {{-- Tombol untuk dosen/superadmin --}} @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin'))
Edit Topik
@csrf @method('DELETE')
@endif
@endforeach
@endif {{-- Tombol "Tambah Konten" untuk dosen/superadmin (tambahkan di bawah konten yang sudah ada) --}} @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin')) @endif
@endfor @if(Auth::check() && (Auth::user()->level == 'dosen' || Auth::user()->level == 'superadmin'))
@csrf
@endif
@endsection @push('scripts') @endpush