diff --git a/app/Http/Controllers/HasilBimbinganController.php b/app/Http/Controllers/HasilBimbinganController.php index 8abc2f4d8abb950f3b895ac7aae05813fc5d3abe..89b178910e5428e49c10639736c52f25c095be28 100644 --- a/app/Http/Controllers/HasilBimbinganController.php +++ b/app/Http/Controllers/HasilBimbinganController.php @@ -2,9 +2,11 @@ namespace App\Http\Controllers; +use App\Dosen; use App\HasilBimbingan; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Validator; class HasilBimbinganController extends Controller { @@ -23,6 +25,73 @@ class HasilBimbinganController extends Controller } } + public function showFormHasilBimbingan() { + $mhs = Auth::user()->isMahasiswa(); + if($mhs) { + $hsl_bimbingan = $mhs->getHasilBimbinganBelumDisetujui(); + //nanti diubah dosennya + $dosen = Dosen::all(); + return view('mahasiswa.form_hasil_bimbingan',['hsl_bimbingan' => $hsl_bimbingan, 'dosen' => $dosen]); + } else { + return abort(403); + } + } + + public function uploadHasilBimbingan(Request $request) { + $mahasiswa = Auth::user()->isMahasiswa(); + if($mahasiswa) { + $user = Auth::user(); + $data = $request->all(); + $ok_count = 0; + $db_hsl_bimbingan = HasilBimbingan::where('mahasiswa_id',$user->id)->where('status',0)->get(); + + $validator = $this->validateHasilBimbingan($data); + if ($validator->fails()) { + echo json_encode($validator->errors()); + } else { + $ok_count++; + if ($db_hsl_bimbingan->count() >= $ok_count) { + $cur = $db_hsl_bimbingan[$ok_count - 1]; + $cur->mahasiswa_id = $user->id; + $cur->dosen_id = $data['dosen_id']; + $cur->tanggal_waktu = $data['tanggal_waktu']; + $cur->topik = $data['topik']; + $cur->hasil_dan_diskusi = $data['hasil_dan_diskusi']; + $cur->rencana_tindak_lanjut = $data['rencana_tindak_lanjut']; + $cur->save(); + } else { + $hasil_bimbingan = HasilBimbingan::create([ + 'mahasiswa_id' => $user->id, + 'dosen_id' => $data['dosen_id'], + 'status' => 0, + 'tanggal_waktu' => $data['tanggal_waktu'], + 'topik' => $data['topik'], + 'hasil_dan_diskusi' => $data['hasil_dan_diskusi'], + 'rencana_tindak_lanjut' => $data['rencana_tindak_lanjut'] + ]); + } + } + + if($ok_count==0) { + return abort(400); + } else { + return redirect('/hasilbimbingan'); + } + } else{ + return abort (403); + } + } + + private function validateHasilBimbingan($hsl_bimbingan) { + return Validator::make($hsl_bimbingan, [ + 'dosen_id' => 'required|integer', + 'tanggal_waktu' => 'required|date', + 'topik' => 'required|string|max:255', + 'hasil_dan_diskusi' => 'required|string', + 'rencana_tindak_lanjut' => 'required|string' + ]); + } + /** * Display the specified resource. * diff --git a/resources/views/mahasiswa/form_hasil_bimbingan.blade.php b/resources/views/mahasiswa/form_hasil_bimbingan.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..b4e285339cb04e4a3fd1a1118a5ccbf800fdafbb --- /dev/null +++ b/resources/views/mahasiswa/form_hasil_bimbingan.blade.php @@ -0,0 +1,49 @@ +@extends('layouts.app') +@section('title','Hasil Bimbingan') + +@section('content') + <div class="container"> + <h2 class="text-center">Formulir Hasil Bimbingan</h2> + <br> + <div id="form-app"> + <form action="" method="post" id="form-hsl-bimbingan" > + {{csrf_field()}} + <div class="form-group"> + <div class="form-group row col-md-12"> + <label for="topik" class="col-md-4 col-form-label text-md-right text-center">Topik Bimbingan<sup>*</sup></label> + <input type="text" id="topik" name="topik" class="form-control col-md-8 " required> + </div> + <div class="form-group row col-md-12"> + <label for="dosen_id" class="col-md-4 col-form-label text-md-right text-center ">Dosen Pembimbing<sup>*</sup></label> + <select type="text" id="dosen_id" class="form-control col-md-8" name="dosen_id"> + <option value="" disabled>Pilih Dosen</option> + <option value=""></option> + @foreach($dosen as $item) + @php($user_item = $item->user()) + <option value="{{$user_item->id}}">{{$user_item->name}}</option> + @endforeach + </select> + </div> + <div class="form-group row col-md-12"> + <label for="tanggal_waktu" class="col-md-4 col-form-label text-md-right text-center">Waktu Bimbingan<sup>*</sup></label> + <input type="datetime-local" id="tanggal_waktu" name="tanggal_waktu" class="form-control col-md-8 " required> + </div> + <div class="form-group row col-md-12"> + <label for="hasil_dan_diskusi" class="col-md-4 col-form-label text-md-right text-center ">Hasil dan Diskusi<sup>*</sup></label> + <input type="text" id="hasil_dan_diskusi" name="hasil_dan_diskusi" class="form-control col-md-8 " required> + </div> + <div class="form-group row col-md-12"> + <label for="rencana_tindak_lanjut" class="col-md-4 col-form-label text-md-right text-center ">Rencana Tindak Lanjut<sup>*</sup></label> + <input type="text" id="rencana_tindak_lanjut" name="rencana_tindak_lanjut" class="form-control col-md-8 " required> + </div> + </div> + + </form> + <span><sup>*</sup>Wajib diisi</span> + <div class="row justify-content-center align-items-center"> + <button type="exit" class="btn btn-white mr-2" onclick="backpage()">Cancel</button> + <button type="submit" form="form-hsl-bimbingan" class="btn btn-blue ml-2">Submit</button> + </div> + </div> + </div> +@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index f1387920dffbdf6c240e424e1f50385c1d9a5008..cf8931a5bb4d71569a3ee1574fcf9d6860746889 100644 --- a/routes/web.php +++ b/routes/web.php @@ -54,4 +54,5 @@ Route::get('/proposal/download/{id}/{filename}','ProposalController@download'); Route::post('/proposal/penerimaan','ProposalController@approval')->name('proposal-penerimaan'); Route::get('/hasilbimbingan','HasilBimbinganController@showListHasilBimbingan'); -Route::get('/hasilbimbingan/{id}','HasilBimbinganController@showListHasilBimbingan'); \ No newline at end of file +Route::get('/hasilbimbingan/tambah','HasilBimbinganController@showFormHasilBimbingan'); +Route::post('/hasilbimbingan/tambah','HasilBimbinganController@uploadHasilBimbingan'); \ No newline at end of file