# HG changeset patch # User neko259 # Date 2013-11-13 09:11:56 # Node ID 9e5cd53eca2040600bdc323cb08519aa8f44de66 # Parent bba983c37f5db9ec00bfbb4cafd0ac145e949b9c Not showing post previews for posts that cannot be found on the page diff --git a/boards/static/js/refpopup.js b/boards/static/js/refpopup.js --- a/boards/static/js/refpopup.js +++ b/boards/static/js/refpopup.js @@ -55,6 +55,8 @@ function showPostPreview(e) { cln.innerHTML = 'Загрузка...'; + var found = false; + //если пост найден в дереве. if($('div[id='+pNum+']').length > 0) { var postdata = $('div[id='+pNum+']').html(); @@ -64,6 +66,8 @@ function showPostPreview(e) { //make preview mkPreview(cln, postdata); + + found = true; } //ajax api // else { @@ -86,8 +90,10 @@ function showPostPreview(e) { $del(doc.getElementById(cln.id)); - //add preview - $('body').append(cln); + if (found) { + //add preview + $('body').append(cln); + } } function delPostPreview(e) { @@ -98,101 +104,8 @@ function delPostPreview(e) { else while(el.nextSibling) $del(el.nextSibling); } - - - - - function addPreview() { $('.post').find('a').each(function() { showPostPreview($(this)); }); } - -function showPreview(node) { - node.each(function() { - //reflink? - if($(this).text().indexOf('>>') == 0) { - //add mouseover event - $(this).on('mouseover', function(e) { - var ref = $(this); - - var doc = document; - //ref id - var pNum = ref.text().match(/\d+/); - - //position - var x = e.clientX + (doc.documentElement.scrollLeft || doc.body.scrollLeft) + 2; - var y = e.clientY + (doc.documentElement.scrollTop || doc.body.scrollTop); - - //create preview block - var cln = $('
', { - id: 'pstprev_' + pNum, - class: 'post_preview post' - }) - .css('cssText', 'top:' + y + 'px;' + (x < doc.body.clientWidth/2 ? 'left:' + x + 'px' : 'right:' + parseInt(doc.body.clientWidth - x + 1) -+ 'px')); - - - var mkPreview = function(cln, html) { - - cln.html(html); - - showPreview($(cln)); - //if(!$x('.//small', cln)) showRefMap(post, p_num, refMap) - }; - - cln.html('Загрузка...'); - - //если пост найден в дереве. - if($('div[id='+pNum+']').length > 0) { - var postdata = $('div[id='+pNum+']').clone().html(); - //TODO: лучше бы вынести в mkPreview - //if($.localStorage('addImgPreview') > 0) showImgPreview($(postdata)); - - //make preview - mkPreview(cln, postdata); - } - //ajax api -// else { -// $.getJSON(mayuri_cfg['board_url']+'api/single/'+pNum) -// .success(function(data) { -// //post templates -// var postdata = makeAjaxPost(data).html(); -// -// //make preview -// mkPreview(cln, postdata); -// -// })//if error -// .error(function() { -// cln.html('Пост не найден.'); -// }); -// } - - $del(doc.getElementById(cln.id)); - - //add preview - $('body').append(cln); - }); - - $(this).on('mouseout', function() { - delPreview($(this)); - }) - } - }); - -} - -function delPreview(e) { - var el = e.relatedTarget; - if(!el) { - $(el).each(function(clone) { - $del(clone) - }); - } - { - while(el.next()) - $del(el.next()); - } -} -