X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_svc.cgi;h=b2862f5a3b4ebe0dd7f77f9e1f6695844207a706;hb=aad287228dfbe5ef01be73ebaaa9a06dfbe11226;hp=c0d632fa5d5dbff0a821e353ed46cc464d9facb6;hpb=57d69d5c1f98f778a0df82795ce21ee7bd21042a;p=freeside.git diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index c0d632fa5..b80118f89 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -1,232 +1,285 @@ - -<% - 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' => '(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', - '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) ); - #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'; +my $action = $part_svc->svcpart ? 'Edit' : 'Add'; +my $hashref = $part_svc->hashref; +# my $p_svcdb = $part_svc->svcdb || 'svc_acct'; - print "
"; - print < - if (document.getElementById) { - document.write(""); - } else { - document.write(""); - } - -END + +my @dbs = $hashref->{svcdb} + ? ( $hashref->{svcdb} ) + : FS::part_svc->svc_tables(); + +my $help = ''; +unless ( $hashref->{svcpart} ) { + $help = ' '. + include('/elements/popup_link.html', + 'action' => $p.'docs/part_svc-table.html', + 'label' => 'help', + 'actionlabel' => 'Service table help', + 'width' => 960, + 'height' => 400, + ); } -#print ""; -%> - +tie my %svcdb, 'Tie::IxHash', map { $_=>$_ } grep dbdef->table($_), @dbs; +my $widget = new HTML::Widgets::SelectLayers( + #'selected_layer' => $p_svcdb, + 'selected_layer' => $hashref->{svcdb} || 'svc_acct', + 'options' => \%svcdb, + 'form_name' => 'SvcEditMain', + #'form_action' => 'process/part_svc.cgi', + 'form_action' => 'part_svc.cgi', #self +# 'form_elements' => [qw( svc svcpart classnum selfservice_access +# disabled preserve +# )], + 'html_between' => $help, + 'layer_callback' => sub { + include('elements/part_svc_column.html', + shift, + 'part_svc' => $part_svc, + 'clone' => $clone + ) + } +); + + - -