diff --git a/application/pom.xml b/application/pom.xml
index 34d5e3d973..1dd2e0c842 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -1,6 +1,6 @@
-
diff --git a/ui-ngx/src/app/modules/home/components/filter/filter-predicate.component.ts b/ui-ngx/src/app/modules/home/components/filter/filter-predicate.component.ts
index 43933270c2..b9e3246f7c 100644
--- a/ui-ngx/src/app/modules/home/components/filter/filter-predicate.component.ts
+++ b/ui-ngx/src/app/modules/home/components/filter/filter-predicate.component.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/components/filter/filter-predicate.scss b/ui-ngx/src/app/modules/home/components/filter/filter-predicate.scss
index 4b1b99f933..e88454b8b3 100644
--- a/ui-ngx/src/app/modules/home/components/filter/filter-predicate.scss
+++ b/ui-ngx/src/app/modules/home/components/filter/filter-predicate.scss
@@ -1,5 +1,5 @@
/**
- * Copyright © 2016-2020 The Thingsboard Authors
+ * Copyright © 2016-2021 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
:host {
.tb-hint {
padding-bottom: 0;
diff --git a/ui-ngx/src/app/modules/home/components/filter/filter-select.component.html b/ui-ngx/src/app/modules/home/components/filter/filter-select.component.html
index 65249441ed..6821134cd5 100644
--- a/ui-ngx/src/app/modules/home/components/filter/filter-select.component.html
+++ b/ui-ngx/src/app/modules/home/components/filter/filter-select.component.html
@@ -1,6 +1,6 @@
-
+
diff --git a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.scss b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.scss
index f69af45170..a0b8a83cd4 100644
--- a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.scss
+++ b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.scss
@@ -1,5 +1,5 @@
/**
- * Copyright © 2016-2020 The Thingsboard Authors
+ * Copyright © 2016-2021 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.ts b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.ts
index 1e7806b455..d664c5c2a4 100644
--- a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.ts
+++ b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
@@ -33,6 +33,7 @@ import {
EditAlarmDetailsDialogComponent,
EditAlarmDetailsDialogData
} from '@home/components/profile/alarm/edit-alarm-details-dialog.component';
+import { EntityId } from '@shared/models/id/entity-id';
@Component({
selector: 'tb-alarm-rule',
@@ -65,6 +66,9 @@ export class AlarmRuleComponent implements ControlValueAccessor, OnInit, Validat
this.requiredValue = coerceBooleanProperty(value);
}
+ @Input()
+ deviceProfileId: EntityId;
+
private modelValue: AlarmRule;
alarmRuleFormGroup: FormGroup;
diff --git a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-schedule-dialog.component.html b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-schedule-dialog.component.html
index 64a808fe98..d82b17d2c5 100644
--- a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-schedule-dialog.component.html
+++ b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-schedule-dialog.component.html
@@ -1,6 +1,6 @@
+
+
+ {{title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.scss b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.scss
new file mode 100644
index 0000000000..b13379a744
--- /dev/null
+++ b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.scss
@@ -0,0 +1,42 @@
+/**
+ * Copyright © 2016-2021 The Thingsboard Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+:host {
+ .dashboard-state-dialog {
+ .mat-dialog-content.dashboard-state-dialog-content {
+ max-height: 100%;
+ }
+
+ @media screen and (max-width: 599px) {
+ width: 100% !important;
+ height: 100% !important;
+ }
+
+ @media screen and (min-width: 600px) {
+ width: 480px;
+ height: 600px;
+ }
+
+ @media screen and (min-width: 960px) {
+ width: 768px;
+ height: 600px;
+ }
+
+ @media screen and (min-width: 1280px) {
+ width: 1000px;
+ height: 800px;
+ }
+ }
+}
diff --git a/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.ts b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.ts
new file mode 100644
index 0000000000..0d12f3c22c
--- /dev/null
+++ b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.ts
@@ -0,0 +1,79 @@
+///
+/// Copyright © 2016-2021 The Thingsboard Authors
+///
+/// Licensed under the Apache License, Version 2.0 (the "License");
+/// you may not use this file except in compliance with the License.
+/// You may obtain a copy of the License at
+///
+/// http://www.apache.org/licenses/LICENSE-2.0
+///
+/// Unless required by applicable law or agreed to in writing, software
+/// distributed under the License is distributed on an "AS IS" BASIS,
+/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+/// See the License for the specific language governing permissions and
+/// limitations under the License.
+///
+
+import {
+ Component,
+ ComponentFactoryResolver,
+ Inject,
+ Injector,
+ OnInit,
+ ViewChild,
+ ViewContainerRef
+} from '@angular/core';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { Store } from '@ngrx/store';
+import { AppState } from '@core/core.state';
+import { Router } from '@angular/router';
+import { DialogComponent } from '@shared/components/dialog.component';
+import { Dashboard } from '@shared/models/dashboard.models';
+
+export interface EmbedDashboardDialogData {
+ dashboard: Dashboard;
+ state: string;
+ title: string;
+ hideToolbar: boolean;
+ width?: number;
+ height?: number;
+}
+
+@Component({
+ selector: 'tb-embed-dashboard-dialog',
+ templateUrl: './embed-dashboard-dialog.component.html',
+ styleUrls: ['./embed-dashboard-dialog.component.scss']
+})
+export class EmbedDashboardDialogComponent extends DialogComponent
+ implements OnInit {
+
+ @ViewChild('dashboardContent', {read: ViewContainerRef, static: true}) dashboardContentContainer: ViewContainerRef;
+
+ dashboard = this.data.dashboard;
+ state = this.data.state;
+ title = this.data.title;
+ hideToolbar = this.data.hideToolbar;
+
+ dialogStyle: any = {};
+
+ constructor(protected store: Store,
+ protected router: Router,
+ @Inject(MAT_DIALOG_DATA) public data: EmbedDashboardDialogData,
+ public dialogRef: MatDialogRef) {
+ super(store, router, dialogRef);
+ if (this.data.width) {
+ this.dialogStyle.width = this.data.width + 'vw';
+ }
+ if (this.data.height) {
+ this.dialogStyle.height = this.data.height + 'vh';
+ }
+ }
+
+ ngOnInit(): void {
+ }
+
+ close(): void {
+ this.dialogRef.close(null);
+ }
+
+}
diff --git a/ui-ngx/src/app/modules/home/components/widget/dynamic-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/dynamic-widget.component.ts
index dc1a48c3c3..46d1168c09 100644
--- a/ui-ngx/src/app/modules/home/components/widget/dynamic-widget.component.ts
+++ b/ui-ngx/src/app/modules/home/components/widget/dynamic-widget.component.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/components/widget/legend-config-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/legend-config-panel.component.html
index 28cabf7cd8..d88900f1a5 100644
--- a/ui-ngx/src/app/modules/home/components/widget/legend-config-panel.component.html
+++ b/ui-ngx/src/app/modules/home/components/widget/legend-config-panel.component.html
@@ -1,6 +1,6 @@
-
-
+
+
device-profile.transport-type
@@ -40,19 +40,19 @@
-
-
+ }}">
+
-
-
+
+
-
+
diff --git a/ui-ngx/src/app/modules/home/pages/device-profile/device-profile-tabs.component.ts b/ui-ngx/src/app/modules/home/pages/device-profile/device-profile-tabs.component.ts
index cba34b4987..804b349cff 100644
--- a/ui-ngx/src/app/modules/home/pages/device-profile/device-profile-tabs.component.ts
+++ b/ui-ngx/src/app/modules/home/pages/device-profile/device-profile-tabs.component.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/pages/device-profile/device-profile.module.ts b/ui-ngx/src/app/modules/home/pages/device-profile/device-profile.module.ts
index 09207057ac..b6b2b4b3fc 100644
--- a/ui-ngx/src/app/modules/home/pages/device-profile/device-profile.module.ts
+++ b/ui-ngx/src/app/modules/home/pages/device-profile/device-profile.module.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/pages/device-profile/device-profiles-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/device-profile/device-profiles-table-config.resolver.ts
index 60cb15c199..299c1e4015 100644
--- a/ui-ngx/src/app/modules/home/pages/device-profile/device-profiles-table-config.resolver.ts
+++ b/ui-ngx/src/app/modules/home/pages/device-profile/device-profiles-table-config.resolver.ts
@@ -1,5 +1,5 @@
///
-/// Copyright © 2016-2020 The Thingsboard Authors
+/// Copyright © 2016-2021 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
diff --git a/ui-ngx/src/app/modules/home/pages/device/data/default-device-configuration.component.html b/ui-ngx/src/app/modules/home/pages/device/data/default-device-configuration.component.html
index 001cc16801..c66e70265d 100644
--- a/ui-ngx/src/app/modules/home/pages/device/data/default-device-configuration.component.html
+++ b/ui-ngx/src/app/modules/home/pages/device/data/default-device-configuration.component.html
@@ -1,6 +1,6 @@