Skip nested Feed when calling getNextUnreadFeed()
This function is only called when using "Mark all as read". So every time, this function gets called right now, all nested categories get marked as read as well, so we don't want to jump to them. Instead we want to the next category with same or higher tier.
This commit is contained in:
parent
1fa5c5409d
commit
d922b09c43
2 changed files with 9 additions and 4 deletions
|
@ -55,6 +55,7 @@ class Pref_Feeds extends Handler_Protected {
|
||||||
$cat['unread'] = 0;
|
$cat['unread'] = 0;
|
||||||
$cat['child_unread'] = 0;
|
$cat['child_unread'] = 0;
|
||||||
$cat['auxcounter'] = 0;
|
$cat['auxcounter'] = 0;
|
||||||
|
$cat['parent_id'] = $cat_id;
|
||||||
|
|
||||||
$cat['items'] = $this->get_category_items($line['id']);
|
$cat['items'] = $this->get_category_items($line['id']);
|
||||||
|
|
||||||
|
|
|
@ -58,12 +58,12 @@ dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
|
||||||
|
|
||||||
if (is_cat) {
|
if (is_cat) {
|
||||||
treeItem = this.store._itemsByIdentity['CAT:' + feed];
|
treeItem = this.store._itemsByIdentity['CAT:' + feed];
|
||||||
items = this.store._arrayOfTopLevelItems;
|
|
||||||
} else {
|
} else {
|
||||||
treeItem = this.store._itemsByIdentity['FEED:' + feed];
|
treeItem = this.store._itemsByIdentity['FEED:' + feed];
|
||||||
items = this.store._arrayOfAllItems;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
items = this.store._arrayOfAllItems;
|
||||||
|
|
||||||
for (var i = 0; i < items.length; i++) {
|
for (var i = 0; i < items.length; i++) {
|
||||||
if (items[i] == treeItem) {
|
if (items[i] == treeItem) {
|
||||||
|
|
||||||
|
@ -71,14 +71,18 @@ dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
|
||||||
var unread = this.store.getValue(items[j], 'unread');
|
var unread = this.store.getValue(items[j], 'unread');
|
||||||
var id = this.store.getValue(items[j], 'id');
|
var id = this.store.getValue(items[j], 'id');
|
||||||
|
|
||||||
if (unread > 0 && (is_cat || id.match("FEED:"))) return items[j];
|
if (unread > 0 && ((is_cat && id.match("CAT:")) || (!is_cat && id.match("FEED:")))) {
|
||||||
|
if( !is_cat || ! (this.store.hasAttribute(items[j], 'parent_id') && this.store.getValue(items[j], 'parent_id') == feed) ) return items[j];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var j = 0; j < i; j++) {
|
for (var j = 0; j < i; j++) {
|
||||||
var unread = this.store.getValue(items[j], 'unread');
|
var unread = this.store.getValue(items[j], 'unread');
|
||||||
var id = this.store.getValue(items[j], 'id');
|
var id = this.store.getValue(items[j], 'id');
|
||||||
|
|
||||||
if (unread > 0 && (is_cat || id.match("FEED:"))) return items[j];
|
if (unread > 0 && ((is_cat && id.match("CAT:")) || (!is_cat && id.match("FEED:")))) {
|
||||||
|
if( !is_cat || ! (this.store.hasAttribute(items[j], 'parent_id') && this.store.getValue(items[j], 'parent_id') == feed) ) return items[j];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue