Pop Erweiterung Adressen nun mit Straßenschlüssel

* Bugfix filtern und sortieren auf Adressenbasis funktioniert nun
This commit is contained in:
Daniel Spitzer
2026-03-01 20:06:25 +01:00
parent 7e12c6ff1d
commit 6312f6657b
2 changed files with 162 additions and 26 deletions

View File

@@ -117,8 +117,47 @@ if (isset($_GET['returnto']) && $_GET['returnto'] == "pop-detail") {
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label">Adresssuche</label>
<div class="col-lg-8">
<?php
$addrDisplay = '';
if ($pop->street) {
$addrDisplay = $pop->street;
if ($pop->number) $addrDisplay .= ' ' . $pop->number;
if ($pop->zip || $pop->city) $addrDisplay .= ', ' . trim($pop->zip . ' ' . $pop->city);
}
?>
<select class="form-control" id="address_search">
<?php if($addrDisplay): ?>
<option value="preset" selected><?= htmlspecialchars($addrDisplay) ?></option>
<?php endif; ?>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="zip">Adresse</label>
<div class="col-lg-4">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Straße</span>
</div>
<input type="text" class="form-control" name="street" id="street"
value="<?= $pop->street ?>">
</div>
</div>
<div class="col-lg-1">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Nr.</span>
</div>
<input type="text" class="form-control" name="number" id="number"
value="<?= $pop->number ?>">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="zip"></label>
<div class="col-lg-1">
<div class="input-group">
<div class="input-group-prepend">
@@ -139,32 +178,7 @@ if (isset($_GET['returnto']) && $_GET['returnto'] == "pop-detail") {
</div>
</div>
<div class="form-group row">
<!-- <label class="col-lg-2 col-form-label" for="street">Straße</label>-->
<!-- <div class="col-lg-3">-->
<!-- <input type="text" class="form-control" name="street" id="street"-->
<!-- value="--><?php //= $pop->street ?><!--">-->
<!-- </div>-->
<label class="col-lg-2 col-form-label" for=""></label>
<div class="col-lg-4">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Straße</span>
</div>
<input type="text" class="form-control" name="street" id="street"
value="<?= $pop->street ?>">
</div>
</div>
<div class="col-lg-1">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Nr.</span>
</div>
<input type="text" class="form-control" name="number" id="number"
value="<?= $pop->number ?>">
</div>
</div>
</div>
</div>
</div>
@@ -280,6 +294,32 @@ if (isset($_GET['returnto']) && $_GET['returnto'] == "pop-detail") {
});
// combined address search with select2
$('#address_search').select2({
placeholder: 'Straße Hausnummer, PLZ Ort eingeben...',
allowClear: true,
minimumInputLength: 2,
ajax: {
url: "<?=self::getUrl('Pop','api')?>",
dataType: 'json',
delay: 300,
data: function(params) { return { do: 'searchAddress', q: params.term }; },
processResults: function(data) { return { results: data.results || [] }; }
}
});
$('#address_search').on('select2:select', function(e) {
var d = e.params.data;
$('#street').val(d.street || '');
$('#number').val(d.number || '');
$('#zip').val(d.zip || '');
$('#city').val(d.city || '');
});
$('#address_search').on('select2:clear', function() {
$('#street, #number, #zip, #city').val('');
});
// network_id // owner_id
// if get parameter network_id is set, select it if found
const urlParams = new URLSearchParams(window.location.search);