2019-08-12 19:34:23 +03:00
|
|
|
<!--
|
|
|
|
|
|
2023-01-31 10:43:56 +02:00
|
|
|
Copyright © 2016-2023 The Thingsboard Authors
|
2019-08-12 19:34:23 +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.
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
<header>
|
2019-12-17 20:16:40 +02:00
|
|
|
<mat-toolbar class="details-toolbar" color="primary" [ngStyle]="{height: headerHeightPx+'px'}">
|
2020-04-21 11:53:26 +03:00
|
|
|
<div class="mat-toolbar-tools" fxLayout="row" fxLayoutAlign="start center" style="height: 100%;">
|
2021-03-04 19:38:30 +02:00
|
|
|
<div class="mat-toolbar-tools tb-details-title-header" fxFlex fxLayout="column" fxLayoutAlign="start start" [fxHide]="showSearchPane">
|
2021-03-04 17:11:55 +02:00
|
|
|
<div class="tb-details-title" fxLayout="row" fxLayoutAlign="start center">
|
|
|
|
|
<ng-content select=".prefix-title-buttons"></ng-content>
|
2021-02-25 15:37:20 +02:00
|
|
|
<span>{{ headerTitle }}</span>
|
|
|
|
|
</div>
|
2019-08-12 19:34:23 +03:00
|
|
|
<span class="tb-details-subtitle">{{ headerSubtitle }}</span>
|
|
|
|
|
<span style="width: 100%;">
|
|
|
|
|
<ng-content select=".header-pane"></ng-content>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
2021-03-04 19:38:30 +02:00
|
|
|
<div *ngIf="isShowSearch" [fxHide]="!showSearchPane" fxLayout="row" fxLayoutAlign="start center" style="width: 100%;">
|
|
|
|
|
<button mat-button mat-icon-button (click)="onToggleSearch()">
|
|
|
|
|
<mat-icon class="material-icons">arrow_back</mat-icon>
|
|
|
|
|
</button>
|
|
|
|
|
<div style="width: 100%; margin: 0 20px">
|
|
|
|
|
<ng-content select=".search-pane"></ng-content>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<button mat-button mat-icon-button *ngIf="isShowSearch && !showSearchPane" (click)="onToggleSearch()">
|
|
|
|
|
<mat-icon class="material-icons">search</mat-icon>
|
|
|
|
|
</button>
|
2019-08-12 19:34:23 +03:00
|
|
|
<ng-content select=".details-buttons"></ng-content>
|
2021-03-04 19:38:30 +02:00
|
|
|
<button mat-button mat-icon-button (click)="onCloseDetails()">
|
2019-08-12 19:34:23 +03:00
|
|
|
<mat-icon class="material-icons">close</mat-icon>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<section *ngIf="!isReadOnly" fxLayout="row" class="layout-wrap tb-header-buttons">
|
2019-09-25 19:37:29 +03:00
|
|
|
<button [disabled]="(isLoading$ | async) || theForm?.invalid || !theForm?.dirty"
|
2019-08-12 19:34:23 +03:00
|
|
|
mat-fab
|
|
|
|
|
matTooltip="{{ 'action.apply-changes' | translate }}"
|
|
|
|
|
matTooltipPosition="above"
|
|
|
|
|
color="accent" class="tb-btn-header mat-fab-bottom-right"
|
|
|
|
|
[ngClass]="{'tb-hide': !isEdit}"
|
|
|
|
|
(click)="onApplyDetails()">
|
|
|
|
|
<mat-icon class="material-icons">done</mat-icon>
|
|
|
|
|
</button>
|
2019-09-25 19:37:29 +03:00
|
|
|
<button [disabled]="(isLoading$ | async) || (isAlwaysEdit && !theForm?.dirty)"
|
2019-08-12 19:34:23 +03:00
|
|
|
mat-fab
|
|
|
|
|
matTooltip="{{ (isAlwaysEdit ? 'action.decline-changes' : 'details.toggle-edit-mode') | translate }}"
|
|
|
|
|
matTooltipPosition="above"
|
|
|
|
|
color="accent" class="tb-btn-header mat-fab-bottom-right"
|
|
|
|
|
(click)="onToggleDetailsEditMode()">
|
|
|
|
|
<mat-icon class="material-icons">{{isEdit ? 'close' : 'edit'}}</mat-icon>
|
|
|
|
|
</button>
|
|
|
|
|
</section>
|
|
|
|
|
</mat-toolbar>
|
|
|
|
|
</header>
|
2021-03-04 19:38:30 +02:00
|
|
|
<div fxFlex class="mat-content" [ngStyle]="{backgroundColor: backgroundColor}">
|
2019-08-12 19:34:23 +03:00
|
|
|
<ng-content></ng-content>
|
|
|
|
|
</div>
|