diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2013-12-19 15:15:32 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2013-12-19 15:15:32 +0100 |
commit | 6dc8dad23eea121989e0a89a67e92091802857a0 (patch) | |
tree | 15d6b5eda5fece8bf691d5ef8662f697b56b7073 /js/app | |
parent | 28d28d8c9eb5ed9f184b572cfd16994c024e4227 (diff) |
add persistent option for compact view
Diffstat (limited to 'js/app')
-rw-r--r-- | js/app/controllers/itemcontroller.coffee | 13 | ||||
-rw-r--r-- | js/app/controllers/settingscontroller.coffee | 13 | ||||
-rw-r--r-- | js/app/services/compact.coffee | 38 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 16 | ||||
-rw-r--r-- | js/app/services/services.coffee | 5 |
5 files changed, 78 insertions, 7 deletions
diff --git a/js/app/controllers/itemcontroller.coffee b/js/app/controllers/itemcontroller.coffee index 1a3c876b9..ee2fa7e82 100644 --- a/js/app/controllers/itemcontroller.coffee +++ b/js/app/controllers/itemcontroller.coffee @@ -23,15 +23,15 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').controller 'ItemController', ['$scope', 'ItemBusinessLayer', 'FeedModel', 'FeedLoading', 'FeedBusinessLayer', -'Language', 'AutoPageLoading', +'Language', 'AutoPageLoading', 'Compact', ($scope, ItemBusinessLayer, FeedModel, FeedLoading, FeedBusinessLayer, -Language, AutoPageLoading) -> +Language, AutoPageLoading, Compact) -> class ItemController constructor: (@_$scope, @_itemBusinessLayer, @_feedModel, @_feedLoading, @_autoPageLoading, @_feedBusinessLayer, - @_language) -> + @_language, @_compact) -> @_autoPaging = true @_$scope.itemBusinessLayer = @_itemBusinessLayer @@ -84,6 +84,11 @@ Language, AutoPageLoading) -> @_autoPaging = true + @_$scope.isCompactView = => + return @_compact.isCompact() + + return new ItemController($scope, ItemBusinessLayer, FeedModel, FeedLoading, - AutoPageLoading, FeedBusinessLayer, Language) + AutoPageLoading, FeedBusinessLayer, Language, + Compact) ]
\ No newline at end of file diff --git a/js/app/controllers/settingscontroller.coffee b/js/app/controllers/settingscontroller.coffee index b5cfb7550..66f7f8824 100644 --- a/js/app/controllers/settingscontroller.coffee +++ b/js/app/controllers/settingscontroller.coffee @@ -23,7 +23,9 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').controller 'SettingsController', ['$scope', 'FeedBusinessLayer', 'FolderBusinessLayer', 'ShowAll', -($scope, FeedBusinessLayer, FolderBusinessLayer, ShowAll) -> +'Persistence', 'Compact', +($scope, FeedBusinessLayer, FolderBusinessLayer, ShowAll, Persistence, +Compact) -> $scope.feedBusinessLayer = FeedBusinessLayer @@ -49,4 +51,13 @@ angular.module('News').controller 'SettingsController', $scope.jsonError = true $scope.loading = false + + $scope.setCompactView = (isCompact) -> + Compact.handle(!Compact.isCompact()) + + Persistence.userSettingsSetCompact(Compact.isCompact()) + + $scope.isCompactView = -> + return Compact.isCompact() + ]
\ No newline at end of file diff --git a/js/app/services/compact.coffee b/js/app/services/compact.coffee new file mode 100644 index 000000000..55f96fb59 --- /dev/null +++ b/js/app/services/compact.coffee @@ -0,0 +1,38 @@ +### + +ownCloud - News + +@author Bernhard Posselt +@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +License as published by the Free Software Foundation; either +version 3 of the License, or any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU AFFERO GENERAL PUBLIC LICENSE for more details. + +You should have received a copy of the GNU Affero General Public +License along with this library. If not, see <http://www.gnu.org/licenses/>. + +### + +angular.module('News').factory 'Compact', -> + + class Compact + + constructor: -> + @_compact = false + + isCompact: -> + return @_compact + + handle: (data) -> + @_compact = data + + + return new Compact() + diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index 6bf040e07..05558b3e1 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -51,6 +51,7 @@ $rootScope, $q) -> @getAllFeeds(successCallback) @userSettingsRead() @userSettingsLanguage() + @userSettingsIsCompact() @deferred.promise @@ -474,6 +475,21 @@ $rootScope, $q) -> @_request.get 'news_usersettings_language', data + userSettingsIsCompact: -> + @_request.get 'news_usersettings_iscompact' + + + userSettingsSetCompact: (isCompact) -> + ### + sets all items of a folder as read + ### + params = + data: + compact: isCompact + + @_request.post 'news_usersettings_setcompact', params + + _triggerHideRead: -> @_$rootScope.$broadcast('triggerHideRead') diff --git a/js/app/services/services.coffee b/js/app/services/services.coffee index a5297f0a1..1a7633d42 100644 --- a/js/app/services/services.coffee +++ b/js/app/services/services.coffee @@ -45,9 +45,9 @@ angular.module('News').factory 'NewLoading', ['_Loading', (_Loading) -> angular.module('News').factory 'Publisher', ['_Publisher', 'ActiveFeed', 'ShowAll', 'StarredCount', 'ItemModel', -'FolderModel', 'FeedModel', 'Language', 'NewestItem', +'FolderModel', 'FeedModel', 'Language', 'NewestItem', 'Compact', (_Publisher, ActiveFeed, ShowAll, StarredCount, ItemModel, -FolderModel, FeedModel, Language, NewestItem) -> +FolderModel, FeedModel, Language, NewestItem, Compact) -> # register items at publisher to automatically add incoming items publisher = new _Publisher() @@ -59,6 +59,7 @@ FolderModel, FeedModel, Language, NewestItem) -> publisher.subscribeObjectTo(FeedModel, 'feeds') publisher.subscribeObjectTo(ItemModel, 'items') publisher.subscribeObjectTo(NewestItem, 'newestItemId') + publisher.subscribeObjectTo(Compact, 'compact') return publisher ] |