src/cm/media/js/lib/yui/yui_3.10.3/build/uploader-queue/uploader-queue-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('uploader-queue', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
* The class manages a queue of files that should be uploaded to the server.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
* It initializes the required number of uploads, tracks them as they progress,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
* and automatically advances to the next upload when a preceding one has completed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
* @module uploader-queue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
* This class manages a queue of files to be uploaded to the server.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
* @class Uploader.Queue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
* @extends Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
* @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
var UploaderQueue = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    this.queuedFiles = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    this.uploadRetries = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
    this.numberOfUploads = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    this.currentUploadedByteValues = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    this.currentFiles = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    this.totalBytesUploaded = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    this.totalBytes = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    UploaderQueue.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
Y.extend(UploaderQueue, Y.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    * Stored value of the current queue state
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    * @property _currentState
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    * @default UploaderQueue.STOPPED
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    _currentState: UploaderQueue.STOPPED,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    * Construction logic executed during UploaderQueue instantiation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    initializer : function () {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    * Handles and retransmits upload start event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    * @method _uploadStartHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    * @param event The event dispatched during the upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    _uploadStartHandler : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
        var updatedEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        updatedEvent.file = event.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        updatedEvent.originEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        this.fire("uploadstart", updatedEvent);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    * Handles and retransmits upload error event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    * @method _uploadErrorHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    * @param event The event dispatched during the upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    _uploadErrorHandler : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
        var errorAction = this.get("errorAction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
            updatedEvent = event,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
            fileid,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
            retries;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        updatedEvent.file = event.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        updatedEvent.originEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        this.numberOfUploads-=1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        delete this.currentFiles[event.target.get("id")];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
        this._detachFileEvents(event.target);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
        event.target.cancelUpload();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        if (errorAction === UploaderQueue.STOP) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
            this.pauseUpload();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        else if (errorAction === UploaderQueue.RESTART_ASAP) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
            fileid = event.target.get("id");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
            retries = this.uploadRetries[fileid] || 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            if (retries < this.get("retryCount")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
                this.uploadRetries[fileid] = retries + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
                this.addToQueueTop(event.target);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        else if (errorAction === UploaderQueue.RESTART_AFTER) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
            fileid = event.target.get("id");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
            retries = this.uploadRetries[fileid] || 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            if (retries < this.get("retryCount")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
                this.uploadRetries[fileid] = retries + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
                this.addToQueueBottom(event.target);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
            this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        this.fire("uploaderror", updatedEvent);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    * Launches the upload of the next file in the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    * @method _startNextFile
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    _startNextFile : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        if (this.queuedFiles.length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
            var currentFile = this.queuedFiles.shift(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
                fileId = currentFile.get("id"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
                parameters = this.get("perFileParameters"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
                fileParameters = parameters.hasOwnProperty(fileId) ? parameters[fileId] : parameters;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
            this.currentUploadedByteValues[fileId] = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
            currentFile.on("uploadstart", this._uploadStartHandler, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
            currentFile.on("uploadprogress", this._uploadProgressHandler, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
            currentFile.on("uploadcomplete", this._uploadCompleteHandler, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
            currentFile.on("uploaderror", this._uploadErrorHandler, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
            currentFile.on("uploadcancel", this._uploadCancelHandler, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
            currentFile.set("xhrHeaders", this.get("uploadHeaders"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
            currentFile.set("xhrWithCredentials", this.get("withCredentials"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
            currentFile.startUpload(this.get("uploadURL"), fileParameters, this.get("fileFieldName"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            this._registerUpload(currentFile);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    * Register a new upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    * @method _registerUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    _registerUpload : function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        this.numberOfUploads += 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        this.currentFiles[file.get("id")] = file;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    * Unregisters a new upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    * @method _unregisterUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    _unregisterUpload : function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        if (this.numberOfUploads > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
            this.numberOfUploads -= 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        delete this.currentFiles[file.get("id")];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        delete this.uploadRetries[file.get("id")];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        this._detachFileEvents(file);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    _detachFileEvents : function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
        file.detach("uploadstart", this._uploadStartHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        file.detach("uploadprogress", this._uploadProgressHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
        file.detach("uploadcomplete", this._uploadCompleteHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        file.detach("uploaderror", this._uploadErrorHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
        file.detach("uploadcancel", this._uploadCancelHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    * Handles and retransmits upload complete event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    * @method _uploadCompleteHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    * @param event The event dispatched during the upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    _uploadCompleteHandler : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
        this._unregisterUpload(event.target);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
        this.totalBytesUploaded += event.target.get("size");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
        delete this.currentUploadedByteValues[event.target.get("id")];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
        if (this.queuedFiles.length > 0 && this._currentState === UploaderQueue.UPLOADING) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
            this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
        var updatedEvent = event,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
            uploadedTotal = this.totalBytesUploaded,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
            percentLoaded = Math.min(100, Math.round(10000*uploadedTotal/this.totalBytes) / 100);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        updatedEvent.file = event.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        updatedEvent.originEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
        Y.each(this.currentUploadedByteValues, function (value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
            uploadedTotal += value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
        this.fire("totaluploadprogress", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
            bytesLoaded: uploadedTotal,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
            bytesTotal: this.totalBytes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
            percentLoaded: percentLoaded
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        this.fire("uploadcomplete", updatedEvent);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
        if (this.queuedFiles.length === 0 && this.numberOfUploads <= 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
            this.fire("alluploadscomplete");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
            this._currentState = UploaderQueue.STOPPED;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    * Handles and retransmits upload cancel event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
    * @method _uploadCancelHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    * @param event The event dispatched during the upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
    _uploadCancelHandler : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        var updatedEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
        updatedEvent.originEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
        updatedEvent.file = event.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
        this.fire("uploadcacel", updatedEvent);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    * Handles and retransmits upload progress event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
    * @method _uploadProgressHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    * @param event The event dispatched during the upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    _uploadProgressHandler : function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        this.currentUploadedByteValues[event.target.get("id")] = event.bytesLoaded;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        var updatedEvent = event,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
            uploadedTotal = this.totalBytesUploaded,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
            percentLoaded = Math.min(100, Math.round(10000*uploadedTotal/this.totalBytes) / 100);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        updatedEvent.originEvent = event;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        updatedEvent.file = event.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
        this.fire("uploadprogress", updatedEvent);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        Y.each(this.currentUploadedByteValues, function (value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
            uploadedTotal += value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        this.fire("totaluploadprogress", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
            bytesLoaded: uploadedTotal,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
            bytesTotal: this.totalBytes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
            percentLoaded: percentLoaded
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    * Starts uploading the queued up file list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
    * @method startUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    startUpload: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        this.queuedFiles = this.get("fileList").slice(0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        this.numberOfUploads = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
        this.currentUploadedByteValues = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
        this.currentFiles = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        this.totalBytesUploaded = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        this._currentState = UploaderQueue.UPLOADING;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
        while (this.numberOfUploads < this.get("simUploads") && this.queuedFiles.length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
            this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
    * Pauses the upload process. The ongoing file uploads
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    * will complete after this method is called, but no
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
    * new ones will be launched.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
    * @method pauseUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    pauseUpload: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
        this._currentState = UploaderQueue.STOPPED;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
    * Restarts a paused upload process.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    * @method restartUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    restartUpload: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
        this._currentState = UploaderQueue.UPLOADING;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
        while (this.numberOfUploads < this.get("simUploads")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
             this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    * If a particular file is stuck in an ongoing upload without
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    * any progress events, this method allows to force its reupload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    * by cancelling its upload and immediately relaunching it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    * @method forceReupload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
    * @param file {Y.File} The file to force reupload on.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    forceReupload : function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        var id = file.get("id");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        if (this.currentFiles.hasOwnProperty(id)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
            file.cancelUpload();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
            this._unregisterUpload(file);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
            this.addToQueueTop(file);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
            this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    * Add a new file to the top of the queue (the upload will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    * launched as soon as the current number of uploading files
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    * drops below the maximum permissible value).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    * @method addToQueueTop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    * @param file {Y.File} The file to add to the top of the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    addToQueueTop: function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            this.queuedFiles.unshift(file);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    * Add a new file to the bottom of the queue (the upload will be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    * launched after all the other queued files are uploaded.)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
    * @method addToQueueBottom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    * @param file {Y.File} The file to add to the bottom of the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    addToQueueBottom: function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
            this.queuedFiles.push(file);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
    * Cancels a specific file's upload. If no argument is passed,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
    * all ongoing uploads are cancelled and the upload process is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    * stopped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    * @method cancelUpload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    * @param file {Y.File} An optional parameter - the file whose upload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
    * should be cancelled.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
    cancelUpload: function (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
        var id,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
            fid;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        if (file) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
            id = file.get("id");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
            if (this.currentFiles[id]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                this.currentFiles[id].cancelUpload();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                this._unregisterUpload(this.currentFiles[id]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
                if (this._currentState === UploaderQueue.UPLOADING) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
                    this._startNextFile();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
            else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
                for (i = 0, len = this.queuedFiles.length; i < len; i++) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
                    if (this.queuedFiles[i].get("id") === id) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
                        this.queuedFiles.splice(i, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
                        break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
        else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
            for (fid in this.currentFiles) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
                this.currentFiles[fid].cancelUpload();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
                this._unregisterUpload(this.currentFiles[fid]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
            this.currentUploadedByteValues = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
            this.currentFiles = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
            this.totalBytesUploaded = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
            this.fire("alluploadscancelled");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
            this._currentState = UploaderQueue.STOPPED;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    * Static constant for the value of the `errorAction` attribute:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    * prescribes the queue to continue uploading files in case of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    * an error.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    * @property CONTINUE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
    CONTINUE: "continue",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
    * Static constant for the value of the `errorAction` attribute:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
    * prescribes the queue to stop uploading files in case of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    * an error.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
    * @property STOP
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    STOP: "stop",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    * Static constant for the value of the `errorAction` attribute:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
    * prescribes the queue to restart a file upload immediately in case of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    * an error.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
    * @property RESTART_ASAP
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
    RESTART_ASAP: "restartasap",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    * Static constant for the value of the `errorAction` attribute:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
    * prescribes the queue to restart an errored out file upload after
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
    * other files have finished uploading.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
    * @property RESTART_AFTER
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
    RESTART_AFTER: "restartafter",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
    * Static constant for the value of the `_currentState` property:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    * implies that the queue is currently not uploading files.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
    * @property STOPPED
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
    STOPPED: "stopped",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
    * Static constant for the value of the `_currentState` property:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
    * implies that the queue is currently uploading files.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
    * @property UPLOADING
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
    * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    UPLOADING: "uploading",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
    * The identity of the class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    * @property NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
    * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
    * @default 'uploaderqueue'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
    * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
    NAME: 'uploaderqueue',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
    * Static property used to define the default attribute configuration of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
    * the class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
    * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
    * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
    * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
    * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
        * Maximum number of simultaneous uploads; must be in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        * range between 1 and 5. The value of `2` is default. It
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
        * is recommended that this value does not exceed 3.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
        * @attribute simUploads
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
        * @default 2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
         simUploads: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
                 value: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
                 validator: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
                         return (val >= 1 && val <= 5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
                 }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
         },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
        * The action to take in case of error. The valid values for this attribute are:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
        * `Y.Uploader.Queue.CONTINUE` (the upload process should continue on other files,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
        * ignoring the error), `Y.Uploader.Queue.STOP` (the upload process
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
        * should stop completely), `Y.Uploader.Queue.RESTART_ASAP` (the upload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
        * should restart immediately on the errored out file and continue as planned), or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
        * Y.Uploader.Queue.RESTART_AFTER (the upload of the errored out file should restart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
        * after all other files have uploaded)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
        * @attribute errorAction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
        * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
        * @default Y.Uploader.Queue.CONTINUE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
        errorAction: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
            value: "continue",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
                validator: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
                return (
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
                    val === UploaderQueue.CONTINUE ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
                    val === UploaderQueue.STOP ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
                    val === UploaderQueue.RESTART_ASAP ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
                    val === UploaderQueue.RESTART_AFTER
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
        * The total number of bytes that has been uploaded.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
        * @attribute bytesUploaded
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
        bytesUploaded: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
        * The total number of bytes in the queue.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
        * @attribute bytesTotal
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
        bytesTotal: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
        * The queue file list. This file list should only be modified
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
        * before the upload has been started; modifying it after starting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
        * the upload has no effect, and `addToQueueTop` or `addToQueueBottom` methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
        * should be used instead.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
        * @attribute fileList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
        * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
        fileList: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
            value: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
            setter: function (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
                var newValue = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
                Y.Array.each(newValue, function (value) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
                    this.totalBytes += value.get("size");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
                }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
        * A String specifying what should be the POST field name for the file
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
        * content in the upload request.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
        * @attribute fileFieldName
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
        * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
        * @default Filedata
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
        fileFieldName: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
            value: "Filedata"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
        * The URL to POST the file upload requests to.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
        * @attribute uploadURL
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
        * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
        * @default ""
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
        uploadURL: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
            value: ""
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
        * Additional HTTP headers that should be included
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
        * in the upload request. Due to Flash Player security
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
        * restrictions, this attribute is only honored in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
        * HTML5 Uploader.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
        * @attribute uploadHeaders
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
        * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
        * @default {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
        uploadHeaders: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
            value: {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
        * A Boolean that specifies whether the file should be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
        * uploaded with the appropriate user credentials for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
        * domain. Due to Flash Player security restrictions, this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        * attribute is only honored in the HTML5 Uploader.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
        * @attribute withCredentials
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
        * @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        * @default true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
        withCredentials: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
            value: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
        * An object, keyed by `fileId`, containing sets of key-value pairs
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
        * that should be passed as POST variables along with each corresponding
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
        * file.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
        * @attribute perFileParameters
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
        * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
        * @default {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
        perFileParameters: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
            value: {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
        * The number of times to try re-uploading a file that failed to upload before
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
        * cancelling its upload.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
        *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
        * @attribute retryCount
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
        * @type {Number}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
        * @default 3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
        retryCount: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
            value: 3
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
Y.namespace('Uploader');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
Y.Uploader.Queue = UploaderQueue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
}, '3.10.3', {"requires": ["base"]});