]> git.openstreetmap.org Git - nominatim.git/commitdiff
HTML page with search form when /details.php called without params
authormarc tobias <mtmail@gmx.net>
Thu, 31 Oct 2019 16:13:43 +0000 (17:13 +0100)
committermarc tobias <mtmail@gmx.net>
Thu, 31 Oct 2019 16:13:43 +0000 (17:13 +0100)
lib/template/details-index-html.php [new file with mode: 0644]
website/css/details.css
website/details.php
website/js/nominatim-ui.js

diff --git a/lib/template/details-index-html.php b/lib/template/details-index-html.php
new file mode 100644 (file)
index 0000000..640a212
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+    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/details.css" rel="stylesheet" type="text/css" />
+</head>
+
+
+<body id="details-index-page">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-12">
+
+                <h1>Show details for place</h1>
+
+                <div class="search-form">
+                    <h4>Search by place id</h4>
+
+                    <form class="form-inline" action="details.php">
+                        <input type="edit" class="form-control input-sm" pattern="^[0-9]+$" name="place_id" placeholder="12345" />
+                        <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+                    </form>
+                </div>
+
+                <div class="search-form">
+                    <h4>Search by OSM type and OSM id</h4>
+
+                    <form id="form-by-type-and-id" class="form-inline" action="details.php">
+                        <input type="edit" class="form-control input-sm" pattern="^[NWR][0-9]+$" placeholder="N123 or W123 or R123" />
+                        <input type="hidden" name="osmtype" />
+                        <input type="hidden" name="osmid" />
+                        <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+                    </form>
+                </div>
+
+                <div class="search-form">
+                    <h4>Search by openstreetmap.org URL</h4>
+
+                    <form id="form-by-osm-url" class="form-inline" action="details.php">
+                        <input type="edit" class="form-control input-sm" pattern=".*openstreetmap.*" placeholder="https://www.openstreetmap.org/relation/123" />
+                        <input type="hidden" name="osmtype" />
+                        <input type="hidden" name="osmid" />
+                        <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+                    </form>
+                </div>
+
+            </div>
+        </div>
+    </div>
+
+
+    <?php include(CONST_BasePath.'/lib/template/includes/html-footer.php'); ?>
+</body>
+</html>
index 171de42acaa6ca3694b5619d53510894583133db..8f21c310aaa9b265b0b76e1960fef4ec342a18e0 100644 (file)
@@ -52,6 +52,17 @@ tr.all-columns td {
   margin: 10px 0;
 }
 
+#details-index-page .search-form {
+  padding: 20px 10px;
+  margin: 2em 0;
+}
+#details-index-page .search-form h4 {
+  margin-top: 0;
+}
+#details-index-page .search-form .form-control{
+  width: 30em;
+}
+
 footer {
   text-align: center;  
   padding: 2em 0;
index cb371e6b09d2cd8d3e21d463731dce8dea552820..44d4956b4d2845e166dcd8dfac32d8d815a5c9f0 100644 (file)
@@ -30,6 +30,11 @@ $oDB->connect();
 
 $sLanguagePrefArraySQL = $oDB->getArraySQL($oDB->getDBQuotedList($aLangPrefOrder));
 
+if ($sOutputFormat == 'html' && !$sPlaceId && !$sOsmType) {
+    include(CONST_BasePath.'/lib/template/details-index-html.php');
+    exit;
+}
+
 if ($sOsmType && $iOsmId > 0) {
     $sSQL = 'SELECT place_id FROM placex WHERE osm_type = :type AND osm_id = :id';
     // osm_type and osm_id are not unique enough
index e96ebd25c836c3469a2c5cfe36860b390943c8bb..32e7cbda8fc3321b1fd4a6b0389b91bb900a764d 100644 (file)
@@ -273,6 +273,30 @@ jQuery(document).ready(function(){
 });
 
 
+jQuery(document).ready(function(){
+
+    if ( !$('#details-index-page').length ){ return; }
+
+    $('#form-by-type-and-id,#form-by-osm-url').on('submit', function(e){
+        e.preventDefault();
+
+        var val = $(this).find('input[type=edit]').val();
+        var matches = val.match(/^\s*([NWR])(\d+)\s*$/i);
+
+        if (!matches) {
+            matches = val.match(/\/(relation|way|node)\/(\d+)\s*$/);
+        }
+
+        if (matches) {
+            $(this).find('input[name=osmtype]').val(matches[1].charAt(0).toUpperCase());
+            $(this).find('input[name=osmid]').val(matches[2]);
+            $(this).get(0).submit();
+        } else {
+            alert('invalid input');
+        }
+    });
+});
+
 jQuery(document).ready(function(){
 
     if ( !$('#details-page').length ){ return; }