[12678] | 1 | <div class="titrePage"> |
---|
| 2 | <h2>GThumb+</h2> |
---|
| 3 | </div> |
---|
| 4 | |
---|
| 5 | <form action="" method="post"> |
---|
| 6 | |
---|
| 7 | <fieldset id="GThumb"> |
---|
| 8 | <legend>{'Configuration'|@translate}</legend> |
---|
| 9 | <table> |
---|
| 10 | <tr> |
---|
| 11 | <td align="right">{'Thumbnails max height'|@translate} : </td> |
---|
| 12 | <td><input type="text" size="2" maxlength="3" name="height" value="{$HEIGHT}"> px</td></td> |
---|
| 13 | </tr> |
---|
| 14 | |
---|
| 15 | <tr> |
---|
| 16 | <td align="right">{'Margin between thumbnails'|@translate} : </td> |
---|
| 17 | <td><input type="text" size="2" maxlength="3" name="margin" value="{$MARGIN}"> px</td> |
---|
| 18 | </tr> |
---|
| 19 | |
---|
| 20 | <tr> |
---|
| 21 | <td align="right">{'Number of photos per page'|@translate} : </td> |
---|
| 22 | <td><input type="text" size="2" maxlength="3" name="nb_image_page" value="{$NB_IMAGE_PAGE}"></td> |
---|
| 23 | </tr> |
---|
| 24 | |
---|
| 25 | <tr> |
---|
| 26 | <td align="right">{'Double the size of the first thumbnail'|@translate} : </td> |
---|
[18124] | 27 | <td><label><input type="radio" name="big_thumb" value="1" {if $BIG_THUMB}checked="checked"{/if}> {'Yes'|@translate}</label> |
---|
| 28 | <label><input type="radio" name="big_thumb" value="0" {if !$BIG_THUMB}checked="checked"{/if}> {'No'|@translate}</label> |
---|
[12678] | 29 | </td> |
---|
| 30 | </tr> |
---|
| 31 | |
---|
| 32 | <tr> |
---|
| 33 | <td align="right">{'Cache the big thumbnails (recommended)'|@translate} : </td> |
---|
[18124] | 34 | <td><label><input type="radio" name="cache_big_thumb" value="1" {if $CACHE_BIG_THUMB}checked="checked"{/if}> {'Yes'|@translate}</label> |
---|
| 35 | <label><input type="radio" name="cache_big_thumb" value="0" {if !$CACHE_BIG_THUMB}checked="checked"{/if}> {'No'|@translate}</label> |
---|
[12678] | 36 | </td> |
---|
| 37 | </tr> |
---|
| 38 | |
---|
| 39 | <tr> |
---|
| 40 | <td align="right">{'Scale thumbnails'|@translate} : </td> |
---|
[18124] | 41 | <td><label><input type="radio" name="method" value="crop" {if $METHOD == 'crop'}checked="checked"{/if}> {'Crop'|@translate}</label> |
---|
| 42 | <label><input type="radio" name="method" value="resize" {if $METHOD == 'resize'}checked="checked"{/if}> {'Resize'|@translate}</label> |
---|
[12678] | 43 | </td> |
---|
| 44 | </tr> |
---|
[18124] | 45 | |
---|
| 46 | <tr> |
---|
| 47 | <td align="right">{'Show thumbnails caption'|@translate} : </td> |
---|
| 48 | <td><label><input type="radio" name="show_thumbnail_caption" value="1" {if $SHOW_THUMBNAIL_CAPTION}checked="checked"{/if}> {'Yes'|@translate}</label> |
---|
| 49 | <label><input type="radio" name="show_thumbnail_caption" value="0" {if !$SHOW_THUMBNAIL_CAPTION}checked="checked"{/if}> {'No'|@translate}</label> |
---|
| 50 | </td> |
---|
| 51 | </tr> |
---|
[12678] | 52 | |
---|
| 53 | </table> |
---|
| 54 | </fieldset> |
---|
| 55 | |
---|
[13652] | 56 | <p> |
---|
| 57 | <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}"> |
---|
| 58 | <input type="submit" name="submit" value="{'Submit'|@translate}"> |
---|
| 59 | <input type="submit" name="cachedelete" value="{'Purge thumbnails cache'|@translate}" title="{'Delete images in GThumb+ cache.'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');"> |
---|
| 60 | <input type="button" name="cachebuild" value="{'Pre-cache thumbnails'|@translate}" title="{'Finds images that have not been cached and creates the cached version.'|@translate}" onclick="start()"> |
---|
| 61 | </p> |
---|
[12678] | 62 | </form> |
---|
| 63 | |
---|
[13652] | 64 | <fieldset id="generate_cache"> |
---|
| 65 | <legend>{'Pre-cache thumbnails'|@translate}</legend> |
---|
| 66 | <p> |
---|
[13653] | 67 | <input id="startLink" value="{'Start'|@translate}" onclick="start()" type="button"> |
---|
| 68 | <input id="pauseLink" value="{'Pause'|@translate}" onclick="pause()" type="button" disabled="disbled"> |
---|
| 69 | <input id="stopLink" value="{'Stop'|@translate}" onclick="stop()" type="button" disabled="disbled"> |
---|
| 70 | </p> |
---|
| 71 | <p> |
---|
[13652] | 72 | <table> |
---|
| 73 | <tr> |
---|
| 74 | <td>Errors</td> |
---|
| 75 | <td id="errors">0</td> |
---|
| 76 | </tr> |
---|
| 77 | <tr> |
---|
| 78 | <td>Loaded</td> |
---|
| 79 | <td id="loaded">0</td> |
---|
| 80 | </tr> |
---|
| 81 | <tr> |
---|
| 82 | <td>Remaining</td> |
---|
| 83 | <td id="remaining">0</td> |
---|
| 84 | </tr> |
---|
| 85 | </table> |
---|
[12691] | 86 | </p> |
---|
[13653] | 87 | <div id="feedbackWrap" style="height:{$HEIGHT}px; min-height:{$HEIGHT}px;"> |
---|
[13652] | 88 | <img id="feedbackImg"> |
---|
[12733] | 89 | </div> |
---|
[13652] | 90 | |
---|
| 91 | <div id="errorList"> |
---|
| 92 | </div> |
---|
[12691] | 93 | </fieldset> |
---|
| 94 | |
---|
[12678] | 95 | {html_head}{literal} |
---|
[12691] | 96 | <style type="text/css"> |
---|
| 97 | #GThumb td { padding-bottom: 12px; } |
---|
[12733] | 98 | #cacheinfo p, #GThumbProgressbar { text-align:left; line-height:20px; margin:20px } |
---|
| 99 | .ui-progressbar-value { background-image: url(plugins/GThumb/template/pbar-ani.gif); } |
---|
[13652] | 100 | #generate_cache { display: none; } |
---|
[12691] | 101 | </style> |
---|
[12733] | 102 | {/literal}{/html_head} |
---|
| 103 | |
---|
[26130] | 104 | {combine_script id='iloader' load='footer' path='plugins/GThumb/js/image.loader.js'} |
---|
[12733] | 105 | |
---|
[26130] | 106 | {footer_script require='jquery.ui.effect-slide'}{literal} |
---|
[13652] | 107 | jQuery('input[name^="cache"]').tipTip({'delay' : 0, 'fadeIn' : 200, 'fadeOut' : 200}); |
---|
[12733] | 108 | |
---|
[13652] | 109 | var loader = new ImageLoader( {onChanged: loaderChanged, maxRequests:1 } ) |
---|
| 110 | , pending_next_page = null |
---|
| 111 | , last_image_show_time = 0 |
---|
| 112 | , allDoneDfd, urlDfd; |
---|
[12733] | 113 | |
---|
[13652] | 114 | function start() { |
---|
| 115 | allDoneDfd = jQuery.Deferred(); |
---|
| 116 | urlDfd = jQuery.Deferred(); |
---|
[12733] | 117 | |
---|
[13652] | 118 | allDoneDfd.always( function() { |
---|
| 119 | jQuery("#startLink").attr('disabled', false).css("opacity", 1); |
---|
| 120 | jQuery("#pauseLink,#stopLink").attr('disabled', true).css("opacity", 0.5); |
---|
| 121 | } ); |
---|
[12733] | 122 | |
---|
[13652] | 123 | urlDfd.always( function() { |
---|
| 124 | if (loader.remaining()==0) |
---|
| 125 | allDoneDfd.resolve(); |
---|
| 126 | } ); |
---|
[12733] | 127 | |
---|
[13652] | 128 | jQuery('#generate_cache').show(); |
---|
| 129 | jQuery("#startLink").attr('disabled', true).css("opacity", 0.5); |
---|
| 130 | jQuery("#pauseLink,#stopLink").attr('disabled', false).css("opacity", 1); |
---|
[12733] | 131 | |
---|
[13652] | 132 | loader.pause(false); |
---|
| 133 | updateStats(); |
---|
[13653] | 134 | getUrls(0); |
---|
[13652] | 135 | } |
---|
[12759] | 136 | |
---|
[13652] | 137 | function pause() { |
---|
| 138 | loader.pause( !loader.pause() ); |
---|
| 139 | } |
---|
[12733] | 140 | |
---|
[13652] | 141 | function stop() { |
---|
| 142 | loader.clear(); |
---|
| 143 | urlDfd.resolve(); |
---|
| 144 | } |
---|
[12733] | 145 | |
---|
[13652] | 146 | function getUrls(page_token) { |
---|
[13653] | 147 | data = {prev_page: page_token, max_urls: 500, types: []}; |
---|
[13652] | 148 | jQuery.post( '{/literal}{$ROOT_URL}{literal}admin.php?page=plugin-GThumb&getMissingDerivative=', |
---|
| 149 | data, wsData, "json").fail( wsError ); |
---|
| 150 | } |
---|
[12733] | 151 | |
---|
[13652] | 152 | function wsData(data) { |
---|
| 153 | loader.add( data.urls ); |
---|
| 154 | if (data.next_page) { |
---|
| 155 | if (loader.pause() || loader.remaining() > 100) { |
---|
| 156 | pending_next_page = data.next_page; |
---|
| 157 | } |
---|
| 158 | else { |
---|
| 159 | getUrls(data.next_page); |
---|
| 160 | } |
---|
| 161 | } |
---|
| 162 | } |
---|
[12733] | 163 | |
---|
[13652] | 164 | function wsError() { |
---|
| 165 | urlDfd.reject(); |
---|
[12733] | 166 | } |
---|
| 167 | |
---|
[13652] | 168 | function updateStats() { |
---|
| 169 | jQuery("#loaded").text( loader.loaded ); |
---|
| 170 | jQuery("#errors").text( loader.errors ); |
---|
| 171 | jQuery("#remaining").text( loader.remaining() ); |
---|
| 172 | } |
---|
[12759] | 173 | |
---|
[13652] | 174 | function loaderChanged(type, img) { |
---|
| 175 | updateStats(); |
---|
| 176 | if (img) { |
---|
| 177 | if (type==="load") { |
---|
| 178 | var now = jQuery.now(); |
---|
| 179 | if (now - last_image_show_time > 3000) { |
---|
| 180 | last_image_show_time = now; |
---|
| 181 | var h=img.height, url=img.src; |
---|
| 182 | jQuery("#feedbackWrap").hide("slide", {direction:'down'}, function() { |
---|
| 183 | last_image_show_time = jQuery.now(); |
---|
| 184 | if (h > 300 ) |
---|
| 185 | jQuery("#feedbackImg").attr("height", 300); |
---|
| 186 | else |
---|
| 187 | jQuery("#feedbackImg").removeAttr("height"); |
---|
| 188 | jQuery("#feedbackImg").attr("src", url); |
---|
| 189 | jQuery("#feedbackWrap").show("slide", {direction:'up'} ); |
---|
| 190 | } ); |
---|
| 191 | } |
---|
| 192 | } |
---|
| 193 | else { |
---|
| 194 | jQuery("#errorList").prepend( '<a href="'+img.src+'">'+img.src+'</a>' + "<br>"); |
---|
| 195 | } |
---|
| 196 | } |
---|
| 197 | if (pending_next_page && 100 > loader.remaining() ) { |
---|
| 198 | getUrls(pending_next_page); |
---|
| 199 | pending_next_page = null; |
---|
| 200 | } |
---|
| 201 | else if (loader.remaining() == 0 && (urlDfd.isResolved() || urlDfd.isRejected())) { |
---|
| 202 | allDoneDfd.resolve(); |
---|
| 203 | } |
---|
| 204 | } |
---|
[12733] | 205 | {/literal}{/footer_script} |
---|