Index: branches/5.2.x/core/admin_templates/js/uploader/upload_manager.js
===================================================================
diff -u -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 -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 -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
}
)