Passed
Push — master ( 2232db...f4b030 )
by Matthijs
20:23 queued 14:47
created

NewsImageController   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 65
rs 10
c 0
b 0
f 0
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A update() 0 4 1
A store() 0 4 1
A edit() 0 4 1
A index() 0 30 2
A create() 0 4 1
A destroy() 0 7 2
1
<?php namespace App\Http\Controllers\Backend;
2
/**
3
 * NewsImageController
4
 *
5
 * This is the controller for the images of a news item
6
 * @author Matthijs Neijenhuijs <[email protected]>
7
 * @version 0.1
8
 */
9
10
use App\Http\Controllers\Controller;
11
use Illuminate\Http\Request;
12
use Notification;
13
use Datatables;
0 ignored issues
show
Bug introduced by
The type Datatables was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use Form;
15
16
use Hideyo\Ecommerce\Framework\Services\News\NewsFacade as NewsService;
17
18
class NewsImageController extends Controller
19
{
20
    public function index(Request $request, $newsId)
21
    {
22
        $news = NewsService::find($newsId);
23
        if ($request->wantsJson()) {
24
25
            $image = NewsService::getImageModel()->select(
26
                ['id',
27
                'file', 'news_id']
28
            )->where('news_id', '=', $newsId);
29
            
30
            $datatables = Datatables::of($image)
31
32
            ->addColumn('thumb', function ($image) use ($newsId) {
0 ignored issues
show
Unused Code introduced by
The import $newsId is not used and could be removed.

This check looks for imports that have been defined, but are not used in the scope.

Loading history...
33
34
35
                return '<img src="/files/news/100x100/'.$image->news_id.'/'.$image->file.'"  />';
36
            })
37
38
39
            ->addColumn('action', function ($image) use ($newsId) {
40
                $deleteLink = Form::deleteajax(url()->route('news-images.destroy', array('newsId' => $newsId, 'id' => $image->id)), 'Delete', '', array('class'=>'btn btn-default btn-sm btn-danger'));
41
                $links = '<a href="'.url()->route('news-images.edit', array('newsId' => $newsId, 'id' => $image->id)).'" class="btn btn-default btn-sm btn-success"><i class="entypo-pencil"></i>Edit</a>  '.$deleteLink;
42
43
                return $links;
44
            });
45
46
            return $datatables->make(true);
47
        }
48
        
49
        return view('backend.news_image.index')->with(array('news' => $news));
50
    }
51
52
    public function create($newsId)
53
    {
54
        $news = NewsService::find($newsId);
55
        return view('backend.news_image.create')->with(array('news' => $news));
56
    }
57
58
    public function store(Request $request, $newsId)
59
    {
60
        $result  = NewsService::createImage($request->all(), $newsId);
61
        return NewsService::notificationRedirect(array('news-images.index', $newsId), $result, 'The news image was inserted.');
62
    }
63
64
    public function edit($newsId, $newsImageId)
65
    {
66
        $news = NewsService::find($newsId);
67
        return view('backend.news_image.edit')->with(array('newsImage' => NewsService::findImage($newsImageId), 'news' => $news));
68
    }
69
70
    public function update(Request $request, $newsId, $newsImageId)
71
    {
72
        $result  = NewsService::updateImageById($request->all(), $newsId, $newsImageId);
73
        return NewsService::notificationRedirect(array('news-images.index', $newsId), $result, 'The news image was updated.');
74
    }
75
76
    public function destroy($newsId, $newsImageId)
77
    {
78
        $result  = NewsService::destroyImage($newsImageId);
79
80
        if ($result) {
81
            Notification::success('The file was deleted.');
82
            return redirect()->route('news-images.index', $newsId);
83
        }
84
    }
85
}
86