ldc-dam/app/Http/Controllers/MediaController.php

121 lines
2.8 KiB
PHP
Raw Normal View History

2019-05-22 17:10:16 +02:00
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Sujet;
2019-05-23 15:09:28 +02:00
use App\Media;
2019-06-17 09:22:10 +02:00
use App\Typemedia;
use App\Langue;
use App\Copyright;
use App\Etiquette;
2019-05-22 17:10:16 +02:00
class MediaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
2019-06-17 09:22:10 +02:00
$sujets = Auth::user()->sujets;
$typemedias = Typemedia::all();
$langues = Langue::all();
$copyrights = Copyright::all();
$etiquettes = Etiquette::all();
return view('media_manager')->with([
'sujets'=> $sujets,
'typemedias'=> $typemedias,
'langues'=> $langues,
'copyrights'=> $copyrights,
'etiquettes'=> $etiquettes,
]);
2019-05-22 17:10:16 +02:00
}
2019-05-23 15:09:28 +02:00
/**
* Chargement des médias
*
*/
public function loadMedia(Request $request)
{
$response = array();
$dossier_id = $request->input('dossier_id');
$sujet_id = $request->input('sujet_id');
$offset = $request->input('offset');
$limit = $request->input('limit');
if($dossier_id == "0"){
2019-06-17 09:22:10 +02:00
$response['data'] = Media::where('sujet_id', $sujet_id)->whereNull('dossier_id')->with('Etiquette')->offset($offset)->limit($limit)->orderBy('created_at', 'desc')->get();
2019-05-23 15:09:28 +02:00
}else{
2019-06-17 09:22:10 +02:00
$response['data'] = Media::where('sujet_id', $sujet_id)->where('dossier_id', $dossier_id)->with('Etiquette')->offset($offset)->limit($limit)->orderBy('created_at', 'desc')->get();
}
if(Auth::user()->hasRole([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')] )){
$response['draggable'] = true;
}else{
$response['draggable'] = false;
2019-05-23 15:09:28 +02:00
}
return json_encode($response);
}
/**
* Déplacement des médias
*
*/
public function moveMedia(Request $request)
{
2019-06-17 09:22:10 +02:00
Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]);
2019-05-23 15:09:28 +02:00
$response = array();
$dossier_id = $request->input('dossier_id');
$data = $request->input('data');
$data = explode(",", $data);
foreach ($data as $key => $media_id) {
$media = Media::where('id', $media_id)->first();
if($media){
if($dossier_id > 0){
$media->dossier_id = $dossier_id;
}else{
$media->dossier_id = null;
}
$media->save();
}
}
return json_encode(true);
}
2019-05-22 17:10:16 +02:00
2019-06-17 09:22:10 +02:00
/**
* supprimer des médias
*
*/
public function removeMedia(Request $request)
{
Auth::user()->authorizeRoles([config('roles.const.ADMIN'), config('roles.const.REDACTEUR')]);
$medias = $request->input('medias');
Media::destroy($medias);
return json_encode(true);
}
/**
* Obtenir toutes les informations d'un média
*
*/
public function getOneMedia(Request $request)
{
$response = array();
$media_id = $request->input('media_id');
$media = Media::where('id', $media_id)->with('Sujet')->first();
if($media){
$response['data'] = $media;
}
return json_encode($response);
}
2019-05-22 17:10:16 +02:00
}