From 497f36983c7b02ca8579f785da62efba88e22656 Mon Sep 17 00:00:00 2001 From: Vadim Zhukov Date: Mon, 1 Oct 2018 18:59:42 +0300 Subject: Do not try to redirect to login page when offline --- assets/js/core/http.js | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'assets/js/core') diff --git a/assets/js/core/http.js b/assets/js/core/http.js index 3e02a4d7..5c669f63 100644 --- a/assets/js/core/http.js +++ b/assets/js/core/http.js @@ -1,5 +1,7 @@ KB.http.request = function (method, url, headers, body) { var successCallback = function() {}; + var authErrorCallback = function() {}; + var netErrorCallback = function() {}; var errorCallback = function() {}; function parseResponse(request) { @@ -42,10 +44,22 @@ KB.http.request = function (method, url, headers, body) { if (request.readyState === XMLHttpRequest.DONE) { var response = parseResponse(request); - if (request.status === 200) { - successCallback(response); - } else { - errorCallback(response); + // errorCallback still gets called for compatibility + switch (request.status) { + case 200: + successCallback(response); + return; + case 401: + authErrorCallback(response); + errorCallback(response); + break; + case 0: + netErrorCallback(response); + errorCallback(response); + break; + default: + errorCallback(response); + break; } } }; @@ -59,6 +73,17 @@ KB.http.request = function (method, url, headers, body) { return this; }; + this.authError = function (callback) { + authErrorCallback = callback; + return this; + }; + + this.netError = function (callback) { + netErrorCallback = callback; + return this; + }; + + // deprecated this.error = function (callback) { errorCallback = callback; return this; -- cgit v1.2.3