X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_svc.cgi;h=36f764140ec80f130d387500858c0e054be4a51b;hb=0e8861ca6b3b04b99ea9477e8c1555561b21c929;hp=3292a9b9b3e38391d1f1f910e29b248b6b22ea5f;hpb=f96adaf19c0097ef8c9d6f29a5541b75381cc05d;p=freeside.git
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index 3292a9b9b..36f764140 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -1,10 +1,17 @@
<%
my $part_svc;
+ my $clone = '';
if ( $cgi->param('error') ) { #error
$part_svc = new FS::part_svc ( {
map { $_, scalar($cgi->param($_)) } fields('part_svc')
} );
+ } elsif ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone
+ #$cgi->param('clone') =~ /^(\d+)$/ or die "malformed query: $query";
+ $part_svc = qsearchs('part_svc', { 'svcpart'=>$1 } )
+ or die "unknown svcpart: $1";
+ $clone = $part_svc->svcpart;
+ $part_svc->svcpart('');
} elsif ( $cgi->keywords ) { #edit
my($query) = $cgi->keywords;
$query =~ /^(\d+)$/ or die "malformed query: $query";
@@ -86,6 +93,10 @@ my %defs = (
select_key => 'svcnum',
select_label => 'domain',
},
+ 'usergroup' => {
+ desc =>'ICRADIUS/FreeRADIUS groups',
+ type =>'radius_usergroup_selector',
+ },
},
'svc_domain' => {
'domain' => 'Domain',
@@ -128,12 +139,38 @@ my %defs = (
'form_checkbox' => [ 'disabled' ],
'layer_callback' => sub {
my $layer = shift;
- my $html = qq!!.
- table(). "
Field | Modifier | ";
+ my $html = qq!!;
+
+ my $columns = 3;
+ my $count = 0;
+ my @part_export =
+# grep { $layer eq FS::part_export::exporttype2svcdb($_->exporttype) }
+# qsearch( 'part_export', {} );
+ map { qsearch( 'part_export', {exporttype => $_ } ) }
+ keys(%{FS::part_export::export_info($layer)});
+ $html .= '
'. table().
+ table(). "Exports |
---|
";
+ foreach my $part_export ( @part_export ) {
+ $html .= ' $part_export->exportnum,
+ svcpart => $clone || $part_svc->svcpart });
+ $html .= '> '. $part_export->exporttype. ' to '. $part_export->machine.
+ ' | ';
+ $count++;
+ $html .= '
' unless $count % $columns;
+ }
+ $html .= '
';
+
+ $html .= table(). "Field | Modifier | ";
#yucky kludge
my @fields = defined( $FS::Record::dbdef->table($layer) )
? grep { $_ ne 'svcnum' } fields($layer)
: ();
+ push @fields, 'usergroup' if $layer eq 'svc_acct'; #kludge
+ $part_svc->svcpart($clone) if $clone; #haha, undone below
foreach my $field (@fields) {
my $part_svc_column = $part_svc->part_svc_column($field);
my $value = $cgi->param('error')
@@ -167,6 +204,9 @@ my %defs = (
$record->getfield($def->{select_label}). '';
}
$html .= '';
+ } elsif ( $def->{type} eq 'radius_usergroup_selector' ) {
+ $html .= FS::svc_acct::radius_usergroup_selector(
+ [ split(',', $value) ], "${layer}__${field}" );
} else {
$html .= 'unknown type'. $def->{type};
}
@@ -176,6 +216,7 @@ my %defs = (
}
$html .= "\n";
}
+ $part_svc->svcpart('') if $clone; #undone
$html .= "";
$html .= '