request->do;
$data = [];
switch ($do) {
case "addRack":
$return = $this->addRack();
break;
case "editRack":
$return = $this->editRack();
break;
case "removeRack":
$return = $this->removeRack();
break;
case "sortRack":
$return = $this->sortRack();
break;
case "generateRack";
$return = $this->generateRack();
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 addRack()
{
$r = $this->request;
$pop_id = $r->pop_id;
$data = [];
$data['name'] = trim($r->name);
$data['he'] = trim($r->he);
$data['pop_id'] = trim($pop_id);
$poprack = PoprackModel::create($data);
$new_id = $poprack->save();
// var_dump($r);die();
if (!$new_id) {
$response['success'] = false;
} else {
$response['success'] = true;
}
echo json_encode($response);
exit;
}
private function editRack()
{
$r = $this->request;
$id = $r->poprack_id;
$poprack = new Poprack($id);
$response['success'] = false;
if ($poprack->id) {
$data = [];
$data['name'] = $r->name;
$data['he'] = $r->he;
$poprack->update($data);
if ($poprack->save()) {
$response['success'] = true;
}
}
echo json_encode($response);
exit;
}
private function sortRack()
{
$r = $this->request;
$racksortids = $r->racksortids;
// var_dump($racksortids);
// die();
foreach ($racksortids as $sort => $id) {
$poprack = new Poprack($id);
$response['success'] = false;
if ($poprack->id) {
$data = [];
$data['sort'] = $sort;
$poprack->update($data);
if ($poprack->save()) {
$response['success'] = true;
}
}
}
echo json_encode($response);
exit;
}
private function removeRack()
{
$id = $this->request->id;
$poprack = new Poprack($id);
if (!$poprack->id || $poprack->id != $id) {
$response['success'] = false;
} else {
$poprack->delete();
$response['success'] = true;
}
echo json_encode($response);
exit;
}
private function generateRack()
{
$id = $this->request->id;
$side=$this->request->side;
$cellwidth = 227;
$blocktd = 0;
$poprack = PoprackModel::getAllbyRack($id);
$plugs[1] = "LC";
$plugs[2] = "SC";
$plugs[3] = "E2000";
for ($i = 1; $i <= $poprack[0]['rack']['he']; $i++) :
echo '
| He' . $i . ' | ';
foreach ($poprack[0][$side]['modules'] as $module) {
if ($module['start_he'] == $i) {
$modulestart = 1;
$modulelenght = $module['end_he'] - $module['start_he'] + 1;
$position = 1;
$slotcounter = 0;
$calcwidth = 0;
$extText = "";
$extTextspan="";
foreach ($module['slots'] as $slots) {
$extText = "";
$title=$slots['modulname'];
if ($slots['type'] == '0') {
$color = '#9fff6e';
$colorclass = "rack-color-lwl";
if ($slots['plug']) {
$extText = " (" . $plugs[$slots['plug']] . "/" . $slots['ports'] . "P)";
$extTextspan = "".$extText."";
}
} else if ($slots['type'] == '1') {
$slots['modulname']=' $slots['device_id']]).'">'.$slots['modulname'].'';
$color = '#b6c6ff';
$colorclass = "rack-color-device";
} else if ($slots['type'] == '2') {
$color = '#ff8100';
$colorclass = "rack-color-rpanel";
} else if ($slots['type'] == '3') {
$color = '#ffad59';
$colorclass = "rack-color-infra";
} else if ($slots['type'] == '4') {
$color = '#96f3de';
$colorclass = "rack-color-panel";
} else if ($slots['type'] == '5') {
$color = '#96f3de';
$colorclass = "rack-color-blocked";
}
if ($slots['width'] == "12") {
$width = "85%";
$maxwidth = $cellwidth;
} else if ($slots['width'] == "6") {
$width = "42%";
$maxwidth = intval($cellwidth / 2);
} else if ($slots['width'] == "4") {
$width = "28%";
$maxwidth = intval($cellwidth / 3);
} else if ($slots['width'] == "3") {
$width = "21%";
$maxwidth = intval($cellwidth / 4);
}
if ($slots['width'] < 12 && $position != $slots['position']) {
echo 'frei | ';
$position++;
$calcwidth = $calcwidth + $slots['width'];
}
if ($slots['width'] < 12 && $position != $slots['position']) {
echo 'frei | ';
$position++;
$calcwidth = $calcwidth + $slots['width'];
}
if ($slots['width'] < 12 && $position != $slots['position']) {
echo 'frei | ';
$position++;
$calcwidth = $calcwidth + $slots['width'];
}
echo ' ' . $slots['modulname'] . $extTextspan . ' | ';
$position++;
$calcwidth = $calcwidth + $slots['width'];
}
if ($calcwidth != 12) {
echo 'frei | ';
$calcwidth = $calcwidth + $slots['width'];
}
if ($calcwidth != 12) {
echo 'frei | ';
$calcwidth = $calcwidth + $slots['width'];
}
if ($calcwidth != 12) {
echo 'frei | ';
$calcwidth = $calcwidth + $slots['width'];
}
$blocktd = $modulelenght + $i;
}
}
if ($i >= $blocktd) {
echo ' frei | ';
}
echo '
';
endfor;
die();
}
}