Files
thetool/application/Poprackmodule/PoprackmoduleController.php
Spitzer Daniel 02497d8e98 Mobile Integration,Pop Multiple Networks,DataTables responsible update,Migrations
Mobile Integration:
* in footer.php js eingefügt damit das mobile Menu funktioniert
* in menu.php bzw. app.css neue Klasse eingefügt mobile-hide um in der mobilen Version Menupünkte zu verstecken

Pop Multiple Networks
* Pops können nun mehrere Netzgebiete haben
* Netzgebiete und Pop ansicht angepasst
* (Script muss ausgeführt werden um die PopNetwork Table vom Bestand zu befüllen)

DataTables responsible update
* Datatables update und responsible addon
* Diverse Anpassungen für Responsible in:
  - Pops, Geräte Hersteller, Geräte Typen, Devices, Benutzer

Migrations
* PopNetwork
* Poprackmodulepatch
2024-01-01 14:16:31 +01:00

143 lines
4.3 KiB
PHP

<?php
class PoprackmoduleController extends mfBaseController
{
protected function apiAction()
{
$do = $this->request->do;
$data = [];
switch ($do) {
case "addModule":
$return = $this->addModule();
break;
case "removeModule":
$return = $this->removeModule();
break;
case "updateModule":
$return = $this->updateModule();
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);
}
private function addModule()
{
$ports = 0;
$r = $this->request;
$id = $r->id;
$data = [];
$data['poprack_id'] = $r->poprack_id;
$data['type'] = $r->type;
if ($data['type'] == 0) {
$data['ports'] = ($r->ports) ? $r->ports : null;
$ports = $data['ports'];
$data['plug'] = ($r->plug) ? $r->plug : null;
}
if ($data['type'] == 1) {
$data['device_id'] = ($r->device_id) ? $r->device_id : null;
}
$data['name'] = ($r->name) ? $r->name : null;
$data['start_he'] = $r->start_he;
$data['end_he'] = $r->end_he;
$data['width'] = $r->width;
$data['position'] = ($r->position) ? $r->position : null;
$poprackmodule = PoprackmoduleModel::create($data);
$new_id = $poprackmodule->save();
// var_dump($r);die();
if (!$new_id) {
$response['success'] = false;
} else {
$response['success'] = true;
if ($data['type'] == 0) {
unset($data);
$data = [];
$data['poprackmodule_id'] = $new_id;
for ($i = 1; $i <= $ports; $i++) {
$data['port'] = $i;
$poprackmodulepatch = PoprackmodulepatchModel::create($data);
$poprackmodulepatch->save();
}
}
}
echo json_encode($response);
exit;
}
private function updateModule()
{
$r = $this->request;
$id = $r->id;
if (is_numeric($id) && $id > 0) {
$poprackmodule = new Poprackmodule($id);
if (!$poprackmodule->id) {
$response['success'] = false;
echo json_encode($response);
exit;
die();
}
}
$data = [];
if ($r->type == 0) {
$data['ports'] = ($r->ports) ? $r->ports : null;
$data['plug'] = ($r->plug) ? $r->plug : null;
$poprackmodulepatchcounter = PoprackmodulepatchModel::countAllModule($id);
if ($poprackmodulepatchcounter > $data['ports']) {
for ($i = $poprackmodulepatchcounter; $i > $data['ports']; $i--) {
PoprackmodulepatchModel::deletebyPort($id, $i);
}
} else if ($poprackmodulepatchcounter < $data['ports']) {
$datapatchModel=[];
for ($i = $poprackmodulepatchcounter + 1; $i <= $data['ports']; $i++) {
$datapatchModel['poprackmodule_id'] = $id;
$datapatchModel['port'] = $i;
$poprackmodulepatch = PoprackmodulepatchModel::create($datapatchModel);
$poprackmodulepatch->save();
}
}
}
$data['name'] = ($r->name);
$poprackmodule->update($data);
$new_id = $poprackmodule->save();
if (!$new_id) {
$response['success'] = false;
} else {
$response['success'] = true;
}
echo json_encode($response);
exit;
}
private function removeModule()
{
$id = $this->request->id;
$poprackmodule = new Poprackmodule($id);
if (!$poprackmodule->id || $poprackmodule->id != $id) {
$response['success'] = false;
} else {
$poprackmodule->delete();
$response['success'] = true;
}
echo json_encode($response);
exit;
}
}