forked from leftypol/leftypol
Merge branch 'master' of github.com:vichan-devel/Tinyboard
Conflicts: js/post-hider.js
This commit is contained in:
commit
a84c4510fc
252 changed files with 22377 additions and 4883 deletions
20
js/expand.js
20
js/expand.js
|
@ -3,7 +3,7 @@
|
|||
* https://github.com/savetheinternet/Tinyboard/blob/master/js/expand.js
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
|
||||
* Copyright (c) 2012-2013 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
|
@ -14,8 +14,8 @@
|
|||
$(document).ready(function(){
|
||||
if($('div.banner').length != 0)
|
||||
return; // not index
|
||||
|
||||
$('div.post.op span.omitted').each(function() {
|
||||
|
||||
var do_expand = function() {
|
||||
$(this)
|
||||
.html($(this).text().replace(_("Click reply to view."), '<a href="javascript:void(0)">'+_("Click to expand")+'</a>.'))
|
||||
.find('a').click(function() {
|
||||
|
@ -27,15 +27,17 @@ $(document).ready(function(){
|
|||
success: function(data) {
|
||||
var last_expanded = false;
|
||||
$(data).find('div.post.reply').each(function() {
|
||||
if($('#' + $(this).attr('id')).length == 0) {
|
||||
var post_in_doc = thread.find('#' + $(this).attr('id'));
|
||||
if(post_in_doc.length == 0) {
|
||||
if(last_expanded) {
|
||||
$(this).addClass('expanded').insertAfter(last_expanded).before('<br class="expanded">');
|
||||
} else {
|
||||
$(this).addClass('expanded').insertAfter(thread.find('div.post:first')).after('<br class="expanded">');
|
||||
}
|
||||
last_expanded = $(this);
|
||||
|
||||
$(document).trigger('new_post', this);
|
||||
} else {
|
||||
last_expanded = post_in_doc;
|
||||
}
|
||||
});
|
||||
$('<span class="omitted"><a href="javascript:void(0)">' + _('Hide expanded replies') + '</a>.</span>')
|
||||
|
@ -48,5 +50,13 @@ $(document).ready(function(){
|
|||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
$('div.post.op span.omitted').each(do_expand);
|
||||
|
||||
$(document).bind("new_post", function(e, post) {
|
||||
if (!$(post).hasClass("reply")) {
|
||||
$(post).find('div.post.op span.omitted').each(do_expand);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
84
js/hide-images.js
Normal file
84
js/hide-images.js
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* hide-images.js
|
||||
* https://github.com/savetheinternet/Tinyboard/blob/master/js/hide-images.js
|
||||
*
|
||||
* Hide individual images.
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/hide-images.js';
|
||||
*
|
||||
*/
|
||||
|
||||
$(document).ready(function(){
|
||||
$('<style type="text/css"> img.hidden{ opacity: 0.1; background: grey; border: 1px solid #000; } </style>').appendTo($('head'));
|
||||
|
||||
var board = $('form input[name="board"]').val().toString();
|
||||
|
||||
if (!localStorage.hiddenimages)
|
||||
localStorage.hiddenimages = '{}';
|
||||
|
||||
// Load data from HTML5 localStorage
|
||||
var hidden_data = JSON.parse(localStorage.hiddenimages);
|
||||
|
||||
var store_data = function() {
|
||||
localStorage.hiddenimages = JSON.stringify(hidden_data);
|
||||
};
|
||||
|
||||
// Delete old hidden images (30+ days old)
|
||||
for (var key in hidden_data) {
|
||||
for (var id in hidden_data[key]) {
|
||||
if (hidden_data[key][id] < Math.round(Date.now() / 1000) - 60 * 60 * 24 * 30) {
|
||||
delete hidden_data[key][id];
|
||||
store_data();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!hidden_data[board]) {
|
||||
hidden_data[board] = {}; // id : timestamp
|
||||
}
|
||||
|
||||
$('div.post > a > img, div > a > img').each(function() {
|
||||
var img = this;
|
||||
var fileinfo = $(this).parent().prev();
|
||||
var id = $(this).parent().parent().find('>p.intro>a.post_no:eq(1),>div.post.op>p.intro>a.post_no:eq(1)').text();
|
||||
|
||||
var replacement = $('<span>'+_('File')+' <small>(<a class="hide-image-link" href="javascript:void(0)">'+_('hide')+'</a>)</small>: </span>');
|
||||
|
||||
replacement.find('a').click(function() {
|
||||
hidden_data[board][id] = Math.round(Date.now() / 1000);
|
||||
store_data();
|
||||
|
||||
var show_link = $('<a class="show-image-link" href="javascript:void(0)">'+_('show')+'</a>').click(function() {
|
||||
delete hidden_data[board][id];
|
||||
store_data();
|
||||
|
||||
$(img)
|
||||
.removeClass('hidden')
|
||||
.attr('src', $(img).data('orig'));
|
||||
$(this).prev().show();
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
$(this).hide().after(show_link);
|
||||
|
||||
if ($(img).parent()[0].dataset.expanded == 'true') {
|
||||
$(img).parent().click();
|
||||
}
|
||||
$(img)
|
||||
.data('orig', img.src)
|
||||
.attr('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')
|
||||
.addClass('hidden');
|
||||
});
|
||||
|
||||
$(this).parent().prev().contents().first().replaceWith(replacement);
|
||||
|
||||
if (hidden_data[board][id])
|
||||
$(this).parent().prev().find('.hide-image-link').click();
|
||||
|
||||
});
|
||||
});
|
83
js/hide-threads.js
Normal file
83
js/hide-threads.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* hide-threads.js
|
||||
* https://github.com/savetheinternet/Tinyboard/blob/master/js/hide-threads.js
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/hide-threads.js';
|
||||
*
|
||||
*/
|
||||
|
||||
$(document).ready(function(){
|
||||
if (active_page != "index" && active_page != "ukko")
|
||||
return; // not index
|
||||
|
||||
if (!localStorage.hiddenthreads)
|
||||
localStorage.hiddenthreads = '{}';
|
||||
|
||||
// Load data from HTML5 localStorage
|
||||
var hidden_data = JSON.parse(localStorage.hiddenthreads);
|
||||
|
||||
var store_data = function() {
|
||||
localStorage.hiddenthreads = JSON.stringify(hidden_data);
|
||||
};
|
||||
|
||||
// Delete old hidden threads (7+ days old)
|
||||
for (var key in hidden_data) {
|
||||
for (var id in hidden_data[key]) {
|
||||
if (hidden_data[key][id] < Math.round(Date.now() / 1000) - 60 * 60 * 24 * 7) {
|
||||
delete hidden_data[key][id];
|
||||
store_data();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var do_hide_threads = function() {
|
||||
var id = $(this).children('p.intro').children('a.post_no:eq(1)').text();
|
||||
var thread_container = $(this).parent();
|
||||
|
||||
var board = thread_container.data("board");
|
||||
|
||||
if (!hidden_data[board]) {
|
||||
hidden_data[board] = {}; // id : timestamp
|
||||
}
|
||||
|
||||
$('<a class="hide-thread-link" style="float:left;margin-right:5px" href="javascript:void(0)">[–]</a><span> </span>')
|
||||
.insertBefore(thread_container.find(':not(h2,h2 *):first'))
|
||||
.click(function() {
|
||||
hidden_data[board][id] = Math.round(Date.now() / 1000);
|
||||
store_data();
|
||||
|
||||
thread_container.find('div.post,img,p.fileinfo,a.hide-thread-link,br').hide();
|
||||
|
||||
var hidden_div = thread_container.find('div.post.op > p.intro').clone();
|
||||
hidden_div.addClass('thread-hidden');
|
||||
hidden_div.find('a[href]:not([href$=".html"]),input').remove();
|
||||
hidden_div.html(hidden_div.html().replace(' [] ', ' '));
|
||||
hidden_div.html(hidden_div.html().replace(' [] ', ' '));
|
||||
|
||||
$('<a class="unhide-thread-link" style="float:left;margin-right:5px;margin-left:0px;" href="javascript:void(0)">[+]</a><span> </span>')
|
||||
.insertBefore(hidden_div.find(':first'))
|
||||
.click(function() {
|
||||
delete hidden_data[board][id];
|
||||
store_data();
|
||||
thread_container.find('div.post,img,p.fileinfo,a.hide-thread-link,br').show();
|
||||
$(this).remove();
|
||||
hidden_div.remove();
|
||||
});
|
||||
|
||||
hidden_div.insertAfter(thread_container.find(':not(h2,h2 *):first'));
|
||||
});
|
||||
if (hidden_data[board][id])
|
||||
thread_container.find('.hide-thread-link').click();
|
||||
}
|
||||
|
||||
$('div.post.op').each(do_hide_threads);
|
||||
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
do_hide_threads.call($(post).find('div.post.op')[0]);
|
||||
});
|
||||
});
|
|
@ -1,12 +0,0 @@
|
|||
function ic_odswiezKapcze() {
|
||||
$.get(configRoot + "imgcaptcha_p.php", function(data) {
|
||||
$("#imgcaptcha_hash").val(data);
|
||||
$("#imgcaptcha_img").prop("src",configRoot + "imgcaptcha_im.php?cr=" + data);
|
||||
});
|
||||
}
|
||||
//function resetujKapcze() {
|
||||
// $("#imgcaptcha_img").prop("src",configRoot + "zakrytek.png");
|
||||
//}
|
||||
//$(document).ready(function(){
|
||||
// //resetujKapcze(); - to nie powinno byc na razie potrzebne
|
||||
//});
|
33
js/inline-expanding-filename.js
Normal file
33
js/inline-expanding-filename.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* inline-expanding-filename.js
|
||||
* Binds image filename link to expanding, to make kusaba x users somewhat more accustomed.
|
||||
* https://github.com/vichan-devel/Tinyboard/blob/master/js/inline-expanding.js
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2012-2013 Marcin Łabanowski <marcin@6irc.net>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/inline-expanding.js';
|
||||
* $config['additional_javascript'][] = 'js/inline-expanding-filename.js';
|
||||
*
|
||||
*/
|
||||
|
||||
onready(function(){
|
||||
var inline_expanding_filename = function() {
|
||||
$(this).find(".fileinfo > a").click(function(){
|
||||
var imagelink = $(this).parent().parent().find('a[target="_blank"]:first');
|
||||
if(imagelink.length > 0) {
|
||||
imagelink.click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$('div[id^="thread_"]').each(inline_expanding_filename);
|
||||
|
||||
// allow to work with auto-reload.js, etc.
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
inline_expanding_filename.call(post);
|
||||
});
|
||||
});
|
|
@ -3,10 +3,10 @@
|
|||
* https://github.com/savetheinternet/Tinyboard/blob/master/js/inline-expanding.js
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
|
||||
* Copyright (c) 2012-2013 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* // $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/inline-expanding.js';
|
||||
*
|
||||
*/
|
||||
|
@ -14,30 +14,40 @@
|
|||
onready(function(){
|
||||
var inline_expand_post = function() {
|
||||
var link = this.getElementsByTagName('a');
|
||||
|
||||
for(var i = 0; i < link.length; i++) {
|
||||
if(typeof link[i] == "object" && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].className != 'file') {
|
||||
|
||||
for (var i = 0; i < link.length; i++) {
|
||||
if (typeof link[i] == "object" && link[i].childNodes && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].className != 'file') {
|
||||
if (window.jQuery && !$(link).prev().hasClass('fileinfo')) {
|
||||
continue;
|
||||
}
|
||||
link[i].childNodes[0].style.maxWidth = '95%';
|
||||
link[i].onclick = function(e) {
|
||||
if(e.which == 2) {
|
||||
if (this.childNodes[0].className == 'hidden')
|
||||
return false;
|
||||
if (e.which == 2 || e.metaKey)
|
||||
return true;
|
||||
}
|
||||
if(!this.tag) {
|
||||
this.tag = this.childNodes[0].src;
|
||||
if (!this.dataset.src) {
|
||||
this.dataset.expanded = 'true';
|
||||
this.dataset.src= this.childNodes[0].src;
|
||||
this.dataset.width = this.childNodes[0].style.width;
|
||||
this.dataset.height = this.childNodes[0].style.height;
|
||||
this.childNodes[0].src = this.href;
|
||||
this.childNodes[0].style.width = 'auto';
|
||||
this.childNodes[0].style.height = 'auto';
|
||||
this.childNodes[0].style.opacity = '0.4';
|
||||
this.childNodes[0].style.filter = 'alpha(opacity=40)';
|
||||
this.childNodes[0].onload = function() {
|
||||
this.style.opacity = '1';
|
||||
this.style.filter = '';
|
||||
this.style.opacity = '';
|
||||
delete this.style.filter;
|
||||
}
|
||||
} else {
|
||||
this.childNodes[0].src = this.tag;
|
||||
this.childNodes[0].style.width = 'auto';
|
||||
this.childNodes[0].style.height = 'auto';
|
||||
this.tag = '';
|
||||
this.childNodes[0].src = this.dataset.src;
|
||||
this.childNodes[0].style.width = this.dataset.width;
|
||||
this.childNodes[0].style.height = this.dataset.height;
|
||||
delete this.dataset.expanded;
|
||||
delete this.dataset.src;
|
||||
delete this.childNodes[0].style.opacity;
|
||||
delete this.childNodes[0].style.filter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -45,11 +55,14 @@ onready(function(){
|
|||
}
|
||||
}
|
||||
|
||||
$('div[id^="thread_"]').each(inline_expand_post);
|
||||
|
||||
// allow to work with auto-reload.js, etc.
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
inline_expand_post.call(post);
|
||||
});
|
||||
});
|
||||
if (window.jQuery) {
|
||||
$('div[id^="thread_"]').each(inline_expand_post);
|
||||
|
||||
// allow to work with auto-reload.js, etc.
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
inline_expand_post.call(post);
|
||||
});
|
||||
} else {
|
||||
inline_expand_post.call(document);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* // $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/local-time.js';
|
||||
*
|
||||
*/
|
||||
|
@ -44,10 +44,12 @@ onready(function(){
|
|||
};
|
||||
|
||||
do_localtime(document);
|
||||
|
||||
// allow to work with auto-reload.js, etc.
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
do_localtime(post);
|
||||
});
|
||||
|
||||
if (window.jQuery) {
|
||||
// allow to work with auto-reload.js, etc.
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
do_localtime(post);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
function phGetCookieName(board, id) {
|
||||
return "ph_hide_" + board + "_" + id;
|
||||
}
|
||||
function phPostHidden(board, id) {
|
||||
return (localStorage.getItem(phGetCookieName(board, id)) != null);
|
||||
}
|
||||
function phPostToggle(board, id) {
|
||||
if(phPostHidden(board, id)) { localStorage.removeItem(phGetCookieName(board, id)); }
|
||||
else { localStorage.setItem(phGetCookieName(board, id),"yes"); }
|
||||
}
|
||||
function phGetInnerText(board, id) {
|
||||
if(phPostHidden(board, id)) { return "[+]"; }
|
||||
else { return "[–]"; }
|
||||
}
|
||||
function phGetOpID(element) {
|
||||
return Number(element.children("div.post.op").children("p.intro").children("a.post_no.p2").text());
|
||||
}
|
||||
function phGetOpBoard(element) {
|
||||
return element.data("board");
|
||||
}
|
||||
function phPostHandle(element) {
|
||||
var id = phGetOpID(element);
|
||||
var board = phGetOpBoard(element);
|
||||
var preplies = element.children("div.post.reply");
|
||||
var pbody = element.children("div.post.op").children("div.body");
|
||||
var pimage = element.children("a:first").children("img");
|
||||
var pbutton = element.children("div.post.op").children("p.intro").children("a.posthider");
|
||||
var pomitted = element.children("div.post.op").children("span.omitted");
|
||||
if(phPostHidden(board, id)) { element.addClass("thread-hidden"); pomitted.hide(); preplies.hide(); pbody.hide(); pimage.hide(); pbutton.text("[+]"); }
|
||||
else { element.removeClass("thread-hidden"); pomitted.show(); preplies.show(); pbody.show(); pimage.show(); pbutton.text("[–]"); }
|
||||
}
|
||||
|
||||
function phHandleThread(index, element) {
|
||||
// Get thread ID.
|
||||
var pin = $(this).children("div.post.op").children("p.intro");
|
||||
var tid = phGetOpID($(this));
|
||||
if(tid != NaN) {
|
||||
$("<a href='javascript:;' class='posthider'>[?]</a>").insertAfter(pin.children('a:last')).click(function(e) {
|
||||
var eO = $(e.target);
|
||||
var par = eO.parent().parent().parent();
|
||||
phPostToggle(phGetOpBoard(par), phGetOpID(par));
|
||||
phPostHandle(par);
|
||||
return false;
|
||||
});
|
||||
phPostHandle($(this));
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
if (active_page != "thread") {
|
||||
$('form[name="postcontrols"] > div[id^="thread"]').each(phHandleThread);
|
||||
}
|
||||
});
|
1
js/post-hider.js
Symbolic link
1
js/post-hider.js
Symbolic link
|
@ -0,0 +1 @@
|
|||
hide-threads.js
|
|
@ -17,13 +17,28 @@ onready(function(){
|
|||
var $link = $(this);
|
||||
|
||||
var id;
|
||||
|
||||
if(id = $link.text().match(/^>>(\d+)$/)) {
|
||||
id = id[1];
|
||||
var matches;
|
||||
|
||||
if(matches = $link.text().match(/^>>(?:>\/([^\/]+)\/)?(\d+)$/)) {
|
||||
id = matches[2];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
var board = $(this);
|
||||
while (board.data('board') === undefined) {
|
||||
board = board.parent();
|
||||
}
|
||||
var threadid = board.attr('id').replace("thread_", "");
|
||||
board = board.data('board');
|
||||
|
||||
var parentboard = board;
|
||||
|
||||
if (matches[1] !== undefined) {
|
||||
board = matches[1];
|
||||
}
|
||||
|
||||
|
||||
var $post = false;
|
||||
var hovering = false;
|
||||
var hovered_at;
|
||||
|
@ -32,28 +47,34 @@ onready(function(){
|
|||
hovered_at = {'x': e.pageX, 'y': e.pageY};
|
||||
|
||||
var start_hover = function($link) {
|
||||
if($post.is(':visible') &&
|
||||
if($.contains($post[0], $link[0])) {
|
||||
// link links to itself or to op; ignore
|
||||
}
|
||||
else if($post.is(':visible') &&
|
||||
$post.offset().top + $post.height() >= $(window).scrollTop() &&
|
||||
$post.offset().top <= $(window).scrollTop() + $(window).height()
|
||||
) {
|
||||
$post.offset().top <= $(window).scrollTop() + $(window).height()) {
|
||||
// post is in view
|
||||
$post.attr('style', 'border-style: none dashed dashed none; background: ' + $post.css('border-right-color'));
|
||||
} else {
|
||||
var $newPost = $post.clone();
|
||||
$newPost.find('>.reply, >br').remove();
|
||||
$newPost.find('span.mentioned').remove();
|
||||
|
||||
$newPost
|
||||
.attr('id', 'post-hover-' + id)
|
||||
.attr('data-board', board)
|
||||
.addClass('post-hover')
|
||||
.css('position', 'absolute')
|
||||
.css('border-style', 'solid')
|
||||
.css('box-shadow', '1px 1px 1px #999')
|
||||
.css('display', 'block')
|
||||
.insertAfter($link.parent());
|
||||
.addClass('reply').addClass('post')
|
||||
.insertAfter($link.parent())
|
||||
$link.trigger('mousemove');
|
||||
}
|
||||
};
|
||||
|
||||
$post = $('div.post#reply_' + id);
|
||||
$post = $('[data-board="' + board + '"] div.post#reply_' + id + ', [data-board="' + board + '"]div#thread_' + id);
|
||||
if($post.length > 0) {
|
||||
start_hover($(this));
|
||||
} else {
|
||||
|
@ -68,13 +89,27 @@ onready(function(){
|
|||
url: url,
|
||||
context: document.body,
|
||||
success: function(data) {
|
||||
$(data).find('div.post.reply').each(function() {
|
||||
if($('#' + $(this).attr('id')).length == 0)
|
||||
$('div.post:first').prepend($(this).css('display', 'none').addClass('hidden'));
|
||||
var mythreadid = $(data).find('div[id^="thread_"]').attr('id').replace("thread_", "");
|
||||
|
||||
});
|
||||
if (mythreadid == threadid && parentboard == board) {
|
||||
$(data).find('div.post.reply').each(function() {
|
||||
if($('[data-board="' + board + '"] #' + $(this).attr('id')).length == 0) {
|
||||
$('[data-board="' + board + '"]#thread_' + threadid + " .post.reply:first").before($(this).hide().addClass('hidden'));
|
||||
}
|
||||
});
|
||||
}
|
||||
else if ($('[data-board="' + board + '"]#thread_'+mythreadid).length > 0) {
|
||||
$(data).find('div.post.reply').each(function() {
|
||||
if($('[data-board="' + board + '"] #' + $(this).attr('id')).length == 0) {
|
||||
$('[data-board="' + board + '"]#thread_' + mythreadid + " .post.reply:first").before($(this).hide().addClass('hidden'));
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$(data).find('div[id^="thread_"]').hide().attr('data-cached', 'yes').prependTo('form[name="postcontrols"]');
|
||||
}
|
||||
|
||||
$post = $('div.post#reply_' + id);
|
||||
$post = $('[data-board="' + board + '"] div.post#reply_' + id + ', [data-board="' + board + '"]div#thread_' + id);
|
||||
if(hovering && $post.length > 0) {
|
||||
start_hover($link);
|
||||
}
|
||||
|
@ -87,14 +122,14 @@ onready(function(){
|
|||
return;
|
||||
|
||||
$post.attr('style', '');
|
||||
if($post.hasClass('hidden'))
|
||||
if($post.hasClass('hidden') || $post.data('cached') == 'yes')
|
||||
$post.css('display', 'none');
|
||||
$('.post-hover').remove();
|
||||
}).mousemove(function(e) {
|
||||
if(!$post)
|
||||
return;
|
||||
|
||||
var $hover = $('#post-hover-' + id);
|
||||
var $hover = $('#post-hover-' + id + '[data-board="' + board + '"]');
|
||||
if($hover.length == 0)
|
||||
return;
|
||||
|
||||
|
|
|
@ -71,10 +71,16 @@ $(document).ready(function(){
|
|||
}
|
||||
};
|
||||
|
||||
$('div.post input[type=checkbox].delete').each(function() {
|
||||
var init_qpc = function() {
|
||||
$(this).change(open_form);
|
||||
if(this.checked)
|
||||
$(this).trigger('change');
|
||||
};
|
||||
|
||||
$('div.post input[type=checkbox].delete').each(init_qpc);
|
||||
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
$(post).find('input[type=checkbox].delete').each(init_qpc);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -48,7 +48,12 @@ onready(function(){
|
|||
$('div.post.reply').each(showBackLinks);
|
||||
|
||||
$(document).bind('new_post', function(e, post) {
|
||||
showBackLinks.call(post);
|
||||
if ($(post).hasClass("reply")) {
|
||||
showBackLinks.call(post);
|
||||
}
|
||||
else {
|
||||
$(post).find('div.post.reply').each(showBackLinks);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
|
44
js/style-select.js
Normal file
44
js/style-select.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* style-select.js
|
||||
* https://github.com/savetheinternet/Tinyboard/blob/master/js/style-select.js
|
||||
*
|
||||
* Changes the stylesheet chooser links to a <select>
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/style-select.js';
|
||||
*
|
||||
*/
|
||||
|
||||
onready(function(){
|
||||
var stylesDiv = $('div.styles');
|
||||
var stylesSelect = $('<select></select>');
|
||||
|
||||
var i = 1;
|
||||
stylesDiv.children().each(function() {
|
||||
var opt = $('<option></option>')
|
||||
.html(this.innerHTML.replace(/(^\[|\]$)/g, ''))
|
||||
.val(i);
|
||||
if ($(this).hasClass('selected'))
|
||||
opt.attr('selected', true);
|
||||
stylesSelect.append(opt);
|
||||
$(this).attr('id', 'style-select-' + i);
|
||||
i++;
|
||||
});
|
||||
|
||||
stylesSelect.change(function() {
|
||||
$('#style-select-' + $(this).val()).click();
|
||||
});
|
||||
|
||||
stylesDiv.hide();
|
||||
|
||||
stylesDiv.after(
|
||||
$('<div id="style-select" style="float:right;margin-bottom:10px"></div>')
|
||||
.text(_('Style: '))
|
||||
.append(stylesSelect)
|
||||
);
|
||||
});
|
||||
|
77
js/toggle-images.js
Normal file
77
js/toggle-images.js
Normal file
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
* toggle-images.js
|
||||
*
|
||||
* Released under the MIT license
|
||||
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
|
||||
*
|
||||
* Usage:
|
||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||
* $config['additional_javascript'][] = 'js/toggle-images.js';
|
||||
*
|
||||
*/
|
||||
|
||||
$(document).ready(function(){
|
||||
var hide_images = localStorage['hideimages'] ? true : false;
|
||||
|
||||
$('<style type="text/css"> img.hidden{ opacity: 0.1; background: grey; border: 1px solid #000; } </style>').appendTo($('head'));
|
||||
|
||||
var hideImage = function() {
|
||||
if ($(this).parent()[0].dataset.expanded == 'true') {
|
||||
$(this).parent().click();
|
||||
}
|
||||
$(this)
|
||||
.attr('data-orig', this.src)
|
||||
.attr('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')
|
||||
.addClass('hidden');
|
||||
};
|
||||
|
||||
var restoreImage = function() {
|
||||
$(this)
|
||||
.attr('src', $(this).attr('data-orig'))
|
||||
.removeClass('hidden');
|
||||
};
|
||||
|
||||
// Fix for hide-images.js
|
||||
var show_hide_hide_images_buttons = function() {
|
||||
if (hide_images) {
|
||||
$('a.hide-image-link').each(function() {
|
||||
if ($(this).next().hasClass('show-image-link')) {
|
||||
$(this).next().hide();
|
||||
}
|
||||
$(this).hide().after('<span class="toggle-images-placeholder">'+_('hidden')+'</span>');
|
||||
});
|
||||
} else {
|
||||
$('span.toggle-images-placeholder').remove();
|
||||
$('a.hide-image-link').each(function() {
|
||||
if ($(this).next().hasClass('show-image-link')) {
|
||||
$(this).next().show();
|
||||
} else {
|
||||
$(this).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$('hr:first').before('<div id="toggle-images" style="text-align:right"><a class="unimportant" href="javascript:void(0)">-</a></div>');
|
||||
$('div#toggle-images a')
|
||||
.text(hide_images ? _('Show images') : _('Hide images'))
|
||||
.click(function() {
|
||||
hide_images = !hide_images;
|
||||
if (hide_images) {
|
||||
$('div > a > img').each(hideImage);
|
||||
localStorage.hideimages = true;
|
||||
} else {
|
||||
$('div > a > img').each(restoreImage);
|
||||
delete localStorage.hideimages;
|
||||
}
|
||||
|
||||
show_hide_hide_images_buttons();
|
||||
|
||||
$(this).text(hide_images ? _('Show images') : _('Hide images'))
|
||||
});
|
||||
|
||||
if (hide_images) {
|
||||
$('div > a > img').each(hideImage);
|
||||
show_hide_hide_images_buttons();
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue