From 38350e62909f06f93902b09e9963056b1ba470f4 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Tue, 20 Jan 2015 13:41:07 +0100 Subject: show error messages if auth or network related things fail --- js/app/Config.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'js/app') 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) { -- cgit v1.2.3