Changeset 13575


Ignore:
Timestamp:
03/15/12 22:04:39 (8 years ago)
Author:
rvelices
Message:

batch manager derivative build fix js

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/themes/default/template/batch_manager_global.tpl

    r13544 r13575  
    9595var nb_thumbs_set = {$nb_thumbs_set}; 
    9696var applyOnDetails_pattern = "{'on the %d selected photos'|@translate}"; 
    97 var elements = []; 
    9897var all_elements = [{if !empty($all_elements)}{','|@implode:$all_elements}{/if}]; 
    99 var generate_derivatives_done=false; 
     98var derivatives = {ldelim} 
     99        elements: null, 
     100        done: 0, 
     101        total: 0, 
     102         
     103        finished: function() {ldelim} 
     104                return derivatives.done == derivatives.total && derivatives.elements && derivatives.elements.length==0; 
     105        } 
     106}; 
    100107 
    101108var selectedMessage_pattern = "{'%d of %d photos selected'|@translate}"; 
     
    155162} 
    156163 
    157 function progress(val, max, success) { 
    158   jQuery('#progressBar').progressBar(val, { 
    159     max: max, 
     164function progress(success) { 
     165  jQuery('#progressBar').progressBar(derivatives.done, { 
     166    max: derivatives.total, 
    160167    textFormat: 'fraction', 
    161168    boxImage: 'themes/default/images/progressbar.gif', 
     
    168175        } 
    169176 
    170         if (val == max) { 
    171                 generate_derivatives_done = true; 
     177        if (derivatives.finished()) { 
    172178                jQuery('#applyAction').click(); 
    173179        } 
     
    406412 
    407413  jQuery('#applyAction').click(function() { 
    408                 if (jQuery('[name="selectAction"]').val() != 'generate_derivatives') 
    409                 { 
    410                         return true; 
    411                 } 
    412                 if (generate_derivatives_done) 
     414                if (jQuery('[name="selectAction"]').val() != 'generate_derivatives' 
     415                        || derivatives.finished() ) 
    413416                { 
    414417                        return true; 
     
    423426                }); 
    424427 
     428                derivatives.elements = []; 
    425429                if (jQuery('input[name="setSelected"]').attr('checked')) 
    426                         elements = all_elements; 
     430                        derivatives.elements = all_elements; 
    427431                else 
    428432                        jQuery('input[name="selection[]"]').each(function() { 
    429433                                if (jQuery(this).attr('checked')) { 
    430                                         elements.push(jQuery(this).val()); 
     434                                        derivatives.elements.push(jQuery(this).val()); 
    431435                                } 
    432436                        }); 
    433  
    434                 progressBar_max = 0; 
    435                 todo = 0; 
    436437 
    437438                jQuery('#applyActionBlock').hide(); 
     
    439440                jQuery('#regenerationMsg').show(); 
    440441                 
    441                 jQuery('#progressBar').progressBar(0, { 
    442                         max: progressBar_max, 
    443                         textFormat: 'fraction', 
    444                         boxImage: 'themes/default/images/progressbar.gif', 
    445                         barImage: 'themes/default/images/progressbg_orange.gif' 
    446                 }); 
    447  
     442                progress(); 
    448443                getDerivativeUrls(); 
    449444                return false; 
     
    451446 
    452447        function getDerivativeUrls() { 
    453                 if (elements.length==0) 
    454                         return; 
    455                 var ids = elements.splice(0, 500); 
     448                var ids = derivatives.elements.splice(0, 500); 
    456449                var params = {max_urls: 100000, ids: ids, types: []}; 
    457450                jQuery("#action_generate_derivatives input").each( function(i, t) { 
     
    469462                                        return; 
    470463                                } 
    471                                 progressBar_max += data.result.urls.length; 
    472                                 progress(todo, progressBar_max); 
     464                                derivatives.total += data.result.urls.length; 
     465                                progress(); 
    473466                                for (var i=0; i < data.result.urls.length; i++) { 
    474467                                        jQuery.manageAjax.add("queued", { 
     
    476469                                                url: data.result.urls[i] + "&ajaxload=true",  
    477470                                                dataType: 'json', 
    478                                                 success: ( function(data) { progress(++todo, progressBar_max, true) }), 
    479                                                 error: ( function(data) { progress(++todo, progressBar_max, false) }) 
     471                                                success: ( function(data) { derivatives.done++; progress(true) }), 
     472                                                error: ( function(data) { derivatives.done++; progress(false) }) 
    480473                                        }); 
    481474                                } 
     475                                if (derivatives.elements.length) 
     476                                        setTimeout( getDerivativeUrls, 25 * (derivatives.total-derivatives.done)); 
    482477                        } 
    483478                } ); 
     
    643638 
    644639    <legend>{'Action'|@translate}</legend> 
    645       <div id="forbidAction"{if count($selection) != 0}style="display:none"{/if}>{'No photo selected, no action possible.'|@translate}</div> 
    646       <div id="permitAction"{if count($selection) == 0}style="display:none"{/if}> 
     640      <div id="forbidAction"{if count($selection) != 0} style="display:none"{/if}>{'No photo selected, no action possible.'|@translate}</div> 
     641      <div id="permitAction"{if count($selection) == 0} style="display:none"{/if}> 
    647642 
    648643    <select name="selectAction"> 
Note: See TracChangeset for help on using the changeset viewer.