summaryrefslogtreecommitdiffstats
path: root/js/app/Config.js
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-19 15:51:26 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-19 15:51:26 +0200
commit11f0246acd0daab1067eb32099fa26f05a26ea21 (patch)
tree67012a66a89be2f43910dee41a6e023d7645b29b /js/app/Config.js
parent928ccf49fb5c6deb405358ad38221b0cd205fb6b (diff)
subscribe to more channels and fetch more feeds on init
Diffstat (limited to 'js/app/Config.js')
-rw-r--r--js/app/Config.js72
1 files changed, 57 insertions, 15 deletions
diff --git a/js/app/Config.js b/js/app/Config.js
index 290726343..5581af0e4 100644
--- a/js/app/Config.js
+++ b/js/app/Config.js
@@ -9,19 +9,22 @@
*/
app.config(function ($routeProvider, $provide, $httpProvider) {
'use strict';
+ var getResolve,
+ feedType;
- // constants
- $provide.constant('CONFIG', {
- REFRESH_RATE: 60 // refresh feeds every 60 seconds
- });
- $provide.constant('BASE_URL', OC.generateUrl('/apps/news'));
- $provide.constant('FEED_TYPE', {
+ feedType = {
FEED: 0,
FOLDER: 1,
STARRED: 2,
SUBSCRIPTIONS: 3,
SHARED: 4
- });
+ };
+
+ // constants
+ $provide.constant('REFRESH_RATE', 60); // seconds, how often feeds and folders shoudl be refreshed
+ $provide.constant('ITEM_BATCH_SIZE', 50); // how many items to autopage by
+ $provide.constant('BASE_URL', OC.generateUrl('/apps/news'));
+ $provide.constant('FEED_TYPE', feedType);
// make sure that the CSRF header is only sent to the ownCloud domain
$provide.factory('CSRFInterceptor', function ($q, BASE_URL) {
@@ -38,26 +41,65 @@ app.config(function ($routeProvider, $provide, $httpProvider) {
$httpProvider.interceptors.push('CSRFInterceptor');
// routing
+ getResolve = function (type) {
+ return {
+ // request to items also returns feeds
+ data: [
+ '$http',
+ '$route',
+ '$q',
+ 'BASE_URL',
+ 'ITEM_BATCH_SIZE',
+ function ($http, $route, $q, BASE_URL, ITEM_BATCH_SIZE) {
+
+ var parameters,
+ deferred;
+
+ parameters = {
+ type: type,
+ limit: ITEM_BATCH_SIZE
+ };
+
+ if ($route.current.params.id !== undefined) {
+ parameters.id = $route.current.params.id;
+ }
+
+ deferred = $q.defer();
+
+ $http({
+ url: BASE_URL + '/items',
+ method: 'GET',
+ params: parameters
+ }).success(function (data) {
+ deferred.resolve(data);
+ });
+
+ return deferred.promise;
+ }
+ ]
+ };
+ };
+
$routeProvider
.when('/items', {
- controller: 'ItemController',
+ controller: 'ContentController',
templateUrl: 'content.html',
- resolve: {}
+ resolve: getResolve(feedType.SUBSCRIPTIONS)
})
.when('/items/starred', {
- controller: 'StarredController',
+ controller: 'ContentController',
templateUrl: 'content.html',
- resolve: {}
+ resolve: getResolve(feedType.STARRED)
})
.when('/items/feeds/:id', {
- controller: 'FeedController',
+ controller: 'ContentController',
templateUrl: 'content.html',
- resolve: {}
+ resolve: getResolve(feedType.FEED)
})
.when('/items/folders/:id', {
- controller: 'FolderController',
+ controller: 'ContentController',
templateUrl: 'content.html',
- resolve: {}
+ resolve: getResolve(feedType.FOLDER)
})
.otherwise({
redirectTo: '/items'