diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-01-23 14:32:53 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-01-23 14:32:53 +0100 |
commit | df509a4b856472fa22fd6d43a212c9d21bd5b40f (patch) | |
tree | be8be7824bd4ba3ee687c6e57d1383929360e505 /js/build/app.js | |
parent | 5adeba1a560985173974c9ac98c624093055d669 (diff) |
fix #711
Diffstat (limited to 'js/build/app.js')
-rw-r--r-- | js/build/app.js | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/js/build/app.js b/js/build/app.js index 7a68677fa..ece6ba3cc 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -81,8 +81,9 @@ app.config(["$routeProvider", "$provide", "$httpProvider", function ($routeProvi var getItemResolve = function (type) { return { // request to items also returns feeds - data: /* @ngInject */ ["$http", "$route", "$q", "BASE_URL", "ITEM_BATCH_SIZE", "SettingsResource", function ( - $http, $route, $q, BASE_URL, ITEM_BATCH_SIZE, SettingsResource) { + data: /* @ngInject */ ["$http", "$route", "$q", "BASE_URL", "ITEM_BATCH_SIZE", "FEED_TYPE", "SettingsResource", "FeedResource", function ( + $http, $route, $q, BASE_URL, ITEM_BATCH_SIZE, FEED_TYPE, + SettingsResource, FeedResource) { var showAll = SettingsResource.get('showAll'); var oldestFirst = SettingsResource.get('oldestFirst'); @@ -105,6 +106,15 @@ app.config(["$routeProvider", "$provide", "$httpProvider", function ($routeProvi parameters.id = $route.current.params.id; } + // check if a custom ordering is set + if (type === FEED_TYPE.FEED) { + var feed = FeedResource.getById(parameters.id); + if (feed.ordering === 1) { + parameters.oldestFirst = true; + } else if (feed.ordering === 2) { + parameters.oldestFirst = false; + } + } $http({ url: BASE_URL + '/items', @@ -386,8 +396,24 @@ app.controller('ContentController', item.keepUnread = !item.keepUnread; }; + var self = this; + var getOrdering = function () { + var ordering = SettingsResource.get('oldestFirst'); + + if (self.isFeed()) { + var feed = FeedResource.getById($routeParams.id); + if (feed && feed.ordering === 1) { + ordering = true; + } else if (feed && feed.ordering === 2) { + ordering = false; + } + } + + return ordering; + }; + this.orderBy = function () { - if (SettingsResource.get('oldestFirst')) { + if (getOrdering()) { return 'id'; } else { return '-id'; @@ -449,7 +475,7 @@ app.controller('ContentController', var type = $route.current.$$route.type; var id = $routeParams.id; - var oldestFirst = SettingsResource.get('oldestFirst'); + var oldestFirst = getOrdering(); var showAll = SettingsResource.get('showAll'); var self = this; @@ -785,6 +811,11 @@ app.controller('NavigationController', FolderResource.delete(folder.name); }; + this.setOrdering = function (feed, ordering) { + FeedResource.setOrdering(feed.id, ordering); + $route.reload(); + }; + var self = this; $rootScope.$on('moveFeedToFolder', function (scope, data) { @@ -1225,6 +1256,19 @@ app.factory('FeedResource', ["Resource", "$http", "BASE_URL", "$q", function (Re }; + FeedResource.prototype.setOrdering = function (feedId, ordering) { + var feed = this.getById(feedId); + + if (feed) { + feed.ordering = ordering; + var url = this.BASE_URL + '/feeds/' + feedId + '/ordering'; + return this.http.post(url, { + ordering: ordering + }); + } + }; + + return new FeedResource($http, BASE_URL, $q); }]); app.factory('FolderResource', ["Resource", "$http", "BASE_URL", "$q", function (Resource, $http, BASE_URL, $q) { |