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