예제 #1
0
 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());
 }
예제 #2
0
 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->forward404Unless($this->tickets = Doctrine_Core::getTable('Tickets')->createQuery()->addWhere('id=?', $request->getParameter('tickets_id'))->addWhere('projects_id=?', $request->getParameter('projects_id'))->fetchOne(), sprintf('Object tasks does not exist (%s).', $request->getParameter('tickets_id')));
         $this->checkProjectsAccess($this->projects);
         $this->checkTicketsAccess('view', $this->tickets, $this->projects);
         if (!$this->getUser()->hasAttribute('tickets_filter' . $request->getParameter('projects_id'))) {
             $this->getUser()->setAttribute('tickets_filter' . $request->getParameter('projects_id'), Tickets::getDefaultFilter($request, $this->getUser()));
         }
     } else {
         $this->forward404Unless($this->tickets = Doctrine_Core::getTable('Tickets')->find(array($request->getParameter('tickets_id'))), sprintf('Object tasks does not exist (%s).', $request->getParameter('id')));
         $this->checkTicketsAccess('view', $this->tickets);
     }
     $this->tickets_comments = Doctrine_Core::getTable('TicketsComments')->createQuery('tc')->leftJoin('tc.Users u')->addWhere('tc.tickets_id=?', $request->getParameter('tickets_id'))->orderBy('tc.created_at desc')->fetchArray();
     $this->more_actions = $this->getMoreActions($request);
     app::setPageTitle(t::__('Ticket') . ' | ' . ($this->tickets->getTicketsTypesId() > 0 ? $this->tickets->getTicketsTypes()->getName() . ': ' : '') . $this->tickets->getName(), $this->getResponse());
 }