public function executeJsonGridNoPager($request) { $isAjax = $request->isXmlHttpRequest(); if (!$isAjax) { return $this->redirect('@homepage'); } $sid = $this->getRequestParameter('sid'); if ($sid) { $server = EtvaServerPeer::retrieveByPK($sid); $cid = $server->getClusterId(); } else { // get cluster id $cid = $this->getRequestParameter('cid'); if (!$cid) { $etva_cluster = EtvaClusterPeer::retrieveDefaultCluster(); $cid = $etva_cluster->getId(); } } //Get networks from cluster $c_vlan = new Criteria(); $c_vlan->add(EtvaVlanPeer::CLUSTER_ID, $cid); $etva_vlans = EtvaVlanPeer::doSelect($c_vlan); //get networks with server $c = new Criteria(); $vlan_flag = false; $server_flag = false; $query = $this->getRequestParameter('query') ? json_decode($this->getRequestParameter('query'), true) : array(); foreach ($query as $key => $val) { $column = EtvaNetworkPeer::translateFieldName(sfInflector::camelize($key), BasePeer::TYPE_PHPNAME, BasePeer::TYPE_COLNAME); if ($key == 'vlan_id') { $vlan_flag = true; } if ($key == 'server_id') { $server_flag = true; } $c->add($column, $val); } //error_log($c->toString()); //get vlans from cluster if (!$vlan_flag && !$server_flag) { // && !$server_flag && $cid){ //error_log('!(!$vlan_flag && !$server_flag)'); foreach ($etva_vlans as $etva_vlan) { if ($this->getRequestParameter('query')) { $c->addOr(EtvaNetworkPeer::VLAN_ID, $etva_vlan->getId()); } else { $c->addAnd(EtvaNetworkPeer::VLAN_ID, $etva_vlan->getId()); } } } // add sort criteria to sort elements $this->addSortCriteria($c); // add server criteria $this->addServerCriteria($c); //error_log($c->toString()); $etva_network_list = EtvaNetworkPeer::doSelectJoinEtvaServer($c); $elements = array(); $i = 0; foreach ($etva_network_list as $item) { $etva_server = $item->getEtvaServer(); $etva_vlan = $item->getEtvaVlan(); if ($etva_server && $etva_vlan) { $etva_server_name = $etva_server->getName(); $etva_server_type = $etva_server->getVmType(); $etva_vm_state = $etva_server->getVmState(); $etva_vlan_name = $etva_vlan->getName(); $elements[$i] = $item->toArray(); $elements[$i]['ServerName'] = $etva_server_name; $elements[$i]['VmType'] = $etva_server_type; $elements[$i]['Vlan'] = $etva_vlan_name; $elements[$i]['Vm_state'] = $etva_vm_state; $etva_node = $etva_server->getEtvaNode(); if ($etva_node) { $etva_node_name = $etva_node->getName(); $elements[$i]['NodeName'] = $etva_node_name; $elements[$i]['NodeId'] = $etva_node->getId(); } $i++; } } $final = array('total' => count($etva_network_list), 'data' => $elements); $result = json_encode($final); $this->getResponse()->setHttpHeader('Content-type', 'application/json'); return $this->renderText($result); }