/**
  * Shows info page with information
  *
  * @Route("/info-page/{key}/{action}/", name="infoPage")
  * @Template("FITModuleDefaultBundle:Module:section.html.twig")
  *
  * @param int     $key          key of connected server
  * @param string  $action       name of the action ("session"|"reload")
  * @return array
  */
 public function sessionInfoAction($key, $action)
 {
     /**
      * @var \FIT\NetopeerBundle\Models\Data $dataClass
      */
     $dataClass = $this->get('DataModel');
     parent::setActiveSectionKey($key);
     $dataClass->buildMenuStructure($key);
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'moduleJavascripts');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'moduleStylesheet');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'title');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'additionalTitle');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'singleContent');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'alerts');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'topMenu');
     $this->addAjaxBlock('FITModuleDefaultBundle:Module:section.html.twig', 'leftColumn');
     if ($action == "session") {
         /**
          * @var Session $session
          */
         $session = $this->container->get('request')->getSession();
         $sessionArr = $session->all();
         // format session info output (unserialize object, convert JSON into array)
         if (isset($sessionArr['session-connections'])) {
             $connVarsArr = array();
             foreach ($sessionArr['session-connections'] as $connKey => $conn) {
                 if ($connKey != $key) {
                     continue;
                 }
                 $tmp = unserialize($conn);
                 $unserialized = (array) unserialize($conn);
                 foreach ($unserialized as $key => $value) {
                     if (strrpos($key, 'activeController')) {
                         $tmpArr = array();
                         foreach ($value as $k => $v) {
                             $tmpArr[str_replace(":", "_", $k)] = $v;
                         }
                         $unserialized['activeController'] = $tmpArr;
                         unset($unserialized[$key]);
                     }
                 }
                 $connVarsArr['connection-' . $connKey][$connKey] = $unserialized;
                 if ($connVarsArr['connection-' . $connKey][$connKey]['sessionStatus']) {
                     $connVarsArr['connection-' . $connKey][$connKey]['sessionStatus'] = (array) json_decode($connVarsArr['connection-' . $connKey][$connKey]['sessionStatus']);
                     if (isset($connVarsArr['connection-' . $connKey][$connKey]['sessionStatus']['capabilities'])) {
                         $connVarsArr['connection-' . $connKey][$connKey]['capabilities'] = implode("\n", $connVarsArr['connection-' . $connKey][$connKey]['sessionStatus']['capabilities']);
                         unset($connVarsArr['connection-' . $connKey][$connKey]['sessionStatus']['capabilities']);
                     }
                 }
                 $connVarsArr['connection-' . $connKey][$connKey]['nc_features'] = $dataClass->getCapabilitiesArrForKey($connKey);
             }
             $sessionArr['session-connections'] = $connVarsArr;
         }
         unset($sessionArr['_security_secured_area']);
         unset($sessionArr['_security_commont_context']);
         $xml = Array2XML::createXML("session", $sessionArr);
         $xml = simplexml_load_string($xml->saveXml(), 'SimpleXMLIterator');
         $this->assign("stateArr", $xml);
         $this->assign('hideStateSubmitButton', true);
     } else {
         if ($action == "reload") {
             $params = array('key' => $key);
             $dataClass->handle("reloadhello", $params);
         }
     }
     $this->assign('singleColumnLayout', true);
     // because we do not allow changing layout, controls will be hidden
     $this->assign('hideColumnControl', true);
     $routeParams = array('key' => $key, 'module' => null, 'subsection' => null);
     $this->assign('routeParams', $routeParams);
     $this->assign('activeAction', $action);
     $this->assign('stateSectionTitle', "Session info");
     return $this->getTwigArr();
 }