diff --git a/Layout/default/Device/Detail.php b/Layout/default/Device/Detail.php index 504c576f7..225265a3a 100644 --- a/Layout/default/Device/Detail.php +++ b/Layout/default/Device/Detail.php @@ -25,7 +25,8 @@ -

Device: data->name ?> +

Device: data->name ?> + $devices->id, 'returnto' => "device-detail"]) ?>"> diff --git a/Layout/default/Device/Form.php b/Layout/default/Device/Form.php index 1105f2099..91b3ddbba 100644 --- a/Layout/default/Device/Form.php +++ b/Layout/default/Device/Form.php @@ -1,10 +1,25 @@ id]=$devicetype->devicemanufactor->name . " " . $devicetype->name; + $deviceTypes[$devicetype->id] = $devicetype->devicemanufactor->name . " " . $devicetype->name; } asort($deviceTypes); +if ($device->price == "0.00") { + $price = ""; +} else { + $price = $device->price; +} +if ($device->power == "0.0") { + $power = ""; +} else { + $power = $device->power; +} +if (isset($_GET['returnto']) && $_GET['returnto'] == "device-detail") { + $cancelUrl = self::getUrl("Device", "Detail", ["id" => $device->id]); +} else { + $cancelUrl = self::getUrl("Device"); +} ?> diff --git a/application/Device/Device.php b/application/Device/Device.php index 43aa1e620..178f165fc 100644 --- a/application/Device/Device.php +++ b/application/Device/Device.php @@ -1,4 +1,5 @@ $name; } } \ No newline at end of file diff --git a/application/Device/DeviceController.php b/application/Device/DeviceController.php index 7e64ee1f9..37c9b49c6 100644 --- a/application/Device/DeviceController.php +++ b/application/Device/DeviceController.php @@ -1,6 +1,8 @@ needlogin = true; @@ -93,7 +95,7 @@ class DeviceController extends mfBaseController $data = []; $data['name'] = trim($r->name); $data['devicetype_id'] = $r->devicetype_id; - if (trim($r->pop_id)=="0") { + if (trim($r->pop_id) == "0") { $data['pop_id'] = NULL; } else { $data['pop_id'] = $r->pop_id; @@ -179,32 +181,6 @@ class DeviceController extends mfBaseController } $this->redirect($returnUrl, $returnAction, $returnVariables, $returnAnker); } - $returnUrl="Device"; - $returnAction = "Index"; - $returnVariables = array(); - $returnAnker = ""; - if ($this->request->returnto) { - - if (strpos($this->request->returnto, "-") !== false) { - $urls = explode('-', $this->request->returnto); - $urlCounter = 0; - $returnUrlGen = ""; - foreach ($urls as $url) { - if ($urlCounter > 0) { - $returnUrlGen .= "/"; - } - $returnUrlGen .= ucfirst($url); - $urlCounter++; - } - $returnAction = ""; - $returnVariables['id'] = $id; - $returnUrl = $returnUrlGen; - } else { - $returnUrl = ucfirst($this->request->returnto); - - } - } - if ($mode == "edit") { $this->layout()->setFlash("Device erfolgreich geƤndert", "success"); @@ -214,4 +190,62 @@ class DeviceController extends mfBaseController $this->redirect($returnUrl, $returnAction, $returnVariables, $returnAnker); } + protected function apiAction() + { + if (!$this->me->is(["Admin"])) { + $this->redirect("Dashboard"); + } + $do = $this->request->do; + $format = $this->request->format; + $filename = $this->request->filename; + $id = $this->request->id; + $ip = $this->request->ip; + + $data = []; + + switch ($do) { + case "getconfig": + $return = $this->getConfig($id, $format, $filename); + break; + case "createconfig": + $return = $this->createConfig($ip); + break; + default: + $return = false; + } + + } + + private function getConfig($id, $format, $filename) + { + $configDownload = DeviceModel::getconifgdownload($id, $format); +// + +// header('Content-Type: application/octet-stream'); + header('Content-Type: text/plain'); + header('Content-disposition: attachment; filename="' . $filename . '"'); + echo $configDownload; + + exit; + } + + private function createConfig($ip) + { + $r = $this->request; + $id = $r->id; + $createConfig = DeviceModel::configcreate($ip); + if ($createConfig->success==="true") + { + $this->layout()->setFlash("Backup wurde erfolgreich erstellt", "success"); + } + else + { + $this->layout()->setFlash("Backup konnte nicht erstellt werden. Fehler: ".$createConfig->error, "error"); + } + $returnUrl = "Device"; + $returnAction = "Detail"; + $returnVariables['id'] = $id; + return $this->redirect($returnUrl, $returnAction, $returnVariables, $returnAnker); + } + } \ No newline at end of file diff --git a/application/Device/DeviceModel.php b/application/Device/DeviceModel.php index 622d8e69b..b5df9bdcc 100644 --- a/application/Device/DeviceModel.php +++ b/application/Device/DeviceModel.php @@ -1,4 +1,5 @@ select("Device", "*", "$where ORDER BY name"); - if($db->num_rows($res)) { - while($data = $db->fetch_object($res)) { + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { $items[] = new Device($data); } } @@ -119,9 +121,9 @@ class DeviceModel $where = "1=1 "; //var_dump($filter);exit; - if(array_key_exists("pop_id", $filter)) { + if (array_key_exists("pop_id", $filter)) { $popid = $filter['pop_id']; - if(is_numeric($popid)) { + if (is_numeric($popid)) { $where .= " AND pop_id=$popid"; } } diff --git a/public/assets/css/datatables-std.css b/public/assets/css/datatables-std.css index 9aaeaf448..bf18a25ab 100644 --- a/public/assets/css/datatables-std.css +++ b/public/assets/css/datatables-std.css @@ -32,6 +32,10 @@ width: 50px; } +.edit-width-large { + width: 100px; +} + .order-date-pill { margin: 2px; white-space: nowrap;