Browse Source

requestTimeout

pull/5334/head
Ruud 10 years ago
parent
commit
6195ba82ea
  1. 3
      Gruntfile.js
  2. 4
      couchpotato/core/_base/downloader/static/downloaders.js
  3. 14
      couchpotato/core/_base/updater/static/updater.js
  4. 12
      couchpotato/core/media/_base/search/static/search.js
  5. 12
      couchpotato/core/media/movie/_base/static/list.js
  6. 4
      couchpotato/core/media/movie/_base/static/manage.js
  7. 2
      couchpotato/core/media/movie/_base/static/movie.actions.js
  8. 12
      couchpotato/core/media/movie/_base/static/movie.js
  9. 6
      couchpotato/core/media/movie/_base/static/wanted.js
  10. 6
      couchpotato/core/media/movie/charts/static/charts.js
  11. 20
      couchpotato/core/notifications/core/static/notification.js
  12. 6
      couchpotato/core/plugins/category/static/category.js
  13. 6
      couchpotato/core/plugins/log/static/log.js
  14. 6
      couchpotato/core/plugins/profile/static/profile.js
  15. 6
      couchpotato/core/plugins/quality/static/quality.js
  16. 4
      couchpotato/core/plugins/wizard/static/wizard.js
  17. 42
      couchpotato/static/scripts/combined.base.min.js
  18. 120
      couchpotato/static/scripts/combined.plugins.min.js
  19. 42
      couchpotato/static/scripts/combined.vendor.min.js
  20. 20
      couchpotato/static/scripts/couchpotato.js
  21. 2
      couchpotato/static/scripts/library/question.js
  22. 6
      couchpotato/static/scripts/page.js
  23. 14
      couchpotato/static/scripts/page/settings.js
  24. 100
      couchpotato/static/scripts/vendor/requestAnimationFrame.js
  25. 10
      couchpotato/templates/index.html

3
Gruntfile.js

@ -23,7 +23,8 @@ module.exports = function(grunt){
'couchpotato/static/scripts/vendor/Array.stableSort.js',
'couchpotato/static/scripts/vendor/history.js',
'couchpotato/static/scripts/vendor/dynamics.js',
'couchpotato/static/scripts/vendor/fastclick.js'
'couchpotato/static/scripts/vendor/fastclick.js',
'couchpotato/static/scripts/vendor/requestAnimationFrame.js'
];
var scripts_files = [

4
couchpotato/core/_base/downloader/static/downloaders.js

@ -54,9 +54,9 @@ var DownloadersBase = new Class({
}).inject(button, 'after');
}
(function(){
requestTimeout(function(){
message.destroy();
}).delay(3000);
}, 3000);
}
});
}

14
couchpotato/core/_base/updater/static/updater.js

@ -8,7 +8,7 @@ var UpdaterBase = new Class({
App.addEvent('load', self.info.bind(self, 2000));
App.addEvent('unload', function(){
if(self.timer)
clearTimeout(self.timer);
clearRequestTimeout(self.timer);
});
},
@ -34,9 +34,9 @@ var UpdaterBase = new Class({
info: function(timeout){
var self = this;
if(self.timer) clearTimeout(self.timer);
if(self.timer) clearRequestTimeout(self.timer);
self.timer = setTimeout(function(){
self.timer = requestTimeout(function(){
Api.request('updater.info', {
'onComplete': function(json){
self.json = json;
@ -102,9 +102,11 @@ var UpdaterBase = new Class({
},
updating: function(){
App.checkAvailable.delay(500, App, [1000, function(){
window.location.reload();
}]);
requestTimeout(function(){
App.checkAvailable(1000, function(){
window.location.reload();
});
}, 500);
if(self.message)
self.message.destroy();
}

12
couchpotato/core/media/_base/search/static/search.js

@ -37,15 +37,15 @@ var BlockSearch = new Class({
'change': self.keyup.bind(self),
'keyup': self.keyup.bind(self),
'focus': function(){
if(focus_timer) clearTimeout(focus_timer);
if(focus_timer) clearRequestTimeout(focus_timer);
if(this.get('value'))
self.hideResults(false);
},
'blur': function(){
focus_timer = (function(){
focus_timer = requestTimeout(function(){
self.el.removeClass('focused');
self.last_q = null;
}).delay(100);
}, 100);
}
}
})
@ -127,8 +127,8 @@ var BlockSearch = new Class({
if(self.api_request && self.api_request.isRunning())
self.api_request.cancel();
if(self.autocomplete_timer) clearTimeout(self.autocomplete_timer);
self.autocomplete_timer = self.autocomplete.delay(300, self);
if(self.autocomplete_timer) clearRequestTimeout(self.autocomplete_timer);
self.autocomplete_timer = requestTimeout(self.autocomplete.bind(self), 300);
}
},
@ -152,7 +152,7 @@ var BlockSearch = new Class({
self.hideResults(false);
if(!cache){
setTimeout(function(){
requestTimeout(function(){
self.mask.addClass('show');
}, 10);

12
couchpotato/core/media/movie/_base/static/list.js

@ -546,8 +546,8 @@ var MovieList = new Class({
search: function(){
var self = this;
if(self.search_timer) clearTimeout(self.search_timer);
self.search_timer = (function(){
if(self.search_timer) clearRequestTimeout(self.search_timer);
self.search_timer = requestTimeout(function(){
var search_value = self.navigation_search_input.get('value');
if (search_value == self.last_search_value) return;
@ -560,7 +560,7 @@ var MovieList = new Class({
self.last_search_value = search_value;
}).delay(250);
}, 250);
},
@ -588,7 +588,7 @@ var MovieList = new Class({
createSpinner(self.loader_first);
var lfc = self.loader_first;
loader_timeout = setTimeout(function(){
loader_timeout = requestTimeout(function(){
lfc.addClass('show');
}, 10);
@ -607,13 +607,13 @@ var MovieList = new Class({
if(reset)
self.movie_list.empty();
if(loader_timeout) clearTimeout(loader_timeout);
if(loader_timeout) clearRequestTimeout(loader_timeout);
if(self.loader_first){
var lf = self.loader_first;
self.loader_first = null;
lf.removeClass('show');
setTimeout(function(){
requestTimeout(function(){
lf.destroy();
}, 1000);
self.el.setStyle('min-height', null);

4
couchpotato/core/media/movie/_base/static/manage.js

@ -84,7 +84,7 @@ var MoviesManage = new Class({
startProgressInterval: function(){
var self = this;
self.progress_interval = setInterval(function(){
self.progress_interval = requestInterval(function(){
if(self.progress_request && self.progress_request.running)
return;
@ -94,7 +94,7 @@ var MoviesManage = new Class({
'onComplete': function(json){
if(!json || !json.progress){
clearInterval(self.progress_interval);
clearRequestInterval(self.progress_interval);
self.update_in_progress = false;
if(self.progress_container){
self.progress_container.destroy();

2
couchpotato/core/media/movie/_base/static/movie.actions.js

@ -392,7 +392,7 @@ MA.Trailer = new Class({
self.background = new Element('div.background')
);
setTimeout(function(){
requestTimeout(function(){
var url = data_url.substitute({
'title': encodeURI(self.getTitle()),

12
couchpotato/core/media/movie/_base/static/movie.js

@ -57,7 +57,7 @@ var Movie = new Class({
App.getPageContainer().grab(self.details);
self.details.open.delay(10, self.details);
requestTimeout(self.details.open.bind(self.details), 10);
},
addEvents: function(){
@ -70,7 +70,9 @@ var Movie = new Class({
if(self.data._id != notification.data._id) return;
self.busy(false);
self.update.delay(2000, self, notification);
requestTimeout(function(){
self.update(notification);
}, 2000);
};
App.on('movie.update', self.global_events['movie.update']);
@ -137,10 +139,10 @@ var Movie = new Class({
var self = this;
if(!set_busy){
setTimeout(function(){
requestTimeout(function(){
if(self.spinner){
self.mask.fade('out');
setTimeout(function(){
requestTimeout(function(){
if(self.mask)
self.mask.destroy();
if(self.spinner)
@ -311,7 +313,7 @@ var Movie = new Class({
if(self.list.current_view == 'thumb'){
self.el.addClass('hover_start');
setTimeout(function(){
requestTimeout(function(){
self.el.removeClass('hover_start');
}, 300);

6
couchpotato/core/media/movie/_base/static/wanted.js

@ -45,7 +45,7 @@ var MoviesWanted = new Class({
$(self.list).inject(self.content);
// Check if search is in progress
self.startProgressInterval.delay(4000, self);
requestTimeout(self.startProgressInterval.bind(self), 4000);
}
},
@ -66,13 +66,13 @@ var MoviesWanted = new Class({
var self = this;
var start_text = self.manual_search.get('text');
self.progress_interval = setInterval(function(){
self.progress_interval = requestInterval(function(){
if(self.search_progress && self.search_progress.running) return;
self.search_progress = Api.request('movie.searcher.progress', {
'onComplete': function(json){
self.search_in_progress = true;
if(!json.movie){
clearInterval(self.progress_interval);
clearRequestInterval(self.progress_interval);
self.search_in_progress = false;
self.manual_search.set('text', start_text);
}

6
couchpotato/core/media/movie/charts/static/charts.js

@ -23,8 +23,10 @@ var Charts = new Class({
);
self.show();
self.fireEvent.delay(0, self, 'created');
requestTimeout(function(){
self.fireEvent('created');
}, 0);
},
fill: function(json){
@ -74,7 +76,7 @@ var Charts = new Class({
self.el.show();
if(!self.shown_once){
setTimeout(function(){
requestTimeout(function(){
self.api_request = Api.request('charts.view', {
'onComplete': self.fill.bind(self)
});

20
couchpotato/core/notifications/core/static/notification.js

@ -31,7 +31,9 @@ var NotificationBase = new Class({
});
window.addEvent('load', function(){
self.startInterval.delay($(window).getSize().x <= 480 ? 2000 : 100, self);
requestTimeout(function(){
self.startInterval($(window).getSize().x <= 480 ? 2000 : 100);
}, 0);
});
},
@ -107,7 +109,7 @@ var NotificationBase = new Class({
}
}).send();
setInterval(function(){
requestInterval(function(){
if(self.request && self.request.isRunning()){
self.request.cancel();
@ -135,7 +137,7 @@ var NotificationBase = new Class({
'last_id': self.last_id
},
'onFailure': function(){
self.startPoll.delay(2000, self);
requestTimeout(self.startPoll.bind(self), 2000);
}
}).send();
@ -163,7 +165,7 @@ var NotificationBase = new Class({
}
// Restart poll
self.startPoll.delay(1500, self);
requestTimeout(self.startPoll.bind(self), 1500);
},
showMessage: function(message, sticky, data){
@ -177,13 +179,13 @@ var NotificationBase = new Class({
'html': '<div class="inner">' + message + '</div>'
}).inject(self.message_container, 'top');
setTimeout(function(){
requestTimeout(function(){
new_message.addClass('show');
}, 10);
var hide_message = function(){
new_message.addClass('hide');
setTimeout(function(){
requestTimeout(function(){
new_message.destroy();
}, 1000);
};
@ -200,7 +202,7 @@ var NotificationBase = new Class({
})
);
else
setTimeout(hide_message, 4000);
requestTimeout(hide_message, 4000);
},
@ -246,9 +248,9 @@ var NotificationBase = new Class({
}).inject(button, 'after');
}
(function(){
requestTimeout(function(){
message.destroy();
}).delay(3000);
}, 3000);
}
});
}

6
couchpotato/core/plugins/category/static/category.js

@ -232,8 +232,8 @@ var Category = new Class({
save: function(delay){
var self = this;
if(self.save_timer) clearTimeout(self.save_timer);
self.save_timer = (function(){
if(self.save_timer) clearRequestTimeout(self.save_timer);
self.save_timer = requestTimeout(function(){
Api.request('category.save', {
'data': self.getData(),
@ -248,7 +248,7 @@ var Category = new Class({
}
});
}).delay(delay || 0, self);
}, delay || 0);
},

6
couchpotato/core/plugins/log/static/log.js

@ -39,7 +39,9 @@ Page.Log = new Class({
'text': 'loading...',
'events': {
'mouseup:relay(.time)': function(e){
self.showSelectionButton.delay(100, self, e);
requestTimeout(function(){
self.showSelectionButton(2);
}, 100);
}
}
}).inject(self.content);
@ -211,7 +213,7 @@ Page.Log = new Class({
}
}).inject(document.body);
setTimeout(function(){
requestTimeout(function(){
document.body.addEvent('click', remove_button);
}, 0);

6
couchpotato/core/plugins/profile/static/profile.js

@ -96,8 +96,8 @@ var Profile = new Class({
save: function(delay){
var self = this;
if(self.save_timer) clearTimeout(self.save_timer);
self.save_timer = (function(){
if(self.save_timer) clearRequestTimeout(self.save_timer);
self.save_timer = requestTimeout(function(){
self.addType();
@ -123,7 +123,7 @@ var Profile = new Class({
}
});
}).delay(delay, self);
}, delay);
},

6
couchpotato/core/plugins/quality/static/quality.js

@ -221,9 +221,9 @@ var QualityBase = new Class({
changeSize: function(identifier, type, value){
var self = this;
if(self.size_timer[identifier + type]) clearTimeout(self.size_timer[identifier + type]);
if(self.size_timer[identifier + type]) clearRequestTimeout(self.size_timer[identifier + type]);
self.size_timer[identifier + type] = (function(){
self.size_timer[identifier + type] = requestTimeout(function(){
Api.request('quality.size.save', {
'data': {
'identifier': identifier,
@ -231,7 +231,7 @@ var QualityBase = new Class({
'value': value
}
});
}).delay(300);
}, 300);
}

4
couchpotato/core/plugins/wizard/static/wizard.js

@ -102,10 +102,10 @@ Page.Wizard = new Class({
});
}
else
(function(){
requestTimeout(function(){
var sc = self.el.getElement('.wgroup_'+action);
self.scroll.start(0, sc.getCoordinates().top-80);
}).delay(1);
}, 1);
},
orderGroups: function(){

42
couchpotato/static/scripts/combined.base.min.js

@ -39,7 +39,7 @@ var Question = new Class({
}), hint = this.hint ? new Element("div.hint", {
html: this.hint
}) : null)).inject(document.body);
setTimeout(function() {
requestTimeout(function() {
self.container.addClass("show");
self.inner.getElements("> *").each(function(el, nr) {
dynamics.css(el, {
@ -201,10 +201,10 @@ var CouchPotato = new Class({
}
});
ripple.inject(el);
setTimeout(function() {
requestTimeout(function() {
ripple.addClass("animate");
}, 0);
setTimeout(function() {
requestTimeout(function() {
ripple.dispose();
}, 2100);
},
@ -333,7 +333,7 @@ var CouchPotato = new Class({
click: function(e) {
e.preventDefault();
self.shutdown();
q.close.delay(100, q);
requestTimeout(q.close.bind(q), 100);
}
}
}, {
@ -356,7 +356,7 @@ var CouchPotato = new Class({
click: function(e) {
e.preventDefault();
self.restart(message, title);
q.close.delay(100, q);
requestTimeout(q.close.bind(q), 100);
}
}
}, {
@ -372,9 +372,11 @@ var CouchPotato = new Class({
},
checkAvailable: function(delay, onAvailable) {
var self = this;
(function() {
requestTimeout(function() {
var onFailure = function() {
self.checkAvailable.delay(1e3, self, [ delay, onAvailable ]);
requestTimeout(function() {
self.checkAvailable(delay, onAvailable);
}, 1e3);
self.fireEvent("unload");
};
var request = Api.request("app.available", {
@ -390,7 +392,7 @@ var CouchPotato = new Class({
self.fireEvent("reload");
}
});
}).delay(delay || 0);
}, delay || 0);
},
blockPage: function(message, title) {
var self = this;
@ -401,7 +403,7 @@ var CouchPotato = new Class({
text: message || "Something must have crashed.. check the logs ;)"
}))).inject(document.body);
createSpinner(self.mask);
setTimeout(function() {
requestTimeout(function() {
self.mask.addClass("show");
}, 10);
},
@ -460,7 +462,7 @@ var CouchPotato = new Class({
args = [];
}
self.global_events[name].each(function(handle) {
setTimeout(function() {
requestTimeout(function() {
var results = handle.apply(handle, args || []);
if (on_complete) on_complete(results);
}, 0);
@ -668,7 +670,7 @@ var PageBase = new Class({
class: "page " + self.getPageClass() + (" level_" + (options.level || 0))
}).grab(self.content = new Element("div.scroll_content"));
App.addEvent("load", function() {
setTimeout(function() {
requestTimeout(function() {
if (!App.mobile_screen && !App.getOption("dev")) {
self.content.addEvent("scroll", self.preventHover.bind(self));
}
@ -770,9 +772,9 @@ var PageBase = new Class({
},
preventHover: function() {
var self = this;
if (self.hover_timer) clearTimeout(self.hover_timer);
if (self.hover_timer) clearRequestTimeout(self.hover_timer);
self.el.addClass("disable_hover");
self.hover_timer = setTimeout(function() {
self.hover_timer = requestTimeout(function() {
self.el.removeClass("disable_hover");
}, 200);
},
@ -1238,7 +1240,7 @@ Page.Settings = new Class({
});
});
});
setTimeout(function() {
requestTimeout(function() {
self.el.grab(self.navigation);
self.content.adopt(self.tabs_container, self.containers);
self.fireEvent("create");
@ -1368,8 +1370,8 @@ var OptionBase = new Class({
var self = this;
if (self.getValue() != self.previous_value) {
if (self.save_on_change) {
if (self.changed_timer) clearTimeout(self.changed_timer);
self.changed_timer = self.save.delay(300, self);
if (self.changed_timer) clearRequestTimeout(self.changed_timer);
self.changed_timer = requestTimeout(self.save.bind(self), 300);
}
self.fireEvent("change");
}
@ -1394,9 +1396,9 @@ var OptionBase = new Class({
var sc = json.success ? "save_success" : "save_failed";
self.previous_value = self.getValue();
self.el.addClass(sc);
(function() {
requestTimeout(function() {
self.el.removeClass(sc);
}).delay(3e3, self);
}, 3e3);
},
setName: function(name) {
this.name = name;
@ -1859,7 +1861,7 @@ Option.Combined = new Class({
add_empty_timeout: 0,
addEmpty: function() {
var self = this;
if (self.add_empty_timeout) clearTimeout(self.add_empty_timeout);
if (self.add_empty_timeout) clearRequestTimeout(self.add_empty_timeout);
var has_empty = 0;
self.items.each(function(ctrl_holder) {
var empty_count = 0;
@ -1871,7 +1873,7 @@ Option.Combined = new Class({
ctrl_holder[empty_count == self.options.combine.length ? "addClass" : "removeClass"]("is_empty");
});
if (has_empty > 0) return;
self.add_empty_timeout = setTimeout(function() {
self.add_empty_timeout = requestTimeout(function() {
self.createItem({
use: true
});

120
couchpotato/static/scripts/combined.plugins.min.js

@ -35,9 +35,9 @@ var DownloadersBase = new Class({
text: msg_text
}).inject(button, "after");
}
(function() {
requestTimeout(function() {
message.destroy();
}).delay(3e3);
}, 3e3);
}
});
}
@ -58,7 +58,7 @@ var UpdaterBase = new Class({
var self = this;
App.addEvent("load", self.info.bind(self, 2e3));
App.addEvent("unload", function() {
if (self.timer) clearTimeout(self.timer);
if (self.timer) clearRequestTimeout(self.timer);
});
},
check: function(onComplete) {
@ -75,8 +75,8 @@ var UpdaterBase = new Class({
},
info: function(timeout) {
var self = this;
if (self.timer) clearTimeout(self.timer);
self.timer = setTimeout(function() {
if (self.timer) clearRequestTimeout(self.timer);
self.timer = requestTimeout(function() {
Api.request("updater.info", {
onComplete: function(json) {
self.json = json;
@ -121,9 +121,11 @@ var UpdaterBase = new Class({
});
},
updating: function() {
App.checkAvailable.delay(500, App, [ 1e3, function() {
window.location.reload();
} ]);
requestTimeout(function() {
App.checkAvailable(1e3, function() {
window.location.reload();
});
}, 500);
if (self.message) self.message.destroy();
}
});
@ -203,14 +205,14 @@ var BlockSearch = new Class({
change: self.keyup.bind(self),
keyup: self.keyup.bind(self),
focus: function() {
if (focus_timer) clearTimeout(focus_timer);
if (focus_timer) clearRequestTimeout(focus_timer);
if (this.get("value")) self.hideResults(false);
},
blur: function() {
focus_timer = function() {
focus_timer = requestTimeout(function() {
self.el.removeClass("focused");
self.last_q = null;
}.delay(100);
}, 100);
}
}
}))));
@ -265,8 +267,8 @@ var BlockSearch = new Class({
self.el[self.q() ? "addClass" : "removeClass"]("filled");
if (self.q() != self.last_q) {
if (self.api_request && self.api_request.isRunning()) self.api_request.cancel();
if (self.autocomplete_timer) clearTimeout(self.autocomplete_timer);
self.autocomplete_timer = self.autocomplete.delay(300, self);
if (self.autocomplete_timer) clearRequestTimeout(self.autocomplete_timer);
self.autocomplete_timer = requestTimeout(self.autocomplete.bind(self), 300);
}
},
autocomplete: function() {
@ -281,7 +283,7 @@ var BlockSearch = new Class({
var self = this, q = self.q(), cache = self.cache[q];
self.hideResults(false);
if (!cache) {
setTimeout(function() {
requestTimeout(function() {
self.mask.addClass("show");
}, 10);
if (!self.spinner) self.spinner = createSpinner(self.mask);
@ -789,8 +791,8 @@ var MovieList = new Class({
},
search: function() {
var self = this;
if (self.search_timer) clearTimeout(self.search_timer);
self.search_timer = function() {
if (self.search_timer) clearRequestTimeout(self.search_timer);
self.search_timer = requestTimeout(function() {
var search_value = self.navigation_search_input.get("value");
if (search_value == self.last_search_value) return;
self.reset();
@ -798,7 +800,7 @@ var MovieList = new Class({
self.filter.search = search_value;
self.getMovies(true);
self.last_search_value = search_value;
}.delay(250);
}, 250);
},
update: function() {
var self = this;
@ -818,7 +820,7 @@ var MovieList = new Class({
})).inject(self.el, "top");
createSpinner(self.loader_first);
var lfc = self.loader_first;
loader_timeout = setTimeout(function() {
loader_timeout = requestTimeout(function() {
lfc.addClass("show");
}, 10);
self.el.setStyle("min-height", 220);
@ -831,12 +833,12 @@ var MovieList = new Class({
}, self.filter),
onSuccess: function(json) {
if (reset) self.movie_list.empty();
if (loader_timeout) clearTimeout(loader_timeout);
if (loader_timeout) clearRequestTimeout(loader_timeout);
if (self.loader_first) {
var lf = self.loader_first;
self.loader_first = null;
lf.removeClass("show");
setTimeout(function() {
requestTimeout(function() {
lf.destroy();
}, 1e3);
self.el.setStyle("min-height", null);
@ -941,13 +943,13 @@ var MoviesManage = new Class({
},
startProgressInterval: function() {
var self = this;
self.progress_interval = setInterval(function() {
self.progress_interval = requestInterval(function() {
if (self.progress_request && self.progress_request.running) return;
self.update_in_progress = true;
self.progress_request = Api.request("manage.progress", {
onComplete: function(json) {
if (!json || !json.progress) {
clearInterval(self.progress_interval);
clearRequestInterval(self.progress_interval);
self.update_in_progress = false;
if (self.progress_container) {
self.progress_container.destroy();
@ -1267,7 +1269,7 @@ MA.Trailer = new Class({
click: self.watch.bind(self)
}
}).adopt(new Element('span[text="watch"]'), new Element('span[text="trailer"]')), self.background = new Element("div.background"));
setTimeout(function() {
requestTimeout(function() {
var url = data_url.substitute({
title: encodeURI(self.getTitle()),
year: self.get("year")
@ -1763,7 +1765,7 @@ var Movie = new Class({
});
}
App.getPageContainer().grab(self.details);
self.details.open.delay(10, self.details);
requestTimeout(self.details.open.bind(self.details), 10);
},
addEvents: function() {
var self = this;
@ -1771,7 +1773,9 @@ var Movie = new Class({
self.global_events["movie.update"] = function(notification) {
if (self.data._id != notification.data._id) return;
self.busy(false);
self.update.delay(2e3, self, notification);
requestTimeout(function() {
self.update(notification);
}, 2e3);
};
App.on("movie.update", self.global_events["movie.update"]);
[ "media.busy", "movie.searcher.started" ].each(function(listener) {
@ -1814,10 +1818,10 @@ var Movie = new Class({
busy: function(set_busy, timeout) {
var self = this;
if (!set_busy) {
setTimeout(function() {
requestTimeout(function() {
if (self.spinner) {
self.mask.fade("out");
setTimeout(function() {
requestTimeout(function() {
if (self.mask) self.mask.destroy();
if (self.spinner) self.spinner.destroy();
self.spinner = null;
@ -1925,7 +1929,7 @@ var Movie = new Class({
self.addActions();
if (self.list.current_view == "thumb") {
self.el.addClass("hover_start");
setTimeout(function() {
requestTimeout(function() {
self.el.removeClass("hover_start");
}, 300);
dynamics.css(self.inner, {
@ -2244,7 +2248,7 @@ var MoviesWanted = new Class({
}), App.createUserscriptButtons())
});
$(self.list).inject(self.content);
self.startProgressInterval.delay(4e3, self);
requestTimeout(self.startProgressInterval.bind(self), 4e3);
}
},
doFullSearch: function() {
@ -2257,13 +2261,13 @@ var MoviesWanted = new Class({
startProgressInterval: function() {
var self = this;
var start_text = self.manual_search.get("text");
self.progress_interval = setInterval(function() {
self.progress_interval = requestInterval(function() {
if (self.search_progress && self.search_progress.running) return;
self.search_progress = Api.request("movie.searcher.progress", {
onComplete: function(json) {
self.search_in_progress = true;
if (!json.movie) {
clearInterval(self.progress_interval);
clearRequestInterval(self.progress_interval);
self.search_in_progress = false;
self.manual_search.set("text", start_text);
} else {
@ -2327,7 +2331,9 @@ var Charts = new Class({
text: "Refreshing charts..."
})));
self.show();
self.fireEvent.delay(0, self, "created");
requestTimeout(function() {
self.fireEvent("created");
}, 0);
},
fill: function(json) {
var self = this;
@ -2361,7 +2367,7 @@ var Charts = new Class({
var self = this;
self.el.show();
if (!self.shown_once) {
setTimeout(function() {
requestTimeout(function() {
self.api_request = Api.request("charts.view", {
onComplete: self.fill.bind(self)
});
@ -2439,7 +2445,9 @@ var NotificationBase = new Class({
self.badge = new Element("div.badge").inject(App.block.notification, "top").hide();
});
window.addEvent("load", function() {
self.startInterval.delay($(window).getSize().x <= 480 ? 2e3 : 100, self);
requestTimeout(function() {
self.startInterval($(window).getSize().x <= 480 ? 2e3 : 100);
}, 0);
});
},
notify: function(result) {
@ -2501,7 +2509,7 @@ var NotificationBase = new Class({
self.processData(json, true);
}
}).send();
setInterval(function() {
requestInterval(function() {
if (self.request && self.request.isRunning()) {
self.request.cancel();
self.startPoll();
@ -2520,7 +2528,7 @@ var NotificationBase = new Class({
last_id: self.last_id
},
onFailure: function() {
self.startPoll.delay(2e3, self);
requestTimeout(self.startPoll.bind(self), 2e3);
}
}).send();
},
@ -2537,7 +2545,7 @@ var NotificationBase = new Class({
});
if (json.result.length > 0) self.last_id = json.result.getLast().message_id;
}
self.startPoll.delay(1500, self);
requestTimeout(self.startPoll.bind(self), 1500);
},
showMessage: function(message, sticky, data) {
var self = this;
@ -2546,12 +2554,12 @@ var NotificationBase = new Class({
class: "message" + (sticky ? " sticky" : ""),
html: '<div class="inner">' + message + "</div>"
}).inject(self.message_container, "top");
setTimeout(function() {
requestTimeout(function() {
new_message.addClass("show");
}, 10);
var hide_message = function() {
new_message.addClass("hide");
setTimeout(function() {
requestTimeout(function() {
new_message.destroy();
}, 1e3);
};
@ -2562,7 +2570,7 @@ var NotificationBase = new Class({
hide_message();
}
}
})); else setTimeout(hide_message, 4e3);
})); else requestTimeout(hide_message, 4e3);
},
addTestButtons: function() {
var self = this;
@ -2593,9 +2601,9 @@ var NotificationBase = new Class({
text: "Notification failed. Check logs for details."
}).inject(button, "after");
}
(function() {
requestTimeout(function() {
message.destroy();
}).delay(3e3);
}, 3e3);
}
});
}
@ -2818,8 +2826,8 @@ var Category = new Class({
},
save: function(delay) {
var self = this;
if (self.save_timer) clearTimeout(self.save_timer);
self.save_timer = function() {
if (self.save_timer) clearRequestTimeout(self.save_timer);
self.save_timer = requestTimeout(function() {
Api.request("category.save", {
data: self.getData(),
useSpinner: true,
@ -2832,7 +2840,7 @@ var Category = new Class({
}
}
});
}.delay(delay || 0, self);
}, delay || 0);
},
getData: function() {
var self = this;
@ -2919,7 +2927,9 @@ Page.Log = new Class({
text: "loading...",
events: {
"mouseup:relay(.time)": function(e) {
self.showSelectionButton.delay(100, self, e);
requestTimeout(function() {
self.showSelectionButton(2);
}, 100);
}
}
}).inject(self.content);
@ -3054,7 +3064,7 @@ Page.Log = new Class({
}
}
}).inject(document.body);
setTimeout(function() {
requestTimeout(function() {
document.body.addEvent("click", remove_button);
}, 0);
},
@ -3179,8 +3189,8 @@ var Profile = new Class({
},
save: function(delay) {
var self = this;
if (self.save_timer) clearTimeout(self.save_timer);
self.save_timer = function() {
if (self.save_timer) clearRequestTimeout(self.save_timer);
self.save_timer = requestTimeout(function() {
self.addType();
var data = self.getData();
if (data.types.length < 2) return; else self.delete_button.show();
@ -3197,7 +3207,7 @@ var Profile = new Class({
}
}
});
}.delay(delay, self);
}, delay);
},
getData: function() {
var self = this;
@ -3541,8 +3551,8 @@ var QualityBase = new Class({
size_timer: {},
changeSize: function(identifier, type, value) {
var self = this;
if (self.size_timer[identifier + type]) clearTimeout(self.size_timer[identifier + type]);
self.size_timer[identifier + type] = function() {
if (self.size_timer[identifier + type]) clearRequestTimeout(self.size_timer[identifier + type]);
self.size_timer[identifier + type] = requestTimeout(function() {
Api.request("quality.size.save", {
data: {
identifier: identifier,
@ -3550,7 +3560,7 @@ var QualityBase = new Class({
value: value
}
});
}.delay(300);
}, 300);
}
});
@ -3731,10 +3741,10 @@ Page.Wizard = new Class({
self.scroll = new Fx.Scroll(document.body, {
transition: "quint:in:out"
});
} else (function() {
} else requestTimeout(function() {
var sc = self.el.getElement(".wgroup_" + action);
self.scroll.start(0, sc.getCoordinates().top - 80);
}).delay(1);
}, 1);
},
orderGroups: function() {
var self = this;

42
couchpotato/static/scripts/combined.vendor.min.js

@ -9027,4 +9027,44 @@ History.handleInitialState = function(base) {
} else {
window.FastClick = FastClick;
}
})();
})();
window.requestAnimFrame = function() {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback, element) {
window.setTimeout(callback, 1e3 / 60);
};
}();
window.requestInterval = function(fn, delay) {
if (!window.requestAnimationFrame && !window.webkitRequestAnimationFrame && !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && !window.oRequestAnimationFrame && !window.msRequestAnimationFrame) return window.setInterval(fn, delay);
var start = new Date().getTime(), handle = new Object();
function loop() {
var current = new Date().getTime(), delta = current - start;
if (delta >= delay) {
fn.call();
start = new Date().getTime();
}
handle.value = requestAnimFrame(loop);
}
handle.value = requestAnimFrame(loop);
return handle;
};
window.clearRequestInterval = function(handle) {
window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) : window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) : window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) : window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) : window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) : clearInterval(handle);
};
window.requestTimeout = function(fn, delay) {
if (!window.requestAnimationFrame && !window.webkitRequestAnimationFrame && !(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && !window.oRequestAnimationFrame && !window.msRequestAnimationFrame) return window.setTimeout(fn, delay);
var start = new Date().getTime(), handle = new Object();
function loop() {
var current = new Date().getTime(), delta = current - start;
delta >= delay ? fn.call() : handle.value = requestAnimFrame(loop);
}
handle.value = requestAnimFrame(loop);
return handle;
};
window.clearRequestTimeout = function(handle) {
window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) : window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) : window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) : window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) : window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) : clearTimeout(handle);
};

20
couchpotato/static/scripts/couchpotato.js

@ -69,8 +69,8 @@
ripple.inject(el);
setTimeout(function(){ ripple.addClass('animate'); }, 0);
setTimeout(function(){ ripple.dispose(); }, 2100);
requestTimeout(function(){ ripple.addClass('animate'); }, 0);
requestTimeout(function(){ ripple.dispose(); }, 2100);
},
getOption: function(name){
@ -264,7 +264,7 @@
'click': function(e){
(e).preventDefault();
self.shutdown();
q.close.delay(100, q);
requestTimeout(q.close.bind(q), 100);
}
}
}, {
@ -291,7 +291,7 @@
'click': function(e){
(e).preventDefault();
self.restart(message, title);
q.close.delay(100, q);
requestTimeout(q.close.bind(q), 100);
}
}
}, {
@ -312,10 +312,12 @@
checkAvailable: function(delay, onAvailable){
var self = this;
(function(){
requestTimeout(function(){
var onFailure = function(){
self.checkAvailable.delay(1000, self, [delay, onAvailable]);
requestTimeout(function(){
self.checkAvailable(delay, onAvailable);
}, 1000);
self.fireEvent('unload');
};
@ -334,7 +336,7 @@
}
});
}).delay(delay || 0);
}, delay || 0);
},
blockPage: function(message, title){
@ -351,7 +353,7 @@
createSpinner(self.mask);
setTimeout(function(){
requestTimeout(function(){
self.mask.addClass('show');
}, 10);
},
@ -449,7 +451,7 @@
// Create parallel callback
self.global_events[name].each(function(handle){
setTimeout(function(){
requestTimeout(function(){
var results = handle.apply(handle, args || []);
if(on_complete)

2
couchpotato/static/scripts/library/question.js

@ -29,7 +29,7 @@ var Question = new Class( {
)
).inject(document.body);
setTimeout(function(){
requestTimeout(function(){
self.container.addClass('show');
self.inner.getElements('> *').each(function(el, nr){

6
couchpotato/static/scripts/page.js

@ -29,7 +29,7 @@ var PageBase = new Class({
// Stop hover events while scrolling
App.addEvent('load', function(){
setTimeout(function(){
requestTimeout(function(){
if(!App.mobile_screen && !App.getOption('dev')){
self.content.addEvent('scroll', self.preventHover.bind(self));
}
@ -165,10 +165,10 @@ var PageBase = new Class({
preventHover: function(){
var self = this;
if(self.hover_timer) clearTimeout(self.hover_timer);
if(self.hover_timer) clearRequestTimeout(self.hover_timer);
self.el.addClass('disable_hover');
self.hover_timer = setTimeout(function(){
self.hover_timer = requestTimeout(function(){
self.el.removeClass('disable_hover');
}, 200);
},

14
couchpotato/static/scripts/page/settings.js

@ -208,7 +208,7 @@ Page.Settings = new Class({
});
});
setTimeout(function(){
requestTimeout(function(){
self.el.grab(
self.navigation
);
@ -408,8 +408,8 @@ var OptionBase = new Class({
if(self.getValue() != self.previous_value){
if(self.save_on_change){
if(self.changed_timer) clearTimeout(self.changed_timer);
self.changed_timer = self.save.delay(300, self);
if(self.changed_timer) clearRequestTimeout(self.changed_timer);
self.changed_timer = requestTimeout(self.save.bind(self), 300);
}
self.fireEvent('change');
}
@ -442,9 +442,9 @@ var OptionBase = new Class({
self.previous_value = self.getValue();
self.el.addClass(sc);
(function(){
requestTimeout(function(){
self.el.removeClass(sc);
}).delay(3000, self);
}, 3000);
},
setName: function(name){
@ -1132,7 +1132,7 @@ Option.Combined = new Class({
addEmpty: function(){
var self = this;
if(self.add_empty_timeout) clearTimeout(self.add_empty_timeout);
if(self.add_empty_timeout) clearRequestTimeout(self.add_empty_timeout);
var has_empty = 0;
self.items.each(function(ctrl_holder){
@ -1147,7 +1147,7 @@ Option.Combined = new Class({
});
if(has_empty > 0) return;
self.add_empty_timeout = setTimeout(function(){
self.add_empty_timeout = requestTimeout(function(){
self.createItem({'use': true});
}, 10);
},

100
couchpotato/static/scripts/vendor/requestAnimationFrame.js

@ -0,0 +1,100 @@
// requestAnimationFrame() shim by Paul Irish
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
window.requestAnimFrame = (function() {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(/* function */ callback, /* DOMElement */ element){
window.setTimeout(callback, 1000 / 60);
};
})();
/**
* Behaves the same as setInterval except uses requestAnimationFrame() where possible for better performance
* @param {function} fn The callback function
* @param {int} delay The delay in milliseconds
*/
window.requestInterval = function(fn, delay) {
if( !window.requestAnimationFrame &&
!window.webkitRequestAnimationFrame &&
!(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
!window.oRequestAnimationFrame &&
!window.msRequestAnimationFrame)
return window.setInterval(fn, delay);
var start = new Date().getTime(),
handle = new Object();
function loop() {
var current = new Date().getTime(),
delta = current - start;
if(delta >= delay) {
fn.call();
start = new Date().getTime();
}
handle.value = requestAnimFrame(loop);
};
handle.value = requestAnimFrame(loop);
return handle;
}
/**
* Behaves the same as clearInterval except uses cancelRequestAnimationFrame() where possible for better performance
* @param {int|object} fn The callback function
*/
window.clearRequestInterval = function(handle) {
window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) :
window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) :
window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) :
window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) :
window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) :
clearInterval(handle);
};
/**
* Behaves the same as setTimeout except uses requestAnimationFrame() where possible for better performance
* @param {function} fn The callback function
* @param {int} delay The delay in milliseconds
*/
window.requestTimeout = function(fn, delay) {
if( !window.requestAnimationFrame &&
!window.webkitRequestAnimationFrame &&
!(window.mozRequestAnimationFrame && window.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
!window.oRequestAnimationFrame &&
!window.msRequestAnimationFrame)
return window.setTimeout(fn, delay);
var start = new Date().getTime(),
handle = new Object();
function loop(){
var current = new Date().getTime(),
delta = current - start;
delta >= delay ? fn.call() : handle.value = requestAnimFrame(loop);
};
handle.value = requestAnimFrame(loop);
return handle;
};
/**
* Behaves the same as clearTimeout except uses cancelRequestAnimationFrame() where possible for better performance
* @param {int|object} fn The callback function
*/
window.clearRequestTimeout = function(handle) {
window.cancelAnimationFrame ? window.cancelAnimationFrame(handle.value) :
window.webkitCancelAnimationFrame ? window.webkitCancelAnimationFrame(handle.value) :
window.webkitCancelRequestAnimationFrame ? window.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
window.mozCancelRequestAnimationFrame ? window.mozCancelRequestAnimationFrame(handle.value) :
window.oCancelRequestAnimationFrame ? window.oCancelRequestAnimationFrame(handle.value) :
window.msCancelRequestAnimationFrame ? window.msCancelRequestAnimationFrame(handle.value) :
clearTimeout(handle);
};

10
couchpotato/templates/index.html

@ -22,16 +22,6 @@
<script type="text/javascript">
window.addEvent('load', function(){
if(window.getSize().x <= 480)
setTimeout(function(){
window.scrollTo(0, 1);
window.scrollTo(0, 0);
}, 100);
});
window.addEvent('domready', function() {
new Uniform();

Loading…
Cancel
Save