<?php

include_once(dirname(__FILE__).'/../../Base/View.php');

class UpdateView extends View
{
  function ItemList()
  {
    $ServerId = $_GET['Id']; 
    if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    {
      $Server = new Server($this->System, $_GET['Id']);
      if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
      {
        $Server = new Server($this->System, $ServerId);
        $Output = '<h4>Seznam dostupných aktulizací</h4>';
        $Output .= 'Před provedením aktualizace bude server zastaven a provedena záloha databáze.';
        $Table = new Table('EmulatorList', $this->System);
        $Table->Definition['Table'] = substr($Table->Definition['Table'], 0, -1).' AND `Emulator`.`Revision` > '.$Server->Server['Database']['Emulator']['Revision'].' ORDER BY `Revision`)';
        $Table->Definition['Items']['Id'] = array('Type' => 'Hidden', 'Caption' => '', 'Default' => '');
        $Table->LoadValuesFromDatabase($this->Database);
        $Table->Definition['Items']['Actions'] = array('Type' => 'String', 'Caption' => '', 'Default' => '');
        foreach($Table->Values as $Index => $Item)
        {
          $Table->Values[$Index]['Actions'] = '<a href="?Action=EmulatorShow&amp;Id='.$Item['Id'].'">Podrobnosti</a>';
          if($Server->Server['Lock'] == 0) $Table->Values[$Index]['Actions'] .= ' <a href="?Action=Update&amp;Server='.$ServerId.'&amp;Update='.$Item['Id'].'">Aktualizovat</a>';
          unset($Table->Values[$Index]['Id']);
        }
        $Output .= $Table->Show();
      } else $this->SystemMessage('Dostupné aktualizace', 'Nemáte oprávnění');
    } else $Output = USER_BAD_ROLE;    
    return($Output);
  } 
  
  function Update()
  {  
    if(!array_key_exists('Server', $_GET)) $Output = $this->SystemMessage('Aktualizace serveru', 'Nebylo zadáno Id serveru');
    else if(!array_key_exists('Update', $_GET)) $Output = $this->SystemMessage('Aktualizace serveru', 'Nebylo zadáno Id aktualizace');
    else if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    {
      $Server = new Server($this->System, $_GET['Server']);
      if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
      {
        $Output = $this->SystemMessage('Aktualizace serveru', $Server->Update($_GET['Update']));
        $Output = $this->ShowTaskList();
      } else $this->SystemMessage('Aktualizace serveru', 'Nemáte oprávnění');
    } else $Output = USER_BAD_ROLE;
    return($Output);
  }
}
