plupload - открывает несколько диалога для выбора файлов.

mstdmstd

Новичок
Подскажите пожалуйста,
использую либу plupload v2.1.1 для загрузки файлов через ajax
Делал как описано в доке тут http://www.plupload.com/docs/Getting-Started
И все вроде работает кроме того что при клике на линке Add more images открывается 2 а иногда 3 диалога для выбора файлов.

делаю :

Код:
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/plupload/plupload.full.min.js"></script>
...
  // Initialize the widget when the DOM is ready
  function InitializePlupload() {
    document.getElementById('filelist').innerHTML= "";
    document.getElementById('div_loadedImagesList').innerHTML= "";
    var uploader = new plupload.Uploader({
      browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
      // Rename files by clicking on their titles
      url: '<?php echo $config_admin_base_url ?>upload_product_images.php?invid='+current_inv_id+"&session_id=<?php echo session_id() ?>&DocumentRoot=<?php echo urldecode($DocumentRoot) ?>"
    });
    uploader.bind('FilesAdded', function(up, files) {
      number_ofAddedFiles= files.length
      var html = '';
      plupload.each(files, function(file) {
        html += '<li id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></li>';
      });
      document.getElementById('filelist').innerHTML += html;
      document.getElementById('div_uploading_status').innerHTML= current_inv_id + ' Files selected.'
    });
    uploader.bind('UploadProgress', function(up, file) {
      if ( document.getElementById(file.id) ) {
        document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
      }
    });
    uploader.bind('Error', function(up, err) {
      alert( "Error #" + err.code + ": " + err.message )
      document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
    });
    document.getElementById('start-upload').onclick = function() {
      uploader.start();
    };
    uploader.bind('FileUploaded', function(up, file, info) {  // Called when a file has finished uploading
  ...
    });
    uploader.init();
  }
...
      <div id="container">
        <a id="browse" href="javascript:return false;">[Add more images]</a>
        <a id="start-upload" href="javascript:;">[Start Upload]</a>
      </div>
Функция InitializePlupload() вызывается при заполнении формы данными выбранного продукта
В
Код:
new plupload.Uploader({
  ...
      url: '<?php echo $config_admin_base_url ?>upload_product_images.php?invid='+current_inv_id+
current_inv_id - это как раз код этого продукта и он меняется при выборе продукта
В чем может быть проблема?
 

mstdmstd

Новичок
Я нашел причину проблемы - она в том что продукт загружается средствами ajax без перегрузки страницы :
Код:
    var uploader = new plupload.Uploader({
      browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
      url: '<?php echo $config_admin_base_url ?>upload_product_images.php?invid='+current_inv_id+"&session_id=<?php echo session_id() ?>&DocumentRoot=<?php echo urldecode($DocumentRoot) ?>"
    });
Это как раз переменная current_inv_id . И получается что один вызов этой функции и еще один дополнительный диалог при открытии окна.

тут ссылка на используемый мною упакованный файл
http://www.plupload.com/plupload/js/plupload.full.min.js


тут http://www.plupload.com/plupload/js/plupload.dev.js его dev-версия

Я порылся в коде последнего и нашел строки

Код:
    // initialize file pickers - there can be many
    if (settings.browse_button) {
      plupload.each(settings.browse_button, function(el) {
        queue.push(function(cb) {

Я хотел после строки с кнопкой добавить строку с очисткой массива :
Код:
if (settings.browse_button) {
  queue = [];
Но если подключить этот plupload.dev.js файл по загрузка не работает а рыться в коде plupload.full.min.js - я там просто не нашел аналога
Код:
    if (settings.browse_button) {
      plupload.each(settings.browse_button, function(el) {
        queue.push(function(cb) {
...
Подскажите есть ли возможность дебажить plupload.full.min.js ? Упаковынный код нечитаемый.
 

mstdmstd

Новичок
Я ведь и писал что дев если его подключить не работает вообще.
Причем дев вдвое меньше размером полного упакованного файла
-rwxrwxrwx 1 root root 57141 мар 8 07:30 plupload.dev.js
-rwxrwxrwx 1 root root 108163 янв 16 10:48 plupload.full.min.js
 
Сверху