fix ports with dashes (-) not showing their monitoring status, RT#14926
[freeside.git] / torrus / perllib / Torrus / Renderer / HTML.pm
index e9f72ac..70cfda8 100644 (file)
@@ -14,7 +14,7 @@
 #  along with this program; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 
-# $Id: HTML.pm,v 1.1 2010-12-27 00:03:44 ivan Exp $
+# $Id: HTML.pm,v 1.15 2011-10-26 02:44:16 ivan Exp $
 # Stanislav Sinyagin <ssinyagin@yahoo.com>
 
 package Torrus::Renderer::HTML;
@@ -112,7 +112,79 @@ sub render_html
         'verifyDate'  => sub { return verifyDate($_[0]); },
         'markup'     => sub{ return $self->translateMarkup( @_ ); },
         'searchEnabled' => $Torrus::Renderer::searchEnabled,
-        'searchResults' => sub { return $self->doSearch($config_tree, $_[0]); }
+        'searchResults' => sub { return $self->doSearch($config_tree, $_[0]); },
+
+        #Freeside
+        'freesideHeader' => sub { return $self->freesideHeader(@_); },
+        'freesideFooter' => sub { return $self->freesideFooter(); },
+        'freesideComponent' => sub { return $self->freesideComponent(@_); },
+        'uri_escape'        => sub { return uri_escape(@_); },
+        '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',
+                   );
+          }
+
+          '';
+       },
+
     };