diff options
author | Andrew Dolgov <[email protected]> | 2012-08-13 19:52:34 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-08-13 19:52:34 +0400 |
commit | 2c5f231e439dac3fc68422fbb1c8ec57e9d8b35d (patch) | |
tree | c86b2221340be229995caf799ea45afeac441fff /js | |
parent | be514d00c9df66392e85529d2df78d4de1601a98 (diff) |
add special indication for categories having unread items in child categories
Diffstat (limited to 'js')
-rw-r--r-- | js/FeedTree.js | 27 | ||||
-rw-r--r-- | js/feedlist.js | 16 |
2 files changed, 41 insertions, 2 deletions
diff --git a/js/FeedTree.js b/js/FeedTree.js index 30e625015..b39e72862 100644 --- a/js/FeedTree.js +++ b/js/FeedTree.js @@ -120,6 +120,14 @@ dojo.declare("fox.FeedTree", dijit.Tree, { dojo.place(span, tnode.iconNode, 'replace'); } + if (id.match("CAT:") && bare_id > 0) { + param = dojo.doc.createElement('span'); + param.className = 'feedParam'; + param.innerHTML = ""; + dojo.place(param, tnode.labelNode, 'after'); + tnode._paramNode = param; + } + if (id.match("FEED:") && bare_id > 0) { var menu = new dijit.Menu(); menu.row_id = bare_id; @@ -183,11 +191,15 @@ dojo.declare("fox.FeedTree", dijit.Tree, { name = name.replace(/</g, "<"); name = name.replace(/>/g, ">"); + var label; + if (item.unread > 0) { - return name + " (" + item.unread + ")"; + label = name + " (" + item.unread + ")"; } else { - return name; + label = name; } + + return label; }, selectFeed: function(feed, is_cat) { if (is_cat) @@ -443,4 +455,15 @@ dojo.declare("fox.FeedTree", dijit.Tree, { return false; } }, + setCatParam: function(cat, value) { + var treeNode = this._itemNodesMap['CAT:' + cat]; + + if (treeNode && treeNode[0] && treeNode[0]._paramNode) { + if (value > 0) + treeNode[0]._paramNode.innerHTML = '+' + value; + else + treeNode[0]._paramNode.innerHTML = ""; + } + this.model.setFeedValue(cat, true, 'child_unread', value); + }, }); diff --git a/js/feedlist.js b/js/feedlist.js index 13cdc2694..18d4a9770 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -286,6 +286,7 @@ function parse_counters(elems, scheduled_call) { var error = elems[l].error; var has_img = elems[l].has_img; var updated = elems[l].updated; + var child_unread = parseInt(elems[l].child_counter); if (id == "global-unread") { global_unread = ctr; @@ -322,6 +323,8 @@ function parse_counters(elems, scheduled_call) { setFeedIcon(id, false, 'images/blank_icon.gif'); } } + } else { + setCatParam(id, child_unread); } } @@ -411,6 +414,19 @@ function setFeedValue(feed, is_cat, key, value) { } } +function setCatParam(cat, value) { + try { + var tree = dijit.byId("feedTree"); + + if (tree && tree.model) + return tree.setCatParam(cat, value); + + } catch (e) { + // + } +} + + function selectFeed(feed, is_cat) { try { var tree = dijit.byId("feedTree"); |