15 changed files with 122 additions and 12 deletions
-
39app/Http/Controllers/Api/ProjectsController.php
-
2app/Http/Controllers/Projects/FeaturesController.php
-
2app/Http/Controllers/Projects/ProjectsController.php
-
2config/session.php
-
2public/assets/css/app.s.css
-
1resources/lang/id/project.php
-
2resources/views/features/show.blade.php
-
10resources/views/projects/features-export-progress-excel.blade.php
-
8resources/views/projects/features.blade.php
-
33resources/views/projects/partials/project-stats.blade.php
-
1resources/views/projects/show.blade.php
-
3routes/api.php
-
4routes/api/projects.php
-
23tests/api/ApiManageProjectsTest.php
-
2tests/functional/ManageFeaturesTest.php
@ -0,0 +1,39 @@ |
|||
<?php |
|||
|
|||
namespace App\Http\Controllers\Api; |
|||
|
|||
use App\Entities\Projects\ProjectsRepository; |
|||
use App\Http\Controllers\Controller; |
|||
use Illuminate\Http\Request; |
|||
|
|||
class ProjectsController extends Controller |
|||
{ |
|||
private $repo; |
|||
|
|||
public function __construct(ProjectsRepository $repo) |
|||
{ |
|||
$this->repo = $repo; |
|||
} |
|||
public function index(Request $request) |
|||
{ |
|||
return $this->repo->getProjects($request->get('q'), $request->get('status_id')); |
|||
} |
|||
|
|||
public function show($id) |
|||
{ |
|||
return $this->repo->requireById($id); |
|||
} |
|||
|
|||
public function features($id) |
|||
{ |
|||
$project = $this->repo->requireById($id); |
|||
// $project->load('features.tasks');
|
|||
$response = fractal() |
|||
->item($project->toArray()) |
|||
->transformWith(function($project) { |
|||
return $project; |
|||
}) |
|||
->toArray(); |
|||
return $response; |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
<div class="row"> |
|||
<div class="col-lg-6 col-md-12"> |
|||
<a href="{{ route('projects.features',[$project->id]) }}" title="Progress Berdasarkan Index Bobot Biaya Fitur"> |
|||
<div class="panel panel-info"> |
|||
<div class="panel-heading"> |
|||
<div class="row"> |
|||
<div class="col-xs-3"><i class="fa fa-tasks fa-4x"></i></div> |
|||
<div class="col-xs-9 text-right"> |
|||
<div class="huge">{{ formatDecimal($project->getFeatureOveralProgress()) }} %</div> |
|||
<div class="lead">Overall Progress</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
<div class="col-lg-6 col-md-12"> |
|||
<a href="{{ route('projects.features',[$project->id]) }}" title="Progress Berdasarkan Index Bobot Biaya Fitur"> |
|||
<div class="panel panel-default"> |
|||
<div class="panel-heading"> |
|||
<div class="row"> |
|||
<div class="col-xs-3"><i class="fa fa-paperclip fa-4x"></i></div> |
|||
<div class="col-xs-9 text-right"> |
|||
<div class="huge">{{ $project->features->count() }}</div> |
|||
<div class="lead">Total Fitur</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
<div class="clearfix"></div> |
|||
</div> |
|||
@ -0,0 +1,4 @@ |
|||
<?php |
|||
|
|||
Route::resource('projects', 'ProjectsController'); |
|||
Route::get('projects/{project}/features', ['as' => 'projects.features', 'uses' => 'ProjectsController@features']); |
|||
@ -0,0 +1,23 @@ |
|||
<?php |
|||
|
|||
use App\Entities\Projects\Project; |
|||
use App\Entities\Users\User; |
|||
use Illuminate\Foundation\Testing\DatabaseMigrations; |
|||
use Illuminate\Foundation\Testing\DatabaseTransactions; |
|||
use Illuminate\Foundation\Testing\WithoutMiddleware; |
|||
|
|||
class ApiManageProjectsTest extends TestCase |
|||
{ |
|||
/** @test */ |
|||
public function user_can_get_project_lists() |
|||
{ |
|||
$user = factory(User::class)->create(); |
|||
$project = factory(Project::class, 5)->create(['owner_id' => $user->id]); |
|||
|
|||
$this->getJson(route('api.projects.index'), [ |
|||
'Authorization' => 'Bearer ' . $user->api_token |
|||
]); |
|||
|
|||
$this->seeStatusCode(200); |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue