Ignore:
Timestamp:
Dec 26, 2013, 12:07:19 PM (10 years ago)
Author:
mistic100
Message:

update for Piwigo 2.6

File:
1 edited

Legend:

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

    r25788 r26198  
    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;
     
    6049        return true;
    6150      });
    62       $(this).click(function(event) {$(this).triggerHandler("shclick",event)});
    63     });
    64   }
    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(
     51      $(this).click(function(event) { $(this).triggerHandler("shclick",event); });
     52    });
     53  };
     54
     55  /* update displaying */
     56  function checkPermitAction() {
     57    var nbSelected = 0;
     58    if ($("input[name=setSelected]").is(':checked')) {
     59      nbSelected = nb_thumbs_set;
     60    }
     61    else {
     62      $(".thumbnails input[type=checkbox]").each(function() {
     63        if ($(this).is(':checked')) nbSelected++;
     64      });
     65    }
     66
     67    if (nbSelected == 0) {
     68      $("#beginImport").hide();
     69    }
     70    else {
     71      $("#beginImport").show();
     72    }
     73
     74    $("#applyOnDetails").text(
    14275      sprintf(
    143         selectedMessage_none,
    144         nb_thumbs_set
     76        '{'on the %d selected photos'|translate|escape:javascript}',
     77        nbSelected
    14578      )
    14679    );
    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     );
     80
     81    // display the number of currently selected photos in the "Selection" fieldset
     82    if (nbSelected == 0) {
     83      $("#selectedMessage").text(
     84        sprintf(
     85          '{'No photo selected, %d photos in current set'|translate|escape:javascript}',
     86          nb_thumbs_set
     87        )
     88      );
     89    }
     90    else if (nbSelected == nb_thumbs_set) {
     91      $("#selectedMessage").text(
     92        sprintf(
     93          '{'All %d photos are selected'|translate|escape:javascript}',
     94          nb_thumbs_set
     95        )
     96      );
     97    }
     98    else {
     99      $("#selectedMessage").text(
     100        sprintf(
     101          '{'%d of %d photos selected'|translate|escape:javascript}',
     102          nbSelected,
     103          nb_thumbs_set
     104        )
     105      );
     106    }
    162107  }
    163 }
    164 
    165 /* import queue */
    166 function performImport(photo, album, fills, pwa_album) {
    167   queuedManager.add({
    168     type: 'GET',
    169     dataType: 'json',
    170     url: 'ws.php',
    171     data: { method: 'pwg.images.addPicasa', id: photo, category: album, fills: fills, pwa_album: pwa_album, 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 });
     108
     109  /* import queue */
     110  function performImport(photo, album, fills, pwa_album) {
     111    queuedManager.add({
     112      type: 'GET',
     113      dataType: 'json',
     114      url: 'ws.php',
     115      data: {
     116        method: 'pwg.images.addPicasa',
     117        id: photo,
     118        category: album,
     119        fills: fills,
     120        pwa_album: pwa_album,
     121        format: 'json'
     122      },
     123      success: function(data) {
     124        if (data['stat'] == 'ok') {
     125          $.jGrowl(data['result'], {
     126            theme: 'success', life: 4000, sticky: false,
     127            header: '{'Success'|translate}'
     128          });
     129          $("#photo-"+photo).fadeOut(function(){ $(this).remove(); });
     130        }
     131        else {
     132          $.jGrowl(data['result'], {
     133            theme: 'error', sticky: true,
     134            header: '{'ERROR'|translate}'
     135          });
     136        }
     137       
     138        import_done++;
     139        $("#progress").html(import_done +"/"+ import_selected);
     140       
     141        if (import_done == import_selected) {
     142          $("#import_form").append('<input type="hidden" name="done" value="' + import_done + '">');
     143          $("#import_form").submit();
     144        }
     145      },
     146      error: function(data) {
     147        $.jGrowl('{'an error happened'|translate|escape:javascript}', {
     148          theme: 'error', sticky: true,
     149          header: '{'ERROR'|translate}'
     150        });
    178151      }
    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() {
     152    });
     153  }
     154
     155
    196156  checkPermitAction();
    197157  $("a.preview-box").colorbox();
     
    207167  /* thumbnail click */
    208168  $(".wrap1 label").click(function (event) {
    209     $("input[name=setSelected]").attr('checked', false);
     169    $("input[name=setSelected]").prop('checked', false);
    210170
    211171    var wrap2 = $(this).children(".wrap2");
     
    226186  /* select all */
    227187  $("#selectAll").click(function () {
    228     $("input[name=setSelected]").attr('checked', false);
     188    $("input[name=setSelected]").prop('checked', false);
    229189   
    230190    $(".thumbnails label").each(function() {
     
    232192      var checkbox = $(this).children("input[type=checkbox]");
    233193
    234       $(checkbox).attr('checked', true);
     194      $(checkbox).prop('checked', true);
    235195      $(wrap2).addClass("thumbSelected");
    236196    });
     
    242202  /* select none */
    243203  $("#selectNone").click(function () {
    244     $("input[name=setSelected]").attr('checked', false);
     204    $("input[name=setSelected]").prop('checked', false);
    245205   
    246206    $(".thumbnails label").each(function() {
     
    248208      var checkbox = $(this).children("input[type=checkbox]");
    249209
    250       $(checkbox).attr('checked', false);
     210      $(checkbox).prop('checked', false);
    251211      $(wrap2).removeClass("thumbSelected");
    252212    });
     
    258218  /* select invert */
    259219  $("#selectInvert").click(function () {
    260     $("input[name=setSelected]").attr('checked', false);
     220    $("input[name=setSelected]").prop('checked', false);
    261221   
    262222    $(".thumbnails label").each(function() {
     
    264224      var checkbox = $(this).children("input[type=checkbox]");
    265225
    266       $(checkbox).attr('checked', !$(checkbox).is(':checked'));
     226      $(checkbox).prop('checked', !$(checkbox).is(':checked'));
    267227
    268228      if ($(checkbox).is(':checked')) {
    269229        $(wrap2).addClass("thumbSelected");
    270       } else {
     230      }
     231      else {
    271232        $(wrap2).removeClass('thumbSelected');
    272233      }
     
    279240  /* select set */
    280241  $("#selectSet").click(function () {
    281     $("input[name=setSelected]").attr('checked', true);
     242    $("input[name=setSelected]").prop('checked', true);
    282243   
    283244    $(".thumbnails label").each(function() {
     
    285246      var checkbox = $(this).children("input[type=checkbox]");
    286247
    287       $(checkbox).attr('checked', true);
     248      $(checkbox).prop('checked', true);
    288249      $(wrap2).addClass("thumbSelected");
    289250    });
     
    294255 
    295256  /* begin import */
    296   jQuery('#beginImport').click(function() {
     257  $('#beginImport').click(function() {
    297258    $("#loader_import").fadeIn();
    298259    var album = $("#albumSelect option:selected").val();
    299     var pwa_album = "{/literal}{$album}{literal}";
     260    var pwa_album = "{$album}";
    300261   
    301262    var fills = '';
     
    304265    });
    305266   
    306     if (jQuery('input[name="setSelected"]').attr('checked')) {
     267    if ($('input[name="setSelected"]').prop('checked')) {
    307268      import_selected = all_elements.length;
    308269      $("#progress").html("0/"+ import_selected);
     
    311272        performImport(all_elements[i], album, fills, pwa_album);
    312273      }
    313                 } else {
     274                }
     275    else {
    314276      import_selected = $("input[name='selection[]']:checked").length;
    315277      $("#progress").html("0/"+ import_selected);
    316278     
    317                         jQuery("input[name='selection[]']:checked").each(function() {
    318         performImport(jQuery(this).attr('value'), album, fills, pwa_album);
     279                        $("input[name='selection[]']:checked").each(function() {
     280        performImport($(this).attr('value'), album, fills, pwa_album);
    319281      });
    320282    }
     
    324286 
    325287  /* pagination loader */
    326   jQuery('#navigation a').click(function() {
     288  $('#navigation a').click(function() {
    327289    $("#loader_display").fadeIn();
    328290  });
    329 });
    330 {/literal}
     291}(jQuery));
    331292{/footer_script}
     293
    332294
    333295<div id="batchManagerGlobal">
     
    335297
    336298  <fieldset>
    337     <legend>{'Selection'|@translate}</legend>
     299    <legend>{'Selection'|translate}</legend>
    338300
    339301  {if !empty($thumbnails)}
    340302    <p id="checkActions">
    341       {'Select:'|@translate}
     303      {'Select:'|translate}
    342304    {if $nb_thumbs_set > $nb_thumbs_page}
    343       <a href="#" id="selectAll">{'The whole page'|@translate}</a>,
    344       <a href="#" id="selectSet">{'The whole set'|@translate}</a>,
     305      <a href="#" id="selectAll">{'The whole page'|translate}</a>,
     306      <a href="#" id="selectSet">{'The whole set'|translate}</a>,
    345307    {else}
    346       <a href="#" id="selectAll">{'All'|@translate}</a>,
     308      <a href="#" id="selectAll">{'All'|translate}</a>,
    347309    {/if}
    348       <a href="#" id="selectNone">{'None'|@translate}</a>,
    349       <a href="#" id="selectInvert">{'Invert'|@translate}</a>
     310      <a href="#" id="selectNone">{'None'|translate}</a>,
     311      <a href="#" id="selectInvert">{'Invert'|translate}</a>
    350312
    351313      <span id="selectedMessage"></span>
    352314      <input type="checkbox" name="setSelected" style="display:none">
    353       <span id="loader_display" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|@translate}</i></span>
     315      <span id="loader_display" style="display:none;"><img src="admin/themes/default/images/ajax-loader.gif"> <i>{'Processing...'|translate}</i></span>
    354316    </p>
    355317
     
    360322                                        <label>
    361323                                                <span class="wrap2">
    362                                                 <div class="actions"><a href="{$thumbnail.src}" class="preview-box">{'Zoom'|@translate}</a> &middot; <a href="{$thumbnail.url}" target="_blank" title="{'Open Google page in a new tab'|@translate}">Picasa</a></div>
     324                                                <div class="actions"><a href="{$thumbnail.src}" class="preview-box">{'Zoom'|translate}</a> &middot; <a href="{$thumbnail.url}" target="_blank" title="{'Open Google page in a new tab'|translate}">Picasa</a></div>
    363325                                                        <span>
    364326                                                                <img src="{$thumbnail.thumb}" alt="{$thumbnail.title}" title="{$thumbnail.title|@escape:'html'}" class="thumbnail">
     
    380342    {/if}
    381343   
    382       <div style="float:right;margin-top:10px;">{'display'|@translate}
     344      <div style="float:right;margin-top:10px;">{'display'|translate}
    383345        <a href="{$U_DISPLAY}&amp;display=20">20</a>
    384346        &middot; <a href="{$U_DISPLAY}&amp;display=50">50</a>
    385347        &middot; <a href="{$U_DISPLAY}&amp;display=100">100</a>
    386         &middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|@translate}</a>
    387         {'photos per page'|@translate}
     348        &middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|translate}</a>
     349        {'photos per page'|translate}
    388350      </div>
    389351    </div>
    390352
    391353  {else}
    392     <div>{'No photo in the current set.'|@translate}</div>
     354    <div>{'No photo in the current set.'|translate}</div>
    393355  {/if}
    394356  </fieldset>
    395357 
    396358  <fieldset>
    397     <legend>{'Import options'|@translate}</legend>
     359    <legend>{'Import options'|translate}</legend>
    398360
    399361    <p>
    400       <label for="albumSelect"><b>{'Album'|@translate}:</b></label>
     362      <label for="albumSelect"><b>{'Album'|translate}:</b></label>
    401363      <select style="width:400px" name="associate" id="albumSelect" size="1">
    402364        {html_options options=$category_parent_options}
    403365      </select>
    404       {'... or '|@translate}<a href="#" class="addAlbumOpen" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
     366      {'... or '|translate}<a href="#" class="addAlbumOpen" title="{'create a new album'|translate}">{'create a new album'|translate}</a>
    405367    </p>
    406368   
    407369    <p>
    408       <b>{'Fill these fields from Google datas'|@translate}:</b>
    409       <label><input type="checkbox" name="fill_name" checked="checked"> {'Photo name'|@translate}</label>
    410       <label><input type="checkbox" name="fill_author" checked="checked"> {'Author'|@translate}</label>
    411       <label><input type="checkbox" name="fill_tags" checked="checked"> {'Tags'|@translate}</label>
    412       <label><input type="checkbox" name="fill_taken" checked="checked"> {'Creation date'|@translate}</label>
    413       <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}
     370      <b>{'Fill these fields from Google datas'|translate}:</b>
     371      <label><input type="checkbox" name="fill_name" checked="checked"> {'Photo name'|translate}</label>
     372      <label><input type="checkbox" name="fill_author" checked="checked"> {'Author'|translate}</label>
     373      <label><input type="checkbox" name="fill_tags" checked="checked"> {'Tags'|translate}</label>
     374      <label><input type="checkbox" name="fill_taken" checked="checked"> {'Creation date'|translate}</label>
     375      <label><input type="checkbox" name="fill_description" checked="checked"> {'Description'|translate}</label>
     376      <label><input type="checkbox" name="fill_geotag" checked="checked"> {'Geolocalization'|translate}</label>
    415377    </p>
    416378
    417379    <p>
    418380      <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>
     381      <input type="submit" name="import_set" id="beginImport" value="{'Begin transfer'|translate}" style="display:none;">
     382      <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>
    421383    </p>
    422384  </fieldset>
Note: See TracChangeset for help on using the changeset viewer.