!.
+% ( $def->{'label'} || $field ).
+% " | ";
+%
+% $html .= qq! | ';
+%
+% $flag = '' if $def->{type} eq 'disabled';
+%
+% $html .= qq!!;
+%
+% if ( $def->{type} eq 'disabled' ) {
+%
+% $html .= 'No default';
+%
+% } else {
+%
+% $html .= qq!';
+%
+% $html .= join("\n",
+% '',
+% );
+%
+% }
+%
+% $html .= qq! | !;
+%
+% my $disabled = $flag ? ''
+% : 'DISABLED STYLE="background-color: #dddddd"';
+%
+% if ( !$def->{type} || $def->{type} eq 'text' ) {
+%
+% my $nodisplay = ' STYLE="display:none"';
+% my $is_inv = ( $flag =~ /^[MA]$/ );
+%
+% $html .=
+% qq!';
+%
+% $html .= include('/elements/select-table.html',
+% 'element_name' => "${layer}__${field}_classnum",
+% 'element_etc' => ( $is_inv
+% ? $disabled
+% : $nodisplay
+% ),
+% 'table' => 'inventory_class',
+% 'name_col' => 'classname',
+% 'value' => $value,
+% 'empty_label' => 'Select inventory class',
+% );
+%
+% } elsif ( $def->{type} eq 'select' ) {
+%
+% $html .= qq!';
+%
+% } elsif ( $def->{type} eq 'select-svc_pbx.html' ) {
+%
+% $html .= include('/elements/select-svc_pbx.html',
+% 'element_name' => "${layer}__${field}",
+% 'element_etc' => $disabled,
+% 'multiple' => ($flag eq 'S'),
+% );
+%
+% } elsif ( $def->{type} eq 'radius_usergroup_selector' ) {
+%
+% #XXX disable the RADIUS usergroup selector? ugh it sure does need
+% #an overhaul, people have dum group problems because of it
+%
+% $html .= FS::svc_acct::radius_usergroup_selector(
+% [ split(',', $value) ], "${layer}__${field}" );
+%
+% } elsif ( $def->{type} eq 'disabled' ) {
+%
+% $html .=
+% qq!!;
+%
+% } else {
+%
+% $html .= 'unknown type '. $def->{type};
+%
+% }
+%
+% $html .= " |
\n";
-my %vfields;
+% $def_info = "($def_info)" if $def_info;
+% $html .=
+% qq!$field";
- $html .= "- $desc" if $desc;
- $html .= " | ";
- $flag = '' if ref($def) && $def->{type} eq 'disabled';
- $html .=
- qq!Off | ".
- '';
- unless ( ref($def) && $def->{type} eq 'disabled' ) {
- $html .=
- qq!Default ".
- qq!Fixed ";
- $html .= ' ';
- }
- if ( ref($def) ) {
- if ( $def->{type} eq 'select' ) {
- $html .= qq!';
- } elsif ( $def->{type} eq 'radius_usergroup_selector' ) {
- $html .= FS::svc_acct::radius_usergroup_selector(
- [ split(',', $value) ], "${layer}__${field}" );
- } elsif ( $def->{type} eq 'disabled' ) {
- $html .=
- qq!!;
- } else {
- $html .= 'unknown type'. $def->{type};
- }
- } else {
- $html .=
- qq!!;
- }
+my $part_svc;
+my $clone = '';
+if ( $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";
+ $part_svc=qsearchs('part_svc', { 'svcpart'=>$1 } )
+ or die "unknown svcpart: $1";
+} else { #adding
+ $part_svc = new FS::part_svc {};
+}
- if($vfields{$layer}->{$field}) {
- $html .= qq! Excluded ";
- }
- $html .= " |
\n";
- }
- $part_svc->svcpart('') if $clone; #undone
- $html .= "";
+my $action = $part_svc->svcpart ? 'Edit' : 'Add';
+my $hashref = $part_svc->hashref;
+# my $p_svcdb = $part_svc->svcdb || 'svc_acct';
- $html .= include('/elements/progress-init.html',
- $layer, #form name
- [ qw(svc svcpart disabled exportnum), @fields ],
- 'process/part_svc.cgi',
- $p.'browse/part_svc.cgi',
- $layer,
- );
- $html .= '