diff --git a/Layout/default/Filestore/Form.php b/Layout/default/Filestore/Form.php
new file mode 100644
index 000000000..3293e4f32
--- /dev/null
+++ b/Layout/default/Filestore/Form.php
@@ -0,0 +1,247 @@
+
+
+
-
-
-
-
- - ">=MFAPPNAME_SLUG?>
- - ">Netzgebiete
- - POP
- - =($pop->id) ? "bearbeiten" : "Neu" ?>
-
-
-
=($pop->id) ? "POP bearbeiten" : "Neuer POP" ?>
+
+
+
+
= ($pop->id) ? "POP bearbeiten" : "Neuer POP" ?>
+
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/Layout/default/Pop/Index.php b/Layout/default/Pop/Index.php
new file mode 100644
index 000000000..22163042c
--- /dev/null
+++ b/Layout/default/Pop/Index.php
@@ -0,0 +1,249 @@
+getUrl($Mod, "Index");
+$pagination_baseurl_params = ["filter" => $filter];
+$pagination_entity_name = "Pops";
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Layout/default/menu.php b/Layout/default/menu.php
index 6ae37c0d9..cd8a3168d 100644
--- a/Layout/default/menu.php
+++ b/Layout/default/menu.php
@@ -35,6 +35,7 @@
"> Technologien
"> Benutzer
"> Netzgebiete
+
"> Pops
@@ -50,6 +51,7 @@
is(["Admin","netowner","pipeplanner","pipeworker","lineplanner","lineworker"])): ?>
"> Tiefbau
is(["Admin","netowner","lineplanner","lineworker"])): ?>
"> Leitungsbau
is(["Admin", "netowner", "netoperator", "lineworker"])): ?>
"> Patchungen
+ is(["Admin", "netowner","pipeplanner","lineplanner","pipeworker", "netoperator", "lineworker"])): ?>
"> Dateiablage
diff --git a/application/Filestore/Filestore.php b/application/Filestore/Filestore.php
new file mode 100644
index 000000000..2d794e1d6
--- /dev/null
+++ b/application/Filestore/Filestore.php
@@ -0,0 +1,46 @@
+$name == null) {
+
+ if(!$this->id) {
+ return null;
+ }
+
+ if($name == "creator") {
+ $this->creator = new User($this->create_by);
+ return $this->creator;
+ }
+
+ if($name == "editor") {
+ $this->editor = new User($this->edit_by);
+ return $this->editor;
+ }
+ if($name == "histories") {
+ $this->histories=FilestoreHistoryModel::search(["filestore_id="=>$this->id]);
+ return $this->histories;
+ }
+
+ $classname = ucfirst($name);
+ $idfield = $name."_id";
+ $this->$name = new $classname($this->$idfield);
+
+ if($this->$name->id) {
+ return $this->$name;
+ } else {
+ return null;
+ }
+ }
+
+ return $this->$name;
+ }
+
+
+}
\ No newline at end of file
diff --git a/application/Filestore/FilestoreController.php b/application/Filestore/FilestoreController.php
new file mode 100644
index 000000000..ba33a710f
--- /dev/null
+++ b/application/Filestore/FilestoreController.php
@@ -0,0 +1,197 @@
+needlogin = true;
+ $me = new User();
+ $me->loadMe();
+ $this->me = $me;
+ $this->layout()->set("me", $me);
+
+ if (!$me->is(["Admin", "netowner", "pipeplanner", "lineplanner", "pipeworker", "netoperator", "lineworker"])) {
+ $this->redirect("Dashboard");
+ }
+ }
+
+ protected function indexAction()
+ {
+ $this->layout()->setTemplate("Filestore/Index");
+ $files = FilestoreModel::getAll();
+
+
+
+ // pagination defaults
+ $pagination = [];
+ $pagination['start'] = 0;
+ $pagination['count'] = 25;
+ $pagination['maxItems'] = 0;
+ if(is_numeric($this->request->s)) {
+ $pagination['start'] = intval($this->request->s);
+ }
+ $pagination['maxItems'] = FilestoreModel::count();
+ $this->layout()->set("files", $files);
+ $this->layout()->set("pagination", $pagination);
+
+
+ }
+
+ protected function addAction()
+ {
+ $this->layout()->setTemplate("Filestore/Form");
+ }
+
+ protected function saveAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r->get());exit;
+ if (is_numeric($id) && $id > 0) {
+ $mode = "edit";
+ $filestore = new Filestore($id);
+ if (!$filestore->id) {
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+ }
+
+ $dataHistory = [];
+ $dataHistory['name'] = $filestore->name;
+ $dataHistory['description'] = $filestore->description;
+ $dataHistory['file_id'] = $filestore->file_id;
+ $dataHistory['filestore_id'] = $filestore->id;
+ $dataHistory['create'] = $filestore->create;
+ $dataHistory['create_by'] = $filestore->create_by;
+ $dataHistory['edit'] = date("U");
+ } else {
+ $mode = "add";
+ }
+
+ $data = [];
+ $data['name'] = trim($r->name);
+ $data['description'] = trim($r->description);
+
+ if (!$data['name']) {
+ $this->layout()->setFlash("Name darf nicht leer sein", "error");
+ $this->redirect("Filestore");
+ }
+
+ if (array_key_exists("filestore", $_FILES) && !$_FILES['filestore']['error']) {
+ $upload_error = false;
+
+ //var_dump($_FILES);exit;
+ $upload = new mfUpload("filestore");
+ $upload->setSavepath(MFUPLOAD_FILE_SAVE_PATH . "/netzbetrieb");
+
+ if (!$upload->getSize()) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen: Dokument darf nicht leer sein!", "error");
+ $this->redirect("Filestore");
+ }
+ if (substr(strtolower($upload->getFilename()), -3, 3) == "pdf" && !$upload->validatePDF()) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen: PDF-Validierung fehlgeschlagen!", "error");
+ $this->redirect("Filestore");
+ }
+ try {
+ $upload->save();
+ } catch (Exception $e) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen1", "error");
+ $this->redirect("Filestore");
+ }
+ $file_data = [];
+ $file_data['name'] = $upload->getOriginalFilename();
+ $file_data['filename'] = ($r->file_filename) ? $r->file_filename : $upload->getOriginalFilename();
+ $file_data['subfolder'] = "netzbetrieb";
+ $file_data['store_filename'] = $upload->getFilename();
+ $file_data['orig_filename'] = $upload->getOriginalFilename();
+
+
+ $file = FileModel::create($file_data);
+ $file_id = $file->save();
+ if (!$file_id) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen3", "error");
+ $this->redirect("Filestore");
+ }
+ $data['file_id'] = $file_id;
+
+ if ($mode == "edit") {
+
+ $fsh = FilestoreHistoryModel::create($dataHistory);
+ }
+ } else {
+ if ($mode == "add") {
+ $this->layout()->setFlash("Keine Datei angegeben", "error");
+ $this->redirect("Filestore", "add");
+ }
+
+ }
+
+// var_dump($_FILES);
+// var_dump($upload);
+// exit;
+
+
+ if ($mode == "edit") {
+ $filestore->update($data);
+
+ } else {
+ $filestore = FilestoreModel::create($data);
+ }
+// var_dump($filestore);
+// exit;
+ $id = $filestore->save();
+
+ if (!$id) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen33", "error");
+ $this->redirect("Filestore");
+ }
+ if ($fsh) {
+ $fsh->save();
+ }
+ $this->layout()->setFlash("Dateiupload erfolgreich hochgeladen", "success");
+ $this->redirect("Filestore");
+ }
+
+ protected function editAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r->get());exit;
+ if (!is_numeric($id) && $id < 1) {
+
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+
+ }
+ $filestore = new Filestore($id);
+
+ if (!$filestore->id) {
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+ }
+ $this->layout()->set("file", $filestore);
+
+ return $this->addAction();
+ }
+
+ protected function deleteAction()
+ {
+ $id = $this->request->id;
+
+
+ $filstore = new Filestore($id);
+
+ if (!$filstore->id || $filstore->id != $id) {
+ $this->layout()->setFlash("Datei nicht gefunden.", "error");
+ $this->redirect("Filestore");
+ }
+ foreach ($filstore->histories as $h) {
+ $h->file->delete();
+ $h->delete();
+
+ }
+ $filstore->file->delete();
+ // check if Product is unused
+ $filstore->delete();
+ $this->redirect("Filestore");
+ }
+}
\ No newline at end of file
diff --git a/application/Filestore/FilestoreModel.php b/application/Filestore/FilestoreModel.php
new file mode 100644
index 000000000..f11111366
--- /dev/null
+++ b/application/Filestore/FilestoreModel.php
@@ -0,0 +1,168 @@
+ $value) {
+ if (property_exists(get_called_class(), $field)) {
+ $model->$field = $value;
+ }
+ }
+
+ $me = new User();
+ $me->loadMe();
+
+ 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("Filestore", "*", "id=$id LIMIT 1");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new Filestore($data);
+ }
+ return $item;
+ }
+
+ public static function getAll()
+ {
+ $items = [];
+
+ $db = FronkDB::singleton();
+ $sql = "SELECT Filestore.* FROM Filestore
+ LEFT JOIN File ON (Filestore.file_id = File.id)
+ ORDER BY name";
+ $res = $db->query($sql);
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new Filestore($data);
+ }
+ }
+ return $items;
+
+ }
+
+ public static function getFirst()
+ {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $res = $db->select("Filestore", "*", "$where ORDER BY name, filename");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new Filestore($data);
+ if ($item->id) {
+ return $item;
+ } else {
+ return null;
+ }
+ }
+ return null;
+ }
+ public static function count() {
+ $db = FronkDB::singleton();
+
+
+ $sql = "
+ SELECT count(Filestore.id) as cnt
+ FROM Filestore
+ ";
+ //mfLoghandler::singleton()->debug($sql);
+
+ $res = $db->query($sql);
+ if($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ return $data->cnt;
+ }
+ return 0;
+ }
+
+ public static function search($filter)
+ {
+ $items = [];
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+
+ $sql = "SELECT Filestore.* FROM Filestore
+ LEFT JOIN File ON (Filestore.file_id = File.id)
+ WHERE $where
+ ORDER BY name";
+
+ $res = $db->query($sql);
+
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new Filestore($data);
+ }
+ }
+ return $items;
+ }
+
+ private static function getSqlFilter($filter)
+ {
+ $where = "1=1 ";
+
+
+ if (array_key_exists("file_id", $filter)) {
+ $file_id = $filter['file_id'];
+ if (is_numeric($file_id)) {
+ $where .= " AND file_id=$file_id";
+ }
+ }
+
+ //var_dump($filter);exit;
+ if (array_key_exists("name", $filter)) {
+ $name = FronkDB::singleton()->escape($filter['name']);
+ if ($name) {
+ $where .= " AND name='$name'";
+ }
+ }
+
+ if (array_key_exists("filename", $filter)) {
+ $filename = FronkDB::singleton()->escape($filter['filename']);
+ if ($filename) {
+ $where .= " AND File.filename='$filename'";
+ }
+ }
+
+ if (array_key_exists("subfolder", $filter)) {
+ $subfolder = FronkDB::singleton()->escape($filter['subfolder']);
+ if ($subfolder) {
+ $where .= " AND File.subfolder='$subfolder'";
+ }
+ }
+
+ //var_dump($filter, $where);exit;
+ return $where;
+ }
+
+}
\ No newline at end of file
diff --git a/application/FilestoreHistory/FilestoreHistory.php b/application/FilestoreHistory/FilestoreHistory.php
new file mode 100644
index 000000000..bd480e956
--- /dev/null
+++ b/application/FilestoreHistory/FilestoreHistory.php
@@ -0,0 +1,41 @@
+$name == null) {
+
+ if(!$this->id) {
+ return null;
+ }
+
+ if($name == "creator") {
+ $this->creator = new User($this->create_by);
+ return $this->creator;
+ }
+
+ if($name == "editor") {
+ $this->editor = new User($this->edit_by);
+ return $this->editor;
+ }
+
+ $classname = ucfirst($name);
+ $idfield = $name."_id";
+ $this->$name = new $classname($this->$idfield);
+
+ if($this->$name->id) {
+ return $this->$name;
+ } else {
+ return null;
+ }
+ }
+
+ return $this->$name;
+ }
+
+
+}
\ No newline at end of file
diff --git a/application/FilestoreHistory/FilestoreHistoryController.php b/application/FilestoreHistory/FilestoreHistoryController.php
new file mode 100644
index 000000000..7b0301c4d
--- /dev/null
+++ b/application/FilestoreHistory/FilestoreHistoryController.php
@@ -0,0 +1,151 @@
+needlogin = true;
+ $me = new User();
+ $me->loadMe();
+ $this->me = $me;
+ $this->layout()->set("me", $me);
+
+ if (!$me->is(["Admin", "netowner", "pipeplanner", "lineplanner", "pipeworker", "netoperator", "lineworker"])) {
+ $this->redirect("Dashboard");
+ }
+ }
+
+ protected function indexAction()
+ {
+ $this->layout()->setTemplate("Filestore/Index");
+ $files = FilestoreModel::getAll();
+ $this->layout()->set("files", $files);
+ }
+
+ protected function addAction()
+ {
+ $this->layout()->setTemplate("Filestore/Form");
+ }
+
+ protected function saveAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r->get());exit;
+ if (is_numeric($id) && $id > 0) {
+ $mode = "edit";
+ $filestore = new Filestore($id);
+ if (!$filestore->id) {
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+ }
+
+ $dataHistory = [];
+ $dataHistory['name'] = $filestore->name;
+ $dataHistory['description'] = $filestore->description;
+ $dataHistory['file_id'] = $filestore->file_id;
+ $dataHistory['create'] = $filestore->create;
+ $dataHistory['create_by'] = $filestore->create_by;
+ $dataHistory['edit'] = date("U");
+ } else {
+ $mode = "add";
+ }
+
+ $data = [];
+ $data['name'] = trim($r->name);
+ $data['description'] = trim($r->description);
+
+ if (!$data['name']) {
+ $this->layout()->setFlash("Name darf nicht leer sein", "error");
+ $this->redirect("Filestore");
+ }
+
+ if (array_key_exists("filestore", $_FILES) && !$_FILES['filestore']['error']) {
+ $upload_error = false;
+
+ //var_dump($_FILES);exit;
+ $upload = new mfUpload("filestore");
+ $upload->setSavepath(MFUPLOAD_FILE_SAVE_PATH . "/netzbetrieb");
+
+ if (!$upload->getSize()) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen: Dokument darf nicht leer sein!", "error");
+ $this->redirect("Filestore");
+ }
+ if (substr(strtolower($upload->getFilename()), -3, 3) == "pdf" && !$upload->validatePDF()) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen: PDF-Validierung fehlgeschlagen!", "error");
+ $this->redirect("Filestore");
+ }
+ try {
+ $upload->save();
+ } catch (Exception $e) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen", "error");
+ $this->redirect("Filestore");
+ }
+ $file_data = [];
+ $file_data['name'] = $upload->getOriginalFilename();
+ $file_data['filename'] = ($r->file_filename) ? $r->file_filename : $upload->getOriginalFilename();
+ $file_data['subfolder'] = "netzbetrieb";
+ $file_data['store_filename'] = $upload->getFilename();
+ $file_data['orig_filename'] = $upload->getOriginalFilename();
+
+
+ $file = FileModel::create($file_data);
+ $file_id = $file->save();
+ if (!$file_id) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen", "error");
+ $this->redirect("Filestore");
+ }
+ $data['file_id'] = $file_id;
+ $filestore = FilestoreHistoryModel::create($dataHistory);
+ } else {
+ if ($mode == "add") {
+ $this->layout()->setFlash("Keine Datei angegeben", "error");
+ $this->redirect("Filestore", "add");
+ }
+
+ }
+
+// var_dump($_FILES);
+// var_dump($upload);
+// exit;
+
+
+ if ($mode == "edit") {
+ $filestore->update($data);
+
+ } else {
+ $filestore = FilestoreModel::create($data);
+ }
+ $id = $filestore->save();
+
+ if (!$id) {
+ $this->layout()->setFlash("Dateiupload fehlgeschlagen", "error");
+ $this->redirect("Filestore");
+ }
+ $this->layout()->setFlash("Dateiupload erfolgreich hochgeladen", "success");
+ $this->redirect("Filestore");
+ }
+
+ protected function editAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r->get());exit;
+ if (!is_numeric($id) && $id < 1) {
+
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+
+ }
+ $filestore = new Filestore($id);
+
+ if (!$filestore->id) {
+ $this->layout()->setFlash("Datei nicht gefunden", "error");
+ $this->redirect("Filestore");
+ }
+ $this->layout()->set("file", $filestore);
+
+ return $this->addAction();
+ }
+
+}
\ No newline at end of file
diff --git a/application/FilestoreHistory/FilestoreHistoryModel.php b/application/FilestoreHistory/FilestoreHistoryModel.php
new file mode 100644
index 000000000..3faae0e21
--- /dev/null
+++ b/application/FilestoreHistory/FilestoreHistoryModel.php
@@ -0,0 +1,157 @@
+ $value) {
+ if (property_exists(get_called_class(), $field)) {
+ $model->$field = $value;
+ }
+ }
+
+ $me = new User();
+ $me->loadMe();
+
+ 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("FilestoreHistory", "*", "id=$id LIMIT 1");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new FilestoreHistory($data);
+ }
+ return $item;
+ }
+
+ public static function getAll()
+ {
+ $items = [];
+
+ $db = FronkDB::singleton();
+ $sql = "SELECT FilestoreHistory.* FROM FilestoreHistory
+ LEFT JOIN File ON (FilestoreHistory.file_id = File.id)
+ ORDER BY name";
+ $res = $db->query($sql);
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new FilestoreHistory($data);
+ }
+ }
+ return $items;
+
+ }
+
+ public static function getFirst()
+ {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $res = $db->select("FilestoreHistory", "*", "$where ORDER BY name, filename");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new FilestoreHistory($data);
+ if ($item->id) {
+ return $item;
+ } else {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public static function search($filter)
+ {
+ $items = [];
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+
+ $sql = "SELECT FilestoreHistory.* FROM FilestoreHistory
+ LEFT JOIN File ON (FilestoreHistory.file_id = File.id)
+ WHERE $where
+ ORDER BY name";
+
+ $res = $db->query($sql);
+
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new FilestoreHistory($data);
+ }
+ }
+ return $items;
+ }
+
+ private static function getSqlFilter($filter)
+ {
+ $where = "1=1 ";
+
+
+ if (array_key_exists("file_id", $filter)) {
+ $file_id = $filter['file_id'];
+ if (is_numeric($file_id)) {
+ $where .= " AND file_id=$file_id";
+ }
+ }
+ if (array_key_exists("filestore_id", $filter)) {
+ $filestore_id = $filter['filestore_id'];
+ if (is_numeric($filestore_id)) {
+ $where .= " AND filestore_id=$filestore_id";
+ }
+ }
+
+ //var_dump($filter);exit;
+ if (array_key_exists("name", $filter)) {
+ $name = FronkDB::singleton()->escape($filter['name']);
+ if ($name) {
+ $where .= " AND name='$name'";
+ }
+ }
+
+ if (array_key_exists("filename", $filter)) {
+ $filename = FronkDB::singleton()->escape($filter['filename']);
+ if ($filename) {
+ $where .= " AND File.filename='$filename'";
+ }
+ }
+
+ if (array_key_exists("subfolder", $filter)) {
+ $subfolder = FronkDB::singleton()->escape($filter['subfolder']);
+ if ($subfolder) {
+ $where .= " AND File.subfolder='$subfolder'";
+ }
+ }
+
+ //var_dump($filter, $where);exit;
+ return $where;
+ }
+
+}
\ No newline at end of file
diff --git a/application/Pop/PopController.php b/application/Pop/PopController.php
index fa014c605..b320e724d 100644
--- a/application/Pop/PopController.php
+++ b/application/Pop/PopController.php
@@ -1,144 +1,179 @@
needlogin=true;
- $me = new User();
- $me->loadMe();
- $this->me = $me;
- $this->layout()->set("me",$me);
-
- if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
- $this->redirect("Dashboard");
- }
- }
+class PopController extends mfBaseController
+{
+ private $returUrl = "Network";
- protected function indexAction() {
-
- }
-
- protected function addAction() {
- $this->layout()->setTemplate("Pop/Form");
- $this->layout()->set("networks", NetworkModel::getAll());
- if($this->request->network_id) {
- $pop = new Pop();
- $pop->network_id = $this->request->network_id;
- $this->layout()->set("pop", $pop);
+ protected function init()
+ {
+ $this->needlogin = true;
+ $me = new User();
+ $me->loadMe();
+ $this->me = $me;
+ $this->layout()->set("me", $me);
+
+ if (!$me->is(["Admin", "netowner", "pipeplanner"])) {
+ $this->redirect("Dashboard");
+ }
}
- }
-
- protected function editAction() {
- $id = $this->request->id;
- if(!is_numeric($id) || !$id) {
- $this->layout()->setFlash("POP nicht gefunden", "error");
- $this->redirect("Network");
+
+ protected function indexAction()
+ {
+
+ $this->layout()->setTemplate("Pop/Index");
+ $pops = PopModel::getAll();
+ $this->layout()->set("pops", $pops);
+
}
-
- $pop = new Pop($id);
- if($pop->id != $id) {
- $this->layout()->setFlash("POP nicht gefunden", "error");
- $this->redirect("Network");
+
+ protected function addAction()
+ {
+ $this->layout()->setTemplate("Pop/Form");
+ $this->layout()->set("networks", NetworkModel::getAll());
+ if ($this->request->network_id) {
+ $pop = new Pop();
+ $pop->network_id = $this->request->network_id;
+ $this->layout()->set("pop", $pop);
+ }
}
-
- $this->layout()->set("pop", $pop);
- return $this->addAction();
- }
-
- protected function saveAction() {
- $r = $this->request;
- $id = $r->id;
- //var_dump($r);exit;
- if(is_numeric($id) && $id > 0) {
- $mode = "edit";
- $pop = new Pop($id);
- if(!$pop->id) {
- $this->layout()->setFlash("POP nicht gefunden", "error");
- $this->redirect("Network");
- }
- } else {
- $mode = "add";
+
+ protected function editAction()
+ {
+ $id = $this->request->id;
+
+ if (!is_numeric($id) || !$id) {
+ $this->layout()->setFlash("POP nicht gefunden", "error");
+ $this->redirect("Network");
+ }
+
+ $pop = new Pop($id);
+ if ($pop->id != $id) {
+ $this->layout()->setFlash("POP nicht gefunden", "error");
+ $this->redirect("Network");
+ }
+
+ $this->layout()->set("pop", $pop);
+ return $this->addAction();
}
-
- //var_dump($r->addresstypes);exit;
-
- if(!$r->network_id || !$r->name) {
- $this->layout()->setFlash("Bitte Name und Netzgebiet eintragen", "error");
- $this->layout()->set("pop", $pop);
- unset($r->network_id);
- return $this->add();
+
+ protected function saveAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r);exit;
+ if (is_numeric($id) && $id > 0) {
+ $mode = "edit";
+ $pop = new Pop($id);
+ if (!$pop->id) {
+ $this->layout()->setFlash("POP nicht gefunden", "error");
+ $this->redirect("Network");
+ }
+ } else {
+ $mode = "add";
+ }
+
+ //var_dump($r->addresstypes);exit;
+ $this->log->debug(print_r($r, true));
+ if (!$r->network_id || !$r->name) {
+ $this->layout()->setFlash("Bitte Name und Netzgebiet eintragen", "error");
+ $this->layout()->set("pop", $pop);
+ unset($r->network_id);
+ return $this->add();
+ }
+
+ $data = [];
+ $data['network_id'] = $r->network_id;
+ $data['name'] = $r->name;
+ $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['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;
+ $data['note'] = $r->note;
+
+ $data['edit_by'] = 1;
+
+ if ($mode == "add") {
+ $data['create_by'] = 1;
+ $pop = PopModel::create($data);
+ } else {
+ $pop->update($data);
+ }
+
+
+ $new_id = $pop->save();
+ if (!$new_id) {
+ $this->layout()->setFlash("Fehler beim Speichern", "error");
+ $this->layout()->set("network", $network);
+ return $this->addAction();
+ }
+ if ($this->request->returnto) {
+ $this->returUrl = ucfirst($this->request->returnto);
+ }
+
+ $this->layout()->setFlash("Netzgebiet erfolgreich gespeichert.", "success");
+ $this->redirect($this->returUrl, "Index", [], "view=pops&net=" . $pop->network_id);
+
+
}
-
- $data = [];
- $data['network_id'] = $r->network_id;
- $data['name'] = $r->name;
- $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['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;
- $data['note'] = $r->note;
-
- $data['edit_by'] = 1;
-
- if($mode == "add") {
- $data['create_by'] = 1;
- $pop = PopModel::create($data);
- } else {
- $pop->update($data);
+
+ protected function apiAction()
+ {
+ $do = $this->request->do;
+ $data = [];
+
+ switch ($do) {
+ case "getPops":
+ $return = $this->getPopsApi();
+ break;
+ default:
+ $return = false;
+ }
+
+ if (!is_array($return) || !count($return)) {
+ $data = ["status" => "error"];
+ $this->returnJson($data);
+ }
+ $data['status'] = "OK";
+ $data['result'] = $return;
+ $this->returnJson($data);
}
-
- //var_dump($address);exit;
-
- $new_id = $pop->save();
- if(!$new_id) {
- $this->layout()->setFlash("Fehler beim Speichern", "error");
- $this->layout()->set("network", $network);
- return $this->addAction();
+
+ private function getPopsApi()
+ {
+ $network_id = $this->request->network_id;
+ if (!is_numeric($network_id) || $network_id < 1) {
+ return false;
+ }
+
+ $network = new Network($network_id);
+ if (!$network->id) {
+ return false;
+ }
+
+ $pops = [];
+ foreach ($network->pops as $pop) {
+ $pops[$pop->id] = $pop->name;
+ }
+
+ return ["pops" => $pops];
}
-
- $this->layout()->setFlash("Netzgebiet erfolgreich gespeichert.", "success");
- $this->redirect("Network", "Index", [], "view=pops&net=".$pop->network_id);
- }
-
- protected function apiAction() {
- $do = $this->request->do;
- $data = [];
-
- switch($do) {
- case "getPops":
- $return = $this->getPopsApi();
- break;
- default:
- $return = false;
+
+
+ protected function deleteAction()
+ {
+ $id = $this->request->id;
+
+
+ $pop = new Pop($id);
+
+ if (!$pop->id || $pop->id != $id) {
+ $this->layout()->setFlash("Datei nicht gefunden.", "error");
+ $this->redirect("Pop");
+ }
+
+ $pop->delete();
+ $this->redirect("Pop");
}
-
- if(!is_array($return) || !count($return)) {
- $data = ["status" => "error"];
- $this->returnJson($data);
- }
- $data['status'] = "OK";
- $data['result'] = $return;
- $this->returnJson($data);
- }
-
- private function getPopsApi() {
- $network_id = $this->request->network_id;
- if(!is_numeric($network_id) || $network_id < 1) {
- return false;
- }
-
- $network = new Network($network_id);
- if(!$network->id) {
- return false;
- }
-
- $pops = [];
- foreach($network->pops as $pop) {
- $pops[$pop->id] = $pop->name;
- }
-
- return ["pops" => $pops];
- }
}
\ No newline at end of file