Commit f572f47302549320974338cf6b2729f136254b16
Merge branch 'develop/2.5.2' of github.com:thingsboard/thingsboard into develop/2.5.2
Showing
4 changed files
with
35 additions
and
29 deletions
@@ -4,15 +4,15 @@ This folder containing scripts and Kubernetes resources configurations to run Th | @@ -4,15 +4,15 @@ This folder containing scripts and Kubernetes resources configurations to run Th | ||
4 | 4 | ||
5 | ## Prerequisites | 5 | ## Prerequisites |
6 | 6 | ||
7 | -ThingsBoard Microservices are running on Kubernetes cluster. | 7 | +ThingsBoard Microservices run on the Kubernetes cluster. |
8 | You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. | 8 | You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. |
9 | -If you do not already have a cluster, you can create one by using [Minikube](https://kubernetes.io/docs/setup/minikube), | 9 | +If you do not have a cluster already, you can create one by using [Minikube](https://kubernetes.io/docs/setup/minikube), |
10 | or you can choose any other available [Kubernetes cluster deployment solutions](https://kubernetes.io/docs/setup/pick-right-solution/). | 10 | or you can choose any other available [Kubernetes cluster deployment solutions](https://kubernetes.io/docs/setup/pick-right-solution/). |
11 | 11 | ||
12 | ### Enable ingress addon | 12 | ### Enable ingress addon |
13 | 13 | ||
14 | -By default ingress addon is disable in the Minikube, and available only in cluster providers. | ||
15 | -To enable ingress, please execute next command: | 14 | +By default ingress addon is disabled in the Minikube, and available only in cluster providers. |
15 | +To enable ingress, please execute the following command: | ||
16 | 16 | ||
17 | ` | 17 | ` |
18 | $ minikube addons enable ingress | 18 | $ minikube addons enable ingress |
@@ -21,21 +21,21 @@ $ minikube addons enable ingress | @@ -21,21 +21,21 @@ $ minikube addons enable ingress | ||
21 | ## Installation | 21 | ## Installation |
22 | 22 | ||
23 | Before performing initial installation you can configure the type of database to be used with ThingsBoard and the type of deployment. | 23 | Before performing initial installation you can configure the type of database to be used with ThingsBoard and the type of deployment. |
24 | -In order to set database type change the value of `DATABASE` variable in `.env` file to one of the following: | 24 | +To set database type change the value of `DATABASE` variable in `.env` file to one of the following: |
25 | 25 | ||
26 | - `postgres` - use PostgreSQL database; | 26 | - `postgres` - use PostgreSQL database; |
27 | - `cassandra` - use Cassandra database; | 27 | - `cassandra` - use Cassandra database; |
28 | 28 | ||
29 | **NOTE**: According to the database type corresponding kubernetes resources will be deployed (see `postgres.yml`, `cassandra.yml` for details). | 29 | **NOTE**: According to the database type corresponding kubernetes resources will be deployed (see `postgres.yml`, `cassandra.yml` for details). |
30 | 30 | ||
31 | -In order to set deployment type change the value of `DEPLOYMENT_TYPE` variable in `.env` file to one of the following: | 31 | +To set deployment type change the value of `DEPLOYMENT_TYPE` variable in `.env` file to one of the following: |
32 | 32 | ||
33 | -- `basic` - start up with single instance of Zookeeper, Kafka and Redis; | ||
34 | -- `high-availability` - start up with Zookeeper, Kafka and Redis in cluster modes; | 33 | +- `basic` - startup with a single instance of Zookeeper, Kafka and Redis; |
34 | +- `high-availability` - startup with Zookeeper, Kafka, and Redis in cluster modes; | ||
35 | 35 | ||
36 | -**NOTE**: According to the deployment type corresponding kubernetes resources will be deployed (see content of the directories `./basic` and `./high-availability` for details). | 36 | +**NOTE**: According to the deployment type corresponding kubernetes resources will be deployed (see the content of the directories `./basic` and `./high-availability` for details). |
37 | 37 | ||
38 | -Execute the following command to run installation: | 38 | +Execute the following command to run the installation: |
39 | 39 | ||
40 | ` | 40 | ` |
41 | $ ./k8s-install-tb.sh --loadDemo | 41 | $ ./k8s-install-tb.sh --loadDemo |
@@ -47,7 +47,7 @@ Where: | @@ -47,7 +47,7 @@ Where: | ||
47 | 47 | ||
48 | ## Running | 48 | ## Running |
49 | 49 | ||
50 | -Execute the following command to deploy thirdparty resources: | 50 | +Execute the following command to deploy third-party resources: |
51 | 51 | ||
52 | ` | 52 | ` |
53 | $ ./k8s-deploy-thirdparty.sh | 53 | $ ./k8s-deploy-thirdparty.sh |
@@ -61,8 +61,8 @@ Execute the following command to deploy resources: | @@ -61,8 +61,8 @@ Execute the following command to deploy resources: | ||
61 | $ ./k8s-deploy-resources.sh | 61 | $ ./k8s-deploy-resources.sh |
62 | ` | 62 | ` |
63 | 63 | ||
64 | -After a while when all resources will be successfully started you can open `http://{your-cluster-ip}` in you browser (for ex. `http://192.168.99.101`). | ||
65 | -You should see ThingsBoard login page. | 64 | +After a while when all resources will be successfully started you can open `http://{your-cluster-ip}` in your browser (for ex. `http://192.168.99.101`). |
65 | +You should see the ThingsBoard login page. | ||
66 | 66 | ||
67 | Use the following default credentials: | 67 | Use the following default credentials: |
68 | 68 | ||
@@ -73,16 +73,16 @@ If you installed DataBase with demo data (using `--loadDemo` flag) you can also | @@ -73,16 +73,16 @@ If you installed DataBase with demo data (using `--loadDemo` flag) you can also | ||
73 | - **Tenant Administrator**: tenant@thingsboard.org / tenant | 73 | - **Tenant Administrator**: tenant@thingsboard.org / tenant |
74 | - **Customer User**: customer@thingsboard.org / customer | 74 | - **Customer User**: customer@thingsboard.org / customer |
75 | 75 | ||
76 | -In case of any issues you can examine service logs for errors. | 76 | +In case of any issues, you can examine service logs for errors. |
77 | For example to see ThingsBoard node logs execute the following commands: | 77 | For example to see ThingsBoard node logs execute the following commands: |
78 | 78 | ||
79 | -1) Get list of the running tb-node pods: | 79 | +1) Get the list of the running tb-node pods: |
80 | 80 | ||
81 | ` | 81 | ` |
82 | $ kubectl get pods -l app=tb-node | 82 | $ kubectl get pods -l app=tb-node |
83 | ` | 83 | ` |
84 | 84 | ||
85 | -2) Fetch logs of tb-node pod: | 85 | +2) Fetch logs of the tb-node pod: |
86 | 86 | ||
87 | ` | 87 | ` |
88 | $ kubectl logs -f [tb-node-pod-name] | 88 | $ kubectl logs -f [tb-node-pod-name] |
@@ -103,7 +103,7 @@ Execute the following command to delete all ThingsBoard microservices: | @@ -103,7 +103,7 @@ Execute the following command to delete all ThingsBoard microservices: | ||
103 | $ ./k8s-delete-resources.sh | 103 | $ ./k8s-delete-resources.sh |
104 | ` | 104 | ` |
105 | 105 | ||
106 | -Execute the following command to delete all thirdparty microservices: | 106 | +Execute the following command to delete all third-party microservices: |
107 | 107 | ||
108 | ` | 108 | ` |
109 | $ ./k8s-delete-thirdparty.sh | 109 | $ ./k8s-delete-thirdparty.sh |
@@ -404,6 +404,9 @@ function AlarmsTableWidgetController($element, $scope, $filter, $mdMedia, $mdDia | @@ -404,6 +404,9 @@ function AlarmsTableWidgetController($element, $scope, $filter, $mdMedia, $mdDia | ||
404 | } | 404 | } |
405 | 405 | ||
406 | function openAlarmDetails($event, alarm) { | 406 | function openAlarmDetails($event, alarm) { |
407 | + if ($event) { | ||
408 | + $event.stopPropagation(); | ||
409 | + } | ||
407 | if (alarm && alarm.id) { | 410 | if (alarm && alarm.id) { |
408 | var onShowingCallback = { | 411 | var onShowingCallback = { |
409 | onShowing: function(){} | 412 | onShowing: function(){} |
@@ -114,18 +114,18 @@ | @@ -114,18 +114,18 @@ | ||
114 | </div> | 114 | </div> |
115 | </md-toolbar> | 115 | </md-toolbar> |
116 | <div flex style="position: relative;"> | 116 | <div flex style="position: relative;"> |
117 | - <div class="tb-editor tb-absolute-fill" style=""> | 117 | + <div class="tb-editor tb-absolute-fill"> |
118 | <div id="top_panel" class="tb-split tb-split-vertical"> | 118 | <div id="top_panel" class="tb-split tb-split-vertical"> |
119 | <div id="top_left_panel" class="tb-split tb-content"> | 119 | <div id="top_left_panel" class="tb-split tb-content"> |
120 | - <md-tabs md-selected="1" md-dynamic-height md-border-bottom style="width: 100%; height: 100%;"> | ||
121 | - <md-tab label="{{ 'widget.resources' | translate }}" style="width: 100%; height: 100%;"> | 120 | + <md-tabs md-selected="1" md-dynamic-height md-border-bottom class="container"> |
121 | + <md-tab label="{{ 'widget.resources' | translate }}"> | ||
122 | <div class="tb-resize-container" style="background-color: #fff;"> | 122 | <div class="tb-resize-container" style="background-color: #fff;"> |
123 | <div class="md-padding"> | 123 | <div class="md-padding"> |
124 | <div flex layout="row" | 124 | <div flex layout="row" |
125 | ng-repeat="resource in vm.widget.resources track by $index" | 125 | ng-repeat="resource in vm.widget.resources track by $index" |
126 | style="max-height: 40px;" layout-align="start center"> | 126 | style="max-height: 40px;" layout-align="start center"> |
127 | <md-input-container flex md-no-float class="md-block" | 127 | <md-input-container flex md-no-float class="md-block" |
128 | - style="margin: 10px 0px 0px 0px; max-height: 40px;"> | 128 | + style="margin: 10px 0 0; max-height: 40px;"> |
129 | <input placeholder="{{ 'widget.resource-url' | translate }}" | 129 | <input placeholder="{{ 'widget.resource-url' | translate }}" |
130 | ng-required="true" name="resource" ng-model="resource.url"> | 130 | ng-required="true" name="resource" ng-model="resource.url"> |
131 | </md-input-container> | 131 | </md-input-container> |
@@ -154,7 +154,7 @@ | @@ -154,7 +154,7 @@ | ||
154 | </div> | 154 | </div> |
155 | </div> | 155 | </div> |
156 | </md-tab> | 156 | </md-tab> |
157 | - <md-tab label="{{ 'widget.html' | translate }}" style="width: 100%; height: 100%;"> | 157 | + <md-tab label="{{ 'widget.html' | translate }}"> |
158 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> | 158 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> |
159 | <div class="tb-editor-area-title-panel"> | 159 | <div class="tb-editor-area-title-panel"> |
160 | <md-button aria-label="{{ 'widget.tidy' | translate }}" | 160 | <md-button aria-label="{{ 'widget.tidy' | translate }}" |
@@ -168,7 +168,7 @@ | @@ -168,7 +168,7 @@ | ||
168 | ng-model="vm.widget.templateHtml"></div> | 168 | ng-model="vm.widget.templateHtml"></div> |
169 | </div> | 169 | </div> |
170 | </md-tab> | 170 | </md-tab> |
171 | - <md-tab label="{{ 'widget.css' | translate }}" style="width: 100%; height: 100%;"> | 171 | + <md-tab label="{{ 'widget.css' | translate }}"> |
172 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> | 172 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> |
173 | <div class="tb-editor-area-title-panel"> | 173 | <div class="tb-editor-area-title-panel"> |
174 | <md-button aria-label="{{ 'widget.tidy' | translate }}" | 174 | <md-button aria-label="{{ 'widget.tidy' | translate }}" |
@@ -185,9 +185,8 @@ | @@ -185,9 +185,8 @@ | ||
185 | </md-tabs> | 185 | </md-tabs> |
186 | </div> | 186 | </div> |
187 | <div id="top_right_panel" class="tb-split tb-content"> | 187 | <div id="top_right_panel" class="tb-split tb-content"> |
188 | - <md-tabs md-dynamic-height md-border-bottom style="width: 100%; height: 100%;"> | ||
189 | - <md-tab label="{{ 'widget.settings-schema' | translate }}" | ||
190 | - style="width: 100%; height: 100%;"> | 188 | + <md-tabs md-dynamic-height md-border-bottom class="container"> |
189 | + <md-tab label="{{ 'widget.settings-schema' | translate }}"> | ||
191 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> | 190 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> |
192 | <div class="tb-editor-area-title-panel"> | 191 | <div class="tb-editor-area-title-panel"> |
193 | <md-button aria-label="{{ 'widget.tidy' | translate }}" | 192 | <md-button aria-label="{{ 'widget.tidy' | translate }}" |
@@ -201,8 +200,7 @@ | @@ -201,8 +200,7 @@ | ||
201 | ng-model="vm.widget.settingsSchema"></div> | 200 | ng-model="vm.widget.settingsSchema"></div> |
202 | </div> | 201 | </div> |
203 | </md-tab> | 202 | </md-tab> |
204 | - <md-tab label="{{ 'widget.datakey-settings-schema' | translate }}" | ||
205 | - style="width: 100%; height: 100%;"> | 203 | + <md-tab label="{{ 'widget.datakey-settings-schema' | translate }}"> |
206 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> | 204 | <div class="tb-resize-container" tb-expand-fullscreen expand-button-id="expand-button"> |
207 | <div class="tb-editor-area-title-panel"> | 205 | <div class="tb-editor-area-title-panel"> |
208 | <md-button aria-label="{{ 'widget.tidy' | translate }}" | 206 | <md-button aria-label="{{ 'widget.tidy' | translate }}" |
@@ -240,7 +238,7 @@ | @@ -240,7 +238,7 @@ | ||
240 | <md-progress-circular ng-disabled="vm.iframeWidgetEditModeInited" md-mode="indeterminate" class="md-warn" | 238 | <md-progress-circular ng-disabled="vm.iframeWidgetEditModeInited" md-mode="indeterminate" class="md-warn" |
241 | md-diameter="100"></md-progress-circular> | 239 | md-diameter="100"></md-progress-circular> |
242 | </md-content> | 240 | </md-content> |
243 | - <div tb-expand-fullscreen expand-button-id="expand-button" style="width: 100%; height: 100%;"> | 241 | + <div tb-expand-fullscreen expand-button-id="expand-button" class="container"> |
244 | <iframe frameborder="0" height="100%" width="100%"></iframe> | 242 | <iframe frameborder="0" height="100%" width="100%"></iframe> |
245 | <md-button id="expand-button" aria-label="Fullscreen" | 243 | <md-button id="expand-button" aria-label="Fullscreen" |
246 | class="md-icon-button tb-fullscreen-button-style" | 244 | class="md-icon-button tb-fullscreen-button-style" |