thingsboard-aplcache

UI: MS Edge/IE compatibility.

8/30/2017 2:41:20 PM

Details

ui/package.json 3(+2 -1)

diff --git a/ui/package.json b/ui/package.json
index 11af5d3..f2e581a 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -1,7 +1,7 @@
 {
   "name": "thingsboard",
   "private": true,
-  "version": "1.3.0",
+  "version": "1.3.1",
   "description": "Thingsboard UI",
   "licenses": [
     {
@@ -50,6 +50,7 @@
     "canvas-gauges": "^2.0.9",
     "clipboard": "^1.5.15",
     "compass-sass-mixins": "^0.12.7",
+    "event-source-polyfill": "0.0.9",
     "flot": "git://github.com/flot/flot.git#0.9-work",
     "flot-curvedlines": "git://github.com/MichaelZinsmaier/CurvedLines.git#master",
     "font-awesome": "^4.6.3",
diff --git a/ui/src/app/app.js b/ui/src/app/app.js
index 9ba34b4..4a6f3f0 100644
--- a/ui/src/app/app.js
+++ b/ui/src/app/app.js
@@ -15,6 +15,9 @@
  */
 
 import './ie.support';
+
+import 'event-source-polyfill';
+
 import angular from 'angular';
 import ngMaterial from 'angular-material';
 import ngMdIcons from 'angular-material-icons';
diff --git a/ui/src/app/components/widget/widget.controller.js b/ui/src/app/components/widget/widget.controller.js
index 0e418a4..03f1b96 100644
--- a/ui/src/app/components/widget/widget.controller.js
+++ b/ui/src/app/components/widget/widget.controller.js
@@ -839,7 +839,7 @@ export default function WidgetController($scope, $state, $timeout, $window, $ele
             subscription.destroy();
         }
         subscriptionInited = false;
-        widgetContext.subscriptions = [];
+        widgetContext.subscriptions = {};
         if (widgetContext.inited) {
             widgetContext.inited = false;
             for (var cafId in cafs) {
diff --git a/ui/src/app/ie.support.js b/ui/src/app/ie.support.js
index f540a30..e0dce28 100644
--- a/ui/src/app/ie.support.js
+++ b/ui/src/app/ie.support.js
@@ -26,4 +26,32 @@
             return this.indexOf(suffix, this.length - suffix.length) !== -1;
         };
     }
+    if (!String.prototype.repeat) {
+        String.prototype.repeat = function(count) {
+            if (this == null) {
+                throw TypeError();
+            }
+            var string = String(this);
+            // `ToInteger`
+            var n = count ? Number(count) : 0;
+            if (n != n) { // better `isNaN`
+                n = 0;
+            }
+            // Account for out-of-bounds indices
+            if (n < 0 || n == Infinity) {
+                throw RangeError();
+            }
+            var result = '';
+            while (n) {
+                if (n % 2 == 1) {
+                    result += string;
+                }
+                if (n > 1) {
+                    string += string;
+                }
+                n >>= 1;
+            }
+            return result;
+        };
+    }
 })();
\ No newline at end of file
diff --git a/ui/src/app/widget/lib/alarms-table-widget.js b/ui/src/app/widget/lib/alarms-table-widget.js
index a91c2a0..10e7aa3 100644
--- a/ui/src/app/widget/lib/alarms-table-widget.js
+++ b/ui/src/app/widget/lib/alarms-table-widget.js
@@ -181,7 +181,7 @@ function AlarmsTableWidgetController($element, $scope, $filter, $mdMedia, $mdDia
         vm.displayPagination = angular.isDefined(vm.settings.displayPagination) ? vm.settings.displayPagination : true;
 
         var pageSize = vm.settings.defaultPageSize;
-        if (angular.isDefined(pageSize) && Number.isInteger(pageSize) && pageSize > 0) {
+        if (angular.isDefined(pageSize) && angular.isNumber(pageSize) && pageSize > 0) {
             vm.defaultPageSize = pageSize;
         }
 
diff --git a/ui/src/app/widget/lib/CanvasDigitalGauge.js b/ui/src/app/widget/lib/CanvasDigitalGauge.js
index 1ddf0e7..a1cfca2 100644
--- a/ui/src/app/widget/lib/CanvasDigitalGauge.js
+++ b/ui/src/app/widget/lib/CanvasDigitalGauge.js
@@ -157,7 +157,13 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge {
 
     draw() {
         try {
+
             let canvas = this.canvas;
+
+            if (!canvas.drawWidth || !canvas.drawHeight) {
+                return this;
+            }
+
             let [x, y, w, h] = [
                 -canvas.drawX,
                 -canvas.drawY,
diff --git a/ui/src/app/widget/lib/entities-table-widget.js b/ui/src/app/widget/lib/entities-table-widget.js
index 7d97fe4..a4a968e 100644
--- a/ui/src/app/widget/lib/entities-table-widget.js
+++ b/ui/src/app/widget/lib/entities-table-widget.js
@@ -167,7 +167,7 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $tra
         vm.displayPagination = angular.isDefined(vm.settings.displayPagination) ? vm.settings.displayPagination : true;
 
         var pageSize = vm.settings.defaultPageSize;
-        if (angular.isDefined(pageSize) && Number.isInteger(pageSize) && pageSize > 0) {
+        if (angular.isDefined(pageSize) && angular.isNumber(pageSize) && pageSize > 0) {
             vm.defaultPageSize = pageSize;
         }
 
diff --git a/ui/src/app/widget/lib/image-map.js b/ui/src/app/widget/lib/image-map.js
index 17f3d3d..089e9f4 100644
--- a/ui/src/app/widget/lib/image-map.js
+++ b/ui/src/app/widget/lib/image-map.js
@@ -58,14 +58,17 @@ export default class TbImageMap {
         }
 
         var imageMap = this;
-        var testImage = new Image(); // eslint-disable-line no-undef
+        var testImage = document.createElement('img'); // eslint-disable-line
+        testImage.style.visibility = 'hidden';
         testImage.onload = function() {
             imageMap.aspect = testImage.width / testImage.height;
+            document.body.removeChild(testImage); //eslint-disable-line
             imageMap.onresize();
             if (initCallback) {
                 setTimeout(initCallback, 0); //eslint-disable-line
             }
         }
+        document.body.appendChild(testImage); //eslint-disable-line
         testImage.src = imageUrl;
     }
 
diff --git a/ui/src/app/widget/lib/image-map.scss b/ui/src/app/widget/lib/image-map.scss
index a4a6dac..b41266d 100644
--- a/ui/src/app/widget/lib/image-map.scss
+++ b/ui/src/app/widget/lib/image-map.scss
@@ -52,7 +52,7 @@
     position: relative;
     margin: auto;
     background: transparent no-repeat scroll 0 0;
-    background-size: cover;
+    background-size: 100% 100%;
 
     &.is-pointer {
       cursor: pointer !important;
diff --git a/ui/webpack.config.dev.js b/ui/webpack.config.dev.js
index fa019d3..3af7d00 100644
--- a/ui/webpack.config.dev.js
+++ b/ui/webpack.config.dev.js
@@ -51,7 +51,7 @@ module.exports = {
         new HtmlWebpackPlugin({
             template: './src/index.html',
             filename: 'index.html',
-            title: 'Thingsboard',
+            title: 'ThingsBoard',
             inject: 'body',
         }),
         new webpack.optimize.OccurrenceOrderPlugin(),
diff --git a/ui/webpack.config.prod.js b/ui/webpack.config.prod.js
index a746488..987eec2 100644
--- a/ui/webpack.config.prod.js
+++ b/ui/webpack.config.prod.js
@@ -47,7 +47,7 @@ module.exports = {
         new HtmlWebpackPlugin({
             template: './src/index.html',
             filename: '../index.html',
-            title: 'Thingsboard',
+            title: 'ThingsBoard',
             inject: 'body',
         }),
         new webpack.optimize.OccurrenceOrderPlugin(),