projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
self-service Drupal module, RT#9380
[freeside.git]
/
FS
/
FS
/
Mason.pm
diff --git
a/FS/FS/Mason.pm
b/FS/FS/Mason.pm
index
4c8c808
..
f5d7c85
100644
(file)
--- a/
FS/FS/Mason.pm
+++ b/
FS/FS/Mason.pm
@@
-3,6
+3,7
@@
package FS::Mason;
use strict;
use vars qw( @ISA @EXPORT_OK $addl_handler_use );
use Exporter;
use strict;
use vars qw( @ISA @EXPORT_OK $addl_handler_use );
use Exporter;
+use Carp;
use File::Slurp qw( slurp );
use HTML::Mason 1.27; #http://www.masonhq.com/?ApacheModPerl2Redirect
use HTML::Mason::Interp;
use File::Slurp qw( slurp );
use HTML::Mason 1.27; #http://www.masonhq.com/?ApacheModPerl2Redirect
use HTML::Mason::Interp;
@@
-57,13
+58,14
@@
if ( -e $addl_handler_use_file ) {
use List::Util qw( max min );
use Data::Dumper;
use Date::Format;
use List::Util qw( max min );
use Data::Dumper;
use Date::Format;
- use Date::Parse;
use Time::Local;
use Time::HiRes;
use Time::Duration;
use DateTime;
use DateTime::Format::Strptime;
use Time::Local;
use Time::HiRes;
use Time::Duration;
use DateTime;
use DateTime::Format::Strptime;
+ use FS::Misc::DateTime qw( parse_datetime );
use Lingua::EN::Inflect qw(PL);
use Lingua::EN::Inflect qw(PL);
+ Lingua::EN::Inflect::classical names=>0; #Categorys
use Tie::IxHash;
use URI;
use URI::Escape;
use Tie::IxHash;
use URI;
use URI::Escape;
@@
-72,6
+74,8
@@
if ( -e $addl_handler_use_file ) {
use HTML::FormatText;
use HTML::Defang;
use JSON;
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;
use MIME::Base64;
use IO::Handle;
use IO::File;
@@
-102,11
+106,13
@@
if ( -e $addl_handler_use_file ) {
use String::Approx qw(amatch);
use Chart::LinesPoints;
use Chart::Mountain;
use String::Approx qw(amatch);
use Chart::LinesPoints;
use Chart::Mountain;
+ use Chart::Bars;
use Color::Scheme;
use HTML::Widgets::SelectLayers 0.07; #should go away in favor of
#selectlayers.html
use Locale::Country;
use Business::US::USPS::WebTools::AddressStandardization;
use Color::Scheme;
use HTML::Widgets::SelectLayers 0.07; #should go away in favor of
#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
use FS;
use FS::UID qw( getotaker dbh datasrc driver_name );
use FS::Record qw( qsearch qsearchs fields dbdef
@@
-123,6
+129,7
@@
if ( -e $addl_handler_use_file ) {
states_hash counties cities state_label
);
use FS::Misc::eps2png qw( eps2png );
states_hash counties cities state_label
);
use FS::Misc::eps2png qw( eps2png );
+ use FS::Report::FCC_477;
use FS::Report::Table::Monthly;
use FS::TicketSystem;
use FS::Tron qw( tron_lint );
use FS::Report::Table::Monthly;
use FS::TicketSystem;
use FS::Tron qw( tron_lint );
@@
-140,6
+147,7
@@
if ( -e $addl_handler_use_file ) {
use FS::cust_location;
use FS::cust_pay;
use FS::cust_pkg;
use FS::cust_location;
use FS::cust_pay;
use FS::cust_pkg;
+ use FS::cust_pkg::Import;
use FS::part_pkg_taxclass;
use FS::cust_pkg_reason;
use FS::cust_refund;
use FS::part_pkg_taxclass;
use FS::cust_pkg_reason;
use FS::cust_refund;
@@
-214,6
+222,7
@@
if ( -e $addl_handler_use_file ) {
use FS::part_pkg_report_option;
use FS::cust_attachment;
use FS::h_cust_pkg;
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;
use FS::h_svc_acct;
use FS::h_svc_broadband;
use FS::h_svc_domain;
@@
-233,6
+242,16
@@
if ( -e $addl_handler_use_file ) {
use FS::cust_pkg_discount;
use FS::cust_bill_pkg_discount;
use FS::svc_mailinglist;
use FS::cust_pkg_discount;
use FS::cust_bill_pkg_discount;
use FS::svc_mailinglist;
+ 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;
+ use FS::acct_snarf;
# Sammath Naur
if ( $FS::Mason::addl_handler_use ) {
# Sammath Naur
if ( $FS::Mason::addl_handler_use ) {
@@
-245,6
+264,7
@@
if ( -e $addl_handler_use_file ) {
use lib ( "/opt/rt3/local/lib", "/opt/rt3/lib" );
use vars qw($Nobody $SystemUser);
use RT;
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;
use RT::Tickets;
use RT::Transactions;
use RT::Users;
@@
-275,6
+295,9
@@
if ( -e $addl_handler_use_file ) {
use RT::Interface::Web::Request;
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;
#slow, unreliable, segfaults and is optional
#see rt/html/Ticket/Elements/ShowTransactionAttachments
#use Text::Quoted;
@@
-340,6
+363,7
@@
if ( -e $addl_handler_use_file ) {
sub include {
use vars qw($m);
sub include {
use vars qw($m);
+ #carp #should just switch to <& &> syntax
$m->scomp(@_);
}
$m->scomp(@_);
}
@@
-348,6
+372,11
@@
if ( -e $addl_handler_use_file ) {
$m->comp('/elements/errorpage.html', @_);
}
$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);
sub redirect {
my( $location ) = @_;
use vars qw($m);
@@
-456,14
+485,17
@@
sub mason_interps {
my $html_defang = new HTML::Defang (%defang_opts);
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,
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]});
},
'defang' => sub {
${$_[0]} = $html_defang->defang(${$_[0]});
},
@@
-475,7
+507,9
@@
sub mason_interps {
my $rt_interp = new HTML::Mason::Interp (
%interp,
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)],
compiler => HTML::Mason::Compiler::ToObject->new(
default_escape_flags => 'h',
allow_globals => [qw(%session)],