From 25627209ba5717f2a5f0362cde920d2463fff737 Mon Sep 17 00:00:00 2001 From: Kurniandha Sukma Yunastrian <13516106@std.stei.itb.ac.id> Date: Sun, 12 Apr 2020 00:54:25 +0700 Subject: [PATCH] add learn page for teacher and student --- app/Http/Controllers/LearnController.php | 74 ++++++++++++++++++++---- public/js/text.js | 3 +- resources/views/course.blade.php | 6 +- resources/views/edit.blade.php | 62 ++++++++++++++++++++ resources/views/layouts/app.blade.php | 2 +- resources/views/learn.blade.php | 11 +--- resources/views/test.blade.php | 0 routes/web.php | 9 ++- 8 files changed, 138 insertions(+), 29 deletions(-) create mode 100644 resources/views/edit.blade.php create mode 100644 resources/views/test.blade.php diff --git a/app/Http/Controllers/LearnController.php b/app/Http/Controllers/LearnController.php index 32422a6..b9ce8ab 100644 --- a/app/Http/Controllers/LearnController.php +++ b/app/Http/Controllers/LearnController.php @@ -25,7 +25,17 @@ class LearnController extends Controller */ public function index($id_course, $id_spreadsheet) { - return view('learn', ['id_spreadsheet' => $id_spreadsheet]); + $client = LearnController::getClient(); + $service = new \Google_Service_Drive($client); + $copy = new \Google_Service_Drive_DriveFile(); + + $response = $service->files->copy($id_spreadsheet, $copy); + + $permission_response = LearnController::edit_permission($response->id); + + $topic = DB::table('topics')->where('id_spreadsheet', $id_spreadsheet)->first(); + $content = $topic->content; + return view('learn', ['id_spreadsheet' => $response->id, 'content' => $content]); } /** @@ -47,13 +57,7 @@ class LearnController extends Controller ]); $response = $service->spreadsheets->create($spreadsheet, ['fields' => 'spreadsheetId']); - // Edit permission - $service2 = new \Google_Service_Drive($client); - $permission2 = new \Google_Service_Drive_Permission([ - 'role' => 'writer', - 'type' => 'anyone' - ]); - $response2 = $service2->permissions->create($response->spreadsheetId, $permission2); + $permission_response = LearnController::edit_permission($response->spreadsheetId); if (empty($response->spreadsheetId)) { $msg = 0; @@ -69,16 +73,62 @@ class LearnController extends Controller return redirect()->route('course', ['id_course' => $id_course, 'msg' => $msg]); } + /** + * Edit Permission. + * + * @return response + */ + public function edit_permission($id) + { + $client = LearnController::getClient(); + $service = new \Google_Service_Drive($client); + $permission = new \Google_Service_Drive_Permission([ + 'role' => 'writer', + 'type' => 'anyone' + ]); + $response = $service->permissions->create($id, $permission); + + return $response; + } + /** * Edit Spreadsheet. * + * @return view + */ + public function edit($id_course, $id_spreadsheet) + { + $topic = DB::table('topics')->where('id_spreadsheet', $id_spreadsheet)->first(); + return view('edit', ['id_spreadsheet' => $id_spreadsheet, 'topic' => $topic]); + } + + /** + * Save Spreadsheet. + * + * @return message + */ + public function save(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 + ]); + } + + /** + * Save Spreadsheet. + * * @return message */ - public function edit(Request $request) + public function test() { - echo 'htmlentities'; - echo htmlentities('_token=g3S3CcOUpXXaTOIdwsxCZzejdAlRzpFTGXoV5C5j&%E2%80%9DmyTextarea%E2%80%9D=%3Cp%3ENext%2C+use+our+Get+Started+docs+to+setup+Tiddny%21%3C%2Fp%3E'); - echo $request->Next; + $profile = DB::table('topics')->where('id', 5)->first(); + echo $profile->content; } /** diff --git a/public/js/text.js b/public/js/text.js index 55a4b68..9232f5c 100644 --- a/public/js/text.js +++ b/public/js/text.js @@ -17,7 +17,8 @@ function iOrderedList(){ richTextField.document.execCommand("InsertUnorderedList", false,"newUL"); } function submit_form(){ + console.log(tinymce.get('rich').getContent({format : 'raw'})); var theForm = document.getElementById("myform"); - theForm.elements["myTextArea"].value = window.frames['richTextField'].document.body.innerHTML; + theForm.elements["myTextArea"].value = tinymce.get('rich').getContent({format : 'raw'}); theForm.submit(); } \ No newline at end of file diff --git a/resources/views/course.blade.php b/resources/views/course.blade.php index 83b9157..ebb19b8 100644 --- a/resources/views/course.blade.php +++ b/resources/views/course.blade.php @@ -31,7 +31,11 @@ <div id="collapse<?php echo $topic->id; ?>" class="collapse show" aria-labelledby="heading<?php echo $topic->id; ?>" data-parent="#accordionTopics"> <div class="card-body"> {{ $topic->content }} <br/> <br/> - <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id_spreadsheet; ?>" class="btn btn-primary" role="button">Buka Topik</a> + @if(Auth::user()->role == 1) + <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id_spreadsheet; ?>/edit" class="btn btn-primary" role="button">Buka Topik</a> + @else + <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id_spreadsheet; ?>" class="btn btn-primary" role="button">Buka Topik</a> + @endif </div> </div> </div> diff --git a/resources/views/edit.blade.php b/resources/views/edit.blade.php new file mode 100644 index 0000000..70c7f3d --- /dev/null +++ b/resources/views/edit.blade.php @@ -0,0 +1,62 @@ +@extends('layouts.app') + +@section('content') +<!-- <form action="<?php echo Request::url(); ?>/edit/submit" name="myform" id="myform" method="post"> + {{ csrf_field() }} + <div id="wysiwyg_cp" style="padding:8px; width:700px;"> + <input type="button" onClick="iBold()" value="B"> + <input type="button" onClick="iUnderline()" value="U"> + <input type="button" onClick="iItalic()" value="I"> + <input type="button" onClick="iUnorderedList()" value="UL"> + <input type="button" onClick="iOrderedList()" value="OL"> + </div> + <textarea style="display:none;" name="myTextArea" id="myTextArea" cols="100" rows="14"></textarea> + <iframe name="richTextField" id="richTextField" style="border:#000000 1px solid; width:700px; height:300px;"></iframe> + <input name="myBtn" type="button" value="Submit Data" onClick="javascript:submit_form();"/> +</form> --> +<div class="container-fluid"> + <div class="row"> + <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 + <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> + </div> + <div id="collapse2" class="collapse" aria-labelledby="heading2" data-parent="#accordionCourses"> + Iki isinie + </div> + </div> + </div> + </div> + <div class="col-lg-8"> + <iframe + style="width:100%; height:500px; border: 1px solid grey;" + frameBorder="0" + src="https://docs.google.com/spreadsheets/d/<?php echo $id_spreadsheet; ?>/edit?usp=drivesdk&rm=embedded"> + </iframe> + </div> + </div> +</div> +@endsection \ No newline at end of file diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 4938925..407fd88 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -13,7 +13,7 @@ <script src="{{ asset('js/app.js') }}" defer></script> <script src="{{ asset('js/text.js') }}" defer></script> <script src="https://cdn.tiny.cloud/1/yaezxtmh9h1roazzxnkx70is63n62nbov3xskxim3rpnbcoj/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script> - <script>tinymce.init({selector:'mtextarea'});</script> + <script>tinymce.init({selector:'textarea'});</script> <!-- Fonts --> <link rel="dns-prefetch" href="//fonts.gstatic.com"> diff --git a/resources/views/learn.blade.php b/resources/views/learn.blade.php index ef515a1..f0d6d32 100644 --- a/resources/views/learn.blade.php +++ b/resources/views/learn.blade.php @@ -20,16 +20,9 @@ <div class="card"> <div class="card-header">Judul</div> <div class="card-body"> - Ahaii + <?php echo $content;?> </div> </div> - <div> - <form action="<?php echo Request::url(); ?>/edit/submit" method="post"> - {{ csrf_field() }} - <mtextarea name=â€myTextarea†id=â€myTextareaâ€>Next, use our Get Started docs to setup Tiddny!</mtextarea> - <button type="submit" class="btn btn-primary"><b>Submit</b></button> - </form> - </div> </div> <div class="col-lg-8"> <iframe @@ -37,7 +30,7 @@ frameBorder="0" src="https://docs.google.com/spreadsheets/d/<?php echo $id_spreadsheet; ?>/edit?usp=drivesdk&rm=embedded"> </iframe> - <form action="<?php echo Request::url(); ?>/submit" method="post"> + <form action="<?php echo Request::url(); ?>/submit" name="myform" id="myform" method="post"> <input type="hidden" value="<?php echo $id_spreadsheet; ?>" class="form-control" name="id_spreadsheet" id="id_spreadsheet"> <button style="float: right;" type="submit" class="btn btn-success"><b>Submit</b></button> </form> diff --git a/resources/views/test.blade.php b/resources/views/test.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/routes/web.php b/routes/web.php index e647eca..5311d3c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,15 +14,14 @@ Route::get('/', function () { return view('welcome'); }); -Route::get('/test', function () { - return view('test'); -}); + Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); +Route::get('/test', 'LearnController@test')->name('test'); Route::get('/course/{id_course}', 'CourseController@index')->name('course'); Route::post('/course/{id_course}/learn/new', 'LearnController@new')->name('learn/new'); Route::get('/course/{id_course}/learn/{id_spreadsheet}', 'LearnController@index')->name('learn'); -Route::get('/course/{id_course}/learn/{id_spreadsheet}/edit', 'LearnController@edit')->name('learn/edit'); -Route::post('/course/{id_course}/learn/{id_spreadsheet}/edit/submit', 'LearnController@edit')->name('learn/edit'); +Route::get('/course/{id_course}/learn/{id_spreadsheet}/edit', 'LearnController@edit')->name('edit'); +Route::post('/course/{id_course}/learn/{id_spreadsheet}/edit/save', 'LearnController@save')->name('edit/save'); Route::post('/course/{id_course}/learn/{id_spreadsheet}/submit', 'LearnController@submit')->name('learn/submit'); \ No newline at end of file -- GitLab