summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-09-12 00:59:39 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-09-12 01:00:32 +0200
commit2391e6bf62e0a3624685a2a7c72bdb7de499bef2 (patch)
treebd8bbc00f9894a082f5628efd3ad79916da16e4d /js
parent00c6e040deec9c3998ab679dcb84fc46ae72d2ac (diff)
fix #342
Diffstat (limited to 'js')
-rw-r--r--js/app/controllers/settingscontroller.coffee8
-rw-r--r--js/app/services/businesslayer/feedbusinesslayer.coffee20
-rw-r--r--js/app/services/persistence.coffee8
-rw-r--r--js/public/app.js44
-rw-r--r--js/tests/controllers/settingscontrollerSpec.coffee21
-rw-r--r--js/tests/services/businesslayer/feedbusinesslayerSpec.coffee49
-rw-r--r--js/tests/services/persistenceSpec.coffee8
7 files changed, 54 insertions, 104 deletions
diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee
index b7cea8d21..120dfed49 100644
--- a/js/app/controllers/settingscontroller.coffee
+++ b/js/app/controllers/settingscontroller.coffee
@@ -37,14 +37,16 @@ angular.module('News').controller 'SettingsController',
$scope.error = true
- $scope.importGoogleReader = (fileContent) =>
+ $scope.importArticles = (fileContent) =>
$scope.jsonError = false
- ShowAll.setShowAll(true)
+ $scope.loading = true
try
parsedJSON = JSON.parse(fileContent)
- FeedBusinessLayer.importGoogleReader(parsedJSON)
+ FeedBusinessLayer.importArticles parsedJSON, ->
+ $scope.loading = false
catch error
$scope.jsonError = true
+ $scope.loading = false
] \ No newline at end of file
diff --git a/js/app/services/businesslayer/feedbusinesslayer.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee
index cff714ac0..9b5f08a1c 100644
--- a/js/app/services/businesslayer/feedbusinesslayer.coffee
+++ b/js/app/services/businesslayer/feedbusinesslayer.coffee
@@ -174,25 +174,11 @@ FeedModel, NewLoading, _ExistsError, Utils, $rootScope, NewestItem)->
@_feedModel.removeByUrl(url)
- importGoogleReader: (json) ->
- url = 'http://owncloud/googlereader' # hardcoded
-
- if angular.isUndefined(@_feedModel.getByUrl(url))
- feed =
- title: 'Google Reader'
- url: url
- folderId: 0
- unreadCount: 0
- faviconLink: 'url(' +
- @_utils.imagePath('core', 'loading.gif') + ')'
-
- @_feedModel.add(feed)
-
+ importArticles: (json, callback) ->
onSuccess = (response) =>
- id = response.data.feeds[0].id
- @load(id)
+ callback()
- @_persistence.importGoogleReader(json, onSuccess)
+ @_persistence.importArticles(json, onSuccess)
return new FeedBusinessLayer(ShowAll, FeedModel, Persistence, ActiveFeed,
diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee
index e1562fc46..559601f69 100644
--- a/js/app/services/persistence.coffee
+++ b/js/app/services/persistence.coffee
@@ -254,13 +254,15 @@ $rootScope, $q) ->
@_request.post 'news_feeds_update', params
- importGoogleReader: (json, onSuccess) ->
+ importArticles: (json, onSuccess) ->
params =
data:
json: json
- onSuccess: onSuccess
+ onSuccess: =>
+ @getAllFeeds()
+ onSuccess()
- @_request.post 'news_feeds_import_googlereader', params
+ @_request.post 'news_feeds_import_articles', params
###
diff --git a/js/public/app.js b/js/public/app.js
index 7f0b6c8f4..cd822b6a4 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -796,16 +796,19 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return $scope.error = true;
}
};
- return $scope.importGoogleReader = function(fileContent) {
+ return $scope.importArticles = function(fileContent) {
var error, parsedJSON;
$scope.jsonError = false;
- ShowAll.setShowAll(true);
+ $scope.loading = true;
try {
parsedJSON = JSON.parse(fileContent);
- return FeedBusinessLayer.importGoogleReader(parsedJSON);
+ return FeedBusinessLayer.importArticles(parsedJSON, function() {
+ return $scope.loading = false;
+ });
} catch (_error) {
error = _error;
- return $scope.jsonError = true;
+ $scope.jsonError = true;
+ return $scope.loading = false;
}
};
}
@@ -1128,26 +1131,13 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return this._feedModel.removeByUrl(url);
};
- FeedBusinessLayer.prototype.importGoogleReader = function(json) {
- var feed, onSuccess, url,
+ FeedBusinessLayer.prototype.importArticles = function(json, callback) {
+ var onSuccess,
_this = this;
- url = 'http://owncloud/googlereader';
- if (angular.isUndefined(this._feedModel.getByUrl(url))) {
- feed = {
- title: 'Google Reader',
- url: url,
- folderId: 0,
- unreadCount: 0,
- faviconLink: 'url(' + this._utils.imagePath('core', 'loading.gif') + ')'
- };
- this._feedModel.add(feed);
- }
onSuccess = function(response) {
- var id;
- id = response.data.feeds[0].id;
- return _this.load(id);
+ return callback();
};
- return this._persistence.importGoogleReader(json, onSuccess);
+ return this._persistence.importArticles(json, onSuccess);
};
return FeedBusinessLayer;
@@ -2802,15 +2792,19 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
return this._request.post('news_feeds_update', params);
};
- Persistence.prototype.importGoogleReader = function(json, onSuccess) {
- var params;
+ Persistence.prototype.importArticles = function(json, onSuccess) {
+ var params,
+ _this = this;
params = {
data: {
json: json
},
- onSuccess: onSuccess
+ onSuccess: function() {
+ _this.getAllFeeds();
+ return onSuccess();
+ }
};
- return this._request.post('news_feeds_import_googlereader', params);
+ return this._request.post('news_feeds_import_articles', params);
};
/*
diff --git a/js/tests/controllers/settingscontrollerSpec.coffee b/js/tests/controllers/settingscontrollerSpec.coffee
index 4f028975f..beb404261 100644
--- a/js/tests/controllers/settingscontrollerSpec.coffee
+++ b/js/tests/controllers/settingscontrollerSpec.coffee
@@ -30,13 +30,14 @@ describe 'SettingsController', ->
$provide.value 'Persistence', @persistence
return
- beforeEach inject ($controller, @FeedBusinessLayer, @FolderBusinessLayer,
- @ShowAll) =>
+ beforeEach inject ($controller, @ShowAll) =>
@scope = {}
@replace =
'$scope': @scope
'FolderBusinessLayer':
import: jasmine.createSpy('import')
+ 'FeedBusinessLayer':
+ importArticles: jasmine.createSpy('import')
@controller = $controller('SettingsController', @replace)
@@ -63,29 +64,27 @@ describe 'SettingsController', ->
expect(@ShowAll.getShowAll()).toBe(true)
- it 'should set showall to true if importing json', =>
+ it 'should set loading to true if importing json', =>
json = "[\"test\"]"
- @scope.importGoogleReader(json)
-
- expect(@ShowAll.getShowAll()).toBe(true)
+ @scope.importArticles(json)
+ expect(@scope.loading).toBe(true)
it 'should show an error if the json import failed', =>
json = 'test'
- @scope.importGoogleReader(json)
+ @scope.importArticles(json)
expect(@scope.jsonError).toBe(true)
it 'should import json', =>
- @FeedBusinessLayer.importGoogleReader = jasmine.createSpy('googlereader')
json = "{\"test\": \"abc\"}"
- @scope.importGoogleReader(json)
+ @scope.importArticles(json)
expected = JSON.parse(json)
- expect(@FeedBusinessLayer.importGoogleReader).toHaveBeenCalledWith(
- expected
+ expect(@replace.FeedBusinessLayer.importArticles).toHaveBeenCalledWith(
+ expected, jasmine.any(Function)
)
diff --git a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
index 92bbe4b2d..26e5a2973 100644
--- a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
+++ b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee
@@ -332,49 +332,16 @@ describe 'FeedBusinessLayer', ->
expect(@FeedModel.getByUrl('john')).toBe(undefined)
- it 'should not import google reader json', =>
- @persistence.importGoogleReader = jasmine.createSpy('importGoogleReader')
+ it 'should create an import article request', =>
+ callback = jasmine.createSpy('called')
+ @persistence.importArticles = jasmine.createSpy('importArticles')
+ @persistence.importArticles.andCallFake (data, onSuccess) =>
+ onSuccess()
json = {"test": "hi"}
- @FeedBusinessLayer.importGoogleReader(json)
+ @FeedBusinessLayer.importArticles(json, callback)
- imported = @FeedModel.getByUrl('http://owncloud/googlereader')
- expect(imported.title).toBe('Google Reader')
- expect(imported.folderId).toBe(0)
- expect(imported.unreadCount).toBe(0)
-
-
- it 'should not create a google reader feed if it already exists', =>
- @persistence.importGoogleReader = jasmine.createSpy('importGoogleReader')
-
- @FeedModel.add({id: 3, url: 'http://owncloud/googlereader'})
- json = {"test": "hi"}
- @FeedBusinessLayer.importGoogleReader(json)
-
- imported = @FeedModel.getByUrl('http://owncloud/googlereader')
- expect(imported.folderId).not.toBeDefined()
-
-
- it 'should create an import google reader request', =>
- returned =
- data:
- feeds: [
- {id: 3, url: 'hi'}
- ]
- @persistence.getItems = jasmine.createSpy('importGoogleReader')
- @persistence.importGoogleReader = jasmine.createSpy('importGoogleReader')
- @persistence.importGoogleReader.andCallFake (data, onSuccess) =>
- @FeedModel.handle(returned.data.feeds)
- onSuccess(returned)
-
- json = {"test": "hi"}
- @FeedBusinessLayer.importGoogleReader(json)
-
- expect(@persistence.importGoogleReader).toHaveBeenCalledWith(json,
+ expect(@persistence.importArticles).toHaveBeenCalledWith(json,
jasmine.any(Function))
- expect(@persistence.getItems).toHaveBeenCalledWith(
- @FeedType.Feed, returned.data.feeds[0].id, 0
- )
- expect(@ActiveFeed.getId()).toBe(returned.data.feeds[0].id)
- expect(@ActiveFeed.getType()).toBe(@FeedType.Feed)
+ expect(callback).toHaveBeenCalled()
diff --git a/js/tests/services/persistenceSpec.coffee b/js/tests/services/persistenceSpec.coffee
index 3a8a79050..e9f12f669 100644
--- a/js/tests/services/persistenceSpec.coffee
+++ b/js/tests/services/persistenceSpec.coffee
@@ -233,16 +233,16 @@ describe 'Persistence', ->
expect(@req.post).toHaveBeenCalledWith('news_feeds_create', params)
- it 'should do a proper import google reader request', =>
+ it 'should do a proper import articles request', =>
params =
data:
json: {"some": "json"}
- onSuccess: ->
+ onSuccess: jasmine.any(Function)
- @Persistence.importGoogleReader(params.data.json, params.onSuccess)
+ @Persistence.importArticles(params.data.json, ->)
- expect(@req.post).toHaveBeenCalledWith('news_feeds_import_googlereader',
+ expect(@req.post).toHaveBeenCalledWith('news_feeds_import_articles',
params)