summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2013-12-19 15:15:32 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2013-12-19 15:15:32 +0100
commit6dc8dad23eea121989e0a89a67e92091802857a0 (patch)
tree15d6b5eda5fece8bf691d5ef8662f697b56b7073 /js/app
parent28d28d8c9eb5ed9f184b572cfd16994c024e4227 (diff)
add persistent option for compact view
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/itemcontroller.coffee13
-rw-r--r--js/app/controllers/settingscontroller.coffee13
-rw-r--r--js/app/services/compact.coffee38
-rw-r--r--js/app/services/persistence.coffee16
-rw-r--r--js/app/services/services.coffee5
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
]