mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-27 17:00:52 +01:00
live-index.js: initial commit
This commit is contained in:
parent
5cd435f176
commit
4d25ca85ce
16
js/expand.js
16
js/expand.js
@ -20,8 +20,8 @@ $(document).ready(function(){
|
|||||||
var do_expand = function() {
|
var do_expand = function() {
|
||||||
$(this)
|
$(this)
|
||||||
.html($(this).text().replace(_("Click reply to view."), '<a href="javascript:void(0)">'+_("Click to expand")+'</a>.'))
|
.html($(this).text().replace(_("Click reply to view."), '<a href="javascript:void(0)">'+_("Click to expand")+'</a>.'))
|
||||||
.find('a').click(function() {
|
.find('a').click(window.expand_fun = function() {
|
||||||
var thread = $(this).parent().parent().parent();
|
var thread = $(this).parents('[id^="thread_"]');
|
||||||
var id = thread.attr('id').replace(/^thread_/, '');
|
var id = thread.attr('id').replace(/^thread_/, '');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: thread.find('p.intro a.post_no:first').attr('href'),
|
url: thread.find('p.intro a.post_no:first').attr('href'),
|
||||||
@ -43,12 +43,16 @@ $(document).ready(function(){
|
|||||||
last_expanded = post_in_doc;
|
last_expanded = post_in_doc;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('<span class="omitted"><a href="javascript:void(0)">' + _('Hide expanded replies') + '</a>.</span>')
|
|
||||||
.insertAfter(thread.find('span.omitted').css('display', 'none'))
|
|
||||||
|
thread.find("span.omitted").css('display', 'none');
|
||||||
|
|
||||||
|
$('<span class="omitted hide-expanded"><a href="javascript:void(0)">' + _('Hide expanded replies') + '</a>.</span>')
|
||||||
|
.insertAfter(thread.find('.op div.body, .op span.omitted').last())
|
||||||
.click(function() {
|
.click(function() {
|
||||||
thread.find('.expanded').remove();
|
thread.find('.expanded').remove();
|
||||||
$(this).prev().css('display', '');
|
$(this).parent().find(".omitted:not(.hide-expanded)").css('display', '');
|
||||||
$(this).remove();
|
$(this).parent().find(".hide-expanded").remove();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
84
js/live-index.js
Normal file
84
js/live-index.js
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* live-index.js
|
||||||
|
* https://github.com/vichan-devel/Tinyboard/blob/master/js/live-index.js
|
||||||
|
*
|
||||||
|
* Released under the MIT license
|
||||||
|
* Copyright (c) 2014 Marcin Łabanowski <marcin@6irc.net>
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* $config['api']['enabled'] = true;
|
||||||
|
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
||||||
|
* $config['additional_javascript'][] = 'js/expand.js';
|
||||||
|
* $config['additional_javascript'][] = 'js/live-index.js';
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (active_page == 'index' && (""+document.location).match(/\/(index\.html)?(\?|$)/))
|
||||||
|
+function() {
|
||||||
|
var board_name = (""+document.location).match(/\/([^\/])\/[^/]*$/)[1];
|
||||||
|
|
||||||
|
var handle_one_thread = function() {
|
||||||
|
$(this).find("br.clear").before("<div class='new-posts'>"+_("No new posts.")+"</div>")
|
||||||
|
};
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
$("hr:first").before("<hr /><div class='new-threads'>"+_("No new threads.")+"</div>");
|
||||||
|
|
||||||
|
$('div[id^="thread_"]').each(handle_one_thread);
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on("new_post", function(e, post) {
|
||||||
|
if (!$(post).hasClass("reply")) {
|
||||||
|
handle_one_thread.bind(post);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var update_new_threads = function(i) {
|
||||||
|
var msg = i ?
|
||||||
|
fmt(_("There are {0} new threads."), [i]) :
|
||||||
|
_("No new threads.");
|
||||||
|
|
||||||
|
if ($(".new-threads").html() != msg)
|
||||||
|
$(".new-threads").html(msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
var update_new_posts = function(i, th) {
|
||||||
|
var msg = (i>0) ?
|
||||||
|
(fmt(_("There are {0} new posts in this thread."), [i])+" <a href='javascript:void(0)'>"+_("Click to expand")+"</a>.") :
|
||||||
|
_("No new posts.");
|
||||||
|
|
||||||
|
if ($(th).find(".new-posts").html() != msg) {
|
||||||
|
$(th).find(".new-posts").html(msg);
|
||||||
|
$(th).find(".new-posts a").click(window.expand_fun);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
setInterval(function() {
|
||||||
|
$.getJSON(configRoot+board_name+"/0.json", function(j, x, r) {
|
||||||
|
var new_threads = 0;
|
||||||
|
|
||||||
|
j.threads.forEach(function(t) {
|
||||||
|
var s_thread = $("#thread_"+t.posts[0].no);
|
||||||
|
|
||||||
|
if (s_thread.length) {
|
||||||
|
var my_posts = s_thread.find(".post.reply").length;
|
||||||
|
|
||||||
|
var omitted_posts = s_thread.find(".omitted");
|
||||||
|
if (omitted_posts.length) {
|
||||||
|
omitted_posts = omitted_posts.html().match("^[^0-9]*([0-9]+)")[1]|0;
|
||||||
|
my_posts += omitted_posts;
|
||||||
|
}
|
||||||
|
|
||||||
|
my_posts -= t.posts[0].replies|0;
|
||||||
|
my_posts *= -1;
|
||||||
|
update_new_posts(my_posts, s_thread);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
new_threads++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
update_new_threads(new_threads);
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
}();
|
@ -627,3 +627,12 @@ form.ban-appeal textarea {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 5px 25px 5px 5px;
|
margin: 5px 25px 5px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* live-index.js */
|
||||||
|
.new-posts {
|
||||||
|
opacity: 0.6;
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
.new-threads {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user