Index: branches/5.2.x/core/admin_templates/js/uploader/upload_manager.js =================================================================== diff -u -N -r15733 -r15754 --- branches/5.2.x/core/admin_templates/js/uploader/upload_manager.js (.../upload_manager.js) (revision 15733) +++ branches/5.2.x/core/admin_templates/js/uploader/upload_manager.js (.../upload_manager.js) (revision 15754) @@ -1,10 +1,11 @@ function UploadsManager() { + var $me = this; - $(document).ready( - function() { - UploadsManager._initAll(); - } - ); + $(document).bind('FormManager.Form.Ready', function ($e, $prefix) { + var $form_id = FormManager.form_param($prefix, 'form_id'); + + $me.Init($form_id); + }); } UploadsManager = new UploadsManager(); @@ -20,16 +21,8 @@ UploadsManager._nextFlashId = function() { this._nextId++; return 'uploaderflash' + this._nextId; -} +}; -UploadsManager._initAll = function() { - this._createHooks(); - - for (var i in this._Uploaders) { - this._Uploaders[i].init(); - } -} - UploadsManager.iterate = function($method, $timeout) { var $me = this; var args = Array.prototype.slice.call(arguments); // convert to array @@ -59,7 +52,7 @@ for (var i in this._Uploaders) { this._Uploaders[i][$method].apply(this._Uploaders[i], args); } -} +}; UploadsManager._hasQueue = function() { var has_queue = false; @@ -70,7 +63,7 @@ } return has_queue; -} +}; UploadsManager._getUploader = function (file) { var $flash_id = file.id.match(/(.*)_[\d]+/) ? RegExp.$1 : file.id; @@ -82,34 +75,40 @@ } return null; -} +}; -UploadsManager._createHooks = function () { - var $me = this; - - $('#' + $form_name).submit( - function ($e) { +/* ==== Public methods ==== */ +UploadsManager.Init = function ($form_id) { + var $me = this, + $submit_handler = function ($e) { if ($me._hasQueue()) { submitted = false; $e.stopImmediatePropagation(); alert('File upload is in progress. Please cancel the upload or wait until it\'s completed.'); return false; } - } - ); -} + return true; + }; -/* ==== Public methods ==== */ + if ( $form_id === undefined ) { + $form_id = $form_name; + } + + $('#' + $form_id).unbind('submit', $submit_handler).submit($submit_handler); +}; + UploadsManager.AddUploader = function(id, params) { + this.Init(); + this._Uploaders[id] = new Uploader(id, params); -} +}; UploadsManager.RemoveUploader = function(id) { this._Uploaders[id].remove(); delete this._Uploaders[id]; -} +}; UploadsManager.DeleteFile = function(uploader_id, fname, confirmed) { if (!confirmed && !confirm('Are you sure you want to delete "' + fname + '" file?')) { @@ -128,39 +127,39 @@ ); return true; -} +}; UploadsManager.StartUpload = function(id) { this._Uploaders[id].startUpload(); -} +}; UploadsManager.CancelFile = function(id, file_id) { this._Uploaders[id].callFlash('CancelUpload', [file_id]); -} +}; UploadsManager.UploadQueueComplete = function($uploader) { -} +}; UploadsManager.CancelUpload = function(id) { this._Uploaders[id].cancelUpload(); -} +}; UploadsManager.setDebugMode = function ($enabled) { /*for (var $uploader_index in this._Uploaders) { this._Uploaders[$uploader_index].clallFlash('SetDebugEnabled', [$enabled]); }*/ this._debugMode = $enabled; -} +}; /* ==== Flash event handlers ==== */ UploadsManager.onHandleEverything = function () { if (UploadsManager._debugMode) { console.log('default swf handler'); } -} +}; UploadsManager.onUploadStart = function(file) { var $uploader = UploadsManager._getUploader(file); @@ -170,7 +169,7 @@ this.UploadFileStart(file); } ); -} +}; UploadsManager.onUploadProgress = function(file, bytesLoaded, bytesTotal) { var $uploader = UploadsManager._getUploader(file); @@ -180,7 +179,7 @@ this.UploadProgress(file, bytesLoaded, bytesTotal); } ); -} +}; UploadsManager.onUploadComplete = function(file) { var $uploader = UploadsManager._getUploader(file); @@ -190,7 +189,7 @@ this.UploadFileComplete(file); } ); -} +}; UploadsManager.onFileQueued = function(file) { var $uploader = UploadsManager._getUploader(file); @@ -231,7 +230,7 @@ this.updateInfo(this.files.length - 1); } ) -} +}; UploadsManager.onUploadSuccess = function(file, serverData, receivedResponse) { var $uploader = UploadsManager._getUploader(file); @@ -241,7 +240,7 @@ this.UploadSuccess(file, serverData, receivedResponse); } ); -} +}; UploadsManager.onUploadError = function(file, errorCode, message) { var $uploader = UploadsManager._getUploader(file); @@ -291,7 +290,7 @@ alert('Error [' + errorCode + ']: ' + message + "\n" + 'Occured on file ' + file.name); } ); -} +}; UploadsManager.onFileQueueError = function(file, errorCode, message) { switch (errorCode) { @@ -316,7 +315,7 @@ // all not processed error messages go here alert('Error [' + errorCode + ']: ' + message + "\n" + 'Occured on file ' + file.name); -} +}; UploadsManager.onFlashReady = function ($uploader_id) { this._Uploaders[$uploader_id].onFlashReady(); @@ -326,7 +325,7 @@ // all uploaders are ready Application.processHooks('m:OnUploadersReady'); } -} +}; UploadsManager.onDebug = function (message) { if (!UploadsManager._debugMode) {