Ignore:
Timestamp:
Dec 14, 2011, 5:54:42 PM (12 years ago)
Author:
patdenice
Message:

Thumbnails can be generated in admin pannel.

Location:
extensions/GThumb/template
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/GThumb/template/admin.tpl

    r12691 r12733  
    5252<fieldset id="cacheinfo">
    5353<legend>{'Cache Informations'|@translate}</legend>
    54 <p>
    55 {$NB_ELEMENTS}, {$ELEMENTS_SIZE}<br>
    56 <a href="admin.php?page=plugin-GThumb&amp;pwg_token={$PWG_TOKEN}&amp;deletecache=true" onclick="return confirm('{'Are you sure?'|@translate}');">{'Clear the cache'|@translate}</a>
     54<p id="cache_data">&nbsp;</p>
     55<p id="GThumbAction">
     56  <button onclick="GThumb.deletecache();">{'Purge thumbnails cache'|@translate}</button>
     57  <button onclick="GThumb.generatecache();">{'Pre-cache thumbnails'|@translate}</button>
    5758</p>
     59<div id="GThumbProgressbar" style="display:none;">
     60  {'Generating cache, please wait...'|@translate}<br>
     61  <div id="progressbar"></div>
     62</div>
    5863</fieldset>
    5964
     
    6166<style type="text/css">
    6267#GThumb td { padding-bottom: 12px; }
    63 #cacheinfo p { text-align:left; line-height:20px; margin:20px }
     68#cacheinfo p, #GThumbProgressbar { text-align:left; line-height:20px; margin:20px }
     69.ui-progressbar-value { background-image: url(plugins/GThumb/template/pbar-ani.gif); }
    6470</style>
    6571{/literal}{/html_head}
     72
     73{combine_script id='jquery.ui.progressbar' load='footer'}
     74{combine_script id='jquery.ajaxmanager' load='footer' path='themes/default/js/plugins/jquery.ajaxmanager.js'}
     75
     76{footer_script}
     77var pwg_token = '{$PWG_TOKEN}';
     78var confirm_message = '{'Are you sure?'|@translate}';
     79var nb_files_str  = '{'%d file'|@translate}';
     80var nb_files_str_plur = '{'%d files'|@translate}';
     81var lang_info_zero_plural = {if $lang_info.zero_plural}true{else}false{/if};
     82var cache_size = {$CACHE_SIZE};
     83var nb_files = {$NB_FILES};
     84
     85{literal}
     86var GThumb = {
     87
     88  total: 0,
     89  done: 0,
     90
     91  queue: jQuery.manageAjax.create('queued', {
     92    queue: true, 
     93    cacheResponse: false,
     94    maxRequests: 3
     95  }),
     96
     97  deletecache: function() {
     98    if (confirm(confirm_message)) {
     99      window.location = 'admin.php?page=plugin-GThumb&deletecache=true&pwg_token='+pwg_token;
     100    }
     101  },
     102
     103  generatecache: function() {
     104    jQuery("#progressbar").progressbar({value: 0});
     105    jQuery.ajax({
     106      url: 'admin.php?page=plugin-GThumb&generatecache=request',
     107      dataType: 'json',
     108      success: function(data) {
     109        if (data.length > 0) {
     110          jQuery("#GThumbProgressbar, #GThumbAction").toggle();
     111          GThumb.total = data.length;
     112          for (i=0;i<data.length;i++) {
     113            GThumb.queue.add({
     114              type: 'GET',
     115              url: 'ws.php',
     116              data: {
     117                method: 'pwg.images.getGThumbPlusThumbnail',
     118                image_id: data[i],
     119                format: 'json'
     120              },
     121              dataType: 'json',
     122              success: function(data) {
     123                nb_files++;
     124                cache_size += data.result.filesize;
     125                updateCacheSizeAndFiles();
     126                GThumb.progressbar();
     127              },
     128              error: GThumb.progressbar
     129            });
     130          }
     131        } else {
     132          window.location = 'admin.php?page=plugin-GThumb&generatecache=complete';
     133        }
     134      },
     135      error: function() {
     136        alert('An error occured');
     137      }
     138    });
     139    return false;
     140  },
     141
     142  progressbar: function() {
     143    jQuery( "#progressbar" ).progressbar({
     144      value: Math.round(++GThumb.done * 100 / GThumb.total)
     145    });
     146    if (GThumb.done == GThumb.total) {
     147      window.location = 'admin.php?page=plugin-GThumb&generatecache=complete';
     148    }
     149  }
     150};
     151
     152function updateCacheSizeAndFiles() {
     153 
     154  if ( nb_files > 1 || (nb_files == 0 && lang_info_zero_plural)) {
     155    nbstr = nb_files_str_plur;
     156  } else {
     157    nbstr = nb_files_str;
     158  }
     159
     160  ret = nbstr.replace('%d', nb_files) + ', ';
     161
     162  if (cache_size > 1024 * 1024)
     163    ret += Math.round((cache_size / (1024 * 1024))*100)/100 + ' MB';
     164  else
     165    ret += Math.round((cache_size / 1024)*100)/100 + ' KB';
     166
     167  jQuery("#cache_data").html(ret);
     168}
     169
     170updateCacheSizeAndFiles();
     171{/literal}{/footer_script}
Note: See TracChangeset for help on using the changeset viewer.