source: extensions/instagram2piwigo/admin/template/import.list_photos.tpl @ 27948

Last change on this file since 27948 was 27948, checked in by mistic100, 10 years ago

remove warning on jGrowl CSS on Unix

File size: 11.8 KB
Line 
1{include file='include/colorbox.inc.tpl'}
2{include file='include/add_album.inc.tpl'}
3{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
4{combine_script id='jquery.ajaxmanager' load='footer' path='themes/default/js/plugins/jquery.ajaxmanager.js'}
5{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'}
6{combine_css path="themes/default/js/plugins/jquery.jgrowl.css"}
7
8{footer_script require='jquery.ajaxmanager,jquery.jgrowl'}
9(function($){
10  /* global vars */
11  var nb_thumbs_set = {$nb_thumbs_set};
12  var all_elements = [{if !empty($all_elements)}{','|@implode:$all_elements}{/if}];
13  var import_done = 0;
14  var import_selected = 0;
15  var queuedManager = $.manageAjax.create('queued', {
16    queue: true, 
17    maxRequests: 1
18  });
19
20  /* Shift-click: select all photos between the click and the shift+click */
21  var last_clicked=0;
22  var last_clickedstatus=true;
23  $.fn.enableShiftClick = function() {
24    var inputs = [];
25    var count=0;
26    var This=$(this);
27    this.find('input[type=checkbox]').each(function() {
28      var pos=count;
29      inputs[count++]=this;
30      $(this).bind("shclick", function (dummy,event) {
31        if (event.shiftKey) {
32          var first = last_clicked;
33          var last = pos;
34          if (first > last) {
35            first=pos;
36            last=last_clicked;
37          }
38
39          for (var i=first; i<=last;i++) {
40            input = $(inputs[i]);
41            $(input).attr('checked', last_clickedstatus);
42            if (last_clickedstatus)
43            {
44              $(input).siblings("span.wrap2").addClass("thumbSelected");
45            }
46            else
47            {
48              $(input).siblings("span.wrap2").removeClass("thumbSelected");
49            }
50          }
51        }
52        else {
53          last_clicked = pos;
54          last_clickedstatus = this.checked;
55        }
56        return true;
57      });
58      $(this).click(function(event) { $(this).triggerHandler("shclick",event); });
59    });
60  }
61
62  /* update displaying */
63  function checkPermitAction() {
64    var nbSelected = 0;
65    if ($("input[name=setSelected]").is(':checked')) {
66      nbSelected = nb_thumbs_set;
67    }
68    else {
69      $(".thumbnails input[type=checkbox]").each(function() {
70        if ($(this).is(':checked')) nbSelected++;
71      });
72    }
73
74    if (nbSelected == 0) {
75      $("#beginImport").hide();
76    }
77    else {
78      $("#beginImport").show();
79    }
80
81    $("#applyOnDetails").text(
82      sprintf(
83        '{'on the %d selected photos'|translate|escape:javascript}',
84        nbSelected
85      )
86    );
87
88    // display the number of currently selected photos in the "Selection" fieldset
89    if (nbSelected == 0) {
90      $("#selectedMessage").text(
91        sprintf(
92          '{'No photo selected, %d photos in current set'|translate|escape:javascript}',
93          nb_thumbs_set
94        )
95      );
96    }
97    else if (nbSelected == nb_thumbs_set) {
98      $("#selectedMessage").text(
99        sprintf(
100          '{'All %d photos are selected'|translate|escape:javascript}',
101          nb_thumbs_set
102        )
103      );
104    }
105    else {
106      $("#selectedMessage").text(
107        sprintf(
108          '{'%d of %d photos selected'|translate|escape:javascript}',
109          nbSelected,
110          nb_thumbs_set
111        )
112      );
113    }
114  }
115
116  /* import queue */
117  function performImport(photo, album, fills) {
118    queuedManager.add({
119      type: 'GET',
120      dataType: 'json',
121      url: 'ws.php',
122      data: {
123        method: 'pwg.images.addInstagram',
124        id: photo,
125        category: album,
126        fills: fills,
127        format: 'json'
128      },
129      success: function(data) {
130        if (data['stat'] == 'ok') {
131          $.jGrowl(data['result'], {
132            theme: 'success', life: 4000, sticky: false,
133            header: '{'Success'|translate}'
134          });
135          $("#photo-"+photo).fadeOut(function(){ $(this).remove(); });
136        }
137        else {
138          $.jGrowl(data['result'], {
139            theme: 'error', sticky: true,
140            header: '{'ERROR'|translate}'
141          });
142        }
143       
144        import_done++;
145        $("#progress").html(import_done +"/"+ import_selected);
146       
147        if (import_done == import_selected) {
148          $("#import_form").append('<input type="hidden" name="done" value="' + import_done + '">');
149          $("#import_form").submit();
150        }
151      },
152      error: function(data) {
153        $.jGrowl('{'an error happened'|translate|escape:javascript}', {
154          theme: 'error', sticky: true,
155          header: '{'ERROR'|translate}'
156        });
157      }
158    });
159  }
160
161
162  checkPermitAction();
163  $("a.preview-box").colorbox({
164    initialWidth:306,
165    initialHeight:306
166  });
167  $('ul.thumbnails').enableShiftClick();
168
169  /* tiptip */
170  $('img.thumbnail').tipTip({
171    'delay' : 0,
172    'fadeIn' : 200,
173    'fadeOut' : 200
174  });
175
176  /* thumbnail click */
177  $(".wrap1 label").click(function (event) {
178    $("input[name=setSelected]").prop('checked', false);
179
180    var wrap2 = $(this).children(".wrap2");
181    var checkbox = $(this).children("input[type=checkbox]");
182
183    checkbox.triggerHandler("shclick",event);
184
185    if ($(checkbox).is(':checked')) {
186      $(wrap2).addClass("thumbSelected");
187    }
188    else {
189      $(wrap2).removeClass('thumbSelected');
190    }
191
192    checkPermitAction();
193  });
194
195  /* select all */
196  $("#selectAll").click(function () {
197    $("input[name=setSelected]").prop('checked', false);
198   
199    $(".thumbnails label").each(function() {
200      var wrap2 = $(this).children(".wrap2");
201      var checkbox = $(this).children("input[type=checkbox]");
202
203      $(checkbox).prop('checked', true);
204      $(wrap2).addClass("thumbSelected");
205    });
206   
207    checkPermitAction();
208    return false;
209  });
210
211  /* select none */
212  $("#selectNone").click(function () {
213    $("input[name=setSelected]").prop('checked', false);
214   
215    $(".thumbnails label").each(function() {
216      var wrap2 = $(this).children(".wrap2");
217      var checkbox = $(this).children("input[type=checkbox]");
218
219      $(checkbox).prop('checked', false);
220      $(wrap2).removeClass("thumbSelected");
221    });
222   
223    checkPermitAction();
224    return false;
225  });
226
227  /* select invert */
228  $("#selectInvert").click(function () {
229    $("input[name=setSelected]").prop('checked', false);
230   
231    $(".thumbnails label").each(function() {
232      var wrap2 = $(this).children(".wrap2");
233      var checkbox = $(this).children("input[type=checkbox]");
234
235      $(checkbox).prop('checked', !$(checkbox).is(':checked'));
236
237      if ($(checkbox).is(':checked')) {
238        $(wrap2).addClass("thumbSelected");
239      }
240      else {
241        $(wrap2).removeClass('thumbSelected');
242      }
243    });
244   
245    checkPermitAction();
246    return false;
247  });
248 
249  /* select set */
250  $("#selectSet").click(function () {
251    $("input[name=setSelected]").prop('checked', true);
252   
253    $(".thumbnails label").each(function() {
254      var wrap2 = $(this).children(".wrap2");
255      var checkbox = $(this).children("input[type=checkbox]");
256
257      $(checkbox).prop('checked', true);
258      $(wrap2).addClass("thumbSelected");
259    });
260   
261    checkPermitAction();
262    return false;
263  });
264 
265  /* begin import */
266  $('#beginImport').click(function() {
267    $("#loader_import").fadeIn();
268    var album = $("#albumSelect option:selected").val();
269   
270    var fills = '';
271    $("input[name^='fill_']:checked").each(function() {
272      fills+= $(this).attr("name") +',';
273    });
274   
275    if ($('input[name="setSelected"]').prop('checked')) {
276      import_selected = all_elements.length;
277      $("#progress").html("0/"+ import_selected);
278     
279      for (var i in all_elements) {
280        performImport(all_elements[i], album, fills);
281      }
282                }
283    else {
284      import_selected = $("input[name='selection[]']:checked").length;
285      $("#progress").html("0/"+ import_selected);
286     
287                        $("input[name='selection[]']:checked").each(function() {
288        performImport($(this).attr('value'), album, fills);
289      });
290    }
291   
292    return false;
293  });
294 
295  /* pagination loader */
296  $('#navigation a').click(function() {
297    $("#loader_display").fadeIn();
298  });
299}(jQuery));
300{/footer_script}
301
302
303{html_style}
304.thumbnails .wrap2 { width:128px; height:128px; }
305.thumbnail { width:100px; }
306{/html_style}
307
308
309<div id="batchManagerGlobal">
310<form action="{$F_ACTION}" method="post" id="import_form">
311
312  <fieldset>
313    <legend>{'Selection'|translate}</legend>
314
315  {if !empty($thumbnails)}
316    <p id="checkActions">
317      {'Select:'|translate}
318    {if $nb_thumbs_set > $nb_thumbs_page}
319      <a href="#" id="selectAll">{'The whole page'|translate}</a>,
320      <a href="#" id="selectSet">{'The whole set'|translate}</a>,
321    {else}
322      <a href="#" id="selectAll">{'All'|translate}</a>,
323    {/if}
324      <a href="#" id="selectNone">{'None'|translate}</a>,
325      <a href="#" id="selectInvert">{'Invert'|translate}</a>
326
327      <span id="selectedMessage"></span>
328      <input type="checkbox" name="setSelected" style="display:none">
329      <span id="loader_display" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|translate}</i></span>
330    </p>
331
332    <ul class="thumbnails">
333      {foreach from=$thumbnails item=thumbnail}
334                        <li id="photo-{$thumbnail.id}">
335                                <span class="wrap1">
336                                        <label>
337                                                <span class="wrap2">
338                                                <div class="actions"><a href="{$thumbnail.src}" class="preview-box">{'Zoom'|translate}</a> &middot; <a href="{$thumbnail.url}" target="_blank" title="{'Open Instagram page in a new tab'|translate}">Open</a></div>
339                                                        <span>
340                                                                <img src="{$thumbnail.thumb}" alt="{$thumbnail.title}" title="{$thumbnail.title|@escape:'html'}" class="thumbnail">
341                                                        </span>
342                                                </span>
343                                                <input type="checkbox" name="selection[]" value="{$thumbnail.id}">
344                                        </label>
345                                </span>
346                        </li>
347      {/foreach}
348    </ul>
349   
350   
351    <div style="clear:both;" id="navigation">
352    {if !empty($navbar) }
353      <div style="float:left">
354      {include file='navigation_bar.tpl'|@get_extent:'navbar'}
355      </div>
356    {/if}
357   
358      <div style="float:right;margin-top:10px;">{'display'|translate}
359        <a href="{$U_DISPLAY}&amp;display=20">20</a>
360        &middot; <a href="{$U_DISPLAY}&amp;display=50">50</a>
361        &middot; <a href="{$U_DISPLAY}&amp;display=100">100</a>
362        &middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|translate}</a>
363        {'photos per page'|translate}
364      </div>
365    </div>
366
367  {else}
368    <div>{'No photo in the current set.'|translate}</div>
369  {/if}
370  </fieldset>
371 
372  <fieldset>
373    <legend>{'Import options'|translate}</legend>
374
375    <p>
376      <label for="albumSelect"><b>{'Album'|translate}:</b></label>
377      <select style="width:400px" name="associate" id="albumSelect" size="1">
378        {html_options options=$category_parent_options}
379      </select>
380      {'... or '|translate}<a href="#" class="addAlbumOpen" title="{'create a new album'|translate}">{'create a new album'|translate}</a>
381    </p>
382   
383    <p>
384      <b>{'Fill these fields from Instagram datas'|translate}:</b>
385      <label><input type="checkbox" name="fill_name" checked="checked"> {'Photo name'|translate}</label>
386      <label><input type="checkbox" name="fill_author" checked="checked"> {'Author'|translate}</label>
387      <label><input type="checkbox" name="fill_tags" checked="checked"> {'Tags'|translate}</label>
388      <label><input type="checkbox" name="fill_taken" checked="checked"> {'Creation date'|translate}</label>
389      <label><input type="checkbox" name="fill_geotag" checked="checked"> {'Geolocalization'|translate}</label>
390    </p>
391
392    <p>
393      <input type="hidden" name="album" value="{$album}">
394      <input type="submit" name="import_set" id="beginImport" value="{'Begin transfer'|translate}" style="display:none;">
395      <span id="loader_import" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|translate}</i> <span id="progress"></span></span>
396    </p>
397  </fieldset>
398</form>
399</div>
Note: See TracBrowser for help on using the repository browser.