<% 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 services' => "${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)', 'popnum' => qq!POP number!, 'username' => 'Username', 'quota' => '(unimplemented)', '_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', }, '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(@rows)=map { /^${svcdb}__(.*)$/; $1 } grep ! /_flag$/, grep /^${svcdb}__/, fields('part_svc'); #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'; my($row); foreach $row (@rows) { my $value = $part_svc->getfield($svcdb. '__'. $row); my $flag = $part_svc->getfield($svcdb. '__'. $row. '_flag'); #print "$ptmp"; print qq!"; print qq!\n"; #$ptmp=''; } print "
FieldModifier
$row"; print "
$row"; print "- $defs{$svcdb}{$row}" if defined $defs{$svcdb}{$row}; 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 ""; %>