source: extensions/GDThumb/js/gdthumb.admin.js @ 31987

Last change on this file since 31987 was 30225, checked in by SergeD, 10 years ago

GDThumb 1.0.12

File size: 3.2 KB
Line 
1(function($) {
2
3  jQuery('input[name^="cache"]').tipTip({'delay' : 0, 'fadeIn' : 200, 'fadeOut' : 200});
4  $('div.infos').delay(4000).slideUp('slow', function() { $('div.infos').hide(); });
5
6  var loader = new ImageLoader( {onChanged: loaderChanged, maxRequests:1 } )
7    , pending_next_page = null
8    , last_image_show_time = 0
9    , allDoneDfd, urlDfd;
10
11  jQuery.gdThumb_start = function () {
12
13    allDoneDfd = jQuery.Deferred();
14    urlDfd = jQuery.Deferred();
15
16    allDoneDfd.always( function() {
17      jQuery("#startLink").removeAttr('disabled').css("opacity", 1);
18      jQuery("#pauseLink,#stopLink").attr('disabled', true).css("opacity", 0.5);
19    });
20
21    urlDfd.always( function() {
22      if (loader.remaining()==0)
23        allDoneDfd.resolve();
24    });
25
26    setTimeout( function() {
27      jQuery('#generate_cache').show();
28      jQuery("#startLink").attr('disabled', true).css("opacity", 0.5);
29      jQuery("#pauseLink,#stopLink").removeAttr('disabled').css("opacity", 1);
30      },
31    0 );
32
33    loader.pause(false);
34    updateStats();
35    getUrls(0);
36
37  }
38
39  jQuery.gdThumb_pause = function () {
40    loader.pause( !loader.pause() );
41  }
42
43  jQuery.gdThumb_stop = function () {
44    loader.clear();
45    urlDfd.resolve();
46  }
47
48function getUrls(page_token) {
49  data = {prev_page: page_token, max_urls: 500, types: []};
50  jQuery.post( 'admin.php?page=plugin-GDThumb&getMissingDerivative=',
51    data, wsData, "json").fail( wsError );
52}
53
54function wsData(data) {
55  loader.add( data.urls );
56  if (data.next_page) {
57    if (loader.pause() || loader.remaining() > 100) {
58      pending_next_page = data.next_page;
59    }
60    else {
61      getUrls(data.next_page);
62    }
63  }
64}
65
66function wsError() {
67  urlDfd.reject();
68}
69
70function updateStats() {
71  jQuery("#loaded").text( loader.loaded );
72  jQuery("#errors").text( loader.errors );
73  jQuery("#remaining").text( loader.remaining() );
74
75  if (loader.remaining() == 0) {
76    jQuery("#startLink").attr('disabled', false).css("opacity", 1);
77    jQuery("#pauseLink,#stopLink").attr('disabled', true).css("opacity", 0.5);
78  }
79}
80
81function loaderChanged(type, img) {
82  updateStats();
83  if (img) {
84    if (type==="load") {
85      var now = jQuery.now();
86      if (now - last_image_show_time > 3000) {
87        last_image_show_time = now;
88        var h=img.height, url=img.src;
89        jQuery("#feedbackWrap").hide("slide", {direction:'down'}, function() {
90          last_image_show_time = jQuery.now();
91          if (h > 300 )
92            jQuery("#feedbackImg").attr("height", 300);
93          else
94            jQuery("#feedbackImg").removeAttr("height");
95          jQuery("#feedbackImg").attr("src", url);
96          jQuery("#feedbackWrap").show("slide", {direction:'up'} );
97          } );
98      }
99    }
100    else {
101      jQuery("#errorList").prepend( '<a href="'+img.src+'">'+img.src+'</a>' + "<br>");
102    }
103  }
104  if (pending_next_page && 100 > loader.remaining() ) {
105    getUrls(pending_next_page);
106    pending_next_page = null;
107  }
108  else if (loader.remaining() == 0 && jQuery.isFunction(urlDfd.isResolved) && (urlDfd.isResolved() || urlDfd.isRejected())) {
109    allDoneDfd.resolve();
110  }
111}
112
113})(jQuery);
Note: See TracBrowser for help on using the repository browser.