Index: branches/5.2.x/core/admin_templates/js/uploader/uploader.js =================================================================== diff -u -N -r15724 -r15729 --- branches/5.2.x/core/admin_templates/js/uploader/uploader.js (.../uploader.js) (revision 15724) +++ branches/5.2.x/core/admin_templates/js/uploader/uploader.js (.../uploader.js) (revision 15729) @@ -47,8 +47,6 @@ multiple : 0, field: '', thumb_format: '', - json: '', - previewURL: '', fileQueueLimit : 0, buttonImageURL : '', buttonWidth : 1, @@ -83,35 +81,24 @@ } Uploader.prototype._prepareFiles = function() { - var $files_json = [], $raw_file_info, $file_info; + var ids = ''; + var names = ''; - // process uploaded files for (var f = 0; f < this.files.length; f++) { - $raw_file_info = this.files[f]; + if (isset(this.files[f].uploaded) && !isset(this.files[f].temp)) { + continue; + } - $file_info = { - id: $raw_file_info.id, - name: $raw_file_info.name, - size: $raw_file_info.size, - deleted: 0, - temp: $raw_file_info.temp, - order: $raw_file_info.order - }; - - $files_json.push(JSON.stringify($file_info)); + ids += this.files[f].id + '|' + names += this.files[f].name + '|' } - // process deleted files; - for (var $i = 0; $i < this.deleted.length; $i++) { - $file_info = { - name: this.deleted[$i], - deleted: 1 - }; + ids = ids.replace(/\|$/, '', ids); + names = names.replace(/\|$/, '', names); - $files_json.push(JSON.stringify($file_info)); - } - - document.getElementById(this.id+'[json]').value = $files_json.join('|'); + document.getElementById(this.id+'[tmp_ids]').value = ids; + document.getElementById(this.id+'[tmp_names]').value = names; + document.getElementById(this.id+'[tmp_deleted]').value = this.deleted.join('|'); } Uploader.prototype._formatSize = function (bytes) { @@ -192,40 +179,29 @@ } ) - if (this.params.json != '') { - var $json_decoded = this.params.json.split('|'), $file, $preview_url; + if (this.params.urls != '') { + var urls = this.params.urls.split('|'); + var names = this.params.names.split('|'); + var sizes = this.params.sizes.split('|'); - for (var $i = 0; $i < $json_decoded.length; $i++) { - $file = JSON.parse($json_decoded[$i]); + for (var i = 0; i < urls.length; i++) { + var a_file = { + id : 'uploaded_' + crc32(names[i]), + name : names[i], + url : urls[i], + size: sizes[i], + uploaded : 1, + progress: 100 + }; - if ( $file.deleted ) { - this.deleted.push($file.name); - continue; - } - - $file.url = this.getUrl($file, 'previewURL'); - $file.uploaded = 1; - $file.progress = 100; - - this.files.push($file); + this.files.push(a_file); this.files_count++; } this.updateInfo(); } } -Uploader.prototype.getUrl = function($file, $param_name) { - var $url = this.params[$param_name]; - - $url = $url.replace('#TMP#', $file.temp); - $url = $url.replace('#ID#', $file.id); - $url = $url.replace('#FILE#', encodeURIComponent($file.name)); - $url = $url.replace('#FIELD#', this.params.field); - - return $url; -} - Uploader.prototype.enableUploadButton = function() { var $me = this; @@ -369,7 +345,7 @@ $('.delete-file-btn', $ret).click( function ($e) { - $(this).attr('checked', UploadsManager.DeleteFile($me.id, $file) ? '' : 'checked'); + $(this).attr('checked', UploadsManager.DeleteFile($me.id, $file.name) ? '' : 'checked'); } ); @@ -397,15 +373,17 @@ return $ret; } -Uploader.prototype.sortFiles = function($ordered_queue) { - var $file_id, $file_index; +Uploader.prototype.getSortedFiles = function($ordered_queue) { + var $me = this; - for (var $i = 0; $i < $ordered_queue.length; $i++) { - $file_id = $ordered_queue[$i].replace(/_queue_row$/, ''); - $file_index = this.getFileIndex({id: $file_id}); + var $ret = $.map($me.files, function ($elem, $index) { + var $file_id = $ordered_queue[$index].replace(/_queue_row$/, ''), + $file_index = $me.getFileIndex({id: $file_id}); - this.files[$file_index].order = $i; - } + return $me.files[$file_index].name; + }); + + return $ret; } Uploader.prototype.updateQueueFile = function($file_index, $delete_file) { @@ -455,7 +433,7 @@ $('#' + this.files[$file_index].id + '_progress').html($progress_code); } -Uploader.prototype.removeFile = function (file, $mark_deleted) { +Uploader.prototype.removeFile = function (file) { var count = 0; var n_files = new Array(); @@ -478,26 +456,8 @@ this.files = n_files; this.files_count = count; this.updateInfo(undefined, true); - - if ( $mark_deleted !== undefined && $mark_deleted === true ) { - this.markDeleted(file.id); - } } -Uploader.prototype.markDeleted = function ($file_name) { - if ( !in_array($file_name, this.deleted) ) { - this.deleted.push($file_name); - } -} - -Uploader.prototype.unMarkDeleted = function ($file_name) { - var $file_index = array_search($file_name, this.deleted); - - if ( $file_index !== -1 ) { - this.deleted.splice($file_index, 1); - } -} - Uploader.prototype.hasQueue = function() { for (var f = 0; f < this.files.length; f++) { if (isset(this.files[f].uploaded)) { @@ -568,15 +528,12 @@ // file was uploaded OR file upload was cancelled var $file_index = this.getFileIndex(file); - this.unMarkDeleted(file.name); - if ($file_index !== false) { // in case if file upload was cancelled, then no info here this.files[$file_index].uploaded = 1; this.files[$file_index].progress = 100; this.files[$file_index].temp = 1; - this.files[$file_index].url = this.getUrl(this.files[$file_index], 'previewURL'); - this.files[$file_index].order = $file_index; + this.files[$file_index].url = this.params.tmp_url.replace('#ID#', file.id).replace('#FILE#', encodeURIComponent(file.name)).replace('#FIELD#', this.params.field); this.updateInfo($file_index); }