From 7ad2a279a763e2d74612e0d164f036a80148bbcd Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 27 Feb 2011 19:08:12 +0000 Subject: [PATCH] torrus virtual ports, RT#10574 --- httemplate/edit/torrus_srvderive.html | 3 +- httemplate/misc/process/nms-add_iface.html | 3 + torrus/perllib/Torrus/Renderer/HTML.pm | 99 ++++++++++++++++-------------- 3 files changed, 59 insertions(+), 46 deletions(-) diff --git a/httemplate/edit/torrus_srvderive.html b/httemplate/edit/torrus_srvderive.html index 51e23377c..9d1b9bbeb 100644 --- a/httemplate/edit/torrus_srvderive.html +++ b/httemplate/edit/torrus_srvderive.html @@ -1,7 +1,8 @@ <% include( 'elements/edit.html', 'name_singular' => 'virtual port', 'table' => 'torrus_srvderive', - 'labels' => { 'serviceid' => 'Virtual Port serviceid', + 'labels' => { 'derivenum' => 'Virtual Port', + 'serviceid' => 'Torrus serviceid', }, 'fields' => [ 'serviceid', ], diff --git a/httemplate/misc/process/nms-add_iface.html b/httemplate/misc/process/nms-add_iface.html index 04d6095d0..8c1e67350 100644 --- a/httemplate/misc/process/nms-add_iface.html +++ b/httemplate/misc/process/nms-add_iface.html @@ -1,4 +1,7 @@ <% header('Interface added') %> + <%init> diff --git a/torrus/perllib/Torrus/Renderer/HTML.pm b/torrus/perllib/Torrus/Renderer/HTML.pm index bf6ba99b9..1408b7f64 100644 --- a/torrus/perllib/Torrus/Renderer/HTML.pm +++ b/torrus/perllib/Torrus/Renderer/HTML.pm @@ -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.8 2011-02-10 01:08:44 levinse Exp $ +# $Id: HTML.pm,v 1.9 2011-02-27 19:08:12 ivan Exp $ # Stanislav Sinyagin package Torrus::Renderer::HTML; @@ -119,50 +119,59 @@ sub render_html 'freesideFooter' => sub { return $self->freesideFooter(); }, 'freesideComponent' => sub { return $self->freesideComponent(@_); }, 'uri_escape' => sub { return uri_escape(@_); }, - '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 "View Service"; - } - - 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]; }, + '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 = ''; + + if ( $serviceids && $serviceids->{$iface} ) { + + my $svc_port = $nms->find_svc($serviceids->{$iface}) + + if ($svc_port) { + my $url = $Torrus::Freeside::FSURL. + "/view/svc_port.cgi?".$svc_port->svcnum; + return "View Service"; + } else { + return 'Monitored as '. $serviceids->{$iface}. + '; customer service not yet provisioned'; + } + + } else { + + 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', + ); + } + + ''; + }, }; -- 2.11.0