complete the observium plugin
This commit is contained in:
@@ -19,6 +19,7 @@ requires 'HTML::Parser' => 3.70;
|
||||
requires 'HTTP::Tiny' => 0.029;
|
||||
requires 'JSON' => 0;
|
||||
requires 'List::MoreUtils' => 0.33;
|
||||
requires 'MIME::Base64' => 3.13;
|
||||
requires 'Moo' => 1.001000;
|
||||
requires 'MCE' => 1.408;
|
||||
requires 'Net::DNS' => 0.72;
|
||||
|
||||
@@ -7,6 +7,8 @@ package App::Netdisco::DB::Result::DevicePort;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use MIME::Base64 'encode_base64url';
|
||||
|
||||
use base 'DBIx::Class::Core';
|
||||
__PACKAGE__->table("device_port");
|
||||
__PACKAGE__->add_columns(
|
||||
@@ -266,4 +268,13 @@ See the C<with_is_free> and C<only_free_ports> modifiers to C<search()>.
|
||||
|
||||
sub is_free { return (shift)->get_column('is_free') }
|
||||
|
||||
=head2 base64url_port
|
||||
|
||||
Returns a Base64 encoded version of the C<port> column value suitable for use
|
||||
in a URL.
|
||||
|
||||
=cut
|
||||
|
||||
sub base64url_port { return encode_base64url((shift)->port) }
|
||||
|
||||
1;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package App::NetdiscoX::Web::Plugin::ObserviumSparklines;
|
||||
package App::NetdiscoX::Web::Plugin::Observium;
|
||||
|
||||
use Dancer ':syntax';
|
||||
use Dancer::Plugin::DBIC;
|
||||
@@ -9,13 +9,13 @@ use File::ShareDir 'dist_dir';
|
||||
use Path::Class;
|
||||
|
||||
register_device_port_column({
|
||||
name => 'observiumsparklines',
|
||||
name => 'observium',
|
||||
position => 'mid',
|
||||
label => 'Traffic',
|
||||
default => 'on',
|
||||
});
|
||||
|
||||
register_css('observiumsparklines');
|
||||
register_javascript('observiumsparklines');
|
||||
register_css('observium');
|
||||
register_javascript('observium');
|
||||
|
||||
true;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -66,9 +66,13 @@
|
||||
[% FOREACH config IN settings._extra_device_port_cols %]
|
||||
[% NEXT UNLESS config.position == 'mid' AND params.${config.name} %]
|
||||
<td>
|
||||
[% TRY %]
|
||||
[% INCLUDE "plugin/${config.name}/device_port_column.tt" %]
|
||||
[% CATCH %]
|
||||
<!-- dummy content required by Template Toolkit TRY -->
|
||||
[% END %]
|
||||
</td>
|
||||
[% END -%]
|
||||
[% END %]
|
||||
|
||||
[% IF params.c_descr %]
|
||||
<td nowrap>[% row.descr | html_entity %]</td>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<a href="http://[% settings.plugin_observium.webhost | uri %]/device/hostname=[% device.dns || device.name | uri %]/tab=port/ifdescr=[% row.base64url_port %]/"
|
||||
[% 'target="_blank"' IF settings.plugin_observium.open_in_new_window %]
|
||||
class="btn nd_observium"
|
||||
data-content='
|
||||
<img src="http://[% settings.plugin_observium.webhost | uri %]/graph.php?type=port_bits&device=[% device.dns || device.name | uri %]&port=[% row.port | uri %]&from=-1w&to=now&width=208&height=100&title=yes"/>'
|
||||
><i class="icon-bar-chart"></i></a>
|
||||
6
Netdisco/share/views/plugin/observium/observium.css
Normal file
6
Netdisco/share/views/plugin/observium/observium.css
Normal file
@@ -0,0 +1,6 @@
|
||||
.nd_observium-style {
|
||||
min-width: none;
|
||||
max-width: none;
|
||||
margin-top: 5px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
25
Netdisco/share/views/plugin/observium/observium.js
Normal file
25
Netdisco/share/views/plugin/observium/observium.js
Normal file
@@ -0,0 +1,25 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
// bind qtip2 even to all future .observium buttons
|
||||
$('#ports_pane').on('mouseover', '.nd_observium', function(event) {
|
||||
$(this).qtip({
|
||||
overwrite: false,
|
||||
content: {
|
||||
attr: 'data-content'
|
||||
},
|
||||
show: {
|
||||
event: event.type,
|
||||
ready: true
|
||||
},
|
||||
position: {
|
||||
my: 'left center',
|
||||
at: 'right centre',
|
||||
target: 'mouse'
|
||||
},
|
||||
style: {
|
||||
classes: 'qtip-bootstrap nd_observium-style'
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
@@ -1,4 +0,0 @@
|
||||
<button class="btn" rel="popover" data-trigger="hover" data-html="true" data-content='
|
||||
<img src="http://[% settings.plugin_observiumsparklines.webhost | html_entity %]/graph.php?type=port_bits&device=[% device.dns || device.name | uri %]&port=[% row.port | uri %]&from=-1w&to=now&width=208&height=100&title=yes"/>
|
||||
'
|
||||
><i class="icon-bar-chart"></i></button>
|
||||
Reference in New Issue
Block a user