Files
Daniel Spitzer 1554d6cf72 Faserplanung Vorbereitung für Kabelverschaltung
* Menüpunkt Kabelverschaltung hinzugefügt
 * Initialfiles für Kabelverschaltung
2024-06-30 12:01:56 +02:00

639 lines
40 KiB
PHP

<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php"); ?>
<link href="<?= self::getResourcePath() ?>assets/css/select2-cstm.css?<?= date('U') ?>" rel="stylesheet"
type="text/css"/>
<!-- start page title -->
<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("FiberPlanCable") ?>">Kabelverzeichnis</a></li>
<li class="breadcrumb-item active"><?= ($fiberplancables->id) ? "bearbeiten" : "Neu" ?></li>
</ol>
</div>
<h4 class="page-title"><?= ($fiberplancables->id) ? "Kabelverzeichnis bearbeiten" : "Neues Kabel" ?></h4>
</div>
</div>
</div>
<?php
if ($fiberplancables->fiberPlanPipe->startpoint_network_id != $fiberplancables->network_id && $fiberplancables->fiberPlanPipe->endpoint_network_id != $fiberplancables->network_id) {
$networkId = $fiberplancables->fiberPlanPipe->startpoint_network_id;
} else {
$networkId = $fiberplancables->network_id;
}
if (isset($_GET['returnto']) && $_GET['returnto'] == "fiberplancable-detail") {
$cancelUrl = self::getUrl("FiberPlanCable", "Detail", ["id" => $fiberplancables->id]);
} else {
$cancelUrl = self::getUrl("FiberPlanCable");
}
//var_dump($fiberPlanCableEndpoints);
?>
<script>
const pipes = [];
const pipesid = [];
const subpipes = [];
</script>
<style>
.fa-circle-plus {
color: #00b125;
cursor: pointer;
font-size: 17px;
float: right;
}
.remove-module, .remove-rack {
cursor: pointer;
color: #ff0606;
font-size: 17px;
float: right;
margin-left: 7px;
}
.up-module {
cursor: pointer;
color: #0c06ff;
font-size: 17px;
float: right;
margin-left: 7px;
}
.fa-square-caret-down, .fa-square-caret-up {
font-size: 17px;
margin-top: 10px;
margin-right: 10px;
color: #007bffa3;
cursor: pointer;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Old versions of Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none;
}
.destination-dropdown {
cursor: pointer;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Old versions of Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none;
}
.add-pipe {
float: unset !important;
margin-left: 10px;
}
.remove-endpoint {
cursor: pointer;
color: #ff0606;
font-size: 17px;
float: right;
margin-left: 7px;
}
.fa-up {
color: #0d6efd;
font-size: 17px;
cursor: pointer;
float: right;
margin-left: 10px;
}
.fa-down {
color: #0d6efd;
font-size: 17px;
cursor: pointer;
float: right;
margin-left: 10px;
}
.fiberplancablepipe-div {
border-top: 1px dotted #ccc;
padding-top: 5px;
}
.fiberplancablepipe-div .form-group {
margin-bottom: 5px;
}
.fiberplanpipe-main-div {
padding: 5px 5px 5px 5px;
border: 1px dotted #656161;
border-radius: 10px;
margin-bottom: 10px;
}
.change-fiberplanpipe-body {
cursor: pointer;
}
.add-module, .add-sleeve {
float: unset;
display: inline-block;
vertical-align: top;
margin-left: 5px;
margin-top: 6px;
}
.fiberplancableendpoint-div {
border: 1px dotted #ccc;
padding: 5px;
margin-top: 10px;
border-radius: 10px;
}
</style>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<h4 class="header-title mb-2"><?= ($fiberplancables->id) ? "Kabelverzeichnis bearbeiten" : "Neues Kabel" ?></h4>
<form class="form-horizontal" method="post"
action="<?= self::getUrl("FiberPlanCable", "save", ["returnto" => $_GET["returnto"]]) ?>">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col col-lg-6">
<input type="hidden" name="id" value="<?= $fiberplancables->id ?>"/>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="description">Bezeichnung
*</label>
<div class="col-lg-4">
<input required="required" type="text" id="description"
name="description"
class="form-control"
value="<?= $fiberplancables->description ?>"/>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="fibers">Fasern *</label>
<div class="col-lg-3">
<select required="required" id="fibers" name="fibers"
class="select2select form-control">
<option value=""></option>
<option value="1"
data-fibers="4" <?= ($fiberplancables->fibers == "1") ? "selected='selected'" : "" ?>>
1x4
</option>
<option value="2"
data-fibers="12" <?= ($fiberplancables->fibers == "2") ? "selected='selected'" : "" ?>>
1x12 <i class="fad fa-fw fa-hdd text-info"></i></option>
<option value="3"
data-fibers="24" <?= ($fiberplancables->fibers == "3") ? "selected='selected'" : "" ?>>
1x24
</option>
<option value="4"
data-fibers="24" <?= ($fiberplancables->fibers == "4") ? "selected='selected'" : "" ?>>
2x12
</option>
<option value="5"
data-fibers="48" <?= ($fiberplancables->fibers == "5") ? "selected='selected'" : "" ?>>
4x12
</option>
<option value="6"
data-fibers="96" <?= ($fiberplancables->fibers == "6") ? "selected='selected'" : "" ?>>
8x12
</option>
<option value="7"
data-fibers="144" <?= ($fiberplancables->fibers == "7") ? "selected='selected'" : "" ?>>
6x24
</option>
<option value="8"
data-fibers="144" <?= ($fiberplancables->fibers == "8") ? "selected='selected'" : "" ?>>
12x12
</option>
<option value="9"
data-fibers="192" <?= ($fiberplancables->fibers == "9") ? "selected='selected'" : "" ?>>
8x24
</option>
<option value="10"
data-fibers="288" <?= ($fiberplancables->fibers == "10") ? "selected='selected'" : "" ?>>
12x24
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="diameter">Durchmesser (MM)
*</label>
<div class="col-lg-3">
<input required="required" type="text" id="diameter" name="diameter"
class="form-control"
value="<?= $fiberplancables->diameter ?>"/>
</div>
</div>
<!--div class="form-group row">
<label class="col-lg-3 col-form-label" for="starting_point">Netzgebiet
*</label>
<div class="col-lg-6">
<select required="required" id="network_id" name="network_id"
class="select2 form-control">
<option value=""></option>
<?php foreach ($networks as $network): ?>
<option value="<?= $network->id ?>" <?= ($networkId == $network->id) ? "selected='selected'" : "" ?>><?= $network->name ?></option>
<?php endforeach; ?>
</select>
</div>
</--div-->
<div class="form-group row">
<div class="col-lg-12">
<h4>Rohr(e) <i id="add-pipe" data-popid="5"
class="fa-regular fa-circle-plus add-pipe"></i></h4>
</div>
</div>
<div id="fiberplancablepipes-div">
<?php
$counter = 1;
if ($fiberPlanCablePipes) :
foreach ($fiberPlanCablePipes as $fiberPlanCablePipe): ?>
<div class="fiberplancablepipe-div">
<div class=" form-group row">
<label class="col-lg-3 col-form-label fiberplanpipe-label"
for="fiberPlanPipe_id"><span
class=" label-text">Rohr *</span> <span
class="endpointsymbol"></span>
</label>
<div class="col-lg-4">
<select required="required"
name="fiberplanpipenetwork[]"
class="select2select form-control pipe-network">
<option value=""></option>
<?php
foreach ($networks as $network): ?>
<option value="<?= $network->id ?>" <?= ($fiberPlanPipeNetworks[$fiberPlanCablePipe->fiberPlanPipe_id] == $network->id) ? "selected='selected'" : "" ?>><?= $network->name ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="col-lg-4 pipe-div">
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label"
for="fiberPlanPipe_sub">Subrohr
*</label>
<div class="col-lg-4 subpipe-div">
</div>
</div>
<script>
pipes.push(<?= $fiberPlanCablePipe->fiberPlanPipe_id ?>);
pipesid.push(<?= $fiberPlanCablePipe->id ?>);
subpipes.push(<?= $fiberPlanCablePipe->fiberPlanPipe_sub ?>);
</script>
</div>
<?php
$counter++;
endforeach; ?>
<?php else: ?>
<div class="fiberplancablepipe-div">
<div class=" form-group row">
<label class="col-lg-3 col-form-label fiberplanpipe-label"
for="fiberPlanPipe_id"><span
class=" label-text">Rohr *</span> <span
class="endpointsymbol"></span>
</label>
<div class="col-lg-4">
<select required="required"
name="fiberplanpipenetwork[]"
class="select2select form-control pipe-network">
<option value=""></option>
<?php
foreach ($networks as $network): ?>
<option value="<?= $network->id ?>"><?= $network->name ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="col-lg-4 pipe-div">
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label"
for="fiberPlanPipe_sub">Subrohr
*</label>
<div class="col-lg-4 subpipe-div">
</div>
</div>
</div>
<?php endif; ?>
</div>
<div class="form-group row">
<div class="col-lg-12" style="border-top: 1px dotted #a3a3a3;">
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="lenght">Länge (M) *</label>
<div class="col-lg-3">
<input required="required" type="text" id="lenght" name="lenght"
class="form-control"
value="<?= $fiberplancables->lenght ?>"/>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="state">Status *</label>
<div class="col-lg-6">
<select required="required" id="state" name="state"
class="select2select form-control">
<option value=""></option>
<option value="10" <?= ($fiberplancables->state == "10") ? "selected='selected'" : "" ?>>
Geplant
</option>
<option value="20" <?= ($fiberplancables->state == "20") ? "selected='selected'" : "" ?>>
Umsetzung
</option>
<option value="30" <?= ($fiberplancables->state == "30") ? "selected='selected'" : "" ?>>
Fertiggestellt
</option>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="responsible">Zuständig *</label>
<div class="col-lg-3">
<select required="required" id="responsible" name="responsible"
class="select2select form-control">
<option value=""></option>
<option value="1" <?= ($fiberplancables->responsible == "1") ? "selected='selected'" : "" ?>>
Leitungsbaufirma
</option>
<option value="2" <?= ($fiberplancables->responsible == "2") ? "selected='selected'" : "" ?>>
Person
</option>
</select>
</div>
</div>
<div class="form-group row" id="responsible-row"
style="<?= ($fiberplancables->responsible != "1") ? "display:none" : "" ?>">
<label class="col-lg-3 col-form-label" for="responsible">Firma</label>
<div id="responsible-div" class="col-lg-6"
style="<?= ($fiberplancables->responsible != "1") ? "display:none" : "" ?>">
<select id="address_id" name="address_id"
class="select2select form-control" <?= ($fiberplancables->responsible != "1") ? 'disabled="disabled"' : "" ?> >
<option value=""></option>
<?php foreach ($lineworkeraddresses as $lineworkeraddress): ?>
<option value="<?= $lineworkeraddress->id ?>" <?= ($fiberplancables->address_id == $lineworkeraddress->id) ? "selected='selected'" : "" ?>><?= $lineworkeraddress->company ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="responsible">Person</label>
<div id="responsible_text-div" class="col-lg-6">
<input id="responsible_text" name="responsible_text"
value="<?= $fiberplancables->responsible_text ?>"
placeholder="Ansprechsperson"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<label class="col-lg-3 col-form-label" for="comment">Kommentar</label>
<div class="col-lg-6">
<textarea id="comment" name="comment"
class="form-control"><?= $fiberplancables->comment ?></textarea>
</div>
</div>
</div>
<div class="col col-lg-6" id="fiberplancableendpoints">
<div id="destination-div"></div>
<h3 class="text-center">Verwendete Rohre/Endpunkte <span><i
class="fa-regular ml-2 fa-square-chevron-down change-fiberplanpipe-main"></i></span>
</h3>
<?php
$fiberPlanPipesEndpointcounter = 0;
foreach ($fiberPlanPipesEndpoints
as $fiberPlanPipesEndpoint):
$counter = 0;
?>
<?php foreach ($fiberPlanPipesEndpoint
as $fiberPlanPipesEndpointdetail):
$endpointbody = "";
if ($counter == 0):
if ($fiberPlanPipesEndpointcounter > 0) :
?>
</div>
</div>
<?php endif; ?>
<div class="fiberplanpipe-main-div">
<h4 class="text-center"><span
class="mr-1">Rohr:</span><span><?= $fiberPlanPipesEndpointdetail->fiberPlanPipe->description ?></span><span
class="fiberplanpipe-subpipe ml-2"></span><span><i
class="fa-regular ml-2 fa-square-chevron-down change-fiberplanpipe-body"></i></span>
</h4>
<?php
if ($fiberPlanPipesEndpointcounter > 0) :
?>
<?php endif; ?>
<div class="fiberplanpipe-body-div">
<?php
endif;
if ($fiberPlanPipesEndpointdetail->pop_id) {
$endpointname = '<img src="/img/markers/marker-pop.png" height="33px" class="mr-1">' . $fiberPlanPipesEndpointdetail->pop->name;
$endpointtype = '<span class="fiberplanpipe-pop-racks" data-popid="' . $fiberPlanPipesEndpointdetail->pop_id . '">(POP)</span><i class="fa-regular fa-circle-plus add-module" data-poprackid=""></i>';
if ($fiberPlanCableEndpoints[$fiberPlanPipesEndpointdetail->id]) {
$endpointcounter = 0;
foreach ($fiberPlanCableEndpoints[$fiberPlanPipesEndpointdetail->id] as $fiberPlanCableEndpoint):
$endpointbody .= '<div class="form-group module-row row">
<label class="col-lg-2 col-form-label" for="lenght"><i class="fa-regular fa-circle-minus remove-module"></i><i title="nach unten verschieben" class="fa-sharp fa-solid fa-down down-module"></i><i class="fa-sharp fa-solid fa-up up-module"></i></label>';
$endpointbody .= '<div class="col-lg-4">
<select data-poprackmodule_id="' . $fiberPlanCableEndpoint->poprackmodule_id . '" name="poprackmodule_id[]" required="required" class="select2select form-control poprackmodule_id"></select>
</div>
<div class="col-lg-4">
<div class="form-row">
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">von</div>
</div>
<input name="poprackmodule_start[]" value="' . $fiberPlanCableEndpoint->startport . '" type="number" class="form-control ports-start">
</div>
</div>
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">bis</div>
</div>
<input name="poprackmodule_end[]" value="' . $fiberPlanCableEndpoint->endport . '" type="number" class="form-control ports-end">
<input style="display:none" name="poprackmodule_rackid[]" value="' . $poprackid . '" type="number" class="form-control ports-rackid">
</div>
</div></div>
</div>
<div class="col-2"><label class="fibersum col-form-label"></label></div>
</div>';
$endpointcounter++;
endforeach;
}
} else if ($fiberPlanPipesEndpointdetail->fiberPlanDispatcher_id) {
$endpointname = $fiberPlanPipesEndpointdetail->fiberPlanDispatcher->description;
$endpointtype = $fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type;
if ($fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type == 1) {
$endpointtype = '<span class="fiberplanpipe-dispatcher-sleeves" data-id="' . $fiberPlanPipesEndpointdetail->fiberPlanDispatcher_id . '">(Verteiler)</span><i class="fa-regular fa-circle-plus add-sleeve" data-poprackid=""></i>';
$endpointname = '<img src="/img/markers/marker-dispatcher.png" height="33px" class="mr-1">' . $endpointname;
} else if ($fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type == 2) {
$endpointtype = '<span class="fiberplanpipe-dispatcher-sleeves" data-id="' . $fiberPlanPipesEndpointdetail->fiberPlanDispatcher_id . '">(Schacht)</span><i class="fa-regular fa-circle-plus add-sleeve" data-poprackid=""></i>';
$endpointname = '<img src="/img/markers/marker-dispatcher.png" height="33px" class="mr-1">' . $endpointname;
} else if ($fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type == 3) {
$endpointname = '<img src="/img/markers/marker-greenfield.png" height="33px" class="mr-1">' . $endpointname;
$endpointtype = "(Greenfield)";
}
if ($fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type == 1 || $fiberPlanPipesEndpointdetail->fiberPlanDispatcher->object_type == 2) {
if ($fiberPlanCableEndpoints[$fiberPlanPipesEndpointdetail->id]) {
foreach ($fiberPlanCableEndpoints[$fiberPlanPipesEndpointdetail->id] as $fiberPlanCableEndpoint):
if ($fiberPlanCableEndpoint->dropout == "1") {
$endpointbody .= '<div class="form-group row">
<div class="col-lg-12">
<h5 class="text-center"><span">Dropout</span></h5>
</div>
</div> ';
}
$endpointbody .= '<div class="form-group row">
<label class="col-lg-2 col-form-label" for="lenght"><span class="ml-2">Muffe</span></label>
<div class="col-lg-4">
<select name="sleeve_id[]" data-id="' . $fiberPlanCableEndpoint->fiberPlanDispatchersleeve_id . '" required="required" class="select2select form-control fiberplandispatcher_id sleeveid"></select>
</div>
<div class="col-lg-4">
<div class="form-row">
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">von</div>
</div>
<input name="sleeve_start[]" value="' . $fiberPlanCableEndpoint->startport . '" type="number" class="form-control ports-start">
</div>
</div>
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">bis</div>
</div>
<input name="sleeve_end[]" value="' . $fiberPlanCableEndpoint->endport . '" type="number" class="form-control ports-end">
</div>
</div></div>
</div>
<div class="col-2"><span class="fibersum"></span></div>
</div>';
endforeach;
}
}
} else if ($fiberPlanPipesEndpointdetail->building_id) {
$endpointname = '<img src="/img/markers/marker-home.png " height="32px" class="mr-1">' . $fiberPlanPipesEndpointdetail->building->street;
$endpointtype = '(Building)';
}
if ($fiberPlanCableEndpoints[$fiberPlanPipesEndpointdetail->id]) {
}
?>
<div class="fiberplancableendpoint-div">
<h5 class="text-center"><span><?= $endpointname ?></span><span
class="ml-1"><?= $endpointtype ?></span></h5>
<div><?= $endpointbody ?></div>
</div>
<?php
$counter++;
endforeach; ?>
<?php
$fiberPlanPipesEndpointcounter++;
endforeach; ?>
</div>
</div>
</div>
</div>
</div>
</div>
<div class=" form-group row
">
<label class="col-lg-1"></label>
<div class="col-lg-8">
<button type="submit" class="btn btn-primary">Speichern</button>
<a href="<?= $cancelUrl ?>">
<button type="button" class="btn btn-secondary">Abbrechen</button>
</a>
</div>
</div>
</form>
</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">Modal title</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-3 col-form-label" for="diameter">Schrank Name*</label>
<div class="col-lg-6">
<input required="required" type="text" id="rackname" name="rackname"
class="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-lg-1"></div>
<label class="col-lg-3 col-form-label" for="diameter">Höheneinheiten*</label>
<div class="col-lg-3">
<input required="required" type="number" id="rackhe" name="rackhe"
class="form-control"/>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Abbrechen</button>
<button type="button" class="btn btn-primary">Schrank hinzufügen</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var hidesearch = [1, 2, 3, 6];
let dispatchersleeve = "<?= self::getUrl("Timerecording", "save") ?>";
let deleteUrl = "<?= self::getUrl("Timerecording", "delete") ?>";
let dispatchersleeveUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'dispatchersleeve']) ?>";
let poprackUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'poprack']) ?>";
let poprackmoduleUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'poprackmodule']) ?>";
let poprackmoduleallUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'poprackmoduleall']) ?>";
let fiberPlanPipeUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'FiberPlanPipe']) ?>";
let fiberPlanPipeSubUrl = "<?= self::getUrl("FiberPlanCable", "api", ['do' => 'FiberPlanPipeSub']) ?>";
</script>
<script type="text/javascript"
src="<?= self::getResourcePath() ?>js/pages/FiberPlanCable/Form.js?<?= date('U') ?>"></script>
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>