Changeset 10454


Ignore:
Timestamp:
04/17/11 21:08:06 (9 years ago)
Author:
patdenice
Message:

feature:2259
Add "Regenerate Websize Photos" action.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/batch_manager_global.php

    r10389 r10454  
    4444} 
    4545 
     46// User cache must not be regenerated during simultaneous ajax requests 
     47if (!isset($user['need_update']) or !$user['need_update']) 
     48{ 
     49  getuserdata($user['id'], true); 
     50} 
     51 
    4652// +-----------------------------------------------------------------------+ 
    4753// | Check Access and exit when user status is not ok                      | 
     
    410416 
    411417    if ($_POST['regenerateError'] != '0') 
    412       array_push($page['warnings'], sprintf(l10n('%s thumbnails have been regenerated'), $_POST['regenerateError'])); 
    413  
     418      array_push($page['warnings'], sprintf(l10n('%s thumbnails can not be regenerated'), $_POST['regenerateError'])); 
     419 
     420    $update_fields = array('thumb_maxwidth', 'thumb_maxheight', 'thumb_quality'); 
     421  } 
     422 
     423  if ('regenerateWebsize' == $action) 
     424  { 
     425    if ($_POST['regenerateSuccess'] != '0') 
     426      array_push($page['infos'], sprintf(l10n('%s photos have been regenerated'), $_POST['regenerateSuccess'])); 
     427 
     428    if ($_POST['regenerateError'] != '0') 
     429      array_push($page['warnings'], sprintf(l10n('%s photos can not be regenerated'), $_POST['regenerateError'])); 
     430 
     431    $update_fields = array('websize_maxwidth', 'websize_maxheight', 'websize_quality'); 
     432  } 
     433 
     434  if (!empty($update_fields)) 
     435  { 
    414436    // Update configuration 
    415     $fields = array('thumb_maxwidth', 'thumb_maxheight', 'thumb_quality'); 
    416437    $updates = array(); 
    417     foreach ($fields as $field) 
     438    foreach ($update_fields as $field) 
    418439    { 
    419440      $value = null; 
     
    451472        ); 
    452473    } 
    453     function regenerateThumbnails_prefilter($content, $smarty) 
    454     { 
    455       return str_replace('{$thumbnail.TN_SRC}', '{$thumbnail.TN_SRC}?rand='.md5(uniqid(rand(), true)), $content); 
    456     } 
    457     $template->set_prefilter('batch_manager_global', 'regenerateThumbnails_prefilter'); 
    458474    $template->delete_compiled_templates(); 
    459475  } 
     
    784800  ); 
    785801 
     802function regenerateThumbnails_prefilter($content, $smarty) 
     803{ 
     804  return str_replace('{$thumbnail.TN_SRC}', '{$thumbnail.TN_SRC}?rand='.md5(uniqid(rand(), true)), $content); 
     805} 
     806$template->set_prefilter('batch_manager_global', 'regenerateThumbnails_prefilter'); 
     807 
    786808trigger_action('loc_end_element_set_global'); 
    787809 
  • trunk/admin/themes/default/template/batch_manager_global.tpl

    r10422 r10454  
    3636var selectedMessage_all = "{'All %d photos are selected'|@translate}"; 
    3737var regenerateThumbnailsMessage = "{'Thumbnails generation in progress...'|@translate}"; 
     38var regenerateWebsizeMessage = "{'Photos generation in progress...'|@translate}"; 
    3839{literal} 
    39 var queuedManagerThumbnails = $.manageAjax.create('queued', {  
    40         queue: true,   
    41         cacheResponse: false, 
    42         maxRequests: 3 
    43 }); 
    44  
    4540function str_repeat(i, m) { 
    4641        for (var o = []; m > 0; o[--m] = i); 
     
    328323 
    329324  jQuery('#applyAction').click(function() { 
    330     if (jQuery('[name="selectAction"]').val() == 'regenerateThumbnails') { 
    331       if (elements.length != 0) 
    332         return true; 
    333  
    334       if (jQuery('input[name="setSelected"]').attr('checked')) 
    335         elements = all_elements; 
    336       else 
    337         jQuery('input[name="selection[]"]').each(function() { 
    338           if (jQuery(this).attr('checked')) { 
    339             elements.push(jQuery(this).val()); 
    340           } 
    341         }); 
    342  
     325    if (elements.length != 0) 
     326    { 
     327      return true; 
     328    } 
     329    else if (jQuery('[name="selectAction"]').val() == 'regenerateThumbnails') 
     330    { 
     331      type = 'thumbnail'; 
     332      maxRequests = 3; 
    343333      maxwidth = jQuery('input[name="thumb_maxwidth"]').val(); 
    344334      maxheight = jQuery('input[name="thumb_maxheight"]').val(); 
    345       progressBar_max = elements.length; 
    346       todo = 0; 
    347  
    348       jQuery('#thumb_config').hide(); 
    349       jQuery('#applyActionBlock').hide(); 
    350       jQuery('select[name="selectAction"]').hide(); 
    351       jQuery('#regenerationMsg').show(); 
    352       jQuery('#regenerationText').html(regenerateThumbnailsMessage); 
    353       jQuery('#progressBar').progressBar(0, { 
    354         max: progressBar_max, 
    355         textFormat: 'fraction', 
    356         boxImage: 'themes/default/images/progressbar.gif', 
    357         barImage: 'themes/default/images/progressbg_orange.gif' 
     335      regenerationText = regenerateThumbnailsMessage; 
     336    } 
     337    else if(jQuery('[name="selectAction"]').val() == 'regenerateWebsize') 
     338    { 
     339      type = 'websize'; 
     340      maxRequests = 1; 
     341      maxwidth = jQuery('input[name="websize_maxwidth"]').val(); 
     342      maxheight = jQuery('input[name="websize_maxheight"]').val(); 
     343      regenerationText = regenerateWebsizeMessage; 
     344    } 
     345    else return true; 
     346 
     347    jQuery('.bulkAction').hide(); 
     348    jQuery('#regenerationText').html(regenerationText); 
     349 
     350    var queuedManager = jQuery.manageAjax.create('queued', {  
     351      queue: true,   
     352      cacheResponse: false, 
     353      maxRequests: maxRequests 
     354    }); 
     355 
     356    if (jQuery('input[name="setSelected"]').attr('checked')) 
     357      elements = all_elements; 
     358    else 
     359      jQuery('input[name="selection[]"]').each(function() { 
     360        if (jQuery(this).attr('checked')) { 
     361          elements.push(jQuery(this).val()); 
     362        } 
    358363      }); 
    359364 
    360       for (i=0;i<elements.length;i++) { 
    361         queuedManagerThumbnails.add({ 
    362           type: 'GET',  
    363           url: 'ws.php',  
    364           data: { 
    365             method: 'pwg.images.resize', 
    366             type: 'thumbnail', 
    367             maxwidth: maxwidth, 
    368             maxheight: maxheight, 
    369             image_id: elements[i], 
    370             format: 'json' 
    371           }, 
    372           dataType: 'json', 
    373           success: ( function(data) { progress(++todo, progressBar_max, data['result']) }), 
    374           error: ( function(data) { progress(++todo, progressBar_max, false) }) 
    375         }); 
    376       } 
    377       return false; 
    378     } 
     365    progressBar_max = elements.length; 
     366    todo = 0; 
     367 
     368    jQuery('#applyActionBlock').hide(); 
     369    jQuery('select[name="selectAction"]').hide(); 
     370    jQuery('#regenerationMsg').show(); 
     371     
     372    jQuery('#progressBar').progressBar(0, { 
     373      max: progressBar_max, 
     374      textFormat: 'fraction', 
     375      boxImage: 'themes/default/images/progressbar.gif', 
     376      barImage: 'themes/default/images/progressbg_orange.gif' 
     377    }); 
     378 
     379    for (i=0;i<elements.length;i++) { 
     380      queuedManager.add({ 
     381        type: 'GET',  
     382        url: 'ws.php',  
     383        data: { 
     384          method: 'pwg.images.resize', 
     385          type: type, 
     386          maxwidth: maxwidth, 
     387          maxheight: maxheight, 
     388          image_id: elements[i], 
     389          format: 'json' 
     390        }, 
     391        dataType: 'json', 
     392        success: ( function(data) { progress(++todo, progressBar_max, data['result']) }), 
     393        error: ( function(data) { progress(++todo, progressBar_max, false) }) 
     394      }); 
     395    } 
     396    return false; 
    379397  }); 
    380398 
     
    553571  {/if} 
    554572      <option value="regenerateThumbnails">{'Regenerate Thumbnails'|@translate}</option> 
     573      <option value="regenerateWebsize">{'Regenerate Websize Photos'|@translate}</option> 
    555574  {if !empty($element_set_global_plugins_actions)} 
    556575    {foreach from=$element_set_global_plugins_actions item=action} 
     
    641660    <!-- regenerate thumbnails --> 
    642661    <div id="action_regenerateThumbnails" class="bulkAction"> 
    643       <table style="margin-left:20px;" id="thumb_config"> 
     662      <table style="margin-left:20px;"> 
    644663        <tr> 
    645664          <th>{'Maximum Width'|@translate}</th> 
     
    657676    </div> 
    658677 
     678    <!-- regenerate websize --> 
     679    <div id="action_regenerateWebsize" class="bulkAction"> 
     680      <p> 
     681        <img src="admin/themes/default/icon/warning.png" alt="!" style="vertical-align:middle;"> 
     682        {'Only photos with HD can be regenerated!'|@translate} 
     683      </p> 
     684 
     685      <table style="margin:10px 20px;"> 
     686        <tr> 
     687          <th>{'Maximum Width'|@translate}</th> 
     688          <td><input type="text" name="websize_maxwidth" value="{$upload_form_settings.websize_maxwidth}" size="4" maxlength="4"> {'pixels'|@translate}</td> 
     689        </tr> 
     690        <tr> 
     691          <th>{'Maximum Height'|@translate}</th> 
     692          <td><input type="text" name="websize_maxheight" value="{$upload_form_settings.websize_maxheight}" size="4" maxlength="4"> {'pixels'|@translate}</td> 
     693        </tr> 
     694        <tr> 
     695          <th>{'Image Quality'|@translate}</th> 
     696          <td><input type="text" name="websize_quality" value="{$upload_form_settings.websize_quality}" size="3" maxlength="3"> %</td> 
     697        </tr> 
     698      </table> 
     699    </div> 
     700 
    659701    <!-- progress bar --> 
    660     <div id="regenerationMsg" style="display:none;"> 
     702    <div id="regenerationMsg" class="bulkAction"> 
    661703      <p id="regenerationText" style="margin-bottom:10px;"></p> 
    662704      <span class="progressBar" id="progressBar"></span> 
  • trunk/include/ws_functions.inc.php

    r10235 r10454  
    27272727      false 
    27282728      ); 
     2729 
     2730    $conf['use_exif'] = false; 
     2731    $conf['use_iptc'] = false; 
     2732    update_metadata(array($image['id'] => $image['path'])); 
     2733 
    27292734    return true; 
    27302735  } 
Note: See TracChangeset for help on using the changeset viewer.