MediaController.php 2.6 KB
Newer Older
1 2
<?php namespace Modules\Media\Http\Controllers\Admin;

3
use Illuminate\Contracts\Config\Repository;
Nicolas Widart's avatar
Nicolas Widart committed
4
use Illuminate\Support\Facades\Redirect;
5
use Illuminate\Support\Facades\View;
Nicolas Widart's avatar
Nicolas Widart committed
6
use Laracasts\Flash\Flash;
7
use Modules\Core\Http\Controllers\Admin\AdminBaseController;
Nicolas Widart's avatar
Nicolas Widart committed
8
use Modules\Media\Entities\File;
Nicolas Widart's avatar
Nicolas Widart committed
9
use Modules\Media\Http\Requests\UpdateMediaRequest;
10
use Modules\Media\Image\Imagy;
Nicolas Widart's avatar
Nicolas Widart committed
11
use Modules\Media\Repositories\FileRepository;
12 13 14

class MediaController extends AdminBaseController
{
Nicolas Widart's avatar
Nicolas Widart committed
15 16 17 18
    /**
     * @var FileRepository
     */
    private $file;
19 20 21 22
    /**
     * @var Repository
     */
    private $config;
23 24 25 26
    /**
     * @var Imagy
     */
    private $imagy;
Nicolas Widart's avatar
Nicolas Widart committed
27

28
    public function __construct(FileRepository $file, Repository $config, Imagy $imagy)
Nicolas Widart's avatar
Nicolas Widart committed
29 30
    {
        $this->file = $file;
31
        $this->config = $config;
32
        $this->imagy = $imagy;
Nicolas Widart's avatar
Nicolas Widart committed
33 34
    }

35 36 37 38 39 40 41
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
Nicolas Widart's avatar
Nicolas Widart committed
42 43
        $files = $this->file->all();

44 45 46
        $config = $this->config->get('media::config');

        return View::make('media::admin.index', compact('files', 'config'));
47 48
    }

49 50 51 52 53 54 55
    public function gridFiles()
    {
        $files = $this->file->all();

        return View::make('media::admin.grid', compact('files'));
    }

56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        return \View::make('media.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */
    public function store()
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
Nicolas Widart's avatar
Nicolas Widart committed
79
     * @param File $file
80 81
     * @return Response
     */
Nicolas Widart's avatar
Nicolas Widart committed
82
    public function edit(File $file)
83
    {
84
        return View::make('media::admin.edit', compact('file'));
85 86 87 88 89
    }

    /**
     * Update the specified resource in storage.
     *
90
     * @param File $file
Nicolas Widart's avatar
Nicolas Widart committed
91
     * @param UpdateMediaRequest $request
92 93
     * @return Response
     */
Nicolas Widart's avatar
Nicolas Widart committed
94
    public function update(File $file, UpdateMediaRequest $request)
95
    {
Nicolas Widart's avatar
Nicolas Widart committed
96 97 98 99
        $this->file->update($file, $request->all());

        Flash::success('File updated');
        return Redirect::route('dashboard.media.index');
100 101 102 103 104
    }

    /**
     * Remove the specified resource from storage.
     *
105 106
     * @param File $file
     * @internal param int $id
107 108
     * @return Response
     */
109
    public function destroy(File $file)
110
    {
111
        $this->imagy->deleteAllFor($file);
112 113 114 115
        $this->file->destroy($file);

        Flash::success('File deleted');
        return Redirect::route('dashboard.media.index');
116 117
    }
}