- 'matches' => sub { return $_[0] =~ $_[1]; },
- 'slash2underscore' => sub { $_[0] =~ s/\//_/g; return $_[0]; },
- 'load_nms' => sub { return $self->load_nms; },
- 'get_serviceids' => sub { my $nms = shift;
- my $router = shift;
- return $nms->get_router_serviceids($router);
- },
- 'popup_link' => sub {
- my $type = shift;
-
- if($type eq 'nms-add_iface.html') {
- my $host = shift;
- my $iface = shift;
- my $nms = shift;
- my $serviceids = shift;
- my $svc_port = '';
-
- $svc_port = $nms->find_svc($serviceids->{$iface})
- if($serviceids && $serviceids->{$iface});
-
- if($svc_port) {
- my $url = $Torrus::Freeside::FSURL."/view/svc_port.cgi?".$svc_port->svcnum;
- return "<A HREF='$url'>View Service</A>";
- }
-
- return
- $self->freesideComponent('/elements/popup_link.html',
- 'action' => "/freeside/misc/".
- $type."?host=$host;iface=$iface",
- 'label' => 'Monitor for billing',
- 'actionlabel' => 'Monitor interface',
- );
- }
- elsif($type eq 'nms-add_router.html') {
- return
- $self->freesideComponent('/elements/popup_link.html',
- 'action' => "/freeside/misc/$type",
- 'label' => 'Add Router',
- 'actionlabel' => 'Add Router',
- );
- }
-
- '';
- },
+ 'matches' => sub { return $_[0] =~ $_[1]; },
+
+ #false laziness w/Torrus_Internal::add_interface, update both
+ 'iface_underscore' => sub { $_[0] =~ s/[\/\.\-]/_/g; return $_[0]; },
+
+ 'load_nms' => sub { return $self->load_nms; },
+ 'get_serviceids' => sub { my $nms = shift;
+ my $router = shift;
+ return $nms->get_router_serviceids($router);
+ },
+ 'popup_link' => sub {
+ my $type = shift;
+
+ if($type eq 'nms-add_iface.html') {
+ my $host = shift;
+ my $interface = shift;
+ my $nms = shift;
+ my $serviceids = shift;
+
+ if ( $serviceids && $serviceids->{$interface} ) {
+
+ my $serviceid = $serviceids->{$interface};
+
+ my $svc_port = $nms->find_svc($serviceid);
+
+ if ($svc_port) {
+ my $url = $Torrus::Freeside::FSURL.
+ "/view/svc_port.cgi?". $svc_port->svcnum;
+ return "<A HREF='$url'>View Service</A>";
+ } else {
+ my $component =
+ $nms->find_torrus_srvderive_component($serviceid);
+
+ if ($component) {
+ return "$serviceid combined into ".
+ $component->torrus_srvderive->serviceid;
+ } else {
+ return "Monitored as $serviceid".
+ '; not yet provisioned or combined';
+ }
+ }
+
+ } else {
+
+ return
+ $self->freesideComponent('/elements/popup_link.html',
+ 'action' => "/freeside/misc/".
+ $type."?host=$host;iface=$interface",
+ 'label' => 'Monitor for billing',
+ 'actionlabel' => 'Monitor interface',
+ );
+
+ }
+
+ } elsif ($type eq 'nms-add_router.html') {
+ return
+ $self->freesideComponent('/elements/popup_link.html',
+ 'action' => "/freeside/misc/$type",
+ 'label' => 'Add Router',
+ 'actionlabel' => 'Add Router',
+ );
+ }
+
+ '';
+ },