<?php

/**
 * Generated: 2014-03-24 15:01:35
 * @author Rtn_Module_Tool
 */
class Board_Controller_IndexController extends Eppe_Frontend_Controller_Action {

	public function indexAction() {
		//TO DO zmienienie położenia tego skrypyu. W domyślnej struct jest blokowany przez BoardBlock'a
//                $this->view->headScript()->appendFile("/vendors/script.js");
		if (NULL === $beanId = $this->_getParam('id')) {

			$this->_redirect('/');
		}

		if (NULL === $page = $this->_getParam('page')) {
			$page = 1;
		}

		$form = new Board_Form_Index($beanId);

		$beans = R::findAll('viewboarditem', 'active = ? AND boardgroup_id = ? ORDER BY dtpublished DESC', [true, $beanId]);

		$boards = array();
		foreach ($beans as $bean) {
			$boards[] = $bean->export();
		}

		$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($boards));
		$paginator->setCurrentPageNumber($page);
		$paginator->setItemCountPerPage(10);

		$this->view->paginator = $paginator;
		$this->view->group = R::findOne('boardgroup', 'id = ?', [$beanId]);
		$this->view->form = $form;
	}

	public function showAction() {
		if (NULL === $beanId = $this->_getParam('id')) {
			$this->_redirect('/');
		}
		$bean = R::findOne('viewboarditem', 'active = ? AND id = ?', [true, $beanId]);

		if (NULL === $bean) {
			$this->_redirect('/');
		}

		$this->view->board = $bean;
	}

	public function ajaxAddBoardAction() {
		$response = array();
		if (NULL !== $this->_post = $this->getRequest()->getPost()) {
			$form = new Board_Form_Index($this->_post['boardgroup_id']);
			if ($form->isValid($this->_post)) {
				$this->_insertBoard($this->_post);

				$response = array('success' => true,
				    'message' => '<div class="form-msg msg-ok">
            <span class="semibold">Dziękujemy, Twoje ogłoszenie zostało wysłane.</span> Po pomyślnej moderacji
            ukaże się na stronie w odpowiedniej kategorii.
        </div>');
			} else {
				$message = '<div class="form-msg msg-error">
            <span class="semibold">Niestety, nie możemy wysłać Twojego ogłoszenia</span>, ponieważ:
            <ul>';

				foreach ($form->getMessages() as $element) {
					foreach ($element as $msg) {
						$message .= '<li><i class="fa fa-times"></i> ' . $msg . '</li>';
					}
				}
				$message .= '</ul></div>';
				$response = array('success' => false,
				    'message' => $message
				);
			}
		}
		echo Zend_Json::encode($response);
		exit;
	}

	private function _insertBoard($post) {
		$board = R::dispense('boarditem');
		$board->boardgroup_id = $post['boardgroup_id'];
		$board->title = $post['title'];
		$board->body = $post['body'];
		$board->email = $post['email'];
		$board->name = $post['name'];
		$board->active = 0;
		$board->dtpublished = date('Y-m-d H:i');
		R::store($board);
	}

}
