From ff64ca0bfaf37f5820b52888ad0f7ff9475f90b3 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 29 Oct 2017 19:28:36 +0800 Subject: [PATCH] Add partner detail page --- app/Entities/Partners/Partner.php | 10 +++++ .../Controllers/Partners/PartnersController.php | 11 +++++ resources/lang/id/app.php | 1 + resources/lang/id/partner.php | 1 + resources/views/partners/index.blade.php | 2 +- resources/views/partners/show.blade.php | 48 ++++++++++++++++++++++ tests/Unit/Models/PartnerTest.php | 17 ++++++-- 7 files changed, 86 insertions(+), 4 deletions(-) create mode 100755 resources/views/partners/show.blade.php diff --git a/app/Entities/Partners/Partner.php b/app/Entities/Partners/Partner.php index a69cf11..32d82fb 100644 --- a/app/Entities/Partners/Partner.php +++ b/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')] + ), + ]); + } } diff --git a/app/Http/Controllers/Partners/PartnersController.php b/app/Http/Controllers/Partners/PartnersController.php index 655af10..c7317e4 100644 --- a/app/Http/Controllers/Partners/PartnersController.php +++ b/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 diff --git a/resources/lang/id/app.php b/resources/lang/id/app.php index 388fc7d..1ee4017 100644 --- a/resources/lang/id/app.php +++ b/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', ]; diff --git a/resources/lang/id/partner.php b/resources/lang/id/partner.php index 17f68a0..6d94435 100644 --- a/resources/lang/id/partner.php +++ b/resources/lang/id/partner.php @@ -26,5 +26,6 @@ return [ // Attributes 'name' => 'Nama Partner', 'description' => 'Deskripsi Partner', + 'pic' => 'PIC', 'projects_count' => 'Jml Project', ]; diff --git a/resources/views/partners/index.blade.php b/resources/views/partners/index.blade.php index 267173f..1f11732 100644 --- a/resources/views/partners/index.blade.php +++ b/resources/views/partners/index.blade.php @@ -37,7 +37,7 @@ @foreach($partners as $key => $partner) {{ $partners->firstItem() + $key }} - {{ $partner->name }} + {{ $partner->nameLink() }} {{ $partner->email }} {{ $partner->phone }} {{ $partner->projects_count }} diff --git a/resources/views/partners/show.blade.php b/resources/views/partners/show.blade.php new file mode 100755 index 0000000..dc8b4ad --- /dev/null +++ b/resources/views/partners/show.blade.php @@ -0,0 +1,48 @@ +@extends('layouts.app') + +@section('title', trans('partner.show')) + +@section('content') +

{{ $partner->name }} {{ trans('partner.show') }}

+
+
+
+

{{ trans('partner.show') }}

+ + + + + + + + + + +
{{ trans('partner.name') }}{{ $partner->name }}
{{ trans('contact.email') }}{{ $partner->email }}
{{ trans('contact.phone') }}{{ $partner->phone }}
{{ trans('partner.pic') }}{{ $partner->pic }}
{{ trans('address.address') }}{{ $partner->address }}
{{ trans('app.status') }}{{ $partner->is_active }}
{{ trans('app.notes') }}{!! nl2br($partner->notes) !!}
+ +
+
+ +
+@endsection diff --git a/tests/Unit/Models/PartnerTest.php b/tests/Unit/Models/PartnerTest.php index 27af8dd..467ae07 100644 --- a/tests/Unit/Models/PartnerTest.php +++ b/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() + ); + } }