diff --git a/app/Entities/Projects/JobsRepository.php b/app/Entities/Projects/JobsRepository.php index 971d67b..1efbc46 100755 --- a/app/Entities/Projects/JobsRepository.php +++ b/app/Entities/Projects/JobsRepository.php @@ -30,6 +30,17 @@ class JobsRepository extends BaseRepository ->get(); } + public function getProjectJobs($projectId, $type = null) + { + return Job::where(function ($query) use ($projectId, $type) { + $query->whereProjectId($projectId); + if ($type) { + $query->whereTypeId($type); + } + + })->orderBy('position')->with('worker', 'tasks')->get(); + } + public function requireProjectById($projectId) { return Project::findOrFail($projectId); diff --git a/app/Entities/Projects/ProjectsRepository.php b/app/Entities/Projects/ProjectsRepository.php index 587ac29..e740c85 100755 --- a/app/Entities/Projects/ProjectsRepository.php +++ b/app/Entities/Projects/ProjectsRepository.php @@ -91,17 +91,6 @@ class ProjectsRepository extends BaseRepository return 'deleted'; } - public function getProjectJobs($projectId, $type = null) - { - return Job::where(function ($query) use ($projectId, $type) { - $query->whereProjectId($projectId); - if ($type) { - $query->whereTypeId($type); - } - - })->orderBy('position')->with('worker', 'tasks')->get(); - } - public function updateStatus($statusId, $projectId) { $project = $this->requireById($projectId); diff --git a/app/Http/Controllers/JobsController.php b/app/Http/Controllers/JobsController.php new file mode 100755 index 0000000..ebb65c2 --- /dev/null +++ b/app/Http/Controllers/JobsController.php @@ -0,0 +1,22 @@ +repo = $repo; + } + + public function index() + { + $jobs = $this->repo->getUnfinishedJobs(); + return view('jobs.unfinished', compact('jobs')); + } +} diff --git a/app/Http/Controllers/Projects/JobsController.php b/app/Http/Controllers/Projects/JobsController.php index 64335e5..9d0adac 100755 --- a/app/Http/Controllers/Projects/JobsController.php +++ b/app/Http/Controllers/Projects/JobsController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Projects; 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; @@ -19,10 +20,10 @@ class JobsController extends Controller $this->repo = $repo; } - public function index() + public function index(Project $project) { - $jobs = $this->repo->getUnfinishedJobs(); - return view('jobs.unfinished', compact('jobs')); + $jobs = $this->repo->getProjectJobs($project->id); + return view('projects.jobs.index', compact('project', 'jobs')); } public function create($projectId) diff --git a/app/Http/Controllers/Projects/ProjectsController.php b/app/Http/Controllers/Projects/ProjectsController.php index d2e43ea..bab0239 100755 --- a/app/Http/Controllers/Projects/ProjectsController.php +++ b/app/Http/Controllers/Projects/ProjectsController.php @@ -86,13 +86,6 @@ class ProjectsController extends Controller return redirect()->route('projects.index'); } - public function jobs($projectId) - { - $project = $this->repo->requireById($projectId); - $jobs = $this->repo->getProjectJobs($projectId); - return view('projects.jobs.index', compact('project', 'jobs')); - } - public function subscriptions($projectId) { $project = $this->repo->requireById($projectId); diff --git a/routes/web/projects.php b/routes/web/projects.php index a766333..5e06098 100644 --- a/routes/web/projects.php +++ b/routes/web/projects.php @@ -5,7 +5,6 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct * Projects Routes */ Route::get('projects/{id}/delete', ['as' => 'projects.delete', 'uses' => 'ProjectsController@delete']); - Route::get('projects/{id}/jobs', ['as' => 'projects.jobs', 'uses' => 'ProjectsController@jobs']); 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::post('projects/{id}/jobs-reorder', ['as' => 'projects.jobs-reorder', 'uses' => 'ProjectsController@jobsReorder']); @@ -29,7 +28,7 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct Route::get('projects/{project}/invoices', ['as' => 'projects.invoices', 'uses' => 'InvoicesController@index']); /** - * Jobs Routes + * Project Jobs Routes */ 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']); @@ -37,7 +36,8 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct 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::get('jobs/{id}/delete', ['as' => 'jobs.delete', 'uses' => 'JobsController@delete']); - Route::resource('jobs', 'JobsController', ['except' => ['create', 'store']]); + Route::get('projects/{project}/jobs', ['as' => 'projects.jobs', 'uses' => 'JobsController@index']); + Route::resource('jobs', 'JobsController', ['except' => ['index', 'create', 'store']]); /** * Tasks Routes @@ -55,3 +55,11 @@ Route::group(['middleware' => ['web', 'auth'], 'namespace' => 'Projects'], funct Route::get('files/{file}', ['as' => 'files.download', 'uses' => 'FilesController@show']); Route::patch('files/{file}', ['as' => 'files.update', 'uses' => 'FilesController@update']); }); + +Route::group(['middleware' => ['web', 'auth']], function () { + + /** + * Unfinished Job List + */ + Route::get('jobs', ['as' => 'jobs.index', 'uses' => 'JobsController@index']); +});