use DateTime::Format::Strptime;
use FS::Misc::DateTime qw( parse_datetime );
use Lingua::EN::Inflect qw(PL);
+ Lingua::EN::Inflect::classical names=>0; #Categorys
use Tie::IxHash;
use URI;
use URI::Escape;
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;
#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
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::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::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;
# Sammath Naur
if ( $FS::Mason::addl_handler_use ) {
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::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;
$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);
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]});
},
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)],