summaryrefslogtreecommitdiff
path: root/htetc/handler.pl
diff options
context:
space:
mode:
Diffstat (limited to 'htetc/handler.pl')
-rw-r--r--htetc/handler.pl117
1 files changed, 88 insertions, 29 deletions
diff --git a/htetc/handler.pl b/htetc/handler.pl
index 49bcbc0..618c585 100644
--- a/htetc/handler.pl
+++ b/htetc/handler.pl
@@ -7,7 +7,7 @@
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
@@ -28,20 +28,25 @@ use strict;
# Create Mason objects
#
-my $parser = new HTML::Mason::Parser;
-my $interp = new HTML::Mason::Interp (parser=>$parser,
- comp_root=>'/var/www/masondocs',
- data_dir=>'/home/ivan/freeside_current/masondata',
- out_mode=>'stream',
- );
-my $ah = new HTML::Mason::ApacheHandler ( interp => $interp,
- #auto_send_headers => 0,
- );
+
+#my $parser = new HTML::Mason::Parser;
+#my $interp = new HTML::Mason::Interp (parser=>$parser,
+# comp_root=>'/var/www/masondocs',
+# data_dir=>'/usr/local/etc/freeside/masondata',
+# out_mode=>'stream',
+# );
+my $ah = new HTML::Mason::ApacheHandler (
+ #interp => $interp,
+ #auto_send_headers => 0,
+ comp_root=>'/var/www/freeside',
+ data_dir=>'/usr/local/etc/freeside/masondata',
+ #out_mode=>'stream',
+);
# Activate the following if running httpd as root (the normal case).
# Resets ownership of all files created by Mason at startup.
#
-chown (Apache->server->uid, Apache->server->gid, $interp->files_written);
+#chown (Apache->server->uid, Apache->server->gid, $interp->files_written);
sub handler
{
@@ -57,22 +62,25 @@ sub handler
{ 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 Time::Local;
use Tie::IxHash;
use HTML::Entities;
use IO::Handle;
use IO::File;
use String::Approx qw(amatch);
- use HTML::Widgets::SelectLayers 0.02;
+ use Chart::LinesPoints;
+ use HTML::Widgets::SelectLayers 0.03;
use FS::UID qw(cgisuidsetup dbh getotaker datasrc driver_name);
use FS::Record qw(qsearch qsearchs fields dbdef);
use FS::Conf;
use FS::CGI qw(header menubar popurl table itable ntable idiot eidiot
- small_custview myexit);
+ small_custview myexit http_header);
use FS::Msgcat qw(gettext geterror);
+ use FS::Misc qw( send_email );
use FS::agent;
use FS::agent_type;
@@ -92,6 +100,8 @@ sub handler
use FS::part_pkg;
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);
@@ -99,10 +109,13 @@ sub handler
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::addr_block;
+ use FS::svc_broadband;
+ use FS::svc_external;
use FS::type_pkgs;
use FS::part_export;
use FS::part_export_option;
@@ -111,27 +124,73 @@ sub handler
*CGI::redirect = sub {
my( $self, $location ) = @_;
+ use vars qw($m);
+
+ 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);
+ '';
+
+ }
- #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);
-
- '';
};
$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