From df145c8064a43218def12ed05d1398977f042744 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 22 Apr 2021 10:43:34 +0300 Subject: [PATCH] * cdm: render enclosures into content element * deprecate cdm.intermediate * implement lazy-load for rendered enclosures * simplify pack/unpack logic for articles --- js/Article.js | 11 +++++------ js/Headlines.js | 9 ++++++--- themes/compact.css | 17 +++-------------- themes/compact_night.css | 17 +++-------------- themes/light-high-contrast.css | 17 +++-------------- themes/light.css | 17 +++-------------- themes/light/cdm.less | 24 +++++++----------------- themes/light/tt-rss.less | 13 ++++++------- themes/night.css | 17 +++-------------- themes/night_blue.css | 17 +++-------------- 10 files changed, 42 insertions(+), 117 deletions(-) diff --git a/js/Article.js b/js/Article.js index 16abfbfee..3b23d1d59 100644 --- a/js/Article.js +++ b/js/Article.js @@ -255,12 +255,12 @@ const Article = { return comments; }, unpack: function(row) { - if (row.hasAttribute("data-content")) { + if (row.getAttribute("data-is-packed") == "1") { console.log("unpacking: " + row.id); const container = row.querySelector(".content-inner"); - container.innerHTML = row.getAttribute("data-content").trim(); + container.innerHTML = row.getAttribute("data-content").trim() + row.getAttribute("data-rendered-enclosures").trim(); dojo.parser.parse(container); @@ -272,16 +272,15 @@ const Article = { if (App.isCombinedMode() && App.byId("main").hasClassName("expandable")) row.setAttribute("data-content-original", row.getAttribute("data-content")); - row.removeAttribute("data-content"); + row.setAttribute("data-is-packed", "0"); PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row); } }, pack: function(row) { - if (row.hasAttribute("data-content-original")) { + if (row.getAttribute("data-is-packed") != "1") { console.log("packing", row.id); - row.setAttribute("data-content", row.getAttribute("data-content-original")); - row.removeAttribute("data-content-original"); + row.setAttribute("data-is-packed", "1"); row.querySelector(".content-inner").innerHTML = `
${__("Loading, please wait...")} diff --git a/js/Headlines.js b/js/Headlines.js index 134bdad6d..d01993838 100755 --- a/js/Headlines.js +++ b/js/Headlines.js @@ -490,7 +490,9 @@ const Headlines = { id="RROW-${hl.id}" data-article-id="${hl.id}" data-orig-feed-id="${hl.feed_id}" + data-is-packed="1" data-content="${App.escapeHtml(hl.content)}" + data-rendered-enclosures="${App.escapeHtml(Article.renderEnclosures(hl.enclosures))}" data-score="${hl.score}" data-article-title="${App.escapeHtml(hl.title)}" onmouseover="Article.mouseIn(${hl.id})" @@ -537,9 +539,10 @@ const Headlines = { ${__("Loading, please wait...")}
-
- ${Article.renderEnclosures(hl.enclosures)} -
+ + +
+