Repository URL to install this package:
|
Version:
0.2.1 ▾
|
<?php namespace Modules\Courses\Http\Controllers\Admin;
use Illuminate\Http\Request;
use Modules\Core\Http\Controllers\AdminController;
use Modules\Core\Services\Asset;
use Modules\Courses\Entities\Slide;
use Modules\Courses\Http\Requests\CadastroSlideRequest;
use Modules\Courses\Services\CourseService;
class SlidesController extends AdminController
{
/**
* @var CourseService
*/
private $service;
public function __construct(CourseService $service){
parent::__construct();
$this->service = $service;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($course)
{
//$this->authorize($this);
Asset::add(\Config::get('core.assets.sortable'));
$data = $this->service->findByIdWithSlides($course);
return view('courses::admin.course_details', ['data' => $data]);
}
/**
* Show the form for creating a new resource.
*
* @param int $course
* @return \Illuminate\Http\Response
*/
public function create($course)
{
//$this->authorize($this);
Asset::add(\Config::get('core.assets.fineuploader'));
$data = $this->service->findById($course);
return view('courses::admin.create-slide', ['data' => $data]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(CadastroSlideRequest $request, $course)
{
$input = $request->all();
if ($request->hasFile('slide_photo') and $request->file('slide_photo')->isValid()) {
$fileName = $request->file('slide_photo')->getClientOriginalName();
$folder = 'uploads/course_'.$course.'/';
$destination = public_path() . '/' . $folder;
$request->file('slide_photo')->move($destination, $fileName);
$input['slide_photo'] = $folder . $fileName;
}
/** @var Slide $result */
$result = $this->service->addSlide($course, $input);
if ($result instanceof Slide) {
$msg = trans('courses::slides.create.alerts.success', ['slide' => $result->title]);
$response = response()->json([
'success' => true,
'url' => $result->slide_photo
], 200);
} else {
$msg = trans('courses::slides.create.alerts.error', ['slide' => $result->title]);
$response = response()->json([
'success' => false,
'error' => 'teste'
], 400);
}
return $response;
}
/**
* Show the form for editing the specified resource.
*
* @param int $course
* @param int $slide
* @return \Illuminate\Http\Response
*/
public function edit($course, $slide)
{
//$this->authorize($this);
Asset::add(\Config::get('core.assets.fineuploader'));
$data = $this->service->findSlideById($slide);
return view('courses::admin.edit-slide', ['data' => $data]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(CadastroSlideRequest $request, $course, $slide)
{
//$data = $this->service->editId($id);
$input = $request->all();
/*$rules = [];
if ($input['cnpj'] != $laboratorio->cnpj) {
$rules['cnpj'] = 'required|cnpj|max:50|unique:laboratorios';
}
if (!empty($rules)) {
$validation = Validator::make($request->all(), $rules);
if ($validation->fails()) {
return response()->json($validation->messages(), 400);
}
}*/
/** @var Slide $result */
$result = $this->service->updateSlide($slide, $input);
if ($result instanceof Slide) {
$msg = trans('courses::slides.edit.alerts.success'. ['slide' => $result->title]);
$response = $this->getResponse($msg, 200, 'courses.index');
} else {
$msg = trans('courses::slides.edit.alerts.error'. ['slide' => $result->title]);
$response = $this->getResponse($msg, 400);
}
return $response;
}
/**
* Load previou uploaded file
*
* @param int $course
* @param int $slide
* @return \Illuminate\Http\Response
*/
public function loadFile($course, $slide)
{
//$this->authorize($this);
$files = $this->service->loadSlideFileById($slide);
return response()->json([$files['data']], 200);
}
/**
* Delete uploaded file
*
* @param int $course
* @param int $slide
* @return \Illuminate\Http\Response
*/
public function deleteFile($course, $slide)
{
//$this->authorize($this);
$status = $this->service->deleteSlideFile($slide);
return response()->json([
'success' => $status
], 200);
}
/**
* Save slides order
*
* @param Request $request
* @param int $course
* @return \Illuminate\Http\Response
*/
public function saveOrder(Request $request, $course)
{
//$this->authorize($this);
$order = $request->get('sortable');
$result = $this->service->updateSlideOrder($course, $order);
return response()->json(['success'=> $result], 200);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($course, $slide)
{
//$this->authorize($this);
$status = $this->service->deleteSlide($slide);
return response()->json([
'success' => $status
], 200);
}
}