public function executeIndex(sfWebRequest $request) { if ($request->getParameter('projects_id') > 0) { $this->forward404Unless($this->projects = Doctrine_Core::getTable('Projects')->createQuery()->addWhere('id=?', $request->getParameter('projects_id'))->fetchOne(), sprintf('Object projects does not exist (%s).', $request->getParameter('projects_id'))); $this->checkProjectsAccess($this->projects); $this->checkTicketsAccess('view', false, $this->projects); } else { $this->checkTicketsAccess('view'); } if (!$this->getUser()->hasAttribute('tickets_filter' . $this->get_pid($request))) { $this->getUser()->setAttribute('tickets_filter' . $this->get_pid($request), Tickets::getDefaultFilter($request, $this->getUser())); } $this->filter_by = $this->getUser()->getAttribute('tickets_filter' . $this->get_pid($request)); if ($fb = $request->getParameter('filter_by')) { $this->filter_by[key($fb)] = current($fb); $this->getUser()->setAttribute('tickets_filter' . $this->get_pid($request), $this->filter_by); $this->redirect('tickets/index' . $this->add_pid($request)); } if ($request->hasParameter('remove_filter')) { unset($this->filter_by[$request->getParameter('remove_filter')]); $this->getUser()->setAttribute('tickets_filter' . $this->get_pid($request), $this->filter_by); $this->redirect('tickets/index' . $this->add_pid($request)); } if ($request->hasParameter('user_filter')) { $this->filter_by = Tickets::useTicketsFilter($request, $this->getUser()); $this->getUser()->setAttribute('tickets_filter' . $this->get_pid($request), $this->filter_by); $this->redirect('tickets/index' . $this->add_pid($request)); } if ($request->hasParameter('delete_user_filter')) { app::deleteUserFilter($request->getParameter('delete_user_filter'), 'TicketsReports', $this->getUser()); $this->getUser()->setFlash('userNotices', t::__('Filter Deleted')); $this->redirect('tickets/index' . $this->add_pid($request)); } if ($request->hasParameter('edit_user_filter')) { $this->setTemplate('editFilter', 'app'); } if ($request->hasParameter('sort_filters')) { $this->setTemplate('sortFilters', 'app'); } if ($set_order = $request->getParameter('set_order')) { $this->getUser()->setAttribute('tickets_listing_order' . $this->get_pid($request), $set_order); $this->redirect('tickets/index' . $this->add_pid($request)); } app::setPageTitle('Tickets', $this->getResponse()); }