thingsboard-aplcache
Changes
ui/package.json 3(+2 -1)
ui/src/app/app.js 3(+3 -0)
ui/src/app/ie.support.js 28(+28 -0)
ui/src/app/widget/lib/image-map.js 5(+4 -1)
ui/src/app/widget/lib/image-map.scss 2(+1 -1)
ui/webpack.config.dev.js 2(+1 -1)
ui/webpack.config.prod.js 2(+1 -1)
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",
ui/src/app/app.js 3(+3 -0)
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) {
ui/src/app/ie.support.js 28(+28 -0)
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;
}
ui/src/app/widget/lib/image-map.js 5(+4 -1)
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;
}
ui/src/app/widget/lib/image-map.scss 2(+1 -1)
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;
ui/webpack.config.dev.js 2(+1 -1)
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(),
ui/webpack.config.prod.js 2(+1 -1)
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(),