summaryrefslogtreecommitdiffstats
path: root/js/app/Config.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/app/Config.js')
-rw-r--r--js/app/Config.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/js/app/Config.js b/js/app/Config.js
index 415fd9d3b..69d12f9d2 100644
--- a/js/app/Config.js
+++ b/js/app/Config.js
@@ -44,7 +44,38 @@ app.config(function ($routeProvider, $provide, $httpProvider) {
}
};
});
+ $provide.factory('ConnectionErrorInterceptor', function ($q, $timeout) {
+ var timer;
+ return {
+ responseError: function (response) {
+ var messages = {
+ 0: t('news', 'Request failed, network connection ' +
+ 'unavailable!'),
+ 401: t('news', 'Request unauthorized. Are you logged in?'),
+ 403: t('news', 'Request forbidden. Are you an admin?'),
+ 412: t('news', 'Token expired or app not enabled! ' +
+ 'Try to reload the page!'),
+ 500: t('news', 'Internal server error! Please check your ' +
+ 'data/owncloud.log file for additional ' +
+ 'information!')
+ };
+ // status 0 is a network error
+ if (response.status in messages) {
+ if (timer) {
+ $timeout.cancel(timer);
+ }
+ OC.Notification.hide();
+ OC.Notification.showHtml(messages[response.status]);
+ timer = $timeout(function () {
+ OC.Notification.hide();
+ }, 5000);
+ }
+ return $q.reject(response);
+ }
+ };
+ });
$httpProvider.interceptors.push('CSRFInterceptor');
+ $httpProvider.interceptors.push('ConnectionErrorInterceptor');
// routing
var getItemResolve = function (type) {