librenms-librenms/html/includes/table/component.inc.php
Tony Murray b8e9b2d917 Implement an autoloader (#4140)
* Implement an autoloader

When cleaning up classes for psr2, things got a bit unwieldy, so I implemented a class autoloader.
I created a PSR-0 compliant LibreNMS directory and moved all classes there that made sense.
Implemented LibreNMS\ClassLoader which supports adding manual class mappings

This reduces the file includes needed and only loads classes when needed.

* Add teh autoloader to graph.php

* Add a small bit of docs
Fix incomplete class in includes/discovery/functions.inc.php
2016-08-21 14:07:14 +01:00

69 lines
2.8 KiB
PHP

<?php
$row = 1;
$device_id = $_POST['device_id'];
$OBJCOMP = new LibreNMS\Component();
// Add a filter if supplied
if (isset($searchPhrase) && !empty($searchPhrase)) {
$options['filter']['label'] = array('LIKE', $searchPhrase);
}
// Add a Sort option
if (!isset($sort) || empty($sort)) {
// Nothing supplied, default is id ASC.
$options['sort'] = 'id asc';
} else {
$options['sort'] = $sort;
}
// Define the Limit parameters
if (isset($current)) {
$start = (($current * $rowCount) - ($rowCount));
}
if ($rowCount != -1) {
$options['limit'] = array($start,$rowCount);
}
$COMPONENTS = $OBJCOMP->getComponents($device_id, $options);
$response[] = array(
'id' => '<button type="submit" id="save-form" class="btn btn-success btn-sm" title="Save current component disable/ignore settings">Save</button><button type="submit" id="form-reset" class="btn btn-danger btn-sm" title="Reset form to when the page was loaded">Reset</button>',
'label' => '&nbsp;',
'status' => '<button type="submit" id="warning-select" class="btn btn-default btn-sm" title="Disable alerting on all currently warning components">Warning</button>&nbsp;<button type="submit" id="critical-select" class="btn btn-default btn-sm" title="Disable alerting on all currently critical components">Critical</button>',
'disable' => '<button type="submit" id="disable-toggle" class="btn btn-default btn-sm" title="Toggle polling for all components">Toggle</button><button type="button" id="disable-select" class="btn btn-default btn-sm" title="Disable polling on all components">Select All</button>',
'ignore' => '<button type="submit" id="ignore-toggle" class="btn btn-default btn-sm" title="Toggle alerting for all components">Toggle</button><button type="button" id="ignore-select" class="btn btn-default btn-sm" title="Disable alerting on all components">Select All</button>',
);
foreach ($COMPONENTS[$device_id] as $ID => $AVP) {
if ($AVP['status'] == 0) {
$class = "green";
$status = "Ok";
} elseif ($AVP['status'] == 1) {
$class = "grey";
$status = "Warning";
} else {
// Critical
$class = "red";
$status = "Critical";
}
$response[] = array(
'id' => $ID,
'type' => $AVP['type'],
'label' => $AVP['label'],
'status' => "<span name='status_".$ID."' class='".$class."'>".$status."</span>",
'disable' => '<input type="checkbox" class="disable-check" name="dis_'.$ID.'"'.($AVP['disabled'] ? 'checked' : '').'>',
'ignore' => '<input type="checkbox" class="ignore-check" name="ign_'.$ID.'"'.($AVP['ignore'] ? 'checked' : '').'>',
);
}//end foreach
$output = array(
'current' => $current,
'rowCount' => $rowCount,
'rows' => $response,
'total' => count($COMPONENTS[$device_id]),
);
echo _json_encode($output);