Browse Source

Merge pull request #64 from nafiesl/feature/set_task_as_done

Add "Set Task Done" Feature
pull/67/head
Nafies Luthfi 5 years ago
committed by GitHub
parent
commit
c790a978ab
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      app/Http/Controllers/Projects/TasksController.php
  2. 2
      composer.json
  3. 20
      composer.lock
  4. 1
      resources/lang/de/task.php
  5. 1
      resources/lang/en/task.php
  6. 1
      resources/lang/id/task.php
  7. 17
      resources/views/jobs/partials/job-tasks.blade.php
  8. 1
      routes/web/projects.php
  9. 19
      tests/Feature/ManageTasksTest.php

10
app/Http/Controllers/Projects/TasksController.php

@ -95,4 +95,14 @@ class TasksController extends Controller
return redirect()->route('jobs.edit', $job);
}
public function setDone(Task $task)
{
$task->progress = 100;
$task->save();
flash(__('task.updated'), 'success');
return redirect()->route('jobs.show', $task->job);
}
}

2
composer.json

@ -10,7 +10,7 @@
"fideloper/proxy": "^4.0",
"laracasts/presenter": "^0.2.1",
"laravel/framework": "^6.0",
"luthfi/formfield": "^1.0",
"luthfi/formfield": "1.*",
"riskihajar/terbilang": "^1.2",
"spatie/laravel-fractal": "^5.0"
},

20
composer.lock

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "df83c9097f4fde630adf7fadef8312ef",
"content-hash": "331f543b74d05d83017acb6e7493bd53",
"packages": [
{
"name": "backup-manager/backup-manager",
@ -888,21 +888,21 @@
},
{
"name": "luthfi/formfield",
"version": "1.x-dev",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/nafiesl/FormField.git",
"reference": "f869f8804da32d41c511e9b77e5f145fc94be171"
"reference": "b1dc8d222901f11759a70f34a01a89d94fa67b68"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nafiesl/FormField/zipball/f869f8804da32d41c511e9b77e5f145fc94be171",
"reference": "f869f8804da32d41c511e9b77e5f145fc94be171",
"url": "https://api.github.com/repos/nafiesl/FormField/zipball/b1dc8d222901f11759a70f34a01a89d94fa67b68",
"reference": "b1dc8d222901f11759a70f34a01a89d94fa67b68",
"shasum": ""
},
"require": {
"laravelcollective/html": "5.3.* || 5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.0.*",
"php": ">=5.6.4"
"laravelcollective/html": ">=5.3",
"php": ">=7.2"
},
"require-dev": {
"orchestra/testbench": ">=3.0 <3.8"
@ -936,7 +936,7 @@
}
],
"description": "Laravel Form Field the extension of Laravelcollective Form for Laravel 5.3 and newer with Twitter Bootstrap 3",
"time": "2019-09-04T11:37:35+00:00"
"time": "2020-05-22T15:27:39+00:00"
},
{
"name": "monolog/monolog",
@ -4250,6 +4250,7 @@
"keywords": [
"tokenizer"
],
"abandoned": true,
"time": "2019-09-17T06:23:10+00:00"
},
{
@ -5062,5 +5063,6 @@
"platform": {
"php": "^7.2"
},
"platform-dev": []
"platform-dev": [],
"plugin-api-version": "1.1.0"
}

1
resources/lang/de/task.php

@ -21,6 +21,7 @@ return [
'delete' => 'Vorgang löschen',
'deleted' => 'Vorgan wurde gelöscht.',
'undeleted' => 'Vorgang nicht gelöscht.',
'set_done' => 'Set done',
// Attributes
'name' => 'Vorgang Name',

1
resources/lang/en/task.php

@ -21,6 +21,7 @@ return [
'delete' => 'Delete Task',
'deleted' => 'Task has been deleted.',
'undeleted' => 'Task not deleted.',
'set_done' => 'Set done',
// Attributes
'name' => 'Task Name',

1
resources/lang/id/task.php

@ -21,6 +21,7 @@ return [
'delete' => 'Hapus Task',
'deleted' => 'Hapus data Task telah berhasil.',
'undeleted' => 'Data Task gagal dihapus.',
'set_done' => 'Set Selesai',
'set_as_job' => 'Set Menjadi Job',
'set_as_job_confirm' => 'Anda yakin mengubah task ini menjadi sebuah Job?',

17
resources/views/jobs/partials/job-tasks.blade.php

@ -31,7 +31,22 @@
<div>{{ $task->name }}</div>
<div class="small text-info">{!! nl2br($task->description) !!}</div>
</td>
<td class="text-center">{{ $task->progress }} %</td>
<td class="text-center">
{{ $task->progress }} %
@can('update', $task)
@if ($task->progress < 100)
{!! FormField::formButton(['route' => ['tasks.set_done', $task], 'method' => 'patch'],
__('task.set_done'),
['class' => 'btn btn-success btn-xs', 'id' => $task->id.'-set_task_done'],
[
'task_id' => $task->id,
'job_id' => $task->job_id,
]
) !!}
@endif
@endcan
</td>
<td class="text-center">
@can('update', $task)
{!! html_link_to_route('jobs.show', '', [

1
routes/web/projects.php

@ -62,6 +62,7 @@ Route::group(['middleware' => ['auth'], 'namespace' => 'Projects'], function ()
Route::get('jobs/{job}/tasks/create', ['as' => 'tasks.create', 'uses' => 'TasksController@create']);
Route::post('jobs/{job}/tasks', ['as' => 'tasks.store', 'uses' => 'TasksController@store']);
Route::patch('tasks/{task}', ['as' => 'tasks.update', 'uses' => 'TasksController@update']);
Route::patch('tasks/{task}/set_done', ['as' => 'tasks.set_done', 'uses' => 'TasksController@setDone']);
Route::delete('tasks/{task}', ['as' => 'tasks.destroy', 'uses' => 'TasksController@destroy']);
Route::post('tasks/{task}/set-as-job', ['as' => 'tasks.set-as-job', 'uses' => 'TasksController@setAsJob']);

19
tests/Feature/ManageTasksTest.php

@ -82,4 +82,23 @@ class ManageTasksTest extends TestCase
$this->seePageIs(route('jobs.show', $job->id));
$this->see(trans('task.deleted'));
}
/** @test */
public function admin_can_set_a_task_as_done()
{
$user = $this->adminUserSigningIn();
$job = factory(Job::class)->create(['worker_id' => $user->id]);
$task = factory(Task::class)->create(['job_id' => $job->id, 'progress' => 0]);
$this->visit(route('jobs.show', $job->id));
$this->press($task->id.'-set_task_done');
$this->seePageIs(route('jobs.show', $job->id));
$this->see(trans('task.updated'));
$this->dontSeeElement('button', ['id' => $task->id.'-set_task_done']);
$this->seeInDatabase('tasks', [
'id' => $task->id,
'progress' => 100,
]);
}
}
Loading…
Cancel
Save