Exemple #1
0
function print_status_table($vars)
{
    $sql = generate_status_query($vars);
    $status_list = array();
    foreach (dbFetchRows($sql) as $status) {
        if (isset($GLOBALS['cache']['devices']['id'][$status['device_id']])) {
            $status['hostname'] = $GLOBALS['cache']['devices']['id'][$status['device_id']]['hostname'];
            $status_list[] = $status;
        }
    }
    // Sorting
    // FIXME. Sorting can be as function, but in must before print_table_header and after get table from db
    switch ($vars['sort_order']) {
        case 'desc':
            $sort_order = SORT_DESC;
            $sort_neg = SORT_ASC;
            break;
        case 'reset':
            unset($vars['sort'], $vars['sort_order']);
            // no break here
        // no break here
        default:
            $sort_order = SORT_ASC;
            $sort_neg = SORT_DESC;
    }
    switch ($vars['sort']) {
        case 'device':
            $status_list = array_sort_by($status_list, 'hostname', $sort_order, SORT_STRING);
            break;
        case 'descr':
            $status_list = array_sort_by($status_list, 'status_descr', $sort_order, SORT_STRING);
            break;
        case 'class':
            $status_list = array_sort_by($status_list, 'entPhysicalClass', $sort_order, SORT_STRING);
            break;
        case 'event':
            $status_list = array_sort_by($status_list, 'status_event', $sort_order, SORT_STRING);
            break;
        case 'status':
            $status_list = array_sort_by($status_list, 'status_name', $sort_order, SORT_STRING);
            break;
        case 'last_change':
            $status_list = array_sort_by($status_list, 'status_last_change', $sort_neg, SORT_NUMERIC);
            break;
        default:
            $status_list = array_sort_by($status_list, 'hostname', $sort_order, SORT_STRING, 'status_descr', $sort_order, SORT_STRING);
    }
    $status_count = count($status_list);
    // Pagination
    $pagination_html = pagination($vars, $status_count);
    echo $pagination_html;
    if ($vars['pageno']) {
        $status_list = array_chunk($status_list, $vars['pagesize']);
        $status_list = $status_list[$vars['pageno'] - 1];
    }
    // End Pagination
    echo generate_box_open();
    print_status_table_header($vars);
    foreach ($status_list as $status) {
        print_status_row($status, $vars);
    }
    echo "</tbody></table>";
    echo generate_box_close();
    echo $pagination_html;
}
Exemple #2
0
<?php

/**
 * Observium Network Management and Monitoring System
 * Copyright (C) 2006-2015, Adam Armstrong - http://www.observium.org
 *
 * @package    observium
 * @subpackage webui
 * @author     Adam Armstrong <*****@*****.**>
 * @copyright  (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
 *
 */
$sql = "SELECT * FROM `status`";
$sql .= " LEFT JOIN `status-state` USING(`status_id`)";
$sql .= " WHERE `device_id` = ? ORDER BY `entPhysicalClass` DESC, `status_descr`;";
$status = dbFetchRows($sql, array($device['device_id']));
if (count($status)) {
    $box_args = array('title' => 'Status Indicators', 'url' => generate_url(array('page' => 'device', 'device' => $device['device_id'], 'tab' => 'health', 'metric' => 'status')), 'icon' => $config['entities']['status']['icon']);
    echo generate_box_open($box_args);
    echo '<table class="table table-condensed table-striped">';
    foreach ($status as $status) {
        $status['status_descr'] = truncate($status['status_descr'], 48, '');
        print_status_row($status, $vars);
    }
    echo "</table>";
    echo generate_box_close();
}
// EOF