Commit 664f11eb authored by Nicolas Widart's avatar Nicolas Widart

Adding ability to enable or disable a module

parent 97f5da74
<?php namespace Modules\Workshop\Http\Controllers; <?php namespace Modules\Workshop\Http\Controllers;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use Laracasts\Flash\Flash;
use Modules\Core\Http\Controllers\Admin\AdminBaseController; use Modules\Core\Http\Controllers\Admin\AdminBaseController;
use Modules\Workshop\Http\Requests\ModulesRequest;
use Pingpong\Modules\Module; use Pingpong\Modules\Module;
class WorkshopController extends AdminBaseController class ModulesController extends AdminBaseController
{ {
/** /**
* @var Module * @var Module
...@@ -23,4 +26,29 @@ class WorkshopController extends AdminBaseController ...@@ -23,4 +26,29 @@ class WorkshopController extends AdminBaseController
return View::make('workshop::admin.modules.index', compact('modules')); return View::make('workshop::admin.modules.index', compact('modules'));
} }
public function store(ModulesRequest $request)
{
$enabledModules = $this->module->enabled();
$enabledModules = array_flip($enabledModules);
$modules = $request->modules;
foreach ($modules as $module => $value) {
if (isset($enabledModules[$module])) {
unset($enabledModules[$module]);
unset($modules[$module]);
}
}
// Disabled not needed modules
foreach ($enabledModules as $moduleToDisable => $value) {
$this->module->disable($moduleToDisable);
}
// Enable new modules
foreach ($modules as $moduleToEnable => $value) {
$this->module->enable($moduleToEnable);
}
Flash::success('Modules configuration saved!');
return Redirect::route('dashboard.modules.index');
}
} }
\ No newline at end of file
<?php namespace Modules\Workshop\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ModulesRequest extends FormRequest
{
public function rules()
{
return [];
}
public function authorize()
{
return true;
}
public function messages()
{
return [];
}
}
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
Route::group(['prefix' => Config::get('core::core.admin-prefix').'/workshop', 'namespace' => 'Modules\Workshop\Http\Controllers'], Route::group(['prefix' => Config::get('core::core.admin-prefix').'/workshop', 'namespace' => 'Modules\Workshop\Http\Controllers'],
function () { function () {
Route::get('modules', ['as' => 'dashboard.modules.index', 'uses' => 'WorkshopController@index']); Route::get('modules', ['as' => 'dashboard.modules.index', 'uses' => 'ModulesController@index']);
Route::post('modules', ['as' => 'dashboard.modules.store', 'uses' => 'ModulesController@store']);
} }
); );
\ No newline at end of file
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
@stop @stop
@section('content') @section('content')
{!! Form::open(['route' => 'dashboard.user.store', 'method' => 'post']) !!} {!! Form::open(['route' => 'dashboard.modules.store', 'method' => 'post']) !!}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="nav-tabs-custom"> <div class="nav-tabs-custom">
...@@ -24,17 +24,21 @@ ...@@ -24,17 +24,21 @@
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane active" id="tab_1-1"> <div class="tab-pane active" id="tab_1-1">
@include('flash::message')
<ul> <ul>
@foreach($modules as $module) @foreach($modules as $module)
<li> <li>
<div class="checkbox"> <div class="checkbox">
<label for="{{ $module }}"> <label for="{{ $module }}">
<input id="{{ $module }}" name="modules[]" type="checkbox" class="flat-blue" <?php echo Module::active($module) ? 'checked' : '' ?> value="true" /> {{ $module }} <input id="{{ $module }}" name="modules[{{ $module }}]" type="checkbox" class="flat-blue" <?php echo Module::active($module) ? 'checked' : '' ?> value="true" /> {{ $module }}
</label> </label>
</div> </div>
</li> </li>
@endforeach @endforeach
</ul> </ul>
<div class="box-footer">
<button type="submit" class="btn btn-primary btn-flat">Save module configuration</button>
</div>
</div> </div>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment