From 3dc387bc7f610e3abc2b2be00ef9f2a782ad486b Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 12 Dec 2018 22:24:43 +0800 Subject: [PATCH 1/4] Add coodinate and map_popup_content attribute --- app/Outlet.php | 16 ++++++++++++++++ tests/Unit/Models/OutletTest.php | 31 ++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/app/Outlet.php b/app/Outlet.php index 2529e66..35e7541 100644 --- a/app/Outlet.php +++ b/app/Outlet.php @@ -28,4 +28,20 @@ class Outlet extends Model { return $this->belongsTo(User::class); } + + public function getCoordinateAttribute() + { + if ($this->latitude && $this->longitude) { + return $this->latitude.', '.$this->longitude; + } + } + + public function getMapPopupContentAttribute() + { + $mapPopupContent = ''; + $mapPopupContent .= ''; + $mapPopupContent .= ''; + + return $mapPopupContent; + } } diff --git a/tests/Unit/Models/OutletTest.php b/tests/Unit/Models/OutletTest.php index 0f7f384..5c54885 100644 --- a/tests/Unit/Models/OutletTest.php +++ b/tests/Unit/Models/OutletTest.php @@ -4,15 +4,15 @@ namespace Tests\Unit\Models; use App\User; use App\Outlet; -use Illuminate\Foundation\Testing\DatabaseMigrations; use Tests\BrowserKitTest as TestCase; +use Illuminate\Foundation\Testing\DatabaseMigrations; class OutletTest extends TestCase { use DatabaseMigrations; /** @test */ - public function a_outlet_has_name_link_attribute() + public function an_outlet_has_name_link_attribute() { $outlet = factory(Outlet::class)->create(); @@ -28,11 +28,36 @@ class OutletTest extends TestCase } /** @test */ - public function a_outlet_has_belongs_to_creator_relation() + public function an_outlet_has_belongs_to_creator_relation() { $outlet = factory(Outlet::class)->make(); $this->assertInstanceOf(User::class, $outlet->creator); $this->assertEquals($outlet->creator_id, $outlet->creator->id); } + + /** @test */ + public function an_outlet_has_coordinate_attribute() + { + $outlet = factory(Outlet::class)->make(['latitude' => '-3.333333', 'longitude' => '114.583333']); + $this->assertEquals($outlet->latitude.', '.$outlet->longitude, $outlet->coordinate); + + $outlet = factory(Outlet::class)->make(['latitude' => null, 'longitude' => null]); + $this->assertNull($outlet->coordinate); + + $outlet = factory(Outlet::class)->make(['latitude' => null, 'longitude' => '114.583333']); + $this->assertNull($outlet->coordinate); + } + + /** @test */ + public function an_outlet_has_map_popup_content_attribute() + { + $outlet = factory(Outlet::class)->make(['lat' => '-3.333333', 'long' => '114.583333']); + + $mapPopupContent = ''; + $mapPopupContent .= ''; + $mapPopupContent .= ''; + + $this->assertEquals($mapPopupContent, $outlet->map_popup_content); + } } From 8c0732009ef928d110b6d1767f9f1208f02a1b2f Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 12 Dec 2018 22:25:19 +0800 Subject: [PATCH 2/4] Show map location in outlet detail --- public/images/marker-icon-green.png | Bin 0 -> 1822 bytes public/images/marker-shadow.png | Bin 0 -> 608 bytes resources/lang/en/outlet.php | 10 ++++--- resources/views/layouts/app.blade.php | 7 ++--- resources/views/outlets/show.blade.php | 48 +++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 public/images/marker-icon-green.png create mode 100644 public/images/marker-shadow.png diff --git a/public/images/marker-icon-green.png b/public/images/marker-icon-green.png new file mode 100644 index 0000000000000000000000000000000000000000..56db5ea9ffa29c2bf85feb5a943e0ab0dc73a3c0 GIT binary patch literal 1822 zcmV+(2jTdMP)P001cn1^@s6z>|W`00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-3$s303JDN(rN$z2CGR# zK~z}7otIr~Tt^kh|L4rydw1{pBaNN5*bk&piW6ETkl+w_sDwfbNIW1Rgb?t6LNhkW6b(AsrluY;4_y?gJ>oWsL9 z#v9wQ-MRW}rK>sTw{y;!Gj~W;v7E8((7RU~K|dgCgi%c-9((EG;}grVrQ1Q?|C6l) z!tyx+KBIzuCd#adybI2#YMB^U1Mq8AJ$(H0r%ta3@}5VC&F0NJ8T>@4GXZ)fK^I`z zf{381U=b8G0j^PzRdZ6+Z=sw%b@a0@`z0aUe!OWNgMVvHv@sqqDM~=_9_j({0tf&G z*fPihCNe-q@Rzhv_+o^;|HR8*I&)!B$hPMA>=^RLRfv|I1=aMJ-;W>K^}5o{O3R3p?bH|oMXaN-Lm zN6}jN%n0UZl}e?gy&i7L13_D%xkW^@;ClpxzZM{?Ju00Q%U*tQ(=`LY;QmdYX7CQb z!6&Zfp{i|yA)wnJx+6lAT10n5u-yg}(Y(2?=Ar9-V#sVC{Qjng0e}X7cwZ`xCOYq} zq`u1lz3yO~G?YaW=56QcX>Hk!{g}l(+=GSu1nxXF7wbmKne)nqrWl z*5;d$iU1{GWOQUf$jyIzZt|Z9iMCqK9D6bZnqsKnB$LQXQuB@sL4jFGuE_5$FgEc9 zetGtAD+D5Kzeg_r4zG^9iqPjFxwhGpA%wasIOyNZogY}!3Bkv>pJJ)WY}nK*C;<{% z!qHd$j%hoM^*!rRHYpSVFAN>Tp}!tP`K}U*t^(mkXzKu`!pN`qOp36d?t6M;pB228 zzOT$h-L;lIC+^WI3;W*~;j%}w*+g$gFQ&38EL+6)Byc?r&1u)R8QC)8N`%Hg8Uc`g zQdMkzX2Y?LzOKRIZTY+%9{?mJ3zITT!-B3ev_lX&Jc_2kH$2QO`Ld}+G#+bx^v1EF z$IoxK0Kks+WpCCG^V%p4jaE|Uj%MaSO#-tAbrRGmWJ+e|`CF>aB!uR8BV$M3o^6nh zq9ehDBDoqPjtmGgPtX7f4xw20=By&E5@V#4o&VwBP=Beu-ecF%at<}u*s>MVAOk$9aW(^g7 zYWT@ZwIv|{Ae!u#JmfsdNKFMwx~O7Kfk^;)XkJSi&oAU}LCEl)(+vo|A)_ucN$bE` zXkQQ!;>18kT?VDyukX6jTs8y%#AOG?g_>Rk5>6Mas0vk}R{?S1da_DhSj^X=kTZL) z0Nyv!2mqY< zgjs5&!@I literal 0 HcmV?d00001 diff --git a/public/images/marker-shadow.png b/public/images/marker-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..84c580847f0b20fa72d328985a08c0c176554a69 GIT binary patch literal 608 zcmV-m0-ybfP)9uxu(PDa20NtOu&LOs@Hz6GMI+Q6g1Z=qj$sxT(UW7u!XkL;lC1Sux{-k zrKG=Ll3X`pmJ#TlL7Pm#g6k<}JL*YPF{=D*Jt9ddf(0rbK-p3Q$jBIdfPIGdCL={p zPZe29%|u7Kq6UF#1O~k@qlzy)@7NJH5b5QZH0w1L>&ZF>IAnU}cyCIWV=(@k>0)}s z#u&vVyO&ex=p?gju}^>lcQj(kJsJ0NpK8Z8sR=XG6xB+HOVoRA8qCQS`s8N(9~4t_ zw-PKkoa*ao^O6^s672eiQj0-B4xiUrcGz&vi|)FMV#poEi8-3nKkDR!>3g5X98WNi zBH}N}lhCgFIR?EBbvrT#<`}O6sF8c@fZ`WtHr_)(%$^a*sAHW3!6o*hm;#OI1-8RB zNTX3GBfsk44PkjCr z@9>IwOYpNAYKBY&%*Z2;ebvG5gr4Fto(cRG^HWGEFqo0PtqHs*^9XnG5HESz!R>^Z uBWCvJ 'Outlet data cannot be deleted.', // Attributes - 'name' => 'Outlet Name', - 'address' => 'Outlet Address', - 'latitude' => 'Latitude', - 'longitude' => 'Longitude', + 'name' => 'Outlet Name', + 'address' => 'Outlet Address', + 'latitude' => 'Latitude', + 'longitude' => 'Longitude', + 'location' => 'Location', + 'coordinate' => 'Coordinate', ]; diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 47f604f..615791f 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -9,15 +9,13 @@ {{ config('app.name', 'Laravel') }} - - - + @yield('styles')
@@ -79,5 +77,8 @@ @yield('content')
+ + + @stack('scripts') diff --git a/resources/views/outlets/show.blade.php b/resources/views/outlets/show.blade.php index 9f11dce..13f7774 100644 --- a/resources/views/outlets/show.blade.php +++ b/resources/views/outlets/show.blade.php @@ -25,5 +25,53 @@ +
+
+
{{ trans('outlet.location') }}
+ @if ($outlet->coordinate) +
+ @else +
{{ __('outlet.no_coordinate') }}
+ @endif +
+
@endsection + +@section('styles') + + + +@endsection +@push('scripts') + + + + +@endpush From 06c570260289056a26ecc3cd1aa6b7b4d0212bf3 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 12 Dec 2018 22:27:34 +0800 Subject: [PATCH 3/4] Use bootstrap spacing class on map_popup_content --- app/Outlet.php | 4 ++-- tests/Unit/Models/OutletTest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Outlet.php b/app/Outlet.php index 35e7541..14f9c85 100644 --- a/app/Outlet.php +++ b/app/Outlet.php @@ -39,8 +39,8 @@ class Outlet extends Model public function getMapPopupContentAttribute() { $mapPopupContent = ''; - $mapPopupContent .= ''; - $mapPopupContent .= ''; + $mapPopupContent .= '
'.__('outlet.name').':
'.$this->name.'
'; + $mapPopupContent .= '
'.__('outlet.coordinate').':
'.$this->coordinate.'
'; return $mapPopupContent; } diff --git a/tests/Unit/Models/OutletTest.php b/tests/Unit/Models/OutletTest.php index 5c54885..2a24d17 100644 --- a/tests/Unit/Models/OutletTest.php +++ b/tests/Unit/Models/OutletTest.php @@ -55,8 +55,8 @@ class OutletTest extends TestCase $outlet = factory(Outlet::class)->make(['lat' => '-3.333333', 'long' => '114.583333']); $mapPopupContent = ''; - $mapPopupContent .= ''; - $mapPopupContent .= ''; + $mapPopupContent .= '
'.__('outlet.name').':
'.$outlet->name.'
'; + $mapPopupContent .= '
'.__('outlet.coordinate').':
'.$outlet->coordinate.'
'; $this->assertEquals($mapPopupContent, $outlet->map_popup_content); } From 36d12dce47a1f218f4e092d893e035dc834587c0 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 12 Dec 2018 22:38:24 +0800 Subject: [PATCH 4/4] Guest can view outlet detail --- resources/views/outlets/index.blade.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/resources/views/outlets/index.blade.php b/resources/views/outlets/index.blade.php index b170357..6fe17cc 100644 --- a/resources/views/outlets/index.blade.php +++ b/resources/views/outlets/index.blade.php @@ -45,9 +45,7 @@ {{ $outlet->latitude }} {{ $outlet->longitude }} - @can('view', $outlet) - {{ __('app.show') }} - @endcan + {{ __('app.show') }} @endforeach