diff options
author | Andrew Dolgov <[email protected]> | 2013-10-17 13:38:48 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-10-17 13:38:48 +0400 |
commit | 87065739cdc569bbcfe92ad6f0b6ebef3c72f3ec (patch) | |
tree | 26ad268f3cbdf78cbcc9e876bc16ac3adac262d2 /js/viewfeed.js | |
parent | 788cf0a1b1a8a7fc3561bc8eb3347ce204f2120f (diff) |
add context menu for cdmFeedTitle; change mark as read prompt for grouped headlines more clear
Diffstat (limited to 'js/viewfeed.js')
-rw-r--r-- | js/viewfeed.js | 71 |
1 files changed, 69 insertions, 2 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js index cb9a3c646..3c02d4626 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -961,10 +961,12 @@ function getLoadedArticleIds() { } // mode = all,none,unread,invert,marked,published -function selectArticles(mode) { +function selectArticles(mode, query) { try { - var children = $$("#headlines-frame > div[id*=RROW]"); + if (!query) query = "#headlines-frame > div[id*=RROW]"; + + var children = $$(query); children.each(function(child) { var id = child.id.replace("RROW-", ""); @@ -2107,6 +2109,71 @@ function initHeadlinesMenu() { menu.startup(); + /* vgroup feed title menu */ + + var nodes = $$("#headlines-frame > div[class='cdmFeedTitle']"); + var ids = []; + + nodes.each(function(node) { + ids.push(node.id); + }); + + 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) { + console.log(callerNode.id); + + match = callerNode.id.match("^[A-Z]+[-]([0-9]+)$"); + callerNode = callerNode.parentNode; + ++tries; + + console.log(match[1]); + } + + if (match) this.callerRowId = parseInt(match[1]); + + }); + + menu.addChild(new dijit.MenuItem({ + label: __("Select articles in group"), + onClick: function(event) { + selectArticles("all", + "#headlines-frame > div[id*=RROW]"+ + "[orig-feed-id='"+menu.callerRowId+"']"); + + }})); + + menu.addChild(new dijit.MenuItem({ + label: __("Mark group as read"), + onClick: function(event) { + selectArticles("all", + "#headlines-frame > div[id*=RROW]"+ + "[orig-feed-id='"+menu.callerRowId+"']"); + + catchupSelection(); + }})); + + + menu.addChild(new dijit.MenuItem({ + label: __("Mark feed as read"), + onClick: function(event) { + catchupFeedInGroup(menu.callerRowId); + }})); + + menu.startup(); + + } + } catch (e) { exception_error("initHeadlinesMenu", e); } |