diff options
author | Koen Martens <gmc@sonologic.nl> | 2017-06-10 19:03:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-10 19:03:12 +0200 |
commit | 068d3f0e40b9a69040a7824c062683f5ff287461 (patch) | |
tree | 7512bc678166aa256ab10f2968507a70a2c85eb6 | |
parent | e62ddecf8952eedec22c10c64be04fef282f53f1 (diff) | |
parent | 68cfb04ed16c7dbf98637f98571daf32c677706d (diff) |
Merge pull request #188 from schaal/update-js-deps
Update js deps (angular, moment, js-url, masonry)
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | js/admin/Admin.js | 2 | ||||
-rw-r--r-- | js/app/Config.js | 34 | ||||
-rw-r--r-- | js/app/Run.js | 55 | ||||
-rw-r--r-- | js/bower.json | 16 | ||||
-rw-r--r-- | js/controller/ContentController.js | 9 | ||||
-rw-r--r-- | js/controller/SettingsController.js | 2 | ||||
-rw-r--r-- | js/karma.conf.js | 2 | ||||
-rw-r--r-- | js/service/FeedResource.js | 15 | ||||
-rw-r--r-- | js/service/FolderResource.js | 27 | ||||
-rw-r--r-- | js/service/ItemResource.js | 2 | ||||
-rw-r--r-- | js/tests/unit/controller/ContentControllerSpec.js | 37 | ||||
-rw-r--r-- | js/tests/unit/controller/SettingsControllerSpec.js | 8 | ||||
-rw-r--r-- | templates/index.php | 2 |
14 files changed, 93 insertions, 120 deletions
@@ -159,7 +159,7 @@ appstore: "js/vendor/angular-animate/angular-animate.min.js" \ "js/vendor/angular-route/angular-route.min.js" \ "js/vendor/angular-sanitize/angular-sanitize.min.js" \ - "js/vendor/momentjs/min/moment-with-locales.min.js" \ + "js/vendor/moment/min/moment-with-locales.min.js" \ "js/vendor/masonry/dist/masonry.pkgd.min.js" \ "js/build/app.min.js" \ "js/admin/Admin.js" \ diff --git a/js/admin/Admin.js b/js/admin/Admin.js index 18866b9fb..d60dd483f 100644 --- a/js/admin/Admin.js +++ b/js/admin/Admin.js @@ -71,7 +71,7 @@ url: url, data: JSON.stringify(data), dataType: 'json' - }).success(function (data) { + }).then(function (data) { saved(); autoPurgeMinimumIntervalInput .val(data.autoPurgeMinimumInterval); diff --git a/js/app/Config.js b/js/app/Config.js index 2152615c6..c094c799d 100644 --- a/js/app/Config.js +++ b/js/app/Config.js @@ -7,7 +7,8 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @copyright Bernhard Posselt 2014 */ -app.config(function ($routeProvider, $provide, $httpProvider) { +app.config( + function ($routeProvider, $provide, $httpProvider, $locationProvider) { 'use strict'; var feedType = { @@ -19,6 +20,10 @@ app.config(function ($routeProvider, $provide, $httpProvider) { EXPLORE: 5 }; + // default hashPrefix changed in angular 1.6 to '!' + // change back to empty string to keep links working + $locationProvider.hashPrefix(''); + // constants $provide.constant('REFRESH_RATE', 60); // seconds $provide.constant('ITEM_BATCH_SIZE', 40); // how many items should be @@ -92,12 +97,10 @@ app.config(function ($routeProvider, $provide, $httpProvider) { var oldestFirst = SettingsResource.get('oldestFirst'); var search = $location.search().search || ''; - var deferred = $q.defer(); - // if those two values are null it means we did not receive // the settings request from the server so dont query the server if (showAll === null || oldestFirst === null) { - deferred.resolve({}); + return {}; } else { var parameters = { type: type, @@ -125,16 +128,14 @@ app.config(function ($routeProvider, $provide, $httpProvider) { } } - $http({ + return $http({ url: BASE_URL + '/items', method: 'GET', params: parameters - }).success(function (data) { - deferred.resolve(data); + }).then(function (response) { + return response.data; }); } - - return deferred.promise; } }; }; @@ -143,16 +144,15 @@ app.config(function ($routeProvider, $provide, $httpProvider) { return { sites: /* @ngInject */ function ( $http, $q, BASE_URL, $location, Publisher, SettingsResource) { - var deferred = $q.defer(); - // always use the code from the url var language = $location.search().lang; if (!language) { language = SettingsResource.get('language'); } - $http.get(BASE_URL + '/settings').then(function (data) { - Publisher.publishAll(data); + return $http.get( + BASE_URL + '/settings').then(function (response) { + Publisher.publishAll(response.data); // get url and strip trailing slashes var url = SettingsResource.get('exploreUrl') @@ -166,13 +166,9 @@ app.config(function ($routeProvider, $provide, $httpProvider) { return $http.get(defaultExploreUrl); }); - }).then(function (data) { - deferred.resolve(data.data); - }).catch(function () { - deferred.reject(); + }).then(function (response) { + return response.data; }); - - return deferred.promise; } }; }; diff --git a/js/app/Run.js b/js/app/Run.js index 2a9842104..eb4ec76fd 100644 --- a/js/app/Run.js +++ b/js/app/Run.js @@ -24,25 +24,25 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, Publisher.subscribe(SettingsResource).toChannels(['settings']); // load feeds, settings and last read feed - var settingsDeferred = $q.defer(); - $http.get(BASE_URL + '/settings').success(function (data) { - Publisher.publishAll(data); - settingsDeferred.resolve(); + var settingsPromise = $http.get(BASE_URL + '/settings').then( + function (response) { + Publisher.publishAll(response.data); + return response.data; }); - var activeFeedDeferred = $q.defer(); var path = $location.path(); - $http.get(BASE_URL + '/feeds/active').success(function (data) { + var activeFeedPromise = $http.get(BASE_URL + '/feeds/active') + .then(function (response) { var url; - switch (data.activeFeed.type) { + switch (response.data.activeFeed.type) { case FEED_TYPE.FEED: - url = '/items/feeds/' + data.activeFeed.id; + url = '/items/feeds/' + response.data.activeFeed.id; break; case FEED_TYPE.FOLDER: - url = '/items/folders/' + data.activeFeed.id; + url = '/items/folders/' + response.data.activeFeed.id; break; case FEED_TYPE.STARRED: @@ -63,26 +63,25 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, $location.path(url); } - activeFeedDeferred.resolve(); + return response.data; }); - var feedDeferred = $q.defer(); var feeds; - $http.get(BASE_URL + '/feeds').success(function (data) { - feeds = data; - feedDeferred.resolve(); + var feedPromise = $http.get(BASE_URL + '/feeds').then(function (response) { + feeds = response.data; + return feeds; }); - var folderDeferred = $q.defer(); var folders; - $http.get(BASE_URL + '/folders').success(function (data) { - folders = data; - folderDeferred.resolve(); + var folderPromise = $http.get(BASE_URL + '/folders') + .then(function (response) { + folders = response.data; + return folders; }); $q.all([ - feedDeferred.promise, - folderDeferred.promise + feedPromise, + folderPromise ]).then(function () { // first publish feeds to correctly update the folder resource unread // cache @@ -96,10 +95,10 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, // disable loading if all initial requests finished $q.all( [ - settingsDeferred.promise, - activeFeedDeferred.promise, - feedDeferred.promise, - folderDeferred.promise + settingsPromise, + activeFeedPromise, + feedPromise, + folderPromise ] ) .then(function () { @@ -109,11 +108,11 @@ app.run(function ($rootScope, $location, $http, $q, $interval, $route, Loading, // refresh feeds and folders $interval(function () { - $http.get(BASE_URL + '/feeds').success(function (data) { - Publisher.publishAll(data); + $http.get(BASE_URL + '/feeds').then(function (response) { + Publisher.publishAll(response.data); }); - $http.get(BASE_URL + '/folders').success(function (data) { - Publisher.publishAll(data); + $http.get(BASE_URL + '/folders').then(function (response) { + Publisher.publishAll(response.data); }); }, REFRESH_RATE * 1000); diff --git a/js/bower.json b/js/bower.json index 07eaf1f20..e5e6c29f9 100644 --- a/js/bower.json +++ b/js/bower.json @@ -22,15 +22,15 @@ "tests" ], "dependencies": { - "angular": "~1.5.0", - "angular-route": "~1.5.0", - "angular-mocks": "~1.5.0", - "angular-sanitize": "~1.5.0", - "angular-animate": "~1.5.0", + "angular": "~1.6.0", + "angular-route": "~1.6.0", + "angular-mocks": "~1.6.0", + "angular-sanitize": "~1.6.0", + "angular-animate": "~1.6.0", "jquery": "~2.2.0", - "momentjs": "~2.12.0", + "moment": "~2.18", "es6-shim": "~0.35.0", - "js-url": "~2.3.0", - "masonry": "~4.0.0" + "js-url": "~2.5.0", + "masonry": "~4.2.0" } } diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js index dbd8bbc75..51f8eca69 100644 --- a/js/controller/ContentController.js +++ b/js/controller/ContentController.js @@ -178,10 +178,10 @@ app.controller('ContentController', Loading.setLoading('autopaging', true); ItemResource.autoPage(type, id, oldestFirst, showAll, search) - .success(function (data) { - Publisher.publishAll(data); + .then(function (response) { + Publisher.publishAll(response.data); - if (data.items.length >= ITEM_AUTO_PAGE_SIZE) { + if (response.data.items.length >= ITEM_AUTO_PAGE_SIZE) { self.isAutoPagingEnabled = true; } else { self.isNothingMoreToAutoPage = true; @@ -190,7 +190,8 @@ app.controller('ContentController', if (self.isAutoPagingEnabled && self.autoPageAgain) { self.autoPage(); } - }).error(function () { + return response.data; + }, function () { self.isAutoPagingEnabled = true; }).finally(function () { Loading.setLoading('autopaging', false); diff --git a/js/controller/SettingsController.js b/js/controller/SettingsController.js index 1507fdf55..c20f801c8 100644 --- a/js/controller/SettingsController.js +++ b/js/controller/SettingsController.js @@ -74,7 +74,7 @@ app.controller('SettingsController', var articles = JSON.parse(content); var self = this; - ItemResource.importArticles(articles).success(function (data) { + ItemResource.importArticles(articles).then(function (data) { Publisher.publishAll(data); }).finally(function () { self.isArticlesImporting = false; diff --git a/js/karma.conf.js b/js/karma.conf.js index f9b427825..68bb0fee1 100644 --- a/js/karma.conf.js +++ b/js/karma.conf.js @@ -19,7 +19,7 @@ module.exports = function (config) { 'vendor/js-url/url.min.js', 'vendor/es6-shim/es6-shim.min.js', 'vendor/jquery/dist/jquery.js', - 'vendor/momentjs/min/moment-with-locales.js', + 'vendor/moment/min/moment-with-locales.js', 'vendor/angular/angular.js', 'vendor/angular-mocks/angular-mocks.js', 'vendor/angular-route/angular-route.js', diff --git a/js/service/FeedResource.js b/js/service/FeedResource.js index 3e138a952..bb1f30f3f 100644 --- a/js/service/FeedResource.js +++ b/js/service/FeedResource.js @@ -184,9 +184,7 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) { this.add(feed); this.updateFolderCache(); - var deferred = this.$q.defer(); - - this.http({ + return this.http({ method: 'POST', url: this.BASE_URL + '/feeds', data: { @@ -196,15 +194,12 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) { user: user || null, password: password || null } - }).success(function (data) { - deferred.resolve(data); - }).error(function (data) { + }).then(function (response) { + return response.data; + }, function (response) { feed.faviconLink = ''; - feed.error = data.message; - deferred.reject(); + feed.error = response.data.message; }); - - return deferred.promise; }; diff --git a/js/service/FolderResource.js b/js/service/FolderResource.js index c5105e521..43ff8422d 100644 --- a/js/service/FolderResource.js +++ b/js/service/FolderResource.js @@ -60,26 +60,21 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL, $q) { FolderResource.prototype.rename = function (folderName, toFolderName) { var folder = this.get(folderName); - var deferred = this.$q.defer(); var self = this; - this.http({ + return this.http({ url: this.BASE_URL + '/folders/' + folder.id + '/rename', method: 'POST', data: { folderName: toFolderName } - }).success(function () { + }).then(function () { folder.name = toFolderName; delete self.hashMap[folderName]; self.hashMap[toFolderName] = folder; - - deferred.resolve(); - }).error(function (data) { - deferred.reject(data.message); + }, function (response) { + return response.data.message; }); - - return deferred.promise; }; FolderResource.prototype.getById = function (id) { @@ -94,21 +89,17 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL, $q) { this.add(folder); - var deferred = this.$q.defer(); - - this.http({ + return this.http({ url: this.BASE_URL + '/folders', method: 'POST', data: { folderName: folderName } - }).success(function (data) { - deferred.resolve(data); - }).error(function (data) { - folder.error = data.message; + }).then(function (response) { + return response.data; + }, function (response) { + folder.error = response.data.message; }); - - return deferred.promise; }; diff --git a/js/service/ItemResource.js b/js/service/ItemResource.js index 6e1f83400..159216797 100644 --- a/js/service/ItemResource.js +++ b/js/service/ItemResource.js @@ -216,6 +216,8 @@ app.factory('ItemResource', function (Resource, $http, BASE_URL, data: { json: json } + }).then(function(response) { + return response.data; }); }; diff --git a/js/tests/unit/controller/ContentControllerSpec.js b/js/tests/unit/controller/ContentControllerSpec.js index dbee79f44..2e49e74db 100644 --- a/js/tests/unit/controller/ContentControllerSpec.js +++ b/js/tests/unit/controller/ContentControllerSpec.js @@ -361,18 +361,14 @@ describe('ContentController', function () { ItemResource.autoPage = jasmine.createSpy('autoPage') .and.callFake(function () { return { - success: function (callback) { + then: function (callback) { callback({ - 'items': [] + data: {'items': []} }); return { - error: function () { - return { - finally: function (callback) { - callback(); - } - }; + finally: function (callback) { + callback(); } }; } @@ -431,17 +427,15 @@ describe('ContentController', function () { ItemResource.autoPage = jasmine.createSpy('autoPage') .and.callFake(function () { return { - success: function (callback) { + then: function (callback) { callback({ - 'items': [{items: [{id: 3, fingerprint: 'a'}]}] + data: { + 'items': [ + {items: [{id: 3, fingerprint: 'a'}]}]} }); return { - error: function () { - return { - finally: function () { - } - }; + finally: function () { } }; } @@ -490,18 +484,13 @@ describe('ContentController', function () { ItemResource.autoPage = jasmine.createSpy('autoPage') .and.callFake(function () { return { - success: function (callback) { + then: function (callback, errorCallback) { callback({ - 'items': [] - }); + data: {'items': []} + }, errorCallback({})); return { - error: function (callback) { - callback(); - return { - finally: function () { - } - }; + finally: function () { } }; } diff --git a/js/tests/unit/controller/SettingsControllerSpec.js b/js/tests/unit/controller/SettingsControllerSpec.js index 63b74abae..280d86db4 100644 --- a/js/tests/unit/controller/SettingsControllerSpec.js +++ b/js/tests/unit/controller/SettingsControllerSpec.js @@ -62,12 +62,12 @@ describe('SettingsController', function () { it('should import articles', inject(function ($controller, ItemResource, Publisher) { - var data = 1; + var response = {data: 1}; ItemResource.importArticles = jasmine.createSpy('importArticles') .and.callFake(function () { return { - success: function (callback) { - callback(data); + then: function (callback) { + callback(response.data); return { finally: function (finalCallback) { finalCallback(); @@ -89,7 +89,7 @@ describe('SettingsController', function () { expect(ItemResource.importArticles) .toHaveBeenCalledWith(JSON.parse(content)); - expect(Publisher.publishAll).toHaveBeenCalledWith(data); + expect(Publisher.publishAll).toHaveBeenCalledWith(response.data); expect(ctrl.isArticlesImporting).toBe(false); expect(ctrl.articleImportError).toBe(false); })); diff --git a/templates/index.php b/templates/index.php index aa00aed2c..f341d40a3 100644 --- a/templates/index.php +++ b/templates/index.php @@ -8,7 +8,7 @@ script('news', [ 'vendor/angular-animate/angular-animate.min', 'vendor/angular-route/angular-route.min', 'vendor/angular-sanitize/angular-sanitize.min', - 'vendor/momentjs/min/moment-with-locales.min', + 'vendor/moment/min/moment-with-locales.min', 'vendor/masonry/dist/masonry.pkgd.min', 'build/app.min', ]); |