package HTML::Mason;
# Bring in main Mason package.
-use HTML::Mason;
+use HTML::Mason 1.1;
# Bring in ApacheHandler, necessary for mod_perl integration.
# Uncomment the second line (and comment the first) to use
my $ah = new HTML::Mason::ApacheHandler (
#interp => $interp,
#auto_send_headers => 0,
- comp_root=>'/var/www/masonside',
+ comp_root=>'/var/www/freeside',
data_dir=>'/usr/local/etc/freeside/masondata',
#out_mode=>'stream',
);
{ package HTML::Mason::Commands;
use strict;
use vars qw( $cgi $p );
- use CGI;
+ use CGI 2.47;
#use CGI::Carp qw(fatalsToBrowser);
use Date::Format;
use Date::Parse;
use FS::part_referral;
use FS::part_svc;
use FS::part_svc_router;
+ use FS::part_virtual_field;
use FS::pkg_svc;
use FS::port;
use FS::queue qw(joblisting);
use FS::session;
use FS::svc_acct;
use FS::svc_acct_pop qw(popselector);
- use FS::svc_acct_sm;
use FS::svc_domain;
use FS::svc_forward;
use FS::svc_www;
use FS::router;
- use FS::part_router_field;
- use FS::router_field;
use FS::addr_block;
- use FS::part_sb_field;
- use FS::sb_field;
use FS::svc_broadband;
use FS::type_pkgs;
use FS::part_export;
*CGI::redirect = sub {
my( $self, $location ) = @_;
use vars qw($m);
- #http://www.masonhq.com/docs/faq/#how_do_i_do_an_external_redirect
- $m->clear_buffer;
- # The next two lines are necessary to stop Apache from re-reading
- # POSTed data.
- $r->method('GET');
- $r->headers_in->unset('Content-length');
- $r->content_type('text/html');
- #$r->err_header_out('Location' => $location);
- $r->header_out('Location' => $location);
- $r->header_out('Content-Type' => 'text/html');
- $m->abort(302);
-
- '';
+
+ if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect
+
+ my $page =
+ qq!<HTML><BODY>Redirect to <A HREF="$location">$location</A>!.
+ '<BR><BR><PRE>'.
+ ( UNIVERSAL::can(dbh, 'sprintProfile')
+ ? encode_entities(dbh->sprintProfile())
+ : 'DBIx::Profile missing sprintProfile method;'.
+ 'unpatched or too old?' ).
+ #"\n\n". &sprintAutoProfile(). '</PRE>'.
+ "\n\n". '</PRE>'.
+ '</BODY></HTML>';
+ dbh->{'private_profile'} = {};
+ return $page;
+
+ } else { #normal redirect
+
+ $m->redirect($location);
+ '';
+
+ }
+
};
$cgi = new CGI;
&cgisuidsetup($cgi);
#&cgisuidsetup($r);
$p = popurl(2);
- }
+
+ sub include {
+ use vars qw($m);
+ $m->scomp(@_);
+ }
+
+ sub redirect {
+ my( $location ) = @_;
+ use vars qw($m);
+ $m->clear_buffer;
+ #false laziness w/above
+ if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect
+
+ $m->print(
+ qq!<HTML><BODY>Redirect to <A HREF="$location">$location</A>!.
+ '<BR><BR><PRE>'.
+ ( UNIVERSAL::can(dbh, 'sprintProfile')
+ ? encode_entities(dbh->sprintProfile())
+ : 'DBIx::Profile missing sprintProfile method;'.
+ 'unpatched or too old?' ).
+ #"\n\n". &sprintAutoProfile(). '</PRE>'.
+ "\n\n". '</PRE>'.
+ '</BODY></HTML>'
+ );
+ dbh->{'private_profile'} = {};
+
+ $m->abort(200);
+
+ } else { #normal redirect
+
+ $m->redirect($location);
+
+ }
+
+ }
+
+ } # end package HTML::Mason::Commands;
$r->content_type('text/html');
#eorar