source: extensions/GThumb/template/admin.tpl @ 13652

Revision 13652, 6.1 KB checked in by patdenice, 8 years ago (diff)

Compatible with Piwigo 2.4

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