diff --git a/app/Http/Controllers/Projects/IssueController.php b/app/Http/Controllers/Projects/IssueController.php
index 7f70e94..d0f1e9d 100644
--- a/app/Http/Controllers/Projects/IssueController.php
+++ b/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'));
+ }
}
diff --git a/database/factories/IssueFactory.php b/database/factories/IssueFactory.php
index a99dc3b..859781d 100644
--- a/database/factories/IssueFactory.php
+++ b/database/factories/IssueFactory.php
@@ -1,5 +1,6 @@
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;
+ },
];
});
diff --git a/resources/views/projects/issues.blade.php b/resources/views/projects/issues.blade.php
index 8011433..514ef5e 100755
--- a/resources/views/projects/issues.blade.php
+++ b/resources/views/projects/issues.blade.php
@@ -21,7 +21,14 @@
| {{ $no }} |
{{ $issue->title }} |
- |
+
+ {{ link_to_route(
+ 'projects.issues.show',
+ __('app.show'),
+ [$project, $issue],
+ ['class' => 'small', 'title' => __('issue.show')]
+ ) }}
+ |
@empty
| {{ __('issue.empty') }} |
diff --git a/resources/views/projects/issues/create.blade.php b/resources/views/projects/issues/create.blade.php
index 7981727..46df9d4 100755
--- a/resources/views/projects/issues/create.blade.php
+++ b/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
diff --git a/resources/views/projects/issues/show.blade.php b/resources/views/projects/issues/show.blade.php
new file mode 100755
index 0000000..a632104
--- /dev/null
+++ b/resources/views/projects/issues/show.blade.php
@@ -0,0 +1,20 @@
+@extends('layouts.project')
+
+@section('subtitle', __('issue.detail'))
+
+@section('content-project')
+
+
+
+
+
{{ __('issue.detail') }}
+
+
+ | {{ __('issue.title') }} | {{ $issue->title }} |
+ | {{ __('issue.body') }} | {{ $issue->body }} |
+
+
+
+
+
+@endsection
diff --git a/routes/web/projects.php b/routes/web/projects.php
index 79a2847..fe5e331 100644
--- a/routes/web/projects.php
+++ b/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
diff --git a/tests/Feature/Projects/ProjectIssuesTest.php b/tests/Feature/Projects/ProjectIssuesTest.php
index 0e2b488..83b5544 100644
--- a/tests/Feature/Projects/ProjectIssuesTest.php
+++ b/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();