From e21f9adf4b2ae49bf809e76d828234bd5d825d63 Mon Sep 17 00:00:00 2001
From: Kurniandha Sukma Yunastrian <13516106@std.stei.itb.ac.id>
Date: Tue, 7 Apr 2020 19:34:45 +0700
Subject: [PATCH] add course page

---
 app/Http/Controllers/CourseController.php | 44 ++++++++++++++++++
 app/Http/Controllers/LearnControllerr.php | 10 +++++
 database/seeds/DatabaseSeeder.php         |  1 +
 resources/views/course.blade.php          | 55 +++++++++++++++++++++++
 resources/views/home.blade.php            | 12 +----
 resources/views/layouts/app.blade.php     |  2 +-
 routes/web.php                            |  7 ++-
 7 files changed, 116 insertions(+), 15 deletions(-)
 create mode 100644 app/Http/Controllers/CourseController.php
 create mode 100644 app/Http/Controllers/LearnControllerr.php
 create mode 100644 resources/views/course.blade.php

diff --git a/app/Http/Controllers/CourseController.php b/app/Http/Controllers/CourseController.php
new file mode 100644
index 0000000..395046a
--- /dev/null
+++ b/app/Http/Controllers/CourseController.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
+
+class CourseController extends Controller
+{
+    /**
+     * Create a new controller instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->middleware('auth');
+    }
+
+    /**
+     * Show the application dashboard.
+     *
+     * @return \Illuminate\Contracts\Support\Renderable
+     */
+    public function index($id_course)
+    {
+        $topics = DB::table('topics')->where('id_course', $id_course)->get();
+        $enrolled_id = DB::table('user_course')->where('id_course', $id_course)->pluck('id_user');
+
+        $students = [];
+        $teacher = '';
+        foreach($enrolled_id as $id) {
+            $temp = DB::table('users')->where('id', $id)->first();
+            if ($temp->role == 1) {
+                $teacher = $temp->name;
+            } else {
+                $students[] = $temp->name;
+            }
+        }
+        
+        return view('course', ['topics' => $topics, 'students' => $students, 'teacher' => $teacher]);
+    }
+}
diff --git a/app/Http/Controllers/LearnControllerr.php b/app/Http/Controllers/LearnControllerr.php
new file mode 100644
index 0000000..0468937
--- /dev/null
+++ b/app/Http/Controllers/LearnControllerr.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+
+class LearnControllerr extends Controller
+{
+    //
+}
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
index 574d439..c2e1525 100644
--- a/database/seeds/DatabaseSeeder.php
+++ b/database/seeds/DatabaseSeeder.php
@@ -15,5 +15,6 @@ class DatabaseSeeder extends Seeder
         $this->call(CoursesTableSeeder::class);
         $this->call(TopicsTableSeeder::class);
         $this->call(SpreadsheetsTableSeeder::class);
+        $this->call(User_CourseTableSeeder::Class);
     }
 }
diff --git a/resources/views/course.blade.php b/resources/views/course.blade.php
new file mode 100644
index 0000000..d0c012a
--- /dev/null
+++ b/resources/views/course.blade.php
@@ -0,0 +1,55 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content">
+        <div class="col-md-8">
+            <div class="card">
+                <div class="card-header">Topik Materi</div>
+                <div class="card-body">
+                    <div class="accordion-group" id="accordionTopics">
+                        @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>
+                                        </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/>
+                                        <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id_spreadsheet; ?>" class="btn btn-primary" role="button">Buka Topik</a>
+                                    </div>
+                                </div>
+                            </div>
+                        @endforeach
+                    </div> <br/>
+                    <a href="<?php echo $topic->id_course; ?>/learn/new" class="btn btn-primary" role="button">Tambah Topik</a>
+                </div>
+            </div>
+        </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
+                </div>
+            </div>
+            <br/>
+            <div class="card">
+                <div class="card-header">Peserta Kelas</div>
+                <div class="card-body">
+                    {{ $teacher }} (Pengajar) <br/>
+                    @foreach($students as $student)
+                        {{ $student }} <br/>
+                    @endforeach
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
\ No newline at end of file
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index b24b2c9..f231136 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -11,7 +11,7 @@
                         <div class="card course" style="width: 14rem">
                             <img src="img/course1.png" class="card-img-top" alt="No Picture">
                             <div class="card-header">{{ $enroll->name }}</div>
-                            <a href="/class/<?php echo $enroll->id; ?>" class="stretched-link"></a>
+                            <a href="/course/<?php echo $enroll->id; ?>" class="stretched-link"></a>
                         </div>
                     @endforeach
                 </div>
@@ -61,12 +61,4 @@
         </div>
     </div>
 </div>
-@endsection
-
-<style>
-    courses {
-        display: block;
-        width: 100%;
-        height: 100%;
-    }
-</style>
\ No newline at end of file
+@endsection
\ No newline at end of file
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index e47b1bc..a61dcf6 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -24,7 +24,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('/') }}">
+                <a class="navbar-brand" href="{{ url('/home') }}">
                     {{ 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 98ecf89..e81dddc 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -19,7 +19,6 @@ Route::get('/test', function () {
 });
 
 Auth::routes();
-// Route::get('/home', function () {
-//     return view('home');
-// });
-Route::get('/home', 'HomeController@index')->name('home');
\ No newline at end of file
+Route::get('/home', 'HomeController@index')->name('home');
+Route::get('/course/{id_course}', 'CourseController@index')->name('course');
+Route::get('/course/{id_course}/learn/{id_spreadsheet}', 'LearnController@index')->name('learn');
\ No newline at end of file
-- 
GitLab