diff --git a/app/Http/Controllers/CourseController.php b/app/Http/Controllers/CourseController.php index 395046a321f436a4b345e0017356ca02bc8c4cc5..f6c71e7a14788de1284f9a004bc649108394e621 100644 --- a/app/Http/Controllers/CourseController.php +++ b/app/Http/Controllers/CourseController.php @@ -41,4 +41,39 @@ class CourseController extends Controller return view('course', ['topics' => $topics, 'students' => $students, 'teacher' => $teacher]); } + + /** + * Create new course + * + * @return newCourse + */ + public function new(Request $request) + { + $id = DB::table('courses')->insertGetId([ + 'name' => $request->course_name, + 'description' => $request->course_description, + ]); + + DB::table('user_course')->insert([ + 'id_user' => Auth::id(), + 'id_course' => $id, + 'role' => 1 + ]); + return redirect()->route('home', ['msg' => 2]); + } + + /** + * Create new course + * + * @return newCourse + */ + public function enroll(Request $request) + { + DB::table('user_course')->insert([ + 'id_user' => Auth::id(), + 'id_course' => $request->enroll_id, + 'role' => 0 + ]); + return redirect()->route('home', ['msg' => 3]); + } } diff --git a/app/Http/Controllers/LearnController.php b/app/Http/Controllers/LearnController.php index 5c3cbac6080d1f11c6a7bd2f154cc4133c8d1c58..aad3b989c45080a95ea246d7fe6691e3a8c3ab19 100644 --- a/app/Http/Controllers/LearnController.php +++ b/app/Http/Controllers/LearnController.php @@ -100,7 +100,7 @@ class LearnController extends Controller public function edit($id_course, $id_topic) { $topic = DB::table('topics')->where('id', $id_topic)->first(); - return view('edit', ['id_spreadsheet' => $topic->id_spreadsheet, 'topic' => $topic]); + return view('edit', ['id_course' => $id_course, 'id_spreadsheet' => $topic->id_spreadsheet, 'topic' => $topic]); } /** diff --git a/public/img/course1.png b/public/img/course1.png index 5835f1b9e122b187fbd4b757753464059c69e091..fd2747586fec9708659ff3747a487d3ccc559360 100644 Binary files a/public/img/course1.png and b/public/img/course1.png differ diff --git a/public/img/course2.png b/public/img/course2.png new file mode 100644 index 0000000000000000000000000000000000000000..5835f1b9e122b187fbd4b757753464059c69e091 Binary files /dev/null and b/public/img/course2.png differ diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index c12b97e57731b97b20bdacdc4710923f1ff5877f..09455ec24eefc5e5f9d6d155d40bd6291e29799a 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -12,7 +12,7 @@ @csrf <div class="form-group row"> - <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> + <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('Alamat Email') }}</label> <div class="col-md-6"> <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> @@ -45,7 +45,7 @@ <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label class="form-check-label" for="remember"> - {{ __('Remember Me') }} + {{ __('Ingat saya') }} </label> </div> </div> @@ -59,7 +59,7 @@ @if (Route::has('password.request')) <a class="btn btn-link" href="{{ route('password.request') }}"> - {{ __('Forgot Your Password?') }} + {{ __('Lupa Password?') }} </a> @endif </div> diff --git a/resources/views/course.blade.php b/resources/views/course.blade.php index 6b5b2d0354324ff6db1d54bcef0ea7d09ceba979..8626eac9a8c93775682fbe5a2d0c0c2ec13dfbf3 100644 --- a/resources/views/course.blade.php +++ b/resources/views/course.blade.php @@ -5,21 +5,21 @@ @isset(request()->msg) @if( request()->get('msg') == 1 ) <div class="alert alert-success alert-dismissible fade show" role="alert"> - Pembuatan Topik Berhasil + Pembuatan Materi 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 + Perubahan Materi 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 alert-dismissible fade show" role="alert"> - Pembuatan Topik Gagal + Pembuatan Materi Gagal <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> @@ -32,72 +32,77 @@ <div class="card-header">Topik Materi</div> <div class="card-body"> <div class="accordion-group" id="accordionTopics"> + @if( count($topics) == 0 ) + Tidak ada Materi + @endif @foreach($topics as $index => $topic) <div class="card"> <div class="card-header" id="heading<?php echo $topic->id; ?>"> <h6 class="mb-0"> <a data-toggle="collapse" aria-expanded="false" aria-controls="collapse<?php echo $topic->id; ?>"> - <b>Topik {{ $index + 1 }}: {{ $topic->name }}</b> + <b>Materi {{ $index + 1 }}: {{ $topic->name }}</b> </a> </h6> </div> <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/> + {{ $topic->content }} <br/><br/> @if(Auth::user()->role == 1) - <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>/edit" class="btn btn-primary" role="button">Buka Topik</a> + <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>/edit" class="btn btn-primary" role="button">Edit Materi</a> @else - <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>" class="btn btn-primary" role="button">Buka Topik</a> + <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>" class="btn btn-primary" role="button">Buka Materi</a> @endif </div> </div> </div> @endforeach </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"> - <form action="<?php echo Request::url(); ?>/learn/new" method="post"> - {{ csrf_field() }} - <div class="modal-header"> - <h5 class="modal-title" id="exampleModalCenterTitle">Tambah Topik</h5> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - </div> - <div class="modal-body"> - <div class="form-group"> - <label for="topic-name" class="col-form-label">Masukkan Judul Topik</label> - <input type="text" class="form-control" name="topic_name" id="topic-name" required="required" placeholder="Judul Topik"> - </div> - </div> - <div class="modal-footer"> - <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button> - <button type="submit" class="btn btn-primary">Buat Topik</button> + </div> + </div> + @if(Auth::user()->role == 1) + <br/> + <button style="float: right;" type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter"> + Tambah Materi + </button> + <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"> + <form action="<?php echo Request::url(); ?>/learn/new" method="post"> + {{ csrf_field() }} + <div class="modal-header"> + <h5 class="modal-title" id="exampleModalCenterTitle">Tambah Materi</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <div class="form-group"> + <label for="topic-name" class="col-form-label">Masukkan Judul Materi</label> + <input type="text" class="form-control" name="topic_name" id="topic-name" required="required" placeholder="Judul Topik"> </div> - </form> - </div> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button> + <button type="submit" class="btn btn-primary">Buat Topik</button> + </div> + </form> </div> </div> </div> - </div> + @endif </div> <div class="col-md-4"> - <div class="card"> - <div class="card-header">Progress</div> - <div class="card-body"> - @foreach($topics as $index => $topic) - Topik {{ $index + 1 }}: 100/100 <br/> - @endforeach + @if(Auth::user()->role == 0) + <div class="card"> + <div class="card-header">Progress</div> + <div class="card-body"> + @foreach($topics as $index => $topic) + Topik {{ $index + 1 }}: 100/100 <br/> + @endforeach + </div> </div> - </div> - <br/> + <br/> + @endif <div class="card"> <div class="card-header">Peserta Kelas</div> <div class="card-body"> diff --git a/resources/views/edit.blade.php b/resources/views/edit.blade.php index 75e71a145ae198ab71844ee73a80f291a66596ad..2c4c92f0104af956218429645cf50ea2489c3435 100644 --- a/resources/views/edit.blade.php +++ b/resources/views/edit.blade.php @@ -31,7 +31,7 @@ </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="rich_text" id="rich_text"><?php echo $topic->content;?></textarea> + <mytextarea name="rich_text" id="rich_text"><?php echo $topic->content;?></mytextarea> </div> </div> <div class="card"> @@ -68,6 +68,7 @@ </div> </div> </div> + <a style="margin-top: 1rem;" href="/course/<?php echo $id_course; ?>" class="btn btn-secondary" role="button">Kembali ke Kelas</a> <button style="float: right; margin-top: 1rem;" type="submit" class="btn btn-primary"><b>Simpan</b></button> </form> </div> diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index 98cf538639974426cc4c0d505e4e69da66ee86b7..afe835634edc35f1894780d07cb19f59eae47c44 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -10,6 +10,20 @@ <span aria-hidden="true">×</span> </button> </div> + @elseif( request()->get('msg') == 2 ) + <div class="alert alert-success alert-dismissible fade show" role="alert"> + Pembuatan Kelas Berhasil + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + @elseif( request()->get('msg') == 3 ) + <div class="alert alert-success alert-dismissible fade show" role="alert"> + Daftar Kelas Berhasil + <button type="button" class="close" data-dismiss="alert" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> @endif @endisset <div class="row justify-content"> @@ -17,6 +31,9 @@ <div class="card"> <div class="card-header">Kelasku</div> <div class="card-columns card-body"> + @if( count($enrolled) == 0 ) + Tidak ada kelas yang diikuti + @endif @foreach($enrolled as $enroll) <div class="card course" style="width: 14rem"> <img src="img/course1.png" class="card-img-top" alt="No Picture"> @@ -26,6 +43,41 @@ @endforeach </div> </div> + @if(Auth::user()->role == 1) + <br/> + <button style="float: right;" type="button" class="btn btn-primary" data-toggle="modal" data-target="#newCourseModal"> + Tambah Kelas + </button> + <div class="modal fade" id="newCourseModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered" role="document"> + <div class="modal-content"> + <form action="/course/new" method="post"> + {{ csrf_field() }} + <div class="modal-header"> + <h5 class="modal-title" id="exampleModalCenterTitle">Tambah Kelas</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <div class="form-group"> + <label for="course-name" class="col-form-label">Masukkan Nama Kelas</label> + <input type="text" class="form-control" name="course_name" id="course-name" required="required" placeholder="Nama Kelas"> + </div> + <div class="form-group"> + <label for="course-description">Deskripsi</label> + <textarea class="form-control" name="course_description" id="course_description" rows="2"></textarea> + </div> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button> + <button type="submit" class="btn btn-primary">Buat Kelas</button> + </div> + </form> + </div> + </div> + </div> + @endif </div> <div class="col-md-4"> <div class="card"> @@ -67,35 +119,37 @@ </div> </div> </div> - <div class="py-4 row justify-content-center"> - <div class="col-md-12"> - <div class="card"> - <div class="card-header">Kelas Tersedia</div> - <div class="card-body"> - <div class="accordion" id="accordionCourses"> - @foreach($courses as $index => $course) - <div class="card"> - <div class="card-header" id="heading<?php echo $course->id; ?>"> - <h5 class="mb-0"> - <button class="btn btn-link stretched-link" type="button" data-toggle="collapse" data-target="#collapse<?php echo $course->id; ?>" aria-expanded="false" aria-controls="collapse<?php echo $course->id; ?>"> - {{ $course->name }} - </button> - </h5> - </div> + @if(Auth::user()->role == 0) + <div class="py-4 row justify-content-center"> + <div class="col-md-12"> + <div class="card"> + <div class="card-header">Kelas Tersedia</div> + <div class="card-body"> + <div class="accordion" id="accordionCourses"> + @foreach($courses as $index => $course) + <div class="card"> + <div class="card-header" id="heading<?php echo $course->id; ?>" style="transform: rotate(0);"> + <a class="stretched-link" type="button" data-toggle="collapse" data-target="#collapse<?php echo $course->id; ?>" aria-expanded="false" aria-controls="collapse<?php echo $course->id; ?>">{{ $course->name }}</a> + </div> - <div id="collapse<?php echo $course->id; ?>" class="collapse" aria-labelledby="heading<?php echo $course->id; ?>" data-parent="#accordionCourses"> - <div class="card-body"> - {{ $course->description }} <br/> - Pengajar : {{ $teachers[$index] }} <br/> <br/> - <a href="/enroll" class="btn btn-primary" role="button">Daftar Kelas</a> + <div id="collapse<?php echo $course->id; ?>" class="collapse" aria-labelledby="heading<?php echo $course->id; ?>" data-parent="#accordionCourses"> + <div class="card-body"> + {{ $course->description }} <br/> + Pengajar : {{ $teachers[$index] }} <br/> <br/> + <form action="course/enroll" method="post"> + {{ csrf_field() }} + <input style="display: none;" type="number" class="form-control" name="enroll_id" id="enroll_id" required="required" value="<?php echo $course->id ?>"> + <button type="submit" class="btn btn-primary">Daftar Kelas</button> + </form> + </div> </div> </div> - </div> - @endforeach + @endforeach + </div> </div> </div> </div> </div> - </div> + @endif </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 4d7ae8364dc99a98734821db7ab180e66dafe610..fed7123e6123768b0f242c0648121c6b9af83ff9 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -14,7 +14,7 @@ <script src="{{ asset('js/text.js') }}" defer></script> <script src="{{ asset('js/learn.js') }}" defer></script> <script src="https://cdn.tiny.cloud/1/yaezxtmh9h1roazzxnkx70is63n62nbov3xskxim3rpnbcoj/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script> - <script>tinymce.init({selector:'textarea'});</script> + <script>tinymce.init({selector:'mytextarea'});</script> <!-- Fonts --> <link rel="dns-prefetch" href="//fonts.gstatic.com"> @@ -28,7 +28,7 @@ <div id="app"> <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm"> <div class="container"> - <a class="navbar-brand" href="{{ url('/home') }}"> + <a class="navbar-brand" href="{{ url('/') }}"> {{ config('app.name', 'Laravel') }} </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"> diff --git a/routes/web.php b/routes/web.php index d2ce600aaae5c7427432c127645919b1a4358f97..ccf1f585b5281698ef3bad81c9eb162af3b107fb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -10,17 +10,13 @@ | contains the "web" middleware group. Now create something great! | */ - -Route::get('/', function () { - return view('welcome'); -}); - - Auth::routes(); -Route::get('/home', 'HomeController@index')->name('home'); +Route::get('/', 'HomeController@index')->name('home'); Route::get('/test', 'AutograderController@test')->name('test'); Route::post('/profile', 'HomeController@profile')->name('profile'); Route::get('/course/{id_course}', 'CourseController@index')->name('course'); +Route::post('/course/new', 'CourseController@new')->name('course/new'); +Route::post('/course/enroll', 'CourseController@enroll')->name('course/enroll'); Route::post('/course/{id_course}/learn/new', 'LearnController@new')->name('learn/new'); Route::get('/course/{id_course}/learn/{id_topic}', 'LearnController@index')->name('learn'); Route::get('/course/{id_course}/learn/{id_topic}/edit', 'LearnController@edit')->name('edit');