fix konqueror bug appending nulls to XMLHTTP requests!
[freeside.git] / FS / FS / UI / Web.pm
index 213a219..11e4804 100644 (file)
@@ -130,16 +130,15 @@ sub cust_fields {
 package FS::UI::Web::JSRPC;
 
 use strict;
-use vars qw(@ISA $DEBUG);
+use vars qw($DEBUG);
 use Storable qw(nfreeze);
 use MIME::Base64;
-#use JavaScript::RPC::Server::CGI;
+use JSON;
 use FS::UID;
 use FS::Record qw(qsearchs);
 use FS::queue;
 
-#@ISA = qw( JavaScript::RPC::Server::CGI );
-$DEBUG = 0;
+$DEBUG = 1;
 
 sub new {
         my $class = shift;
@@ -151,6 +150,8 @@ sub new {
 
         bless $self, $class;
 
+        die "CGI object required as second argument" unless $self->{'cgi'};
+
         return $self;
 }
 
@@ -163,6 +164,9 @@ sub process {
   # XXX this should parse JSON foo and build a proper data structure
   my @args = $cgi->param('arg');
 
+  #work around konqueror bug!
+  @args = map { s/\x00$//; $_; } @args;
+
   my $sub = $cgi->param('sub'); #????
 
   warn "FS::UI::Web::JSRPC::process:\n".
@@ -255,23 +259,9 @@ sub job_status {
     @return = ( 'error', $job ? $job->statustext : $jobnum );
   }
 
-  #join("\n",@return);
-
-  #XXX should use JSON!
-  @return = map {
-    s/\\/\\\\/g;
-    s/\n/\\n/g;
-    s/"/\"/g;
-    $_
-  } @return;
-  
-  '[ '. join(', ', map { qq("$_") } @return). " ]\n";
+  objToJson(\@return);
 
 }
 
-#sub get_new_query {
-#  FS::UID::cgi();
-#}
-
 1;