<?php
namespace App\Http\Controllers;
use App\Http\Requests\CreateCourseRequest;
use App\Http\Requests\UpdateCourseRequest;
use App\Http\Controllers\AppBaseController;
use App\Repositories\CourseRepository;
use Illuminate\Http\Request;
use App\Models\CourseLevel;
use App\Models\CourseKategori;
use App\Models\ModuleChapter;
use App\Models\Module;
use Laracasts\Flash\Flash;
use Illuminate\Support\Facades\DB;
class CourseController extends AppBaseController
{
/** @var CourseRepository $courseRepository*/
private $courseRepository;
public function __construct(CourseRepository $courseRepo)
{
$this->middleware('permission:courses.index', ['only' => ['index','show']]);
$this->middleware('permission:courses.create', ['only' => ['create','store']]);
$this->middleware('permission:courses.edit', ['only' => ['edit','update']]);
$this->middleware('permission:courses.destroy', ['only' => ['destroy']]);
$this->courseRepository = $courseRepo;
}
/**
* Display a listing of the Course.
*/
public function index(Request $request)
{
$courses = $this->courseRepository->paginate(10);
// $modulChapter =
return view('courses.index')
->with('courses', $courses);
}
/**
* Show the form for creating a new Course.
*/
public function create()
{
$CourseLevel=CourseLevel::pluck('name','id');
$CourseKategori=CourseKategori::pluck('name','id');
return view('courses.create', compact('CourseLevel','CourseKategori'));
}
/**
* Store a newly created Course in storage.
*/
public function store(CreateCourseRequest $request)
{
$input = $request->all();
// DB::beginTransaction();
// try {
$course = $this->courseRepository->create($input);
$course->addFromMediaLibraryRequest($request->media)
->toMediaCollection();
// $moduleChapte=ModuleChapter::create([
// 'name',
// 'course_id'
// ]);
// $modul=Module::create([
// 'title',
// 'content',
// 'estimated_time_minutes',
// 'passing_score',
// 'tolerance',
// 'course_id',
// 'module_chapter_id',
// 'slug',
// 'order',
// 'module_type_id',
// 'module_parent_id',
// ]);
// DB::commit();
// Flash::success('Course saved successfully.');
// }catch (\Exception $exception){
// DB::rollBack();
// Flash::error('Tambah Data Gagal. error:'.$exception);
// return redirect(route('courses.index'));
// }
return redirect(route('courses.index'));
}
/**
* Display the specified Course.
*/
public function show($id)
{
$course = $this->courseRepository->find($id);
if (empty($course)) {
Flash::error('Course not found');
return redirect(route('courses.index'));
}
return view('courses.show')->with('course', $course);
}
/**
* Show the form for editing the specified Course.
*/
public function edit($id)
{
$course = $this->courseRepository->find($id);
$CourseLevel=CourseLevel::pluck('name','id');
$CourseKategori=CourseKategori::pluck('name','id');
if (empty($course)) {
Flash::error('Course not found');
return redirect(route('courses.index'));
}
return view('courses.edit', compact('CourseLevel', 'CourseKategori'))->with('course', $course);
}
/**
* Update the specified Course in storage.
*/
public function update($id, UpdateCourseRequest $request)
{
$course = $this->courseRepository->find($id);
if (empty($course)) {
Flash::error('Course not found');
return redirect(route('courses.index'));
}
$course = $this->courseRepository->update($request->all(), $id);
$course->syncFromMediaLibraryRequest($request->media)
->toMediaCollection();
Flash::success('Course updated successfully.');
return redirect(route('courses.index'));
}
/**
* Remove the specified Course from storage.
*
* @throws \Exception
*/
public function destroy($id)
{
$course = $this->courseRepository->find($id);
if (empty($course)) {
Flash::error('Course not found');
return redirect(route('courses.index'));
}
$this->courseRepository->delete($id);
Flash::success('Course deleted successfully.');
return redirect(route('courses.index'));
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]