diff --git a/app/Http/Controllers/Issues/OptionController.php b/app/Http/Controllers/Issues/OptionController.php index bad3511..a37a200 100644 --- a/app/Http/Controllers/Issues/OptionController.php +++ b/app/Http/Controllers/Issues/OptionController.php @@ -11,9 +11,11 @@ class OptionController extends Controller public function update(Request $request, Issue $issue) { $issueData = $request->validate([ - 'status_id' => 'required|in:0,1,2,3,4', - 'pic_id' => 'nullable|exists:users,id', + 'priority_id' => 'required|in:1,2,3', + 'status_id' => 'required|in:0,1,2,3,4', + 'pic_id' => 'nullable|exists:users,id', ]); + $issue->priority_id = $issueData['priority_id']; $issue->status_id = $issueData['status_id']; $issue->pic_id = $issueData['pic_id']; $issue->save(); diff --git a/app/Http/Controllers/Projects/IssueController.php b/app/Http/Controllers/Projects/IssueController.php index 09ea564..247143e 100644 --- a/app/Http/Controllers/Projects/IssueController.php +++ b/app/Http/Controllers/Projects/IssueController.php @@ -50,10 +50,13 @@ class IssueController extends Controller public function show(Project $project, Issue $issue) { + $priorities = Priority::toArray(); $statuses = IssueStatus::toArray(); $users = User::pluck('name', 'id'); - return view('projects.issues.show', compact('project', 'issue', 'users', 'statuses')); + return view('projects.issues.show', compact( + 'project', 'issue', 'users', 'statuses', 'priorities' + )); } public function edit(Project $project, Issue $issue) diff --git a/resources/views/projects/issues/show.blade.php b/resources/views/projects/issues/show.blade.php index 42f60af..e06613a 100755 --- a/resources/views/projects/issues/show.blade.php +++ b/resources/views/projects/issues/show.blade.php @@ -37,6 +37,7 @@

{{ __('app.action') }}

+ {!! FormField::radios('priority_id', $priorities, ['label' => __('issue.priority')]) !!} {!! FormField::radios('status_id', $statuses, ['label' => __('app.status')]) !!} {!! FormField::select('pic_id', $users, ['label' => __('issue.assign_pic'), 'placeholder' => __('issue.select_pic')]) !!}
diff --git a/tests/Feature/Projects/ProjectIssuesTest.php b/tests/Feature/Projects/ProjectIssuesTest.php index fa5f75c..9d27f9f 100644 --- a/tests/Feature/Projects/ProjectIssuesTest.php +++ b/tests/Feature/Projects/ProjectIssuesTest.php @@ -192,4 +192,28 @@ class ProjectIssuesTest extends TestCase 'status_id' => 2, // resolved ]); } + + /** @test */ + public function user_can_change_issue_priority() + { + $this->adminUserSigningIn(); + $worker = $this->createUser('worker'); + $issue = factory(Issue::class)->create(); + + $this->visitRoute('projects.issues.show', [$issue->project, $issue]); + $this->submitForm(__('issue.update'), [ + 'priority_id' => 2, // major + 'status_id' => 2, // resolved + 'pic_id' => $worker->id, + ]); + $this->seeRouteIs('projects.issues.show', [$issue->project, $issue]); + $this->seeText(__('issue.updated')); + + $this->seeInDatabase('issues', [ + 'id' => $issue->id, + 'pic_id' => $worker->id, + 'priority_id' => 2, // major + 'status_id' => 2, // resolved + ]); + } }