diff --git a/app/Http/Requests/Admin/Services/LetterRequestRequest.php b/app/Http/Requests/Admin/Services/LetterRequestRequest.php index 85c6fc1..fecbd3e 100644 --- a/app/Http/Requests/Admin/Services/LetterRequestRequest.php +++ b/app/Http/Requests/Admin/Services/LetterRequestRequest.php @@ -30,7 +30,7 @@ public function rules(): array 'student_id' => ['required', 'integer', Rule::exists('students', 'id')], 'letter_type' => ['required', 'string', 'max:100'], 'purpose' => ['nullable', 'string'], - 'status' => ['nullable', Rule::enum(LetterStatus::class)], + 'status' => ['required', Rule::enum(LetterStatus::class)], 'result' => ['nullable', 'file', 'max:10240', 'mimes:pdf,jpg,jpeg,png,doc,docx'], ]; } diff --git a/resources/js/components/form-dialog.tsx b/resources/js/components/form-dialog.tsx index 1069f38..d332413 100644 --- a/resources/js/components/form-dialog.tsx +++ b/resources/js/components/form-dialog.tsx @@ -62,7 +62,7 @@ export function FormDialog({ {title} -
+
{typeof children === 'function' ? children({ errors, processing }) : children} diff --git a/resources/js/pages/admin/feedback/index.tsx b/resources/js/pages/admin/feedback/index.tsx index 7e7bbfa..15cad6e 100644 --- a/resources/js/pages/admin/feedback/index.tsx +++ b/resources/js/pages/admin/feedback/index.tsx @@ -1,3 +1,7 @@ +import { Head, Link, router } from '@inertiajs/react'; +import { format } from 'date-fns'; +import { Info, Plus } from 'lucide-react'; +import { useState } from 'react'; import type { PaginationState } from '@/components/data-table'; import { DataTable } from '@/components/data-table'; import { DeleteConfirmDialog } from '@/components/delete-confirm-dialog'; @@ -27,10 +31,6 @@ import { } from '@/routes/admin/feedback'; import type { Feedback } from '@/types/feedback'; import { FeedbackStatusLabels, FeedbackTypeLabels } from '@/types/feedback'; -import { Head, Link, router } from '@inertiajs/react'; -import { format } from 'date-fns'; -import { Info, Plus } from 'lucide-react'; -import { useState } from 'react'; import { createFeedbackColumns, FeedbackStatusVariants } from './columns'; type FeedbackTypeOption = { value: string; label: string }; @@ -159,8 +159,8 @@ export default function FeedbackIndex({ Ubah status Kritik dan Saran - Klik badge Status pada tabel untuk mengubah status Kritik dan Saran - secara langsung. + Klik badge Status pada tabel untuk mengubah status + Kritik dan Saran secara langsung. @@ -217,7 +217,7 @@ function ViewDetailDialog({ {feedback && ( -
+
{FeedbackTypeLabels[feedback.type]} diff --git a/resources/js/pages/admin/services/academic-advising-logs/index.tsx b/resources/js/pages/admin/services/academic-advising-logs/index.tsx index 427ef61..eb803c6 100644 --- a/resources/js/pages/admin/services/academic-advising-logs/index.tsx +++ b/resources/js/pages/admin/services/academic-advising-logs/index.tsx @@ -11,15 +11,16 @@ import { FormDialog } from '@/components/form-dialog'; import InputError from '@/components/input-error'; import { PageHeader } from '@/components/page-header'; import { Button } from '@/components/ui/button'; +import { + Combobox, + ComboboxContent, + ComboboxEmpty, + ComboboxInput, + ComboboxItem, + ComboboxList, +} from '@/components/ui/combobox'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select'; import { Textarea } from '@/components/ui/textarea'; import { usePermissions } from '@/hooks/use-permissions'; import { useServerTable } from '@/hooks/use-server-table'; @@ -218,60 +219,80 @@ function AdvisingLogFields({ students: AcademicAdvisingLogStudent[]; lecturers: AcademicAdvisingLogLecturer[]; }) { + const [student, setStudent] = useState( + editing?.student ?? null, + ); + const [lecturer, setLecturer] = + useState(editing?.lecturer ?? null); + return ( <>
- {!editing && } - + + + + Mahasiswa tidak ditemukan. + + + {(s: AcademicAdvisingLogStudent) => ( + + {studentLabel(s)} + + )} + + +
- {!editing && } - + + + Dosen tidak ditemukan. + + {(l: AcademicAdvisingLogLecturer) => ( + + {lecturerLabel(l)} + + )} + + +
@@ -330,6 +351,7 @@ function CreateForm({ {({ errors }) => (
( + editing?.student ?? null, + ); + return ( <>
- {!editing && } - + + + + Mahasiswa tidak ditemukan. + + + {(s: LetterRequestStudent) => ( + + {studentLabel(s)} + + )} + + +
@@ -264,7 +284,9 @@ function LetterRequestFields({
- +