summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-02-13 23:36:58 +0300
committerAndrew Dolgov <[email protected]>2017-02-13 23:36:58 +0300
commit51614600487bea4f85c78240c6506ff936956f15 (patch)
tree77d51d5f55fabc9843a8d8ae439170ad81672f00 /js
parent3eec1de3937cd079e1190edad88f1b041f98e2b8 (diff)
bind headlines menu to a selector to avoid remaking it unnecessarily
Diffstat (limited to 'js')
-rw-r--r--js/tt-rss.js1
-rwxr-xr-xjs/viewfeed.js154
2 files changed, 51 insertions, 104 deletions
diff --git a/js/tt-rss.js b/js/tt-rss.js
index 4ed89d4b2..f481d39a3 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -226,6 +226,7 @@ function init() {
"dojo/parser",
"dojo/_base/loader",
"dojo/_base/html",
+ "dojo/query",
"dijit/ProgressBar",
"dijit/ColorPalette",
"dijit/Dialog",
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 15cd2e304..d8b49c601 100755
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -150,8 +150,6 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
tmp.innerHTML = reply['headlines']['content'];
dojo.parser.parse(tmp);
- var new_rows = [];
-
while (tmp.hasChildNodes()) {
var row = tmp.removeChild(tmp.firstChild);
@@ -159,16 +157,6 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
dijit.byId("headlines-frame").domNode.appendChild(row);
loaded_article_ids.push(row.id);
-
- if (!isCdmMode() || row.hasClassName("cdmFeedTitle")) {
- new_rows.push(row);
- } else if (isCdmMode()) {
- var titleWrap = $$("#" + row.id + " .titleWrap")[0];
-
- if (titleWrap) {
- new_rows.push(titleWrap);
- }
- }
}
}
@@ -183,7 +171,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
markHeadline(ids[i]);
}
- initHeadlinesMenu(new_rows);
+ initHeadlinesMenu();
if (_infscroll_disable) {
hsp.innerHTML = "<a href='#' onclick='openNextUnreadFeed()'>" +
@@ -1992,28 +1980,14 @@ function headlinesMenuCommon(menu) {
}
}
-function initHeadlinesMenu(append_rows) {
+function initHeadlinesMenu() {
try {
- if (!append_rows) {
-
- if (dijit.byId("headlinesMenu"))
- dijit.byId("headlinesMenu").destroyRecursive();
-
- var ids = [];
-
- if (!isCdmMode()) {
- nodes = $$("#headlines-frame > div[id*=RROW]");
- } else {
- nodes = $$("#headlines-frame span[id*=RTITLE]");
- }
-
- nodes.each(function (node) {
- ids.push(node.id);
- });
+ if (!dijit.byId("headlinesMenu")) {
var menu = new dijit.Menu({
id: "headlinesMenu",
- targetNodeIds: ids
+ targetNodeIds: ["headlines-frame"],
+ selector: ".hlMenuAttach"
});
var tmph = dojo.connect(menu, '_openMyself', function (event) {
@@ -2033,96 +2007,68 @@ function initHeadlinesMenu(append_rows) {
headlinesMenuCommon(menu);
menu.startup();
-
- } else {
- var menu = dijit.byId("headlinesMenu");
-
- append_rows.each(function (row) {
- if (!row.hasClassName("cdmFeedTitle")) {
- menu.bindDomNode(row);
- }
- });
}
/* vgroup feed title menu */
- if (!append_rows) {
-
- var nodes = $$("#headlines-frame > div[class='cdmFeedTitle']");
- var ids = [];
+ if (!dijit.byId("headlinesFeedTitleMenu")) {
- nodes.each(function(node) {
- ids.push(node.id);
+ var menu = new dijit.Menu({
+ id: "headlinesFeedTitleMenu",
+ targetNodeIds: ["headlines-frame"],
+ selector: "div.cdmFeedTitle"
});
- if (ids.length > 0) {
- if (dijit.byId("headlinesFeedTitleMenu"))
- dijit.byId("headlinesFeedTitleMenu").destroyRecursive();
-
- var menu = new dijit.Menu({
- id: "headlinesFeedTitleMenu",
- targetNodeIds: ids
- });
-
- var tmph = dojo.connect(menu, '_openMyself', function (event) {
- var callerNode = event.target, match = null, tries = 0;
-
- while (match == null && callerNode && tries <= 3) {
- match = callerNode.getAttribute("data-feed-id")
- callerNode = callerNode.parentNode;
- ++tries;
- }
-
- if (match) this.callerRowId = match;
+ var tmph = dojo.connect(menu, '_openMyself', function (event) {
+ var callerNode = event.target, match = null, tries = 0;
- });
+ while (match == null && callerNode && tries <= 3) {
+ match = callerNode.getAttribute("data-feed-id")
+ callerNode = callerNode.parentNode;
+ ++tries;
+ }
- menu.addChild(new dijit.MenuItem({
- label: __("Select articles in group"),
- onClick: function (event) {
- selectArticles("all",
- "#headlines-frame > div[id*=RROW]" +
- "[data-orig-feed-id='" + menu.callerRowId + "']");
+ if (match) this.callerRowId = match;
- }
- }));
+ });
- menu.addChild(new dijit.MenuItem({
- label: __("Mark group as read"),
- onClick: function (event) {
- selectArticles("none");
- selectArticles("all",
- "#headlines-frame > div[id*=RROW]" +
- "[data-orig-feed-id='" + menu.callerRowId + "']");
+ menu.addChild(new dijit.MenuItem({
+ label: __("Select articles in group"),
+ onClick: function (event) {
+ selectArticles("all",
+ "#headlines-frame > div[id*=RROW]" +
+ "[data-orig-feed-id='" + menu.callerRowId + "']");
- catchupSelection();
- }
- }));
+ }
+ }));
- menu.addChild(new dijit.MenuItem({
- label: __("Mark feed as read"),
- onClick: function (event) {
- catchupFeedInGroup(menu.callerRowId);
- }
- }));
+ menu.addChild(new dijit.MenuItem({
+ label: __("Mark group as read"),
+ onClick: function (event) {
+ selectArticles("none");
+ selectArticles("all",
+ "#headlines-frame > div[id*=RROW]" +
+ "[data-orig-feed-id='" + menu.callerRowId + "']");
- menu.addChild(new dijit.MenuItem({
- label: __("Edit feed"),
- onClick: function (event) {
- editFeed(menu.callerRowId);
- }
- }));
+ catchupSelection();
+ }
+ }));
- menu.startup();
- }
- } else {
- var menu = dijit.byId("headlinesFeedTitleMenu");
+ menu.addChild(new dijit.MenuItem({
+ label: __("Mark feed as read"),
+ onClick: function (event) {
+ catchupFeedInGroup(menu.callerRowId);
+ }
+ }));
- append_rows.each(function (row) {
- if (row.hasClassName("cdmFeedTitle")) {
- menu.bindDomNode(row);
+ menu.addChild(new dijit.MenuItem({
+ label: __("Edit feed"),
+ onClick: function (event) {
+ editFeed(menu.callerRowId);
}
- });
+ }));
+
+ menu.startup();
}
} catch (e) {