#use CGI::Carp qw(fatalsToBrowser);
use CGI::Cookie;
- use List::Util qw( max min );
+ use List::Util qw( max min sum );
use Data::Dumper;
use Date::Format;
use Time::Local;
use DateTime;
use DateTime::Format::Strptime;
use FS::Misc::DateTime qw( parse_datetime );
+ use FS::Misc::Geo qw( get_censustract get_district );
use Lingua::EN::Inflect qw(PL);
Lingua::EN::Inflect::classical names=>0; #Categorys
use Tie::IxHash;
use URI;
- use URI::Escape;
+ use URI::Escape 3.31;
use HTML::Entities;
use HTML::TreeBuilder;
use HTML::TableExtract qw(tree);
use Text::CSV_XS;
use Spreadsheet::WriteExcel;
use Spreadsheet::WriteExcel::Utility;
+ use Excel::Writer::XLSX;
+ use Excel::Writer::XLSX::Utility;
+
use Business::CreditCard 0.30; #for mask-aware cardtype()
use NetAddr::IP;
use Net::Ping;
#selectlayers.html
use Locale::Country;
use Business::US::USPS::WebTools::AddressStandardization;
+ use Geo::GoogleEarth::Pluggable;
use LWP::UserAgent;
use Storable qw( nfreeze thaw );
use FS;
use FS::UID qw( getotaker dbh datasrc driver_name );
use FS::Record qw( qsearch qsearchs fields dbdef
str2time_sql str2time_sql_closing
+ midnight_sql
);
use FS::Conf;
use FS::CGI qw(header menubar table itable ntable idiot
use FS::cust_msg;
use FS::radius_group;
use FS::template_content;
+ use FS::dsl_device;
+ use FS::nas;
+ use FS::nas;
+ use FS::export_nas;
+ use FS::legacy_cust_bill;
+ use FS::rate_tier;
+ use FS::rate_tier_detail;
+ use FS::radius_attr;
+ use FS::discount_plan;
+ use FS::tower;
+ use FS::tower_sector;
# Sammath Naur
if ( $FS::Mason::addl_handler_use ) {
${$_[0]} =~ s/(['\\])/\\$1/g;
${$_[0]} =~ s/\r/\\r/g;
${$_[0]} =~ s/\n/\\n/g;
+ # prevent premature termination of the script
+ ${$_[0]} =~ s[</script>][<\\/script>]ig;
${$_[0]} = "'". ${$_[0]}. "'";
};
[ 'freeside' => '%%%FREESIDE_DOCUMENT_ROOT%%%' ],
],
escape_flags => { 'h' => \&RT::Interface::Web::EscapeUTF8,
+ 'u' => \&RT::Interface::Web::EscapeURI,
+ 'j' => \&RT::Interface::Web::EscapeJS,
'js_string' => $js_string_sub,
},
compiler => HTML::Mason::Compiler::ToObject->new(