forked from leftypol/leftypol
Add random theme. Like Ukko, but sorts threads randomly.
This commit is contained in:
parent
e8737b23d5
commit
9c091aaa47
4 changed files with 274 additions and 0 deletions
116
templates/themes/rand/rand.js
Normal file
116
templates/themes/rand/rand.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
(function(){
|
||||
|
||||
var cache = new Array(),
|
||||
thread = false,
|
||||
loading = false,
|
||||
ukkotimer = false;
|
||||
|
||||
if (localStorage.hiddenboards === undefined) {
|
||||
localStorage.hiddenboards = "{}";
|
||||
}
|
||||
|
||||
// Load data from HTML5 localStorage
|
||||
var hiddenboards = JSON.parse(localStorage.hiddenboards);
|
||||
|
||||
var storeboards = function() {
|
||||
localStorage.hiddenboards = JSON.stringify(hiddenboards);
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
var addukkohide = function() {
|
||||
var ukkohide = $('<a href="javascript:void(0);" class="unimportant ukkohide"></a>');
|
||||
var board = $(this).next().data("board");
|
||||
var hr = $("<hr />");
|
||||
|
||||
$(this).append(ukkohide);
|
||||
$(this).append(hr);
|
||||
|
||||
if (hiddenboards[board] !== true) {
|
||||
ukkohide.html(_("(hide threads from this board)"));
|
||||
hr.hide();
|
||||
}
|
||||
else {
|
||||
ukkohide.html(_("(show threads from this board)"));
|
||||
$(this).next().hide();
|
||||
}
|
||||
ukkohide.click(function() {
|
||||
hiddenboards[board] = (hiddenboards[board] !== true);
|
||||
if (hiddenboards[board] !== true) {
|
||||
$('[data-board="'+board+'"]:not([data-cached="yes"])').show().prev().
|
||||
find('.ukkohide').html(_("(hide threads from this board)")).
|
||||
parent().find('hr').hide();
|
||||
}
|
||||
else {
|
||||
$('[data-board="'+board+'"]:not([data-cached="yes"])').hide().prev().
|
||||
find('.ukkohide').html(_("(show threads from this board)"))
|
||||
.parent().find('hr').show();
|
||||
}
|
||||
storeboards();
|
||||
return false;
|
||||
});
|
||||
|
||||
};
|
||||
$("h2").each(addukkohide);
|
||||
|
||||
$('.pages').hide();
|
||||
var loadnext = function() {
|
||||
if (overflow.length == 0) {
|
||||
$('.pages').show().html(_("No more threads to display"));
|
||||
}
|
||||
while($(window).scrollTop() + $(window).height() + 1000 > $(document).height() && !loading && overflow.length > 0) {
|
||||
var page = modRoot + overflow[0].board + '/' + overflow[0].page;
|
||||
thread = $('div#thread_' + overflow[0].id + '[data-board="' + overflow[0].board + '"]');
|
||||
if (thread.length > 0 && thread.attr("data-cached") !== 'yes') { // already present
|
||||
overflow.shift();
|
||||
continue;
|
||||
}
|
||||
|
||||
var boardheader = $('<h2><a href="/' + overflow[0].board + '/">/' + overflow[0].board + '/</a> </h2>');
|
||||
|
||||
if($.inArray(page, cache) != -1) {
|
||||
if (thread.length > 0) {
|
||||
$('div[id*="thread_"]').last().after(thread.attr('data-board', overflow[0].board).attr("data-cached", "no").css('display', 'block'));
|
||||
boardheader.insertBefore(thread);
|
||||
addukkohide.call(boardheader);
|
||||
$(document).trigger('new_post', thread);
|
||||
}
|
||||
overflow.shift();
|
||||
} else {
|
||||
loading = true;
|
||||
$('.pages').show().html(_("Loading..."));
|
||||
$.get(page, function(data) {
|
||||
cache.push(page);
|
||||
|
||||
$(data).find('div[id*="thread_"]').each(function() {
|
||||
var checkout = $(this).attr('id').replace('thread_', '');
|
||||
if ($('div#thread_' + checkout + '[data-board="' + overflow[0].board + '"]').length == 0) {
|
||||
$('form[name="postcontrols"]').prepend($(this).css('display', 'none').attr("data-cached", "yes").attr('data-board', overflow[0].board));
|
||||
}
|
||||
});
|
||||
|
||||
thread = $('div#thread_' + overflow[0].id + '[data-board="' + overflow[0].board + '"][data-cached="yes"]');
|
||||
|
||||
if(thread.length > 0) {
|
||||
$('div[id*="thread_"]').last().after(thread.attr('data-board', overflow[0].board).attr("data-cached", "no").css('display', 'block'));
|
||||
boardheader.insertBefore(thread);
|
||||
addukkohide.call(boardheader);
|
||||
$(document).trigger('new_post', thread);
|
||||
}
|
||||
overflow.shift();
|
||||
|
||||
loading = false;
|
||||
$('.pages').hide().html("");
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
clearTimeout(ukkotimer);
|
||||
ukkotimer = setTimeout(loadnext, 1000);
|
||||
};
|
||||
|
||||
$(window).on('scroll', loadnext);
|
||||
|
||||
ukkotimer = setTimeout(loadnext, 1000);
|
||||
});
|
||||
|
||||
})();
|
Loading…
Add table
Add a link
Reference in a new issue