Browse Source

Add partner detail page

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
ff64ca0bfa
  1. 10
      app/Entities/Partners/Partner.php
  2. 11
      app/Http/Controllers/Partners/PartnersController.php
  3. 1
      resources/lang/id/app.php
  4. 1
      resources/lang/id/partner.php
  5. 2
      resources/views/partners/index.blade.php
  6. 48
      resources/views/partners/show.blade.php
  7. 17
      tests/Unit/Models/PartnerTest.php

10
app/Entities/Partners/Partner.php

@ -20,4 +20,14 @@ class Partner extends Model
{
return $this->hasMany('App\Entities\Projects\Project', 'customer_id');
}
public function nameLink()
{
return link_to_route('partners.show', $this->name, [$this->id], [
'title' => trans(
'app.show_detail_title',
['name' => $this->name, 'type' => trans('partner.partner')]
),
]);
}
}

11
app/Http/Controllers/Partners/PartnersController.php

@ -56,6 +56,17 @@ class PartnersController extends Controller
}
/**
* Show the specified partner.
*
* @param \App\Entities\Partners\Partner $partner
* @return \Illuminate\Http\Response
*/
public function show(Partner $partner)
{
return view('partners.show', compact('partner'));
}
/**
* Update the specified partner in storage.
*
* @param \Illuminate\Http\Request $request

1
resources/lang/id/app.php

@ -41,4 +41,5 @@ return [
'to' => 'Kepada',
'active' => 'Aktif',
'in_active' => 'Non Aktif',
'show_detail_title' => 'Lihat detail :type :name',
];

1
resources/lang/id/partner.php

@ -26,5 +26,6 @@ return [
// Attributes
'name' => 'Nama Partner',
'description' => 'Deskripsi Partner',
'pic' => 'PIC',
'projects_count' => 'Jml Project',
];

2
resources/views/partners/index.blade.php

@ -37,7 +37,7 @@
@foreach($partners as $key => $partner)
<tr>
<td class="text-center">{{ $partners->firstItem() + $key }}</td>
<td>{{ $partner->name }}</td>
<td>{{ $partner->nameLink() }}</td>
<td>{{ $partner->email }}</td>
<td>{{ $partner->phone }}</td>
<td class="text-center">{{ $partner->projects_count }}</td>

48
resources/views/partners/show.blade.php

@ -0,0 +1,48 @@
@extends('layouts.app')
@section('title', trans('partner.show'))
@section('content')
<h1 class="page-header">{{ $partner->name }} <small>{{ trans('partner.show') }}</small></h1>
<div class="row">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ trans('partner.show') }}</h3></div>
<table class="table table-condensed">
<tbody>
<tr><td class="col-xs-3">{{ trans('partner.name') }}</td><td>{{ $partner->name }}</td></tr>
<tr><td>{{ trans('contact.email') }}</td><td>{{ $partner->email }}</td></tr>
<tr><td>{{ trans('contact.phone') }}</td><td>{{ $partner->phone }}</td></tr>
<tr><td>{{ trans('partner.pic') }}</td><td>{{ $partner->pic }}</td></tr>
<tr><td>{{ trans('address.address') }}</td><td>{{ $partner->address }}</td></tr>
<tr><td>{{ trans('app.status') }}</td><td>{{ $partner->is_active }}</td></tr>
<tr><td>{{ trans('app.notes') }}</td><td>{!! nl2br($partner->notes) !!}</td></tr>
</tbody>
</table>
<div class="panel-footer">
{{-- {!! link_to_route('partners.edit', trans('partner.edit'), [$partner->id], ['class' => 'btn btn-warning']) !!} --}}
{!! link_to_route('partners.index', trans('partner.back_to_index'), [], ['class' => 'btn btn-default']) !!}
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-lg-6 col-md-12">
<a href="#" title="@lang('partner.projects_count')">
<div class="panel panel-info">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3"><i class="fa fa-table fa-4x"></i></div>
<div class="col-xs-9 text-right">
<div class="huge">{{ $partner->projects()->count() }}</div>
<div class="lead">@lang('partner.projects_count')</div>
</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
@endsection

17
tests/Unit/Models/PartnerTest.php

@ -5,14 +5,11 @@ namespace Tests\Unit\Models;
use App\Entities\Agencies\Agency;
use App\Entities\Partners\Partner;
use App\Entities\Projects\Project;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Support\Collection;
use Tests\TestCase as TestCase;
class PartnerTest extends TestCase
{
use DatabaseMigrations;
/** @test */
public function a_partner_has_an_owner()
{
@ -32,4 +29,18 @@ class PartnerTest extends TestCase
$this->assertTrue($partner->projects instanceof Collection);
$this->assertTrue($partner->projects->first() instanceof Project);
}
/** @test */
public function a_partner_has_name_link_method()
{
$partner = factory(Partner::class)->make();
$this->assertEquals(
link_to_route('partners.show', $partner->name, [$partner->id], [
'title' => trans(
'app.show_detail_title',
['name' => $partner->name, 'type' => trans('partner.partner')]
),
]), $partner->nameLink()
);
}
}
Loading…
Cancel
Save