<?php

namespace OfficeBrain\Bundle\BlogBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use OfficeBrain\Bundle\BlogBundle\Entity\PostRepository;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
use OfficeBrain\Bundle\BlogBundle\Form\PostCategoryInfoType;
use OfficeBrain\Bundle\BlogBundle\Form\PostTagInfoType;

class PostType extends AbstractType
{
	private $addForm;
	
	public function __construct($addFormData, $category=array(), $tag=array()){
	   $this->addForm = $addFormData;
	   $this->category = $category;
	   $this->tag = $tag;
	}
	
	public function buildForm(FormBuilderInterface $builder, array $options)
	{
		$builder
			->add('postName')
			->add('postContent')
			->add('metaTitle')
			->add('metaDesc','textarea')
			//->add('publishedDate','text',array('data_class' => null))
			 ->add('publishedDate','datetime', array(
		        'widget' => 'single_text',
		        'format' => 'yyyy-MM-dd HH:mm:ss',
		        'required' => false
		    ))
			->add('featureImage','file',array('data_class' => null))
			->add('postCategoryId', new PostCategoryInfoType($this->addForm['category'], $this->category))

			->add('postTagId', new PostTagInfoType($this->addForm['tag'], $this->tag))
			->add('postStatus', 'choice', array('choices' => array('0' => 'Draft','1' => 'Published', '2' => 'UnPublished'))
		);
	}
	/**
	 * @param OptionsResolverInterface $resolver
	 */
	public function setDefaultOptions(OptionsResolverInterface $resolver)
	{
		$resolver->setDefaults(array(
			'data_class' => 'OfficeBrain\Bundle\BlogBundle\Entity\Post'
		));
	}

	/**
	 * @return string
	 */
	public function getName()
	{
		return 'post';
	}
}
