]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/template/search-html.php
Merge pull request #1797 from mtmail/jquery-3-5-1
[nominatim.git] / lib / template / search-html.php
index e99807965b4daf4c72d7e39bd73cfd54c525d130..5090a6faaa755b2a23d49cf545c6d5c39b0c4ee6 100644 (file)
 <?php
-       header("content-type: text/html; charset=UTF-8");
+    header("content-type: text/html; charset=UTF-8");
 ?>
 <?php include(CONST_BasePath.'/lib/template/includes/html-header.php'); ?>
-       <link href="css/common.css" rel="stylesheet" type="text/css" />
-       <link href="css/search.css" rel="stylesheet" type="text/css" />
+    <link href="css/common.css" rel="stylesheet" type="text/css" />
+    <link href="css/search.css" rel="stylesheet" type="text/css" />
 </head>
 
 <body id="search-page">
 
-       <?php include(CONST_BasePath.'/lib/template/includes/html-top-navigation.php'); ?>
-
-       <form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>search.php">
-               <div class="form-group">
-                       <input id="q" name="q" type="text" class="form-control input-sm" placeholder="Search" value="<?php echo htmlspecialchars($sQuery); ?>" >
-               </div>
-               <div class="form-group">
-                       <button type="submit" class="btn btn-primary btn-sm">Search</button>
-                       <?php if (CONST_Search_AreaPolygons) { ?>
-                               <!-- <input type="checkbox" value="1" name="polygon" <?php if ($bAsText) echo "checked='checked'"; ?>/> Highlight -->
-                               <input type="hidden" value="1" name="polygon" />
-                       <?php } ?>
-                       <input type="hidden" name="viewbox" value="<?php echo $sViewBox; ?>" />
-                       <div class="checkbox-inline">
-                               <label>
-                                       <input type="checkbox" id="use_viewbox" <?php if ($sViewBox) echo "checked='checked'"; ?>>
-                                       apply viewbox
-                               </label>
-                       </div>
-               </div>
-               <div>
-                       <a href="<?php echo CONST_Website_BaseURL; ?>reverse.php?format=html">reverse search</a>
-               </div>
-       </form>
-
-
-       <div id="content">
+    <?php include(CONST_BasePath.'/lib/template/includes/html-top-navigation.php'); ?>
+
+        <div class="top-bar" id="structured-query-selector">
+            <div class="search-type-link">
+                <a id="switch-to-reverse" href="<?php echo CONST_Website_BaseURL; ?>reverse.php?format=html">reverse search</a>
+            </div>
+        <?php
+        $bSimpleQuery = !empty($aMoreParams['q']);
+        $bStructuredQuery = !$bSimpleQuery
+                            && !(empty($aMoreParams['street'])
+                                 && empty($aMoreParams['city'])
+                                 && empty($aMoreParams['county'])
+                                 && empty($aMoreParams['state'])
+                                 && empty($aMoreParams['country'])
+                                 && empty($aMoreParams['postalcode']));
+        ?>
+        <div class="radio-inline">
+          <input type="radio" name="query-selector" id="simple" value="simple" <?php if ($bSimpleQuery) { echo 'checked="checked"'; } ?> >
+          <label for="simple">simple</label>
+        </div>
+        <div class="radio-inline">
+          <input type="radio" name="query-selector" id="structured" value="structured" <?php if ($bStructuredQuery) { echo 'checked="checked"'; } ?> >
+          <label for="structured">structured</label>
+        </div>
+
+    <form role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>search.php">
+        <div class="form-group-simple"
+        <?php
+        if ($bStructuredQuery) {
+            echo 'style="display:none;"';
+        }
+        ?>>
+            <input id="q" name="q" type="text" class="form-control input-sm" placeholder="Search" value="<?php echo htmlspecialchars($aMoreParams['q'] ?? ''); ?>" >
+        </div>
+        <div class="form-group-structured"
+        <?php
+        if (!$bStructuredQuery) {
+            echo "style='display:none;'";
+        }
+        ?>>
+<div class="form-inline">
+            <input id="street" name="street" type="text" class="form-control input-sm" placeholder="House number/Street" value="<?php echo htmlspecialchars($aMoreParams['street'] ?? ''); ?>" >
+            <input id="city" name="city" type="text" class="form-control input-sm" placeholder="City" value="<?php echo htmlspecialchars($aMoreParams['city'] ?? ''); ?>" >
+            <input id="county" name="county" type="text" class="form-control input-sm" placeholder="County" value="<?php echo htmlspecialchars($aMoreParams['county'] ?? ''); ?>" >
+            <input id="state" name="state" type="text" class="form-control input-sm" placeholder="State" value="<?php echo htmlspecialchars($aMoreParams['state'] ?? ''); ?>" >
+            <input id="country" name="country" type="text" class="form-control input-sm" placeholder="Country" value="<?php echo htmlspecialchars($aMoreParams['country'] ?? ''); ?>" >
+            <input id="postalcode" name="postalcode" type="text" class="form-control input-sm" placeholder="Postal Code" value="<?php echo htmlspecialchars($aMoreParams['postalcode'] ?? ''); ?>" >
+        </div></div>
+        <div class="form-group search-button-group">
+            <button type="submit" class="btn btn-primary btn-sm">Search</button>
+            <?php if (CONST_Search_AreaPolygons) { ?>
+                <input type="hidden" value="1" name="polygon_geojson" />
+            <?php } ?>
+            <input type="hidden" name="viewbox" value="<?php echo htmlspecialchars($aMoreParams['viewbox'] ?? ''); ?>" />
+            <div class="checkbox-inline">
+                <input type="checkbox" id="use_viewbox" <?php if (!empty($aMoreParams['viewbox'])) echo "checked='checked'"; ?>>
+                <label for="use_viewbox">apply viewbox</label>
+            </div>
+        </div>
+    </form>
+</div>
+
+    <div id="content">
 
 <?php if ($sQuery) { ?>
 
-               <div id="searchresults" class="sidebar">
-               <?php
-                       $i = 0;
-                       foreach($aSearchResults as $iResNum => $aResult)
-                       {
-
-                               echo '<div class="result" data-position=' . $i . '>';
-
-                               echo (isset($aResult['icon'])?'<img alt="icon" src="'.$aResult['icon'].'"/>':'');
-                               echo ' <span class="name">'.htmlspecialchars($aResult['name']).'</span>';
-                               // echo ' <span class="latlon">'.round($aResult['lat'],3).','.round($aResult['lon'],3).'</span>';
-                               // echo ' <span class="place_id">'.$aResult['place_id'].'</span>';
-                               if (isset($aResult['label']))
-                                       echo ' <span class="type">('.$aResult['label'].')</span>';
-                               else if ($aResult['type'] == 'yes')
-                                       echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['class'])).')</span>';
-                               else
-                                       echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['type'])).')</span>';
-                               echo ' <a class="btn btn-default btn-xs details" href="details.php?place_id='.$aResult['place_id'].'">details</a>';
-                               echo '</div>';
-                               $i = $i+1;
-                       }
-                       if (sizeof($aSearchResults) && $sMoreURL)
-                       {
-                               echo '<div class="more"><a class="btn btn-primary" href="'.htmlentities($sMoreURL).'">Search for more results</a></div>';
-                       }
-                       else
-                       {
-                               echo '<div class="noresults">No search results found</div>';
-                       }
-
-               ?>
-               </div>
+        <div id="searchresults" class="sidebar">
+        <?php
+            $i = 0;
+            foreach($aSearchResults as $iResNum => $aResult)
+            {
+
+                echo '<div class="result" data-position=' . $i . '>';
+
+                echo (isset($aResult['icon'])?'<img alt="icon" src="'.$aResult['icon'].'"/>':'');
+                echo ' <span class="name">'.htmlspecialchars($aResult['name']).'</span>';
+                // echo ' <span class="latlon">'.round($aResult['lat'],3).','.round($aResult['lon'],3).'</span>';
+                // echo ' <span class="place_id">'.$aResult['place_id'].'</span>';
+                if (isset($aResult['label']))
+                    echo ' <span class="type">('.$aResult['label'].')</span>';
+                else if ($aResult['type'] == 'yes')
+                    echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['class'])).')</span>';
+                else
+                    echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['type'])).')</span>';
+                echo detailsPermaLink($aResult, 'details', 'class="btn btn-default btn-xs details"');
+                echo '</div>';
+                $i = $i+1;
+            }
+            if (!empty($aSearchResults) && $sMoreURL)
+            {
+                echo '<div class="more"><a class="btn btn-primary" href="'.htmlentities($sMoreURL).'">Search for more results</a></div>';
+            }
+            else
+            {
+                echo '<div class="noresults">No search results found</div>';
+            }
+
+        ?>
+        </div>
 
 <?php } else { ?>
 
-               <div id="intro" class="sidebar">
-                       <?php include(CONST_BasePath.'/lib/template/includes/introduction.php'); ?>
-               </div>
+        <div id="intro" class="sidebar">
+            <?php include(CONST_BasePath.'/lib/template/includes/introduction.php'); ?>
+        </div>
 
 <?php } ?>
 
-               <div id="map-wrapper">
-                       <div id="map-position"></div>
-                       <div id="map"></div>
-               </div>
+        <div id="map-wrapper">
+            <div id="map-position">
+                <div id="map-position-inner"></div>
+                <div id="map-position-close"><a href="#">hide</a></div>
+            </div>
+            <div id="map"></div>
+        </div>
 
-       </div> <!-- /content -->
+    </div> <!-- /content -->
 
 
 
+    <script type="text/javascript">
+    <?php
 
+        $aNominatimMapInit = array(
+            'zoom' => CONST_Default_Zoom,
+            'lat' => CONST_Default_Lat,
+            'lon' => CONST_Default_Lon,
+            'tile_url' => CONST_Map_Tile_URL,
+            'tile_attribution' => CONST_Map_Tile_Attribution
+        );
+        echo 'var nominatim_map_init = ' . json_encode($aNominatimMapInit, JSON_PRETTY_PRINT) . ';';
 
-
-
-       <script type="text/javascript">
-       <?php
-
-               $aNominatimMapInit = [
-                       'zoom' => $iZoom,
-                       'lat' => $fLat,
-                       'lon' => $fLon
-               ];
-               echo 'var nominatim_map_init = ' . json_encode($aNominatimMapInit, JSON_PRETTY_PRINT) . ';';
-
-               echo 'var nominatim_results = ' . json_encode($aSearchResults, JSON_PRETTY_PRINT) . ';'; 
-       ?>
-       </script>
-       <?php include(CONST_BasePath.'/lib/template/includes/html-footer.php'); ?>
+        echo 'var nominatim_results = ' . json_encode($aSearchResults, JSON_PRETTY_PRINT) . ';'; 
+    ?>
+    </script>
+    <?php include(CONST_BasePath.'/lib/template/includes/html-footer.php'); ?>
 
 </body>
 </html>