X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_forward.cgi;h=0d815b9e5f93f136cc077844f1283b2f35dd769b;hp=287833e53e41a3a660130ddc4a2472e25a723f6e;hb=7a168617da5f6702422c098d714a11586d7655e9;hpb=844855ae401bc5a7167b5fa8898275f89719ed71 diff --git a/httemplate/edit/svc_forward.cgi b/httemplate/edit/svc_forward.cgi index 287833e53..0d815b9e5 100755 --- a/httemplate/edit/svc_forward.cgi +++ b/httemplate/edit/svc_forward.cgi @@ -1,23 +1,9 @@ + <% -# -use strict; -use vars qw( $conf $cgi $mydomain $action $svcnum $svc_forward $pkgnum $svcpart - $part_svc $query %email $p1 $srcsvc $dstsvc $dst ); -use CGI; -use CGI::Carp qw(fatalsToBrowser); -use FS::UID qw(cgisuidsetup); -use FS::CGI qw(header popurl); -use FS::Record qw(qsearch qsearchs fields); -use FS::svc_forward; -use FS::Conf; - -$cgi = new CGI; -&cgisuidsetup($cgi); - -$conf = new FS::Conf; -$mydomain = $conf->config('domain'); +my $conf = new FS::Conf; +my($svcnum, $pkgnum, $svcpart, $part_svc, $svc_forward); if ( $cgi->param('error') ) { $svc_forward = new FS::svc_forward ( { map { $_, scalar($cgi->param($_)) } fields('svc_forward') @@ -28,7 +14,9 @@ if ( $cgi->param('error') ) { $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); die "No part_svc entry!" unless $part_svc; } else { + my($query) = $cgi->keywords; + if ( $query =~ /^(\d+)$/ ) { #editing $svcnum=$1; $svc_forward=qsearchs('svc_forward',{'svcnum'=>$svcnum}) @@ -64,12 +52,12 @@ if ( $cgi->param('error') ) { $part_svc_column->columnvalue, ); } - - } + } -$action = $svc_forward->svcnum ? 'Edit' : 'Add'; +my $action = $svc_forward->svcnum ? 'Edit' : 'Add'; +my %email; if ($pkgnum) { #find all possible user svcnums (and emails) @@ -99,10 +87,13 @@ if ($pkgnum) { foreach $acct_svcpart (@u_acct_svcparts) { #now find the corresponding #record(s) in cust_svc ( for this #pkgnum ! ) - my($i_cust_svc); - foreach $i_cust_svc ( qsearch('cust_svc',{'pkgnum'=>$cust_pkgnum,'svcpart'=>$acct_svcpart}) ) { - $svc_acct=qsearchs('svc_acct',{'svcnum'=>$i_cust_svc->getfield('svcnum')}); - $email{$svc_acct->getfield('svcnum')}=$svc_acct->email; + foreach my $i_cust_svc ( + qsearch( 'cust_svc', { 'pkgnum' => $cust_pkgnum, + 'svcpart' => $acct_svcpart } ) + ) { + my $svc_acct = + qsearchs( 'svc_acct', { 'svcnum' => $i_cust_svc->svcnum } ); + $email{$svc_acct->svcnum} = $svc_acct->email; } } } @@ -119,7 +110,7 @@ if ($pkgnum) { die "\$action eq Add, but \$pkgnum is null!\n"; } -($srcsvc,$dstsvc,$dst)=( +my($srcsvc,$dstsvc,$dst)=( $svc_forward->srcsvc, $svc_forward->dstsvc, $svc_forward->dst, @@ -127,105 +118,58 @@ if ($pkgnum) { #display -$p1 = popurl(1); -print $cgi->header( '-expires' => 'now' ), header("Mail Forward $action", '', - " onLoad=\"visualize()\""); - %> - - -<% - -print qq!Error: !, $cgi->param('error'), - "" - if $cgi->param('error'); - -print qq!
!; +<%= header("Mail Forward $action") %> -#svcnum -print qq!!; -print qq!Service #!, $svcnum ? $svcnum : " (NEW)", ""; -print qq!
!; +<% if ( $cgi->param('error') ) { %> + Error: <%= $cgi->param('error') %> +

+<% } %> -#pkgnum -print qq!!; - -#svcpart -print qq!!; +Service #<%= $svcnum ? "$svcnum" : " (NEW)" %>
+Service: <%= $part_svc->svc %>

-#srcsvc -print qq!\n\nMail to "; + -#dstsvc -print qq! forwards to mailbox."; - -%> - - +<%= ntable("#cccccc",2) %> +Email to <% -print qq! Other destination: !; + tie my %tied_email, 'Tie::IxHash', + '' => 'SELECT DESTINATION', + %email, + '0' => '(other email address)'; + my $widget = new HTML::Widgets::SelectLayers( + 'selected_layer' => $dstsvc, + 'options' => \%tied_email, + 'form_name' => 'dummy', + 'form_action' => 'process/svc_forward.cgi', + 'form_select' => ['srcsvc'], + 'html_between' => '', + 'layer_callback' => sub { + my $layer = shift; + my $html = qq!!. + qq!!. + qq!!. + qq!!; + if ( $layer eq '0' ) { + $html .= ntable("#cccccc",2). + 'Destination email'. + qq!!. + ''; + } + $html .= '
'; + $html; + }, + ); %> - - -
-
- - - - +Forwards to +<%= $widget->html %>