ModulesController.php 1.44 KB
Newer Older
1 2 3 4 5 6 7
<?php namespace Modules\Workshop\Http\Controllers;

use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\View;
use Laracasts\Flash\Flash;
use Modules\Core\Http\Controllers\Admin\AdminBaseController;
use Modules\Workshop\Http\Requests\ModulesRequest;
Nicolas Widart's avatar
Nicolas Widart committed
8
use Modules\Workshop\Manager\ModuleManager;
9 10 11 12

class ModulesController extends AdminBaseController
{
    /**
Nicolas Widart's avatar
Nicolas Widart committed
13
     * @var ModuleManager
14
     */
Nicolas Widart's avatar
Nicolas Widart committed
15
    private $moduleManager;
16

Nicolas Widart's avatar
Nicolas Widart committed
17
    public function __construct(ModuleManager $moduleManager)
18 19 20
    {
        parent::__construct();

Nicolas Widart's avatar
Nicolas Widart committed
21
        $this->moduleManager = $moduleManager;
22
    }
23

24 25
    public function index()
    {
Nicolas Widart's avatar
Nicolas Widart committed
26 27
        $modules = $this->moduleManager->all();
        $coreModules = $this->moduleManager->getCoreModules();
28

29
        return View::make('workshop::admin.modules.index', compact('modules', 'coreModules'));
30 31 32 33
    }

    public function store(ModulesRequest $request)
    {
Nicolas Widart's avatar
Nicolas Widart committed
34
        $enabledModules = $this->moduleManager->getFlippedEnabledModules();
35 36 37 38 39 40 41 42

        $modules = $request->modules;
        foreach ($modules as $module => $value) {
            if (isset($enabledModules[$module])) {
                unset($enabledModules[$module]);
                unset($modules[$module]);
            }
        }
Nicolas Widart's avatar
Nicolas Widart committed
43 44
        $this->moduleManager->disableModules($enabledModules);
        $this->moduleManager->enableModules($modules);
45 46 47 48

        Flash::success('Modules configuration saved!');
        return Redirect::route('dashboard.modules.index');
    }
49
}