UI: date-time period component redesign
This commit is contained in:
parent
c8d48521fb
commit
a9b350ff76
@ -15,35 +15,17 @@
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<section fxLayout="column" fxLayoutAlign="start stretch">
|
<section class="tb-form-row column-xs no-border no-padding tb-standard-fields">
|
||||||
<section fxLayout="row" fxLayoutAlign="start start" fxLayoutGap="16px"
|
<mat-form-field class="medium-width flex-xs" [subscriptSizing]="subscriptSizing" [appearance]="appearance">
|
||||||
fxLayout.xs="column" fxLayoutAlign.xs="start stretch" fxLayoutGap.xs="0">
|
<mat-label translate>datetime.from</mat-label>
|
||||||
<mat-form-field>
|
<mat-datetimepicker-toggle [for]="startDatePicker" matSuffix></mat-datetimepicker-toggle>
|
||||||
<mat-label translate>datetime.date-from</mat-label>
|
<mat-datetimepicker #startDatePicker type="datetime" openOnFocus="true"></mat-datetimepicker>
|
||||||
<mat-datetimepicker-toggle [for]="startDatePicker" matPrefix></mat-datetimepicker-toggle>
|
|
||||||
<mat-datetimepicker #startDatePicker type="date" openOnFocus="true"></mat-datetimepicker>
|
|
||||||
<input matInput [disabled]="disabled" [(ngModel)]="startDate" [matDatetimepicker]="startDatePicker" (ngModelChange)="onStartDateChange()">
|
<input matInput [disabled]="disabled" [(ngModel)]="startDate" [matDatetimepicker]="startDatePicker" (ngModelChange)="onStartDateChange()">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field>
|
<mat-form-field class="medium-width flex-xs" [subscriptSizing]="subscriptSizing" [appearance]="appearance">
|
||||||
<mat-label translate>datetime.time-from</mat-label>
|
<mat-label translate>datetime.to</mat-label>
|
||||||
<mat-datetimepicker-toggle [for]="startTimePicker" matPrefix></mat-datetimepicker-toggle>
|
<mat-datetimepicker-toggle [for]="endDatePicker" matSuffix></mat-datetimepicker-toggle>
|
||||||
<mat-datetimepicker #startTimePicker type="time" openOnFocus="true"></mat-datetimepicker>
|
<mat-datetimepicker #endDatePicker type="datetime" openOnFocus="true"></mat-datetimepicker>
|
||||||
<input matInput [disabled]="disabled" [(ngModel)]="startDate" [matDatetimepicker]="startTimePicker" (ngModelChange)="onStartDateChange()">
|
|
||||||
</mat-form-field>
|
|
||||||
</section>
|
|
||||||
<section fxLayout="row" fxLayoutAlign="start start" fxLayoutGap="16px"
|
|
||||||
fxLayout.xs="column" fxLayoutAlign.xs="start stretch" fxLayoutGap.xs="0">
|
|
||||||
<mat-form-field>
|
|
||||||
<mat-label translate>datetime.date-to</mat-label>
|
|
||||||
<mat-datetimepicker-toggle [for]="endDatePicker" matPrefix></mat-datetimepicker-toggle>
|
|
||||||
<mat-datetimepicker #endDatePicker type="date" openOnFocus="true"></mat-datetimepicker>
|
|
||||||
<input matInput [disabled]="disabled" [(ngModel)]="endDate" [matDatetimepicker]="endDatePicker" (ngModelChange)="onEndDateChange()">
|
<input matInput [disabled]="disabled" [(ngModel)]="endDate" [matDatetimepicker]="endDatePicker" (ngModelChange)="onEndDateChange()">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field>
|
|
||||||
<mat-label translate>datetime.time-to</mat-label>
|
|
||||||
<mat-datetimepicker-toggle [for]="endTimePicker" matPrefix></mat-datetimepicker-toggle>
|
|
||||||
<mat-datetimepicker #endTimePicker type="time" openOnFocus="true"></mat-datetimepicker>
|
|
||||||
<input matInput [disabled]="disabled" [(ngModel)]="endDate" [matDatetimepicker]="endTimePicker" (ngModelChange)="onEndDateChange()">
|
|
||||||
</mat-form-field>
|
|
||||||
</section>
|
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@ -13,14 +13,9 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
@import '../../../../scss/constants';
|
|
||||||
|
|
||||||
:host ::ng-deep {
|
:host {
|
||||||
.mat-mdc-form-field-infix {
|
.tb-form-row {
|
||||||
width: 100px;
|
gap: 8px;
|
||||||
|
|
||||||
@media #{$mat-xs} {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
import { Component, forwardRef, Input, OnInit } from '@angular/core';
|
import { Component, forwardRef, Input, OnInit } from '@angular/core';
|
||||||
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
||||||
import { FixedWindow } from '@shared/models/time/time.models';
|
import { FixedWindow } from '@shared/models/time/time.models';
|
||||||
|
import { MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tb-datetime-period',
|
selector: 'tb-datetime-period',
|
||||||
@ -34,6 +35,12 @@ export class DatetimePeriodComponent implements OnInit, ControlValueAccessor {
|
|||||||
|
|
||||||
@Input() disabled: boolean;
|
@Input() disabled: boolean;
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
subscriptSizing: SubscriptSizing = 'fixed';
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
appearance: MatFormFieldAppearance = 'fill';
|
||||||
|
|
||||||
modelValue: FixedWindow;
|
modelValue: FixedWindow;
|
||||||
|
|
||||||
startDate: Date;
|
startDate: Date;
|
||||||
|
|||||||
@ -23,11 +23,10 @@
|
|||||||
<section class="tb-form-panel stroked" *ngIf="realtimeIntervalSelectionAvailable; else timezoneSelectionPanel">
|
<section class="tb-form-panel stroked" *ngIf="realtimeIntervalSelectionAvailable; else timezoneSelectionPanel">
|
||||||
<div class="tb-flex space-between"
|
<div class="tb-flex space-between"
|
||||||
[ngClass]="{'align-end': realtimeTypeSelectionAvailable, 'align-center': !realtimeTypeSelectionAvailable }">
|
[ngClass]="{'align-end': realtimeTypeSelectionAvailable, 'align-center': !realtimeTypeSelectionAvailable }">
|
||||||
<div class="tb-flex column">
|
<div class="tb-flex column no-flex flex-xs">
|
||||||
<div class="tb-form-panel-title">{{ 'timewindow.time-range' | translate }}</div>
|
<div class="tb-form-panel-title">{{ 'timewindow.time-range' | translate }}</div>
|
||||||
<ng-container formGroupName="realtime" *ngIf="realtimeTypeSelectionAvailable">
|
<ng-container formGroupName="realtime" *ngIf="realtimeTypeSelectionAvailable">
|
||||||
<tb-toggle-select appearance="fill" [options]="realtimeTimewindowOptions" formControlName="realtimeType"
|
<tb-toggle-select appearance="fill" [options]="realtimeTimewindowOptions" formControlName="realtimeType">
|
||||||
style="max-width: 100%">
|
|
||||||
</tb-toggle-select>
|
</tb-toggle-select>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
@ -69,11 +68,10 @@
|
|||||||
<section class="tb-form-panel stroked" *ngIf="historyIntervalSelectionAvailable; else timezoneSelectionPanel">
|
<section class="tb-form-panel stroked" *ngIf="historyIntervalSelectionAvailable; else timezoneSelectionPanel">
|
||||||
<div class="tb-flex space-between"
|
<div class="tb-flex space-between"
|
||||||
[ngClass]="{'align-end': historyTypeSelectionAvailable, 'align-center': !historyTypeSelectionAvailable }">
|
[ngClass]="{'align-end': historyTypeSelectionAvailable, 'align-center': !historyTypeSelectionAvailable }">
|
||||||
<div class="tb-flex column">
|
<div class="tb-flex column no-flex flex-xs">
|
||||||
<div class="tb-form-panel-title">{{ 'timewindow.time-range' | translate }}</div>
|
<div class="tb-form-panel-title">{{ 'timewindow.time-range' | translate }}</div>
|
||||||
<ng-container formGroupName="history" *ngIf="historyTypeSelectionAvailable">
|
<ng-container formGroupName="history" *ngIf="historyTypeSelectionAvailable">
|
||||||
<tb-toggle-select appearance="fill" [options]="historyTimewindowOptions" formControlName="historyType"
|
<tb-toggle-select appearance="fill" [options]="historyTimewindowOptions" formControlName="historyType">
|
||||||
style="max-width: 100%">
|
|
||||||
</tb-toggle-select>
|
</tb-toggle-select>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
@ -97,6 +95,8 @@
|
|||||||
<ng-container *ngIf="timewindowForm.get('history.historyType').value === historyTypes.FIXED">
|
<ng-container *ngIf="timewindowForm.get('history.historyType').value === historyTypes.FIXED">
|
||||||
<tb-datetime-period
|
<tb-datetime-period
|
||||||
formControlName="fixedTimewindow"
|
formControlName="fixedTimewindow"
|
||||||
|
subscriptSizing="dynamic"
|
||||||
|
appearance="outline"
|
||||||
class="history-time-input"
|
class="history-time-input"
|
||||||
[required]="timewindow.selectedTab === timewindowTypes.HISTORY &&
|
[required]="timewindow.selectedTab === timewindowTypes.HISTORY &&
|
||||||
timewindowForm.get('history.historyType').value === historyTypes.FIXED">
|
timewindowForm.get('history.historyType').value === historyTypes.FIXED">
|
||||||
@ -126,7 +126,7 @@
|
|||||||
<section class="tb-form-panel stroked" *ngIf="isEdit || !timewindow.hideAggregation">
|
<section class="tb-form-panel stroked" *ngIf="isEdit || !timewindow.hideAggregation">
|
||||||
<div class="tb-form-panel-title">{{ 'aggregation.aggregation' | translate }}</div>
|
<div class="tb-form-panel-title">{{ 'aggregation.aggregation' | translate }}</div>
|
||||||
<mat-form-field subscriptSizing="dynamic" appearance="outline">
|
<mat-form-field subscriptSizing="dynamic" appearance="outline">
|
||||||
<mat-select formControlName="type" style="min-width: 150px;">
|
<mat-select formControlName="type">
|
||||||
<mat-option *ngFor="let aggregation of aggregations" [value]="aggregation">
|
<mat-option *ngFor="let aggregation of aggregations" [value]="aggregation">
|
||||||
{{ aggregationTypesTranslations.get(aggregationTypes[aggregation]) | translate }}
|
{{ aggregationTypesTranslations.get(aggregationTypes[aggregation]) | translate }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
|||||||
@ -35,19 +35,6 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-padding {
|
|
||||||
padding: 0 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hide-label {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
tb-timeinterval[ng-reflect-fxe-show="true"] {
|
|
||||||
margin-bottom: -16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.limit-slider-container {
|
.limit-slider-container {
|
||||||
.limit-slider-value {
|
.limit-slider-value {
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
@ -60,9 +47,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media #{$mat-gt-sm} {
|
@media #{$mat-gt-sm} {
|
||||||
.history-time-input {
|
|
||||||
min-width: 364px;
|
|
||||||
}
|
|
||||||
.limit-slider-container {
|
.limit-slider-container {
|
||||||
> label {
|
> label {
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
@ -75,15 +59,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
:host ::ng-deep {
|
:host ::ng-deep {
|
||||||
.mat-mdc-radio-button {
|
|
||||||
display: block;
|
|
||||||
.mdc-form-field {
|
|
||||||
align-items: start;
|
|
||||||
> label {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.mat-mdc-tab-group:not(.tb-headless) {
|
.mat-mdc-tab-group:not(.tb-headless) {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1078,7 +1078,9 @@
|
|||||||
"date-from": "Date from",
|
"date-from": "Date from",
|
||||||
"time-from": "Time from",
|
"time-from": "Time from",
|
||||||
"date-to": "Date to",
|
"date-to": "Date to",
|
||||||
"time-to": "Time to"
|
"time-to": "Time to",
|
||||||
|
"from": "From",
|
||||||
|
"to": "To"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"dashboard": "Dashboard",
|
"dashboard": "Dashboard",
|
||||||
|
|||||||
@ -265,6 +265,12 @@
|
|||||||
gap: 8px;
|
gap: 8px;
|
||||||
&.no-flex {
|
&.no-flex {
|
||||||
flex: none;
|
flex: none;
|
||||||
|
&.flex-xs {
|
||||||
|
@media #{$mat-xs} {
|
||||||
|
width: auto;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
&.row {
|
&.row {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user