X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FCGI.pm;h=c66bfe3c239ca2ad4fe9c40321a998a1f3c76d41;hb=579b08e47d45dec6ea0729164a6e24613c02be26;hp=47c034e133933ed0de652bab33b0e9c7861baaa1;hpb=cb457f9c0242ea9e7acc80b9aaadd0d1c9bf66a9;p=freeside.git diff --git a/FS/FS/CGI.pm b/FS/FS/CGI.pm index 47c034e13..c66bfe3c2 100644 --- a/FS/FS/CGI.pm +++ b/FS/FS/CGI.pm @@ -1,7 +1,7 @@ package FS::CGI; use strict; -use vars qw(@EXPORT_OK @ISA); +use vars qw(@EXPORT_OK @ISA @header); use Exporter; use CGI; use URI::URL; @@ -9,7 +9,12 @@ use CGI::Carp qw(fatalsToBrowser); use FS::UID; @ISA = qw(Exporter); -@EXPORT_OK = qw(header menubar idiot eidiot popurl table itable ntable); +@EXPORT_OK = qw(header menubar idiot eidiot popurl table itable ntable + small_custview); + +@header = ( '-Expires' => '-1', + '-Pragma' => 'no-cache', + '-Cache-Control' => 'no-cache' ); =head1 NAME @@ -43,7 +48,9 @@ Returns an HTML header. =cut sub header { - my($title,$menubar)=@_; + my($title,$menubar,$etc)=@_; #$etc is for things like onLoad= etc. + use Carp; + $etc = '' unless defined $etc; my $x = < @@ -52,7 +59,7 @@ sub header { $title - + $title @@ -89,12 +96,12 @@ sub idiot { #warn "idiot depriciated"; my($error)=@_; my $cgi = &FS::UID::cgi(); - if ( $cgi->isa('CGI::Base') ) { - no strict 'subs'; - &CGI::Base::SendHeaders; - } else { - print $cgi->header( '-expires' => 'now' ); - } +# if ( $cgi->isa('CGI::Base') ) { +# no strict 'subs'; +# &CGI::Base::SendHeaders; +# } else { + print $cgi->header( @FS::CGI::header ); +# } print < @@ -121,11 +128,17 @@ Sends headers and an HTML error message, then exits. =cut sub eidiot { - #warn "eidiot depriciated"; + warn "eidiot depriciated"; idiot(@_); - #exit; - use Apache; - Apache::exit; + if (exists $ENV{MOD_PERL}) { + $main::Response->End() + if defined $main::Response + && $main::Response->isa('Apache::ASP::Response'); + require Apache; + Apache::exit(); + } else { + exit; + } } =item popurl LEVEL @@ -136,8 +149,8 @@ Returns current URL with LEVEL levels of path removed from the end (default 0). sub popurl { my($up)=@_; - my($cgi)=&FS::UID::cgi; - my($url)=new URI::URL $cgi->url; + my $cgi = &FS::UID::cgi; + my $url = new URI::URL ( $cgi->isa('Apache') ? $cgi->uri : $cgi->url ); my(@path)=$url->path_components; splice @path, 0-$up; $url->path_components(@path); @@ -194,6 +207,65 @@ sub ntable { } +=item small_custview CUSTNUM || CUST_MAIN_OBJECT, COUNTRYDEFAULT + +Sheesh. I should just switch to Mason. + +=cut + +sub small_custview { + use FS::Record qw(qsearchs); + use FS::cust_main; + + my $arg = shift; + my $countrydefault = shift || 'US'; + + my $cust_main = ref($arg) ? $arg + : qsearchs('cust_main', { 'custnum' => $arg } ) + or die "unknown custnum $arg"; + + my $html = 'Customer #'. $cust_main->custnum. ''. + ntable('#e8e8e8'). ''. ntable("#cccccc",2). + 'Billing'. + $cust_main->getfield('last'). ', '. $cust_main->first. '
'; + + $html .= $cust_main->company. '
' if $cust_main->company; + $html .= $cust_main->address1. '
'; + $html .= $cust_main->address2. '
' if $cust_main->address2; + $html .= $cust_main->city. ', '. $cust_main->state. ' '. $cust_main->zip. '
'; + $html .= $cust_main->country. '
' + if $cust_main->country && $cust_main->country ne $countrydefault; + + $html .= ''; + + if ( defined $cust_main->dbdef_table->column('ship_last') ) { + + my $pre = $cust_main->ship_last ? 'ship_' : ''; + + $html .= ''. ntable("#cccccc",2). + 'Service'. + $cust_main->get("${pre}last"). ', '. + $cust_main->get("${pre}first"). '
'; + $html .= $cust_main->get("${pre}company"). '
' + if $cust_main->get("${pre}company"); + $html .= $cust_main->get("${pre}address1"). '
'; + $html .= $cust_main->get("${pre}address2"). '
' + if $cust_main->get("${pre}address2"); + $html .= $cust_main->get("${pre}city"). ', '. + $cust_main->get("${pre}state"). ' '. + $cust_main->get("${pre}ship_zip"). '
'; + $html .= $cust_main->get("${pre}country"). '
' + if $cust_main->get("${pre}country") + && $cust_main->get("${pre}country") ne $countrydefault; + + $html .= ''; + } + + $html .= ''; + + $html; +} + =back =head1 BUGS @@ -202,6 +274,8 @@ Not OO. Not complete. +small_custview sooooo doesn't belong here. i should just switch to Mason. + =head1 SEE ALSO L, L