thingsboard-aplcache

exception check (for IE)

3/17/2017 3:06:53 AM

Details

diff --git a/ui/src/app/api/datasource.service.js b/ui/src/app/api/datasource.service.js
index 9a8da73..2d561c8 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 55a14ad..4d98d2d 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 b62fe6b..fb8565c 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 151ec64..ccda4d6 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]) {