Browse Source

Apply record search query on name attribute

Description attribute not required and nullable
Add pagination link on index page
tags/0.1.0
Nafies Luthfi 8 years ago
parent
commit
ad2c6b938c
  1. 8
      src/stubs/controller.model.stub
  2. 2
      src/stubs/migration-create.stub
  3. 2
      src/stubs/test-feature.stub
  4. 5
      src/stubs/view-forms.stub
  5. 3
      src/stubs/view-index.stub
  6. 8
      tests/Generators/ControllerGeneratorTest.php
  7. 2
      tests/Generators/FeatureTestGeneratorTest.php
  8. 2
      tests/Generators/MigrationGeneratorTest.php
  9. 8
      tests/Generators/ViewsGeneratorTest.php

8
src/stubs/controller.model.stub

@ -15,7 +15,9 @@ class MastersController extends Controller
public function index()
{
$editableMaster = null;
$masters = Master::paginate(25);
$masters = Master::where(function ($query) {
$query->where('name', 'like', '%'.request('q').'%');
})->paginate(25);
if (in_array(request('action'), ['edit', 'delete']) && request('id') != null) {
$editableMaster = Master::find(request('id'));
@ -34,7 +36,7 @@ class MastersController extends Controller
{
$this->validate($request, [
'name' => 'required|max:60',
'description' => 'required|max:255',
'description' => 'nullable|max:255',
]);
Master::create($request->only('name', 'description'));
@ -53,7 +55,7 @@ class MastersController extends Controller
{
$this->validate($request, [
'name' => 'required|max:60',
'description' => 'required|max:255',
'description' => 'nullable|max:255',
]);
$routeParam = request()->only('page', 'q');

2
src/stubs/migration-create.stub

@ -16,7 +16,7 @@ class CreateMastersTable extends Migration
Schema::create('masters', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 60);
$table->string('description');
$table->string('description')->nullable();
$table->timestamps();
});
}

2
src/stubs/test-feature.stub

@ -49,7 +49,7 @@ class ManageMastersTest extends TestCase
public function user_can_edit_a_master_within_search_query()
{
$this->loginAsUser();
$master = factory(Master::class)->create(['description' => 'Testing 123']);
$master = factory(Master::class)->create(['name' => 'Testing 123']);
$this->visit(route('masters.index', ['q' => '123']));
$this->click('edit-master-'.$master->id);

5
src/stubs/view-forms.stub

@ -1,15 +1,14 @@
@if (Request::get('action') == 'create')
{!! Form::open(['route' => 'masters.store']) !!}
{!! FormField::text('name') !!}
{!! FormField::text('name', ['required' => true]) !!}
{!! FormField::textarea('description') !!}
{!! Form::submit(trans('master.create'), ['class' => 'btn btn-success']) !!}
{!! Form::hidden('cat', 'master') !!}
{{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }}
{!! Form::close() !!}
@endif
@if (Request::get('action') == 'edit' && $editableMaster)
{!! Form::model($editableMaster, ['route' => ['masters.update', $editableMaster->id],'method' => 'patch']) !!}
{!! FormField::text('name') !!}
{!! FormField::text('name', ['required' => true]) !!}
{!! FormField::textarea('description') !!}
@if (request('q'))
{{ Form::hidden('q', request('q')) }}

3
src/stubs/view-index.stub

@ -32,7 +32,7 @@
<tbody>
@foreach($masters as $key => $master)
<tr>
<td class="text-center">{{ 1 + $key }}</td>
<td class="text-center">{{ $items->firstItem() + $key }}</td>
<td>{{ $master->name }}</td>
<td>{{ $master->description }}</td>
<td class="text-center">
@ -53,6 +53,7 @@
@endforeach
</tbody>
</table>
<div class="panel-body">{{ $masters->appends(Request::except('page'))->render() }}</div>
</div>
</div>
<div class="col-md-4">

8
tests/Generators/ControllerGeneratorTest.php

@ -29,7 +29,9 @@ class ItemsController extends Controller
public function index()
{
\$editableItem = null;
\$items = Item::paginate(25);
\$items = Item::where(function (\$query) {
\$query->where('name', 'like', '%'.request('q').'%');
})->paginate(25);
if (in_array(request('action'), ['edit', 'delete']) && request('id') != null) {
\$editableItem = Item::find(request('id'));
@ -48,7 +50,7 @@ class ItemsController extends Controller
{
\$this->validate(\$request, [
'name' => 'required|max:60',
'description' => 'required|max:255',
'description' => 'nullable|max:255',
]);
Item::create(\$request->only('name', 'description'));
@ -67,7 +69,7 @@ class ItemsController extends Controller
{
\$this->validate(\$request, [
'name' => 'required|max:60',
'description' => 'required|max:255',
'description' => 'nullable|max:255',
]);
\$routeParam = request()->only('page', 'q');

2
tests/Generators/FeatureTestGeneratorTest.php

@ -100,7 +100,7 @@ class ManageItemsTest extends TestCase
public function user_can_edit_a_item_within_search_query()
{
\$this->loginAsUser();
\$item = factory(Item::class)->create(['description' => 'Testing 123']);
\$item = factory(Item::class)->create(['name' => 'Testing 123']);
\$this->visit(route('items.index', ['q' => '123']));
\$this->click('edit-item-'.\$item->id);

2
tests/Generators/MigrationGeneratorTest.php

@ -31,7 +31,7 @@ class CreateItemsTable extends Migration
Schema::create('items', function (Blueprint \$table) {
\$table->increments('id');
\$table->string('name', 60);
\$table->string('description');
\$table->string('description')->nullable();
\$table->timestamps();
});
}

8
tests/Generators/ViewsGeneratorTest.php

@ -47,7 +47,7 @@ class ViewsGeneratorTest extends TestCase
<tbody>
@foreach(\$items as \$key => \$item)
<tr>
<td class=\"text-center\">{{ 1 + \$key }}</td>
<td class=\"text-center\">{{ \$items->firstItem() + \$key }}</td>
<td>{{ \$item->name }}</td>
<td>{{ \$item->description }}</td>
<td class=\"text-center\">
@ -68,6 +68,7 @@ class ViewsGeneratorTest extends TestCase
@endforeach
</tbody>
</table>
<div class=\"panel-body\">{{ \$items->appends(Request::except('page'))->render() }}</div>
</div>
</div>
<div class=\"col-md-4\">
@ -88,16 +89,15 @@ class ViewsGeneratorTest extends TestCase
$this->assertFileExists($formViewPath);
$formViewContent = "@if (Request::get('action') == 'create')
{!! Form::open(['route' => 'items.store']) !!}
{!! FormField::text('name') !!}
{!! FormField::text('name', ['required' => true]) !!}
{!! FormField::textarea('description') !!}
{!! Form::submit(trans('item.create'), ['class' => 'btn btn-success']) !!}
{!! Form::hidden('cat', 'item') !!}
{{ link_to_route('items.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }}
{!! Form::close() !!}
@endif
@if (Request::get('action') == 'edit' && \$editableItem)
{!! Form::model(\$editableItem, ['route' => ['items.update', \$editableItem->id],'method' => 'patch']) !!}
{!! FormField::text('name') !!}
{!! FormField::text('name', ['required' => true]) !!}
{!! FormField::textarea('description') !!}
@if (request('q'))
{{ Form::hidden('q', request('q')) }}

Loading…
Cancel
Save