Browse Source

Add issue detail page

pull/37/head
Nafies Luthfi 7 years ago
parent
commit
08c2281d47
  1. 5
      app/Http/Controllers/Projects/IssueController.php
  2. 4
      database/factories/IssueFactory.php
  3. 9
      resources/views/projects/issues.blade.php
  4. 2
      resources/views/projects/issues/create.blade.php
  5. 20
      resources/views/projects/issues/show.blade.php
  6. 1
      routes/web/projects.php
  7. 16
      tests/Feature/Projects/ProjectIssuesTest.php

5
app/Http/Controllers/Projects/IssueController.php

@ -37,4 +37,9 @@ class IssueController extends Controller
return redirect()->route('projects.issues.index', $project);
}
public function show(Project $project, Issue $issue)
{
return view('projects.issues.show', compact('project', 'issue'));
}
}

4
database/factories/IssueFactory.php

@ -1,5 +1,6 @@
<?php
use App\Entities\Users\User;
use Faker\Generator as Faker;
use App\Entities\Projects\Issue;
use App\Entities\Projects\Project;
@ -11,5 +12,8 @@ $factory->define(Issue::class, function (Faker $faker) {
},
'title' => $faker->words(3, true),
'body' => $faker->sentences(3, true),
'creator_id' => function () {
return factory(User::class)->create()->id;
},
];
});

9
resources/views/projects/issues.blade.php

@ -21,7 +21,14 @@
<tr id="{{ $issue->id }}">
<td>{{ $no }}</td>
<td>{{ $issue->title }}</td>
<td class="text-center">&nbsp;</td>
<td class="text-center">
{{ link_to_route(
'projects.issues.show',
__('app.show'),
[$project, $issue],
['class' => 'small', 'title' => __('issue.show')]
) }}
</td>
</tr>
@empty
<tr><td colspan="3">{{ __('issue.empty') }}</td></tr>

2
resources/views/projects/issues/create.blade.php

@ -3,7 +3,7 @@
@section('subtitle', __('issue.create'))
@section('action-buttons')
@can('create', new App\Entities\Projects\Job)
@can('create', new App\Entities\Projects\Issue)
{!! html_link_to_route('projects.issues.create', __('issue.create'), $project, ['class' => 'btn btn-success', 'icon' => 'plus']) !!}
@endcan
@endsection

20
resources/views/projects/issues/show.blade.php

@ -0,0 +1,20 @@
@extends('layouts.project')
@section('subtitle', __('issue.detail'))
@section('content-project')
<div class="row">
<div class="col-md-5">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ __('issue.detail') }}</h3></div>
<table class="table table-condensed">
<tbody>
<tr><th class="col-md-4">{{ __('issue.title') }}</th><td class="col-md-8">{{ $issue->title }}</td></tr>
<tr><th>{{ __('issue.body') }}</th><td>{{ $issue->body }}</td></tr>
</tbody>
</table>
</div>
</div>
</div>
@endsection

1
routes/web/projects.php

@ -51,6 +51,7 @@ Route::group(['middleware' => ['auth'], 'namespace' => 'Projects'], function ()
Route::get('projects/{project}/issues', 'IssueController@index')->name('projects.issues.index');
Route::get('projects/{project}/issues/create', 'IssueController@create')->name('projects.issues.create');
Route::post('projects/{project}/issues', 'IssueController@store')->name('projects.issues.store');
Route::get('projects/{project}/issues/{issue}', 'IssueController@show')->name('projects.issues.show');
/*
* Tasks Routes

16
tests/Feature/Projects/ProjectIssuesTest.php

@ -53,6 +53,22 @@ class ProjectIssuesTest extends TestCase
}
/** @test */
public function user_can_view_an_issue_detail()
{
$this->adminUserSigningIn();
$project = factory(Project::class)->create();
$issue = factory(Issue::class)->create([
'project_id' => $project->id,
'title' => 'The issue title.',
'body' => 'This is a project issue body.',
]);
$this->visitRoute('projects.issues.show', [$project, $issue]);
$this->seeText($issue->title);
$this->seeText($issue->body);
}
/** @test */
public function user_can_edit_issue()
{
$this->adminUserSigningIn();

Loading…
Cancel
Save