2019-10-31 10:06:57 +02:00
|
|
|
<!--
|
|
|
|
|
|
2022-01-17 14:07:46 +02:00
|
|
|
Copyright © 2016-2022 The Thingsboard Authors
|
2019-10-31 10:06:57 +02: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.
|
|
|
|
|
|
|
|
|
|
-->
|
2020-04-27 10:39:18 +03:00
|
|
|
<form [formGroup]="layoutsFormGroup" (ngSubmit)="save()">
|
2020-04-21 11:53:26 +03:00
|
|
|
<mat-toolbar color="primary">
|
2019-10-31 10:06:57 +02:00
|
|
|
<h2 translate>layout.manage</h2>
|
|
|
|
|
<span fxFlex></span>
|
|
|
|
|
<button mat-button mat-icon-button
|
|
|
|
|
(click)="cancel()"
|
|
|
|
|
type="button">
|
|
|
|
|
<mat-icon class="material-icons">close</mat-icon>
|
|
|
|
|
</button>
|
|
|
|
|
</mat-toolbar>
|
|
|
|
|
<mat-progress-bar color="warn" mode="indeterminate" *ngIf="isLoading$ | async">
|
|
|
|
|
</mat-progress-bar>
|
2022-04-05 13:56:44 +03:00
|
|
|
<div mat-dialog-content style="min-width: 300px;">
|
2019-10-31 10:06:57 +02:00
|
|
|
<fieldset [disabled]="isLoading$ | async" fxLayout="column" fxLayoutGap="8px">
|
|
|
|
|
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px">
|
|
|
|
|
<mat-checkbox fxFlex formControlName="main">
|
2022-04-05 13:56:44 +03:00
|
|
|
{{ (layoutsFormGroup.value.right ? 'layout.left' : 'layout.main') | translate }}
|
2019-10-31 10:06:57 +02:00
|
|
|
</mat-checkbox>
|
|
|
|
|
<mat-checkbox fxFlex formControlName="right">
|
|
|
|
|
{{ 'layout.right' | translate }}
|
|
|
|
|
</mat-checkbox>
|
|
|
|
|
</div>
|
2022-04-05 13:56:44 +03:00
|
|
|
<div fxLayout="column" fxLayoutAlign="start center" fxLayoutGap="8px">
|
|
|
|
|
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px" style="width: 100%;">
|
2022-06-16 22:10:30 +03:00
|
|
|
<button fxFlex="{{buttonFlexValue()}}"
|
2022-04-05 13:56:44 +03:00
|
|
|
type="button"
|
|
|
|
|
mat-raised-button
|
|
|
|
|
color="primary"
|
|
|
|
|
class="tb-layout-button"
|
2022-06-16 22:10:30 +03:00
|
|
|
(click)="openLayoutSettings(LayoutType.MAIN)"
|
|
|
|
|
>
|
|
|
|
|
<span >{{ (layoutsFormGroup.value.right ? 'layout.left' : 'layout.main') | translate }}</span>
|
2022-04-05 13:56:44 +03:00
|
|
|
</button>
|
2022-06-16 22:10:30 +03:00
|
|
|
<button fxFlex
|
|
|
|
|
[fxShow]="layoutsFormGroup.get(LayoutType.RIGHT).value"
|
2022-04-05 13:56:44 +03:00
|
|
|
type="button"
|
|
|
|
|
mat-raised-button
|
|
|
|
|
color="primary"
|
|
|
|
|
class="tb-layout-button"
|
2022-06-16 22:10:30 +03:00
|
|
|
(click)="openLayoutSettings(LayoutType.RIGHT)">
|
2022-04-05 13:56:44 +03:00
|
|
|
<span >{{ 'layout.right' | translate }}</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div fxLayout="column"
|
|
|
|
|
fxLayoutAlign="start center"
|
|
|
|
|
fxLayoutGap="8px"
|
2022-06-16 22:10:30 +03:00
|
|
|
[fxShow]="layoutsFormGroup.get(LayoutType.RIGHT).value">
|
2022-04-05 13:56:44 +03:00
|
|
|
<mat-button-toggle-group aria-label="Select width value type"
|
|
|
|
|
formControlName="type"
|
|
|
|
|
style="width: 100%;">
|
2022-06-16 22:10:30 +03:00
|
|
|
<mat-button-toggle fxFlex value="percentage">
|
2022-04-05 13:56:44 +03:00
|
|
|
{{ 'layout.percentage-width' | translate }}
|
|
|
|
|
</mat-button-toggle>
|
2022-06-16 22:10:30 +03:00
|
|
|
<mat-button-toggle fxFlex value="fixed">
|
2022-04-05 13:56:44 +03:00
|
|
|
{{ 'layout.fixed-width' | translate }}
|
|
|
|
|
</mat-button-toggle>
|
|
|
|
|
</mat-button-toggle-group>
|
2022-06-16 22:10:30 +03:00
|
|
|
<div [fxShow]="layoutsFormGroup.get('type').value === LayoutWidthType.PERCENTAGE">
|
2022-04-05 13:56:44 +03:00
|
|
|
<div
|
|
|
|
|
fxLayoutAlign="start center"
|
|
|
|
|
fxLayoutGap="8px"
|
|
|
|
|
style="width: 100%;">
|
|
|
|
|
<mat-slider min="10"
|
|
|
|
|
step="1"
|
|
|
|
|
style="width: 100%;"
|
|
|
|
|
max="90"
|
|
|
|
|
formControlName="leftWidthPercentage"
|
|
|
|
|
thumbLabel
|
2022-06-16 22:10:30 +03:00
|
|
|
[value]="layoutsFormGroup.get('leftWidthPercentage').value"
|
|
|
|
|
[displayWith]="formatSliderTooltipLabel">
|
|
|
|
|
</mat-slider>
|
|
|
|
|
|
2022-04-05 13:56:44 +03:00
|
|
|
</div>
|
|
|
|
|
<div fxLayout="column">
|
|
|
|
|
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px" style="width: 100%;">
|
|
|
|
|
<mat-form-field class="mat-block">
|
|
|
|
|
<mat-label>{{ 'layout.left-width' | translate }}</mat-label>
|
|
|
|
|
<input matInput
|
2022-04-11 16:31:43 +03:00
|
|
|
formControlName="leftWidthPercentage"
|
2022-06-16 22:10:30 +03:00
|
|
|
[value]="layoutsFormGroup.get('leftWidthPercentage').value"
|
2022-04-05 13:56:44 +03:00
|
|
|
type="number"
|
2022-06-16 22:10:30 +03:00
|
|
|
step="1"
|
2022-04-05 13:56:44 +03:00
|
|
|
min="10"
|
|
|
|
|
max="90">
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
<mat-form-field fxFlex class="mat-block">
|
|
|
|
|
<mat-label>{{ 'layout.right-width' | translate }}</mat-label>
|
|
|
|
|
<input matInput
|
2022-04-11 16:31:43 +03:00
|
|
|
formControlName="rightWidthPercentage"
|
2022-04-05 13:56:44 +03:00
|
|
|
type="number"
|
2022-06-16 22:10:30 +03:00
|
|
|
step="1"
|
2022-04-05 13:56:44 +03:00
|
|
|
min="10"
|
|
|
|
|
max="90">
|
|
|
|
|
</mat-form-field>
|
|
|
|
|
</div>
|
2022-06-16 22:10:30 +03:00
|
|
|
<label class="tb-hint">{{'layout.layout-min-max' | translate: { min: 10, max: 90, units: "%" } }}</label>
|
2022-04-05 13:56:44 +03:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2022-06-16 22:10:30 +03:00
|
|
|
<div [fxShow]="layoutsFormGroup.get('type').value === LayoutWidthType.FIXED"
|
2022-04-05 13:56:44 +03:00
|
|
|
fxLayout="column"
|
|
|
|
|
fxLayoutAlign="start center">
|
|
|
|
|
<div fxLayout="row" fxLayoutAlign="start center" fxLayoutGap="8px" class="tb-layout-fixed-container">
|
|
|
|
|
<label>{{ 'layout.pick-fixed-side' | translate }}</label>
|
|
|
|
|
<mat-radio-group aria-label="Select side"
|
|
|
|
|
formControlName="fixedLayout"
|
|
|
|
|
fxLayout="row"
|
|
|
|
|
fxLayoutAlign="start center"
|
|
|
|
|
fxLayoutGap="8px">
|
|
|
|
|
<mat-radio-button value="main">
|
|
|
|
|
{{ 'layout.left' | translate }}
|
|
|
|
|
</mat-radio-button>
|
|
|
|
|
<mat-radio-button value="right">
|
|
|
|
|
{{ 'layout.right' | translate }}
|
|
|
|
|
</mat-radio-button>
|
|
|
|
|
</mat-radio-group>
|
|
|
|
|
</div>
|
|
|
|
|
<div fxLayout="column" style="width: 100%; min-width: 368px;">
|
|
|
|
|
<mat-form-field class="mat-block" style="width: 100%;">
|
|
|
|
|
<mat-label>{{ 'layout.layout-fixed-width' | translate }}</mat-label>
|
|
|
|
|
<input matInput
|
|
|
|
|
formControlName="fixedWidth"
|
|
|
|
|
type="number"
|
2022-06-16 22:10:30 +03:00
|
|
|
step="1"
|
2022-04-05 13:56:44 +03:00
|
|
|
min="150"
|
|
|
|
|
max="1700"
|
|
|
|
|
required>
|
|
|
|
|
</mat-form-field>
|
2022-06-16 22:10:30 +03:00
|
|
|
<label class="tb-hint">{{ 'layout.layout-min-max' | translate: {min: 150, max: 1700, units: "px" } }}</label>
|
2022-04-05 13:56:44 +03:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2019-10-31 10:06:57 +02:00
|
|
|
</div>
|
|
|
|
|
</fieldset>
|
|
|
|
|
</div>
|
2020-04-21 11:53:26 +03:00
|
|
|
<div mat-dialog-actions fxLayoutAlign="end center">
|
|
|
|
|
<button mat-button
|
|
|
|
|
color="primary"
|
2019-10-31 10:06:57 +02:00
|
|
|
type="button"
|
2020-04-21 11:53:26 +03:00
|
|
|
[disabled]="(isLoading$ | async)"
|
|
|
|
|
(click)="cancel()" cdkFocusInitial>
|
2019-10-31 10:06:57 +02:00
|
|
|
{{ 'action.cancel' | translate }}
|
|
|
|
|
</button>
|
2020-10-14 12:32:07 +03:00
|
|
|
<button mat-raised-button color="primary"
|
|
|
|
|
type="submit"
|
|
|
|
|
[disabled]="(isLoading$ | async) || layoutsFormGroup.invalid || !layoutsFormGroup.dirty">
|
|
|
|
|
{{ 'action.save' | translate }}
|
|
|
|
|
</button>
|
2019-10-31 10:06:57 +02:00
|
|
|
</div>
|
|
|
|
|
</form>
|