X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FMason.pm;h=877864eee9f4e8d87c6656cd6b88b52f1a11b3bc;hb=df2b4d94d5eaef3e9635d7a519fa297d017d42ea;hp=219f6b738db1a6377ffd971d360d1be1a41dc98d;hpb=9a90f2af0663c9b4e9611e044fd25349425d1aec;p=freeside.git diff --git a/FS/FS/Mason.pm b/FS/FS/Mason.pm index 219f6b738..877864eee 100644 --- a/FS/FS/Mason.pm +++ b/FS/FS/Mason.pm @@ -38,6 +38,13 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use strict; use vars qw( %session ); use CGI 3.29 qw(-private_tempfiles); #3.29 to fix RT attachment problems + + #breaks quick payment entry + #http://rt.cpan.org/Public/Bug/Display.html?id=37365 + die "CGI.pm v3.38 is broken, use any other version >= 3.29". + " (Debian 5.0? aptitude remove libcgi-pm-perl)" + if $CGI::VERSION == 3.38; + #use CGI::Carp qw(fatalsToBrowser); use CGI::Cookie; use List::Util qw( max min ); @@ -45,12 +52,13 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use Date::Format; use Date::Parse; use Time::Local; + use Time::HiRes; use Time::Duration; use DateTime; use DateTime::Format::Strptime; use Lingua::EN::Inflect qw(PL); use Tie::IxHash; - use URI::URL; + use URI; use URI::Escape; use HTML::Entities; use HTML::TreeBuilder; @@ -70,6 +78,19 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use Spreadsheet::WriteExcel; use Business::CreditCard 0.30; #for mask-aware cardtype() use NetAddr::IP; + use Net::Ping; + use Net::Ping::External; + #if CPAN #7815 ever gets fixed# if ( $Net::Ping::External::VERSION <= 0.12 ) + { + no warnings 'redefine'; + eval 'sub Net::Ping::External::_ping_linux { + my %args = @_; + my $command = "ping -s $args{size} -c $args{count} -w $args{timeout} $args{host}"; + return Net::Ping::External::_ping_system($command, 0); + } + '; + die $@ if $@; + } use String::Approx qw(amatch); use Chart::LinesPoints; use Chart::Mountain; @@ -91,8 +112,10 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use FS::UI::bytecount; use FS::Msgcat qw(gettext geterror); use FS::Misc qw( send_email send_fax states_hash counties state_label ); + use FS::Misc::eps2png qw( eps2png ); use FS::Report::Table::Monthly; use FS::TicketSystem; + use FS::Tron qw( tron_lint ); use FS::agent; use FS::agent_type; @@ -102,7 +125,9 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use FS::cust_credit; use FS::cust_credit_bill; use FS::cust_main qw(smart_search); + use FS::cust_main::Import; use FS::cust_main_county; + use FS::cust_location; use FS::cust_pay; use FS::cust_pkg; use FS::part_pkg_taxclass; @@ -144,6 +169,8 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use FS::rate; use FS::rate_region; use FS::rate_prefix; + use FS::rate_detail; + use FS::usage_class; use FS::payment_gateway; use FS::agent_payment_gateway; use FS::XMLRPC; @@ -161,6 +188,8 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use FS::access_right; use FS::AccessRight; use FS::svc_phone; + use FS::phone_device; + use FS::part_device; use FS::reason_type; use FS::reason; use FS::cust_main_note; @@ -170,6 +199,20 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use FS::part_pkg_taxoverride; use FS::part_pkg_taxrate; use FS::tax_rate; + use FS::part_pkg_report_option; + use FS::cust_attachment; + use FS::h_cust_pkg; + use FS::h_svc_acct; + use FS::h_svc_broadband; + use FS::h_svc_domain; + #use FS::h_domain_record; + use FS::h_svc_external; + use FS::h_svc_forward; + use FS::h_svc_phone; + #use FS::h_phone_device; + use FS::h_svc_www; + use FS::cust_statement; + # Sammath Naur if ( %%%RT_ENABLED%%% ) { eval ' @@ -206,7 +249,7 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. #slow, unreliable, segfaults and is optional #see rt/html/Ticket/Elements/ShowTransactionAttachments - #use Text::Quoted; + use Text::Quoted; #?#use File::Path qw( rmtree ); #?#use File::Glob qw( bsd_glob ); @@ -228,20 +271,35 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use vars qw($m); # false laziness w/below - if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect - - my $page = - qq!Redirect to $location!. - '

'.
-          ( UNIVERSAL::can(dbh, 'sprintProfile')
-              ? encode_entities(dbh->sprintProfile())
-              : 'DBIx::Profile missing sprintProfile method;'.
-                'unpatched or too old?'                        ).
-        #"\n\n". &sprintAutoProfile().  '
'. - "\n\n". ''. - ''; - dbh->{'private_profile'} = {}; - return $page; + if ( defined(@DBIx::Profile::ISA) ) { + + if ( $FS::CurrentUser::CurrentUser->option('show_db_profile') ) { + + #profiling redirect + + my $page = + qq!Redirect to $location!. + '

'.
+            ( UNIVERSAL::can(dbh, 'sprintProfile')
+                ? encode_entities(dbh->sprintProfile())
+                : 'DBIx::Profile missing sprintProfile method;'.
+                  'unpatched or too old?'                        ).
+          #"\n\n". &sprintAutoProfile().  '
'. + "\n\n". ''. + ''; + + + dbh->{'private_profile'} = {}; + return $page; + + } else { + + #clear db profile, but normal redirect + dbh->{'private_profile'} = {}; + $m->redirect($location); + ''; + + } } else { #normal redirect @@ -267,20 +325,33 @@ Initializes the Mason environment, loads all Freeside and RT libraries, etc. use vars qw($m); $m->clear_buffer; #false laziness w/above - if ( defined(@DBIx::Profile::ISA) ) { #profiling redirect - - $m->print( - qq!Redirect to $location!. - '

'.
-          ( UNIVERSAL::can(dbh, 'sprintProfile')
-              ? encode_entities(dbh->sprintProfile())
-              : 'DBIx::Profile missing sprintProfile method;'.
-                'unpatched or too old?'                        ).
-        #"\n\n". &sprintAutoProfile().  '
'. - "\n\n". ''. - '' - ); - dbh->{'private_profile'} = {}; + if ( defined(@DBIx::Profile::ISA) ) { + + if ( $FS::CurrentUser::CurrentUser->option('show_db_profile') ) { + + #profiling redirect + + $m->print( + qq!Redirect to $location!. + '

'.
+            ( UNIVERSAL::can(dbh, 'sprintProfile')
+                ? encode_entities(dbh->sprintProfile())
+                : 'DBIx::Profile missing sprintProfile method;'.
+                  'unpatched or too old?'                        ).
+          #"\n\n". &sprintAutoProfile().  '
'. + "\n\n". ''. + '' + ); + + dbh->{'private_profile'} = {}; + + } else { + + #clear db profile, but normal redirect + dbh->{'private_profile'} = {}; + $m->redirect($location); + + } } else { #normal redirect @@ -341,6 +412,9 @@ sub mason_interps { ${$_[0]} = "'". ${$_[0]}. "'"; } }, + compiler => HTML::Mason::Compiler::ToObject->new( + allow_globals => [qw(%session)], + ), ); my $rt_interp = new HTML::Mason::Interp (