Browse Source

Change projects.jobs route into projects.jobs.index

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
4c45d34383
  1. 2
      app/Entities/Projects/JobPresenter.php
  2. 9
      app/Http/Controllers/Projects/JobsController.php
  3. 2
      resources/views/jobs/add-from-other-project.blade.php
  4. 2
      resources/views/jobs/create.blade.php
  5. 2
      resources/views/jobs/edit.blade.php
  6. 2
      resources/views/jobs/show.blade.php
  7. 8
      resources/views/projects/jobs/index.blade.php
  8. 2
      resources/views/projects/partials/nav-tabs.blade.php
  9. 6
      resources/views/projects/partials/project-stats.blade.php
  10. 6
      routes/web/projects.php
  11. 15
      tests/Feature/ManageJobsTest.php

2
app/Entities/Projects/JobPresenter.php

@ -18,7 +18,7 @@ class JobPresenter extends Presenter
public function projectJobsLink() public function projectJobsLink()
{ {
return link_to_route('projects.jobs', trans('project.jobs'), [$this->project_id]);
return link_to_route('projects.jobs.index', trans('project.jobs'), [$this->project_id]);
} }
} }

9
app/Http/Controllers/Projects/JobsController.php

@ -10,6 +10,11 @@ use App\Http\Requests\Jobs\DeleteRequest;
use App\Http\Requests\Jobs\UpdateRequest; use App\Http\Requests\Jobs\UpdateRequest;
use Illuminate\Http\Request; use Illuminate\Http\Request;
/**
* Project Jobs Controller
*
* @author Nafies Luthfi <nafiesl@gmail.com>
*/
class JobsController extends Controller class JobsController extends Controller
{ {
@ -57,7 +62,7 @@ class JobsController extends Controller
{ {
$this->repo->createJobs($req->except('_token'), $projectId); $this->repo->createJobs($req->except('_token'), $projectId);
flash()->success(trans('job.created_from_other_project')); flash()->success(trans('job.created_from_other_project'));
return redirect()->route('projects.jobs', $projectId);
return redirect()->route('projects.jobs.index', $projectId);
} }
public function show(Request $req, $jobId) public function show(Request $req, $jobId)
@ -108,7 +113,7 @@ class JobsController extends Controller
flash()->error(trans('job.undeleted')); flash()->error(trans('job.undeleted'));
} }
return redirect()->route('projects.jobs', $projectId);
return redirect()->route('projects.jobs.index', $projectId);
} }
public function tasksReorder(Request $req, $jobId) public function tasksReorder(Request $req, $jobId)

2
resources/views/jobs/add-from-other-project.blade.php

@ -52,7 +52,7 @@
</div> </div>
<div class="panel-footer"> <div class="panel-footer">
{!! link_to_route('projects.jobs', trans('app.cancel'), [$project->id], ['class'=>'btn btn-default']) !!}
{!! link_to_route('projects.jobs.index', trans('app.cancel'), [$project->id], ['class'=>'btn btn-default']) !!}
</div> </div>
</div> </div>
</div> </div>

2
resources/views/jobs/create.blade.php

@ -28,7 +28,7 @@
<div class="panel-footer"> <div class="panel-footer">
{!! Form::submit(trans('job.create'), ['class'=>'btn btn-primary']) !!} {!! Form::submit(trans('job.create'), ['class'=>'btn btn-primary']) !!}
{!! link_to_route('projects.jobs', trans('app.cancel'), [$project->id], ['class'=>'btn btn-default']) !!}
{!! link_to_route('projects.jobs.index', trans('app.cancel'), [$project->id], ['class'=>'btn btn-default']) !!}
</div> </div>
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}

2
resources/views/jobs/edit.blade.php

@ -28,7 +28,7 @@
{!! Form::hidden('project_id', $job->project_id) !!} {!! Form::hidden('project_id', $job->project_id) !!}
{!! Form::submit(trans('job.update'), ['class'=>'btn btn-primary']) !!} {!! Form::submit(trans('job.update'), ['class'=>'btn btn-primary']) !!}
{!! link_to_route('jobs.show', trans('app.show'), [$job->id], ['class' => 'btn btn-info']) !!} {!! link_to_route('jobs.show', trans('app.show'), [$job->id], ['class' => 'btn btn-info']) !!}
{!! link_to_route('projects.jobs', trans('job.back_to_index'), [$job->project_id], ['class' => 'btn btn-default']) !!}
{!! link_to_route('projects.jobs.index', trans('job.back_to_index'), [$job->project_id], ['class' => 'btn btn-default']) !!}
{!! link_to_route('jobs.delete', trans('job.delete'), [$job->id], ['class'=>'btn btn-danger pull-right']) !!} {!! link_to_route('jobs.delete', trans('job.delete'), [$job->id], ['class'=>'btn btn-danger pull-right']) !!}
</div> </div>
</div> </div>

2
resources/views/jobs/show.blade.php

@ -9,7 +9,7 @@
<div class="pull-right"> <div class="pull-right">
{!! html_link_to_route('jobs.create', trans('job.create'), [$job->project_id], ['class' => 'btn btn-success','icon' => 'plus']) !!} {!! html_link_to_route('jobs.create', trans('job.create'), [$job->project_id], ['class' => 'btn btn-success','icon' => 'plus']) !!}
{!! link_to_route('jobs.edit', trans('job.edit'), [$job->id], ['class' => 'btn btn-warning']) !!} {!! link_to_route('jobs.edit', trans('job.edit'), [$job->id], ['class' => 'btn btn-warning']) !!}
{!! link_to_route('projects.jobs', trans('job.back_to_index'), [$job->project_id, '#' . $job->id], ['class' => 'btn btn-default']) !!}
{!! link_to_route('projects.jobs.index', trans('job.back_to_index'), [$job->project_id, '#' . $job->id], ['class' => 'btn btn-default']) !!}
</div> </div>
{{ $job->name }} <small>{{ trans('job.show') }}</small> {{ $job->name }} <small>{{ trans('job.show') }}</small>
</h1> </h1>

8
resources/views/projects/jobs/index.blade.php

@ -21,9 +21,9 @@
<div class="panel-heading"> <div class="panel-heading">
<div class="pull-right"> <div class="pull-right">
@if (request('action') == 'sort_jobs') @if (request('action') == 'sort_jobs')
{{ link_to_route('projects.jobs', trans('app.done'), [$project->id], ['class' => 'btn btn-default btn-xs pull-right', 'style' => 'margin-top: -2px; margin-left: 6px; margin-right: -8px']) }}
{{ link_to_route('projects.jobs.index', trans('app.done'), [$project->id], ['class' => 'btn btn-default btn-xs pull-right', 'style' => 'margin-top: -2px; margin-left: 6px; margin-right: -8px']) }}
@else @else
{{ link_to_route('projects.jobs', trans('project.sort_jobs'), [$project->id, 'action' => 'sort_jobs', '#project-jobs'], ['class' => 'btn btn-default btn-xs pull-right', 'style' => 'margin-top: -2px; margin-left: 6px; margin-right: -8px']) }}
{{ link_to_route('projects.jobs.index', trans('project.sort_jobs'), [$project->id, 'action' => 'sort_jobs', '#project-jobs'], ['class' => 'btn btn-default btn-xs pull-right', 'style' => 'margin-top: -2px; margin-left: 6px; margin-right: -8px']) }}
{!! link_to_route('projects.jobs-export', trans('project.jobs_export_html'), [$project->id, 'html', 'job_type' => $key], ['class' => '','target' => '_blank']) !!} | {!! link_to_route('projects.jobs-export', trans('project.jobs_export_html'), [$project->id, 'html', 'job_type' => $key], ['class' => '','target' => '_blank']) !!} |
{!! link_to_route('projects.jobs-export', trans('project.jobs_export_excel'), [$project->id, 'excel', 'job_type' => $key], ['class' => '']) !!} | {!! link_to_route('projects.jobs-export', trans('project.jobs_export_excel'), [$project->id, 'excel', 'job_type' => $key], ['class' => '']) !!} |
@ -86,9 +86,9 @@
<th class="text-right">{{ formatRp($groupedJobs->sum('price')) }}</th> <th class="text-right">{{ formatRp($groupedJobs->sum('price')) }}</th>
<th colspan="2"> <th colspan="2">
@if (request('action') == 'sort_jobs') @if (request('action') == 'sort_jobs')
{{ link_to_route('projects.jobs', trans('app.done'), [$project->id], ['class' => 'btn btn-default btn-xs pull-right']) }}
{{ link_to_route('projects.jobs.index', trans('app.done'), [$project->id], ['class' => 'btn btn-default btn-xs pull-right']) }}
@else @else
{{ link_to_route('projects.jobs', trans('project.sort_jobs'), [$project->id, 'action' => 'sort_jobs', '#project-jobs'], ['class' => 'btn btn-default btn-xs pull-right']) }}
{{ link_to_route('projects.jobs.index', trans('project.sort_jobs'), [$project->id, 'action' => 'sort_jobs', '#project-jobs'], ['class' => 'btn btn-default btn-xs pull-right']) }}
@endif @endif
</th> </th>
</tr> </tr>

2
resources/views/projects/partials/nav-tabs.blade.php

@ -4,7 +4,7 @@
{!! link_to_route('projects.show', trans('project.show'), [$project->id]) !!} {!! link_to_route('projects.show', trans('project.show'), [$project->id]) !!}
</li> </li>
<li class="{{ Request::segment(3) == 'jobs' ? 'active' : '' }}"> <li class="{{ Request::segment(3) == 'jobs' ? 'active' : '' }}">
{!! link_to_route('projects.jobs', trans('project.jobs').' ('.$project->jobs->count().')', [$project->id]) !!}
{!! link_to_route('projects.jobs.index', trans('project.jobs').' ('.$project->jobs->count().')', [$project->id]) !!}
</li> </li>
<li class="{{ Request::segment(3) == 'payments' ? 'active' : '' }}"> <li class="{{ Request::segment(3) == 'payments' ? 'active' : '' }}">
{!! link_to_route('projects.payments', trans('project.payments').' ('.$project->payments->count().')', [$project->id]) !!} {!! link_to_route('projects.payments', trans('project.payments').' ('.$project->payments->count().')', [$project->id]) !!}

6
resources/views/projects/partials/project-stats.blade.php

@ -1,6 +1,6 @@
<div class="row"> <div class="row">
<div class="col-lg-6 col-md-12"> <div class="col-lg-6 col-md-12">
<a href="{{ route('projects.jobs',[$project->id]) }}" title="Progress Berdasarkan Index Bobot Biaya Fitur">
<a href="{{ route('projects.jobs.index',[$project->id]) }}" title="Progress Berdasarkan Index Bobot Biaya Fitur">
<div class="panel panel-info"> <div class="panel panel-info">
<div class="panel-heading"> <div class="panel-heading">
<div class="row"> <div class="row">
@ -15,7 +15,7 @@
</a> </a>
</div> </div>
<div class="col-lg-6 col-md-12"> <div class="col-lg-6 col-md-12">
<a href="{{ route('projects.jobs',[$project->id]) }}" title="Total Fitur dan Task">
<a href="{{ route('projects.jobs.index',[$project->id]) }}" title="Total Fitur dan Task">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<div class="row"> <div class="row">
@ -30,7 +30,7 @@
</a> </a>
</div> </div>
<div class="col-lg-6 col-md-12"> <div class="col-lg-6 col-md-12">
<a href="{{ route('projects.jobs',[$project->id]) }}" title="Collectible Earnings">
<a href="{{ route('projects.jobs.index',[$project->id]) }}" title="Collectible Earnings">
<div class="panel panel-success"> <div class="panel panel-success">
<div class="panel-heading"> <div class="panel-heading">
<div class="row"> <div class="row">

6
routes/web/projects.php

@ -7,7 +7,6 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct
Route::get('projects/{id}/delete', ['as' => 'projects.delete', 'uses' => 'ProjectsController@delete']); Route::get('projects/{id}/delete', ['as' => 'projects.delete', 'uses' => 'ProjectsController@delete']);
Route::get('projects/{id}/jobs-export/{type?}', ['as' => 'projects.jobs-export', 'uses' => 'ProjectsController@jobsExport']); Route::get('projects/{id}/jobs-export/{type?}', ['as' => 'projects.jobs-export', 'uses' => 'ProjectsController@jobsExport']);
Route::get('projects/{id}/subscriptions', ['as' => 'projects.subscriptions', 'uses' => 'ProjectsController@subscriptions']); Route::get('projects/{id}/subscriptions', ['as' => 'projects.subscriptions', 'uses' => 'ProjectsController@subscriptions']);
Route::post('projects/{id}/jobs-reorder', ['as' => 'projects.jobs-reorder', 'uses' => 'ProjectsController@jobsReorder']);
Route::patch('projects/{id}/status-update', ['as' => 'projects.status-update', 'uses' => 'ProjectsController@statusUpdate']); Route::patch('projects/{id}/status-update', ['as' => 'projects.status-update', 'uses' => 'ProjectsController@statusUpdate']);
Route::resource('projects', 'ProjectsController'); Route::resource('projects', 'ProjectsController');
@ -32,11 +31,12 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct
*/ */
Route::get('projects/{id}/jobs/create', ['as' => 'jobs.create', 'uses' => 'JobsController@create']); Route::get('projects/{id}/jobs/create', ['as' => 'jobs.create', 'uses' => 'JobsController@create']);
Route::get('projects/{id}/jobs/add-from-other-project', ['as' => 'jobs.add-from-other-project', 'uses' => 'JobsController@addFromOtherProject']); Route::get('projects/{id}/jobs/add-from-other-project', ['as' => 'jobs.add-from-other-project', 'uses' => 'JobsController@addFromOtherProject']);
Route::post('jobs/{id}/tasks-reorder', ['as' => 'jobs.tasks-reorder', 'uses' => 'JobsController@tasksReorder']);
Route::post('projects/{id}/jobs', ['as' => 'jobs.store', 'uses' => 'JobsController@store']); Route::post('projects/{id}/jobs', ['as' => 'jobs.store', 'uses' => 'JobsController@store']);
Route::post('projects/{id}/jobs/store-from-other-project', ['as' => 'jobs.store-from-other-project', 'uses' => 'JobsController@storeFromOtherProject']); Route::post('projects/{id}/jobs/store-from-other-project', ['as' => 'jobs.store-from-other-project', 'uses' => 'JobsController@storeFromOtherProject']);
Route::get('jobs/{id}/delete', ['as' => 'jobs.delete', 'uses' => 'JobsController@delete']); Route::get('jobs/{id}/delete', ['as' => 'jobs.delete', 'uses' => 'JobsController@delete']);
Route::get('projects/{project}/jobs', ['as' => 'projects.jobs', 'uses' => 'JobsController@index']);
Route::post('jobs/{id}/tasks-reorder', ['as' => 'jobs.tasks-reorder', 'uses' => 'JobsController@tasksReorder']);
Route::get('projects/{project}/jobs', ['as' => 'projects.jobs.index', 'uses' => 'JobsController@index']);
Route::post('projects/{id}/jobs-reorder', ['as' => 'projects.jobs-reorder', 'uses' => 'ProjectsController@jobsReorder']);
Route::resource('jobs', 'JobsController', ['except' => ['index', 'create', 'store']]); Route::resource('jobs', 'JobsController', ['except' => ['index', 'create', 'store']]);
/** /**

15
tests/Feature/ManageJobsTest.php

@ -9,6 +9,11 @@ use App\Entities\Projects\Task;
use App\Entities\Users\User; use App\Entities\Users\User;
use Tests\TestCase; use Tests\TestCase;
/**
* Manage Project Feature Test
*
* @author Nafies Luthfi <nafiesl@gmail.com>
*/
class ManageJobsTest extends TestCase class ManageJobsTest extends TestCase
{ {
/** @test */ /** @test */
@ -21,7 +26,7 @@ class ManageJobsTest extends TestCase
$worker = $this->createUser(); $worker = $this->createUser();
$this->visit(route('projects.jobs', $project->id));
$this->visit(route('projects.jobs.index', $project->id));
$this->click(trans('job.create')); $this->click(trans('job.create'));
$this->seePageIs(route('jobs.create', $project->id)); $this->seePageIs(route('jobs.create', $project->id));
@ -98,7 +103,7 @@ class ManageJobsTest extends TestCase
$this->click(trans('job.delete')); $this->click(trans('job.delete'));
$this->press(trans('app.delete_confirm_button')); $this->press(trans('app.delete_confirm_button'));
$this->seePageIs(route('projects.jobs', $project->id));
$this->seePageIs(route('projects.jobs.index', $project->id));
$this->see(trans('job.deleted')); $this->see(trans('job.deleted'));
@ -121,7 +126,7 @@ class ManageJobsTest extends TestCase
$project = factory(Project::class)->create(); $project = factory(Project::class)->create();
$job = factory(Job::class)->create(['project_id' => $project->id, 'type_id' => 1]); $job = factory(Job::class)->create(['project_id' => $project->id, 'type_id' => 1]);
$this->visit(route('projects.jobs', $project->id));
$this->visit(route('projects.jobs.index', $project->id));
$this->click('show-job-'.$job->id); $this->click('show-job-'.$job->id);
$this->seePageIs(route('jobs.show', $project->id)); $this->seePageIs(route('jobs.show', $project->id));
$this->see(trans('job.show')); $this->see(trans('job.show'));
@ -140,7 +145,7 @@ class ManageJobsTest extends TestCase
$tasks1 = factory(Task::class, 3)->create(['job_id' => $jobs[0]->id]); $tasks1 = factory(Task::class, 3)->create(['job_id' => $jobs[0]->id]);
$tasks2 = factory(Task::class, 3)->create(['job_id' => $jobs[1]->id]); $tasks2 = factory(Task::class, 3)->create(['job_id' => $jobs[1]->id]);
$this->visit(route('projects.jobs', $projects[1]->id));
$this->visit(route('projects.jobs.index', $projects[1]->id));
$this->click(trans('job.add_from_other_project')); $this->click(trans('job.add_from_other_project'));
$this->seePageIs(route('jobs.add-from-other-project', $projects[1]->id)); $this->seePageIs(route('jobs.add-from-other-project', $projects[1]->id));
@ -160,7 +165,7 @@ class ManageJobsTest extends TestCase
$form[$jobs[1]->id.'_task_ids'][$tasks2[2]->id]->tick(); $form[$jobs[1]->id.'_task_ids'][$tasks2[2]->id]->tick();
$this->makeRequestUsingForm($form); $this->makeRequestUsingForm($form);
$this->seePageIs(route('projects.jobs', $projects[1]->id));
$this->seePageIs(route('projects.jobs.index', $projects[1]->id));
$this->see(trans('job.created_from_other_project')); $this->see(trans('job.created_from_other_project'));

Loading…
Cancel
Save