summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-04 21:18:43 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-04 21:18:43 +0200
commit76267670f3dcb6793a62a30477db830f482b4495 (patch)
tree92e42518925cfe367070163f5377db24a1f5de6c /js
parent346346e01c5c61e61b522520248de90e0ede3f17 (diff)
finished feedbl methods
Diffstat (limited to 'js')
-rw-r--r--js/app/services/bl/feedbl.coffee17
-rw-r--r--js/public/app.js21
-rw-r--r--js/tests/services/bl/feedblSpec.coffee42
3 files changed, 76 insertions, 4 deletions
diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/bl/feedbl.coffee
index d9524ae37..fa324f20f 100644
--- a/js/app/services/bl/feedbl.coffee
+++ b/js/app/services/bl/feedbl.coffee
@@ -73,7 +73,22 @@ angular.module('News').factory 'FeedBl',
return @_feedModel.size()
- # todo isvisible, move
+ isVisible: (feedId) ->
+ if @isActive(feedId) or @_showAll.getShowAll()
+ return true
+ else
+ return @_feedModel.getFeedUnreadCount(feedId) > 0
+
+
+ move: (feedId, folderId) ->
+ feed = @_feedModel.getById(feedId)
+ if angular.isDefined(feed) and feed.folderId != folderId
+ @_feedModel.update({
+ id: feedId,
+ folderId: folderId,
+ urlHash: feed.urlHash})
+ @_persistence.moveFeed(feedId, folderId)
+
return new FeedBl(ShowAll, FeedModel, Persistence, ActiveFeed, FeedType,
ItemModel)
diff --git a/js/public/app.js b/js/public/app.js
index c4aa53323..bdb196fbf 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -697,6 +697,27 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return this._feedModel.size();
};
+ FeedBl.prototype.isVisible = function(feedId) {
+ if (this.isActive(feedId) || this._showAll.getShowAll()) {
+ return true;
+ } else {
+ return this._feedModel.getFeedUnreadCount(feedId) > 0;
+ }
+ };
+
+ FeedBl.prototype.move = function(feedId, folderId) {
+ var feed;
+ feed = this._feedModel.getById(feedId);
+ if (angular.isDefined(feed) && feed.folderId !== folderId) {
+ this._feedModel.update({
+ id: feedId,
+ folderId: folderId,
+ urlHash: feed.urlHash
+ });
+ return this._persistence.moveFeed(feedId, folderId);
+ }
+ };
+
return FeedBl;
})(_Bl);
diff --git a/js/tests/services/bl/feedblSpec.coffee b/js/tests/services/bl/feedblSpec.coffee
index 241ba20f5..2ca742cc7 100644
--- a/js/tests/services/bl/feedblSpec.coffee
+++ b/js/tests/services/bl/feedblSpec.coffee
@@ -32,8 +32,10 @@ describe 'FeedBl', ->
setFeedRead: @setFeedReadSpy
}
- beforeEach inject (@FeedBl, @FeedModel, @ItemModel) =>
-
+ beforeEach inject (@FeedBl, @FeedModel, @ItemModel, @FeedType,
+ @ShowAll, @ActiveFeed) =>
+ @ShowAll.setShowAll(false)
+ @ActiveFeed.handle({type: @FeedType.Folder, id:0})
it 'should delete feeds', =>
@FeedModel.removeById = jasmine.createSpy('remove')
@@ -116,4 +118,38 @@ describe 'FeedBl', ->
@FeedModel.add({id: 5, unreadCount:2, urlHash: 'a2'})
count = @FeedBl.getNumberOfFeeds()
- expect(count).toBe(2) \ No newline at end of file
+ expect(count).toBe(2)
+
+
+ it 'should be visible if its active', =>
+ @ActiveFeed.handle({type: @FeedType.Feed, id:3})
+ expect(@FeedBl.isVisible(3)).toBe(true)
+
+
+ it 'should be visible if show all is true', =>
+ expect(@FeedBl.isVisible(3)).toBe(false)
+
+ @ShowAll.setShowAll(true)
+ expect(@FeedBl.isVisible(3)).toBe(true)
+
+
+ it 'should be visible if unreadcount bigger than 0', =>
+ @FeedModel.add({id: 2, unreadCount:134, urlHash: 'a1'})
+ expect(@FeedBl.isVisible(2)).toBe(true)
+
+
+ it 'should not move the feed to a new folder', =>
+ @persistence.moveFeed = jasmine.createSpy('Move feed')
+ @FeedModel.add({id: 2, unreadCount:134, urlHash: 'a1', folderId: 3})
+ @FeedBl.move(2, 4)
+
+ expect(@persistence.moveFeed).toHaveBeenCalledWith(2, 4)
+ expect(@FeedModel.getById(2).folderId).toBe(4)
+
+
+ it 'should not move the feed to the same folder', =>
+ @persistence.moveFeed = jasmine.createSpy('Move feed')
+ @FeedModel.add({id: 2, unreadCount:134, urlHash: 'a1', folderId: 3})
+ @FeedBl.move(2, 3)
+
+ expect(@persistence.moveFeed).not.toHaveBeenCalled() \ No newline at end of file