From cf1dd627e992ba7ad20b86b032c8d7261cadcc2d Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Tue, 6 Apr 2021 12:43:10 +0800 Subject: [PATCH] Add default coordinate and map zoom level for empty map data --- app/Http/Controllers/UsersController.php | 15 +++++++++++++-- resources/views/users/edit.blade.php | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 54e8b1b..d7b5662 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -115,7 +115,18 @@ class UsersController extends Controller $validTabs = ['death', 'contact_address', 'login_account']; - return view('users.edit', compact('user', 'replacementUsers', 'validTabs')); + $mapZoomLevel = 4; + $mapCenterLatitude = $user->getMetadata('cemetery_location_latitude'); + $mapCenterLongitude = $user->getMetadata('cemetery_location_longitude'); + if ($mapCenterLatitude && $mapCenterLongitude) { + $mapZoomLevel = 18; + $mapCenterLatitude = $mapCenterLatitude ?: '-0.87887'; + $mapCenterLongitude = $mapCenterLongitude ?: '117.4863'; + } + + return view('users.edit', compact( + 'user', 'replacementUsers', 'validTabs', 'mapZoomLevel', 'mapCenterLatitude', 'mapCenterLongitude' + )); } /** @@ -132,7 +143,7 @@ class UsersController extends Controller $userAttributes = collect($userAttributes); foreach (['cemetery_location_name', 'cemetery_location_address', 'cemetery_location_latitude', 'cemetery_location_longitude'] as $key) { if ($userAttributes->has($key)) { - $userMeta = UserMetadata::where('key', $key)->firstOrNew(); + $userMeta = UserMetadata::where('user_id', $user->id)->where('key', $key)->firstOrNew(); if (!$userMeta->exists) { $userMeta->id = Uuid::uuid4()->toString(); $userMeta->user_id = $user->id; diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index 813f867..334f9a7 100644 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -77,8 +77,8 @@ })(); @if (request('tab') == 'death') - var mapCenter = [{{ $user->getMetadata('cemetery_location_latitude') }}, {{ $user->getMetadata('cemetery_location_longitude') }}]; - var map = L.map('mapid').setView(mapCenter, 18); + var mapCenter = [{{ $mapCenterLatitude }}, {{ $mapCenterLongitude }}]; + var map = L.map('mapid').setView(mapCenter, {{ $mapZoomLevel }}); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors'