thingsboard-memoizeit
Changes
ui/src/app/api/device.service.js 8(+4 -4)
ui/src/app/global-interceptor.service.js 17(+12 -5)
Details
ui/src/app/api/device.service.js 8(+4 -4)
diff --git a/ui/src/app/api/device.service.js b/ui/src/app/api/device.service.js
index 2c4a100..b369e90 100644
--- a/ui/src/app/api/device.service.js
+++ b/ui/src/app/api/device.service.js
@@ -51,7 +51,7 @@ function DeviceService($http, $q, $filter, userService, telemetryWebsocketServic
return service;
- function getTenantDevices(pageLink) {
+ function getTenantDevices(pageLink, config) {
var deferred = $q.defer();
var url = '/api/tenant/devices?limit=' + pageLink.limit;
if (angular.isDefined(pageLink.textSearch)) {
@@ -63,7 +63,7 @@ function DeviceService($http, $q, $filter, userService, telemetryWebsocketServic
if (angular.isDefined(pageLink.textOffset)) {
url += '&textOffset=' + pageLink.textOffset;
}
- $http.get(url, null).then(function success(response) {
+ $http.get(url, config).then(function success(response) {
deferred.resolve(response.data);
}, function fail() {
deferred.reject();
@@ -425,7 +425,7 @@ function DeviceService($http, $q, $filter, userService, telemetryWebsocketServic
}
}
- function getDeviceAttributes(deviceId, attributeScope, query, successCallback) {
+ function getDeviceAttributes(deviceId, attributeScope, query, successCallback, config) {
var deferred = $q.defer();
var subscriptionId = deviceId + attributeScope;
var das = deviceAttributesSubscriptionMap[subscriptionId];
@@ -445,7 +445,7 @@ function DeviceService($http, $q, $filter, userService, telemetryWebsocketServic
}
} else {
var url = '/api/plugins/telemetry/' + deviceId + '/values/attributes/' + attributeScope;
- $http.get(url, null).then(function success(response) {
+ $http.get(url, config).then(function success(response) {
processDeviceAttributes(response.data, query, deferred, successCallback);
}, function fail() {
deferred.reject();
ui/src/app/global-interceptor.service.js 17(+12 -5)
diff --git a/ui/src/app/global-interceptor.service.js b/ui/src/app/global-interceptor.service.js
index 8ba6c04..86cd676 100644
--- a/ui/src/app/global-interceptor.service.js
+++ b/ui/src/app/global-interceptor.service.js
@@ -111,11 +111,12 @@ export default function GlobalInterceptor($rootScope, $q, $injector) {
function request(config) {
var rejected = false;
if (config.url.startsWith('/api/')) {
- $rootScope.loading = !isInternalUrlPrefix(config.url);
+ var isLoading = !isInternalUrlPrefix(config.url);
+ updateLoadingState(config, isLoading);
if (isTokenBasedAuthEntryPoint(config.url)) {
if (!getUserService().updateAuthorizationHeader(config.headers) &&
!getUserService().refreshTokenPending()) {
- $rootScope.loading = false;
+ updateLoadingState(config, false);
rejected = true;
getUserService().clearJwtToken(false);
return $q.reject({ data: {message: getTranslate().instant('access.unauthorized')}, status: 401, config: config});
@@ -131,21 +132,21 @@ export default function GlobalInterceptor($rootScope, $q, $injector) {
function requestError(rejection) {
if (rejection.config.url.startsWith('/api/')) {
- $rootScope.loading = false;
+ updateLoadingState(rejection.config, false);
}
return $q.reject(rejection);
}
function response(response) {
if (response.config.url.startsWith('/api/')) {
- $rootScope.loading = false;
+ updateLoadingState(response.config, false);
}
return response;
}
function responseError(rejection) {
if (rejection.config.url.startsWith('/api/')) {
- $rootScope.loading = false;
+ updateLoadingState(rejection.config, false);
}
var unhandled = false;
var ignoreErrors = rejection.config.ignoreErrors;
@@ -184,4 +185,10 @@ export default function GlobalInterceptor($rootScope, $q, $injector) {
}
return $q.reject(rejection);
}
+
+ function updateLoadingState(config, isLoading) {
+ if (!config || angular.isUndefined(config.ignoreLoading) || !config.ignoreLoading) {
+ $rootScope.loading = isLoading;
+ }
+ }
}