public static function attachmentUrl($ticket, $file, $queue)
{
global $injector, $registry;
$links = array();
// Can we view the attachment online?
$mime_part = new Horde_Mime_Part();
$mime_part->setType(Horde_Mime_Magic::extToMime($file['type']));
$viewer = $injector->getInstance('Horde_Core_Factory_MimeViewer')->create($mime_part);
if ($viewer && !$viewer instanceof Horde_Mime_Viewer_Default) {
$links['view'] = Horde::url('view.php')->add(array('actionID' => 'view_file', 'type' => $file['type'], 'file' => $file['name'], 'ticket' => $ticket))->link(array('title' => $file['name'], 'target' => '_blank')) . $file['name'] . '</a>';
} else {
$links['view'] = $file['name'];
}
// We can always download attachments.
$url_params = array('actionID' => 'download_file', 'file' => $file['name'], 'ticket' => $ticket);
$links['download'] = $registry->downloadUrl($file['name'], $url_params)->link(array('title' => $file['name'])) . Horde::img('download.png', _("Download")) . '</a>';
// Admins can delete attachments.
if (self::hasPermission($queue, 'queue', Horde_Perms::DELETE)) {
$links['delete'] = Horde::url('ticket/delete_attachment.php')->add(array('file' => $file['name'], 'id' => $ticket, 'url' => Horde::selfUrl(true, false, true)))->link(array('title' => sprintf(_("Delete %s"), $file['name']), 'onclick' => 'return window.confirm(\'' . addslashes(sprintf(_("Permanently delete %s?"), $file['name'])) . '\');')) . Horde::img('delete.png', sprintf(_("Delete %s"), $file['name'])) . '</a>';
}
return $links;
}