raw
mp-wp_genesis           1 /*
mp-wp_genesis 2 Queue Plug-in
mp-wp_genesis 3
mp-wp_genesis 4 Features:
mp-wp_genesis 5 *Adds a cancelQueue() method for cancelling the entire queue.
mp-wp_genesis 6 *All queued files are uploaded when startUpload() is called.
mp-wp_genesis 7 *If false is returned from uploadComplete then the queue upload is stopped.
mp-wp_genesis 8 If false is not returned (strict comparison) then the queue upload is continued.
mp-wp_genesis 9 *Adds a QueueComplete event that is fired when all the queued files have finished uploading.
mp-wp_genesis 10 Set the event handler with the queue_complete_handler setting.
mp-wp_genesis 11
mp-wp_genesis 12 */
mp-wp_genesis 13
mp-wp_genesis 14 var SWFUpload;
mp-wp_genesis 15 if (typeof(SWFUpload) === "function") {
mp-wp_genesis 16 SWFUpload.queue = {};
mp-wp_genesis 17
mp-wp_genesis 18 SWFUpload.prototype.initSettings = (function (oldInitSettings) {
mp-wp_genesis 19 return function () {
mp-wp_genesis 20 if (typeof(oldInitSettings) === "function") {
mp-wp_genesis 21 oldInitSettings.call(this);
mp-wp_genesis 22 }
mp-wp_genesis 23
mp-wp_genesis 24 this.customSettings.queue_cancelled_flag = false;
mp-wp_genesis 25 this.customSettings.queue_upload_count = 0;
mp-wp_genesis 26
mp-wp_genesis 27 this.settings.user_upload_complete_handler = this.settings.upload_complete_handler;
mp-wp_genesis 28 this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler;
mp-wp_genesis 29
mp-wp_genesis 30 this.settings.queue_complete_handler = this.settings.queue_complete_handler || null;
mp-wp_genesis 31 };
mp-wp_genesis 32 })(SWFUpload.prototype.initSettings);
mp-wp_genesis 33
mp-wp_genesis 34 SWFUpload.prototype.startUpload = function (fileID) {
mp-wp_genesis 35 this.customSettings.queue_cancelled_flag = false;
mp-wp_genesis 36 this.callFlash("StartUpload", false, [fileID]);
mp-wp_genesis 37 };
mp-wp_genesis 38
mp-wp_genesis 39 SWFUpload.prototype.cancelQueue = function () {
mp-wp_genesis 40 this.customSettings.queue_cancelled_flag = true;
mp-wp_genesis 41 this.stopUpload();
mp-wp_genesis 42
mp-wp_genesis 43 var stats = this.getStats();
mp-wp_genesis 44 while (stats.files_queued > 0) {
mp-wp_genesis 45 this.cancelUpload();
mp-wp_genesis 46 stats = this.getStats();
mp-wp_genesis 47 }
mp-wp_genesis 48 };
mp-wp_genesis 49
mp-wp_genesis 50 SWFUpload.queue.uploadCompleteHandler = function (file) {
mp-wp_genesis 51 var user_upload_complete_handler = this.settings.user_upload_complete_handler;
mp-wp_genesis 52 var continueUpload;
mp-wp_genesis 53
mp-wp_genesis 54 if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) {
mp-wp_genesis 55 this.customSettings.queue_upload_count++;
mp-wp_genesis 56 }
mp-wp_genesis 57
mp-wp_genesis 58 if (typeof(user_upload_complete_handler) === "function") {
mp-wp_genesis 59 continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true;
mp-wp_genesis 60 } else {
mp-wp_genesis 61 continueUpload = true;
mp-wp_genesis 62 }
mp-wp_genesis 63
mp-wp_genesis 64 if (continueUpload) {
mp-wp_genesis 65 var stats = this.getStats();
mp-wp_genesis 66 if (stats.files_queued > 0 && this.customSettings.queue_cancelled_flag === false) {
mp-wp_genesis 67 this.startUpload();
mp-wp_genesis 68 } else if (this.customSettings.queue_cancelled_flag === false) {
mp-wp_genesis 69 this.queueEvent("queue_complete_handler", [this.customSettings.queue_upload_count]);
mp-wp_genesis 70 this.customSettings.queue_upload_count = 0;
mp-wp_genesis 71 } else {
mp-wp_genesis 72 this.customSettings.queue_cancelled_flag = false;
mp-wp_genesis 73 this.customSettings.queue_upload_count = 0;
mp-wp_genesis 74 }
mp-wp_genesis 75 }
mp-wp_genesis 76 };
mp-wp_genesis 77 }