<!-- AJAX file upload stuff -->
-<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/ajaxfileupload.js"></script>
+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/ajaxfileupload.js"></script>
<script type="text/javascript">
- //<![CDATA
+ //<![CDATA[
+ var fileUploadProgressTimer = 0;
+ var inFileUploadProgressTimer = false;
+ var fileUploadProgressTimerCanceled = false;
function updateProgress() {
+ if (inFileUploadProgressTimer) {
+ // since $.getJSON is asynchronous, wait
+ // until the last one is finished
+ return;
+ }
+ inFileUploadProgressTimer = true;
$.getJSON("/cgi-bin/koha/tools/upload-file-progress.pl", function(json) {
- $("#fileuploadprogress").text(json.progress + '%');
- if (json.progress < 100) {
- setTimeout("updateProgress()",200);
+ if (!fileUploadProgressTimerCanceled) {
+ var bgproperty = (parseInt(json.progress)*2-300)+"px 0px";
+ $("#fileuploadprogress").css("background-position",bgproperty);
+ $("#fileuploadpercent").text(json.progress);
}
+ inFileUploadProgressTimer = false;
});
}
function ajaxFileUpload()
{
-
+ fileUploadProgressTimerCanceled = false;
+ $("#uploadpanel").show();
$("#fileuploadstatus").show();
- setTimeout("updateProgress()",2000);
+ fileUploadProgressTimer = setInterval("updateProgress()",500);
$.ajaxFileUpload (
{
url:'/cgi-bin/koha/tools/upload-file.pl',
$("#fileuploadfailed").text("Upload failed -- database in maintenance state");
} else {
$("#uploadedfileid").val(data.fileid);
+ $("#fileuploadprogress").css("background-position","0px 0px");
+ $("#processfile").show();
+ $("#fileuploadpercent").text("100");
}
+ fileUploadProgressTimerCanceled = true;
+ clearInterval(fileUploadProgressTimer);
},
error: function (data, status, e) {
+ fileUploadProgressTimerCanceled = true;
alert(e);
+ clearInterval(fileUploadProgressTimer);
}
}
)
- updateProgress();
return false;
}