diff options
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/browse/torrus_srvderive.html | 26 | ||||
-rw-r--r-- | httemplate/edit/process/torrus_srvderive.html | 21 | ||||
-rw-r--r-- | httemplate/edit/torrus_srvderive.html | 37 | ||||
-rw-r--r-- | httemplate/elements/checkboxes-table-name.html | 1 | ||||
-rw-r--r-- | httemplate/elements/checkboxes.html | 4 | ||||
-rw-r--r-- | httemplate/elements/menu.html | 13 | ||||
-rw-r--r-- | httemplate/elements/select-torrus_serviceid.html | 14 |
7 files changed, 102 insertions, 14 deletions
diff --git a/httemplate/browse/torrus_srvderive.html b/httemplate/browse/torrus_srvderive.html new file mode 100644 index 000000000..92cbb6928 --- /dev/null +++ b/httemplate/browse/torrus_srvderive.html @@ -0,0 +1,26 @@ +<% include( 'elements/browse.html', + 'title' => 'Virtual network ports', + 'name_singular' => 'port', + 'menubar' => [ 'Add a new virtual port' => + $p.'edit/torrus_srvderive.html', + ], + 'query' => { 'table' => 'torrus_srvderive' }, + 'count_query' => 'SELECT COUNT(*) FROM torrus_srvderive', + 'header' => [ 'Virtual Port', 'Components', ], + 'fields' => [ 'serviceid', $components_sub, ], + 'links' => [ $link, '', ], + ) +%> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $link = [ $p.'edit/torrus_srvderive.html?', 'derivenum' ]; + +my $components_sub = sub { + my $torrus_srvderive = shift; + join('<BR>', $torrus_srvderive->component_serviceids); +}; + +</%init> diff --git a/httemplate/edit/process/torrus_srvderive.html b/httemplate/edit/process/torrus_srvderive.html new file mode 100644 index 000000000..c3260bc8a --- /dev/null +++ b/httemplate/edit/process/torrus_srvderive.html @@ -0,0 +1,21 @@ +<% include( 'elements/process.html', + 'table' => 'torrus_srvderive', + 'viewall_dir' => 'browse', + 'process_m2name' => { + 'link_table' => 'torrus_srvderive_component', + 'num_col' => 'derivenum', + 'name_col' => 'serviceid', + 'names_list' => \@serviceids, + 'param_style' => 'link_table.value checkboxes', + }, + ) +%> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $nms = new FS::NetworkMonitoringSystem; +my @serviceids = $nms->torrus_serviceids; + +</%init> diff --git a/httemplate/edit/torrus_srvderive.html b/httemplate/edit/torrus_srvderive.html new file mode 100644 index 000000000..51e23377c --- /dev/null +++ b/httemplate/edit/torrus_srvderive.html @@ -0,0 +1,37 @@ +<% include( 'elements/edit.html', + 'name_singular' => 'virtual port', + 'table' => 'torrus_srvderive', + 'labels' => { 'serviceid' => 'Virtual Port serviceid', + }, + 'fields' => [ 'serviceid', + ], + 'viewall_dir' => 'browse', + 'html_bottom' => $html_bottom_sub, + ) +%> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $html_bottom_sub = sub { + my $torrus_srvderive = shift; + + my $nms = new FS::NetworkMonitoringSystem; + my @serviceids = $nms->torrus_serviceids; + + ntable('#cccccc',2).'<TR><TD>'. + include( '/elements/checkboxes-table-name.html', + 'source_obj' => $torrus_srvderive, + 'link_table' => 'torrus_srvderive_component', + 'num_col' => 'derivenum', + 'name_col' => 'serviceid', + 'names_list' => \@serviceids, + 'disable_links' => 1, + ). + '</TD></TR></TABLE>'; + +}; + + +</%init> diff --git a/httemplate/elements/checkboxes-table-name.html b/httemplate/elements/checkboxes-table-name.html index 31652f330..8ee2f7736 100644 --- a/httemplate/elements/checkboxes-table-name.html +++ b/httemplate/elements/checkboxes-table-name.html @@ -45,6 +45,7 @@ Example: 'names_list' => $opt{'names_list'}, 'checked_callback' => $checked_callback, 'element_name_prefix' => $opt{'link_table'}. '.', + 'disable_links' => $opt{'disable_links'}, ) %> diff --git a/httemplate/elements/checkboxes.html b/httemplate/elements/checkboxes.html index b120adab7..69ef18fb9 100644 --- a/httemplate/elements/checkboxes.html +++ b/httemplate/elements/checkboxes.html @@ -29,6 +29,8 @@ Example: <TABLE CELLSPACING=0 CELLPADDING=0> +% unless ( $opt{'disable_links'} ) { + <TR> <TD COLSPAN=2 ALIGN="center"><FONT SIZE="-1">( <A HREF="javascript:setAll<%$prefix%>(true)">select all</A> | @@ -37,6 +39,8 @@ Example: )</FONT></TD> </TR> +% } + % my $num=0; % foreach my $item ( @{ $opt{'names_list'} } ) { % diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index 651b04d28..d0741596b 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -501,6 +501,10 @@ tie my %config_phone, 'Tie::IxHash', 'View/Edit bulk DID vendors' => [ $fsurl.'browse/did_vendor.html', 'Bulk DID vendors' ], ; +tie my %config_nms, 'Tie::IxHash', + 'View/Edit virtual ports' => [ $fsurl.'browse/torrus_srvderive.html', '' ], +; + tie my %config_misc, 'Tie::IxHash'; $config_misc{'Message templates'} = [ $fsurl.'browse/msg_template.html', 'Templates for customer notices' ] if $curuser->access_right('Edit templates') @@ -545,11 +549,14 @@ $config_menu{'Ticketing'} = [ \%config_ticketing, '' ] if $conf->config('ticket_system') && FS::TicketSystem->access_right(\%session, 'ShowConfigTab'); $config_menu{'Dialup'} = [ \%config_dialup, '' ] - if ( $curuser->access_right('Dialup configuration') ); + if $curuser->access_right('Dialup configuration'); $config_menu{'Broadband'} = [ \%config_broadband, '' ] - if ( $curuser->access_right('Broadband configuration') ); + if $curuser->access_right('Broadband configuration'); $config_menu{'Phone'} = [ \%config_phone, '' ] - if ( $curuser->access_right('Configuration') ); + if $curuser->access_right('Configuration'); +$config_menu{'Network Monitoring'} = [ \%config_nms, '' ] + if $curuser->access_right('Configuration') + && $conf->config('network_monitoring_system') eq 'Torrus_Internal'; $config_menu{'Miscellaneous'} = [ \%config_misc, '' ] if $curuser->access_right('Configuration' ) || $curuser->access_right('Edit advertising sources') diff --git a/httemplate/elements/select-torrus_serviceid.html b/httemplate/elements/select-torrus_serviceid.html index 34e8e930f..e13a6e80d 100644 --- a/httemplate/elements/select-torrus_serviceid.html +++ b/httemplate/elements/select-torrus_serviceid.html @@ -4,7 +4,7 @@ <OPTION VALUE="">Select serviceid</OPTION> % } -% foreach my $serviceid ( keys %serviceid ) { +% foreach my $serviceid ( @serviceids ) { <OPTION VALUE="<%$serviceid%>" <% $serviceid eq $value ? 'SELECTED' : '' %> ><% $serviceid %></OPTION> @@ -18,15 +18,7 @@ my %opt = @_; my $value = $opt{'curr_value'} || $opt{'value'}; -#is this going to get too slow or will the index make it okay? -my $sth = dbh->prepare("SELECT DISTINCT(serviceid) FROM srvexport") - or die dbh->errstr; -$sth->execute or die $sth->errstr; -my %serviceid = (); -while ( my $row = $sth->fetchrow_arrayref ) { - my $serviceid = $row->[0]; - $serviceid =~ s/_(IN|OUT)$//; - $serviceid{$serviceid}=1; -} +my $nms = new FS::NetworkMonitoringSystem; +my @serviceids = $nms->torrus_serviceids; </%init> |