Ignore:
Timestamp:
Dec 24, 2013, 6:23:13 PM (10 years ago)
Author:
mistic100
Message:

update for piwigo 2.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/flickr2piwigo/admin/template/import.list_photos.tpl

    r25789 r26180  
    11{footer_script require='jquery.ajaxmanager,jquery.jgrowl'}
    2 /* global vars */
    3 var nb_thumbs_page = {$nb_thumbs_page};
    4 var nb_thumbs_set = {$nb_thumbs_set};
    5 var all_elements = [{if !empty($all_elements)}{','|@implode:$all_elements}{/if}];
    6 
    7 var errorHead   = '{'ERROR'|@translate|@escape:'javascript'}';
    8 var errorMsg    = '{'an error happened'|@translate|@escape:'javascript'}';
    9 var successHead = '{'Success'|@translate|@escape:'javascript'}';
    10 var selectedMessage_pattern = "{'%d of %d photos selected'|@translate}";
    11 var selectedMessage_none = "{'No photo selected, %d photos in current set'|@translate}";
    12 var selectedMessage_all = "{'All %d photos are selected'|@translate}";
    13 var applyOnDetails_pattern = "{'on the %d selected photos'|@translate}";
    14 
    15 var import_done = 0;
    16 var import_selected = 0;
    17 var queuedManager = jQuery.manageAjax.create('queued', {ldelim}
    18   queue: true, 
    19   maxRequests: 1
    20 });
    21 
    22 {literal}
    23 /* Shift-click: select all photos between the click and the shift+click */
    24 jQuery(document).ready(function() {
     2(function($){
     3  /* global vars */
     4  var nb_thumbs_set = {$nb_thumbs_set};
     5  var all_elements = [{if !empty($all_elements)}{','|@implode:$all_elements}{/if}];
     6  var import_done = 0;
     7  var import_selected = 0;
     8  var queuedManager = $.manageAjax.create('queued', {ldelim}
     9    queue: true,
     10    maxRequests: 1
     11  });
     12
     13  /* Shift-click: select all photos between the click and the shift+click */
    2514  var last_clicked=0;
    2615  var last_clickedstatus=true;
    27   jQuery.fn.enableShiftClick = function() {
     16  $.fn.enableShiftClick = function() {
    2817    var inputs = [];
    2918    var count=0;
     
    4433            input = $(inputs[i]);
    4534            $(input).attr('checked', last_clickedstatus);
    46             if (last_clickedstatus)
    47             {
     35            if (last_clickedstatus) {
    4836              $(input).siblings("span.wrap2").addClass("thumbSelected");
    4937            }
    50             else
    51             {
     38            else {
    5239              $(input).siblings("span.wrap2").removeClass("thumbSelected");
    5340            }
     
    6047        return true;
    6148      });
    62       $(this).click(function(event) {$(this).triggerHandler("shclick",event)});
     49      $(this).click(function(event) { $(this).triggerHandler("shclick",event); });
    6350    });
    6451  }
    65 });
    66 
    67 /* sprintf */
    68 function str_repeat(i, m) {
    69     for (var o = []; m > 0; o[--m] = i);
    70     return o.join('');
    71 }
    72 
    73 function sprintf() {
    74   var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = '';
    75   while (f) {
    76     if (m = /^[^\x25]+/.exec(f)) {
    77       o.push(m[0]);
    78     }
    79     else if (m = /^\x25{2}/.exec(f)) {
    80       o.push('%');
    81     }
    82     else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
    83       if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) {
    84         throw('Too few arguments.');
    85       }
    86       if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) {
    87         throw('Expecting number but found ' + typeof(a));
    88       }
    89       switch (m[7]) {
    90         case 'b': a = a.toString(2); break;
    91         case 'c': a = String.fromCharCode(a); break;
    92         case 'd': a = parseInt(a); break;
    93         case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
    94         case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
    95         case 'o': a = a.toString(8); break;
    96         case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
    97         case 'u': a = Math.abs(a); break;
    98         case 'x': a = a.toString(16); break;
    99         case 'X': a = a.toString(16).toUpperCase(); break;
    100       }
    101       a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a);
    102       c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
    103       x = m[5] - String(a).length - s.length;
    104       p = m[5] ? str_repeat(c, x) : '';
    105       o.push(s + (m[4] ? a + p : p + a));
    106     }
    107     else {
    108       throw('Huh ?!');
    109     }
    110     f = f.substring(m[0].length);
    111   }
    112   return o.join('');
    113 }
    114 
    115 /* update displaying */
    116 function checkPermitAction() {
    117   var nbSelected = 0;
    118   if ($("input[name=setSelected]").is(':checked')) {
    119     nbSelected = nb_thumbs_set;
    120   } else {
    121     $(".thumbnails input[type=checkbox]").each(function() {
    122       if ($(this).is(':checked')) nbSelected++;
    123     });
    124   }
    125 
    126   if (nbSelected == 0) {
    127     $("#beginImport").hide();
    128   } else {
    129     $("#beginImport").show();
    130   }
    131 
    132   $("#applyOnDetails").text(
    133     sprintf(
    134       applyOnDetails_pattern,
    135       nbSelected
    136     )
    137   );
    138 
    139   // display the number of currently selected photos in the "Selection" fieldset
    140   if (nbSelected == 0) {
    141     $("#selectedMessage").text(
     52
     53  /* update displaying */
     54  function checkPermitAction() {
     55    var nbSelected = 0;
     56    if ($("input[name=setSelected]").is(':checked')) {
     57      nbSelected = nb_thumbs_set;
     58    }
     59    else {
     60      $(".thumbnails input[type=checkbox]").each(function() {
     61        if ($(this).is(':checked')) nbSelected++;
     62      });
     63    }
     64
     65    if (nbSelected == 0) {
     66      $("#beginImport").hide();
     67    }
     68    else {
     69      $("#beginImport").show();
     70    }
     71
     72    $("#applyOnDetails").text(
    14273      sprintf(
    143         selectedMessage_none,
    144         nb_thumbs_set
     74        '{'on the %d selected photos'|translate|escape:javascript}',
     75        nbSelected
    14576      )
    14677    );
    147   } else if (nbSelected == nb_thumbs_set) {
    148     $("#selectedMessage").text(
    149       sprintf(
    150         selectedMessage_all,
    151         nb_thumbs_set
    152       )
    153     );
    154   } else {
    155     $("#selectedMessage").text(
    156       sprintf(
    157         selectedMessage_pattern,
    158         nbSelected,
    159         nb_thumbs_set
    160       )
    161     );
     78
     79    // display the number of currently selected photos in the "Selection" fieldset
     80    if (nbSelected == 0) {
     81      $("#selectedMessage").text(
     82        sprintf(
     83          '{'No photo selected, %d photos in current set'|translate|escape:javascript}',
     84          nb_thumbs_set
     85        )
     86      );
     87    }
     88    else if (nbSelected == nb_thumbs_set) {
     89      $("#selectedMessage").text(
     90        sprintf(
     91          '{'All %d photos are selected'|translate|escape:javascript}',
     92          nb_thumbs_set
     93        )
     94      );
     95    }
     96    else {
     97      $("#selectedMessage").text(
     98        sprintf(
     99          '{'%d of %d photos selected'|translate|escape:javascript}',
     100          nbSelected,
     101          nb_thumbs_set
     102        )
     103      );
     104    }
    162105  }
    163 }
    164 
    165 /* import queue */
    166 function performImport(photo, album, fills) {
    167   queuedManager.add({
    168     type: 'GET',
    169     dataType: 'json',
    170     url: 'ws.php',
    171     data: { method: 'pwg.images.addFlickr', id: photo, category: album, fills: fills, format: 'json' },
    172     success: function(data) {
    173       if (data['stat'] == 'ok') {
    174         jQuery.jGrowl(data['result'], { theme: 'success', header: successHead, life: 4000, sticky: false });
    175         jQuery("#photo-"+photo).fadeOut(function(){ $(this).remove(); });
    176       } else {
    177         jQuery.jGrowl(data['result'], { theme: 'error', header: errorHead, sticky: true });
     106
     107  /* import queue */
     108  function performImport(photo, album, fills) {
     109    queuedManager.add({
     110      type: 'GET',
     111      dataType: 'json',
     112      url: 'ws.php',
     113      data: {
     114        method: 'pwg.images.addFlickr',
     115        id: photo,
     116        category: album,
     117        fills: fills,
     118        format: 'json'
     119      },
     120      success: function(data) {
     121        if (data['stat'] == 'ok') {
     122          jQuery.jGrowl(data['result'], {
     123            theme: 'success', life: 4000, sticky: false,
     124            header: '{'Success'|translate}'
     125          });
     126          jQuery("#photo-"+photo).fadeOut(function(){ $(this).remove(); });
     127        }
     128        else {
     129          jQuery.jGrowl(data['result'], {
     130            theme: 'error', sticky: true,
     131            header: '{'ERROR'|translate}'
     132          });
     133        }
     134
     135        import_done++;
     136        $("#progress").html(import_done +"/"+ import_selected);
     137
     138        if (import_done == import_selected) {
     139          $("#import_form").append('<input type="hidden" name="done" value="' + import_done + '">');
     140          $("#import_form").submit();
     141        }
     142      },
     143      error: function(data) {
     144        jQuery.jGrowl('{'an error happened'|translate|@escape:'javascript'}', {
     145          theme: 'error', sticky: true,
     146          header: '{'ERROR'|translate}'
     147        });
    178148      }
    179      
    180       import_done++;
    181       $("#progress").html(import_done +"/"+ import_selected);
    182      
    183       if (import_done == import_selected) {
    184         $("#import_form").append('<input type="hidden" name="done" value="' + import_done + '">');
    185         $("#import_form").submit();
    186       }
    187     },
    188     error: function(data) {
    189       jQuery.jGrowl(errorMsg, { theme: 'error', header: errorHead, sticky: true });
    190     }
    191   });
    192 }
    193 
    194 
    195 $(document).ready(function() {
     149    });
     150  }
     151
     152
    196153  checkPermitAction();
    197154  $("a.preview-box").colorbox();
     
    206163
    207164  /* thumbnail click */
    208   $(".wrap1 label").click(function (event) {
    209     $("input[name=setSelected]").attr('checked', false);
     165  $(".wrap1 label").click(function(event) {
     166    $("input[name=setSelected]").prop('checked', false);
    210167
    211168    var wrap2 = $(this).children(".wrap2");
     
    215172
    216173    if ($(checkbox).is(':checked')) {
    217       $(wrap2).addClass("thumbSelected"); 
    218     }
    219     else {
    220       $(wrap2).removeClass('thumbSelected'); 
     174      $(wrap2).addClass("thumbSelected");
     175    }
     176    else {
     177      $(wrap2).removeClass('thumbSelected');
    221178    }
    222179
     
    225182
    226183  /* select all */
    227   $("#selectAll").click(function () {
    228     $("input[name=setSelected]").attr('checked', false);
    229    
     184  $("#selectAll").click(function() {
     185    $("input[name=setSelected]").prop('checked', false);
     186
    230187    $(".thumbnails label").each(function() {
    231188      var wrap2 = $(this).children(".wrap2");
    232189      var checkbox = $(this).children("input[type=checkbox]");
    233190
    234       $(checkbox).attr('checked', true);
    235       $(wrap2).addClass("thumbSelected"); 
    236     });
    237    
     191      $(checkbox).prop('checked', true);
     192      $(wrap2).addClass("thumbSelected");
     193    });
     194
    238195    checkPermitAction();
    239196    return false;
     
    241198
    242199  /* select none */
    243   $("#selectNone").click(function () {
    244     $("input[name=setSelected]").attr('checked', false);
    245    
     200  $("#selectNone").click(function() {
     201    $("input[name=setSelected]").prop('checked', false);
     202
    246203    $(".thumbnails label").each(function() {
    247204      var wrap2 = $(this).children(".wrap2");
    248205      var checkbox = $(this).children("input[type=checkbox]");
    249206
    250       $(checkbox).attr('checked', false);
    251       $(wrap2).removeClass("thumbSelected"); 
    252     });
    253    
     207      $(checkbox).prop('checked', false);
     208      $(wrap2).removeClass("thumbSelected");
     209    });
     210
    254211    checkPermitAction();
    255212    return false;
     
    257214
    258215  /* select invert */
    259   $("#selectInvert").click(function () {
    260     $("input[name=setSelected]").attr('checked', false);
    261    
     216  $("#selectInvert").click(function() {
     217    $("input[name=setSelected]").prop('checked', false);
     218
    262219    $(".thumbnails label").each(function() {
    263220      var wrap2 = $(this).children(".wrap2");
    264221      var checkbox = $(this).children("input[type=checkbox]");
    265222
    266       $(checkbox).attr('checked', !$(checkbox).is(':checked'));
     223      $(checkbox).prop('checked', !$(checkbox).is(':checked'));
    267224
    268225      if ($(checkbox).is(':checked')) {
    269         $(wrap2).addClass("thumbSelected");
    270       } else {
    271         $(wrap2).removeClass('thumbSelected');
     226        $(wrap2).addClass("thumbSelected");
    272227      }
    273     });
    274    
    275     checkPermitAction();
    276     return false;
    277   });
    278  
     228      else {
     229        $(wrap2).removeClass('thumbSelected');
     230      }
     231    });
     232
     233    checkPermitAction();
     234    return false;
     235  });
     236
    279237  /* select set */
    280   $("#selectSet").click(function () {
    281     $("input[name=setSelected]").attr('checked', true);
    282    
     238  $("#selectSet").click(function() {
     239    $("input[name=setSelected]").prop('checked', true);
     240
    283241    $(".thumbnails label").each(function() {
    284242      var wrap2 = $(this).children(".wrap2");
    285243      var checkbox = $(this).children("input[type=checkbox]");
    286244
    287       $(checkbox).attr('checked', true);
    288       $(wrap2).addClass("thumbSelected"); 
    289     });
    290    
    291     checkPermitAction();
    292     return false;
    293   });
    294  
     245      $(checkbox).prop('checked', true);
     246      $(wrap2).addClass("thumbSelected");
     247    });
     248
     249    checkPermitAction();
     250    return false;
     251  });
     252
    295253  /* begin import */
    296254  jQuery('#beginImport').click(function() {
    297255    $("#loader_import").fadeIn();
    298256    var album = $("#albumSelect option:selected").val();
    299    
     257
    300258    var fills = '';
    301259    $("input[name^='fill_']:checked").each(function() {
    302260      fills+= $(this).attr("name") +',';
    303     }); 
    304    
     261    });
     262
    305263    if (jQuery('input[name="setSelected"]').attr('checked')) {
    306264      import_selected = all_elements.length;
    307265      $("#progress").html("0/"+ import_selected);
    308      
     266
    309267      for (var i in all_elements) {
    310268        performImport(all_elements[i], album, fills);
    311269      }
    312                 } else {
     270                }
     271    else {
    313272      import_selected = $("input[name='selection[]']:checked").length;
    314273      $("#progress").html("0/"+ import_selected);
    315      
     274
    316275                        jQuery("input[name='selection[]']:checked").each(function() {
    317276        performImport(jQuery(this).attr('value'), album, fills);
    318277      });
    319278    }
    320    
    321     return false;
    322   });
    323  
     279
     280    return false;
     281  });
     282
    324283  /* pagination loader */
    325284  jQuery('#navigation a').click(function() {
    326285    $("#loader_display").fadeIn();
    327286  });
    328 });
    329 {/literal}
     287}(jQuery));
    330288{/footer_script}
     289
    331290
    332291<div id="batchManagerGlobal">
     
    334293
    335294  <fieldset>
    336     <legend>{'Selection'|@translate}</legend>
     295    <legend>{'Selection'|translate}</legend>
    337296
    338297  {if !empty($thumbnails)}
    339298    <p id="checkActions">
    340       {'Select:'|@translate}
     299      {'Select:'|translate}
    341300    {if $nb_thumbs_set > $nb_thumbs_page}
    342       <a href="#" id="selectAll">{'The whole page'|@translate}</a>,
    343       <a href="#" id="selectSet">{'The whole set'|@translate}</a>,
     301      <a href="#" id="selectAll">{'The whole page'|translate}</a>,
     302      <a href="#" id="selectSet">{'The whole set'|translate}</a>,
    344303    {else}
    345       <a href="#" id="selectAll">{'All'|@translate}</a>,
     304      <a href="#" id="selectAll">{'All'|translate}</a>,
    346305    {/if}
    347       <a href="#" id="selectNone">{'None'|@translate}</a>,
    348       <a href="#" id="selectInvert">{'Invert'|@translate}</a>
     306      <a href="#" id="selectNone">{'None'|translate}</a>,
     307      <a href="#" id="selectInvert">{'Invert'|translate}</a>
    349308
    350309      <span id="selectedMessage"></span>
    351310      <input type="checkbox" name="setSelected" style="display:none">
    352       <span id="loader_display" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|@translate}</i></span>
     311      <span id="loader_display" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|translate}</i></span>
    353312    </p>
    354313
     
    359318                                        <label>
    360319                                                <span class="wrap2">
    361                                                 <div class="actions"><a href="{$thumbnail.src}" class="preview-box">{'Zoom'|@translate}</a> &middot; <a href="{$thumbnail.url}" target="_blank" title="{'Open Flickr page in a new tab'|@translate}">Flickr</a></div>
     320                                                <div class="actions"><a href="{$thumbnail.src}" class="preview-box">{'Zoom'|translate}</a> &middot; <a href="{$thumbnail.url}" target="_blank" title="{'Open Flickr page in a new tab'|translate}">Flickr</a></div>
    362321                                                        <span>
    363                                                                 <img src="{$thumbnail.thumb}" alt="{$thumbnail.title}" title="{$thumbnail.title|@escape:'html'}" class="thumbnail">
     322                                                                <img src="{$thumbnail.thumb}" alt="{$thumbnail.title}" title="{$thumbnail.title|escape:'html'}" class="thumbnail">
    364323                                                        </span>
    365324                                                </span>
     
    370329      {/foreach}
    371330    </ul>
    372    
    373    
     331
     332
    374333    <div style="clear:both;" id="navigation">
    375334    {if !empty($navbar) }
    376335      <div style="float:left">
    377       {include file='navigation_bar.tpl'|@get_extent:'navbar'}
     336      {include file='navigation_bar.tpl'|get_extent:'navbar'}
    378337      </div>
    379338    {/if}
    380    
    381       <div style="float:right;margin-top:10px;">{'display'|@translate}
     339
     340      <div style="float:right;margin-top:10px;">{'display'|translate}
    382341        <a href="{$U_DISPLAY}&amp;display=20">20</a>
    383342        &middot; <a href="{$U_DISPLAY}&amp;display=50">50</a>
    384343        &middot; <a href="{$U_DISPLAY}&amp;display=100">100</a>
    385         &middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|@translate}</a>
    386         {'photos per page'|@translate}
     344        &middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|translate}</a>
     345        {'photos per page'|translate}
    387346      </div>
    388347    </div>
    389348
    390349  {else}
    391     <div>{'No photo in the current set.'|@translate}</div>
     350    <div>{'No photo in the current set.'|translate}</div>
    392351  {/if}
    393352  </fieldset>
    394  
     353
    395354  <fieldset>
    396     <legend>{'Import options'|@translate}</legend>
     355    <legend>{'Import options'|translate}</legend>
    397356
    398357    <p>
    399       <label for="albumSelect"><b>{'Album'|@translate}:</b></label>
     358      <label for="albumSelect"><b>{'Album'|translate}:</b></label>
    400359      <select style="width:400px" name="associate" id="albumSelect" size="1">
    401360        {html_options options=$category_parent_options}
    402361      </select>
    403       {'... or '|@translate}<a href="#" class="addAlbumOpen" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
     362      {'... or '|translate}<a href="#" class="addAlbumOpen" title="{'create a new album'|translate}">{'create a new album'|translate}</a>
    404363    </p>
    405    
     364
    406365    <p>
    407       <b>{'Fill these fields from Flickr datas'|@translate}:</b>
    408       <label><input type="checkbox" name="fill_name" checked="checked"> {'Photo name'|@translate}</label>
    409       <label><input type="checkbox" name="fill_author" checked="checked"> {'Author'|@translate}</label>
    410       <label><input type="checkbox" name="fill_tags" checked="checked"> {'Tags'|@translate}</label>
    411       <label><input type="checkbox" name="fill_taken" checked="checked"> {'Creation date'|@translate}</label>
    412       <label><input type="checkbox" name="fill_posted"> {'Post date'|@translate}</label>
     366      <b>{'Fill these fields from Flickr datas'|translate}:</b>
     367      <label><input type="checkbox" name="fill_name" checked="checked"> {'Photo name'|translate}</label>
     368      <label><input type="checkbox" name="fill_author" checked="checked"> {'Author'|translate}</label>
     369      <label><input type="checkbox" name="fill_tags" checked="checked"> {'Tags'|translate}</label>
     370      <label><input type="checkbox" name="fill_taken" checked="checked"> {'Creation date'|translate}</label>
     371      <label><input type="checkbox" name="fill_posted"> {'Post date'|translate}</label>
    413372      <label><input type="checkbox" name="fill_description" checked="checked"> {'Description'|@translate}</label>
    414       {if $GMAPS_LOADED}<label><input type="checkbox" name="fill_geotag" checked="checked"> {'Geolocalization'|@translate}</label>{/if}
     373      <label><input type="checkbox" name="fill_geotag" checked="checked"> {'Geolocalization'|@translate}</label>
    415374    </p>
    416375
    417376    <p>
    418377      <input type="hidden" name="album" value="{$album}">
    419       <input type="submit" name="import_set" id="beginImport" value="{'Begin transfer'|@translate}" style="display:none;">
    420       <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>
     378      <input type="submit" name="import_set" id="beginImport" value="{'Begin transfer'|translate}" style="display:none;">
     379      <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>
    421380    </p>
    422381  </fieldset>
Note: See TracChangeset for help on using the changeset viewer.