public function action_set() { $out = array('status' => 'no'); if (isset($this->field)) { $out = array('status' => 'ok'); $val = \Validation::forge(); $val->add_field('m', 'element num', 'required|min_length[1]|max_length[5]'); $val->add_field('val', 'value', 'max_length[250]'); $val->add_field('ip', 'ip_element id', 'required|min_length[1]|max_length[20]'); if ($val->run()) { if ($this->tmpl) { $ip = Model_Device_Template_Network_Ip::find($val->validated('ip')); } else { $ip = Model_Network_Ip::find($val->validated('ip')); } if ($ip) { $out['ip'] = $ip->id; $new_value = $val->validated('val'); switch ($val->validated('m')) { case 1: //nic name $ip->nic_name = $new_value; break; case 2: //ipv4 if ($this->isValidIP($new_value)) { $ip->ipv4 = $new_value; } else { $out['status'] = 'bad IP'; } $out['old'] = $ip->ipv4; break; case 3: //conn type $ip->conn_type = $new_value; break; case 4: //ipv6 if ($this->isValidIPv6($new_value)) { $ip->ipv6 = $new_value; } else { $out['status'] = 'bad IPv6'; } $out['old'] = $ip->ipv6; break; case 5: //conn speed $ip->conn_speed = $new_value; break; } $ip->save(); } } } echo json_encode($out); }
public function data() { $data = array('net_type' => $this->net_type, 'con_type' => $this->con_type, 'net' => $this->field->network); if ($this->net_type == 1) { $data['conn'] = $this->connection_data(); if ($this->tmpl) { $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); } else { $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); } } if ($this->net_type == 2) { $data['conn'] = $this->connection_data(); if ($this->tmpl) { $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); $data['macs'] = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get(); $data['vlans'] = Model_Device_Template_Network_Vlan::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get(); } else { $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); $data['macs'] = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get(); $data['vlans'] = Model_Network_Vlan::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get(); } } if ($this->net_type == 3) { $data['conn'] = $this->connection_data(); if ($this->tmpl) { $data['ips'] = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); $data['macs'] = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get(); $data['vlans'] = Model_Device_Template_Network_Vlan::find()->where('tempnetID', $this->field->network->id)->order_by('id', 'asc')->get(); } else { $data['ips'] = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->order_by('type', 'asc')->order_by('id', 'asc')->get(); $data['macs'] = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get(); $data['vlans'] = Model_Network_Vlan::find()->where('networkID', $this->field->network->id)->order_by('id', 'asc')->get(); } } if ($this->tmpl) { $data['cables'] = array(); //Model_Cable::find()->where('dev1',$this->field->templateID)->or_where('dev2',$this->field->templateID)->get(); } else { $data['cables'] = Model_Cable::find()->where('dev1', $this->field->deviceID)->or_where('dev2', $this->field->deviceID)->get(); } return $data; }
public function action_index() { if (isset($this->field)) { $val = \Validation::forge(); $out = true; $val->add_field('act', 'action id', 'required|min_length[1]|max_length[20]'); $val->add_field('val', 'value', 'required|min_length[1]'); if ($val->run()) { $size = $val->validated('val'); switch ($val->validated('act')) { case 'act1': //number of NIC if ($this->tmpl) { $ip_q = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->where('type', 1); } else { $ip_q = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->where('type', 1); } $this->fix_fields($size, $ip_q->count(), 1); $this->field->network->nics = $size; $this->field->network->save(); break; case 'act2': //number of virtual ports if ($this->tmpl) { $ip_q = Model_Device_Template_Network_Ip::find()->where('tempnetID', $this->field->network->id)->where('type', 2); } else { $ip_q = Model_Network_Ip::find()->where('networkID', $this->field->network->id)->where('type', 2); } $this->fix_fields($size, $ip_q->count(), 2); $this->field->network->vports = $size; $this->field->network->save(); break; case 'act3': //number of ports(switch) if ($this->tmpl) { $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->where('type', 1); } else { $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->where('type', 1); } $this->fix_MACfields($size, $ip_q->count(), 1); $this->field->network->ports = $size; $this->field->network->save(); break; case 'act4': //number of uplinks(switch) if ($this->tmpl) { $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id)->where('type', 2); } else { $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id)->where('type', 2); } $this->fix_MACfields($size, $ip_q->count(), 2); $this->field->network->uplinks = $size; $this->field->network->save(); break; case 'act5': //number of uplinks(switch) $out = false; $this->field->network->config_data = $size; $this->field->network->save(); break; case 'act6': // pach panel ports if ($this->tmpl) { $ip_q = Model_Device_Template_Network_Mac::find()->where('tempnetID', $this->field->network->id); } else { $ip_q = Model_Network_Mac::find()->where('networkID', $this->field->network->id); } $this->fix_MACfields($size, $ip_q->count(), 3); $this->field->network->ports = $size; $this->field->network->save(); break; } if ($out) { $data = $this->data(); return \Response::forge(\View::forge('network/windata', $data)); } } } }