font-size : 13px;
}
+div#small_article_preview {
+ width : 300px;
+ max-height : 350px;
+ overflow : hidden;
+ border : 1px solid #c0c0c0;
+ background : white;
+ position : absolute;
+ box-shadow : 2px 2px 4px #c0c0c0;
+ z-index : 2;
+}
+
+div#small_article_preview div.content {
+ padding : 5px;
+ font-size : 12px;
+ color : gray;
+}
+
+div#small_article_preview div.content img {
+ max-width : 290px;
+}
}
}
- $mouseover_attrs = "onmouseover='postMouseIn($id)'
+ $mouseover_attrs = "onmouseover='postMouseIn(event, $id)'
onmouseout='postMouseOut($id)'";
$reply['content'] .= "<div class='$class' id='RROW-$id' $label_row_style $mouseover_attrs>";
}
}
- $mouseover_attrs = "onmouseover='postMouseIn($id)'
+ $mouseover_attrs = "onmouseover='postMouseIn(event, $id)'
onmouseout='postMouseOut($id)'";
$expanded_class = $expand_cdm ? "expanded" : "";
onclick=\"return cdmClicked(event, $id);\"
class=\"titleWrap$hlc_suffix\">
<a class=\"title\"
- title=\"".htmlspecialchars($line['title'])."\"
target=\"_blank\" href=\"".
htmlspecialchars($line["link"])."\">".
$line["title"] .
}
}
+ function cdmArticlePreview() {
+ $id = db_escape_string($this->link, $_REQUEST['id']);
+
+ $result = db_query($this->link, "SELECT link,
+ ttrss_entries.title, content, feed_url
+ FROM
+ ttrss_entries, ttrss_user_entries
+ LEFT JOIN ttrss_feeds ON (ttrss_user_entries.feed_id = ttrss_feeds.id)
+ WHERE ref_id = '$id' AND ref_id = ttrss_entries.id AND
+ ttrss_user_entries.owner_uid = ". $_SESSION["uid"]);
+
+ if (db_num_rows($result) != 0) {
+ $link = db_fetch_result($result, 0, "link");
+ $title = db_fetch_result($result, 0, "title");
+ $feed_url = db_fetch_result($result, 0, "feed_url");
+
+ $content = sanitize($this->link,
+ db_fetch_result($result, 0, "content"), false, false, $feed_url);
+
+ print "<div class='content'>".$content."</content>";
+
+ } else {
+ print "Article not found.";
+ }
+
+ }
+
}
?>
</div>
</div>
+<div style="display : none" onclick="Element.hide(this)" id="small_article_preview"></div>
+
<div id="header">
<img id="net-alert" style="display : none"
title="<?php echo __("Communication problem with server.") ?>"
var cids_requested = [];
var loaded_article_ids = [];
+var _post_preview_timeout = false;
+
var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null;
function headlines_callback2(transport, offset, background, infscroll_req) {
return _active_article_id;
}
-function postMouseIn(id) {
+function postMouseIn(e, id) {
post_under_pointer = id;
+
+ if (_post_preview_timeout) window.clearTimeout(_post_preview_timeout);
+
+ if (!getInitParam("cdm_expanded")) {
+ _post_preview_timeout = window.setTimeout(function() {
+ displaySmallArticlePreview(e, id);
+ }, 1000);
+ }
+}
+
+function displaySmallArticlePreview(e, id) {
+ try {
+ var query = "?op=rpc&method=cdmarticlepreview&id=" + id;
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ cexc = $("CEXC-" + id);
+ preview = $("small_article_preview");
+ row = $("RROW-" + id);
+
+ if (id != getActiveArticleId() && (!isCdmMode() || (cexc && Element.visible(cexc))) && row && preview) {
+ preview.innerHTML = transport.responseText;
+ new Effect.Appear(preview, {duration:0.2});
+
+ preview.setStyle({
+ left: (e.clientX + 20) + 'px',
+ top: (Element.cumulativeOffset(row)[1] + row.offsetHeight + 10) + 'px' });
+
+ }
+
+ } });
+
+
+ } catch (e) {
+ exception_error("displaySmallArticlePreview", e);
+ }
}
function postMouseOut(id) {
post_under_pointer = false;
+
+ if (_post_preview_timeout) window.clearTimeout(_post_preview_timeout);
+
+ if (Element.visible("small_article_preview"))
+ Element.hide("small_article_preview");
}
function unpackVisibleHeadlines() {
margin-top : 1em;
text-align : center;
}
+
+