From 61bc89927f32e21471ab823120bafb08cebf5f21 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Tue, 15 Nov 2016 08:30:41 +0100
Subject: [PATCH] =?UTF-8?q?Der=20aktuelle=20Status=20der=20Karte=20wird=20?=
 =?UTF-8?q?bei=20Suchen=20nun=20in=20die=20URL=20=C3=BCbertragen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Http/Controllers/SearchController.php | 2 +-
 resources/views/map.blade.php             | 9 ++++++++-
 resources/views/searchResults.blade.php   | 5 ++++-
 routes/web.php                            | 4 ++++
 4 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php
index 3152163..0a2ca4c 100644
--- a/app/Http/Controllers/SearchController.php
+++ b/app/Http/Controllers/SearchController.php
@@ -43,7 +43,7 @@ public function boundingBoxSearch($search, $latMin, $lonMin, $latMax, $lonMax, $
             }
         }
         # Wir erstellen die Ergebnisseite (JavaScipt)
-        $response = Response::make(view('searchResults')->with("results", json_encode($searchResults))->with('adjustView', $adjustView)->with('boundingSuccess', $boundingSuccess), 200);
+        $response = Response::make(view('searchResults')->with("results", json_encode($searchResults))->with('adjustView', $adjustView)->with('boundingSuccess', $boundingSuccess)->with('bounds', [$latMin, $lonMin, $latMax, $lonMax])->with('search', $search), 200);
         $response->header('Content-Type', 'application/javascript');
         return $response;
     }
diff --git a/resources/views/map.blade.php b/resources/views/map.blade.php
index 343af89..df1e78b 100644
--- a/resources/views/map.blade.php
+++ b/resources/views/map.blade.php
@@ -41,7 +41,7 @@
                     <form accept-charset="UTF-8" class="navbar-form navbar-right" id="search" method="GET">
                         <div class="form-group">
                             <div class="input-group">
-                                <input autofocus="" class="form-control" name="q" placeholder="Karten durchsuchen..." type="text" value="{{ Request::input('q', '') }}"/>
+                                <input autofocus="" class="form-control" name="q" placeholder="Karten durchsuchen..." type="text" value="@if(isset($search)){{$search}}@endif"/>
                                 <div class="input-group-addon" id="doSearch">
                                     <span class="glyphicon glyphicon-search">
                                     </span>
@@ -76,5 +76,12 @@
         </main>
         <script src="/js/all.js">
         </script>
+        @if(isset($javascript))
+        <script>
+            $(document).ready(function(){
+                $.getScript('{{$javascript}}');
+            });
+        </script>
+        @endif
     </body>
 </html>
diff --git a/resources/views/searchResults.blade.php b/resources/views/searchResults.blade.php
index ae712be..eb504cb 100644
--- a/resources/views/searchResults.blade.php
+++ b/resources/views/searchResults.blade.php
@@ -79,7 +79,6 @@ vectorLayer = new ol.layer.Vector({
     map.addLayer(vectorLayer)
 
 @if($adjustView === true)
-console.log("test");
 adjustView(searchResults);
 @endif
 
@@ -87,3 +86,7 @@ adjustView(searchResults);
 $(".collapse").collapse("hide");
 $("#clearInput").html('<span class="font-bold">X</span>');
 
+var stateObj = { url: '/{{$search . "/" . $bounds[0] . "/" . $bounds[1] . "/" . $bounds[2] . "/" . $bounds[3]}}'};
+// Change URL
+window.history.pushState(stateObj, '', '/map/{{$search . "/" . $bounds[0] . "/" . $bounds[1] . "/" . $bounds[2] . "/" . $bounds[3]}}');
+
diff --git a/routes/web.php b/routes/web.php
index d0d2b3a..b1b59c6 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -15,6 +15,10 @@ Route::get('/', function () {
     return view('map');
 });
 
+Route::get('map/{search}/{latMin}/{lonMin}/{latMax}/{lonMax}', function ($search, $latMin, $lonMin, $latMax, $lonMax) {
+    return view('map')->with('javascript', "/$search/$latMin/$lonMin/$latMax/$lonMax")->with('search', $search);
+});
+
 Route::get('{search}/{latMin}/{lonMin}/{latMax}/{lonMax}/{adjustView?}', 'SearchController@boundingBoxSearch');
 
 Route::get('metager/{search}', 'SearchController@iframeSearch');
-- 
GitLab