Commit 5159dfe0 authored by Nicolas Widart's avatar Nicolas Widart

Add possibility to install a module

parent eb207d98
......@@ -6,6 +6,7 @@ use Illuminate\Support\Facades\View;
use Laracasts\Flash\Flash;
use Modules\Core\Http\Controllers\Admin\AdminBaseController;
use Modules\Workshop\Http\Requests\GenerateModuleRequest;
use Modules\Workshop\Http\Requests\InstallModuleRequest;
use Modules\Workshop\Http\Requests\MigrateModuleRequest;
use Symfony\Component\Console\Output\BufferedOutput;
......@@ -33,4 +34,17 @@ class WorkbenchController extends AdminBaseController
Flash::message($output->fetch());
return Redirect::route('dashboard.workbench.index');
}
public function install(InstallModuleRequest $request)
{
$output = new BufferedOutput;
$arguments['name'] = $request->vendorName;
if ($request->subtree) {
$arguments['--tree'] = '';
}
Artisan::call('module:install', $arguments, $output);
Flash::message($output->fetch());
return Redirect::route('dashboard.workbench.index');
}
}
\ No newline at end of file
<?php namespace Modules\Workshop\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class InstallModuleRequest extends FormRequest
{
public function rules()
{
return [
'vendorName' => 'required'
];
}
public function authorize()
{
return true;
}
public function messages()
{
return [];
}
}
\ No newline at end of file
......@@ -8,5 +8,6 @@ Route::group(['prefix' => Config::get('core::core.admin-prefix').'/workshop', 'n
Route::get('workbench', ['as' => 'dashboard.workbench.index', 'uses' => 'WorkbenchController@index']);
Route::post('generate', ['as' => 'dashboard.workbench.generate.index', 'uses' => 'WorkbenchController@generate']);
Route::post('migrate', ['as' => 'dashboard.workbench.migrate.index', 'uses' => 'WorkbenchController@migrate']);
Route::post('install', ['as' => 'dashboard.workbench.install.index', 'uses' => 'WorkbenchController@install']);
}
);
\ No newline at end of file
......@@ -10,6 +10,10 @@
</ol>
@stop
@section('styles')
<link href="{{{ core_asset('css/vendor/iCheck/flat/blue.css') }}}" rel="stylesheet" type="text/css" />
@stop
@section('content')
<div class="row">
<div class="col-md-12">
......@@ -21,18 +25,43 @@
<div class="tab-content">
<div class="tab-pane active" id="tab_1-1">
@include('flash::message')
{!! Form::open(['route' => 'dashboard.workbench.generate.index', 'method' => 'post']) !!}
<div class="box-body">
<div class='form-group{{ $errors->has('name') ? ' has-error' : '' }}'>
{!! Form::label('name', 'Module Name:') !!}
{!! Form::text('name', Input::old('name'), ['class' => 'form-control', 'placeholder' => 'Module Name']) !!}
{!! $errors->first('name', '<span class="help-block">:message</span>') !!}
<div class="row">
<div class="col-md-6">
{!! Form::open(['route' => 'dashboard.workbench.generate.index', 'method' => 'post']) !!}
<div class="box-body">
<h4>Generate a new module</h4>
<div class='form-group{{ $errors->has('name') ? ' has-error' : '' }}'>
{!! Form::label('name', 'Module Name:') !!}
{!! Form::text('name', Input::old('name'), ['class' => 'form-control', 'placeholder' => 'Module Name']) !!}
{!! $errors->first('name', '<span class="help-block">:message</span>') !!}
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary btn-flat">Generate new module</button>
</div>
{!! Form::close() !!}
</div>
<div class="col-md-6">
{!! Form::open(['route' => 'dashboard.workbench.install.index', 'method' => 'post']) !!}
<div class="box-body">
<h4>Install a module by vendor/name</h4>
<div class='form-group{{ $errors->has('vendorName') ? ' has-error' : '' }}'>
{!! Form::label('vendorName', 'vendor/name of the module:') !!}
{!! Form::text('vendorName', Input::old('vendorName'), ['class' => 'form-control', 'placeholder' => 'Module Name']) !!}
{!! $errors->first('vendorName', '<span class="help-block">:message</span>') !!}
</div>
<div class="checkbox">
<label for="subtree">
<input id="subtree" name="subtree" type="checkbox" class="flat-blue" value="true" /> Install as a subtree?
</label>
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary btn-flat">Install new module</button>
</div>
{!! Form::close() !!}
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary btn-flat">Generate new module</button>
</div>
{!! Form::close() !!}
</div>
<div class="tab-pane" id="tab_2-2">
@include('flash::message')
......@@ -53,4 +82,15 @@
</div>
</div>
</div>
@stop
@section('scripts')
<script>
$( document ).ready(function() {
$('input[type="checkbox"].flat-blue, input[type="radio"].flat-blue').iCheck({
checkboxClass: 'icheckbox_flat-blue',
radioClass: 'iradio_flat-blue'
});
});
</script>
@stop
\ No newline at end of file
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