Completed
Push — master ( e7d3d1...c447a8 )
by Arjay
14:54
created

ModulesController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Yajra\CMS\Http\Controllers;
4
5
use Nwidart\Modules\Repository;
6
use Yajra\CMS\DataTables\ModulesDataTable;
7
8
class ModulesController extends Controller
9
{
10
    /**
11
     * @var \Nwidart\Modules\Repository
12
     */
13
    protected $modules;
14
15
    /**
16
     * ModulesController constructor.
17
     *
18
     * @param \Nwidart\Modules\Repository $modules
19
     */
20
    public function __construct(Repository $modules)
21
    {
22
        $this->modules = $modules;
23
        $this->authorizePermissionResource('module');
24
    }
25
26
    /**
27
     * Display list of modules.
28
     *
29
     * @param \Yajra\CMS\DataTables\ModulesDataTable $dataTable
30
     * @return \Illuminate\Http\JsonResponse|\Illuminate\View\View
31
     */
32
    public function index(ModulesDataTable $dataTable)
33
    {
34
        return $dataTable->render('administrator.modules.index');
35
    }
36
37
    /**
38
     * @param string $module
39
     * @return \Illuminate\View\View
40
     */
41
    public function show($module)
42
    {
43
        return view('administrator.modules.profile', compact('module'));
44
    }
45
46
    /**
47
     * Remove selected module.
48
     *
49
     * @param string $module
50
     * @return \Illuminate\Http\JsonResponse
51
     * @throws \Exception
52
     */
53
    public function destroy($module)
54
    {
55
        /** @var \Nwidart\Modules\Module $module */
56
        $module = $this->modules->find($module);
57
        $module->delete();
58
59
        return $this->notifySuccess(trans('cms::module.destroy', ['module' => (string) $module]));
60
    }
61
62
    /**
63
     * Toggle module active status.
64
     *
65
     * @param string $module
66
     * @return \Illuminate\Http\JsonResponse
67
     */
68
    public function toggle($module)
69
    {
70
        /** @var \Nwidart\Modules\Module $module */
71
        $module = $this->modules->find($module);
72
73
        if ($module->disabled()) {
74
            $module->enable();
75
        } else {
76
            $module->disable();
77
        }
78
79
        $message = 'cms::module.toggle.' . ($module->enabled() ? 'enable' : 'disable');
80
81
        return $this->notifySuccess(trans($message, ['module' => (string) $module]));
82
    }
83
}
84