sintonia/application/controllers/SearchController.php

126 lines
2.9 KiB
PHP
Raw Normal View History

<?php
class SearchController extends Zend_Controller_Action
{
2011-01-05 01:18:44 +01:00
protected $search_sess = null;
2011-01-05 01:18:44 +01:00
private function addGroup($group_id) {
$form = new Application_Form_AdvancedSearch();
$form->addGroup($group_id, 1);
$group = $form->getSubForm('group_'.$group_id);
return $group->__toString();
}
private function addFieldToGroup($group_id, $row_id) {
$form = new Application_Form_AdvancedSearch();
$form->addGroup($group_id);
$group = $form->getSubForm('group_'.$group_id);
$group->addRow($row_id);
return $group->__toString();
}
public function init()
{
2011-01-05 01:18:44 +01:00
if(!Zend_Auth::getInstance()->hasIdentity())
{
$this->_redirect('login/index');
}
$ajaxContext = $this->_helper->getHelper('AjaxContext');
2011-01-05 01:18:44 +01:00
$ajaxContext->addActionContext('newfield', 'json')
->addActionContext('newgroup', 'json')
->initContext();
2010-12-22 21:08:38 +01:00
$this->search_sess = new Zend_Session_Namespace("search");
}
public function indexAction()
{
$this->_helper->layout->setLayout('search');
$this->view->headScript()->appendFile('/js/contextmenu/jjmenu.js','text/javascript');
$this->view->headLink()->appendStylesheet('/css/contextmenu.css');
2010-12-22 05:56:14 +01:00
$this->_helper->actionStack('contents', 'library');
2011-01-03 17:47:21 +01:00
$this->_helper->actionStack('display', 'search');
$this->_helper->actionStack('index', 'playlist');
}
public function displayAction()
{
$this->view->headScript()->appendFile('/js/airtime/library/advancedsearch.js','text/javascript');
$this->view->headLink()->appendStylesheet('/css/library_search.css');
$this->_helper->viewRenderer->setResponseSegment('search');
$request = $this->getRequest();
2011-01-05 01:18:44 +01:00
$form = new Application_Form_AdvancedSearch();
2011-01-03 17:47:21 +01:00
$this->view->form = $form;
// Form has not been submitted - displayed using layouts
if (!$request->isPost()) {
2010-12-22 21:08:38 +01:00
2011-01-05 01:18:44 +01:00
$form->addGroup(1, 1);
$this->search_sess->next_group = 2;
$this->search_sess->next_row[1] = 2;
return;
}
2011-01-05 01:18:44 +01:00
$this->view->md = $request->getPost();
// Form has been submitted
$form->preValidation($request->getPost());
if (!$form->isValid($request->getPost())) {
return;
}
2011-01-03 17:47:21 +01:00
// valid form was submitted set as search criteria.
2011-01-05 01:18:44 +01:00
$this->view->md = $form->getValues();
$this->search_sess->md = $form->getValues();
2011-01-03 17:47:21 +01:00
//make sure to start on first page of new results.
unset($this->search_sess->page);
}
public function newfieldAction()
{
2011-01-05 01:18:44 +01:00
$group_id = $this->_getParam('group', 1);
$row_id = $this->search_sess->next_row[$group_id];
2011-01-05 01:18:44 +01:00
$this->view->html = $this->addFieldToGroup($group_id, $row_id);
$this->view->row = $row_id;
2011-01-05 01:18:44 +01:00
$this->search_sess->next_row[$group_id] = $row_id + 1;
}
public function newgroupAction()
{
$group_id = $this->search_sess->next_group;
2011-01-05 01:18:44 +01:00
$this->view->html = $this->addGroup($group_id);
$this->search_sess->next_group = $group_id + 1;
$this->search_sess->next_row[$group_id] = 2;
}
2011-01-05 01:18:44 +01:00
}
2011-01-05 01:18:44 +01:00