summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-08-09 13:08:07 +0400
committerAndrew Dolgov <[email protected]>2012-08-09 13:08:07 +0400
commit26e4b12466208b433fef35946cb61ef9b3e52e45 (patch)
treeecea436be258b93abe7c1a1ee219f17f18c4cb47 /js
parent18e8dc12d9ad11093013fec590c2c29630b8ac95 (diff)
add experimental clientside headline clamping (refs #479)
Diffstat (limited to 'js')
-rw-r--r--js/functions.js9
-rw-r--r--js/viewfeed.js17
2 files changed, 25 insertions, 1 deletions
diff --git a/js/functions.js b/js/functions.js
index b2d79dc56..997d55a55 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -1718,3 +1718,12 @@ function get_radio_checked(radioObj) {
}
return("");
}
+
+function clamp_element(elem, height) {
+ if (elem && elem.offsetHeight > height) {
+ while (elem.offsetHeight > height)
+ elem.innerHTML = cp.innerHTML.substring(0, elem.innerHTML.length - 50);
+
+ elem.innerHTML += "&hellip;";
+ }
+}
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 92a610f8d..2e8301640 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -81,6 +81,10 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
reply['headlines']['toolbar']);
$$("#headlines-frame > div[id*=RROW]").each(function(row) {
+ cp = row.getElementsByClassName("contentPreview")[0];
+
+ clamp_element(cp, 50);
+
if ($$("#headlines-frame DIV[id="+row.id+"]").length > 1) {
row.parentNode.removeChild(row);
}
@@ -136,8 +140,13 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
$$("#headlines-frame > div[id*=RROW]").each(
function(child) {
- if (!Element.visible(child))
+ if (!Element.visible(child)) {
new Effect.Appear(child, { duration : 0.5 });
+
+ cp = child.getElementsByClassName("contentPreview")[0];
+
+ clamp_element(cp, 50);
+ }
});
} else {
@@ -2047,6 +2056,12 @@ function render_local_headlines(feed, is_cat, obj) {
setActiveFeedId(feed, is_cat);
initHeadlinesMenu();
+
+ $$("#headlines-frame > div[id*=RROW]").each(function(row) {
+ cp = row.getElementsByClassName("contentPreview")[0];
+ clamp_element(cp, 50);
+ });
+
precache_headlines();
} catch (e) {