summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/jsrsServer.html5
-rw-r--r--httemplate/elements/progress-init.html12
-rw-r--r--httemplate/elements/progress-popup.html22
-rw-r--r--httemplate/elements/xmlhttp.html22
4 files changed, 45 insertions, 16 deletions
diff --git a/httemplate/elements/jsrsServer.html b/httemplate/elements/jsrsServer.html
index d6d537070..fd6dc5465 100644
--- a/httemplate/elements/jsrsServer.html
+++ b/httemplate/elements/jsrsServer.html
@@ -1,4 +1,3 @@
<%
-my $server = new FS::UI::Web::JSRPC;
-$server->process;
-%>
+ my $server = new FS::UI::Web::JSRPC '', $cgi;
+%><%= $server->process %>
diff --git a/httemplate/elements/progress-init.html b/httemplate/elements/progress-init.html
index 472a1725f..fb408400a 100644
--- a/httemplate/elements/progress-init.html
+++ b/httemplate/elements/progress-init.html
@@ -11,7 +11,11 @@
}
%>
-<SCRIPT TYPE="text/javascript" SRC="../elements/jsrsClient.js"></SCRIPT>
+<%= include('/elements/xmlhttp.html',
+ 'url' => $action,
+ 'subs' => [ 'start_job' ],
+ )
+%>
<SCRIPT TYPE="text/javascript" SRC="../elements/overlibmws.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" SRC="../elements/overlibmws_iframe.js"></SCRIPT>
<SCRIPT TYPE="text/javascript">
@@ -54,8 +58,10 @@ function <%=$key%>process () {
}
}
- jsrsPOST = true;
- jsrsExecute( '<%= $action %>', <%=$key%>myCallback, 'start_job', Hash );
+ // jsrsPOST = true;
+ // jsrsExecute( '<%= $action %>', <%=$key%>myCallback, 'start_job', Hash );
+
+ start_job( Hash, <%=$key%>myCallback );
}
diff --git a/httemplate/elements/progress-popup.html b/httemplate/elements/progress-popup.html
index 20bb5fc5a..200f97d9b 100644
--- a/httemplate/elements/progress-popup.html
+++ b/httemplate/elements/progress-popup.html
@@ -10,25 +10,35 @@
</HEAD>
<BODY BGCOLOR="#ccccff" onLoad="refreshStatus()">
-<SCRIPT TYPE="text/javascript" SRC="../elements/jsrsClient.js"></SCRIPT>
+<%= include('/elements/xmlhttp.html',
+ 'url' => $p.'elements/jsrsServer.html',
+ 'subs' => [ 'job_status' ],
+ )
+%>
<SCRIPT TYPE="text/javascript" src="../elements/qlib/control.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" src="../elements/qlib/imagelist.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" src="../elements/qlib/progress.js"></SCRIPT>
<SCRIPT TYPE="text/javascript">
function refreshStatus () {
- jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
+ //jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
+
+ job_status( '<%= $jobnum %>', updateStatus );
}
function updateStatus( status_statustext ) {
- var Array = status_statustext.split("\n");
- var status = Array[0];
- var statustext = Array[1];
+
+ //var Array = status_statustext.split("\n");
+ var statusArray = eval('(' + status_statustext + ')');
+ var status = statusArray[0];
+ var statustext = statusArray[1];
+
//if ( status == 'progress' ) {
//IE workaround, no i have no idea why
if ( status.indexOf('progress') > -1 ) {
document.getElementById("progress_percent").innerHTML = statustext + '%';
bar1.set(statustext);
bar1.update;
- jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
+ //jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
+ job_status( '<%= $jobnum %>', updateStatus );
} else if ( status.indexOf('complete') > -1 ) {
<% if ( $message ) { %>
document.getElementById("progress_message").innerHTML = "<%= $message %>";
diff --git a/httemplate/elements/xmlhttp.html b/httemplate/elements/xmlhttp.html
index 425e28e3d..41965ace2 100644
--- a/httemplate/elements/xmlhttp.html
+++ b/httemplate/elements/xmlhttp.html
@@ -1,5 +1,9 @@
<%
- my ( $url, @subs ) = @_;
+ my ( %opt ) = @_;
+
+ my $url = $opt{'url'};
+ #my $action = exists $opt{'action'} ? $opt{'action'} : 'GET';
+ #my @subs = @{ $opt{'subs'};
$url .= ( ($url =~ /\?/) ? '&' : '?' ).
'sub=';
@@ -27,7 +31,7 @@
}
- <% foreach my $func (@subs) {
+ <% foreach my $func ( @{$opt{'subs'}} ) {
my $furl = $url . uri_escape($func);
$furl =~ s/\"/\\\\\"/; #javascript escape
@@ -38,11 +42,21 @@
// count args; build URL
var url = "<%=$furl%>";
var a = <%=$func%>.arguments;
- for (var i = 0; i < a.length-1; i++)
- url = url + "&arg=" + escape(a[i]);
+ var args;
+ var len;
+ if ( a && typeof a == 'object' && a[0].constructor == Array ) {
+ args = a[0];
+ len = args.length
+ } else {
+ args = a;
+ len = args.length - 1;
+ }
+ for (var i = 0; i < len; i++)
+ url = url + "&arg=" + escape(args[i]);
url = url.replace( /[+]/g, '%2B'); // fix the unescaped plus signs
var xmlhttp = rs_init_object();
xmlhttp.open("GET", url, true);
+ xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState != 4)
return;