summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-13 17:28:33 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-13 17:28:38 +0200
commitee9e17ef17cb212e8a89175fccfa4f44b6da8ad5 (patch)
tree7e2c8bb470a1b920030c93c320d95131ba888e9b /js
parent38e4b6d7e973bc99811139066a7a047b4bd76a4c (diff)
implement opml import, fix #23
Diffstat (limited to 'js')
-rw-r--r--js/app/controllers/settingscontroller.coffee6
-rw-r--r--js/app/services/bl/folderbl.coffee4
-rw-r--r--js/public/app.js10
-rw-r--r--js/tests/controllers/settingscontrollerSpec.coffee10
-rw-r--r--js/tests/services/bl/folderblSpec.coffee9
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', =>