diff --git a/app/Http/Controllers/AutograderController.php b/app/Http/Controllers/AutograderController.php index 6221b3b9fca390ac8a2af8ce34847252ec972405..b349bd6d9d349ce709e036a4aa4a78270bf6cff4 100644 --- a/app/Http/Controllers/AutograderController.php +++ b/app/Http/Controllers/AutograderController.php @@ -137,7 +137,7 @@ class AutograderController extends Controller if ($response->values == NULL) { $answers[] = NULL; } else { - $answers[] = strval(($response->values)[0][0]); + $answers[] = strtoupper(strval(($response->values)[0][0])); } } @@ -146,23 +146,6 @@ class AutograderController extends Controller public function test() { - $item1 = []; - $item2 = []; - - $item1[] = '=SUM'; - $item1[] = 'A1'; - $item1[] = 'A2'; - $item1[] = 'A3'; - - $item2[] = '=SUM'; - $item2[] = 'A8'; - $item2[] = 'A2'; - $item2[] = 'A1'; - - $arr_intersection = count(array_intersect( $item1, $item2 )); - $arr_union = count(array_merge( $item1, $item2 )) - $arr_intersection; - $coefficient = $arr_intersection / $arr_union; - - echo "koefisien = " . $coefficient; + echo strtoupper("=sum(A1,A2)"); } } diff --git a/app/Http/Controllers/LearnController.php b/app/Http/Controllers/LearnController.php index 303f277655f13a1c06986c3371daf2fe75612d6d..9b81636331e3442d051a4c383d9c977664092f3f 100644 --- a/app/Http/Controllers/LearnController.php +++ b/app/Http/Controllers/LearnController.php @@ -108,17 +108,55 @@ class LearnController extends Controller * * @return message */ - public function save(Request $request) + public function save($id_course, $id_topic, Request $request) { - echo $request->id_spreadsheet; - echo $request->myTextArea; - echo $request->richh; - DB::table('topics')->insert([ - 'id_course' => '2', - 'name' => 'ahaha', - 'content' => $request->richh, - 'id_spreadsheet' => $request->id_spreadsheet + $cells = []; + foreach ($request->cells as $cell) { + $cells[] = strtoupper($cell); + } + + $client = LearnController::getClient(); + $service = new \Google_Service_Sheets($client); + + // Get Answer + $responses = $service->spreadsheets_values->batchGet($request->id_spreadsheet, [ + 'valueRenderOption' => 'FORMULA', + 'dateTimeRenderOption' => 'SERIAL_NUMBER', + 'ranges' => $cells + ]); + + $answers = []; + foreach ($responses->valueRanges as $response) { + if ($response->values == NULL) { + $answers[] = NULL; + } else { + $answers[] = strtoupper(strval(($response->values)[0][0])); + } + } + + // Clear Answer + $requestBody = new \Google_Service_Sheets_BatchClearValuesRequest([ + 'ranges' => $cells ]); + + $response = $service->spreadsheets_values->batchClear($request->id_spreadsheet, $requestBody); + + // Save to Database + DB::table('spreadsheets')->where('id',$id_topic)->delete(); + for ($i=0; $i<count($answers); $i++) { + DB::table('spreadsheets')->insert([ + 'id' => $id_topic, + 'cell' => $cells[$i], + 'value' => $answers[$i], + 'type' => 0 + ]); + } + + DB::table('topics')->where('id', $id_topic)->update([ + 'content' => $request->rich_text, + ]); + + return redirect()->route('course', ['id_course' => $id_course, 'msg' => 2]); } /** diff --git a/public/js/learn.js b/public/js/learn.js index c710941b621753f923850121541647e7d0988e19..e42ad59958790cdcc963a83ce4fe3d530d14e911 100644 --- a/public/js/learn.js +++ b/public/js/learn.js @@ -14,4 +14,15 @@ function submit(id_spreadsheet, url) { xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader('X-CSRF-TOKEN', $('meta[name="csrf-token"]').attr('content')); xmlhttp.send("id_spreadsheet=" + id_spreadsheet); +} + +function setForm(number) { + if (number > 0) { + document.getElementById("cell-answers").innerHTML = ''; + var str = ""; + for (i=0; i<number; i++) { + str = str.concat('<div class="col-3" style="margin-bottom:1rem;"> <input type="text" name="cells[]" class="form-control"></div>'); + } + document.getElementById("cell-answers").innerHTML = str; + } } \ No newline at end of file diff --git a/resources/views/course.blade.php b/resources/views/course.blade.php index e2adfd3e1225194edacccc16bb8a11fec010fcc7..6b5b2d0354324ff6db1d54bcef0ea7d09ceba979 100644 --- a/resources/views/course.blade.php +++ b/resources/views/course.blade.php @@ -4,12 +4,25 @@ <div class="container"> @isset(request()->msg) @if( request()->get('msg') == 1 ) - <div class="alert alert-success" role="alert"> + <div class="alert alert-success alert-dismissible fade show" role="alert"> Pembuatan Topik Berhasil + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + @elseif( request()->get('msg') == 2 ) + <div class="alert alert-success alert-dismissible fade show" role="alert"> + Perubahan Topik Berhasil Disimpan + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> </div> @else - <div class="alert alert-danger" role="alert"> + <div class="alert alert-danger alert-dismissible fade show" role="alert"> Pembuatan Topik Gagal + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> </div> @endif @endisset @@ -40,10 +53,13 @@ </div> </div> @endforeach - </div> <br/> - <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter"> - Tambah Topik - </button> + </div> + @if(Auth::user()->role == 1) + <br/> + <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter"> + Tambah Topik + </button> + @endif <div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> diff --git a/resources/views/edit.blade.php b/resources/views/edit.blade.php index 70c7f3d17e0dc9fb2d7cf3e7ed70b3733bed1950..75e71a145ae198ab71844ee73a80f291a66596ad 100644 --- a/resources/views/edit.blade.php +++ b/resources/views/edit.blade.php @@ -19,35 +19,57 @@ <div class="col-lg-4"> <h4>Materi: {{ $topic->name }}</h4> <div class="accordion" id="accordionCourses"> - <div class="card"> - <div class="card-header" id="heading1" style="transform: rotate(0);"> - <h5 class="mb-0"> - <button class="btn stretched-link" type="button" data-toggle="collapse" data-target="#collapse1" aria-expanded="false" aria-controls="collapse1"> - Persoalan - </button> - </h5> - </div> - <div id="collapse1" class="collapse show" aria-labelledby="heading1" data-parent="#accordionCourses"> - <form action="<?php echo Request::url(); ?>/save" name="myform" id="myform" method="post"> - @csrf + <form action="<?php echo Request::url(); ?>/save" name="myform" id="myform" method="post"> + @csrf + <div class="card"> + <div class="card-header" id="heading1" style="transform: rotate(0);"> + <h5 class="mb-0"> + <button class="btn stretched-link" type="button" data-toggle="collapse" data-target="#collapse1" aria-expanded="false" aria-controls="collapse1"> + Atur Persoalan + </button> + </h5> + </div> + <div id="collapse1" class="collapse show" aria-labelledby="heading1" data-parent="#accordionCourses"> <input type="hidden" value="<?php echo $id_spreadsheet; ?>" class="form-control" name="id_spreadsheet" id="id_spreadsheet"> - <textarea name="richh" id="richh"><?php echo $topic->content;?></textarea> - <button style="float: right; margin-top: 1rem; margin-bottom: 1rem;" type="submit" class="btn btn-primary"><b>Simpan</b></button> - </form> - </div> - </div> - <div class="card"> - <div class="card-header" id="heading2" style="transform: rotate(0);"> - <h5 class="mb-0"> - <button class="btn stretched-link" type="button" data-toggle="collapse" data-target="#collapse2" aria-expanded="false" aria-controls="collapse2"> - Kunci Jawaban - </button> - </h5> + <textarea name="rich_text" id="rich_text"><?php echo $topic->content;?></textarea> + </div> </div> - <div id="collapse2" class="collapse" aria-labelledby="heading2" data-parent="#accordionCourses"> - Iki isinie + <div class="card"> + <div class="card-header" id="heading2" style="transform: rotate(0);"> + <h5 class="mb-0"> + <button class="btn stretched-link" type="button" data-toggle="collapse" data-target="#collapse2" aria-expanded="false" aria-controls="collapse2"> + Atur Cell Jawaban + </button> + </h5> + </div> + <div id="collapse2" class="collapse" aria-labelledby="heading2" data-parent="#accordionCourses"> + <div class="card-body"> + <label for="exampleFormControlSelect1">Jumlah Cell Jawaban</label> + <input type="number" class="form-control" id="cell-number" min="1" value="5" onkeyup="setForm(this.value)" onchange="setForm(this.value)"> + <br/> + <label for="exampleFormControlSelect1">Masukkan Cell Jawaban</label> + <div class="row" id="cell-answers"> + <div class="col-3" style="margin-bottom:1rem;"> + <input type="text" name="cells[]" class="form-control"> + </div> + <div class="col-3" style="margin-bottom:1rem;"> + <input type="text" name="cells[]" class="form-control"> + </div> + <div class="col-3" style="margin-bottom:1rem;"> + <input type="text" name="cells[]" class="form-control"> + </div> + <div class="col-3" style="margin-bottom:1rem;"> + <input type="text" name="cells[]" class="form-control"> + </div> + <div class="col-3" style="margin-bottom:1rem;"> + <input type="text" name="cells[]" class="form-control"> + </div> + </div> + </div> + </div> </div> - </div> + <button style="float: right; margin-top: 1rem;" type="submit" class="btn btn-primary"><b>Simpan</b></button> + </form> </div> </div> <div class="col-lg-8">