Index: core/admin_templates/js/uploader/upload_manager.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- core/admin_templates/js/uploader/upload_manager.js (revision 15733) +++ core/admin_templates/js/uploader/upload_manager.js (revision ) @@ -1,11 +1,12 @@ 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,13 +75,12 @@ } 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(); @@ -96,20 +88,27 @@ return false; } - } - ); + return true; + }; + + if ( $form_id === undefined ) { + $form_id = $form_name; -} + } -/* ==== Public methods ==== */ + $('#' + $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,23 +127,23 @@ ); 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) { @@ -152,7 +151,7 @@ }*/ this._debugMode = $enabled; -} +}; /* ==== Flash event handlers ==== */ @@ -160,7 +159,7 @@ 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) { \ No newline at end of file Index: core/admin_templates/js/uploader/uploader.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- core/admin_templates/js/uploader/uploader.js (revision 15751) +++ core/admin_templates/js/uploader/uploader.js (revision ) @@ -30,7 +30,20 @@ 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 ==== */ Uploader.prototype._attachEventHandler = function() { @@ -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) { \ No newline at end of file Index: core/admin_templates/incs/form_blocks.tpl IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- core/admin_templates/incs/form_blocks.tpl (revision 15748) +++ core/admin_templates/incs/form_blocks.tpl (revision ) @@ -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 } )