Files
thetool/Layout/default/Pop/Detail.php
2026-02-20 11:22:21 +01:00

745 lines
42 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php"); ?>
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= $git_merge_ts ?>" rel="stylesheet"
type="text/css"/>
<link href="<?= self::getResourcePath() ?>assets/css/print.min.css?<?= $git_merge_ts ?>" rel="stylesheet"
type="text/css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.css">
<link href="<?= self::getResourcePath() ?>css/pages/Pop/Detail.css?<?= $git_merge_ts ?>" rel="stylesheet"
type="text/css"/>
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="<?= self::getUrl("Dashboard") ?>"><?= MFAPPNAME_SLUG ?></a>
</li>
<li class="breadcrumb-item"><a href="<?= self::getUrl("Pop") ?>">Pops</a>
</li>
<li class="breadcrumb-item active">Pop Detail</li>
</ol>
</div>
<h4 class="page-title">Pop: <span class="font-weight-normal ml-1"><?= $pops->data->name ?></span> <span
class="ml-2">
<a href="<?= self::getUrl("Pop", "edit", ["id" => $pops->id, 'returnto' => "pop-detail"]) ?>">
<button class="btn btn-primary">Bearbeiten</button>
</a>
</span>
<button class="btn btn-success" data-popid="<?= $pops->id ?>" data-toggle="modal"
data-target="#rackModal"><i class="fas fa-plus"></i> Schrank hinzufügen
</button>
</h4>
</div>
</div>
</div>
<?php
$plugs[1] = "LC/APC";
$plugs[2] = "SC/APC";
$plugs[3] = "E2000/APC";
$vlans = "";
if (!empty(trim($pops->vlan_public)))
$vlans .= '<span class="order-date-pill active mb-0 d-inline-block d-lg-inline">Public: <span class="font-weight-500">' . $pops->vlan_public . '</span class="font-weight-500"></span>';
if (!empty(trim($pops->vlan_nat)))
$vlans .= '<span class="order-date-pill active mb-0 d-inline-block d-lg-inline">Nat: <span class="font-weight-500">' . $pops->vlan_nat . '</span></span>';
if (!empty(trim($pops->vlan_ipv6)))
$vlans .= '<span class="order-date-pill active mb-0 d-inline-block d-lg-inline">IPv6: <span class="font-weight-500">' . $pops->vlan_ipv6 . '</span></span>';
?>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12 col-lg-5 card-border">
<div>
<h4>Allgemeine Informationen </h4>
</div>
<div>
<table class="table table-sm">
<tbody>
<tr>
<th class="w-30">Netzgebiet</th>
<td><?= $popnetwork ?> </td>
</tr>
<tr>
<th>Name</th>
<td><?= $pops->name ?> </td>
</tr>
<tr>
<th>Kategorie</th>
<td><?= $categoryArray[$pops->category]['name']." (".$categoryArray[$pops->category]['comment'].")" ?> </td>
</tr>
<tr>
<th>Adresse</th>
<td>
<a title="Google-Maps: <?= $pops->street ?> <?= $pops->number ?>, <?= $pops->zip ?> <?= $pops->city ?>"
class="mapsLink"
href="http://maps.google.com/?q=<?= urlencode($pops->street . " " . $pops->number . ", " . $pops->zip . " " . $pops->city) ?>"
target="_blank"><?= $pops->street ?> <?= $pops->number ?>, <?= $pops->zip ?> <?= $pops->city ?></a>
</td>
</tr>
<tr>
<th>Standort</th>
<td>
<a title="Google-Maps: <?= rtrim($pops->gps_lat, '0') ?> , <?= $pops->gps_long ?>"
class="mapsLink"
href="http://maps.google.com/?q=<?= $pops->gps_lat ?> , <?= $pops->gps_long ?>"
target="_blank"><?= rtrim($pops->gps_lat, '0') ?>
, <?= rtrim($pops->gps_long, 0) ?></a></td>
</tr>
<tr>
<th class="text-nowrap">Standort Info</th>
<td><?= nl2br($pops->location) ?> </td>
</tr>
<tr>
<th class="text-nowrap">Access VLANs</th>
<td><?= $vlans ?> </td>
</tr>
<tr>
<th class="text-nowrap">Dokustand | Status</th>
<td><?= ($pops->doku_date) ? date("d.m.Y", $pops->doku_date) : '-' ?><span
class="ml-2 mr-2">|</span><?= ($pops->state) ? $stateArray[$pops->state] : '-' ?>
</td>
</tr>
<tr>
<th class="text-nowrap">Fotospeicherort</th>
<td><?php if ($pops->folder_link): ?> <a
href="file://<?= $pops->folder_link ?>"><?= $pops->folder_link ?></a><?php endif; ?>
</td>
</tr>
<tr>
<th class="text-nowrap">Interne Notiz</th>
<td><?= nl2br($pops->note) ?> </td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col-12 col-lg-7 card-border">
<div>
<h4>Pop Devices</h4>
</div>
<?php
if (!empty($devices)) {
?>
<div>
<table id="datatable" class="table table-striped table-hover" style="width: 100%">
<thead>
<tr>
<th class="all">Geräte Name</th>
<th class="text-center ">Geräte Typ</th>
<th class="text-center ">Hersteller</th>
<th class="text-center all">IP-Adresse</th>
<th class="text-center ">Seriennummer</th>
<th class="text-center ">Preis</th>
<th title="maximale Leistung" class="text-center text-nowrap">max. P.</th>
</tr>
<tr id="filterrow" class="d-none d-lg-table-row">
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody class="font-13">
<?php
foreach ($devices as $device):
if (!empty($device->price)) {
$price = $device->price;
} else {
$price = $device->devicetype->price;
}
?>
<tr>
<td class="text-nowrap">
<a href="<?= self::getUrl("Device", "detail", ["id" => $device->id]) ?>"><?= $device->name ?></a>
</td>
<td class="text-center text-nowrap"><?= $device->devicetype->name ?></td>
<td class="text-center"><?= $device->devicetype->devicemanufactor->name ?></td>
<td class="text-center"><?= $device->ip ?></td>
<td class="text-center"><?= $device->serial ?></td>
<td class="text-right"><?= $price ?> €</td>
<td class="text-right"><?= $device->devicetype->power ?> Watt</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php
} else {
?>
<h5 class="text-center">Keine Devices vorhanden</h5>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="rackModal" tabindex="-1" role="dialog" aria-labelledby="rackModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="rackModalLabel">Schrank</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="rack-name">Schrank Name*</label>
<div class="col-lg-6">
<input required="required" type="text" id="rack-name" name="rack-name"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="rack-he">Höheneinheiten*</label>
<div class="col-lg-3">
<input required="required" type="number" min="1" max="50" id="rack-he" name="rack-he"
class="form-control"/>
</div>
</div>
<div class="alert alert-danger text-center" role="alert" style="display: none"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="rack-add">Schrank hinzufügen</button>
<button type="button" class="btn btn-primary" id="rack-update" style="display:none">Schrank
speichern
</button>
<button type="button" class="btn btn-danger" id="rack-remove" style="display:none">Schrank
entfernen
</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
</div>
</div>
</div>
</div>
<?php if ($popracks) : ?>
<div class="modal fade bd-example-modal-xl" tabindex="-1" role="dialog" aria-labelledby="myExtraLargeModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
...
</div>
</div>
</div>
<div class="modal fade " id="rackModuleModal" tabindex="-1" role="dialog" aria-labelledby="rackModuleModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="rackModuleModalLabel">Modul hinzufügen</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="card">
<div class="card-body">
<div class="form-group row " id="module-slot-div" style="display:none">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-slot">19 Zoll Position</label>
<div class="col-lg-3">
<input type="hidden" value="front" id="module-side" name="module-side"/>
<select required="required" id="module-slot" name="module-slot"
class="form-control">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-type">Modul Typ*</label>
<div class="col-lg-6">
<select required="required" id="module-type" name="module-type"
class="form-control">
<option value="0">LWL Patch Panel</option>
<option value="1">Device</option>
<option value="2">Rangierpanel</option>
<option value="4">CU Patch Panel</option>
<option value="3">Infrastruktur</option>
<option value="5">Geblockt</option>
</select>
</div>
</div>
<div class="form-group row" id="module-status-div" style="display: none;">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-status">Status*</label>
<div class="col-lg-6">
<select required="required" id="module-status" name="module-status"
class="form-control">
<option value="productive">Produktiv</option>
<option value="planned">Geplant</option>
</select>
</div>
</div>
<div class="form-group row" id="module-name-div">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-name">Modul Name*</label>
<div class="col-lg-6">
<input required="required" type="text" id="module-name" name="module-name"
class="form-control"/>
</div>
</div>
<div class="form-group row" id="module-device-div">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-device-id">Device*</label>
<div class="col-lg-6">
<select required="required" id="module-device-id" name="module-type"
class="form-control">
<?php foreach ($devices as $device): ?>
<option value="<?= $device->id ?>"><?= $device->name ?></option>
<?php endforeach; ?>
</select>
<label class="col-form-label" id="module-device-text"></label>
</div>
</div>
<div class="form-group row" id="module-ports-div">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-ports">Ports</label>
<div class="col-lg-6">
<select required="required" id="module-ports" name="module-ports"
class="form-control">
<option value="96" data-plugs="1;2">96</option>
<option selected="selected" value="48" data-plugs="1;2">48</option>
<option value="24" data-plugs="2;3">24</option>
<option value="12" data-plugs="2;3">12</option>
</select>
</div>
</div>
<div class="form-group row" id="module-plug-div">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="module-plug">Stecker</label>
<div class="col-lg-6">
<select required="required" id="module-plug" name="module-plug"
class="form-control">
<option value="1">LC/APC</option>
<option value="2">SC/APC</option>
<option style="display: none" value="3">E2000/APC</option>
</select>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="he-start">Start HE*</label>
<div class="col-lg-3" id="he-start-div">
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="he-count">Anzahl HE*</label>
<div class="col-lg-3" id="he-count-div">
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="">Größe</label>
<div class="col-lg-4">
<select required="required" id="module-width" name="module-width"
class="form-control">
<option value="12">19 Zoll</option>
<option value="6">1/2 19 Zoll</option>
<option value="4">1/3 19 Zoll</option>
<option value="3">1/4 19 Zoll</option>
</select>
</div>
</div>
<div class="form-group row" id="module-position-div" style="display: none">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="">Position</label>
<div class="col-lg-4">
<select required="required" id="module-position" name="module-position"
class="form-control">
</select>
</div>
</div>
<div class="alert alert-danger text-center" role="alert" style="display: none"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button id="module-add" type="button" class="btn btn-primary">Modul hinzufügen</button>
<button id="module-update" type="button" class="btn btn-primary">Modul Speichern</button>
<button id="module-remove" type="button" class="btn btn-danger" style="display:none">Modul
entfernen
</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
</div>
</div>
</div>
</div>
<div class="row" id="pop-rack-div" style="display:none">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12 card-border">
<div class="row align-items-center mb-2">
<div class="col-md-2">
<h4>Schränke</h4>
</div>
<div class="col-md-3 justify-content-center">
<div class="">
<label for="cable-search" class="mr-2">Kabelsuche:</label>
<select id="cable-search" class="form-control form-select">
<option></option>
</select>
</div>
</div>
</div>
<div id="sortracklist" class="row" data-popid="<?= $pops->id ?>">
<?php foreach ($popracks as $poprack) : ?>
<div class="col-lg-4 col-12 list-group-item-move mb-3">
<table class="w-100 p-0 font-13"
style="max-width: 100%; box-shadow: 2px 2px 5px 2px rgba(0,0,0,0.31);border-radius: 5px 5px 5px 5px;">
<thead>
<tr>
<th colspan="13"
class="text-center border-bottom font-15 pt-1 pb-1"
data-rackhe="<?= $poprack['rack']['he'] ?>"
data-rackid="<?= $poprack['rack']['id']; ?>"
data-rackname="<?= $poprack['rack']['name']; ?>"
><span
class="rack-name"><i
class="fa-regular fa-arrows-up-down-left-right move-handle float-left"></i><?= $poprack['rack']['name']; ?>&nbsp;<span
class="rack-side-indicator font-weight-normal">-&nbsp;Vorderseite</span></span>
<i class="fas fa-expand float-right mr-2 rack-fullscreen-btn"
title="Vollbild & Drucken"
style="cursor: pointer; margin-top: 2px;"
data-rackid="<?= $poprack['rack']['id']; ?>"></i>
<i class="fas fa-sync-alt float-right switch-rack-side"
title="Seite wechseln"></i>
<i class="far fa-edit float-right" title="Bearbeiten"
data-toggle="modal" data-target="#rackModal"></i>
</th>
</tr>
</thead>
<tbody id="rack-body-<?= $poprack['rack']['id'] ?>" data-side="front">
<?php
$modules_to_render = $poprack['modules']['front'] ?? [];
$rack_he = $poprack['rack']['he'];
include('_rack_body.php');
?>
</tbody>
</table>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php endif; ?>
<div class="modal fade" id="cableModal" tabindex="-1" role="dialog" aria-labelledby="cableModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="cableModalLabel">Kabel auf Patch Panel legen</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="card">
<div class="card-body">
<input type="hidden" id="cable-poprackmodule-id" name="poprackmodule_id">
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="cable-name">Kabel-Name*</label>
<div class="col-lg-6">
<input required="required" type="text" id="cable-name" name="cable-name"
class="form-control"
placeholder="z.B. K001"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="port-start">Start-Port*</label>
<div class="col-lg-3">
<input required="required" type="number" min="1" id="port-start" name="port-start"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="port-end">End-Port*</label>
<div class="col-lg-3">
<input required="required" type="number" min="1" id="port-end" name="port-end"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="fiber-start">Faser von</label>
<div class="col-lg-3">
<input type="number" min="1" id="fiber-start" name="fiber-start" class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="fiber-end">Faser bis</label>
<div class="col-lg-3">
<input type="number" min="1" id="fiber-end" name="fiber-end" class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="cable-description">Beschreibung</label>
<div class="col-lg-6">
<textarea id="cable-description" name="cable-description" class="form-control"
rows="3"></textarea>
</div>
</div>
<div class="alert alert-danger text-center" role="alert" style="display: none"
id="cable-modal-alert"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button id="cable-add-button" type="button" class="btn btn-primary">Kabel hinzufügen</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="cableEditModal" tabindex="-1" role="dialog" aria-labelledby="cableEditModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="cableEditModalLabel">Kabel bearbeiten</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<div class="card">
<div class="card-body">
<input type="hidden" id="edit-cable-id">
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="edit-cable-name">Kabel-Name*</label>
<div class="col-lg-6">
<input required="required" type="text" id="edit-cable-name" class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="edit-port-start">Start-Port*</label>
<div class="col-lg-3">
<input required="required" type="number" min="1" id="edit-port-start"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="edit-port-end">End-Port*</label>
<div class="col-lg-3">
<input required="required" type="number" min="1" id="edit-port-end"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="edit-fiber-start">Faser von</label>
<div class="col-lg-3">
<input type="number" min="1" id="edit-fiber-start" name="fiber-start"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="edit-fiber-end">Faser bis</label>
<div class="col-lg-3">
<input type="number" min="1" id="edit-fiber-end" name="fiber-end" class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-4 col-form-label" for="cable-description">Beschreibung</label>
<div class="col-lg-6">
<textarea id="edit-cable-description" name="cable-description" class="form-control"
rows="3"></textarea>
</div>
</div>
<div class="alert alert-danger text-center" role="alert" style="display: none"
id="cable-edit-modal-alert"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button id="cable-update-button" type="button" class="btn btn-primary">Änderungen speichern</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="fiberPlanCableModal" tabindex="-1" role="dialog" aria-labelledby="fiberPlanCableModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="fiberPlanCableModalLabel">
<i class="fa fa-cable"></i> Kabel-Details
<button class="btn btn-primary btn-sm ml-3"
id="modal-edit-cable-btn"
style="display: none;">
<i class="fas fa-table"></i> Excel-Editor
</button>
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" id="fiberPlanCableModalBody">
<div class="text-center py-5">
<div class="spinner-border text-primary" role="status"></div>
<p class="mt-3">Lade Kabel-Informationen...</p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Schließen</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="excelEditorModal" tabindex="-1" role="dialog" style="display: none;">
<div class="modal-dialog modal-fullscreen-custom" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
<i class="fas fa-table"></i> Kabel bearbeiten: <span id="cable-name"></span>
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body p-0 d-flex flex-column" style="flex: 1; overflow: hidden;">
<div id="handsontable-container" style="flex: 1; width: 100%; overflow: hidden;"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">
<i class="fas fa-times"></i> Abbrechen
</button>
<button type="button" class="btn btn-success" id="save-excel-data">
<i class="fas fa-save"></i> Speichern
</button>
</div>
</div>
</div>
</div>
<div id="customRackOverlay">
<div class="overlay-header">
<h3 id="overlayTitle">Rack Detail</h3>
<div>
<button class="btn btn-info mr-2" onclick="printRackOverlay('landscape');" title="Querformat drucken">
<i class="fas fa-print"></i> <i class="fas fa-arrows-alt-h"></i> Quer
</button>
<button class="btn btn-info mr-2" onclick="printRackOverlay('portrait');" title="Hochformat drucken">
<i class="fas fa-print"></i> <i class="fas fa-arrows-alt-v"></i> Hoch
</button>
<button class="btn btn-secondary" onclick="$('#customRackOverlay').fadeOut(); $('body').css('overflow', '');">
<i class="fas fa-times"></i> Schließen
</button>
</div>
</div>
<div id="overlayContent" class="d-flex justify-content-center overlayContent">
</div>
</div>
<div id="cable-context-menu" class="dropdown-menu" style="display:none;">
<a class="dropdown-item" href="#" data-action="view"><span class="context-span"><i
class="fas fa-eye fa-fw"></i></span> Ansehen</a>
<a class="dropdown-item" href="#" data-action="edit"><span class="context-span"><i
class="fas fa-edit fa-fw"></i></span> Bearbeiten</a>
<a class="dropdown-item" href="#" data-action="delete"><span class="context-span"><i class="fas fa-trash fa-fw"></i></span>
Löschen</a>
</div>
<script type="text/javascript" src="<?= self::getResourcePath() ?>assets/js/Sortable.js?<?= $git_merge_ts ?>"></script>
<script type="text/javascript">
var hidesearch = [5, 6];
let trigger;
let linkSorTracklist = "<?= self::getUrl("Poprack", "api", ['do' => 'sortRack']) ?>";
let linkAddModule = "<?= self::getUrl("Poprackmodule", "api", ['do' => 'addModule']) ?>";
let linkRemoveModule = "<?= self::getUrl("Poprackmodule", "api", ['do' => 'removeModule']) ?>";
let linkGenerateRack = "<?= self::getUrl("Poprack", "api", ['do' => 'generateRack']) ?>";
let linkUpdateModule = "<?= self::getUrl("Poprackmodule", "api", ['do' => 'updateModule']) ?>";
let linkEditRack = "<?= self::getUrl("Poprack", "api", ['do' => 'editRack']) ?>";
let linkAddRack = "<?= self::getUrl("Poprack", "api", ['do' => 'addRack']) ?>";
let linkRemoveRack = "<?= self::getUrl("Poprack", "api", ['do' => 'removeRack']) ?>";
let linkAddCable = "<?= self::getUrl("Poprackmodulecable", "api", ['do' => 'addCable']) ?>";
let linkRemoveCable = "<?= self::getUrl("Poprackmodulecable", "api", ['do' => 'removeCable']) ?>";
let linkUpdateCable = "<?= self::getUrl("Poprackmodulecable", "api", ['do' => 'updateCable']) ?>";
let linkGetCableDetails = "<?= self::getUrl('Pop', 'api', ['do' => 'getCableDetails']) ?>";
let linkGetFiberPath = "<?= self::getUrl('Pop', 'api', ['do' => 'getFiberPath']) ?>";
let linkGetCableFibersForEdit = "<?php echo mfBaseController::getUrl('Pop', 'api', array('do' => 'getCableFibersForEdit')); ?>";
let linkSaveCableFibers = "<?php echo mfBaseController::getUrl('Pop', 'api', array('do' => 'saveCableFibers')); ?>";
L.MakiMarkers.accessToken = '<?=TT_MAPBOX_TILE_API_TOKEN?>';
var allCables = <?php echo $cables_json ?? '[]'; ?>;
var popNetworkIds = <?php echo $popnetwork_ids ?? '[]'; ?>;
$(function () {
$('[data-toggle="popover"]').popover('dispose');
$('[data-toggle="popover"]').popover();
});
</script>
<!--<script src="https://cdn.jsdelivr.net/npm/handsontable/dist/handsontable.full.min.js"></script>-->
<script type="text/javascript" src="<?= self::getResourcePath() ?>assets/js/print.min.js?<?= $git_merge_ts ?>"></script>
<script type="text/javascript" src="<?= self::getResourcePath() ?>js/pages/Pop/detail/detail.js?<?= $git_merge_ts ?>"></script>
<script type="text/javascript" src="<?= self::getResourcePath() ?>js/pages/Pop/detail/fiber.js?<?= $git_merge_ts ?>"></script>
<!--script type="text/javascript"
src="<?= self::getResourcePath() ?>js/pages/pop/fibertable.js?<?= $git_merge_ts ?>"></script-->
<script type="text/javascript"
src="<?= self::getResourcePath() ?>assets/js/datatables-std.js?<?= $git_merge_ts ?>"></script>
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>