1
0
mirror of https://github.com/vichan-devel/vichan.git synced 2024-12-18 10:25:55 +01:00
vichan/js/show-backlinks.js

67 lines
1.8 KiB
JavaScript
Raw Normal View History

2012-03-18 14:33:06 +01:00
/*
2012-03-18 14:48:06 +01:00
* show-backlinks.js
2012-03-31 02:13:11 +02:00
* https://github.com/savetheinternet/Tinyboard/blob/master/js/show-backlinks.js
2012-03-18 14:33:06 +01:00
*
* Released under the MIT license
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
2024-08-05 18:34:55 +02:00
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
2012-03-18 14:33:06 +01:00
*
* Usage:
* $config['additional_javascript'][] = 'js/jquery.min.js';
* // $config['additional_javascript'][] = 'js/post-hover'; (optional; must come first)
2012-03-18 14:48:06 +01:00
* $config['additional_javascript'][] = 'js/show-backlinks.js';
2012-03-18 14:33:06 +01:00
*
*/
2024-08-05 19:01:27 +02:00
onReady(function() {
2024-08-05 19:01:08 +02:00
let showBackLinks = function() {
let reply_id = $(this).attr('id').replace(/(^reply_)|(^op_)/, '');
2024-08-05 18:34:55 +02:00
2012-08-27 15:01:08 +02:00
$(this).find('div.body a:not([rel="nofollow"])').each(function() {
2024-08-05 19:01:08 +02:00
let id, post, $mentioned;
2024-08-05 18:34:55 +02:00
2024-08-05 19:01:08 +02:00
if (id = $(this).text().match(/^>>(\d+)$/)) {
2012-03-18 14:33:06 +01:00
id = id[1];
2024-08-05 19:01:08 +02:00
} else {
2012-03-18 14:33:06 +01:00
return;
2024-08-05 19:01:08 +02:00
}
2024-08-05 18:34:55 +02:00
$post = $('#reply_' + id);
2024-08-05 19:01:08 +02:00
if ($post.length == 0){
$post = $('#op_' + id);
2024-08-05 19:01:08 +02:00
if ($post.length == 0) {
return;
2024-08-05 19:01:08 +02:00
}
}
2024-08-05 18:34:55 +02:00
$mentioned = $post.find('p.intro span.mentioned');
2024-08-05 19:01:08 +02:00
if($mentioned.length == 0) {
$mentioned = $('<span class="mentioned unimportant"></span>').appendTo($post.find('p.intro'));
2024-08-05 19:01:08 +02:00
}
2024-08-05 18:34:55 +02:00
2024-08-05 19:01:08 +02:00
if ($mentioned.find('a.mentioned-' + reply_id).length != 0) {
return;
2024-08-05 19:01:08 +02:00
}
2024-08-05 18:34:55 +02:00
2024-08-05 19:01:08 +02:00
let link = $('<a class="mentioned-' + reply_id + '" onclick="highlightReply(\'' + reply_id + '\');" href="#' + reply_id + '">&gt;&gt;' +
reply_id + '</a>');
2024-08-05 19:01:08 +02:00
link.appendTo($mentioned)
2024-08-05 18:34:55 +02:00
if (window.init_hover) {
2024-08-05 19:01:08 +02:00
link.each(init_hover);
}
2012-03-18 14:33:06 +01:00
});
};
2024-08-05 18:34:55 +02:00
$('div.post.reply').each(showBackLinks);
$('div.post.op').each(showBackLinks);
2024-08-05 19:01:08 +02:00
$(document).on('new_post', function(e, post) {
if ($(post).hasClass("op")) {
2013-07-27 06:57:12 +02:00
$(post).find('div.post.reply').each(showBackLinks);
2024-09-18 06:44:06 +02:00
} else {
$(post).parent().find('div.post.reply').each(showBackLinks);
2013-07-27 06:57:12 +02:00
}
});
2012-03-18 14:33:06 +01:00
});