<?php

/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace AdminModule;
use \Nette\Application\UI\Form;
use \Nette\Utils\Image;

 
class HomepagePresenter extends BasePresenter {
    
    
    private $oznameniModel;
    
    
    public function __construct(\OznameniModel $oznameniModel) {
    $this->oznameniModel = $oznameniModel;
    }
    
   
    
  
    
    public function renderDefault() {
      $this->template->oznameni = $this->oznameniModel->getOznameni();
       
    }
    
    
    
    public function renderEdit($id) {
      
    }
    
   

    protected function createComponentAddOznameniForm() {
        $form = new Form();
        $form->addText("nazev", "Název: ")->setRequired("Zadejte název");
        $form->addTextArea("text", "Text: ");

        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->addOznameniFormSucceeded;

        return $form;
    }

    public function addOznameniFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();

        $this->oznameniModel->addOznameni($values);
        $this->flashMessage('Oznámení bylo přidáno', 'info');
        $this->redirect("Homepage:default");
    }
    
    protected function createComponentEditOznameniForm() {
        $form = new Form();
        $ozn = $this->oznameniModel->getOznameniById($this->getParam('id'));
        $form->addText("nazev", "Název: ")->setDefaultValue($ozn->nazev);
        $form->addTextArea("text", "Text: ")
            ->setRequired('Vyplňte text oznámení!')->setDefaultValue($ozn->text);
        $form->addHidden("id")
            ->setDefaultValue($ozn->id);
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->editOznameniFormSucceeded;

        return $form;
    }

    public function editOznameniFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();

        $this->oznameniModel->updateOznameni($values->id,$values);
        $this->flashMessage('Oznámení bylo editováno', 'info');
        $this->redirect("Homepage:default");
    }

    public function handleDeleteOznameni($id) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro smazání příspěvku se musíte přihlásit.');
    }

        $this->oznameniModel->deleteOznameni($id);
        $this->flashMessage('Oznámení bylo smazáno', 'info');
        $this->redirect('Homepage:default');
    }
  
}
