Example #1
0
 public function action_index()
 {
     //device types
     $data['d_type'] = Model_Device_Category::find('all', array('order_by' => array('id' => 'asc')));
     //raid types
     $data['raids'] = Model_Raid_Type::find('all', array('order_by' => array('id' => 'asc')));
     //ram types
     $data['rams'] = Model_Ram_Type::find('all', array('order_by' => array('id' => 'asc')));
     return \Response::forge(\View::forge('windows', $data));
 }
Example #2
0
 public function action_ram($id = null)
 {
     if ($_POST) {
         $val = \Validation::forge();
         $val->add_field('eid', 'Device fieldset id', 'required|min_length[1]|max_length[20]');
         $val->add_field('tmp', 'Device or template', 'required|min_length[1]|max_length[20]');
         //get ram table data
         if ($id == 'get') {
             if ($val->run()) {
                 if ($val->validated('tmp') == 'true') {
                     $field = Model_Device_Template_Field::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
                     if (!$ram) {
                         $props = array('tempfieldID' => $field->id, 'ram_type' => 1, 'size' => 0, 'total' => 0, 'meta_update_time' => time(), 'meta_update_user' => $this->user);
                         $ram = new Model_Ram($props);
                         $ram->save();
                         $field->value = 'Type:none, modules:0';
                         $field->save();
                     }
                 } else {
                     $field = Model_Device_Fieldset::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('fieldsetID', $field->id)->get_one();
                     //no raid element in database, create one..
                     if (!$ram) {
                         $props = array('fieldsetID' => $field->id, 'ram_type' => 1, 'size' => 0, 'total' => 0, 'meta_update_time' => time(), 'meta_update_user' => $this->user);
                         $ram = new Model_Ram($props);
                         $ram->save();
                         $field->value = 'Type:none, modules:0';
                         $field->save();
                     }
                 }
                 $data['eid'] = $field->id;
                 $data['ram'] = $ram;
                 return \Response::forge(\View::forge('device/ram', $data));
             }
         }
         //change total capacity
         if ($id == 'total') {
             $val->add_field('total', 'Ram total', 'required|min_length[1]|max_length[300]');
             if ($val->run()) {
                 if ($val->validated('tmp') == 'true') {
                     $field = Model_Device_Template_Field::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
                 } else {
                     $field = Model_Device_Fieldset::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('fieldsetID', $field->id)->get_one();
                 }
                 $total = $val->validated('total');
                 $ram_type = 'none';
                 if ($ram->ram_type > 0) {
                     $rt = Model_Ram_Type::find($ram->ram_type);
                     $ram_type = $rt->name;
                 }
                 $field->value = $ram_type . ', modules:' . $ram->size . ', cap:' . $total . ' MB';
                 $field->save();
                 $ram->total = $total;
                 $ram->save();
             }
             $data['eid'] = $field->id;
             $data['ram'] = $ram;
             return \Response::forge(\View::forge('device/ram', $data));
         }
         //change type
         if ($id == 'type') {
             $val->add_field('type', 'Ram new type', 'required|min_length[1]|max_length[3]');
             if ($val->run()) {
                 if ($val->validated('tmp') == 'true') {
                     $field = Model_Device_Template_Field::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
                 } else {
                     $field = Model_Device_Fieldset::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('fieldsetID', $field->id)->get_one();
                 }
                 $new_type = $val->validated('type');
                 if ($new_type > 1) {
                     $ram_type = Model_Ram_Type::find($new_type);
                     $field->value = $ram_type['name'] . ', modules:' . $ram->size . ', cap:' . $ram->total . ' MB';
                 } else {
                     $field->value = 'Type:none, modules:' . $ram->size . ', cap:' . $ram->total . ' MB';
                 }
                 $field->save();
                 $ram->ram_type = $new_type;
                 $ram->save();
             }
             $data['eid'] = $field->id;
             $data['ram'] = $ram;
             return \Response::forge(\View::forge('device/ram', $data));
         }
         //change size
         if ($id == 'size') {
             $val->add_field('size', 'Raid new size', 'required|min_length[1]|max_length[20]');
             if ($val->run()) {
                 if ($val->validated('tmp') == 'true') {
                     $field = Model_Device_Template_Field::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
                 } else {
                     $field = Model_Device_Fieldset::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('fieldsetID', $field->id)->get_one();
                 }
                 $new_size = $val->validated('size');
                 $total = Model_Ram_Data::find()->where('hardware_ram', $ram->id)->count();
                 if ($new_size > 50) {
                     $new_size = 50;
                 }
                 $ram->size = $new_size;
                 $ram->save();
                 if ($new_size < $total) {
                     $dif = $total - $new_size;
                 } else {
                     $dif = $new_size - $total;
                 }
                 if ($total > $new_size) {
                     //delete overage fileds
                     $ram_data = Model_Ram_Data::find()->where('hardware_ram', $ram->id)->limit($dif)->order_by('id', 'desc')->get();
                     foreach ($ram_data as $modul) {
                         $modul->delete();
                     }
                 } else {
                     //add new empty fields (diference)
                     if ($total < $new_size) {
                         for ($i = 0; $i < $dif; $i++) {
                             $prop = array('hardware_ram' => $ram->id, 'model' => '', 'size' => '', 'port' => '', 'meta_update_time' => time(), 'meta_update_user' => $this->user, 'serial_number' => '');
                             $hdata = new Model_Ram_Data($prop);
                             $hdata->save();
                         }
                     }
                 }
                 // update total
                 $sum = 0;
                 $ram_type = Model_Ram_Type::find($ram->ram_type);
                 $ram_data = Model_Ram_Data::find()->where('hardware_ram', $ram->id)->order_by('id', 'desc')->get();
                 foreach ($ram_data as $dd) {
                     $sum += $dd->size;
                 }
                 if ($ram->ram_type > 0) {
                     $field->value = $ram_type['name'] . ', modules:' . $new_size . ', cap:' . $sum . ' MB';
                 } else {
                     $field->value = 'Type:none, modules:' . $new_size . ', cap:' . $sum . ' MB';
                 }
                 $field->save();
                 $data['eid'] = $field->id;
                 $data['ram'] = $ram;
                 return \Response::forge(\View::forge('device/ram', $data));
             }
         }
         //set value of elements
         if ($id == 'set') {
             $val->add_field('type', 'number of input element', 'required|min_length[1]|max_length[5]');
             $val->add_field('rid', 'data element id', 'required|min_length[1]|max_length[20]');
             $val->add_field('val', 'data element id', 'required|min_length[0]|max_length[250]');
             if ($val->run()) {
                 $ram_data = Model_Ram_Data::find($val->validated('rid'));
                 if ($ram_data) {
                     switch ($val->validated('type')) {
                         case 1:
                             $ram_data->port = $val->validated('val');
                             break;
                         case 2:
                             $ram_data->size = $val->validated('val');
                             break;
                         case 3:
                             $ram_data->model = $val->validated('val');
                             break;
                         case 4:
                             $ram_data->serial_number = $val->validated('val');
                             break;
                         default:
                             echo 'nop';
                             break;
                     }
                     $ram_data->save();
                 }
             }
         }
         //add
         if ($id == 'new') {
             $val->add_field('val', 'Ram add', 'required|min_length[1]|max_length[20]');
             if ($val->run()) {
                 if ($val->validated('tmp') == 'true') {
                     $field = Model_Device_Template_Field::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('tempfieldID', $field->id)->get_one();
                 } else {
                     $field = Model_Device_Fieldset::find($val->validated('eid'));
                     $ram = Model_Ram::find()->where('fieldsetID', $field->id)->get_one();
                 }
                 $new_size = $val->validated('val');
                 if ($ram->ram_type > 1) {
                     $ram_type = Model_Ram_Type::find($ram->ram_type);
                     $field->value = $ram_type['name'] . ', modules:' . $new_size . ', cap:' . $ram->total . ' MB';
                 } else {
                     $field->value = 'Type:none, modules:' . $new_size . ', cap:' . $ram->total . ' MB';
                 }
                 $field->save();
                 $total = Model_Ram_Data::find()->where('hardware_ram', $ram->id)->count();
                 if ($new_size > 50) {
                     $new_size = 50;
                 }
                 $ram->size = $new_size;
                 $ram->save();
                 if ($new_size < $total) {
                     $dif = $total - $new_size;
                 } else {
                     $dif = $new_size - $total;
                 }
                 if ($total > $new_size) {
                     //delete overage fileds
                     $ram_data = Model_Ram_Data::find()->where('hardware_ram', $ram->id)->limit($dif)->order_by('id', 'desc')->get();
                     foreach ($ram_data as $modul) {
                         $modul->delete();
                     }
                 } else {
                     //add new empty fields (diference)
                     if ($total < $new_size) {
                         for ($i = 0; $i < $dif; $i++) {
                             $prop = array('hardware_ram' => $ram->id, 'model' => \Input::post('dmodel'), 'size' => \Input::post('dsize'), 'port' => \Input::post('vport'), 'meta_update_time' => time(), 'meta_update_user' => $this->user, 'serial_number' => \Input::post('dsn'));
                             $hdata = new Model_Ram_Data($prop);
                             $hdata->save();
                         }
                     }
                 }
                 $data['eid'] = $field->id;
                 $data['ram'] = $ram;
                 return \Response::forge(\View::forge('device/ram', $data));
             }
         }
         //delete element
         if ($id == 'delete') {
             $val->add_field('rid', 'data element id', 'required|min_length[1]|max_length[20]');
             if ($val->run()) {
                 $raid_data = Model_Ram_Data::find($val->validated('rid'));
                 $raid_data->delete();
                 echo json_encode(array('deleted' => 1));
             }
         }
     }
 }
Example #3
0
 private function ram_field($id, $name)
 {
     $rams = Model_Ram::find()->where('fieldsetID', $id)->get_one();
     if ($rams) {
         $modules = $rams->rows;
         $this->SetFont('Verdana', '', 10);
         if ($rams['ram_type']) {
             $rt = Model_Ram_Type::find($rams['ram_type']);
             $this->add_line($name, $rt['name']);
         }
         $this->SetLineWidth(0.7);
         $this->SetDrawColor(100, 100, 100);
         $this->SetFont('Verdana', '', 7);
         $this->SetTextColor(100, 100, 100);
         $this->SetFillColor(248, 248, 248);
         $this->Cell(30, 10, 'Slot', 'B', 0, 'L', true);
         $this->Cell(40, 10, 'Size', 'B', 0, 'L', true);
         $this->Cell(100, 10, 'Model', 'B', 0, 'L', true);
         $this->Cell(100, 10, 'Serial', 'B', 0, 'L', true);
         $this->Ln(15);
         foreach ($modules as $mod) {
             if ($this->GetY() >= $this->heightlimit) {
                 $this->_AddPage();
             }
             $d = array('Slot' => $this->validate($mod['port']), 'Size' => $mod['size'], 'Model' => $mod['model'], 'Serial' => $mod['serial_number']);
             $this->add_ram($d);
             $this->Ln(10);
         }
         $this->Ln(10);
     }
 }