X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_export.cgi;h=1450ac3b3cf94c1e53bbd1fc42e5dd74833ba8d0;hb=0978ea95c15ee2af833b20b5985d3b57e194966d;hp=8b697e14230ca24a7d0774f8202801f93ecf76d0;hpb=40a7b3dc653e099f7bd0bd762b649b04c4432db2;p=freeside.git diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index 8b697e142..1450ac3b3 100644 --- a/httemplate/edit/part_export.cgi +++ b/httemplate/edit/part_export.cgi @@ -7,6 +7,12 @@ <% ntable("#cccccc",2) %> + Export name + + + + + Export host @@ -45,15 +51,19 @@ $action ||= $part_export->exportnum ? 'Edit' : 'Add'; #my $exports = FS::part_export::export_info($svcdb); my $exports = FS::part_export::export_info(); -my %layers = map { $_ => "$_ - ". $exports->{$_}{desc} } keys %$exports; -$layers{''}=''; +tie my %layers, 'Tie::IxHash', + '' => '', + map { $_ => "$_ - ". $exports->{$_}{desc} } + sort { $a cmp $b } + keys %$exports; +; my $widget = new HTML::Widgets::SelectLayers( 'selected_layer' => $part_export->exporttype, 'options' => \%layers, 'form_name' => 'dummy', 'form_action' => 'process/part_export.cgi', - 'form_text' => [qw( exportnum machine )], + 'form_text' => [qw( exportnum exportname machine )], # 'form_checkbox' => [qw()], 'html_between' => "\n", 'layer_callback' => sub { @@ -77,7 +87,23 @@ my $widget = new HTML::Widgets::SelectLayers( ? $optinfo->{default} : '' ); - $html .= qq!$label!; + if ( $type eq 'title' ) { + $html .= qq!! . + $label . + ''; + next; + } + + # 'freeform': disables table formatting of options. Instead, each + # option can define "before" and "after" strings which are inserted + # around the selector. + my $freeform = $optinfo->{freeform}; + if ( $freeform ) { + $html .= $optinfo->{before} || ''; + } + else { + $html .= qq!$label!; + } if ( $type eq 'select' ) { my $size = defined($optinfo->{size}) ? " SIZE=" . $optinfo->{size} : ''; my $multi = defined($optinfo->{multi}) ? ' MULTIPLE' : ''; @@ -108,7 +134,7 @@ my $widget = new HTML::Widgets::SelectLayers( $html .= qq!'; } elsif ( $type eq 'text' ) { - $html .= qq!'; } elsif ( $type eq 'checkbox' ) { $html .= qq!{after} || ''; + } + else { + $html .= ''; + } + } + + if ( $exports->{$layer}{nas} and qsearch('nas',{}) ) { + # show NAS checkboxes + $html .= 'Export RADIUS clients'; + + $html .= include('/elements/checkboxes-table.html', + 'source_obj' => $part_export, + 'link_table' => 'export_nas', + 'target_table' => 'nas', + #hashref => {}, + 'name_callback' => sub { + $_[0]->shortname . ' (' . $_[0]->nasname . ')', + }, + 'default' => 'yes', + 'target_link' => $p.'edit/nas.html?', + ); + $html .= ''; } + $html .= ''; $html .= '