<?php

/**
 * @author Filip Procházka <filip@prochazka.su>
 */
class FooPresenter extends BasePresenter
{

	/**
	 * @var \Img\ImageStorage
	 */
	private $imageStorage;



	/**
	 * @param \Img\ImageStorage $storage
	 */
	public function injectImageStorage(\Img\ImageStorage $storage)
	{
		$this->imageStorage = $storage;
	}



	public function renderDefault()
	{
		$this->template->uploadedImg = new Img\Image(...); // z databáze
	}



	/**
	 * @param string $name
	 * @return \Nette\Application\UI\Form
	 */
	protected function createComponentUpload($name)
	{
		$form = new UI\Form;

		$form->addUpload('file')
			->addRule(UI\Form::IMAGE, 'Obrázek musí být JPEG, PNG nebo GIF.')
			->addRule(UI\Form::FILLED, 'Zvolte prosím obrázek.');

		$form->addSubmit('upload', 'Upload image')
			->setValidationScope(FALSE)
			->onClick[] = $this->processUpload;

		return $form;
	}



	/**
	 * @param \Nette\Forms\Controls\SubmitButton $button
	 */
	public function processUpload(SubmitButton $button)
	{
		try {
			$image = $this->imageStorage->upload($button->form['file']->value);

		} catch (\Exception $e) {
			$button->form->addError($e->getMessage());
			return;
		}

		// $this->flashMessage('Huray!');
		// $this->redirect('this');
	}

}