148 lines
4.4 KiB
PHP
148 lines
4.4 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();
|
|
}
|
|
|
|
}
|
|
} else {
|
|
$data['ports'] = null;
|
|
$data['plug'] = null;
|
|
}
|
|
if (is_numeric($r->type)) {
|
|
$data['type'] = $r->type;
|
|
}
|
|
$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;
|
|
|
|
}
|
|
|
|
|
|
} |