forked from Archives/Athou_commafeed
moved some functions to category directive scope
This commit is contained in:
@@ -16,19 +16,16 @@
|
||||
<span class="fldr" ng-click="toggleCategory(node)">
|
||||
<i ng-class="{'icon-caret-right': !node.expanded, 'icon-caret-down': node.expanded}"></i>
|
||||
</span>
|
||||
<span ng-click="categoryClick({id: node.id})">
|
||||
<span ng-class="{selected: (node.id == selectedId && selectedType == 'category'), unread: unreadCount({category:node})}">{{formatCategoryName({category:node})}}
|
||||
<span ng-click="categoryClicked(node.id)">
|
||||
<span ng-class="{selected: (node.id == selectedId && selectedType == 'category'), unread: unreadCount({category:node})}">{{formatCategoryName(node)}}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<ul ng-show="node.expanded" class="indent">
|
||||
<recursive>
|
||||
<category ng-repeat="child in node.children" ng-show="settingsService.settings.showRead == true || unreadCount({category:node}) > 0"
|
||||
node="child" feed-click="feedClick({id:id})"
|
||||
category-click="categoryClick({id:id})" selected-type="selectedType"
|
||||
node="child" selected-type="selectedType"
|
||||
selected-id="selectedId"
|
||||
format-category-name="formatCategoryName({category:category})"
|
||||
format-feed-name="formatFeedName({feed:feed})"
|
||||
unread-count="unreadCount({category:category})">
|
||||
</category>
|
||||
</recursive>
|
||||
@@ -48,10 +45,10 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a ng-click="feedClick({id: feed.id})" class="feed-link"
|
||||
<a ng-click="feedClicked(feed.id)" class="feed-link"
|
||||
ng-class="{selected: (feed.id == selectedId && selectedType == 'feed'), unread: feed.unread }">
|
||||
<favicon url="feed.feedUrl" />
|
||||
{{formatFeedName({feed:feed})}}
|
||||
{{formatFeedName(feed)}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -138,45 +138,6 @@ function($scope, $timeout, $stateParams, $window, $location, $state, $route, Cat
|
||||
$window.document.title = label;
|
||||
});
|
||||
|
||||
$scope.formatCategoryName = function(category) {
|
||||
var count = $scope.unreadCount(category);
|
||||
var label = category.name;
|
||||
if (count > 0) {
|
||||
label = label + ' (' + count + ')';
|
||||
}
|
||||
return label;
|
||||
};
|
||||
|
||||
$scope.formatFeedName = function(feed) {
|
||||
var label = feed.name;
|
||||
if (feed.unread > 0) {
|
||||
label = label + ' (' + feed.unread + ')';
|
||||
}
|
||||
return label;
|
||||
};
|
||||
|
||||
$scope.feedClicked = function(id) {
|
||||
if ($scope.selectedType == 'feed' && id == $scope.selectedId) {
|
||||
$scope.$emit('emitReload');
|
||||
} else {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'feed',
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.categoryClicked = function(id) {
|
||||
if ($scope.selectedType == 'category' && id == $scope.selectedId) {
|
||||
$scope.$emit('emitReload');
|
||||
} else {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'category',
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
var mark = function(node, entry) {
|
||||
var i;
|
||||
if (node.children) {
|
||||
|
||||
@@ -71,22 +71,18 @@ module.directive('recursive', ['$compile', function($compile) {
|
||||
};
|
||||
}]);
|
||||
|
||||
module.directive('category', ['$compile', function($compile) {
|
||||
module.directive('category', [function() {
|
||||
return {
|
||||
scope : {
|
||||
node : '=',
|
||||
selectedType : '=',
|
||||
selectedId : '=',
|
||||
feedClick : '&',
|
||||
categoryClick : '&',
|
||||
unreadCount : '&',
|
||||
formatCategoryName : '&',
|
||||
formatFeedName : '&'
|
||||
},
|
||||
restrict : 'E',
|
||||
replace : true,
|
||||
templateUrl : 'directives/category.html',
|
||||
controller : function($scope, $dialog, FeedService, CategoryService,
|
||||
controller : function($scope, $state, $dialog, FeedService, CategoryService,
|
||||
SettingsService) {
|
||||
$scope.settingsService = SettingsService;
|
||||
$scope.unsubscribe = function(subscription) {
|
||||
@@ -113,6 +109,45 @@ module.directive('category', ['$compile', function($compile) {
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.formatCategoryName = function(category) {
|
||||
var count = $scope.unreadCount({category:category});
|
||||
var label = category.name;
|
||||
if (count > 0) {
|
||||
label = label + ' (' + count + ')';
|
||||
}
|
||||
return label;
|
||||
};
|
||||
|
||||
$scope.formatFeedName = function(feed) {
|
||||
var label = feed.name;
|
||||
if (feed.unread > 0) {
|
||||
label = label + ' (' + feed.unread + ')';
|
||||
}
|
||||
return label;
|
||||
};
|
||||
|
||||
$scope.feedClicked = function(id) {
|
||||
if ($scope.selectedType == 'feed' && id == $scope.selectedId) {
|
||||
$scope.$emit('emitReload');
|
||||
} else {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'feed',
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.categoryClicked = function(id) {
|
||||
if ($scope.selectedType == 'category' && id == $scope.selectedId) {
|
||||
$scope.$emit('emitReload');
|
||||
} else {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'category',
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.renameFeed = function(feed) {
|
||||
var name = window.prompt('Rename feed : ', feed.name);
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
<div class="css-treeview" ng-controller="CategoryTreeCtrl">
|
||||
<ul>
|
||||
<category node="CategoryService.subscriptions"
|
||||
feed-click="feedClicked(id)" category-click="categoryClicked(id)"
|
||||
selected-type="selectedType" selected-id="selectedId"
|
||||
format-category-name="formatCategoryName(category)"
|
||||
format-feed-name="formatFeedName(feed)"
|
||||
unread-count="unreadCount(category)"> </category>
|
||||
</ul>
|
||||
</div>
|
||||
Reference in New Issue
Block a user