summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Martens <gmc@sonologic.nl>2017-06-10 19:03:12 +0200
committerGitHub <noreply@github.com>2017-06-10 19:03:12 +0200
commit068d3f0e40b9a69040a7824c062683f5ff287461 (patch)
tree7512bc678166aa256ab10f2968507a70a2c85eb6
parente62ddecf8952eedec22c10c64be04fef282f53f1 (diff)
parent68cfb04ed16c7dbf98637f98571daf32c677706d (diff)
Merge pull request #188 from schaal/update-js-deps
Update js deps (angular, moment, js-url, masonry)
-rw-r--r--Makefile2
-rw-r--r--js/admin/Admin.js2
-rw-r--r--js/app/Config.js34
-rw-r--r--js/app/Run.js55
-rw-r--r--js/bower.json16
-rw-r--r--js/controller/ContentController.js9
-rw-r--r--js/controller/SettingsController.js2
-rw-r--r--js/karma.conf.js2
-rw-r--r--js/service/FeedResource.js15
-rw-r--r--js/service/FolderResource.js27
-rw-r--r--js/service/ItemResource.js2
-rw-r--r--js/tests/unit/controller/ContentControllerSpec.js37
-rw-r--r--js/tests/unit/controller/SettingsControllerSpec.js8
-rw-r--r--templates/index.php2
14 files changed, 93 insertions, 120 deletions
diff --git a/Makefile b/Makefile
index 2b4d65693..ba1c104cc 100644
--- a/Makefile
+++ b/Makefile
@@ -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',
]);