source: extensions/rotateImage/rotate_image.tpl @ 15555

Revision 13319, 3.2 KB checked in by plg, 8 years ago (diff)

new option to compute rotation angle from EXIF orientation tag

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 (elements.length != 0)
29    {
30      return true;
31    }
32    else if (jQuery('[name="selectAction"]').val() == 'rotateImg')
33    {
34      angle = jQuery('select[name="rotate_angle"]').val();
35      rotate_hd = jQuery("#rotate_hd").is(':checked');
36      e.stopPropagation();
37    }
38    else
39    {
40      return true;
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    if (jQuery('input[name="setSelected"]').attr('checked'))
52      elements = all_elements;
53    else
54      jQuery('input[name="selection[]"]').each(function() {
55        if (jQuery(this).attr('checked')) {
56          elements.push(jQuery(this).val());
57        }
58      });
59    progressBar_max = elements.length;
60    todo = 0;
61
62    jQuery('#applyActionBlock').hide();
63    jQuery('select[name="selectAction"]').hide();
64    jQuery('#regenerationMsg').show();
65    jQuery('#progressBar').progressBar(0, {
66      max: progressBar_max,
67      textFormat: 'fraction',
68      boxImage: 'themes/default/images/progressbar.gif',
69      barImage: 'themes/default/images/progressbg_orange.gif'
70    });
71
72    for (i=0;i<elements.length;i++) {
73      queuedManager.add({
74        type: 'GET',
75        url: 'ws.php',
76        data: {
77          method: "pwg.image.rotate",
78          format: 'json',
79          angle: angle,
80          rotate_hd: rotate_hd,
81          pwg_token: ri_pwg_token,
82          image_id: elements[i]
83        },
84        dataType: 'json',
85        success: ( function(data) { progress(++todo, progressBar_max, data['result']) }),
86        error: ( function(data) { progress(++todo, progressBar_max, false) })
87      });
88    }
89    return false;
90  });
91});
92{/literal}{/footer_script}
93
94<div id="rotate_image" class="bulkAction">
95{if $library != 'gd'}
96  <p><label>
97    <input type="checkbox" name="rotate_hd" id="rotate_hd" checked="checked">
98    <strong>{'Also rotate HD image'|@translate}</strong>
99  </label></p>
100{/if}
101  <p><label>
102    <strong>{'Angle'|@translate}</strong>
103    <br>
104    <select name="rotate_angle">
105{foreach from=$angles item=angle}
106      <option value="{$angle.value}" {if $saved_angle eq $angle.value}selected="selected"{/if}>{$angle.name}</option>
107{/foreach}
108    </select>
109  </label></p>
110</div>
Note: See TracBrowser for help on using the repository browser.