From 8df6d36d49d89f3bb7186b36436606adb039b3f8 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Tue, 16 Apr 2013 13:19:28 +0200 Subject: move instantiation into file where object is declared, fix unittests that overwrote services for all unittests and caused them to fail --- js/app/services/persistence.coffee | 139 ++++++++++++++++++++++++++++--------- 1 file changed, 108 insertions(+), 31 deletions(-) (limited to 'js/app/services/persistence.coffee') diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index 2b627301a..4c4ceb370 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -20,33 +20,31 @@ License along with this library. If not, see . ### +angular.module('News').factory 'Persistence', +['Request', 'FeedLoading', 'AutoPageLoading', 'NewLoading', 'Config', +'ActiveFeed', '$rootScope', +(Request, FeedLoading, AutoPageLoading, NewLoading, Config, ActiveFeed, +$rootScope) -> -angular.module('News').factory '_Persistence', -> - class Persistence - constructor: (@_request, @_loading, @_config, @_activeFeed, - @_$rootScope) -> + constructor: (@_request, @_feedLoading, @_autoPageLoading, @_newLoading, + @_config, @_activeFeed, @_$rootScope) -> init: -> ### Loads the initial data from the server ### - @_loading.increase() # items can only be loaded after the active feed is known @getActiveFeed => - @getItems @_activeFeed.getType(), @_activeFeed.getId(), 0, => - @_loading.decrease() + @getItems(@_activeFeed.getType(), @_activeFeed.getId()) - triggerHideRead = => - @_triggerHideRead - - @getAllFolders(triggerHideRead) - @getAllFeeds(triggerHideRead) - @userSettingsRead(triggerHideRead) - @getStarredItems(triggerHideRead) + @getAllFolders() + @getAllFeeds() + @userSettingsRead() + @getStarredItems() @userSettingsLanguage() @@ -54,9 +52,22 @@ angular.module('News').factory '_Persistence', -> ITEM CONTROLLER ### getItems: (type, id, offset, onSuccess=null, updatedSince=null) -> - onSuccess or= -> + # show different loading signs + if offset == 0 + loading = @_feedLoading + else + loading = @_autoPageLoading + + # loading sign handling + loading.increase() + successCallbackWrapper = (data) => + onSuccess() + loading.decrease() + failureCallbackWrapper = (data) => + loading.decrease() + if updatedSince != null data = updatedSince: updatedSince @@ -71,14 +82,27 @@ angular.module('News').factory '_Persistence', -> params = data: data - onSuccess: onSuccess + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper @_request.get 'news_items', params getStarredItems: (onSuccess) -> + onSuccess or= -> + + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + params = - onSuccess: onSuccess + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper + @_request.get 'news_items_starred', params @@ -132,17 +156,36 @@ angular.module('News').factory '_Persistence', -> ### FEED CONTROLLER ### - getAllFeeds: (callback) -> - callback or= -> + getAllFeeds: (onSuccess) -> + onSuccess or= -> + + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + params = - onSuccess: callback + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper @_request.get 'news_feeds', params getActiveFeed: (onSuccess) -> + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + params = - onSuccess: onSuccess + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper @_request.get 'news_feeds_active', params @@ -208,10 +251,20 @@ angular.module('News').factory '_Persistence', -> ### FOLDER CONTROLLER ### - getAllFolders: (callback) -> - callback or= -> + getAllFolders: (onSuccess) -> + onSuccess or= -> + + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + params = - onSuccess: callback + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper @_request.get 'news_folders', params @@ -292,13 +345,23 @@ angular.module('News').factory '_Persistence', -> ### USERSETTINGS CONTROLLER ### - userSettingsRead: (callback=null) -> + userSettingsRead: (onSuccess=null) -> ### Gets the configs for read settings ### - callback or= -> + onSuccess or= -> + + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + params = - onSuccess: callback + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper @_request.get 'news_usersettings_read', params @@ -321,10 +384,21 @@ angular.module('News').factory '_Persistence', -> @_request.post 'news_usersettings_read_hide', data - userSettingsLanguage: (callback=null) -> - callback or= -> + userSettingsLanguage: (onSuccess=null) -> + onSuccess or= -> + + # loading sign handling + @_feedLoading.increase() + successCallbackWrapper = (data) => + onSuccess() + @_feedLoading.decrease() + failureCallbackWrapper = (data) => + @_feedLoading.decrease() + data = - onSuccess: callback + onSuccess: successCallbackWrapper + onFailure: failureCallbackWrapper + @_request.get 'news_usersettings_language', data @@ -332,5 +406,8 @@ angular.module('News').factory '_Persistence', -> @_$rootScope.$broadcast('triggerHideRead') - return Persistence + return new Persistence(Request, FeedLoading, AutoPageLoading, NewLoading, + Config, ActiveFeed, $rootScope) + +] -- cgit v1.2.3