centralM
[ class tree: centralM ] [ index: centralM ] [ all elements ]

Source for file actions.class.php

Documentation is available at actions.class.php

  1. <?php
  2.  
  3. /**
  4.  * network actions.
  5.  *
  6.  * @package    centralM
  7.  * @subpackage network
  8.  * @author     Your name here
  9.  * @version    SVN: $Id: actions.class.php 12474 2008-10-31 10:41:27Z fabien $
  10.  */
  11. class networkActions extends sfActions
  12. {
  13.  
  14.   public function executeBatchInsert(sfWebRequest $request)
  15.   {
  16.     $nets json_decode($request->getParameter('nets'),true);
  17.  
  18.  
  19.  
  20.     $count 0;
  21.  
  22.     foreach ($nets as $object){
  23.                         
  24.  
  25.         $network new EtvaNetwork();
  26.         $network->fromArray($object);
  27.         $network->save();
  28.  
  29.         $mac EtvaMacPeer::retrieveByMac($object['Mac']);
  30.         $mac->setInUse(1);
  31.         $mac->save();
  32.  
  33.     }
  34.  
  35.     $result array('success'=>true);
  36.     $result json_encode($result);
  37.  
  38.     $this->getContext()->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  39.  
  40.     return $this->renderText($result);
  41.     
  42.   }
  43.  
  44.   public function executeJsonCreate(sfWebRequest $request)
  45.   {
  46.      $isAjax $request->isXmlHttpRequest();
  47.  
  48.      if(!$isAjaxreturn $this->redirect('@homepage');
  49.  
  50.      if(!$request->isMethod('post')){
  51.          $info array('success'=>false,'errors'=>'Wrong parameters');
  52.          $error $this->setJsonError($info);
  53.          return $this->renderText($error);
  54.      }
  55.  
  56.      $this->form new EtvaNetworkForm();
  57.  
  58.      $result $this->processJsonForm($request$this->form);
  59.  
  60.      if(!$result['success']){
  61.          $error $this->setJsonError($result);
  62.          return $this->renderText($error);
  63.      }
  64.  
  65.      $result json_encode($result);
  66.  
  67.      $this->getContext()->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  68.      
  69.      return $this->renderText($result);
  70.  
  71.   }
  72.  
  73.  
  74.   public function executeJsonUpdate(sfWebRequest $request)
  75.   {
  76.     $isAjax $request->isXmlHttpRequest();
  77.  
  78.     if(!$isAjaxreturn $this->redirect('@homepage');
  79.  
  80.     if(!$request->isMethod('post'&& !$request->isMethod('put')){
  81.          $info array('success'=>false,'errors'=>'Wrong parameters');
  82.          $error $this->setJsonError($info);
  83.          return $this->renderText($error);
  84.     }
  85.  
  86.     if(!$etva_network EtvaNetworkPeer::retrieveByPk($request->getParameter('id'))){
  87.         $error_msg sprintf('Object etva_network does not exist (%s).'$request->getParameter('id'));
  88.         $info array('success'=>false,'errors'=>$error_msg);
  89.         $error $this->setJsonError($info);
  90.         return $this->renderText($error);
  91.     }
  92.  
  93.     $etva_network->setByName($request->getParameter('field')$request->getParameter('value'));
  94.     $etva_network->save();
  95.  
  96.     $result array('success'=>true);
  97.     $result json_encode($result);
  98.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).    
  99.     return $this->renderText($result);
  100.  
  101.   }
  102.  
  103.   public function executeJsonDelete(sfWebRequest $request)
  104.   {
  105.     $isAjax $request->isXmlHttpRequest();
  106.  
  107.     if(!$isAjaxreturn $this->redirect('@homepage');
  108.  
  109.     if(!$etva_network EtvaNetworkPeer::retrieveByPk($request->getParameter('id'))){
  110.         $error_msg sprintf('Object etva_network does not exist (%s).'$request->getParameter('id'));
  111.         $info array('success'=>false,'errors'=>$error_msg);
  112.         $error $this->setJsonError($info);
  113.         return $this->renderText($error);
  114.     }
  115.  
  116.     $etva_network->delete();
  117.  
  118.     $result array('success'=>true);
  119.     $result json_encode($result);
  120.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).    
  121.     return $this->renderText($result);
  122.   }
  123.  
  124.   public function executeJsonGridAll($request)
  125.   {
  126.     $isAjax $request->isXmlHttpRequest();
  127.  
  128.     if(!$isAjaxreturn $this->redirect('@homepage');
  129.  
  130.  
  131.     $query ($this->getRequestParameter('query'))json_decode($this->getRequestParameter('query'),truearray();
  132.     
  133.  
  134.     $limit $this->getRequestParameter('limit'10);
  135.     $page floor($this->getRequestParameter('start'0$limit)+1;
  136.  
  137.     // pager
  138.     // $this->pager = new sfPropelPager('EtvaNetwork', $limit);
  139.     $c new Criteria();
  140.  
  141.     // $this->addSortCriteria($c);
  142.     // $this->addServerCriteria($c);
  143.  
  144.     foreach($query as $key=>$val){
  145.  
  146.         $column EtvaNetworkPeer::translateFieldName(sfInflector::camelize($key)BasePeer::TYPE_PHPNAMEBasePeer::TYPE_COLNAME);
  147.         $c->add($column$val);
  148.     }
  149.  
  150.  
  151.     //$this->pager->setCriteria($c);
  152.     //$this->pager->setPage($page);
  153.  
  154.     //$this->pager->setPeerMethod('doSelectJoinEtvaServer');
  155.     //$this->pager->setPeerCountMethod('doCountJoinAll');
  156.  
  157.     //$this->pager->init();
  158.  
  159.     $etva_network_list EtvaNetworkPeer::doSelectJoinEtvaServer($c);
  160.     
  161.  
  162.     $elements array();
  163.     $i=0;
  164.     foreach($etva_network_list as $item){
  165.  
  166.                 $etva_server $item->getEtvaServer();
  167.                 $etva_server_name '';
  168.                 if($etva_server$etva_server_name $etva_server->getName();
  169.  
  170.                 $etva_node $etva_server->getEtvaNode();
  171.                 $etva_node_name '';
  172.                 if($etva_node$etva_node_name $etva_node->getName();
  173.  
  174.                 $elements[$i$item->toArray();
  175.                 $elements[$i]['ServerName'$etva_server_name;
  176.                 $elements[$i]['NodeId'$etva_node->getId();
  177.                 $elements[$i]['NodeName'$etva_node_name;
  178.                 
  179.                 $i++;
  180.  
  181.               //  print_r($etva_server);
  182.     }
  183.     $final array(
  184.       'total' =>   count($etva_network_list),
  185.       'data'  => $elements
  186.     );
  187.  
  188.     $result json_encode($final);
  189.  
  190.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  191.     return $this->renderText($result);
  192.  
  193.   }
  194.  
  195.   public function executeJsonGrid($request)
  196.   {
  197.     $isAjax $request->isXmlHttpRequest();
  198.  
  199.     if(!$isAjaxreturn $this->redirect('@homepage');
  200.  
  201.     $limit $this->getRequestParameter('limit'10);
  202.     $page floor($this->getRequestParameter('start'0$limit)+1;
  203.  
  204.     // pager
  205.     $this->pager new sfPropelPager('EtvaNetwork'$limit);
  206.     $c new Criteria();
  207.  
  208.     $this->addSortCriteria($c);
  209.     $this->addServerCriteria($c);
  210.  
  211.     $this->pager->setCriteria($c);
  212.     $this->pager->setPage($page);
  213.  
  214.     $this->pager->setPeerMethod('doSelectJoinAll');
  215.     $this->pager->setPeerCountMethod('doCountJoinAll');
  216.  
  217.     $this->pager->init();
  218.  
  219.  
  220.     $elements array();
  221.  
  222.     # Get data from Pager
  223.     foreach($this->pager->getResults(as $item)
  224.                 $elements[$item->toArray();
  225.  
  226.     $final array(
  227.       'total' =>   $this->pager->getNbResults(),
  228.       'data'  => $elements
  229.     );
  230.  
  231.     $result json_encode($final);
  232.  
  233.     $this->getResponse()->setHttpHeader("X-JSON"'()')// set a header, (although it is empty, it is nicer than without a correct header. Filling the header with the result will not be parsed by extjs as far as I have seen).
  234.     return $this->renderText($result);
  235.  
  236.   }
  237.  
  238.   protected function addSortCriteria($criteria)
  239.   {
  240.     if ($this->getRequestParameter('sort')==''return;
  241.  
  242.     $column EtvaNetworkPeer::translateFieldName(sfInflector::camelize($this->getRequestParameter('sort'))BasePeer::TYPE_PHPNAMEBasePeer::TYPE_COLNAME);
  243.  
  244.     if ('asc' == strtolower($this->getRequestParameter('dir')))
  245.       $criteria->addAscendingOrderByColumn($column);
  246.     else
  247.       $criteria->addDescendingOrderByColumn($column);
  248.   }
  249.  
  250.  
  251.   protected function addServerCriteria($criteria)
  252.   {
  253.         $serverID $this->getRequestParameter("sid");
  254.         $criteria->add(EtvaNetworkPeer::SERVER_ID$serverID);
  255.   }
  256.  
  257.  
  258.   protected function processJsonForm(sfWebRequest $requestsfForm $form)
  259.   {
  260.  
  261.     $form->bind($request->getParameter($form->getName())$request->getFiles($form->getName()));
  262.  
  263.     if ($form->isValid())
  264.     {
  265.           $etva_network $form->save();
  266.  
  267.           $result array('success'=>true,'insert_id'=>$etva_network->getId());
  268.           return $result;
  269.  
  270.     }
  271.     else{
  272.         $errors array();
  273.         foreach ($form->getErrorSchema(as $field => $error)
  274.                         $errors[$field$error->getMessage();
  275.           $result array('success'=>false,'errors'=>$errors);
  276.           return $result;
  277.     }
  278.  
  279.  
  280.   }
  281.  
  282.   private function setJsonError($info,$statusCode 400){
  283.  
  284.       $this->getContext()->getResponse()->setStatusCode($statusCode);
  285.       $error json_encode($info);
  286.       $this->getContext()->getResponse()->setHttpHeader("X-JSON"'()');
  287.       return $error;
  288.  
  289.   }
  290.  
  291. }

Documentation generated on Fri, 19 Jun 2009 10:45:38 +0100 by phpDocumentor 1.4.2