Browse Source

Fix project jobs export page (html) error

Move project jobs export action to Projects/JobsController
pull/3/head
Nafies Luthfi 8 years ago
parent
commit
11b91d670c
  1. 9
      app/Http/Controllers/Projects/JobsController.php
  2. 25
      app/Http/Controllers/Projects/ProjectsController.php
  3. 2
      resources/views/projects/jobs-export-html.blade.php
  4. 4
      resources/views/projects/jobs.blade.php
  5. 5
      resources/views/projects/jobs/index.blade.php
  6. 2
      routes/web/projects.php

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

@ -62,4 +62,13 @@ class JobsController extends Controller
flash()->success(trans('job.created_from_other_project'));
return redirect()->route('projects.jobs.index', $projectId);
}
public function jobsExport(Request $request, $projectId, $exportType = 'html')
{
$jobType = $request->get('job_type', 1);
$project = $this->repo->requireById($projectId);
$jobs = $this->repo->getProjectJobs($projectId, $jobType);
return view('projects.jobs-export-html', compact('project', 'jobs'));
}
}

25
app/Http/Controllers/Projects/ProjectsController.php

@ -92,31 +92,6 @@ class ProjectsController extends Controller
return view('projects.subscriptions', compact('project'));
}
public function jobsExport(Request $request, $projectId, $exportType = 'excel')
{
$jobType = $request->get('job_type', 1);
$project = $this->repo->requireById($projectId);
$jobs = $this->repo->getProjectJobs($projectId, $jobType);
if ($exportType == 'excel') {
return view('projects.jobs-export-excel', compact('project', 'jobs'));
\Excel::create(str_slug(trans('project.jobs').'-'.$project->name), function ($excel) use ($project, $jobs) {
$excel->sheet('testng', function ($sheet) use ($project, $jobs) {
$sheet->loadView('projects.jobs-export-excel', compact('project', 'jobs'));
});
})->download('xls');
} elseif ($exportType == 'excel-progress') {
return view('projects.jobs-export-progress-excel', compact('project', 'jobs'));
\Excel::create(str_slug(trans('project.jobs').'-'.$project->name), function ($excel) use ($project, $jobs) {
$excel->sheet('export-progress', function ($sheet) use ($project, $jobs) {
$sheet->loadView('projects.jobs-export-progress-excel', compact('project', 'jobs'));
});
})->download('xls');
} else {
return view('projects.jobs-export-html-2', compact('project', 'jobs'));
}
}
public function payments($projectId)
{
$project = $this->repo->requireById($projectId);

2
resources/views/projects/jobs-export-html.blade.php

@ -10,7 +10,7 @@
{{-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> --}}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{{ trans('project.jobs') }} {{ $project->name }}</title>
{!! Html::style('assets/css/app.s.css') !!}
{!! Html::style('assets/css/app.css') !!}
</head>
<body style="font-family:'Liberation Serif'">
<div class="container">

4
resources/views/projects/jobs.blade.php

@ -25,9 +25,7 @@
@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-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_progress_excel'), [$project->id, 'excel-progress', 'job_type' => $key], ['class' => '']) !!}
{!! link_to_route('projects.jobs-export', trans('project.jobs_export_html'), [$project->id, 'html', 'job_type' => $key], ['class' => '','target' => '_blank']) !!}
@endif
</div>
<h3 class="panel-title">

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

@ -24,10 +24,7 @@
{{ 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
{{ 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_excel'), [$project->id, 'excel', 'job_type' => $key], ['class' => '']) !!} |
{!! link_to_route('projects.jobs-export', trans('project.jobs_export_progress_excel'), [$project->id, 'excel-progress', 'job_type' => $key], ['class' => '']) !!}
{!! link_to_route('projects.jobs-export', trans('project.jobs_export_html'), [$project->id, 'html', 'job_type' => $key], ['class' => '','target' => '_blank']) !!}
@endif
</div>
<h3 class="panel-title">

2
routes/web/projects.php

@ -5,7 +5,6 @@ Route::group(['middleware' => ['web', 'role:admin'], 'namespace' => 'Projects'],
* Projects Routes
*/
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}/subscriptions', ['as' => 'projects.subscriptions', 'uses' => 'ProjectsController@subscriptions']);
Route::patch('projects/{id}/status-update', ['as' => 'projects.status-update', 'uses' => 'ProjectsController@statusUpdate']);
Route::resource('projects', 'ProjectsController');
@ -29,6 +28,7 @@ Route::group(['middleware' => ['web', 'role:admin'], 'namespace' => 'Projects'],
/**
* Project Jobs Routes
*/
Route::get('projects/{id}/jobs-export/{type?}', ['as' => 'projects.jobs-export', 'uses' => 'JobsController@jobsExport']);
Route::get('projects/{id}/jobs/create', ['as' => 'projects.jobs.create', 'uses' => 'JobsController@create']);
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']);

Loading…
Cancel
Save