diff --git a/ui/src/app/api/datasource.service.js b/ui/src/app/api/datasource.service.js index 9a8da734f4..2d561c8901 100644 --- a/ui/src/app/api/datasource.service.js +++ b/ui/src/app/api/datasource.service.js @@ -546,7 +546,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic var keyData = sourceData[keyName]; var key = keyName + '_' + type; var dataKeyList = dataKeys[key]; - for (var keyIndex = 0; keyIndex < dataKeyList.length; keyIndex++) { + for (var keyIndex = 0; dataKeyList && keyIndex < dataKeyList.length; keyIndex++) { var datasourceKey = key + "_" + keyIndex; if (datasourceData[datasourceKey].data) { var dataKey = dataKeyList[keyIndex]; @@ -595,6 +595,8 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic datasourceData[datasourceKey].data = data; for (var i2 in listeners) { var listener = listeners[i2]; + if (angular.isFunction(listener)) + continue; listener.dataUpdated(datasourceData[datasourceKey], listener.datasourceIndex, dataKey.index, apply); @@ -605,4 +607,3 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic } } } - diff --git a/ui/src/app/api/user.service.js b/ui/src/app/api/user.service.js index 55a14adced..4d98d2d29d 100644 --- a/ui/src/app/api/user.service.js +++ b/ui/src/app/api/user.service.js @@ -158,6 +158,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, toas function resolveRefreshTokenQueue(data) { for (var q in refreshTokenQueue) { + if (isNaN(q)) + continue; refreshTokenQueue[q].resolve(data); } refreshTokenQueue = []; @@ -165,6 +167,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, toas function rejectRefreshTokenQueue(message) { for (var q in refreshTokenQueue) { + if (isNaN(q)) + continue; refreshTokenQueue[q].reject(message); } refreshTokenQueue = []; diff --git a/ui/src/app/api/widget.service.js b/ui/src/app/api/widget.service.js index b62fe6b991..fb8565c0fa 100644 --- a/ui/src/app/api/widget.service.js +++ b/ui/src/app/api/widget.service.js @@ -483,6 +483,8 @@ function WidgetService($rootScope, $http, $q, $filter, $ocLazyLoad, $window, typ var fetchQueue = widgetsInfoFetchQueue[key]; if (fetchQueue) { for (var q in fetchQueue) { + if (isNaN(q)) + continue; fetchQueue[q].resolve(widgetInfo); } delete widgetsInfoFetchQueue[key]; diff --git a/ui/src/app/components/widget.controller.js b/ui/src/app/components/widget.controller.js index 151ec641aa..ccda4d609e 100644 --- a/ui/src/app/components/widget.controller.js +++ b/ui/src/app/components/widget.controller.js @@ -807,6 +807,8 @@ export default function WidgetController($scope, $timeout, $window, $element, $q var index = 0; for (var i in widgetContext.datasources) { var datasource = widgetContext.datasources[i]; + if (angular.isFunction(datasource)) + continue; var deviceId = null; if (datasource.type === types.datasourceType.device && datasource.deviceAliasId) { if (aliasesInfo.deviceAliases[datasource.deviceAliasId]) {