<?php

include_once(dirname(__FILE__).'/../../Common/Global.php');

class PageHostList extends Page
{
  var $FullTitle = 'Seznam registrovaných počítačů';
  var $ShortTitle = 'Seznam počítačů';
  var $ParentClass = 'PageNetwork';
  
  function Show()
  {
    if(array_key_exists('admin', $_GET)) $Where = 'AND NetworkDevice.Type IN (1,4,5) ';
      else $Where = '';
    $Output = '<div align="center" style="font-size: small;"><table class="WideTable">';
    $Output .= '<tr><th>Jméno počítače</th><th>IP adresa</th><th>Veřejná IP</th><th>Typ</th><th>Naposledy online</th><th>Správce</th></tr>';
    $DbResult = $this->Database->query('SELECT NetworkDevice.*, User.Name as UserName, NetworkDeviceType.Name AS HostType FROM NetworkDevice '.
      'LEFT JOIN Member ON Member.Id = NetworkDevice.Member '.
      'LEFT JOIN User ON Member.ResponsibleUser = User.Id '.
      'LEFT JOIN NetworkDeviceType ON NetworkDeviceType.Id = NetworkDevice.Type WHERE NetworkDevice.Used = 1 '.$Where.'ORDER BY NetworkDevice.Name');
    while($Device = $DbResult->fetch_assoc())
    {
      if($Device['Online'] == 1) $Style = 'color: blue;'; else $Style = '';
      $DbResult2 = $this->Database->query('SELECT COUNT(*) FROM NetworkInterface WHERE Device = '.$Device['Id']);
      $DbRow = $DbResult2->fetch_row();
      if($DbRow[0] == 1)
      {
        $DbResult2 = $this->Database->query('SELECT * FROM NetworkInterface WHERE Device = '.$Device['Id']);
        $Interface = $DbResult2->fetch_assoc();
        if($Interface['ExternalIP'] == '') $Interface['ExternalIP'] = '&nbsp;';
        if($Interface['LocalIP'] == '') $Interface['LocalIP'] = '&nbsp;';
        if($Interface['Online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = '';
        $InterfaceName = $Device['Name'];
        if($Interface['Name'] != '') $InterfaceName .= '-'.$Interface['Name'];
        $Output .= '<tr><td style="text-align: left; '.$Style.'">'.$InterfaceName.'</td><td>'.$Interface['LocalIP'].'</td><td>'.$Interface['ExternalIP'].'</td><td>'.$Device['HostType'].'</td><td style="text-align: right;">'.HumanDate($Device['LastOnline']).'</td><td style="text-align: right;">'.$Device['UserName'].'</td></tr>';
      } else
      {
        $Output .= '<tr><td colspan="3" style="text-align: left; font-weight: bold; '.$Style.'">'.$Device['Name'].'</td><td>'.$Device['HostType'].'</td><td style="text-align: right;">'.HumanDate($Device['LastOnline']).'</td><td style="text-align: right;">'.$Device['UserName'].'</td></tr>';
        $DbResult2 = $this->Database->query('SELECT * FROM NetworkInterface WHERE Device = '.$Device['Id']);
        while($Interface = $DbResult2->fetch_assoc())
        {
          if($Interface['LocalIP'] == '') $Interface['LocalIP'] = '&nbsp;';
          if($Interface['Online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = '';
          $InterfaceName = $Device['Name'];
          if($Interface['Name'] != '') $InterfaceName .= '-'.$Interface['Name'];
          $Output .= '<tr><td style="text-align: left; '.$Style.'">&nbsp;&nbsp;'.$InterfaceName.'</td><td>'.$Interface['LocalIP'].'</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
        }      
      }
    } 
    $Output .= '</table></div>';
    return($Output);
  }
}
