/**
 * Handle on_milestone_add_links event
 *
 * @param Milestone $milestone
 * @param User $user
 * @param array $links
 * @return null
 */
function tickets_handle_on_milestone_add_links($milestone, $user, &$links)
{
    if ($user->getProjectPermission('ticket', $milestone->getProject()) >= PROJECT_PERMISSION_CREATE) {
        $links[lang('Ticket')] = tickets_module_add_ticket_url($milestone->getProject(), array('milestone_id' => $milestone->getId()));
    }
    // if
}
 /**
  * Constructor
  *
  * @param Request $request
  * @return TicketsController
  */
 function __construct($request)
 {
     parent::__construct($request);
     if ($this->logged_user->getProjectPermission('ticket', $this->active_project) < PROJECT_PERMISSION_ACCESS) {
         $this->httpError(HTTP_ERR_FORBIDDEN);
     }
     // if
     $tickets_url = tickets_module_url($this->active_project);
     $archive_url = assemble_url('project_tickets_archive', array('project_id' => $this->active_project->getId()));
     $this->wireframe->addBreadCrumb(lang('Tickets'), $tickets_url);
     /*$_options = new NamedList();
       $_options->add('_category', array('url' => $tickets_url, 'text' => lang('Category')));
       $_options->add('_star', array('url' => $tickets_url, 'text' => lang('Star')));
       $_options->add('_priority', array('url' => $tickets_url, 'text' => lang('Priority')));
       $_options->add('_name', array('url' => $tickets_url, 'text' => lang('Name')));
       $_options->add('_owner', array('url' => $tickets_url, 'text' => lang('Owner')));
       $this->wireframe->addPageAction(lang('Sort by'), $tickets_url, $_options, null, '0');*/
     $add_ticket_url = false;
     if (Ticket::canAdd($this->logged_user, $this->active_project)) {
         $params = null;
         if ($this->active_category->isLoaded()) {
             $params = array('category_id' => $this->active_category->getId());
         }
         // if
         $add_ticket_url = tickets_module_add_ticket_url($this->active_project, $params);
         $this->wireframe->addPageAction(lang('New Ticket'), $add_ticket_url, null, '1');
         //$this->wireframe->addPageAction(lang('New Ticket'), $add_ticket_url);
     }
     // if
     $ticket_id = $this->request->getId('ticket_id');
     if ($ticket_id) {
         $this->active_ticket = Tickets::findByTicketId($this->active_project, $ticket_id);
     }
     // if
     if (instance_of($this->active_category, 'Category') && $this->active_category->isLoaded()) {
         $this->wireframe->addBreadCrumb($this->active_category->getName(), $this->active_category->getViewUrl());
     }
     // if
     if (instance_of($this->active_ticket, 'Ticket')) {
         if ($this->active_ticket->isCompleted()) {
             $this->wireframe->addBreadCrumb(lang('Archive'), $archive_url);
         }
         // if
         $this->wireframe->addBreadCrumb($this->active_ticket->getName(), $this->active_ticket->getViewUrl());
     } else {
         $this->active_ticket = new Ticket();
     }
     // if
     $this->smarty->assign(array('tickets_url' => $tickets_url, 'tickets_archive_url' => $archive_url, 'add_ticket_url' => $add_ticket_url, 'active_ticket' => $this->active_ticket, 'page_tab' => 'tickets', 'mass_edit_tickets_url' => assemble_url('project_tickets_mass_edit', array('project_id' => $this->active_project->getId()))));
 }