Browse Source

Filter job on progress by project

pull/12/head
Nafies Luthfi 8 years ago
parent
commit
a1cc71265f
  1. 4
      app/Entities/Projects/JobsRepository.php
  2. 6
      app/Http/Controllers/JobsController.php
  3. 6
      app/Queries/AdminDashboardQuery.php
  4. 10
      resources/views/jobs/unfinished.blade.php

4
app/Entities/Projects/JobsRepository.php

@ -21,10 +21,10 @@ class JobsRepository extends BaseRepository
parent::__construct($model);
}
public function getUnfinishedJobs(User $user)
public function getUnfinishedJobs(User $user, $projectId = null)
{
return (new AdminDashboardQuery())
->onProgressJobs($user, ['project', 'worker']);
->onProgressJobs($user, ['project', 'worker'], $projectId);
}
public function requireProjectById($projectId)

6
app/Http/Controllers/JobsController.php

@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Entities\Projects\Job;
use App\Entities\Projects\Project;
use App\Entities\Projects\JobsRepository;
use App\Http\Requests\Jobs\DeleteRequest;
use App\Http\Requests\Jobs\UpdateRequest;
@ -24,9 +25,10 @@ class JobsController extends Controller
public function index()
{
$jobs = $this->repo->getUnfinishedJobs(auth()->user());
$projects = Project::whereIn('status_id', [2, 3])->pluck('name','id');
$jobs = $this->repo->getUnfinishedJobs(auth()->user(), request('project_id'));
return view('jobs.unfinished', compact('jobs'));
return view('jobs.unfinished', compact('jobs', 'projects'));
}
public function show(Request $request, Job $job)

6
app/Queries/AdminDashboardQuery.php

@ -100,7 +100,7 @@ class AdminDashboardQuery
*
* @return int
*/
public function onProgressJobs(User $user, array $eagerLoads = [])
public function onProgressJobs(User $user, array $eagerLoads = [], $projectId = null)
{
$eagerLoads = array_merge(['tasks'], $eagerLoads);
$jobQuery = Job::whereHas('project', function ($query) {
@ -111,6 +111,10 @@ class AdminDashboardQuery
$jobQuery->where('worker_id', $user->id);
}
if ($projectId) {
$jobQuery->where('project_id', $projectId);
}
$jobs = $jobQuery->get()
->where('progress', '<', 100)
->values();

10
resources/views/jobs/unfinished.blade.php

@ -3,9 +3,17 @@
@section('title', __('job.on_progress'))
@section('content')
<h1 class="page-header">{{ __('job.on_progress') }}</h1>
<ul class="breadcrumb hidden-print"><li>{{ __('job.on_progress') }}</li></ul>
<div class="panel panel-default">
<div class="panel-heading">
{{ Form::open(['method' => 'get', 'class' => 'form-inline']) }}
{!! FormField::select('project_id', $projects, ['label' => __('project.select'), 'placeholder' => __('project.all')]) !!}
{{ Form::submit(__('app.filter'), ['class' => 'btn btn-info btn-sm']) }}
{{ link_to_route('jobs.index', __('app.reset'), [], ['class' => 'btn btn-default btn-sm']) }}
{{ Form::close() }}
</div>
<table class="table table-condensed">
<thead>
<th>{{ __('app.table_no') }}</th>

Loading…
Cancel
Save