Browse Source

Restructure jobs routes

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
7465e4ee22
  1. 64
      app/Http/Controllers/JobsController.php
  2. 64
      app/Http/Controllers/Projects/JobsController.php
  3. 11
      routes/web/projects.php

64
app/Http/Controllers/JobsController.php

@ -2,7 +2,11 @@
namespace App\Http\Controllers;
use App\Entities\Projects\Job;
use App\Entities\Projects\JobsRepository;
use App\Http\Requests\Jobs\DeleteRequest;
use App\Http\Requests\Jobs\UpdateRequest;
use Illuminate\Http\Request;
/**
* Jobs Controller
@ -23,4 +27,64 @@ class JobsController extends Controller
$jobs = $this->repo->getUnfinishedJobs();
return view('jobs.unfinished', compact('jobs'));
}
public function show(Request $request, Job $job)
{
$editableTask = null;
if ($request->get('action') == 'task_edit' && $request->has('task_id')) {
$editableTask = $this->repo->requireTaskById($request->get('task_id'));
}
if ($request->get('action') == 'task_delete' && $request->has('task_id')) {
$editableTask = $this->repo->requireTaskById($request->get('task_id'));
}
return view('jobs.show', compact('job', 'editableTask'));
}
public function edit($jobId)
{
$job = $this->repo->requireById($jobId);
$workers = $this->repo->getWorkersList();
return view('jobs.edit', compact('job', 'workers'));
}
public function update(UpdateRequest $req, $jobId)
{
$job = $this->repo->update($req->except(['_method', '_token']), $jobId);
flash()->success(trans('job.updated'));
return redirect()->route('jobs.show', $job->id);
}
public function delete($jobId)
{
$job = $this->repo->requireById($jobId);
return view('jobs.delete', compact('job'));
}
public function destroy(DeleteRequest $req, $jobId)
{
$job = $this->repo->requireById($jobId);
$projectId = $job->project_id;
if ($jobId == $req->get('job_id')) {
$job->tasks()->delete();
$job->delete();
flash()->success(trans('job.deleted'));
} else {
flash()->error(trans('job.undeleted'));
}
return redirect()->route('projects.jobs.index', $projectId);
}
public function tasksReorder(Request $req, $jobId)
{
if ($req->ajax()) {
$data = $this->repo->tasksReorder($req->get('postData'));
return 'oke';
}
return null;
}
}

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

@ -6,8 +6,6 @@ use App\Entities\Projects\JobsRepository;
use App\Entities\Projects\Project;
use App\Http\Controllers\Controller;
use App\Http\Requests\Jobs\CreateRequest;
use App\Http\Requests\Jobs\DeleteRequest;
use App\Http\Requests\Jobs\UpdateRequest;
use Illuminate\Http\Request;
/**
@ -64,66 +62,4 @@ class JobsController extends Controller
flash()->success(trans('job.created_from_other_project'));
return redirect()->route('projects.jobs.index', $projectId);
}
public function show(Request $req, $jobId)
{
$editableTask = null;
$job = $this->repo->requireById($jobId);
if ($req->get('action') == 'task_edit' && $req->has('task_id')) {
$editableTask = $this->repo->requireTaskById($req->get('task_id'));
}
if ($req->get('action') == 'task_delete' && $req->has('task_id')) {
$editableTask = $this->repo->requireTaskById($req->get('task_id'));
}
return view('jobs.show', compact('job', 'editableTask'));
}
public function edit($jobId)
{
$job = $this->repo->requireById($jobId);
$workers = $this->repo->getWorkersList();
return view('jobs.edit', compact('job', 'workers'));
}
public function update(UpdateRequest $req, $jobId)
{
$job = $this->repo->update($req->except(['_method', '_token']), $jobId);
flash()->success(trans('job.updated'));
return redirect()->route('jobs.show', $job->id);
}
public function delete($jobId)
{
$job = $this->repo->requireById($jobId);
return view('jobs.delete', compact('job'));
}
public function destroy(DeleteRequest $req, $jobId)
{
$job = $this->repo->requireById($jobId);
$projectId = $job->project_id;
if ($jobId == $req->get('job_id')) {
$job->tasks()->delete();
$job->delete();
flash()->success(trans('job.deleted'));
} else {
flash()->error(trans('job.undeleted'));
}
return redirect()->route('projects.jobs.index', $projectId);
}
public function tasksReorder(Request $req, $jobId)
{
if ($req->ajax()) {
$data = $this->repo->tasksReorder($req->get('postData'));
return 'oke';
}
return null;
}
}

11
routes/web/projects.php

@ -33,11 +33,8 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct
Route::post('projects/{id}/jobs', ['as' => 'projects.jobs.store', 'uses' => 'JobsController@store']);
Route::get('projects/{id}/jobs/add-from-other-project', ['as' => 'projects.jobs.add-from-other-project', 'uses' => 'JobsController@addFromOtherProject']);
Route::post('projects/{id}/jobs/store-from-other-project', ['as' => 'projects.jobs.store-from-other-project', 'uses' => 'JobsController@storeFromOtherProject']);
Route::get('jobs/{id}/delete', ['as' => 'jobs.delete', 'uses' => 'JobsController@delete']);
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']]);
/**
* Tasks Routes
@ -59,7 +56,13 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct
Route::group(['middleware' => ['web', 'auth']], function () {
/**
* Unfinished Job List
* Jobs Routes
*/
Route::get('jobs', ['as' => 'jobs.index', 'uses' => 'JobsController@index']);
Route::get('jobs/{job}', ['as' => 'jobs.show', 'uses' => 'JobsController@show']);
Route::get('jobs/{job}/edit', ['as' => 'jobs.edit', 'uses' => 'JobsController@edit']);
Route::patch('jobs/{job}', ['as' => 'jobs.update', 'uses' => 'JobsController@update']);
Route::get('jobs/{job}/delete', ['as' => 'jobs.delete', 'uses' => 'JobsController@delete']);
Route::delete('jobs/{job}', ['as' => 'jobs.destroy', 'uses' => 'JobsController@destroy']);
Route::post('jobs/{id}/tasks-reorder', ['as' => 'jobs.tasks-reorder', 'uses' => 'JobsController@tasksReorder']);
});
Loading…
Cancel
Save