<% my $part_svc; if ( $cgi->param('error') ) { #error $part_svc = new FS::part_svc ( { map { $_, scalar($cgi->param($_)) } fields('part_svc') } ); } 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 {}; } my $action = $part_svc->svcpart ? 'Edit' : 'Add'; my $hashref = $part_svc->hashref; my $p_svcdb = $part_svc->svcdb || 'svc_acct'; %> <%= header("$action Service Definition", menubar( 'Main Menu' => $p, 'View all service definitions' => "${p}browse/part_svc.cgi" ), " onLoad=\"visualize()\"" ) %> <% if ( $cgi->param('error') ) { %> Error: <%= $cgi->param('error') %> <% } %>
Service Part #<%= $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %>

Service

Services are items you offer to your customers. For the selected table, you can give fields default or fixed (unchangable) values. For example, a SLIP/PPP account may have a default (or perhaps fixed) slipip of 0.0.0.0, while a POP mailbox will probably have a fixed blank slipip as well as a fixed shell something like /bin/true or /usr/bin/passwd.

<% my @dbs = $hashref->{svcdb} ? ( $hashref->{svcdb} ) : qw( svc_acct svc_domain svc_acct_sm svc_forward svc_www ); %> Table
<% #these might belong somewhere else for other user interfaces #pry need to eventually create stuff that's shared amount UIs my %defs = ( 'svc_acct' => { 'dir' => 'Home directory', 'uid' => 'UID (set to fixed and blank for dial-only)', 'slipip' => 'IP address (Set to fixed and blank to disable dialin, or, set a value to be exported to RADIUS Framed-IP-Address. Use the special value 0e0 [zero e zero] to enable export to RADIUS without a Framed-IP-Address.)', 'popnum' => qq!POP number!, 'username' => 'Username', 'quota' => '', '_password' => 'Password', 'gid' => 'GID (when blank, defaults to UID)', 'shell' => 'Shell (all service definitions should have a default or fixed shell that is present in the shells configuration file)', 'finger' => 'GECOS', 'domsvc' => 'svcnum from svc_domain', }, 'svc_domain' => { 'domain' => 'Domain', }, 'svc_acct_sm' => { 'domuser' => 'domuser@virtualdomain.com', 'domuid' => 'UID where domuser@virtualdomain.com mail is forwarded', 'domsvc' => 'svcnum from svc_domain for virtualdomain.com', }, 'svc_forward' => { 'srcsvc' => 'service from which mail is to be forwarded', 'dstsvc' => 'service to which mail is to be forwarded', 'dst' => 'someone@another.domain.com to use when dstsvc is 0', }, 'svc_charge' => { 'amount' => 'amount', }, 'svc_wo' => { 'worker' => 'Worker', '_date' => 'Date', }, 'svc_www' => { #'recnum' => '', #'usersvc' => '', }, ); # svc_acct svc_domain svc_acct_sm svc_charge svc_wo foreach my $svcdb ( qw( konq_kludge svc_acct svc_domain svc_acct_sm svc_forward svc_www ) ) { # my(@fields) = $svcdb eq 'konq_kludge' # ? () # : grep { $_ ne 'svcnum' } fields($svcdb); #yucky kludge my(@fields) = defined( $FS::Record::dbdef->table($svcdb) ) ? grep { $_ ne 'svcnum' } fields($svcdb) : (); #my($rowspan)=scalar(@rows); #my($ptmp)="$svcdb"; # $visibility = $svcdb eq $part_svc->svcdb ? "SHOW" : "HIDDEN"; # $visibility = $svcdb eq $p_svcdb ? "visible" : "hidden"; my $visibility = "hidden"; %>
<% print "$svcdb" unless $svcdb eq 'konq_kludge'; print "
" unless $svcdb eq 'konq_kludge'; foreach my $field (@fields) { my $part_svc_column = $part_svc->part_svc_column($field); my $value = $cgi->param('error') ? $cgi->param("${svcdb}__${field}") : $part_svc_column->columnvalue; my $flag = $cgi->param('error') ? $cgi->param("${svcdb}__${field}_flag") : $part_svc_column->columnflag; #print "$ptmp"; print qq!"; print qq!\n"; #$ptmp=''; } print "
FieldModifier
$field"; print "
$field"; print "- $defs{$svcdb}{$field}" if defined $defs{$svcdb}{$field}; print "OffDefault "; print qq!Fixed "; print qq!!, "
" unless $svcdb eq 'konq_kludge'; print qq!\n
! unless $svcdb eq 'konq_kludge'; print "
"; print < if (document.getElementById) { document.write(""); } else { document.write(""); } END } #print ""; %>