]> git.wh0rd.org - tt-rss.git/blobdiff - js/viewfeed.js
move to simpler CDM handling of encoded content (instead of CENCW... etc)
[tt-rss.git] / js / viewfeed.js
index ed6e3642e1315929cb6aedd1e45cc236fe8c82f0..a24116e8808e777975ad2c3aa141415d6c1c5e6d 100755 (executable)
@@ -1018,24 +1018,28 @@ function postMouseOut(id) {
 function unpackVisibleHeadlines() {
        if (!isCdmMode() || !getInitParam("cdm_expanded")) return;
 
-       $$("#headlines-frame span.cencw[id]").each(
-               function (child) {
-                       const row = $("RROW-" + child.id.replace("CENCW-", ""));
+    $$("#headlines-frame div[id*=RROW][data-content]").each((row) => {
+       //console.log('checking', row.id);
 
-                       if (row && row.offsetTop <= $("headlines-frame").scrollTop +
-                               $("headlines-frame").offsetHeight) {
+       if (row.offsetTop <= $("headlines-frame").scrollTop + $("headlines-frame").offsetHeight) {
+            console.log("unpacking: " + row.id);
 
-                               //console.log("unpacking: " + child.id);
+            let content;
 
-                               child.innerHTML = htmlspecialchars_decode(child.innerHTML);
-                               child.removeAttribute('id');
+            try {
+                content = JSON.parse(row.getAttribute("data-content"));
+            } catch (e) {
+               content = "Error decoding content: " + row.getAttribute("data-content");
+                       }
 
-                               PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row);
+                       row.select(".cdmContentInner")[0].innerHTML = content;
+            row.removeAttribute("data-content");
 
-                               Element.show(child);
-                       }
+            PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row);
+               } else {
+               throw $break;
                }
-       );
+    });
 }
 
 function headlines_scroll_handler(e) {