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) { Index: branches/5.2.x/core/admin_templates/js/uploader/uploader.js =================================================================== diff -u -N -r15751 -r15754 --- branches/5.2.x/core/admin_templates/js/uploader/uploader.js (.../uploader.js) (revision 15751) +++ branches/5.2.x/core/admin_templates/js/uploader/uploader.js (.../uploader.js) (revision 15754) @@ -30,6 +30,19 @@ this.enableUploadButton(); this._attachEventHandler(); + + var $me = this; + + if ( this.params.ajax ) { + $(document).bind('FormManager.WindowManager.Ready', function ($e) { + $me.init(); + }); + } + else { + $(document).ready(function() { + $me.init(); + }); + } } /* ==== Private methods ==== */ @@ -73,8 +86,9 @@ buttonDisabled : true, //false, buttonCursor : -1, // ARROW : -1, HAND : -2 wmode : 'transparent', // "window", "transparent", "opaque" - buttonPlaceholderId: false - } + buttonPlaceholderId: false, + ajax: false + }; for (var $param_name in $defaults) { if (this.params[$param_name] == null) { Index: branches/5.2.x/core/admin_templates/incs/form_blocks.tpl =================================================================== diff -u -N -r15748 -r15754 --- branches/5.2.x/core/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 15748) +++ branches/5.2.x/core/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 15754) @@ -382,7 +382,8 @@ buttonTextStyle: ".theFont { font-size: 12; font-family: arial, sans}", buttonTextTopPadding: 2, buttonTextLeftPadding: 9, - buttonPlaceholderId: '_place_holder' + buttonPlaceholderId: '_place_holder', + ajax: truefalse } )