Skip to content

Commit

Permalink
fix: top widget multiple instances (#4757)
Browse files Browse the repository at this point in the history
  • Loading branch information
crcro authored and laf committed Oct 14, 2016
1 parent 0092817 commit 610c933
Showing 1 changed file with 20 additions and 29 deletions.
49 changes: 20 additions & 29 deletions html/includes/common/top-devices.inc.php
Expand Up @@ -15,23 +15,11 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. */

/**
* Top devices
* @author Sergiusz Paprzycki
* @copyright 2015 Sergiusz Paprzycki <serek@walcz.net>
* @copyright 2016 Cercel Valentin <crc@nuamchefazi.ro>
* @license GPL
* @package LibreNMS
* @subpackage Widgets
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

$sql = dbFetchRow('SELECT `settings` FROM `users_widgets` WHERE `user_id` = ? AND `widget_id` = ?', array($_SESSION["user_id"], '11'));
$widget_mode = json_decode($sql['settings'], true);

$top_query = $widget_mode['top_query'];
$sort_order = $widget_mode['sort_order'];
$top_query = $widget_settings['top_query'];
$sort_order = $widget_settings['sort_order'];

$selected_sort_asc = '';
$selected_sort_desc = '';
Expand Down Expand Up @@ -87,6 +75,9 @@
$graph_params = array('tab' => 'graphs', 'group' => 'poller');
}

$widget_settings['device_count'] = $widget_settings['device_count'] > 0 ? $widget_settings['device_count'] : 5;
$widget_settings['time_interval'] = $widget_settings['time_interval'] > 0 ? $widget_settings['time_interval'] : 15;

if (defined('SHOW_SETTINGS') || empty($widget_settings)) {
$common_output[] = '
<form class="form" onsubmit="widget_settings(this); return false;">
Expand Down Expand Up @@ -129,15 +120,15 @@
<label for="graph_type" class="control-label availability-map-widget-header">Number of Devices</label>
</div>
<div class="col-sm-6">
<input class="form-control" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="device_count" id="input_count_' . $unique_id . '" placeholder="ie. 5" value="' . $widget_settings['device_count'] . '">
<input class="form-control" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="device_count" id="input_count_' . $unique_id . '" value="' . $widget_settings['device_count'] . '">
</div>
</div>
<div class="form-group">
<div class="col-sm-4">
<label for="graph_type" class="control-label availability-map-widget-header">Time interval (minutes)</label>
</div>
<div class="col-sm-6">
<input class="form-control" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="time_interval" id="input_time_' . $unique_id . '" placeholder="ie. 15" value="' . $widget_settings['time_interval'] . '">
<input class="form-control" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57" name="time_interval" id="input_time_' . $unique_id . '" value="' . $widget_settings['time_interval'] . '">
</div>
</div>
<div class="form-group">
Expand Down Expand Up @@ -165,7 +156,7 @@
AND ( p.ifInOctets_rate > 0
OR p.ifOutOctets_rate > 0 )
GROUP BY d.device_id
ORDER BY total '.$sort_order.'
ORDER BY total ' . $sort_order . '
LIMIT :count
';
} else {
Expand All @@ -178,7 +169,7 @@
AND ( p.ifInOctets_rate > 0
OR p.ifOutOctets_rate > 0 )
GROUP BY d.device_id
ORDER BY total '.$sort_order.'
ORDER BY total ' . $sort_order . '
LIMIT :count
';
}
Expand All @@ -187,31 +178,31 @@
$query = 'SELECT `uptime`, `hostname`, `last_polled`, `device_id`
FROM `devices`
WHERE unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `uptime` '.$sort_order.'
ORDER BY `uptime` ' . $sort_order . '
LIMIT :count';
} else {
$query = 'SELECT `uptime`, `hostname`, `last_polled`, `d`.`device_id`
FROM `devices` as `d`, `devices_perms` AS `P`
WHERE `P`.`user_id` = :user
AND `P`.`device_id` = `d`.`device_id`
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `uptime` '.$sort_order.'
ORDER BY `uptime` ' . $sort_order . '
LIMIT :count';
}
} elseif ($top_query === 'ping') {
if (is_admin() || is_read()) {
$query = 'SELECT `last_ping_timetaken`, `hostname`, `last_polled`, `device_id`
FROM `devices`
WHERE unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `last_ping_timetaken` '.$sort_order.'
ORDER BY `last_ping_timetaken` ' . $sort_order . '
LIMIT :count';
} else {
$query = 'SELECT `last_ping_timetaken`, `hostname`, `last_polled`, `d`.`device_id`
FROM `devices` as `d`, `devices_perms` AS `P`
WHERE `P`.`user_id` = :user
AND `P`.`device_id` = `d`.`device_id`
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `last_ping_timetaken` '.$sort_order.'
ORDER BY `last_ping_timetaken` ' . $sort_order . '
LIMIT :count';
}
} elseif ($top_query === 'cpu') {
Expand All @@ -221,15 +212,15 @@
WHERE `d`.`device_id` = `procs`.`device_id`
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
GROUP BY `d`.`device_id`
ORDER BY `cpuload` '.$sort_order.'
ORDER BY `cpuload` ' . $sort_order . '
LIMIT :count';
} else {
$query = 'SELECT `hostname`, `last_polled`, `d`.`device_id`, avg(`processor_usage`) as `cpuload`
FROM `processors` AS procs, `devices` AS `d`, `devices_perms` AS `P`
WHERE `P`.`user_id` = :user AND `P`.`device_id` = `procs`.`device_id`
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
GROUP BY `procs`.`device_id`
ORDER BY `cpuload` '.$sort_order.'
ORDER BY `cpuload` ' . $sort_order . '
LIMIT :count';
}
} elseif ($top_query === 'ram') {
Expand All @@ -239,31 +230,31 @@
WHERE `d`.`device_id` = `mem`.`device_id`
AND `mempool_descr` IN (\'Physical memory\',\'Memory\')
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `mempool_perc` '.$sort_order.'
ORDER BY `mempool_perc` ' . $sort_order . '
LIMIT :count';
} else {
$query = 'SELECT `hostname`, `last_polled`, `d`.`device_id`, `mempool_perc`
FROM `mempools` as `mem`, `devices` as `d`, `devices_perms` AS `P`
WHERE `P`.`user_id` = :user AND `P`.`device_id` = `mem`.`device_id`
AND `mempool_descr` IN (\'Physical memory\',\'Memory\')
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `mempool_perc` '.$sort_order.'
ORDER BY `mempool_perc` ' . $sort_order . '
LIMIT :count';
}
} elseif ($top_query === 'poller') {
if (is_admin() || is_read()) {
$query = 'SELECT `last_polled_timetaken`, `hostname`, `last_polled`, `device_id`
FROM `devices`
WHERE unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `last_polled_timetaken` '.$sort_order.'
ORDER BY `last_polled_timetaken` ' . $sort_order . '
LIMIT :count';
} else {
$query = 'SELECT `last_polled_timetaken`, `hostname`, `last_polled`, `d`.`device_id`
FROM `devices` as `d`, `devices_perms` AS `P`
WHERE `P`.`user_id` = :user
AND `P`.`device_id` = `d`.`device_id`
AND unix_timestamp() - UNIX_TIMESTAMP(`last_polled`) < :interval
ORDER BY `last_polled_timetaken` '.$sort_order.'
ORDER BY `last_polled_timetaken` ' . $sort_order . '
LIMIT :count';
}
}
Expand Down

0 comments on commit 610c933

Please sign in to comment.