Pop Erweiterung auf Adressen

This commit is contained in:
Daniel Spitzer
2026-02-20 11:22:21 +01:00
parent 86bc518663
commit 4d518981fa
7 changed files with 205 additions and 13 deletions

View File

@@ -52,6 +52,10 @@ class PopController extends mfBaseController
"category" => $pop->category ?: 99,
"networkArea" => $pop->networks,
"location" => $pop->location,
"zip" => $pop->zip,
"city" => $pop->city,
"street" => $pop->street,
"number" => $pop->number,
"state" => $pop->state,
"folder_link" => $pop->folder_link,
"doku_date" => $pop->doku_date,
@@ -142,6 +146,7 @@ class PopController extends mfBaseController
{
$network_id = 90;
$this->layout()->set("network_id", $network_id);
$this->layout()->set("networks", NetworkModel::getAll());
$this->layout()->set("categories", $this->getMapCategories());
$this->layout()->setTemplate("Pop/Map");
}
@@ -1295,6 +1300,10 @@ class PopController extends mfBaseController
$data['gps_lat'] = ($r->gps_lat) ? $r->gps_lat : null;
$data['gps_long'] = ($r->gps_long) ? $r->gps_long : null;
$data['location'] = $r->location;
$data['zip'] = $r->zip;
$data['city'] = $r->city;
$data['street'] = $r->street;
$data['number'] = $r->number;
$data['vlan_public'] = ($r->vlan_public) ? $r->vlan_public : null;
$data['vlan_nat'] = ($r->vlan_nat) ? $r->vlan_nat : null;
$data['vlan_ipv6'] = ($r->vlan_ipv6) ? $r->vlan_ipv6 : null;
@@ -1561,7 +1570,7 @@ class PopController extends mfBaseController
$db = FronkDB::singleton();
$pops = [];
$popQuery = "
SELECT DISTINCT p.id, p.name, p.gps_lat, p.gps_long
SELECT DISTINCT p.id, p.name, p.gps_lat, p.gps_long, p.zip, p.city, p.street, p.number
FROM Pop p
INNER JOIN PopNetwork pn ON p.id = pn.pop_id
INNER JOIN Network n ON pn.network_id = n.id
@@ -1577,6 +1586,10 @@ class PopController extends mfBaseController
'name' => $popData->name,
'lat' => floatval($popData->gps_lat),
'lng' => floatval($popData->gps_long),
'zip' => $popData->zip,
'city' => $popData->city,
'street' => $popData->street,
'number' => $popData->number,
'type' => 'pop'
];
}
@@ -1769,9 +1782,62 @@ class PopController extends mfBaseController
}
}
$pipes = [];
$pipeQuery = "
SELECT DISTINCT p.id, p.description, p.coordinates, p.type_tmp, p.coat_color, p.layer, p.status, p.state
FROM FiberPlanPipe p
INNER JOIN FiberPlanPipeEndpoint pe ON p.id = pe.fiberPlanPipe_id
LEFT JOIN FiberPlanDispatcher d ON pe.fiberPlanDispatcher_id = d.id
LEFT JOIN FiberPlanAddress a ON pe.fiberPlanAddress_id = a.id
LEFT JOIN PopNetwork pn ON pe.pop_id = pn.pop_id
WHERE
(d.network_id = $network_id) OR
(a.network_id = $network_id) OR
(pn.network_id = $network_id)
";
$pipeRes = $db->query($pipeQuery);
if ($db->num_rows($pipeRes)) {
while ($pipeData = $db->fetch_object($pipeRes)) {
if (!empty($pipeData->coordinates)) {
$coords_array = json_decode($pipeData->coordinates, true);
if (is_array($coords_array) && count($coords_array) > 0) {
$convertedCoords = [];
foreach ($coords_array as $coord) {
if (isset($coord['gps_lat']) && isset($coord['gps_long'])) {
$convertedCoords[] = [
'lat' => floatval($coord['gps_lat']),
'lng' => floatval($coord['gps_long'])
];
} elseif (isset($coord['lat']) && isset($coord['lng'])) {
$convertedCoords[] = [
'lat' => floatval($coord['lat']),
'lng' => floatval($coord['lng'])
];
}
}
if (count($convertedCoords) >= 2) {
$pipes[] = [
'id' => intval($pipeData->id),
'name' => $pipeData->description,
'coordinates' => $convertedCoords,
'type' => $pipeData->type_tmp,
'color' => $pipeData->coat_color,
'layer' => $pipeData->layer,
'status' => $pipeData->status,
'state' => $pipeData->state
];
}
}
}
}
}
return mfBaseController::returnJson(mfResponse::Ok([
'pops' => $pops,
'cables' => $cables,
'pipes' => $pipes,
'distributors' => $distributors,
'splices' => $splices,
'customerConnections' => $customerConnections

View File

@@ -8,6 +8,10 @@ class PopModel
public $gps_lat = null;
public $gps_long = null;
public $location = null;
public $zip = null;
public $city = null;
public $street = null;
public $number = null;
public $vlan_public = null;
public $vlan_nat = null;
public $vlan_ipv6 = null;