fix markAsRead propagation

This commit is contained in:
Athou
2013-03-22 22:20:17 +01:00
parent 87000b0e11
commit b56661c72e
2 changed files with 25 additions and 29 deletions

View File

@@ -55,27 +55,25 @@ module.controller('CategoryTreeCtrl', function($scope, $routeParams, $location,
$location.path('/feeds/view/category/' + id);
};
var markAsRead = function(children, entry, read) {
for ( var i = 0; i < children.length; i++) {
var child = children[i];
if (child.children) {
markAsRead(child.children, entry, read);
var markAsRead = function(node, entry, read) {
if (node.children) {
for ( var i = 0; i < node.children.length; i++) {
markAsRead(node.children[i], entry, read);
}
if (child.feeds) {
for ( var j = 0; j < child.feeds.length; j++) {
var feed = child.feeds[j];
if (feed.id == entry.feedId) {
var c = read ? -1 : 1;
feed.unread = feed.unread + c;
}
}
if (node.feeds) {
for ( var i = 0; i < node.feeds.length; i++) {
var feed = node.feeds[i];
if (feed.id == entry.feedId) {
var c = read ? -1 : 1;
feed.unread = feed.unread + c;
}
}
}
};
$scope.$on('markAsRead', function(event, args) {
console.log(args.entry)
markAsRead($scope.root.children, args.entry, args.read)
markAsRead($scope.root, args.entry, args.read)
});
});

View File

@@ -3,28 +3,26 @@
<div class="span2" ng-controller="CategoryTreeCtrl">
<div class="css-treeview">
<ul>
<category node="root" feed-click="feedClicked(id)" category-click="categoryClicked(id)"
selected-type="selectedType" selected-id="selectedId"
format-category-name="formatCategoryName(category)" format-feed-name="formatFeedName(feed)">
</category>
<!-- <li ng-repeat="node in root.children"> -->
<!-- <category node="node" feed-click="feedClicked(id)" category-click="categoryClicked(id)" -->
<!-- selected-type="selectedType" selected-id="selectedId" -->
<!-- format-category-name="formatCategoryName(category)" format-feed-name="formatFeedName(feed)"> -->
<!-- </category> -->
<!-- </li> -->
<category node="root" feed-click="feedClicked(id)"
category-click="categoryClicked(id)" selected-type="selectedType"
selected-id="selectedId"
format-category-name="formatCategoryName(category)"
format-feed-name="formatFeedName(feed)"> </category>
</ul>
</div>
</div>
<div class="span10" ng-controller="FeedListCtrl">
<span>{{entryList.name}}</span><span ng-show="selectedType == 'category'"> &#187;</span>
<span>{{entryList.name}}</span><span
ng-show="selectedType == 'category'"> &#187;</span>
<div class="accordion" id="feed-accordion">
<div class="accordion-group" ng-repeat="entry in entryList.entries">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" ng-click="markAsRead(entry)" ng-class="{unread: entry.read == false}"
<a class="accordion-toggle" data-toggle="collapse"
ng-click="markAsRead(entry)"
ng-class="{unread: entry.read == false}"
data-parent="#feed-accordion" href="{{'#feed-body' + $index}}">
<span ng-show="selectedType == 'category'">{{entry.feedName}} - </span>{{entry.title}}
<span class="pull-right">{{entry.date}}</span>
<span ng-show="selectedType == 'category'">{{entry.feedName}}
- </span>{{entry.title}} <span class="pull-right">{{entry.date}}</span>
</a>
</div>
<div id="{{'feed-body' + $index}}" class="accordion-body collapse">
@@ -34,6 +32,6 @@
</div>
</div>
</div>
</div>