2019-09-03 19:31:16 +03:00
|
|
|
<!--
|
|
|
|
|
|
2021-01-11 13:42:16 +02:00
|
|
|
Copyright © 2016-2021 The Thingsboard Authors
|
2019-09-03 19:31:16 +03:00
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
<div fxFlex fxLayout="column" class="tb-progress-cover" fxLayoutAlign="center center"
|
2019-09-05 21:15:40 +03:00
|
|
|
[ngStyle]="dashboardStyle"
|
2019-10-31 10:06:57 +02:00
|
|
|
[style.backgroundImage]="backgroundImage"
|
2020-04-29 11:33:42 +03:00
|
|
|
[fxShow]="(isLoading$ | async) && !ignoreLoading && !isEdit">
|
2019-09-03 19:31:16 +03:00
|
|
|
<mat-spinner color="warn" mode="indeterminate" diameter="100">
|
|
|
|
|
</mat-spinner>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="gridster-parent"
|
|
|
|
|
fxFlex class="tb-dashboard-content layout-wrap" [ngStyle]="{overflowY: isAutofillHeight() ? 'hidden' : 'auto'}"
|
|
|
|
|
(contextmenu)="openDashboardContextMenu($event)">
|
2019-09-25 19:37:29 +03:00
|
|
|
<div #dashboardMenuTrigger="matMenuTrigger" style="visibility: hidden; position: fixed"
|
|
|
|
|
[style.left]="dashboardMenuPosition.x"
|
|
|
|
|
[style.top]="dashboardMenuPosition.y"
|
|
|
|
|
[matMenuTriggerFor]="dashboardMenu">
|
|
|
|
|
</div>
|
|
|
|
|
<mat-menu #dashboardMenu="matMenu">
|
|
|
|
|
<ng-template matMenuContent let-items="items">
|
|
|
|
|
<div class="tb-dashboard-context-menu-items">
|
|
|
|
|
<button mat-menu-item *ngFor="let item of items;"
|
|
|
|
|
[disabled]="!item.enabled"
|
|
|
|
|
(click)="item.action(dashboardContextMenuEvent)">
|
|
|
|
|
<span *ngIf="item.shortcut" class="tb-alt-text"> {{ item.shortcut | keyboardShortcut }}</span>
|
|
|
|
|
<mat-icon *ngIf="item.icon">{{item.icon}}</mat-icon>
|
|
|
|
|
<span translate>{{item.value}}</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</ng-template>
|
|
|
|
|
</mat-menu>
|
|
|
|
|
<div #widgetMenuTrigger="matMenuTrigger" style="visibility: hidden; position: fixed"
|
|
|
|
|
[style.left]="widgetMenuPosition.x"
|
|
|
|
|
[style.top]="widgetMenuPosition.y"
|
|
|
|
|
[matMenuTriggerFor]="widgetMenu">
|
|
|
|
|
</div>
|
|
|
|
|
<mat-menu #widgetMenu="matMenu">
|
|
|
|
|
<ng-template matMenuContent let-items="items" let-widget="widget">
|
|
|
|
|
<div class="tb-dashboard-context-menu-items">
|
|
|
|
|
<button mat-menu-item *ngFor="let item of items;"
|
|
|
|
|
[disabled]="!item.enabled"
|
|
|
|
|
(click)="item.action(widgetContextMenuEvent, widget)">
|
|
|
|
|
<span *ngIf="item.shortcut" class="tb-alt-text"> {{ item.shortcut | keyboardShortcut }}</span>
|
|
|
|
|
<mat-icon *ngIf="item.icon">{{item.icon}}</mat-icon>
|
|
|
|
|
<span translate>{{item.value}}</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</ng-template>
|
|
|
|
|
</mat-menu>
|
2019-09-05 21:15:40 +03:00
|
|
|
<div [ngClass]="dashboardClass" id="gridster-background" style="height: auto; min-height: 100%; display: inline;">
|
2019-09-03 19:31:16 +03:00
|
|
|
<gridster #gridster id="gridster-child" [options]="gridsterOpts">
|
2019-09-20 20:30:43 +03:00
|
|
|
<gridster-item [item]="widget" class="tb-noselect" *ngFor="let widget of dashboardWidgets">
|
2021-05-26 13:49:30 +03:00
|
|
|
<tb-widget-container
|
|
|
|
|
[widget]="widget"
|
|
|
|
|
[dashboardWidgets]="dashboardWidgets"
|
|
|
|
|
[dashboardStyle]="dashboardStyle"
|
|
|
|
|
[backgroundImage]="backgroundImage"
|
|
|
|
|
[isEdit]="isEdit"
|
2021-05-26 13:58:50 +03:00
|
|
|
[isMobile]="isMobileSize"
|
2021-05-26 13:49:30 +03:00
|
|
|
[isEditActionEnabled]="isEditActionEnabled"
|
|
|
|
|
[isExportActionEnabled]="isExportActionEnabled"
|
|
|
|
|
[isRemoveActionEnabled]="isRemoveActionEnabled"
|
|
|
|
|
[disableWidgetInteraction]="disableWidgetInteraction"
|
|
|
|
|
(widgetFullscreenChanged)="onWidgetFullscreenChanged($event)"
|
|
|
|
|
(widgetComponentAction)="onWidgetComponentAction($event, widget)">
|
|
|
|
|
</tb-widget-container>
|
2019-09-03 19:31:16 +03:00
|
|
|
</gridster-item>
|
|
|
|
|
</gridster>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|