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); $location.path('/feeds/view/category/' + id);
}; };
var markAsRead = function(children, entry, read) { var markAsRead = function(node, entry, read) {
for ( var i = 0; i < children.length; i++) { if (node.children) {
var child = children[i]; for ( var i = 0; i < node.children.length; i++) {
if (child.children) { markAsRead(node.children[i], entry, read);
markAsRead(child.children, entry, read);
} }
if (child.feeds) { }
for ( var j = 0; j < child.feeds.length; j++) { if (node.feeds) {
var feed = child.feeds[j]; for ( var i = 0; i < node.feeds.length; i++) {
if (feed.id == entry.feedId) { var feed = node.feeds[i];
var c = read ? -1 : 1; if (feed.id == entry.feedId) {
feed.unread = feed.unread + c; var c = read ? -1 : 1;
} feed.unread = feed.unread + c;
} }
} }
} }
}; };
$scope.$on('markAsRead', function(event, args) { $scope.$on('markAsRead', function(event, args) {
console.log(args.entry) markAsRead($scope.root, args.entry, args.read)
markAsRead($scope.root.children, args.entry, args.read)
}); });
}); });

View File

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