source: extensions/rotateImage/rotate_image.tpl @ 31810

Last change on this file since 31810 was 26925, checked in by plg, 10 years ago

compatibility with Piwigo 2.6 (jQuery 1.10)

bug fixed: correctly load language for "Rotate" photo edition tab

File size: 3.7 KB
Line 
1{footer_script}
2var rotateImagesMessage = "{'Images rotation in progress...'|@translate}";
3var autoRotateOptionText = "{'auto (EXIF orientation tag)'|@translate}";
4var ri_pwg_token = '{$RI_PWG_TOKEN}';
5{literal}
6jQuery(document).ready(function() {
7  function autoRotateOption() {
8    if (jQuery("#rotate_hd").is(':checked')) {
9      jQuery("<option/>")
10        .attr("id", "autoRotateOption")
11        .attr("value", "auto")
12        .attr("selected", "selected")
13        .text(autoRotateOptionText)
14        .appendTo('select[name="rotate_angle"]')
15      ;
16    }
17    else {
18      jQuery("#autoRotateOption").remove();
19    }
20  }
21
22  autoRotateOption();
23  jQuery('#rotate_hd').click(function() {
24    autoRotateOption();
25  });
26
27  jQuery('#applyAction').click(function(e) {
28    if (typeof(elements) != "undefined") {
29      return true;
30    }
31    if (jQuery('[name="selectAction"]').val() == 'rotateImg')
32    {
33      angle = jQuery('select[name="rotate_angle"]').val();
34      rotate_hd = jQuery("#rotate_hd").is(':checked');
35      e.stopPropagation();
36    }
37    else
38    {
39      return true;
40    }
41
42    jQuery('.bulkAction').hide();
43    jQuery('#regenerationText').html(rotateImagesMessage);
44    var maxRequests=1;
45
46    var queuedManager = jQuery.manageAjax.create('queued', {
47      queue: true, 
48      cacheResponse: false,
49      maxRequests: maxRequests
50    });
51
52    elements = Array();
53
54    if (jQuery('input[name=setSelected]').is(':checked')) {
55      elements = all_elements;
56    }
57    else {
58      jQuery('input[name="selection[]"]').filter(':checked').each(function() {
59        elements.push(jQuery(this).val());
60      });
61    }
62
63    progressBar_max = elements.length;
64    todo = 0;
65
66    jQuery('#applyActionBlock').hide();
67    jQuery('select[name="selectAction"]').hide();
68    jQuery('#regenerationMsg').show();
69    jQuery('#progressBar').progressBar(0, {
70      max: progressBar_max,
71      textFormat: 'fraction',
72      boxImage: 'themes/default/images/progressbar.gif',
73      barImage: 'themes/default/images/progressbg_orange.gif'
74    });
75
76    for (i=0;i<elements.length;i++) {
77      queuedManager.add({
78        type: 'GET',
79        url: 'ws.php',
80        data: {
81          method: "pwg.image.rotate",
82          format: 'json',
83          angle: angle,
84          rotate_hd: rotate_hd,
85          pwg_token: ri_pwg_token,
86          image_id: elements[i]
87        },
88        dataType: 'json',
89        success: ( function(data) { progressRotate(++todo, progressBar_max, data['result']) }),
90        error: ( function(data) { progressRotate(++todo, progressBar_max, false) })
91      });
92    }
93    return false;
94  });
95
96  function progressRotate(val, max, success) {
97    jQuery('#progressBar').progressBar(val, {
98      max: max,
99      textFormat: 'fraction',
100      boxImage: 'themes/default/images/progressbar.gif',
101      barImage: 'themes/default/images/progressbg_orange.gif'
102    });
103    type = success ? 'regenerateSuccess': 'regenerateError'
104    s = jQuery('[name="'+type+'"]').val();
105    jQuery('[name="'+type+'"]').val(++s);
106
107    if (val == max)
108      jQuery('#applyAction').click();
109  }
110
111});
112{/literal}{/footer_script}
113
114<div id="rotate_image" class="bulkAction">
115{if $library != 'gd'}
116  <p><label>
117    <input type="checkbox" name="rotate_hd" id="rotate_hd" checked="checked">
118    <strong>{'Also rotate HD image'|@translate}</strong>
119  </label></p>
120{/if}
121  <p><label>
122    <strong>{'Angle'|@translate}</strong>
123    <br>
124    <select name="rotate_angle">
125{foreach from=$angles item=angle}
126      <option value="{$angle.value}" {if $saved_angle eq $angle.value}selected="selected"{/if}>{$angle.name}</option>
127{/foreach}
128    </select>
129  </label></p>
130</div>
Note: See TracBrowser for help on using the repository browser.