diff --git a/app/Filament/Resources/Learning/ClassSessions/Actions/CopyAssignmentLinkAction.php b/app/Filament/Resources/Learning/Assignments/Actions/CopyAssignmentLinkAction.php similarity index 74% rename from app/Filament/Resources/Learning/ClassSessions/Actions/CopyAssignmentLinkAction.php rename to app/Filament/Resources/Learning/Assignments/Actions/CopyAssignmentLinkAction.php index d4b8a95..32202cd 100644 --- a/app/Filament/Resources/Learning/ClassSessions/Actions/CopyAssignmentLinkAction.php +++ b/app/Filament/Resources/Learning/Assignments/Actions/CopyAssignmentLinkAction.php @@ -1,9 +1,9 @@ color('gray') ->icon('heroicon-o-clipboard-document') ->action(function (array $arguments, $livewire) { - $course = $livewire->course; - $session = ClassSession::find($arguments['session'] ?? null); + $assignment = Assignment::find($arguments['record'] ?? null); + $course = $assignment ? $assignment->course : null; + + if (! $course || ! $assignment) { + return; + } $url = URL::temporarySignedRoute('share.assignment', now()->addHour(), [ 'course' => $course->id, - 'session_id' => $session ? $session->id : null, + 'assignment_id' => $assignment->id, ]); $livewire->js("if (navigator.clipboard) { navigator.clipboard.writeText('{$url}').catch(() => {}); }"); diff --git a/app/Filament/Resources/Learning/ClassSessions/Actions/ShareAssignmentAction.php b/app/Filament/Resources/Learning/Assignments/Actions/ShareAssignmentAction.php similarity index 68% rename from app/Filament/Resources/Learning/ClassSessions/Actions/ShareAssignmentAction.php rename to app/Filament/Resources/Learning/Assignments/Actions/ShareAssignmentAction.php index f168dc6..651b160 100644 --- a/app/Filament/Resources/Learning/ClassSessions/Actions/ShareAssignmentAction.php +++ b/app/Filament/Resources/Learning/Assignments/Actions/ShareAssignmentAction.php @@ -1,8 +1,8 @@ requiresConfirmation() ->modalIcon('heroicon-o-paper-airplane') ->modalHeading('Bagikan Info Tugas') - ->modalDescription('Pilih metode untuk membagikan tautan publik status pengumpulan tugas sesi ini.') + ->modalDescription('Pilih metode untuk membagikan tautan publik status pengumpulan tugas ini.') ->modalSubmitActionLabel('Ke WhatsApp') ->modalCancelAction(false) ->extraModalFooterActions([ CopyAssignmentLinkAction::make(), ]) ->action(function (array $arguments, $livewire) { - $course = $livewire->course; - $session = ClassSession::find($arguments['session'] ?? null); + $assignment = Assignment::with(['course'])->find($arguments['record'] ?? null); + $course = $assignment ? $assignment->course : null; + + if (! $course || ! $assignment) { + return; + } $url = URL::temporarySignedRoute('share.assignment', now()->addHour(), [ 'course' => $course->id, - 'session_id' => $session ? $session->id : null, + 'assignment_id' => $assignment->id, ]); - $text = "*Info Tugas Kelas {$course->name}*\nSesi ke-".($session->session_number ?? '-').' ('.($session->date->translatedFormat('d M Y') ?? '').")\n\nSilakan cek status pengumpulan tugas melalui tautan publik berikut:\n\n{$url}"; + $text = "*Info Tugas Kelas {$course->name}*\nJudul: {$assignment->title}\n\nSilakan cek status pengumpulan tugas melalui tautan publik berikut:\n\n{$url}"; $escapedText = json_encode($text); diff --git a/app/Filament/Resources/Learning/Assignments/Pages/ListAssignments.php b/app/Filament/Resources/Learning/Assignments/Pages/ListAssignments.php index 10b7300..c1241ca 100644 --- a/app/Filament/Resources/Learning/Assignments/Pages/ListAssignments.php +++ b/app/Filament/Resources/Learning/Assignments/Pages/ListAssignments.php @@ -7,6 +7,7 @@ use App\Filament\Resources\Learning\Assignments\Actions\DeleteAssignmentAction; use App\Filament\Resources\Learning\Assignments\Actions\EditAssignmentAction; use App\Filament\Resources\Learning\Assignments\Actions\PinAction; +use App\Filament\Resources\Learning\Assignments\Actions\ShareAssignmentAction; use App\Filament\Resources\Learning\Assignments\AssignmentResource; use App\Filament\Support\SystemNotification; use App\Models\Assignment; @@ -96,6 +97,11 @@ public function deleteAssignmentAction(): Action ->visible(fn () => auth()->user()->can('Delete:Assignment')); } + public function shareAssignmentAction(): Action + { + return ShareAssignmentAction::make(); + } + #[Computed] public function assignments(): Collection { diff --git a/app/Filament/Resources/Learning/ClassSessions/Pages/ListCourseSessions.php b/app/Filament/Resources/Learning/ClassSessions/Pages/ListCourseSessions.php index 9e203a5..2761bb7 100644 --- a/app/Filament/Resources/Learning/ClassSessions/Pages/ListCourseSessions.php +++ b/app/Filament/Resources/Learning/ClassSessions/Pages/ListCourseSessions.php @@ -6,7 +6,6 @@ use App\Filament\Resources\Learning\ClassSessions\Actions\DeleteSessionAction; use App\Filament\Resources\Learning\ClassSessions\Actions\EditSessionAction; use App\Filament\Resources\Learning\ClassSessions\Actions\GenerateSessionsAction; -use App\Filament\Resources\Learning\ClassSessions\Actions\ShareAssignmentAction; use App\Filament\Resources\Learning\ClassSessions\Actions\ShareAttendanceAction; use App\Filament\Resources\Learning\ClassSessions\ClassSessionResource; use App\Models\ClassSession; @@ -140,7 +139,6 @@ protected function getActions(): array { return [ $this->shareAttendanceAction(), - $this->shareAssignmentAction(), $this->viewAttendanceAction(), $this->viewMaterialsAction(), $this->viewAssignmentsAction(), @@ -155,11 +153,6 @@ public function shareAttendanceAction(): Action return ShareAttendanceAction::make(); } - public function shareAssignmentAction(): Action - { - return ShareAssignmentAction::make(); - } - public function viewAttendanceAction(): Action { return Action::make('viewAttendance') diff --git a/resources/views/filament/resources/learning/assignments/index.blade.php b/resources/views/filament/resources/learning/assignments/index.blade.php index 4fb766c..e0ac982 100644 --- a/resources/views/filament/resources/learning/assignments/index.blade.php +++ b/resources/views/filament/resources/learning/assignments/index.blade.php @@ -12,74 +12,74 @@ -