X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FMason.pm;h=bcf727e3c718d69a357eeb8619eaa8443e3ca7c8;hb=720cf723d2c8e88760704e2fdc50ebf48e0574f2;hp=10edd6d0d57b44cfcecf737ca63f4fb266bfc5c4;hpb=4ef5b3b917b7802a136551ad567dc9d649700f53;p=freeside.git diff --git a/FS/FS/Mason.pm b/FS/FS/Mason.pm index 10edd6d0d..bcf727e3c 100644 --- a/FS/FS/Mason.pm +++ b/FS/FS/Mason.pm @@ -73,6 +73,8 @@ if ( -e $addl_handler_use_file ) { use HTML::FormatText; use HTML::Defang; use JSON; +# use XMLRPC::Transport::HTTP; +# use XMLRPC::Lite; # for XMLRPC::Serializer use MIME::Base64; use IO::Handle; use IO::File; @@ -109,6 +111,7 @@ if ( -e $addl_handler_use_file ) { #selectlayers.html use Locale::Country; use Business::US::USPS::WebTools::AddressStandardization; + use LWP::UserAgent; use FS; use FS::UID qw( getotaker dbh datasrc driver_name ); use FS::Record qw( qsearch qsearchs fields dbdef @@ -217,6 +220,7 @@ if ( -e $addl_handler_use_file ) { use FS::part_pkg_report_option; use FS::cust_attachment; use FS::h_cust_pkg; + use FS::h_inventory_item; use FS::h_svc_acct; use FS::h_svc_broadband; use FS::h_svc_domain; @@ -239,6 +243,12 @@ if ( -e $addl_handler_use_file ) { use FS::cgp_rule; use FS::cgp_rule_condition; use FS::cgp_rule_action; + use FS::bill_batch; + use FS::cust_bill_batch; + use FS::rate_time; + use FS::rate_time_interval; + use FS::msg_template; + use FS::part_tag; # Sammath Naur if ( $FS::Mason::addl_handler_use ) { @@ -251,6 +261,7 @@ if ( -e $addl_handler_use_file ) { use lib ( "/opt/rt3/local/lib", "/opt/rt3/lib" ); use vars qw($Nobody $SystemUser); use RT; + use RT::Util; use RT::Tickets; use RT::Transactions; use RT::Users; @@ -281,6 +292,9 @@ if ( -e $addl_handler_use_file ) { use RT::Interface::Web::Request; + #nother undeclared web UI dep (for ticket links graph) + use IPC::Run::SafeHandles; + #slow, unreliable, segfaults and is optional #see rt/html/Ticket/Elements/ShowTransactionAttachments #use Text::Quoted; @@ -354,6 +368,11 @@ if ( -e $addl_handler_use_file ) { $m->comp('/elements/errorpage.html', @_); } + sub errorpage_popup { + use vars qw($m); + $m->comp('/elements/errorpage-popup.html', @_); + } + sub redirect { my( $location ) = @_; use vars qw($m); @@ -462,14 +481,17 @@ sub mason_interps { my $html_defang = new HTML::Defang (%defang_opts); + my $js_string_sub = sub { + #${$_[0]} =~ s/(['\\\n])/'\\'.($1 eq "\n" ? 'n' : $1)/ge; + ${$_[0]} =~ s/(['\\])/\\$1/g; + ${$_[0]} =~ s/\r/\\r/g; + ${$_[0]} =~ s/\n/\\n/g; + ${$_[0]} = "'". ${$_[0]}. "'"; + }; + my $fs_interp = new HTML::Mason::Interp ( %interp, - escape_flags => { 'js_string' => sub { - #${$_[0]} =~ s/(['\\\n])/'\\'.($1 eq "\n" ? 'n' : $1)/ge; - ${$_[0]} =~ s/(['\\])/\\$1/g; - ${$_[0]} =~ s/\n/\\n/g; - ${$_[0]} = "'". ${$_[0]}. "'"; - }, + escape_flags => { 'js_string' => $js_string_sub, 'defang' => sub { ${$_[0]} = $html_defang->defang(${$_[0]}); }, @@ -481,7 +503,9 @@ sub mason_interps { my $rt_interp = new HTML::Mason::Interp ( %interp, - escape_flags => { 'h' => \&RT::Interface::Web::EscapeUTF8 }, + escape_flags => { 'h' => \&RT::Interface::Web::EscapeUTF8, + 'js_string' => $js_string_sub, + }, compiler => HTML::Mason::Compiler::ToObject->new( default_escape_flags => 'h', allow_globals => [qw(%session)],