diff options
-rw-r--r-- | js/app/controllers/settingscontroller.coffee | 6 | ||||
-rw-r--r-- | js/app/services/bl/folderbl.coffee | 4 | ||||
-rw-r--r-- | js/public/app.js | 10 | ||||
-rw-r--r-- | js/tests/controllers/settingscontrollerSpec.coffee | 10 | ||||
-rw-r--r-- | js/tests/services/bl/folderblSpec.coffee | 9 |
5 files changed, 34 insertions, 5 deletions
diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee index 2df604c42..c65ccb35c 100644 --- a/js/app/controllers/settingscontroller.coffee +++ b/js/app/controllers/settingscontroller.coffee @@ -22,15 +22,19 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').controller 'SettingsController', -['$scope', 'FeedBl', 'FolderBl', ($scope, FeedBl, FolderBl) -> +['$scope', 'FeedBl', 'FolderBl', 'ShowAll', +($scope, FeedBl, FolderBl, ShowAll) -> $scope.feedBl = FeedBl $scope.import = (fileContent) => $scope.error = false + ShowAll.setShowAll(true) + try FolderBl.import(fileContent) catch error + console.log error $scope.error = true ]
\ No newline at end of file diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/bl/folderbl.coffee index a74ecc42f..ad3f5f97d 100644 --- a/js/app/services/bl/folderbl.coffee +++ b/js/app/services/bl/folderbl.coffee @@ -106,6 +106,7 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> folder = name: folderName + opened: true @_folderModel.add(folder) @@ -138,11 +139,14 @@ ItemModel, ShowAll, _ExistsError, OPMLParser)-> catch error if error instanceof _ExistsError folder = @_folderModel.getByName(item.getName()) + @open(folder.id) @_importElement(item, folder.id) else try @_feedBl.create(item.getUrl(), parentFolderId) catch error + console.log 'feed ' + item.getUrl() + ' exists' + console.log error return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence, diff --git a/js/public/app.js b/js/public/app.js index 26702cd11..d76937c47 100644 --- a/js/public/app.js +++ b/js/public/app.js @@ -455,7 +455,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. (function() { angular.module('News').controller('SettingsController', [ - '$scope', 'FeedBl', 'FolderBl', function($scope, FeedBl, FolderBl) { + '$scope', 'FeedBl', 'FolderBl', 'ShowAll', function($scope, FeedBl, FolderBl, ShowAll) { var _this = this; $scope.feedBl = FeedBl; @@ -463,10 +463,12 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. var error; $scope.error = false; + ShowAll.setShowAll(true); try { return FolderBl["import"](fileContent); } catch (_error) { error = _error; + console.log(error); return $scope.error = true; } }; @@ -965,7 +967,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. throw new _ExistsError(); } folder = { - name: folderName + name: folderName, + opened: true }; this._folderModel.add(folder); success = function(response) { @@ -1007,6 +1010,7 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. error = _error; if (error instanceof _ExistsError) { folder = this._folderModel.getByName(item.getName()); + this.open(folder.id); _results.push(this._importElement(item, folder.id)); } else { _results.push(void 0); @@ -1017,6 +1021,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. _results.push(this._feedBl.create(item.getUrl(), parentFolderId)); } catch (_error) { error = _error; + console.log('feed ' + item.getUrl() + ' exists'); + _results.push(console.log(error)); } } } diff --git a/js/tests/controllers/settingscontrollerSpec.coffee b/js/tests/controllers/settingscontrollerSpec.coffee index cedf5eb44..ec2df410c 100644 --- a/js/tests/controllers/settingscontrollerSpec.coffee +++ b/js/tests/controllers/settingscontrollerSpec.coffee @@ -25,7 +25,7 @@ describe 'SettingsController', -> beforeEach module 'News' - beforeEach inject ($controller, @FeedBl, @FolderBl) => + beforeEach inject ($controller, @FeedBl, @FolderBl, @ShowAll) => @scope = {} @replace = '$scope': @scope @@ -42,4 +42,12 @@ describe 'SettingsController', -> @scope.import(xml) expect(@scope.error).toBe(true) + + + it 'should set showall to true if importing', => + xml = 'test' + + @scope.import(xml) + + expect(@ShowAll.getShowAll()).toBe(true)
\ No newline at end of file diff --git a/js/tests/services/bl/folderblSpec.coffee b/js/tests/services/bl/folderblSpec.coffee index ba7e94de5..8bb40033d 100644 --- a/js/tests/services/bl/folderblSpec.coffee +++ b/js/tests/services/bl/folderblSpec.coffee @@ -30,6 +30,7 @@ describe 'FolderBl', -> @persistence = createFolder: -> createFeed: -> + openFolder: -> beforeEach inject (@FolderBl, @FolderModel, @FeedModel, @ShowAll, @ActiveFeed, @FeedType, @_ExistsError) => @@ -155,6 +156,7 @@ describe 'FolderBl', -> it 'should create a folder before theres a response from the server', => @FolderBl.create('johns') expect(@FolderModel.size()).toBe(1) + expect(@FolderModel.getByName('johns').opened).toBe(true) it 'should make a create folder request', => @@ -363,8 +365,10 @@ describe 'FolderBl', -> it 'should use an existing folder when importing a folder', => @persistence.createFolder = jasmine.createSpy('create folder') @persistence.createFeed = jasmine.createSpy('create feed') + @persistence.openFolder = jasmine.createSpy('open folder') - @FolderModel.add({id: 2, name: 'design'}) + folder = {id: 2, name: 'design', opened: false} + @FolderModel.add(folder) xml = '<?xml version="1.0" ?> <opml version="1.1"> <!--Generated by NewsBlur - www.newsblur.com--> @@ -395,6 +399,9 @@ describe 'FolderBl', -> expect(@persistence.createFolder).not.toHaveBeenCalled() expect(@persistence.createFeed).toHaveBeenCalledWith( 'http://worrydream.com/feed.xml', 2, jasmine.any(Function)) + expect(folder.opened).toBe(true) + expect(@persistence.openFolder).toHaveBeenCalled() + it 'should not import a feed if it already exists', => |