From f2ac8e9d70142bff61bc8052922cb8c71b16adb1 Mon Sep 17 00:00:00 2001 From: Spitzer Daniel Date: Tue, 16 Apr 2024 16:42:27 +0200 Subject: [PATCH] =?UTF-8?q?Faserplanung=20=20*=20Sch=C3=A4chte/Verteiler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Layout/default/FiberPlanDispatcher/Form.php | 244 ++++++++++++++++++ Layout/default/FiberPlanDispatcher/Index.php | 122 +++++++++ .../FiberPlanDispatcher.php | 59 +++++ .../FiberPlanDispatcherController.php | 182 +++++++++++++ .../FiberPlanDispatcherModel.php | 137 ++++++++++ .../FiberPlanDispatchersleeve.php | 60 +++++ .../FiberPlanDispatchersleeveController.php | 127 +++++++++ .../FiberPlanDispatchersleeveModel.php | 153 +++++++++++ 8 files changed, 1084 insertions(+) create mode 100644 Layout/default/FiberPlanDispatcher/Form.php create mode 100644 Layout/default/FiberPlanDispatcher/Index.php create mode 100644 application/FiberPlanDispatcher/FiberPlanDispatcher.php create mode 100644 application/FiberPlanDispatcher/FiberPlanDispatcherController.php create mode 100644 application/FiberPlanDispatcher/FiberPlanDispatcherModel.php create mode 100644 application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeve.php create mode 100644 application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveController.php create mode 100644 application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveModel.php diff --git a/Layout/default/FiberPlanDispatcher/Form.php b/Layout/default/FiberPlanDispatcher/Form.php new file mode 100644 index 000000000..191924731 --- /dev/null +++ b/Layout/default/FiberPlanDispatcher/Form.php @@ -0,0 +1,244 @@ + + + +
+
+
+
+ +
+

id) ? "Verteiler/Schacht bearbeiten" : "Neuer Verteiler/Schacht" ?>

+
+
+
+ +permissions->isAdmin) { + foreach ($networkaddresses as $networkaddress) { + if ($me->address->id == $networkaddress->address_id) { + $allowedNetworks[$networkaddress->network_id] = "ok"; + } + } +} + +?> + +
+
+ +
+
+ +

id) ? "Verteiler/Schacht bearbeiten" : "Neuer Verteiler/Schacht" ?>

+
+
"> +
+
+
+
+ +
+ +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
object_type == 2) ? "" : 'style="display:none"' ?>> +
+

Muffe(n) +

+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ + +
+ +
+ + "> + + +
+
+
+ + + +
+
+ +
+
+ + + + \ No newline at end of file diff --git a/Layout/default/FiberPlanDispatcher/Index.php b/Layout/default/FiberPlanDispatcher/Index.php new file mode 100644 index 000000000..229917b9d --- /dev/null +++ b/Layout/default/FiberPlanDispatcher/Index.php @@ -0,0 +1,122 @@ + + + + + +
+
+
+
+ +
+

Verteiler und Schächte

+
+
+
+ + + +
+
+
+
+
+

Liste aller Verteiler und Schächte

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gps_lat) { + $mapslink = '' . rtrim($fiberplandispatcher->gps_lat, 0) . ' , ' . rtrim($fiberplandispatcher->gps_long, 0) . ''; + } else { + $mapslink = 'N/A'; + } + ?> + + + + + + + + + + + + + +
NetzgebietBeschreibungObjektartTypeKoordinatenKommentar
network->name ?>description ?>object_type] ?>type) ?>comment) ?> + $fiberplandispatcher->id]) ?>"> + $fiberplandispatcher->id]) ?>" + onclick="if(!confirm('Verteiler/Schacht wirklich löschen?')) return false;" + class="text-danger" + title="Löschen"> +
+ +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/application/FiberPlanDispatcher/FiberPlanDispatcher.php b/application/FiberPlanDispatcher/FiberPlanDispatcher.php new file mode 100644 index 000000000..2df4ff4b9 --- /dev/null +++ b/application/FiberPlanDispatcher/FiberPlanDispatcher.php @@ -0,0 +1,59 @@ +$name == null) { + + if (!$this->id) { + return null; + } + + if($name == "creator") { + $this->creator = mfValuecache::singleton()->get("Worker-id-".$this->create_by); + if($this->creator === null) { + $this->creator = new User($this->create_by); + if($this->creator->id) { + mfValuecache::singleton()->set("Worker-id-".$this->create_by, $this->creator); + } + } + return $this->creator; + } + + if($name == "editor") { + $this->editor = mfValuecache::singleton()->get("Worker-id-".$this->edit_by); + if($this->editor === null) { + $this->editor = new User($this->edit_by); + if($this->editor->id) { + mfValuecache::singleton()->set("Worker-id-".$this->edit_by, $this->editor); + } + } + return $this->editor; + } + + $classname = ucfirst($name); + $idfield = $name."_id"; + $this->$name = mfValuecache::singleton()->get("mfObjectmodel-$name-".$this->$idfield); + if(!$this->$name) { + $this->$name = new $classname($this->$idfield); + } + + if($this->$name->id) { + mfValuecache::singleton()->set("mfObjectmodel-$name-".$this->$name->id, $this->$name); + return $this->$name; + } else { + return null; + } + + } + + return $this->$name; + } + +} \ No newline at end of file diff --git a/application/FiberPlanDispatcher/FiberPlanDispatcherController.php b/application/FiberPlanDispatcher/FiberPlanDispatcherController.php new file mode 100644 index 000000000..acf22c583 --- /dev/null +++ b/application/FiberPlanDispatcher/FiberPlanDispatcherController.php @@ -0,0 +1,182 @@ +needlogin = true; + $me = new User(); + $me->loadMe(); + $this->me = $me; + $this->layout()->set("me", $me); + + if (!$me->is(["Admin"])) { + $this->redirect("Dashboard"); + } + } + + protected function indexAction() + { + + $this->layout()->setTemplate("FiberPlanDispatcher/Index"); + $fiberplandispatchers = FiberPlanDispatcherModel::getAll(); + $this->layout()->set("fiberplandispatchers", $fiberplandispatchers); + + } + + protected function addAction() + { + $this->layout()->setTemplate("FiberPlanDispatcher/Form"); + $networks = NetworkModel::getAll(); + $this->layout()->set("networks", $networks); + $networkaddresses = NetworkAddressModel::getAll(); + $this->layout()->set("networkaddresses", $networkaddresses); + + } + + protected function editAction() + { + $id = $this->request->id; + + if (!is_numeric($id) || !$id) { + $this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error"); + $this->redirect("FiberPlanDispatcher"); + } + + $fiberplandispatchers = new FiberPlanDispatcher($id); + if ($fiberplandispatchers->id != $id) { + $this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error"); + $this->redirect("FiberPlanDispatcher"); + } + + $this->layout()->set("fiberplandispatchers", $fiberplandispatchers); + if ($fiberplandispatchers->object_type == "2") { + $sleeves = FiberPlanDispatchersleeveModel::getAllbyDispatcher($id); + $this->layout()->set("sleeves", $sleeves); + } + + return $this->addAction(); + } + + protected function saveAction() + { + $r = $this->request; + $id = $r->id; + //var_dump($r->get());exit; + if (is_numeric($id) && $id > 0) { + $mode = "edit"; + $fiberplandispatcher = new FiberPlanDispatcher($id); + if (!$fiberplandispatcher->id) { + $this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error"); + $this->redirect("FiberPlanDispatcher"); + } + } else { + $mode = "add"; + } + + $data = []; + $data['network_id'] = trim($r->network_id); + $data['object_type'] = trim($r->object_type); + $data['description'] = trim($r->description); + if ($r->type) { + $data['type'] = trim($r->type); + } + if ($r->gps_lat) { + $data['gps_lat'] = trim($r->gps_lat); + } + if ($r->gps_long) { + $data['gps_long'] = trim($r->gps_long); + } + if ($r->comment) { + $data['comment'] = trim($r->comment); + } + + if (!$data['network_id']) { + $this->layout()->setFlash("Netzgebiet darf nicht leer sein", "error"); + $this->redirect("FiberPlanDispatcher"); + } + if (!$data['object_type']) { + $this->layout()->setFlash("Objekt Typ darf nicht leer sein", "error"); + $this->redirect("FiberPlanDispatcher"); + } + if (!$data['description']) { + $this->layout()->setFlash("Beschreibung darf nicht leer sein", "error"); + $this->redirect("FiberPlanDispatcher"); + } + +// var_dump($_FILES); +// var_dump($upload); +// exit; + + + if ($mode == "edit") { + $fiberplandispatcher->update($data); + + } else { + $fiberplandispatcher = FiberPlanDispatcherModel::create($data); + + } +// var_dump($filestore); +// exit; + $id = $fiberplandispatcher->save(); + if ($mode == "edit") { + if ($data['object_type'] == "2") { + FiberPlanDispatchersleeveModel::deletebyDispatcher($id); + $sleeves = $r->sleeves; + $sleevedata = []; + if (is_array($sleeves)) { + foreach ($sleeves as $sleeve) { + $sleevedata['name'] = trim($sleeve); + $sleevedata['fiberPlanDispatcher_id'] = $id; + $fiberplandispatchersleeve = FiberPlanDispatchersleeveModel::create($sleevedata); + $fiberplandispatchersleeve->save(); + } + } + + } + } else { + if ($data['object_type'] == "2") { + $sleeves = $r->sleeves; + $sleevedata = []; + + if (is_array($sleeves)) { + foreach ($sleeves as $sleeve) { + $sleevedata['name'] = trim($sleeve); + $sleevedata['fiberPlanDispatcher_id'] = $id; + $fiberplandispatchersleeve = FiberPlanDispatchersleeveModel::create($sleevedata); + $fiberplandispatchersleeve->save(); + } + } + + } + } + + if (!$id) { + $this->layout()->setFlash("Verteiler/Schacht konnte nicht angelegt werden", "error"); + $this->redirect("FiberPlanDispatcher"); + } + + if ($mode == "edit") { + $this->layout()->setFlash("Verteiler/Schacht erfolgreich geändert", "success"); + } else if ($mode = "add") { + $this->layout()->setFlash("Verteiler/Schacht erfolgreich angelegt", "success"); + } + $this->redirect("FiberPlanDispatcher"); + } + + + protected function deleteAction() + { + $id = $this->request->id; + $fiberplandispatcher = new FiberPlanDispatcher($id); + if (!$fiberplandispatcher->id || $fiberplandispatcher->id != $id) { + $this->layout()->setFlash("Verteiler/Schacht nicht gefunden.", "error"); + $this->redirect("FiberPlanDispatcher"); + } + + $fiberplandispatcher->delete(); + $this->redirect("FiberPlanDispatcher"); + } + +} \ No newline at end of file diff --git a/application/FiberPlanDispatcher/FiberPlanDispatcherModel.php b/application/FiberPlanDispatcher/FiberPlanDispatcherModel.php new file mode 100644 index 000000000..c3cef2a10 --- /dev/null +++ b/application/FiberPlanDispatcher/FiberPlanDispatcherModel.php @@ -0,0 +1,137 @@ + $value) { + if (property_exists(get_called_class(), $field)) { + if (substr($field, 0, 5) == "vlan_" && !$value) { + $model->$field = null; + continue; + } + $model->$field = $value; + } + } + + $me = mfValuecache::singleton()->get("me"); + if (!$me) { + $me = new User(); + $me->loadMe(); + mfValuecache::singleton()->set("me", $me); + } + + if ($model->create_by === null) { + $model->create_by = $me->id; + } + if ($model->edit_by === null) { + $model->edit_by = $me->id; + } + + return $model; + } + + public static function getOne($id) + { + if (!is_numeric($id) || !$id) { + throw new Exception("Invalid number", 400); + } + $item = []; + $db = FronkDB::singleton(); + + $res = $db->select("Devicetype", "*", "id=$id LIMIT 1"); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new Devicetype($data); + } + return $item; + } + + public static function getAll() + { + $items = []; + + $db = FronkDB::singleton(); + + $res = $db->select("FiberPlanDispatcher", "*", "1=1 ORDER BY network_id"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new FiberPlanDispatcher($data); + } + } + return $items; + + } + + public static function getFirst() + { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $res = $db->select("Devicetype", "*", "$where ORDER BY name, network_id"); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new Devicetype($data); + if ($item->id) { + return $item; + } else { + return null; + } + } + return null; + } + + public static function search($filter) + { + $items = []; + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $res = $db->select("Devicetype", "*", "$where ORDER BY name, network_id"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new Devicetype($data); + } + } + return $items; + } + + private static function getSqlFilter($filter) + { + $where = "1=1 "; + + //var_dump($filter);exit; + if (array_key_exists("network_id", $filter)) { + $networkid = $filter['network_id']; + if (is_numeric($networkid)) { + $where .= " AND network_id=$networkid"; + } + } + + //var_dump($filter, $where);exit; + return $where; + } + +} diff --git a/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeve.php b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeve.php new file mode 100644 index 000000000..e9cd1f7c4 --- /dev/null +++ b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeve.php @@ -0,0 +1,60 @@ +$name == null) { + + if (!$this->id) { + return null; + } + + if($name == "creator") { + $this->creator = mfValuecache::singleton()->get("Worker-id-".$this->create_by); + if($this->creator === null) { + $this->creator = new User($this->create_by); + if($this->creator->id) { + mfValuecache::singleton()->set("Worker-id-".$this->create_by, $this->creator); + } + } + return $this->creator; + } + + if($name == "editor") { + $this->editor = mfValuecache::singleton()->get("Worker-id-".$this->edit_by); + if($this->editor === null) { + $this->editor = new User($this->edit_by); + if($this->editor->id) { + mfValuecache::singleton()->set("Worker-id-".$this->edit_by, $this->editor); + } + } + return $this->editor; + } + + $classname = ucfirst($name); + $idfield = $name."_id"; + $this->$name = mfValuecache::singleton()->get("mfObjectmodel-$name-".$this->$idfield); + if(!$this->$name) { + $this->$name = new $classname($this->$idfield); + } + + if($this->$name->id) { + mfValuecache::singleton()->set("mfObjectmodel-$name-".$this->$name->id, $this->$name); + return $this->$name; + } else { + return null; + } + + } + + return $this->$name; + } + +} \ No newline at end of file diff --git a/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveController.php b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveController.php new file mode 100644 index 000000000..98e93e443 --- /dev/null +++ b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveController.php @@ -0,0 +1,127 @@ +needlogin = true; + $me = new User(); + $me->loadMe(); + $this->me = $me; + $this->layout()->set("me", $me); + + if (!$me->is(["Admin"])) { + $this->redirect("Dashboard"); + } + } + + protected function indexAction() + { + + $this->layout()->setTemplate("FiberPlanDispatchersleeve/Index"); + $fiberplandispatchersleeves = FiberPlanDispatchersleeveModel::getAll(); + $this->layout()->set("fiberplandispatchersleeves", $fiberplandispatchersleeves); + + } + + protected function addAction() + { + $fiberPlanDispatchers=FiberPlanDispatcherModel::getAll(); + $this->layout()->set("fiberPlanDispatchers", $fiberPlanDispatchers); + + $this->layout()->setTemplate("FiberPlanDispatchersleeve/Form"); + + } + + protected function editAction() + { + $id = $this->request->id; + + if (!is_numeric($id) || !$id) { + $this->layout()->setFlash("Muffen nicht gefunden", "error"); + $this->redirect("FiberPlanDispatchersleeve"); + } + + $fiberplandispatchersleeves = new FiberPlanDispatchersleeve($id); + if ($fiberplandispatchersleeves->id != $id) { + $this->layout()->setFlash("Muffen nicht gefunden", "error"); + $this->redirect("FiberPlanDispatchersleeve"); + } + + $this->layout()->set("fiberplandispatchersleeves", $fiberplandispatchersleeves); + return $this->addAction(); + } + + protected function saveAction() + { + $r = $this->request; + $id = $r->id; + //var_dump($r->get());exit; + if (is_numeric($id) && $id > 0) { + $mode = "edit"; + $fiberplandispatchersleeves = new FiberPlanDispatchersleeve($id); + if (!$fiberplandispatchersleeves->id) { + $this->layout()->setFlash("Muffe nicht gefunden", "error"); + $this->redirect("FiberPlanDispatchersleeve"); + } + } else { + $mode = "add"; + } + + $data = []; + $data['fiberPlanDispatcher_id'] = trim($r->fiberPlanDispatcher_id); + $data['name'] = trim($r->name); + + + if (!$data['fiberPlanDispatcher_id']) { + $data['fiberPlanDispatcher_id']=NULL; + } + if (!$data['name']) { + $data['name']=NULL; + } + + +// var_dump($_FILES); +// var_dump($upload); +// exit; + + + if ($mode == "edit") { + $fiberplandispatchersleeves->update($data); + + } else { + $fiberplandispatchersleeves = FiberPlanDispatchersleeveModel::create($data); + } +// var_dump($filestore); +// exit; + $id = $fiberplandispatchersleeves->save(); + + if (!$id) { + $this->layout()->setFlash("Muffen konnte nicht angelegt werden", "error"); + $this->redirect("FiberPlanDispatchersleeve"); + } + + if ($mode == "edit") { + $this->layout()->setFlash("Muffen erfolgreich geändert", "success"); + } else if ($mode = "add") { + $this->layout()->setFlash("Muffen erfolgreich angelegt", "success"); + } + $this->redirect("FiberPlanDispatchersleeve"); + } + + + protected function deleteAction() + { + $id = $this->request->id; + $fiberplandispatchersleeves = new FiberPlanDispatchersleeve($id); + if (!$fiberplandispatchersleeves->id || $fiberplandispatchersleeves->id != $id) { + $this->layout()->setFlash("Muffen nicht gefunden.", "error"); + $this->redirect("FiberPlanDispatchersleeve"); + } + + $fiberplandispatchersleeves->delete(); + $this->redirect("FiberPlanDispatchersleeve"); + } + +} diff --git a/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveModel.php b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveModel.php new file mode 100644 index 000000000..f24f5f701 --- /dev/null +++ b/application/FiberPlanDispatchersleeve/FiberPlanDispatchersleeveModel.php @@ -0,0 +1,153 @@ + $value) { + if (property_exists(get_called_class(), $field)) { + if (substr($field, 0, 5) == "vlan_" && !$value) { + $model->$field = null; + continue; + } + $model->$field = $value; + } + } + + $me = mfValuecache::singleton()->get("me"); + if (!$me) { + $me = new User(); + $me->loadMe(); + mfValuecache::singleton()->set("me", $me); + } + + if ($model->create_by === null) { + $model->create_by = $me->id; + } + if ($model->edit_by === null) { + $model->edit_by = $me->id; + } + + return $model; + } + + public static function getOne($id) + { + if (!is_numeric($id) || !$id) { + throw new Exception("Invalid number", 400); + } + $item = []; + $db = FronkDB::singleton(); + + $res = $db->select("FiberPlanDispatchersleeve", "*", "id=$id LIMIT 1"); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new FiberPlanDispatchersleeve($data); + } + return $item; + } + + public static function getAll() + { + $items = []; + + $db = FronkDB::singleton(); + + $res = $db->select("FiberPlanDispatchersleeve", "*", "1=1"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new FiberPlanDispatchersleeve($data); + } + } + return $items; + + } + + public static function getFirst() + { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $res = $db->select("FiberPlanDispatchersleeve", "*", "$where "); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new FiberPlanDispatchersleeve($data); + if ($item->id) { + return $item; + } else { + return null; + } + } + return null; + } + + public static function search($filter) + { + $items = []; + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $res = $db->select("FiberPlanDispatchersleeve", "*", "$where"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new FiberPlanDispatchersleeve($data); + } + } + return $items; + } + + private static function getSqlFilter($filter) + { + $where = "1=1 "; + + //var_dump($filter);exit; + if (array_key_exists("network_id", $filter)) { + $networkid = $filter['network_id']; + if (is_numeric($networkid)) { + $where .= " AND network_id=$networkid"; + } + } + + //var_dump($filter, $where);exit; + return $where; + } + + public static function getAllbyDispatcher($dispatcher_id) + { + $items = []; + + $db = FronkDB::singleton(); + $sql = "SELECT `id`, `fiberPlanDispatcher_id`, `name` FROM `FiberPlanDispatchersleeve` + WHERE `fiberPlanDispatcher_id`='" . $dispatcher_id . "'"; + + $res = $db->query($sql); + if ($db->num_rows($res)) { + $oldrackid = ""; + $counter = -1; + while ($data = $db->fetch_array($res)) { + $items[] = $data; + } + return $items; + } + } + + public static function deletebyDispatcher($dispatcher_id) + { + $db = FronkDB::singleton(); + $sql = "DELETE FROM `FiberPlanDispatchersleeve` WHERE `fiberPlanDispatcher_id`='" . $dispatcher_id . "'"; + $db->query($sql); + } + + +}