/usr/share/horde/whups/lib/Block/Queuesummary.php is in php-horde-whups 3.0.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?php
/**
* Show a summary of all available queues and their number of open tickets.
*/
class Whups_Block_Queuesummary extends Horde_Core_Block
{
/**
*/
public function __construct($app, $params = array())
{
parent::__construct($app, $params);
$this->_name = _("Queue Summary");
}
/**
*/
protected function _content()
{
global $whups_driver;
$queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ);
$qsummary = $whups_driver->getQueueSummary(array_keys($queues));
if (!$qsummary) {
return '<p class="horde-content"><em>' . _("There are no open tickets.") . '</em></p>';
}
$summary = $types = array();
foreach ($qsummary as $queue) {
$types[$queue['type']] = $queue['type'];
if (!isset($summary[$queue['id']])) {
$summary[$queue['id']] = $queue;
}
$summary[$queue['id']][$queue['type']] = $queue['open_tickets'];
}
$html = '<thead><tr>';
$sortby = 'queue_name';
foreach (array_merge(array('queue_name' => _("Queue")), $types) as $column => $name) {
$html .= '<th' . ($sortby == $column ? ' class="sortdown"' : '') . '>' . $name . '</th>';
}
$html .= '</tr></thead><tbody>';
foreach ($summary as $queue) {
$html .= '<tr><td>' . Horde::link(Whups::urlFor('queue', $queue, true), $queue['description']) . htmlspecialchars($queue['name']) . '</a></td>';
foreach ($types as $type) {
$html .= '<td>' . (isset($queue[$type]) ? $queue[$type] : ' ') . '</td>';
}
$html .= '</tr>';
}
$GLOBALS['page_output']->addScriptFile('tables.js', 'horde');
return '<table id="whups_block_queuesummary" class="horde-table sortable" style="width:100%">' . $html . '</tbody></table>';
}
}
|