-
-
-form {
+.top-bar {
width: 100%;
padding: 1em 15px;
}
+
+.top-bar #q {
+ max-width: 500px;
+}
+
+.form-group-simple.hidden,
+.form-group-structured.hidden {
+ display: none;
+}
+
form #q {
min-width: 500px;
}
width: 100%;
}
.search-button-group {
- display: inline
+ display: inline;
}
}
+
+.search-button-group {
+ margin-top: 3px;
+ box-sizing: content-box;
+ margin-bottom: 3px;
+}
+
+label {
+ font-weight: normal;
+}
\ No newline at end of file
update_viewbox_field();
});
-
-
+ $("input[name='query-selector']").click(function () {
+ var query_val = $("input[name='query-selector']:checked").val();
+ if (query_val === 'simple') {
+ $('div.form-group-simple').removeClass('hidden');
+ $('div.form-group-structured').addClass('hidden');
+ $('.form-group-structured').find('input:text').val('');
+ } else if (query_val === 'structured') {
+ console.log('here');
+ $('div.form-group-simple').addClass('hidden');
+ $('div.form-group-structured').removeClass('hidden');
+ $('.form-group-simple').find('input:text').val('');
+ }
+ });
function get_result_element(position) {
return $('.result').eq(position);
-
-
-
jQuery(document).ready(function () {
//
if (!$('#search-page,#reverse-page').length) { return; }
} else {
api_request_params = {
q: search_params.get('q'),
+ street: search_params.get('street'),
+ city: search_params.get('city'),
+ county: search_params.get('county'),
+ state: search_params.get('state'),
+ country: search_params.get('country'),
+ postalcode: search_params.get('postalcode'),
polygon_geojson: search_params.get('polygon_geojson') ? 1 : 0,
viewbox: search_params.get('viewbox'),
exclude_place_ids: search_params.get('exclude_place_ids'),
};
context = {
- // aSearchResults: aResults,
sQuery: api_request_params.q,
sViewBox: search_params.get('viewbox'),
env: Nominatim_Config
- // sMoreURL: 'x'
};
- if (api_request_params.q) {
+ if (api_request_params.street || api_request_params.city || api_request_params.county
+ || api_request_params.state || api_request_params.country || api_request_params.postalcode) {
+ context.hStructured = {
+ street: api_request_params.street,
+ city: api_request_params.city,
+ county: api_request_params.county,
+ state: api_request_params.state,
+ country: api_request_params.country,
+ postalcode: api_request_params.postalcode
+ };
+ }
+
+ if (api_request_params.q || context.hStructured) {
fetch_from_api('search', api_request_params, function (aResults) {
</div>
{{/inline}}
-
-<form class="form-inline" role="search" accept-charset="UTF-8" action="">
- <div class="form-group">
- <input id="q"
- name="q"
- type="text"
- class="form-control input-sm"
- placeholder="Search"
- value="{{sQuery}}" />
- </div>
- <div class="form-group search-button-group">
- <button type="submit" class="btn btn-primary btn-sm">Search</button>
- {{#if env.Search_AreaPolygons}}
- <input type="hidden" value="1" name="polygon_geojson" />
- {{/if}}
- <input type="hidden" name="viewbox" value="{{sViewBox}}" />
- <div class="checkbox-inline">
- <input type="checkbox"
- id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
- <label for="use_viewbox">apply viewbox</label>
- </div>
- </div>
+<div class="top-bar" id="structured-query-selector">
<div class="search-type-link">
<a id="switch-to-reverse" href="/reverse.html">reverse search</a>
</div>
-</form>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="simple" value="simple" {{#unless hStructured}}checked="checked"{{/unless}}>
+ <label for="simple">simple</label></div>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="structured" value="structured" {{#if hStructured}}checked="checked"{{/if}}>
+ <label for="structured">structured</label></div>
+
+ <form class="form-inline" role="search" accept-charset="UTF-8" action="">
+ <div class="form-group-simple {{#if hStructured}}hidden{{/if}}">
+ <input id="q"
+ name="q"
+ type="text"
+ class="form-control input-sm"
+ placeholder="Search"
+ value="{{sQuery}}" />
+ </div>
+ <div class="form-group-structured {{#unless hStructured}}hidden{{/unless}}">
+ <div class="form-inline">
+ <input name="street" type="text" class="form-control input-sm"
+ placeholder="House number/Street"
+ value="{{hStructured.street}}" />
+ <input name="city" type="text" class="form-control input-sm"
+ placeholder="City"
+ value="{{hStructured.city}}" />
+ <input id="county" name="county" type="text" class="form-control input-sm"
+ placeholder="County"
+ value="{{hStructured.county}}" />
+ <input name="state" type="text" class="form-control input-sm"
+ placeholder="State"
+ value="{{hStructured.state}}" />
+ <input name="country" type="text" class="form-control input-sm"
+ placeholder="Country"
+ value="{{hStructured.country}}" />
+ <input name="postalcode" type="text" class="form-control input-sm"
+ placeholder="Postal Code"
+ value="{{hStructured.postalcode}}" />
+ </div>
+ </div>
+ <div class="form-group search-button-group">
+ <button type="submit" class="btn btn-primary btn-sm">Search</button>
+ {{#if env.Search_AreaPolygons}}
+ <input type="hidden" value="1" name="polygon_geojson" />
+ {{/if}}
+ <input type="hidden" name="viewbox" value="{{sViewBox}}" />
+ <div class="checkbox-inline">
+ <input type="checkbox"
+ id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
+ <label for="use_viewbox">apply viewbox</label>
+ </div>
+ </div>
+ </form>
+</div>
<div id="content">
</div>
{{/inline}}
-
-<form class="form-inline" role="search" accept-charset="UTF-8" action="">
- <div class="form-group">
- <input id="q"
- name="q"
- type="text"
- class="form-control input-sm"
- placeholder="Search"
- value="{{sQuery}}" />
- </div>
- <div class="form-group search-button-group">
- <button type="submit" class="btn btn-primary btn-sm">Search</button>
- {{#if env.Search_AreaPolygons}}
- <input type="hidden" value="1" name="polygon_geojson" />
- {{/if}}
- <input type="hidden" name="viewbox" value="{{sViewBox}}" />
- <div class="checkbox-inline">
- <input type="checkbox"
- id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
- <label for="use_viewbox">apply viewbox</label>
- </div>
- </div>
+<div class="top-bar" id="structured-query-selector">
<div class="search-type-link">
<a id="switch-to-reverse" href="/reverse.html">reverse search</a>
</div>
-</form>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="simple" value="simple" {{#unless hStructured}}checked="checked"{{/unless}}>
+ <label for="simple">simple</label></div>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="structured" value="structured" {{#if hStructured}}checked="checked"{{/if}}>
+ <label for="structured">structured</label></div>
+
+ <form class="form-inline" role="search" accept-charset="UTF-8" action="">
+ <div class="form-group-simple {{#if hStructured}}hidden{{/if}}">
+ <input id="q"
+ name="q"
+ type="text"
+ class="form-control input-sm"
+ placeholder="Search"
+ value="{{sQuery}}" />
+ </div>
+ <div class="form-group-structured {{#unless hStructured}}hidden{{/unless}}">
+ <div class="form-inline">
+ <input name="street" type="text" class="form-control input-sm"
+ placeholder="House number/Street"
+ value="{{hStructured.street}}" />
+ <input name="city" type="text" class="form-control input-sm"
+ placeholder="City"
+ value="{{hStructured.city}}" />
+ <input id="county" name="county" type="text" class="form-control input-sm"
+ placeholder="County"
+ value="{{hStructured.county}}" />
+ <input name="state" type="text" class="form-control input-sm"
+ placeholder="State"
+ value="{{hStructured.state}}" />
+ <input name="country" type="text" class="form-control input-sm"
+ placeholder="Country"
+ value="{{hStructured.country}}" />
+ <input name="postalcode" type="text" class="form-control input-sm"
+ placeholder="Postal Code"
+ value="{{hStructured.postalcode}}" />
+ </div>
+ </div>
+ <div class="form-group search-button-group">
+ <button type="submit" class="btn btn-primary btn-sm">Search</button>
+ {{#if env.Search_AreaPolygons}}
+ <input type="hidden" value="1" name="polygon_geojson" />
+ {{/if}}
+ <input type="hidden" name="viewbox" value="{{sViewBox}}" />
+ <div class="checkbox-inline">
+ <input type="checkbox"
+ id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
+ <label for="use_viewbox">apply viewbox</label>
+ </div>
+ </div>
+ </form>
+</div>
<div id="content">
-
-
-form {
+.top-bar {
width: 100%;
padding: 1em 15px;
}
+
+.top-bar #q {
+ max-width: 500px;
+}
+
+.form-group-simple.hidden,
+.form-group-structured.hidden {
+ display: none;
+}
+
form #q {
min-width: 500px;
}
width: 100%;
}
.search-button-group {
- display: inline
+ display: inline;
}
}
+
+.search-button-group {
+ margin-top: 3px;
+ box-sizing: content-box;
+ margin-bottom: 3px;
+}
+
+label {
+ font-weight: normal;
+}
\ No newline at end of file
update_viewbox_field();
});
-
-
+ $("input[name='query-selector']").click(function () {
+ var query_val = $("input[name='query-selector']:checked").val();
+ if (query_val === 'simple') {
+ $('div.form-group-simple').removeClass('hidden');
+ $('div.form-group-structured').addClass('hidden');
+ $('.form-group-structured').find('input:text').val('');
+ } else if (query_val === 'structured') {
+ console.log('here');
+ $('div.form-group-simple').addClass('hidden');
+ $('div.form-group-structured').removeClass('hidden');
+ $('.form-group-simple').find('input:text').val('');
+ }
+ });
function get_result_element(position) {
return $('.result').eq(position);
-
-
-
jQuery(document).ready(function () {
//
if (!$('#search-page,#reverse-page').length) { return; }
} else {
api_request_params = {
q: search_params.get('q'),
+ street: search_params.get('street'),
+ city: search_params.get('city'),
+ county: search_params.get('county'),
+ state: search_params.get('state'),
+ country: search_params.get('country'),
+ postalcode: search_params.get('postalcode'),
polygon_geojson: search_params.get('polygon_geojson') ? 1 : 0,
viewbox: search_params.get('viewbox'),
exclude_place_ids: search_params.get('exclude_place_ids'),
};
context = {
- // aSearchResults: aResults,
sQuery: api_request_params.q,
sViewBox: search_params.get('viewbox'),
env: Nominatim_Config
- // sMoreURL: 'x'
};
- if (api_request_params.q) {
+ if (api_request_params.street || api_request_params.city || api_request_params.county
+ || api_request_params.state || api_request_params.country || api_request_params.postalcode) {
+ context.hStructured = {
+ street: api_request_params.street,
+ city: api_request_params.city,
+ county: api_request_params.county,
+ state: api_request_params.state,
+ country: api_request_params.country,
+ postalcode: api_request_params.postalcode
+ };
+ }
+
+ if (api_request_params.q || context.hStructured) {
fetch_from_api('search', api_request_params, function (aResults) {
</div>
{{/inline}}
-
-<form class="form-inline" role="search" accept-charset="UTF-8" action="">
- <div class="form-group">
- <input id="q"
- name="q"
- type="text"
- class="form-control input-sm"
- placeholder="Search"
- value="{{sQuery}}" />
- </div>
- <div class="form-group search-button-group">
- <button type="submit" class="btn btn-primary btn-sm">Search</button>
- {{#if env.Search_AreaPolygons}}
- <input type="hidden" value="1" name="polygon_geojson" />
- {{/if}}
- <input type="hidden" name="viewbox" value="{{sViewBox}}" />
- <div class="checkbox-inline">
- <input type="checkbox"
- id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
- <label for="use_viewbox">apply viewbox</label>
- </div>
- </div>
+<div class="top-bar" id="structured-query-selector">
<div class="search-type-link">
<a id="switch-to-reverse" href="/reverse.html">reverse search</a>
</div>
-</form>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="simple" value="simple" {{#unless hStructured}}checked="checked"{{/unless}}>
+ <label for="simple">simple</label></div>
+ <div class="radio-inline"><input type="radio" name="query-selector" id="structured" value="structured" {{#if hStructured}}checked="checked"{{/if}}>
+ <label for="structured">structured</label></div>
+
+ <form class="form-inline" role="search" accept-charset="UTF-8" action="">
+ <div class="form-group-simple {{#if hStructured}}hidden{{/if}}">
+ <input id="q"
+ name="q"
+ type="text"
+ class="form-control input-sm"
+ placeholder="Search"
+ value="{{sQuery}}" />
+ </div>
+ <div class="form-group-structured {{#unless hStructured}}hidden{{/unless}}">
+ <div class="form-inline">
+ <input name="street" type="text" class="form-control input-sm"
+ placeholder="House number/Street"
+ value="{{hStructured.street}}" />
+ <input name="city" type="text" class="form-control input-sm"
+ placeholder="City"
+ value="{{hStructured.city}}" />
+ <input id="county" name="county" type="text" class="form-control input-sm"
+ placeholder="County"
+ value="{{hStructured.county}}" />
+ <input name="state" type="text" class="form-control input-sm"
+ placeholder="State"
+ value="{{hStructured.state}}" />
+ <input name="country" type="text" class="form-control input-sm"
+ placeholder="Country"
+ value="{{hStructured.country}}" />
+ <input name="postalcode" type="text" class="form-control input-sm"
+ placeholder="Postal Code"
+ value="{{hStructured.postalcode}}" />
+ </div>
+ </div>
+ <div class="form-group search-button-group">
+ <button type="submit" class="btn btn-primary btn-sm">Search</button>
+ {{#if env.Search_AreaPolygons}}
+ <input type="hidden" value="1" name="polygon_geojson" />
+ {{/if}}
+ <input type="hidden" name="viewbox" value="{{sViewBox}}" />
+ <div class="checkbox-inline">
+ <input type="checkbox"
+ id="use_viewbox" {{#if sViewBox}}checked="checked"{{/if}}>
+ <label for="use_viewbox">apply viewbox</label>
+ </div>
+ </div>
+ </form>
+</div>
<div id="content">