From 7465e4ee2213529e8031b930b02dc9bc811a0ef1 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Fri, 17 Nov 2017 23:21:13 +0800 Subject: [PATCH] Restructure jobs routes --- app/Http/Controllers/JobsController.php | 64 ++++++++++++++++++++++++ app/Http/Controllers/Projects/JobsController.php | 64 ------------------------ routes/web/projects.php | 11 ++-- 3 files changed, 71 insertions(+), 68 deletions(-) diff --git a/app/Http/Controllers/JobsController.php b/app/Http/Controllers/JobsController.php index 368c90a..74cce0b 100755 --- a/app/Http/Controllers/JobsController.php +++ b/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; + } } diff --git a/app/Http/Controllers/Projects/JobsController.php b/app/Http/Controllers/Projects/JobsController.php index 740a41e..78ca43b 100755 --- a/app/Http/Controllers/Projects/JobsController.php +++ b/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; - } - } diff --git a/routes/web/projects.php b/routes/web/projects.php index 3de894a..c37722e 100644 --- a/routes/web/projects.php +++ b/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']); });