diff options
-rw-r--r-- | js/app/services/bl/feedbl.coffee | 5 | ||||
-rw-r--r-- | js/public/app.js | 1 | ||||
-rw-r--r-- | js/tests/services/bl/feedblSpec.coffee | 27 | ||||
-rw-r--r-- | templates/part.listfeed.php | 4 | ||||
-rw-r--r-- | templates/part.listfolder.php | 2 |
5 files changed, 35 insertions, 4 deletions
diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/bl/feedbl.coffee index 02adb0f15..088f2e623 100644 --- a/js/app/services/bl/feedbl.coffee +++ b/js/app/services/bl/feedbl.coffee @@ -92,6 +92,11 @@ angular.module('News').factory 'FeedBl', setShowAll: (showAll) -> @_showAll.setShowAll(showAll) + @_persistence.getItems( + @_activeFeed.getType(), + @_activeFeed.getId(), + 0 + ) if showAll @_persistence.userSettingsReadShow() else diff --git a/js/public/app.js b/js/public/app.js index 944f99b7f..448778e9d 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -639,6 +639,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. FeedBl.prototype.setShowAll = function(showAll) { this._showAll.setShowAll(showAll); + this._persistence.getItems(this._activeFeed.getType(), this._activeFeed.getId(), 0); if (showAll) { return this._persistence.userSettingsReadShow(); } else { diff --git a/js/tests/services/bl/feedblSpec.coffee b/js/tests/services/bl/feedblSpec.coffee index 8cd8100a3..798fd2e6f 100644 --- a/js/tests/services/bl/feedblSpec.coffee +++ b/js/tests/services/bl/feedblSpec.coffee @@ -28,8 +28,10 @@ describe 'FeedBl', -> beforeEach => angular.module('News').factory 'Persistence', => @setFeedReadSpy = jasmine.createSpy('setFeedRead') + @getItemsSpy = jasmine.createSpy('Get Items') @persistence = { setFeedRead: @setFeedReadSpy + getItems: @getItemsSpy } beforeEach inject (@FeedBl, @FeedModel, @ItemModel, @FeedType, @@ -185,4 +187,27 @@ describe 'FeedBl', -> expect(@FeedBl.isShowAll()).toBe(false) @FeedBl.setShowAll(true) - expect(@FeedBl.isShowAll()).toBe(true)
\ No newline at end of file + expect(@FeedBl.isShowAll()).toBe(true) + + + it 'should reload the active feed if showall changed', => + @persistence.userSettingsReadShow = jasmine.createSpy('Show All') + @persistence.userSettingsReadHide = jasmine.createSpy('Hide All') + + @FeedBl.setShowAll(true) + + expect(@getItemsSpy).toHaveBeenCalledWith(@FeedType.Folder, 0, 0) + + + it 'should return all feeds of a folder', => + item1 = {id: 2, unreadCount:134, urlHash: 'a1', folderId: 3} + item2 = {id: 4, unreadCount:134, urlHash: 'a2', folderId: 2} + item3 = {id: 5, unreadCount:134, urlHash: 'a3', folderId: 3} + @FeedModel.add(item1) + @FeedModel.add(item2) + @FeedModel.add(item3) + + folders = @FeedBl.getFeedsOfFolder(3) + + expect(folders).toContain(item1) + expect(folders).toContain(item3)
\ No newline at end of file diff --git a/templates/part.listfeed.php b/templates/part.listfeed.php index 84b99ddee..a9d91718f 100644 --- a/templates/part.listfeed.php +++ b/templates/part.listfeed.php @@ -1,9 +1,9 @@ <li ng-class="{ active: feedBl.isActive(feed.id), - unread: feedBl.getUnreadCount(feed.id) != 0 + unread: feedBl.getUnreadCount(feed.id) > 0 }" ng-repeat="feed in feedBl.getFeedsOfFolder(<?php p($_['folderId']); ?>)" - ng-show="feedBl.isShown(feed.id)" + ng-show="feedBl.isVisible(feed.id)" data-id="{{ feed.id }}" class="feed" draggable> diff --git a/templates/part.listfolder.php b/templates/part.listfolder.php index e97de5f9b..897cea41b 100644 --- a/templates/part.listfolder.php +++ b/templates/part.listfolder.php @@ -4,7 +4,7 @@ collapsible: folderBl.hasFeeds(folder.id), unread: folderBl.getUnreadCount(folder.id) != 0 }" - ng-repeat="folder in folders" + ng-repeat="folder in folderBl.getAll()" ng-show="folderBl.isVisible(folder.id)" class="folder" data-id="{{folder.id}}" |