aboutsummaryrefslogtreecommitdiffstats
path: root/web/js.js
diff options
context:
space:
mode:
authormatthew <matthew>2008-03-29 03:03:34 +0000
committermatthew <matthew>2008-03-29 03:03:34 +0000
commit193f3360a151178afb0df56e2bbf9430f63228bb (patch)
treef557f0ddf60dc394a6c0a778acc0fd3d81763785 /web/js.js
parent673715797876711db8eadd510610655e991d66cf (diff)
Photo uploading for updates, and progress bar when uploading photos on
FixMyStreet (using swfupload). Needs more testing and error handling code yet.
Diffstat (limited to 'web/js.js')
-rw-r--r--web/js.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/web/js.js b/web/js.js
index 58ca485a0..2634f481a 100644
--- a/web/js.js
+++ b/web/js.js
@@ -56,6 +56,10 @@ YAHOO.util.Event.onContentReady('mapForm', function() {
}
this.x.value = x + 2;
this.y.value = y + 2;
+ if (swfu && swfu.getStats().files_queued > 0) {
+ swfu.startUpload();
+ return false;
+ }
return true;
}
});
@@ -110,6 +114,91 @@ YAHOO.util.Event.onContentReady('email_alert_box', function() {
});
});
+/* File upload */
+function doSubmit(e) {
+ e = e || window.event;
+ if (e.stopPropagation) e.stopPropagation();
+ e.cancelBubble = true;
+ try {
+ if (swfu.getStats().files_queued > 0)
+ swfu.startUpload();
+ else
+ return true;
+ } catch (e) {}
+ return false;
+}
+
+function uploadDone() {
+ var m = document.getElementById('mapForm');
+ if (m) {
+ m.submit();
+ } else {
+ document.getElementById('fieldset').submit();
+ }
+}
+
+var swfu;
+var swfu_settings = {
+ upload_url : "http://matthew.bci.mysociety.org/upload.cgi",
+ flash_url : "http://matthew.bci.mysociety.org/jslib/swfupload/swfupload_f9.swf",
+ file_size_limit : "10240",
+ file_types : "*.jpg;*.jpeg;*.pjpeg",
+ file_types_description : "JPEG files",
+ file_upload_limit : "0",
+
+ swfupload_loaded_handler : function() {
+ var d = document.getElementById("fieldset");
+ if (d) d.onsubmit = doSubmit;
+ },
+ file_queued_handler : function(obj) {
+ document.getElementById('txtfilename').value = obj.name;
+ },
+//file_queue_error_handler : fileQueueError,
+ // file_dialog_complete_handler : fileDialogComplete,
+//upload_start_handler : uploadStartEventHandler,
+ upload_progress_handler : function(obj, bytesLoaded, bytesTotal) {
+ var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
+ obj.id = "singlefile";
+ var progress = new FileProgress(obj, this.customSettings.progress_target);
+ progress.setProgress(percent);
+ progress.setStatus("Uploading...");
+ },
+ upload_success_handler : function(obj, server_data) {
+ obj.id = "singlefile";
+ var progress = new FileProgress(obj, this.customSettings.progress_target);
+ progress.setComplete();
+ progress.setStatus("Complete!");
+ if (server_data == ' ') {
+ this.customSettings.upload_successful = false;
+ } else {
+ this.customSettings.upload_successful = true;
+ document.getElementById('upload_fileid').value = server_data;
+ }
+ },
+ upload_complete_handler : function(obj) {
+ if (this.customSettings.upload_successful) {
+ var d = document.getElementById('update_post');
+ if (d) d.disabled = 'true';
+ uploadDone();
+ } else {
+ obj.id = 'singlefile';
+ var progress = new FileProgress(obj, this.customSettings.progress_target);
+ progress.setError();
+ progress.setStatus("File rejected");
+ document.getElementById('txtfilename').value = '';
+ }
+
+ },
+//upload_error_handler : uploadError,
+
+ swfupload_element_id : "fileupload_flashUI",
+ degraded_element_id : "fileupload_normalUI",
+ custom_settings : {
+ upload_successful : false,
+ progress_target : 'fileupload_flashUI'
+ }
+};
+
// I love the global
var tile_x = 0;
var tile_y = 0;