* @method resolveFile * @private * @param {mxiFile|mxiBlob|FileUploader|File|Blob|input[type="file"]} file
(file)
| 3658 | * @param {mxiFile|mxiBlob|FileUploader|File|Blob|input[type="file"]} file |
| 3659 | */ |
| 3660 | function resolveFile(file) { |
| 3661 | var type = plupload.typeOf(file); |
| 3662 | |
| 3663 | // mxiFile (final step for other conditional branches) |
| 3664 | if (file instanceof moxie.file.File) { |
| 3665 | if (!file.ruid && !file.isDetached()) { |
| 3666 | if (!ruid) { // weird case |
| 3667 | return false; |
| 3668 | } |
| 3669 | file.ruid = ruid; |
| 3670 | file.connectRuntime(ruid); |
| 3671 | } |
| 3672 | |
| 3673 | queue.push(function(cb) { |
| 3674 | // run through the internal and user-defined filters, if any |
| 3675 | filterFile(file, function(err) { |
| 3676 | var fileUp; |
| 3677 | |
| 3678 | if (!err) { |
| 3679 | fileUp = new PluploadFile(file, _queueUpload, _queueResize); |
| 3680 | |
| 3681 | if (fileName) { |
| 3682 | fileUp.name = fileName; |
| 3683 | } |
| 3684 | |
| 3685 | bindListeners(fileUp); |
| 3686 | |
| 3687 | self.addItem(fileUp); // make files available for the filters by updating the main queue directly |
| 3688 | filesAdded.push(fileUp); |
| 3689 | self.trigger("FileFiltered", fileUp); |
| 3690 | } |
| 3691 | |
| 3692 | plupload.delay(cb); // do not build up recursions or eventually we might hit the limits |
| 3693 | }); |
| 3694 | }); |
| 3695 | } |
| 3696 | // mxiBlob |
| 3697 | else if (file instanceof moxie.file.Blob) { |
| 3698 | resolveFile(file.getSource()); |
| 3699 | file.destroy(); |
| 3700 | } |
| 3701 | // native File or blob |
| 3702 | else if (plupload.inArray(type, ['file', 'blob']) !== -1) { |
| 3703 | resolveFile(new moxie.file.File(null, file)); |
| 3704 | } |
| 3705 | // input[type="file"] |
| 3706 | else if (type === 'node' && plupload.typeOf(file.files) === 'filelist') { |
| 3707 | // if we are dealing with input[type="file"] |
| 3708 | plupload.each(file.files, resolveFile); |
| 3709 | } |
| 3710 | // mixed array of any supported types (see above) |
| 3711 | else if (type === 'array') { |
| 3712 | fileName = null; // should never happen, but unset anyway to avoid funny situations |
| 3713 | plupload.each(file, resolveFile); |
| 3714 | } |
| 3715 | } |
| 3716 | |
| 3717 | ruid = getRUID(); |
no test coverage detected