<?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;

 
class NovinkyPresenter extends BasePresenter {
    
    private $novinkyModel;
    
   
    /** @persistent */
    public $rok;
 
    public function __construct(\NovinkyModel $novinkyModel) {
    $this->novinkyModel = $novinkyModel;
   
    }
    
  
    
    public function renderList() {
      
        if ($this->rok == null) { $this->rok=date('Y'); } // aktualni rok
     
        $this->template->novinky = $this->novinkyModel->getNovinkyByYear($this->rok); 
        
    }
    
    public function renderEdit($id) {
    }
    
    protected function createComponentEditNovinkaForm() {
        $novinka = $this->novinkyModel->getNovinka($this->getParam('id'));

        $form = new Form();
        $form->addTextArea("text", "Text: ")
            ->setDefaultValue($novinka->text)
            ->setRequired('Vyplňte text!');
        $form->addHidden("id")
            ->setDefaultValue($this->getParam('id'));
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->editNovinkaFormSucceeded;

        return $form;
    }

    public function editNovinkaFormSucceeded(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();
        $novinka = $values->id;
        unset($values->id);
        $this->novinkyModel->updateNovinka($novinka, $values);
        $this->flashMessage('Novinka byla aktualizována', 'info');
        $this->redirect("Novinky:list");
    }

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

        $this->novinkyModel->deleteNovinka($id);
        $this->flashMessage('Novinka byla smazána', 'info');
        $this->redirect('Novinky:list');
    }

    protected function createComponentAddNovinkaForm() {
        $form = new Form();

        $form->addTextArea("text", "Text: ");
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->addNovinkaFormSucceeded;

        return $form;
    }
 
    public function addNovinkaFormSucceeded(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();
        $values->datum = new \Nette\Utils\DateTime();
        $this->novinkyModel->addNovinka($values);
        $this->flashMessage('Novinka byla přidána', 'info');
        $this->redirect("Novinky:list");
    }

    protected function createComponentVybratRokForm() {
        $form = new form();
        $roky = $this->novinkyModel->getRoky();
        $rokyAsoc;
        foreach ($roky as $r) {
          $rokyAsoc[$r->year] = $r->year;  
        }
        
        $form->addSelect("rok", "Rok:", $rokyAsoc)
        ->setPrompt('Zvolte rok');
        $form->addSubmit("send", "Zvolit rok");
        $form->onSuccess[] = $this->vybratRokFormSucceeded;
        return $form;
    }

    public function vybratRokFormSucceeded(Form $form) {
        $valu = $form->getValues();
        $this->rok = $valu->rok;
        $this->redirect("Novinky:list");
    }
    
}
