From 5f7db88a2d75462c7dbb3c8abea7b60c6d2e5997 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 29 Dec 2013 04:27:53 +0100 Subject: [PATCH] watch.js and post-hover.js integrations --- js/post-hover.js | 42 +++++++++++++++++++++++++++--------------- js/watch.js | 6 +++++- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/js/post-hover.js b/js/post-hover.js index 40ef31df..6d07e608 100644 --- a/js/post-hover.js +++ b/js/post-hover.js @@ -19,9 +19,13 @@ onready(function(){ var id; var matches; - if(matches = $link.text().match(/^>>(?:>\/([^\/]+)\/)?(\d+)$/)) { + if ($link.is('[data-thread]')) { + id = $link.attr('data-thread'); + } + else if(matches = $link.text().match(/^>>(?:>\/([^\/]+)\/)?(\d+)$/)) { id = matches[2]; - } else { + } + else { return; } @@ -29,15 +33,16 @@ onready(function(){ while (board.data('board') === undefined) { board = board.parent(); } - var threadid = board.attr('id').replace("thread_", ""); + var threadid; + if ($link.is('[data-thread]')) threadid = 0; + else threadid = board.attr('id').replace("thread_", ""); + board = board.data('board'); var parentboard = board; - - if (matches[1] !== undefined) { - board = matches[1]; - } - + + if ($link.is('[data-thread]')) parentboard = $('form[name="post"] input[name="board"]').val(); + else if (matches[1] !== undefined) board = matches[1]; var $post = false; var hovering = false; @@ -64,13 +69,15 @@ onready(function(){ .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') + .css('position', 'absolute') + .css('font-style', 'normal') .css('z-index', '100') .addClass('reply').addClass('post') .insertAfter($link.parent()) + $link.trigger('mousemove'); } }; @@ -134,13 +141,18 @@ onready(function(){ var $hover = $('#post-hover-' + id + '[data-board="' + board + '"]'); if($hover.length == 0) return; + + var scrollTop = $(window).scrollTop(); + if ($link.is("[data-thread]")) scrollTop = 0; + var epy = e.pageY; + if ($link.is("[data-thread]")) epy -= $(window).scrollTop(); + + var top = (epy ? epy : hovered_at['y']) - 10; - var top = (e.pageY ? e.pageY : hovered_at['y']) - 10; - - if(e.pageY < $(window).scrollTop() + 15) { - top = $(window).scrollTop(); - } else if(e.pageY > $(window).scrollTop() + $(window).height() - $hover.height() - 15) { - top = $(window).scrollTop() + $(window).height() - $hover.height() - 15; + if(epy < scrollTop + 15) { + top = scrollTop; + } else if(epy > scrollTop + $(window).height() - $hover.height() - 15) { + top = scrollTop + $(window).height() - $hover.height() - 15; } diff --git a/js/watch.js b/js/watch.js index cda38ee7..13eec82c 100644 --- a/js/watch.js +++ b/js/watch.js @@ -84,7 +84,7 @@ $(function(){ for (var i in st) { if (is_pinned(st[i])) { var link; - if (bl.find('[href*="/'+i+'/"]:not(.cb-menuitem)').length) link = bl.find('[href*="/'+i+'/"]').first(); + if (bl.find('[href*="/'+i+'/index.html"]:not(.cb-menuitem)').length) link = bl.find('[href*="/'+i+'/"]').first(); // TODO: fix path else link = $('/'+i+'/').appendTo(pinned); @@ -126,6 +126,7 @@ $(function(){ .css("top", $(this).position().top + 13 + $(this).height()) .css("left", $(this).position().left) .css("right", "auto") + .css("font-style", "normal") .appendTo($(this)); var board = $(this).attr("data-board"); @@ -162,6 +163,9 @@ $(function(){ $(this).parent().parent().parent().mouseleave(); return false; }); + + if (typeof init_hover != "undefined") + init_hover.bind(tag[0])(); } }).mouseleave(function() {