summaryrefslogtreecommitdiff
path: root/js/viewfeed.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-10-17 13:38:48 +0400
committerAndrew Dolgov <[email protected]>2013-10-17 13:38:48 +0400
commit87065739cdc569bbcfe92ad6f0b6ebef3c72f3ec (patch)
tree26ad268f3cbdf78cbcc9e876bc16ac3adac262d2 /js/viewfeed.js
parent788cf0a1b1a8a7fc3561bc8eb3347ce204f2120f (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.js71
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);
}