Commit 15880e3ef9b3f601436d624b7fa4894180892c27
Committed by
GitHub
1 parent
842a1d1a
[3.0] Minor fix (#2571)
* Fix breadcrumb and breakroint api to header * Fix layout profile * Clear code and fix layout (admin and profile pages) * Improvements import * Fix entity table
Showing
57 changed files
with
264 additions
and
310 deletions
... | ... | @@ -25,17 +25,13 @@ import { |
25 | 25 | AuditLog, |
26 | 26 | AuditLogMode |
27 | 27 | } from '@shared/models/audit-log.models'; |
28 | -import { | |
29 | - EntityTypeResource, | |
30 | - EntityTypeTranslation, | |
31 | - entityTypeTranslations | |
32 | -} from '@shared/models/entity-type.models'; | |
28 | +import { EntityTypeResource, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
33 | 29 | import { AuditLogService } from '@core/http/audit-log.service'; |
34 | 30 | import { TranslateService } from '@ngx-translate/core'; |
35 | 31 | import { DatePipe } from '@angular/common'; |
36 | 32 | import { Direction } from '@shared/models/page/sort-order'; |
37 | 33 | import { MatDialog } from '@angular/material/dialog'; |
38 | -import { PageLink, TimePageLink } from '@shared/models/page/page-link'; | |
34 | +import { TimePageLink } from '@shared/models/page/page-link'; | |
39 | 35 | import { Observable } from 'rxjs'; |
40 | 36 | import { PageData } from '@shared/models/page/page-data'; |
41 | 37 | import { EntityId } from '@shared/models/id/entity-id'; | ... | ... |
... | ... | @@ -135,7 +135,7 @@ |
135 | 135 | </div> |
136 | 136 | </mat-toolbar> |
137 | 137 | <div fxFlex class="table-container"> |
138 | - <mat-table [dataSource]="dataSource" [trackBy]="trackByEntityId" | |
138 | + <table mat-table [dataSource]="dataSource" [trackBy]="trackByEntityId" | |
139 | 139 | matSort [matSortActive]="pageLink.sortOrder.property" [matSortDirection]="pageLink.sortDirection()" matSortDisableClear> |
140 | 140 | <ng-container matColumnDef="select" sticky> |
141 | 141 | <mat-header-cell *matHeaderCellDef style="width: 30px;"> |
... | ... | @@ -187,7 +187,7 @@ |
187 | 187 | maxWidth: (cellActionDescriptors.length * 40) + 'px', |
188 | 188 | width: (cellActionDescriptors.length * 40) + 'px' }"> |
189 | 189 | <div fxHide fxShow.gt-md fxFlex fxLayout="row" fxLayoutAlign="end"> |
190 | - <button mat-button mat-icon-button [disabled]="isLoading$ | async" | |
190 | + <button mat-icon-button [disabled]="isLoading$ | async" | |
191 | 191 | [fxShow]="actionDescriptor.isEnabled(entity)" *ngFor="let actionDescriptor of cellActionDescriptors" |
192 | 192 | matTooltip="{{ actionDescriptor.nameFunction ? actionDescriptor.nameFunction(entity) : actionDescriptor.name }}" |
193 | 193 | matTooltipPosition="above" |
... | ... | @@ -197,7 +197,7 @@ |
197 | 197 | </button> |
198 | 198 | </div> |
199 | 199 | <div fxHide fxShow.lt-lg *ngIf="cellActionDescriptors.length"> |
200 | - <button mat-button mat-icon-button | |
200 | + <button mat-icon-button | |
201 | 201 | (click)="$event.stopPropagation()" |
202 | 202 | [matMenuTriggerFor]="cellActionsMenu"> |
203 | 203 | <mat-icon class="material-icons">more_vert</mat-icon> |
... | ... | @@ -220,7 +220,7 @@ |
220 | 220 | 'mat-selected': dataSource.selection.isSelected(entity), |
221 | 221 | 'tb-current-entity': dataSource.isCurrentEntity(entity)}" |
222 | 222 | *matRowDef="let entity; columns: displayedColumns;" (click)="onRowClick($event, entity)"></mat-row> |
223 | - </mat-table> | |
223 | + </table> | |
224 | 224 | <span [fxShow]="!(isLoading$ | async) && (dataSource.isEmpty() | async)" |
225 | 225 | fxLayoutAlign="center center" |
226 | 226 | class="no-data-found" translate>{{ translations.noEntities }}</span> | ... | ... |
... | ... | @@ -35,17 +35,17 @@ |
35 | 35 | <mat-sidenav-content> |
36 | 36 | <div fxLayout="column" role="main" style="height: 100%;"> |
37 | 37 | <mat-toolbar fxLayout="row" color="primary" class="mat-elevation-z1 tb-primary-toolbar"> |
38 | - <button [fxShow]="!forceFullscreen" mat-button mat-icon-button id="main" | |
38 | + <button [fxShow]="!forceFullscreen" mat-icon-button id="main" | |
39 | 39 | [ngClass]="{'tb-invisible': displaySearchMode()}" |
40 | 40 | fxHide.gt-sm (click)="sidenav.toggle()"> |
41 | 41 | <mat-icon class="material-icons">menu</mat-icon> |
42 | 42 | </button> |
43 | - <button [fxShow]="forceFullscreen" mat-button mat-icon-button | |
43 | + <button [fxShow]="forceFullscreen" mat-icon-button | |
44 | 44 | [ngClass]="{'tb-invisible': displaySearchMode()}" |
45 | 45 | (click)="goBack()"> |
46 | 46 | <mat-icon class="material-icons">arrow_back</mat-icon> |
47 | 47 | </button> |
48 | - <button mat-button mat-icon-button | |
48 | + <button mat-icon-button | |
49 | 49 | [ngClass]="{'tb-invisible': !displaySearchMode()}" |
50 | 50 | (click)="closeSearch()"> |
51 | 51 | <mat-icon class="material-icons">arrow_back</mat-icon> |
... | ... | @@ -62,12 +62,11 @@ |
62 | 62 | </mat-form-field> |
63 | 63 | </div> |
64 | 64 | <button [fxShow]="searchEnabled" |
65 | - mat-button mat-icon-button | |
66 | - (click)="openSearch()"> | |
65 | + mat-icon-button (click)="openSearch()"> | |
67 | 66 | <mat-icon class="material-icons">search</mat-icon> |
68 | 67 | </button> |
69 | 68 | <button *ngIf="fullscreenEnabled" [fxShow]="!displaySearchMode()" |
70 | - mat-button mat-icon-button fxHide.xs fxHide.sm (click)="toggleFullscreen()"> | |
69 | + mat-icon-button fxHide.lt-md (click)="toggleFullscreen()"> | |
71 | 70 | <mat-icon class="material-icons">{{ isFullscreen() ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon> |
72 | 71 | </button> |
73 | 72 | <tb-user-menu [displayUserInfo]="!displaySearchMode()"></tb-user-menu> | ... | ... |
... | ... | @@ -17,24 +17,19 @@ |
17 | 17 | import { AfterViewInit, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core'; |
18 | 18 | import { fromEvent, Observable } from 'rxjs'; |
19 | 19 | import { select, Store } from '@ngrx/store'; |
20 | -import { debounceTime, distinctUntilChanged, map, mergeMap, take, tap } from 'rxjs/operators'; | |
20 | +import { debounceTime, distinctUntilChanged, map, tap } from 'rxjs/operators'; | |
21 | 21 | |
22 | 22 | import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout'; |
23 | 23 | import { User } from '@shared/models/user.model'; |
24 | 24 | import { PageComponent } from '@shared/components/page.component'; |
25 | 25 | import { AppState } from '@core/core.state'; |
26 | -import { AuthService } from '@core/auth/auth.service'; | |
27 | -import { UserService } from '@core/http/user.service'; | |
28 | -import { MenuService } from '@core/services/menu.service'; | |
29 | 26 | import { getCurrentAuthState, selectAuthUser, selectUserDetails } from '@core/auth/auth.selectors'; |
30 | 27 | import { MediaBreakpoints } from '@shared/models/constants'; |
31 | -import { ActionNotificationShow } from '@core/notification/notification.actions'; | |
32 | -import { Router } from '@angular/router'; | |
33 | 28 | import * as _screenfull from 'screenfull'; |
34 | 29 | import { MatSidenav } from '@angular/material/sidenav'; |
35 | 30 | import { AuthState } from '@core/auth/auth.models'; |
36 | 31 | import { WINDOW } from '@core/services/window.service'; |
37 | -import { ISearchableComponent, instanceOfSearchableComponent } from '@home/models/searchable-component.models'; | |
32 | +import { instanceOfSearchableComponent, ISearchableComponent } from '@home/models/searchable-component.models'; | |
38 | 33 | |
39 | 34 | const screenfull = _screenfull as _screenfull.Screenfull; |
40 | 35 | |
... | ... | @@ -74,9 +69,6 @@ export class HomeComponent extends PageComponent implements AfterViewInit, OnIni |
74 | 69 | |
75 | 70 | constructor(protected store: Store<AppState>, |
76 | 71 | @Inject(WINDOW) private window: Window, |
77 | - private authService: AuthService, | |
78 | - private router: Router, | |
79 | - private userService: UserService, private menuService: MenuService, | |
80 | 72 | public breakpointObserver: BreakpointObserver) { |
81 | 73 | super(store); |
82 | 74 | } | ... | ... |
... | ... | @@ -15,13 +15,13 @@ |
15 | 15 | /// |
16 | 16 | |
17 | 17 | import { NgModule } from '@angular/core'; |
18 | -import { Routes, RouterModule } from '@angular/router'; | |
18 | +import { RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | 20 | import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component'; |
21 | 21 | import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard'; |
22 | 22 | import { Authority } from '@shared/models/authority.enum'; |
23 | -import {GeneralSettingsComponent} from '@modules/home/pages/admin/general-settings.component'; | |
24 | -import {SecuritySettingsComponent} from '@modules/home/pages/admin/security-settings.component'; | |
23 | +import { GeneralSettingsComponent } from '@modules/home/pages/admin/general-settings.component'; | |
24 | +import { SecuritySettingsComponent } from '@modules/home/pages/admin/security-settings.component'; | |
25 | 25 | |
26 | 26 | const routes: Routes = [ |
27 | 27 | { | ... | ... |
... | ... | @@ -20,9 +20,9 @@ import { CommonModule } from '@angular/common'; |
20 | 20 | import { AdminRoutingModule } from './admin-routing.module'; |
21 | 21 | import { SharedModule } from '@app/shared/shared.module'; |
22 | 22 | import { MailServerComponent } from '@modules/home/pages/admin/mail-server.component'; |
23 | -import {GeneralSettingsComponent} from '@modules/home/pages/admin/general-settings.component'; | |
24 | -import {SecuritySettingsComponent} from '@modules/home/pages/admin/security-settings.component'; | |
25 | -import {HomeComponentsModule} from '@modules/home/components/home-components.module'; | |
23 | +import { GeneralSettingsComponent } from '@modules/home/pages/admin/general-settings.component'; | |
24 | +import { SecuritySettingsComponent } from '@modules/home/pages/admin/security-settings.component'; | |
25 | +import { HomeComponentsModule } from '@modules/home/components/home-components.module'; | |
26 | 26 | |
27 | 27 | @NgModule({ |
28 | 28 | declarations: | ... | ... |
... | ... | @@ -20,10 +20,8 @@ import { AppState } from '@core/core.state'; |
20 | 20 | import { PageComponent } from '@shared/components/page.component'; |
21 | 21 | import { Router } from '@angular/router'; |
22 | 22 | import { FormBuilder, FormGroup, Validators } from '@angular/forms'; |
23 | -import {AdminSettings, GeneralSettings} from '@shared/models/settings.models'; | |
23 | +import { AdminSettings, GeneralSettings } from '@shared/models/settings.models'; | |
24 | 24 | import { AdminService } from '@core/http/admin.service'; |
25 | -import { ActionNotificationShow } from '@core/notification/notification.actions'; | |
26 | -import { TranslateService } from '@ngx-translate/core'; | |
27 | 25 | import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard'; |
28 | 26 | |
29 | 27 | @Component({ |
... | ... | @@ -39,7 +37,6 @@ export class GeneralSettingsComponent extends PageComponent implements OnInit, H |
39 | 37 | constructor(protected store: Store<AppState>, |
40 | 38 | private router: Router, |
41 | 39 | private adminService: AdminService, |
42 | - private translate: TranslateService, | |
43 | 40 | public fb: FormBuilder) { |
44 | 41 | super(store); |
45 | 42 | } | ... | ... |
... | ... | @@ -95,13 +95,12 @@ |
95 | 95 | <mat-label translate>common.password</mat-label> |
96 | 96 | <input matInput formControlName="password" type="password" placeholder="{{ 'common.enter-password' | translate }}"/> |
97 | 97 | </mat-form-field> |
98 | - <div fxLayout="row" fxLayoutAlign="end center" style="width: 100%;" class="layout-wrap"> | |
99 | - <button mat-button mat-raised-button | |
100 | - type="button" style="margin-right: 16px;" | |
98 | + <div fxLayout="row" fxLayoutAlign="end center" fxLayout.xs="column" fxLayoutAlign.xs="end" fxLayoutGap="16px"> | |
99 | + <button mat-raised-button type="button" | |
101 | 100 | [disabled]="(isLoading$ | async) || mailSettingsForm.invalid" (click)="sendTestMail()"> |
102 | 101 | {{'admin.send-test-mail' | translate}} |
103 | 102 | </button> |
104 | - <button mat-button mat-raised-button color="primary" [disabled]="(isLoading$ | async) || mailSettingsForm.invalid || !mailSettingsForm.dirty" | |
103 | + <button mat-raised-button color="primary" [disabled]="(isLoading$ | async) || mailSettingsForm.invalid || !mailSettingsForm.dirty" | |
105 | 104 | type="submit">{{'action.save' | translate}} |
106 | 105 | </button> |
107 | 106 | </div> | ... | ... |
... | ... | @@ -20,10 +20,8 @@ import { AppState } from '@core/core.state'; |
20 | 20 | import { PageComponent } from '@shared/components/page.component'; |
21 | 21 | import { Router } from '@angular/router'; |
22 | 22 | import { FormBuilder, FormGroup, Validators } from '@angular/forms'; |
23 | -import { SecuritySettings} from '@shared/models/settings.models'; | |
23 | +import { SecuritySettings } from '@shared/models/settings.models'; | |
24 | 24 | import { AdminService } from '@core/http/admin.service'; |
25 | -import { ActionNotificationShow } from '@core/notification/notification.actions'; | |
26 | -import { TranslateService } from '@ngx-translate/core'; | |
27 | 25 | import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard'; |
28 | 26 | |
29 | 27 | @Component({ |
... | ... | @@ -39,7 +37,6 @@ export class SecuritySettingsComponent extends PageComponent implements OnInit, |
39 | 37 | constructor(protected store: Store<AppState>, |
40 | 38 | private router: Router, |
41 | 39 | private adminService: AdminService, |
42 | - private translate: TranslateService, | |
43 | 40 | public fb: FormBuilder) { |
44 | 41 | super(store); |
45 | 42 | } | ... | ... |
... | ... | @@ -14,16 +14,16 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {NgModule} from '@angular/core'; | |
18 | -import {RouterModule, Routes} from '@angular/router'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | -import {EntitiesTableComponent} from '../../components/entity/entities-table.component'; | |
21 | -import {Authority} from '@shared/models/authority.enum'; | |
22 | -import {UsersTableConfigResolver} from '../user/users-table-config.resolver'; | |
23 | -import {CustomersTableConfigResolver} from './customers-table-config.resolver'; | |
24 | -import {DevicesTableConfigResolver} from '@modules/home/pages/device/devices-table-config.resolver'; | |
25 | -import {AssetsTableConfigResolver} from '../asset/assets-table-config.resolver'; | |
26 | -import {DashboardsTableConfigResolver} from '@modules/home/pages/dashboard/dashboards-table-config.resolver'; | |
20 | +import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; | |
21 | +import { Authority } from '@shared/models/authority.enum'; | |
22 | +import { UsersTableConfigResolver } from '../user/users-table-config.resolver'; | |
23 | +import { CustomersTableConfigResolver } from './customers-table-config.resolver'; | |
24 | +import { DevicesTableConfigResolver } from '@modules/home/pages/device/devices-table-config.resolver'; | |
25 | +import { AssetsTableConfigResolver } from '../asset/assets-table-config.resolver'; | |
26 | +import { DashboardsTableConfigResolver } from '@modules/home/pages/dashboard/dashboards-table-config.resolver'; | |
27 | 27 | import { DashboardPageComponent } from '@home/pages/dashboard/dashboard-page.component'; |
28 | 28 | import { BreadCrumbConfig } from '@shared/components/breadcrumb'; |
29 | 29 | import { dashboardBreadcumbLabelFunction, DashboardResolver } from '@home/pages/dashboard/dashboard-routing.module'; | ... | ... |
... | ... | @@ -17,9 +17,9 @@ |
17 | 17 | import { NgModule } from '@angular/core'; |
18 | 18 | import { CommonModule } from '@angular/common'; |
19 | 19 | import { SharedModule } from '@shared/shared.module'; |
20 | -import {CustomerComponent} from '@modules/home/pages/customer/customer.component'; | |
21 | -import {CustomerRoutingModule} from './customer-routing.module'; | |
22 | -import {HomeComponentsModule} from '@modules/home/components/home-components.module'; | |
20 | +import { CustomerComponent } from '@modules/home/pages/customer/customer.component'; | |
21 | +import { CustomerRoutingModule } from './customer-routing.module'; | |
22 | +import { HomeComponentsModule } from '@modules/home/components/home-components.module'; | |
23 | 23 | import { CustomerTabsComponent } from '@home/pages/customer/customer-tabs.component'; |
24 | 24 | |
25 | 25 | @NgModule({ | ... | ... |
... | ... | @@ -18,7 +18,6 @@ import { Injectable } from '@angular/core'; |
18 | 18 | |
19 | 19 | import { Resolve, Router } from '@angular/router'; |
20 | 20 | |
21 | -import { Tenant } from '@shared/models/tenant.model'; | |
22 | 21 | import { |
23 | 22 | DateEntityTableColumn, |
24 | 23 | EntityTableColumn, |
... | ... | @@ -26,15 +25,11 @@ import { |
26 | 25 | } from '@home/models/entity/entities-table-config.models'; |
27 | 26 | import { TranslateService } from '@ngx-translate/core'; |
28 | 27 | import { DatePipe } from '@angular/common'; |
29 | -import { | |
30 | - EntityType, | |
31 | - entityTypeResources, | |
32 | - entityTypeTranslations | |
33 | -} from '@shared/models/entity-type.models'; | |
28 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
34 | 29 | import { EntityAction } from '@home/models/entity/entity-component.models'; |
35 | -import {Customer} from '@app/shared/models/customer.model'; | |
36 | -import {CustomerService} from '@app/core/http/customer.service'; | |
37 | -import {CustomerComponent} from '@modules/home/pages/customer/customer.component'; | |
30 | +import { Customer } from '@app/shared/models/customer.model'; | |
31 | +import { CustomerService } from '@app/core/http/customer.service'; | |
32 | +import { CustomerComponent } from '@modules/home/pages/customer/customer.component'; | |
38 | 33 | import { CustomerTabsComponent } from '@home/pages/customer/customer-tabs.component'; |
39 | 34 | |
40 | 35 | @Injectable() |
... | ... | @@ -54,7 +49,7 @@ export class CustomersTableConfigResolver implements Resolve<EntityTableConfig<C |
54 | 49 | this.config.entityResources = entityTypeResources.get(EntityType.CUSTOMER); |
55 | 50 | |
56 | 51 | this.config.columns.push( |
57 | - new DateEntityTableColumn<Customer>('createdTime', 'customer.created-time', this.datePipe, '150px'), | |
52 | + new DateEntityTableColumn<Customer>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
58 | 53 | new EntityTableColumn<Customer>('title', 'customer.title', '25%'), |
59 | 54 | new EntityTableColumn<Customer>('email', 'contact.email', '25%'), |
60 | 55 | new EntityTableColumn<Customer>('country', 'contact.country', '25%'), | ... | ... |
... | ... | @@ -45,7 +45,7 @@ import { |
45 | 45 | import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout'; |
46 | 46 | import { MediaBreakpoints } from '@shared/models/constants'; |
47 | 47 | import { AuthUser } from '@shared/models/user.model'; |
48 | -import { getCurrentAuthState, getCurrentAuthUser } from '@core/auth/auth.selectors'; | |
48 | +import { getCurrentAuthState } from '@core/auth/auth.selectors'; | |
49 | 49 | import { Widget, WidgetConfig, WidgetPosition, widgetTypesData } from '@app/shared/models/widget.models'; |
50 | 50 | import { environment as env } from '@env/environment'; |
51 | 51 | import { Authority } from '@shared/models/authority.enum'; | ... | ... |
... | ... | @@ -14,17 +14,12 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import { DashboardLayoutId, GridSettings, WidgetLayout, Dashboard, WidgetLayouts } from '@app/shared/models/dashboard.models'; | |
17 | +import { Dashboard, DashboardLayoutId, GridSettings, WidgetLayouts } from '@app/shared/models/dashboard.models'; | |
18 | 18 | import { Widget, WidgetPosition } from '@app/shared/models/widget.models'; |
19 | 19 | import { Timewindow } from '@shared/models/time/time.models'; |
20 | 20 | import { IAliasController, IStateController } from '@core/api/widget-api.models'; |
21 | 21 | import { ILayoutController } from './layout/layout.models'; |
22 | -import { | |
23 | - DashboardContextMenuItem, | |
24 | - WidgetContextMenuItem | |
25 | -} from '@home/models/dashboard-component.models'; | |
26 | -import { Observable } from 'rxjs'; | |
27 | -import { ChangeDetectorRef } from '@angular/core'; | |
22 | +import { DashboardContextMenuItem, WidgetContextMenuItem } from '@home/models/dashboard-component.models'; | |
28 | 23 | |
29 | 24 | export declare type DashboardPageScope = 'tenant' | 'customer'; |
30 | 25 | ... | ... |
... | ... | @@ -17,14 +17,11 @@ |
17 | 17 | import { Injectable, NgModule } from '@angular/core'; |
18 | 18 | import { ActivatedRouteSnapshot, Resolve, RouterModule, Routes } from '@angular/router'; |
19 | 19 | |
20 | -import {EntitiesTableComponent} from '../../components/entity/entities-table.component'; | |
21 | -import {Authority} from '@shared/models/authority.enum'; | |
22 | -import {DashboardsTableConfigResolver} from './dashboards-table-config.resolver'; | |
20 | +import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; | |
21 | +import { Authority } from '@shared/models/authority.enum'; | |
22 | +import { DashboardsTableConfigResolver } from './dashboards-table-config.resolver'; | |
23 | 23 | import { DashboardPageComponent } from '@home/pages/dashboard/dashboard-page.component'; |
24 | 24 | import { BreadCrumbConfig, BreadCrumbLabelFunction } from '@shared/components/breadcrumb'; |
25 | -import { widgetTypesBreadcumbLabelFunction } from '@home/pages/widget/widget-library-routing.module'; | |
26 | -import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; | |
27 | -import { WidgetService } from '@core/http/widget.service'; | |
28 | 25 | import { Observable } from 'rxjs'; |
29 | 26 | import { Dashboard } from '@app/shared/models/dashboard.models'; |
30 | 27 | import { DashboardService } from '@core/http/dashboard.service'; | ... | ... |
... | ... | @@ -14,9 +14,9 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Injectable} from '@angular/core'; | |
17 | +import { Injectable } from '@angular/core'; | |
18 | 18 | |
19 | -import {ActivatedRouteSnapshot, Resolve, Router} from '@angular/router'; | |
19 | +import { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router'; | |
20 | 20 | import { |
21 | 21 | CellActionDescriptor, |
22 | 22 | checkBoxCell, |
... | ... | @@ -26,20 +26,20 @@ import { |
26 | 26 | GroupActionDescriptor, |
27 | 27 | HeaderActionDescriptor |
28 | 28 | } from '@home/models/entity/entities-table-config.models'; |
29 | -import {TranslateService} from '@ngx-translate/core'; | |
30 | -import {DatePipe} from '@angular/common'; | |
31 | -import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; | |
32 | -import {EntityAction} from '@home/models/entity/entity-component.models'; | |
33 | -import {forkJoin, Observable, of} from 'rxjs'; | |
34 | -import {select, Store} from '@ngrx/store'; | |
35 | -import {selectAuthUser} from '@core/auth/auth.selectors'; | |
36 | -import {map, mergeMap, take, tap} from 'rxjs/operators'; | |
37 | -import {AppState} from '@core/core.state'; | |
38 | -import {Authority} from '@app/shared/models/authority.enum'; | |
39 | -import {CustomerService} from '@core/http/customer.service'; | |
40 | -import {Customer} from '@app/shared/models/customer.model'; | |
29 | +import { TranslateService } from '@ngx-translate/core'; | |
30 | +import { DatePipe } from '@angular/common'; | |
31 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
32 | +import { EntityAction } from '@home/models/entity/entity-component.models'; | |
33 | +import { forkJoin, Observable, of } from 'rxjs'; | |
34 | +import { select, Store } from '@ngrx/store'; | |
35 | +import { selectAuthUser } from '@core/auth/auth.selectors'; | |
36 | +import { map, mergeMap, take, tap } from 'rxjs/operators'; | |
37 | +import { AppState } from '@core/core.state'; | |
38 | +import { Authority } from '@app/shared/models/authority.enum'; | |
39 | +import { CustomerService } from '@core/http/customer.service'; | |
40 | +import { Customer } from '@app/shared/models/customer.model'; | |
41 | 41 | import { MatDialog } from '@angular/material/dialog'; |
42 | -import {DialogService} from '@core/services/dialog.service'; | |
42 | +import { DialogService } from '@core/services/dialog.service'; | |
43 | 43 | import { |
44 | 44 | AddEntitiesToCustomerDialogComponent, |
45 | 45 | AddEntitiesToCustomerDialogData |
... | ... | @@ -51,8 +51,8 @@ import { |
51 | 51 | isCurrentPublicDashboardCustomer, |
52 | 52 | isPublicDashboard |
53 | 53 | } from '@app/shared/models/dashboard.models'; |
54 | -import {DashboardService} from '@app/core/http/dashboard.service'; | |
55 | -import {DashboardFormComponent} from '@modules/home/pages/dashboard/dashboard-form.component'; | |
54 | +import { DashboardService } from '@app/core/http/dashboard.service'; | |
55 | +import { DashboardFormComponent } from '@modules/home/pages/dashboard/dashboard-form.component'; | |
56 | 56 | import { |
57 | 57 | ManageDashboardCustomersActionType, |
58 | 58 | ManageDashboardCustomersDialogComponent, |
... | ... | @@ -142,7 +142,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig< |
142 | 142 | |
143 | 143 | configureColumns(dashboardScope: string): Array<EntityTableColumn<DashboardInfo>> { |
144 | 144 | const columns: Array<EntityTableColumn<DashboardInfo>> = [ |
145 | - new DateEntityTableColumn<DashboardInfo>('createdTime', 'dashboard.created-time', this.datePipe, '150px'), | |
145 | + new DateEntityTableColumn<DashboardInfo>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
146 | 146 | new EntityTableColumn<DashboardInfo>('title', 'dashboard.title', '50%') |
147 | 147 | ]; |
148 | 148 | if (dashboardScope === 'tenant') { | ... | ... |
... | ... | @@ -14,12 +14,12 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {NgModule} from '@angular/core'; | |
18 | -import {RouterModule, Routes} from '@angular/router'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | -import {EntitiesTableComponent} from '../../components/entity/entities-table.component'; | |
21 | -import {Authority} from '@shared/models/authority.enum'; | |
22 | -import {DevicesTableConfigResolver} from '@modules/home/pages/device/devices-table-config.resolver'; | |
20 | +import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; | |
21 | +import { Authority } from '@shared/models/authority.enum'; | |
22 | +import { DevicesTableConfigResolver } from '@modules/home/pages/device/devices-table-config.resolver'; | |
23 | 23 | |
24 | 24 | const routes: Routes = [ |
25 | 25 | { | ... | ... |
... | ... | @@ -149,7 +149,7 @@ export class DevicesTableConfigResolver implements Resolve<EntityTableConfig<Dev |
149 | 149 | |
150 | 150 | configureColumns(deviceScope: string): Array<EntityTableColumn<DeviceInfo>> { |
151 | 151 | const columns: Array<EntityTableColumn<DeviceInfo>> = [ |
152 | - new DateEntityTableColumn<DeviceInfo>('createdTime', 'device.created-time', this.datePipe, '150px'), | |
152 | + new DateEntityTableColumn<DeviceInfo>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
153 | 153 | new EntityTableColumn<DeviceInfo>('name', 'device.name', '25%'), |
154 | 154 | new EntityTableColumn<DeviceInfo>('type', 'device.device-type', '25%'), |
155 | 155 | new EntityTableColumn<DeviceInfo>('label', 'device.label', '25%') | ... | ... |
... | ... | @@ -14,12 +14,12 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {NgModule} from '@angular/core'; | |
18 | -import {RouterModule, Routes} from '@angular/router'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | -import {EntitiesTableComponent} from '../../components/entity/entities-table.component'; | |
21 | -import {Authority} from '@shared/models/authority.enum'; | |
22 | -import {EntityViewsTableConfigResolver} from '@modules/home/pages/entity-view/entity-views-table-config.resolver'; | |
20 | +import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; | |
21 | +import { Authority } from '@shared/models/authority.enum'; | |
22 | +import { EntityViewsTableConfigResolver } from '@modules/home/pages/entity-view/entity-views-table-config.resolver'; | |
23 | 23 | |
24 | 24 | const routes: Routes = [ |
25 | 25 | { | ... | ... |
... | ... | @@ -14,12 +14,12 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Component} from '@angular/core'; | |
18 | -import {Store} from '@ngrx/store'; | |
19 | -import {AppState} from '@core/core.state'; | |
20 | -import {EntityTableHeaderComponent} from '../../components/entity/entity-table-header.component'; | |
21 | -import {EntityType} from '@shared/models/entity-type.models'; | |
22 | -import {EntityViewInfo} from '@app/shared/models/entity-view.models'; | |
17 | +import { Component } from '@angular/core'; | |
18 | +import { Store } from '@ngrx/store'; | |
19 | +import { AppState } from '@core/core.state'; | |
20 | +import { EntityTableHeaderComponent } from '../../components/entity/entity-table-header.component'; | |
21 | +import { EntityType } from '@shared/models/entity-type.models'; | |
22 | +import { EntityViewInfo } from '@app/shared/models/entity-view.models'; | |
23 | 23 | |
24 | 24 | @Component({ |
25 | 25 | selector: 'tb-entity-view-table-header', | ... | ... |
... | ... | @@ -14,20 +14,19 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Component} from '@angular/core'; | |
18 | -import {Store} from '@ngrx/store'; | |
19 | -import {AppState} from '@core/core.state'; | |
20 | -import {EntityComponent} from '../../components/entity/entity.component'; | |
21 | -import {FormBuilder, FormGroup, Validators} from '@angular/forms'; | |
22 | -import {EntityType} from '@shared/models/entity-type.models'; | |
23 | -import {NULL_UUID} from '@shared/models/id/has-uuid'; | |
24 | -import {ActionNotificationShow} from '@core/notification/notification.actions'; | |
25 | -import {TranslateService} from '@ngx-translate/core'; | |
26 | -import {EntityViewInfo} from '@app/shared/models/entity-view.models'; | |
27 | -import {Observable} from 'rxjs'; | |
28 | -import {map} from 'rxjs/operators'; | |
29 | -import {DataKeyType} from '@shared/models/telemetry/telemetry.models'; | |
30 | -import {EntityId} from '@app/shared/models/id/entity-id'; | |
17 | +import { Component } from '@angular/core'; | |
18 | +import { Store } from '@ngrx/store'; | |
19 | +import { AppState } from '@core/core.state'; | |
20 | +import { EntityComponent } from '../../components/entity/entity.component'; | |
21 | +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; | |
22 | +import { EntityType } from '@shared/models/entity-type.models'; | |
23 | +import { NULL_UUID } from '@shared/models/id/has-uuid'; | |
24 | +import { ActionNotificationShow } from '@core/notification/notification.actions'; | |
25 | +import { TranslateService } from '@ngx-translate/core'; | |
26 | +import { EntityViewInfo } from '@app/shared/models/entity-view.models'; | |
27 | +import { Observable } from 'rxjs'; | |
28 | +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; | |
29 | +import { EntityId } from '@app/shared/models/id/entity-id'; | |
31 | 30 | |
32 | 31 | @Component({ |
33 | 32 | selector: 'tb-entity-view', | ... | ... |
... | ... | @@ -14,14 +14,14 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {NgModule} from '@angular/core'; | |
18 | -import {CommonModule} from '@angular/common'; | |
19 | -import {SharedModule} from '@shared/shared.module'; | |
20 | -import {HomeDialogsModule} from '../../dialogs/home-dialogs.module'; | |
21 | -import {EntityViewComponent} from '@modules/home/pages/entity-view/entity-view.component'; | |
22 | -import {EntityViewTableHeaderComponent} from './entity-view-table-header.component'; | |
23 | -import {EntityViewRoutingModule} from './entity-view-routing.module'; | |
24 | -import {HomeComponentsModule} from '@modules/home/components/home-components.module'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { CommonModule } from '@angular/common'; | |
19 | +import { SharedModule } from '@shared/shared.module'; | |
20 | +import { HomeDialogsModule } from '../../dialogs/home-dialogs.module'; | |
21 | +import { EntityViewComponent } from '@modules/home/pages/entity-view/entity-view.component'; | |
22 | +import { EntityViewTableHeaderComponent } from './entity-view-table-header.component'; | |
23 | +import { EntityViewRoutingModule } from './entity-view-routing.module'; | |
24 | +import { HomeComponentsModule } from '@modules/home/components/home-components.module'; | |
25 | 25 | import { EntityViewTabsComponent } from '@home/pages/entity-view/entity-view-tabs.component'; |
26 | 26 | |
27 | 27 | @NgModule({ | ... | ... |
... | ... | @@ -14,9 +14,9 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Injectable} from '@angular/core'; | |
17 | +import { Injectable } from '@angular/core'; | |
18 | 18 | |
19 | -import {ActivatedRouteSnapshot, Resolve, Router} from '@angular/router'; | |
19 | +import { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router'; | |
20 | 20 | import { |
21 | 21 | CellActionDescriptor, |
22 | 22 | checkBoxCell, |
... | ... | @@ -26,22 +26,22 @@ import { |
26 | 26 | GroupActionDescriptor, |
27 | 27 | HeaderActionDescriptor |
28 | 28 | } from '@home/models/entity/entities-table-config.models'; |
29 | -import {TranslateService} from '@ngx-translate/core'; | |
30 | -import {DatePipe} from '@angular/common'; | |
31 | -import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; | |
32 | -import {EntityAction} from '@home/models/entity/entity-component.models'; | |
33 | -import {forkJoin, Observable, of} from 'rxjs'; | |
34 | -import {select, Store} from '@ngrx/store'; | |
35 | -import {selectAuthUser} from '@core/auth/auth.selectors'; | |
36 | -import {map, mergeMap, take, tap} from 'rxjs/operators'; | |
37 | -import {AppState} from '@core/core.state'; | |
38 | -import {Authority} from '@app/shared/models/authority.enum'; | |
39 | -import {CustomerService} from '@core/http/customer.service'; | |
40 | -import {Customer} from '@app/shared/models/customer.model'; | |
41 | -import {NULL_UUID} from '@shared/models/id/has-uuid'; | |
42 | -import {BroadcastService} from '@core/services/broadcast.service'; | |
29 | +import { TranslateService } from '@ngx-translate/core'; | |
30 | +import { DatePipe } from '@angular/common'; | |
31 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
32 | +import { EntityAction } from '@home/models/entity/entity-component.models'; | |
33 | +import { forkJoin, Observable, of } from 'rxjs'; | |
34 | +import { select, Store } from '@ngrx/store'; | |
35 | +import { selectAuthUser } from '@core/auth/auth.selectors'; | |
36 | +import { map, mergeMap, take, tap } from 'rxjs/operators'; | |
37 | +import { AppState } from '@core/core.state'; | |
38 | +import { Authority } from '@app/shared/models/authority.enum'; | |
39 | +import { CustomerService } from '@core/http/customer.service'; | |
40 | +import { Customer } from '@app/shared/models/customer.model'; | |
41 | +import { NULL_UUID } from '@shared/models/id/has-uuid'; | |
42 | +import { BroadcastService } from '@core/services/broadcast.service'; | |
43 | 43 | import { MatDialog } from '@angular/material/dialog'; |
44 | -import {DialogService} from '@core/services/dialog.service'; | |
44 | +import { DialogService } from '@core/services/dialog.service'; | |
45 | 45 | import { |
46 | 46 | AssignToCustomerDialogComponent, |
47 | 47 | AssignToCustomerDialogData |
... | ... | @@ -50,11 +50,11 @@ import { |
50 | 50 | AddEntitiesToCustomerDialogComponent, |
51 | 51 | AddEntitiesToCustomerDialogData |
52 | 52 | } from '../../dialogs/add-entities-to-customer-dialog.component'; |
53 | -import {EntityView, EntityViewInfo} from '@app/shared/models/entity-view.models'; | |
54 | -import {EntityViewService} from '@core/http/entity-view.service'; | |
55 | -import {EntityViewComponent} from '@modules/home/pages/entity-view/entity-view.component'; | |
56 | -import {EntityViewTableHeaderComponent} from '@modules/home/pages/entity-view/entity-view-table-header.component'; | |
57 | -import {EntityViewId} from '@shared/models/id/entity-view-id'; | |
53 | +import { EntityView, EntityViewInfo } from '@app/shared/models/entity-view.models'; | |
54 | +import { EntityViewService } from '@core/http/entity-view.service'; | |
55 | +import { EntityViewComponent } from '@modules/home/pages/entity-view/entity-view.component'; | |
56 | +import { EntityViewTableHeaderComponent } from '@modules/home/pages/entity-view/entity-view-table-header.component'; | |
57 | +import { EntityViewId } from '@shared/models/id/entity-view-id'; | |
58 | 58 | import { EntityViewTabsComponent } from '@home/pages/entity-view/entity-view-tabs.component'; |
59 | 59 | |
60 | 60 | @Injectable() |
... | ... | @@ -146,7 +146,7 @@ export class EntityViewsTableConfigResolver implements Resolve<EntityTableConfig |
146 | 146 | |
147 | 147 | configureColumns(entityViewScope: string): Array<EntityTableColumn<EntityViewInfo>> { |
148 | 148 | const columns: Array<EntityTableColumn<EntityViewInfo>> = [ |
149 | - new DateEntityTableColumn<EntityViewInfo>('createdTime', 'entity-view.created-time', this.datePipe, '150px'), | |
149 | + new DateEntityTableColumn<EntityViewInfo>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
150 | 150 | new EntityTableColumn<EntityViewInfo>('name', 'entity-view.name', '33%'), |
151 | 151 | new EntityTableColumn<EntityViewInfo>('type', 'entity-view.entity-view-type', '33%'), |
152 | 152 | ]; | ... | ... |
... | ... | @@ -19,7 +19,7 @@ |
19 | 19 | <mat-toolbar fxLayout="row" color="primary"> |
20 | 20 | <h2 translate>profile.change-password</h2> |
21 | 21 | <span fxFlex></span> |
22 | - <button mat-button mat-icon-button | |
22 | + <button mat-icon-button | |
23 | 23 | [mat-dialog-close]="false" |
24 | 24 | type="button"> |
25 | 25 | <mat-icon class="material-icons">close</mat-icon> |
... | ... | @@ -45,15 +45,13 @@ |
45 | 45 | <mat-icon class="material-icons" matPrefix>lock</mat-icon> |
46 | 46 | </mat-form-field> |
47 | 47 | </div> |
48 | - <div mat-dialog-actions fxLayout="row"> | |
49 | - <span fxFlex></span> | |
50 | - <button mat-button mat-raised-button color="primary" | |
48 | + <div mat-dialog-actions fxLayout="row" fxLayoutAlign="end center"> | |
49 | + <button mat-raised-button color="primary" | |
51 | 50 | type="submit" |
52 | 51 | [disabled]="(isLoading$ | async) || changePasswordForm.invalid"> |
53 | 52 | {{ 'profile.change-password' | translate }} |
54 | 53 | </button> |
55 | 54 | <button mat-button color="primary" |
56 | - style="margin-right: 20px;" | |
57 | 55 | type="button" |
58 | 56 | [disabled]="(isLoading$ | async)" |
59 | 57 | [mat-dialog-close]="false" cdkFocusInitial> | ... | ... |
... | ... | @@ -16,10 +16,9 @@ |
16 | 16 | |
17 | 17 | import { Component, OnInit } from '@angular/core'; |
18 | 18 | import { MatDialogRef } from '@angular/material/dialog'; |
19 | -import { PageComponent } from '@shared/components/page.component'; | |
20 | 19 | import { Store } from '@ngrx/store'; |
21 | 20 | import { AppState } from '@core/core.state'; |
22 | -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; | |
21 | +import { FormBuilder, FormGroup } from '@angular/forms'; | |
23 | 22 | import { ActionNotificationShow } from '@core/notification/notification.actions'; |
24 | 23 | import { TranslateService } from '@ngx-translate/core'; |
25 | 24 | import { AuthService } from '@core/auth/auth.service'; | ... | ... |
... | ... | @@ -14,18 +14,18 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Injectable, NgModule} from '@angular/core'; | |
18 | -import {Resolve, RouterModule, Routes} from '@angular/router'; | |
17 | +import { Injectable, NgModule } from '@angular/core'; | |
18 | +import { Resolve, RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | -import {ProfileComponent} from './profile.component'; | |
21 | -import {ConfirmOnExitGuard} from '@core/guards/confirm-on-exit.guard'; | |
22 | -import {Authority} from '@shared/models/authority.enum'; | |
23 | -import {User} from '@shared/models/user.model'; | |
24 | -import {Store} from '@ngrx/store'; | |
25 | -import {AppState} from '@core/core.state'; | |
26 | -import {UserService} from '@core/http/user.service'; | |
27 | -import {getCurrentAuthUser} from '@core/auth/auth.selectors'; | |
28 | -import {Observable} from 'rxjs'; | |
20 | +import { ProfileComponent } from './profile.component'; | |
21 | +import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard'; | |
22 | +import { Authority } from '@shared/models/authority.enum'; | |
23 | +import { User } from '@shared/models/user.model'; | |
24 | +import { Store } from '@ngrx/store'; | |
25 | +import { AppState } from '@core/core.state'; | |
26 | +import { UserService } from '@core/http/user.service'; | |
27 | +import { getCurrentAuthUser } from '@core/auth/auth.selectors'; | |
28 | +import { Observable } from 'rxjs'; | |
29 | 29 | |
30 | 30 | @Injectable() |
31 | 31 | export class UserProfileResolver implements Resolve<User> { | ... | ... |
... | ... | @@ -18,7 +18,7 @@ |
18 | 18 | <div> |
19 | 19 | <mat-card class="profile-card"> |
20 | 20 | <mat-card-title> |
21 | - <div fxLayout="row"> | |
21 | + <div fxLayout="row" fxLayout.xs="column" fxLayoutGap.xs="8px"> | |
22 | 22 | <div fxFlex fxLayout="column"> |
23 | 23 | <span class="mat-headline" translate>profile.profile</span> |
24 | 24 | <span class="profile-email" style='opacity: 0.7;'>{{ profile ? profile.get('email').value : '' }}</span> | ... | ... |
... | ... | @@ -14,24 +14,24 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Component, OnInit} from '@angular/core'; | |
18 | -import {UserService} from '@core/http/user.service'; | |
19 | -import {User} from '@shared/models/user.model'; | |
20 | -import {Authority} from '@shared/models/authority.enum'; | |
21 | -import {PageComponent} from '@shared/components/page.component'; | |
22 | -import {Store} from '@ngrx/store'; | |
23 | -import {AppState} from '@core/core.state'; | |
24 | -import {FormBuilder, FormGroup, Validators} from '@angular/forms'; | |
25 | -import {HasConfirmForm} from '@core/guards/confirm-on-exit.guard'; | |
26 | -import {ActionAuthUpdateUserDetails} from '@core/auth/auth.actions'; | |
27 | -import {environment as env} from '@env/environment'; | |
28 | -import {TranslateService} from '@ngx-translate/core'; | |
29 | -import {ActionSettingsChangeLanguage} from '@core/settings/settings.actions'; | |
30 | -import {ChangePasswordDialogComponent} from '@modules/home/pages/profile/change-password-dialog.component'; | |
17 | +import { Component, OnInit } from '@angular/core'; | |
18 | +import { UserService } from '@core/http/user.service'; | |
19 | +import { User } from '@shared/models/user.model'; | |
20 | +import { Authority } from '@shared/models/authority.enum'; | |
21 | +import { PageComponent } from '@shared/components/page.component'; | |
22 | +import { Store } from '@ngrx/store'; | |
23 | +import { AppState } from '@core/core.state'; | |
24 | +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; | |
25 | +import { HasConfirmForm } from '@core/guards/confirm-on-exit.guard'; | |
26 | +import { ActionAuthUpdateUserDetails } from '@core/auth/auth.actions'; | |
27 | +import { environment as env } from '@env/environment'; | |
28 | +import { TranslateService } from '@ngx-translate/core'; | |
29 | +import { ActionSettingsChangeLanguage } from '@core/settings/settings.actions'; | |
30 | +import { ChangePasswordDialogComponent } from '@modules/home/pages/profile/change-password-dialog.component'; | |
31 | 31 | import { MatDialog } from '@angular/material/dialog'; |
32 | -import {DialogService} from '@core/services/dialog.service'; | |
33 | -import {AuthService} from '@core/auth/auth.service'; | |
34 | -import {ActivatedRoute} from '@angular/router'; | |
32 | +import { DialogService } from '@core/services/dialog.service'; | |
33 | +import { AuthService } from '@core/auth/auth.service'; | |
34 | +import { ActivatedRoute } from '@angular/router'; | |
35 | 35 | |
36 | 36 | @Component({ |
37 | 37 | selector: 'tb-profile', | ... | ... |
... | ... | @@ -14,17 +14,14 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Component} from '@angular/core'; | |
18 | -import {Store} from '@ngrx/store'; | |
19 | -import {AppState} from '@core/core.state'; | |
20 | -import {EntityComponent} from '../../components/entity/entity.component'; | |
21 | -import {FormBuilder, FormGroup, Validators} from '@angular/forms'; | |
22 | -import {EntityType} from '@shared/models/entity-type.models'; | |
23 | -import {NULL_UUID} from '@shared/models/id/has-uuid'; | |
24 | -import {ActionNotificationShow} from '@core/notification/notification.actions'; | |
25 | -import {TranslateService} from '@ngx-translate/core'; | |
26 | -import {AssetInfo} from '@app/shared/models/asset.models'; | |
27 | -import {RuleChain} from '@shared/models/rule-chain.models'; | |
17 | +import { Component } from '@angular/core'; | |
18 | +import { Store } from '@ngrx/store'; | |
19 | +import { AppState } from '@core/core.state'; | |
20 | +import { EntityComponent } from '../../components/entity/entity.component'; | |
21 | +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; | |
22 | +import { ActionNotificationShow } from '@core/notification/notification.actions'; | |
23 | +import { TranslateService } from '@ngx-translate/core'; | |
24 | +import { RuleChain } from '@shared/models/rule-chain.models'; | |
28 | 25 | |
29 | 26 | @Component({ |
30 | 27 | selector: 'tb-rulechain', | ... | ... |
... | ... | @@ -14,14 +14,18 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {NgModule} from '@angular/core'; | |
18 | -import {CommonModule} from '@angular/common'; | |
19 | -import {SharedModule} from '@shared/shared.module'; | |
20 | -import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; | |
21 | -import {RuleChainRoutingModule} from '@modules/home/pages/rulechain/rulechain-routing.module'; | |
22 | -import {HomeComponentsModule} from '@modules/home/components/home-components.module'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { CommonModule } from '@angular/common'; | |
19 | +import { SharedModule } from '@shared/shared.module'; | |
20 | +import { RuleChainComponent } from '@modules/home/pages/rulechain/rulechain.component'; | |
21 | +import { RuleChainRoutingModule } from '@modules/home/pages/rulechain/rulechain-routing.module'; | |
22 | +import { HomeComponentsModule } from '@modules/home/components/home-components.module'; | |
23 | 23 | import { RuleChainTabsComponent } from '@home/pages/rulechain/rulechain-tabs.component'; |
24 | -import { RuleChainPageComponent, AddRuleNodeLinkDialogComponent, AddRuleNodeDialogComponent } from './rulechain-page.component'; | |
24 | +import { | |
25 | + AddRuleNodeDialogComponent, | |
26 | + AddRuleNodeLinkDialogComponent, | |
27 | + RuleChainPageComponent | |
28 | +} from './rulechain-page.component'; | |
25 | 29 | import { RuleNodeComponent } from '@home/pages/rulechain/rulenode.component'; |
26 | 30 | import { FC_NODE_COMPONENT_CONFIG } from 'ngx-flowchart/dist/ngx-flowchart'; |
27 | 31 | import { RuleNodeDetailsComponent } from './rule-node-details.component'; | ... | ... |
... | ... | @@ -14,23 +14,23 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Injectable} from '@angular/core'; | |
17 | +import { Injectable } from '@angular/core'; | |
18 | 18 | |
19 | -import {Resolve, Router} from '@angular/router'; | |
19 | +import { Resolve, Router } from '@angular/router'; | |
20 | 20 | import { |
21 | 21 | checkBoxCell, |
22 | 22 | DateEntityTableColumn, |
23 | 23 | EntityTableColumn, |
24 | 24 | EntityTableConfig |
25 | 25 | } from '@home/models/entity/entities-table-config.models'; |
26 | -import {TranslateService} from '@ngx-translate/core'; | |
27 | -import {DatePipe} from '@angular/common'; | |
28 | -import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; | |
29 | -import {EntityAction} from '@home/models/entity/entity-component.models'; | |
30 | -import {RuleChain} from '@shared/models/rule-chain.models'; | |
31 | -import {RuleChainService} from '@core/http/rule-chain.service'; | |
32 | -import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; | |
33 | -import {DialogService} from '@core/services/dialog.service'; | |
26 | +import { TranslateService } from '@ngx-translate/core'; | |
27 | +import { DatePipe } from '@angular/common'; | |
28 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
29 | +import { EntityAction } from '@home/models/entity/entity-component.models'; | |
30 | +import { RuleChain } from '@shared/models/rule-chain.models'; | |
31 | +import { RuleChainService } from '@core/http/rule-chain.service'; | |
32 | +import { RuleChainComponent } from '@modules/home/pages/rulechain/rulechain.component'; | |
33 | +import { DialogService } from '@core/services/dialog.service'; | |
34 | 34 | import { RuleChainTabsComponent } from '@home/pages/rulechain/rulechain-tabs.component'; |
35 | 35 | import { ImportExportService } from '@home/components/import-export/import-export.service'; |
36 | 36 | import { ItemBufferService } from '@core/services/item-buffer.service'; |
... | ... | @@ -55,7 +55,7 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< |
55 | 55 | this.config.entityResources = entityTypeResources.get(EntityType.RULE_CHAIN); |
56 | 56 | |
57 | 57 | this.config.columns.push( |
58 | - new DateEntityTableColumn<RuleChain>('createdTime', 'rulechain.created-time', this.datePipe, '150px'), | |
58 | + new DateEntityTableColumn<RuleChain>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
59 | 59 | new EntityTableColumn<RuleChain>('name', 'rulechain.name', '100%'), |
60 | 60 | new EntityTableColumn<RuleChain>('root', 'rulechain.root', '60px', |
61 | 61 | entity => { | ... | ... |
... | ... | @@ -14,21 +14,13 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import { Injectable, NgModule } from '@angular/core'; | |
18 | -import { Resolve, RouterModule, Routes } from '@angular/router'; | |
17 | +import { NgModule } from '@angular/core'; | |
18 | +import { RouterModule, Routes } from '@angular/router'; | |
19 | 19 | |
20 | 20 | import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; |
21 | 21 | import { Authority } from '@shared/models/authority.enum'; |
22 | 22 | import { TenantsTableConfigResolver } from '@modules/home/pages/tenant/tenants-table-config.resolver'; |
23 | -import { ProfileComponent } from '@modules/home/pages/profile/profile.component'; | |
24 | -import { ConfirmOnExitGuard } from '@core/guards/confirm-on-exit.guard'; | |
25 | -import { Customer } from '@shared/models/customer.model'; | |
26 | -import { Store } from '@ngrx/store'; | |
27 | -import { AppState } from '@core/core.state'; | |
28 | -import { forkJoin, Observable, throwError } from 'rxjs'; | |
29 | -import { getCurrentAuthUser } from '@core/auth/auth.selectors'; | |
30 | -import { catchError, finalize, map, tap } from 'rxjs/operators'; | |
31 | -import {UsersTableConfigResolver} from '../user/users-table-config.resolver'; | |
23 | +import { UsersTableConfigResolver } from '../user/users-table-config.resolver'; | |
32 | 24 | |
33 | 25 | const routes: Routes = [ |
34 | 26 | { | ... | ... |
... | ... | @@ -54,7 +54,7 @@ export class TenantsTableConfigResolver implements Resolve<EntityTableConfig<Ten |
54 | 54 | this.config.entityResources = entityTypeResources.get(EntityType.TENANT); |
55 | 55 | |
56 | 56 | this.config.columns.push( |
57 | - new DateEntityTableColumn<Tenant>('createdTime', 'tenant.created-time', this.datePipe, '150px'), | |
57 | + new DateEntityTableColumn<Tenant>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
58 | 58 | new EntityTableColumn<Tenant>('title', 'tenant.title', '25%'), |
59 | 59 | new EntityTableColumn<Tenant>('email', 'contact.email', '25%'), |
60 | 60 | new EntityTableColumn<Tenant>('country', 'contact.country', '25%'), | ... | ... |
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | /// |
16 | 16 | |
17 | 17 | import { NgModule } from '@angular/core'; |
18 | -import { RouterModule, Routes } from '@angular/router'; | |
18 | +import { RouterModule } from '@angular/router'; | |
19 | 19 | import { UsersTableConfigResolver } from '@modules/home/pages/user/users-table-config.resolver'; |
20 | 20 | |
21 | 21 | @NgModule({ | ... | ... |
... | ... | @@ -24,25 +24,18 @@ import { |
24 | 24 | } from '@home/models/entity/entities-table-config.models'; |
25 | 25 | import { TranslateService } from '@ngx-translate/core'; |
26 | 26 | import { DatePipe } from '@angular/common'; |
27 | -import { | |
28 | - EntityType, | |
29 | - entityTypeResources, | |
30 | - entityTypeTranslations | |
31 | -} from '@shared/models/entity-type.models'; | |
27 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
32 | 28 | import { User } from '@shared/models/user.model'; |
33 | 29 | import { UserService } from '@core/http/user.service'; |
34 | 30 | import { UserComponent } from '@modules/home/pages/user/user.component'; |
35 | 31 | import { CustomerService } from '@core/http/customer.service'; |
36 | 32 | import { map, mergeMap, take, tap } from 'rxjs/operators'; |
37 | -import { forkJoin, noop, Observable, of } from 'rxjs'; | |
33 | +import { Observable } from 'rxjs'; | |
38 | 34 | import { Authority } from '@shared/models/authority.enum'; |
39 | 35 | import { CustomerId } from '@shared/models/id/customer-id'; |
40 | 36 | import { MatDialog } from '@angular/material/dialog'; |
41 | 37 | import { EntityAction } from '@home/models/entity/entity-component.models'; |
42 | -import { | |
43 | - AddUserDialogComponent, | |
44 | - AddUserDialogData | |
45 | -} from '@modules/home/pages/user/add-user-dialog.component'; | |
38 | +import { AddUserDialogComponent, AddUserDialogData } from '@modules/home/pages/user/add-user-dialog.component'; | |
46 | 39 | import { AuthState } from '@core/auth/auth.models'; |
47 | 40 | import { select, Store } from '@ngrx/store'; |
48 | 41 | import { AppState } from '@core/core.state'; |
... | ... | @@ -54,9 +47,8 @@ import { |
54 | 47 | } from '@modules/home/pages/user/activation-link-dialog.component'; |
55 | 48 | import { ActionNotificationShow } from '@core/notification/notification.actions'; |
56 | 49 | import { NULL_UUID } from '@shared/models/id/has-uuid'; |
57 | -import { Customer } from '@shared/models/customer.model'; | |
58 | -import {TenantService} from '@app/core/http/tenant.service'; | |
59 | -import {TenantId} from '@app/shared/models/id/tenant-id'; | |
50 | +import { TenantService } from '@app/core/http/tenant.service'; | |
51 | +import { TenantId } from '@app/shared/models/id/tenant-id'; | |
60 | 52 | import { UserTabsComponent } from '@home/pages/user/user-tabs.component'; |
61 | 53 | |
62 | 54 | export interface UsersTableRouteData { |
... | ... | @@ -89,7 +81,7 @@ export class UsersTableConfigResolver implements Resolve<EntityTableConfig<User> |
89 | 81 | this.config.entityResources = entityTypeResources.get(EntityType.USER); |
90 | 82 | |
91 | 83 | this.config.columns.push( |
92 | - new DateEntityTableColumn<User>('createdTime', 'user.created-time', this.datePipe, '150px'), | |
84 | + new DateEntityTableColumn<User>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
93 | 85 | new EntityTableColumn<User>('firstName', 'user.first-name', '33%'), |
94 | 86 | new EntityTableColumn<User>('lastName', 'user.last-name', '33%'), |
95 | 87 | new EntityTableColumn<User>('email', 'user.email', '33%') | ... | ... |
... | ... | @@ -14,28 +14,28 @@ |
14 | 14 | /// limitations under the License. |
15 | 15 | /// |
16 | 16 | |
17 | -import {Injectable} from '@angular/core'; | |
17 | +import { Injectable } from '@angular/core'; | |
18 | 18 | |
19 | -import {Resolve, Router} from '@angular/router'; | |
19 | +import { Resolve, Router } from '@angular/router'; | |
20 | 20 | import { |
21 | 21 | checkBoxCell, |
22 | 22 | DateEntityTableColumn, |
23 | 23 | EntityTableColumn, |
24 | 24 | EntityTableConfig |
25 | 25 | } from '@home/models/entity/entities-table-config.models'; |
26 | -import {TranslateService} from '@ngx-translate/core'; | |
27 | -import {DatePipe} from '@angular/common'; | |
28 | -import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; | |
29 | -import {EntityAction} from '@home/models/entity/entity-component.models'; | |
30 | -import {WidgetsBundle} from '@shared/models/widgets-bundle.model'; | |
31 | -import {WidgetService} from '@app/core/http/widget.service'; | |
32 | -import {WidgetsBundleComponent} from '@modules/home/pages/widget/widgets-bundle.component'; | |
33 | -import {NULL_UUID} from '@shared/models/id/has-uuid'; | |
34 | -import {Store} from '@ngrx/store'; | |
35 | -import {AppState} from '@core/core.state'; | |
36 | -import {getCurrentAuthUser} from '@app/core/auth/auth.selectors'; | |
37 | -import {Authority} from '@shared/models/authority.enum'; | |
38 | -import {DialogService} from '@core/services/dialog.service'; | |
26 | +import { TranslateService } from '@ngx-translate/core'; | |
27 | +import { DatePipe } from '@angular/common'; | |
28 | +import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | |
29 | +import { EntityAction } from '@home/models/entity/entity-component.models'; | |
30 | +import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; | |
31 | +import { WidgetService } from '@app/core/http/widget.service'; | |
32 | +import { WidgetsBundleComponent } from '@modules/home/pages/widget/widgets-bundle.component'; | |
33 | +import { NULL_UUID } from '@shared/models/id/has-uuid'; | |
34 | +import { Store } from '@ngrx/store'; | |
35 | +import { AppState } from '@core/core.state'; | |
36 | +import { getCurrentAuthUser } from '@app/core/auth/auth.selectors'; | |
37 | +import { Authority } from '@shared/models/authority.enum'; | |
38 | +import { DialogService } from '@core/services/dialog.service'; | |
39 | 39 | import { ImportExportService } from '@home/components/import-export/import-export.service'; |
40 | 40 | |
41 | 41 | @Injectable() |
... | ... | @@ -57,7 +57,7 @@ export class WidgetsBundlesTableConfigResolver implements Resolve<EntityTableCon |
57 | 57 | this.config.entityResources = entityTypeResources.get(EntityType.WIDGETS_BUNDLE); |
58 | 58 | |
59 | 59 | this.config.columns.push( |
60 | - new DateEntityTableColumn<WidgetsBundle>('createdTime', 'widgets-bundle.created-time', this.datePipe, '150px'), | |
60 | + new DateEntityTableColumn<WidgetsBundle>('createdTime', 'common.created-time', this.datePipe, '150px'), | |
61 | 61 | new EntityTableColumn<WidgetsBundle>('title', 'widgets-bundle.title', '100%'), |
62 | 62 | new EntityTableColumn<WidgetsBundle>('tenantId', 'widgets-bundle.system', '60px', |
63 | 63 | entity => { | ... | ... |
... | ... | @@ -19,7 +19,7 @@ |
19 | 19 | <h1 fxFlex fxHide.gt-sm *ngIf="lastBreadcrumb$ | async; let breadcrumb"> |
20 | 20 | {{ breadcrumb.ignoreTranslate ? (breadcrumb.labelFunction ? breadcrumb.labelFunction() : breadcrumb.label) : (breadcrumb.label | translate) }} |
21 | 21 | </h1> |
22 | - <span fxHide.xs fxHide.sm *ngFor="let breadcrumb of breadcrumbs$ | async; last as isLast;" [ngSwitch]="isLast"> | |
22 | + <span fxHide.lt-md fxLayout="row" *ngFor="let breadcrumb of breadcrumbs$ | async; last as isLast;" [ngSwitch]="isLast"> | |
23 | 23 | <a *ngSwitchCase="false" [routerLink]="breadcrumb.link" [queryParams]="breadcrumb.queryParams"> |
24 | 24 | <mat-icon *ngIf="breadcrumb.isMdiIcon" [svgIcon]="breadcrumb.icon"> |
25 | 25 | </mat-icon> | ... | ... |
... | ... | @@ -14,28 +14,24 @@ |
14 | 14 | * limitations under the License. |
15 | 15 | */ |
16 | 16 | :host { |
17 | - display: flex; | |
18 | - flex-direction: row; | |
19 | - align-items: center; | |
20 | 17 | min-width: 0; |
21 | - flex: 1; | |
22 | 18 | |
23 | 19 | .tb-breadcrumb { |
24 | - font-size: 18px !important; | |
25 | - font-weight: 400 !important; | |
20 | + font-size: 18px; | |
21 | + font-weight: 400; | |
26 | 22 | overflow: hidden; |
27 | 23 | |
28 | 24 | h1, |
29 | 25 | a, |
30 | - span { | |
26 | + span:not(.divider) { | |
31 | 27 | overflow: hidden; |
32 | 28 | text-overflow: ellipsis; |
33 | 29 | white-space: nowrap; |
34 | 30 | } |
35 | 31 | |
36 | 32 | h1 { |
37 | - font-size: 24px !important; | |
38 | - font-weight: 400 !important; | |
33 | + font-size: 24px; | |
34 | + font-weight: 400; | |
39 | 35 | } |
40 | 36 | |
41 | 37 | a { |
... | ... | @@ -44,6 +40,7 @@ |
44 | 40 | transition: opacity .35s; |
45 | 41 | color: inherit; |
46 | 42 | text-decoration: none; |
43 | + outline: none; | |
47 | 44 | } |
48 | 45 | |
49 | 46 | a:hover, |
... | ... | @@ -54,7 +51,7 @@ |
54 | 51 | } |
55 | 52 | |
56 | 53 | .divider { |
57 | - padding: 0 30px; | |
54 | + padding: 0 20px; | |
58 | 55 | } |
59 | 56 | } |
60 | 57 | } | ... | ... |
... | ... | @@ -16,7 +16,7 @@ |
16 | 16 | |
17 | 17 | --> |
18 | 18 | <section fxLayout="row"> |
19 | - <div fxHide.xs fxHide.sm fxHide.md *ngIf="displayUserInfo" class="tb-user-info" fxLayout="row"> | |
19 | + <div fxHide.lt-lg *ngIf="displayUserInfo" class="tb-user-info" fxLayout="row"> | |
20 | 20 | <mat-icon class="material-icons tb-mini-avatar">account_circle</mat-icon> |
21 | 21 | <div fxLayout="column" fxLayoutAlign="center"> |
22 | 22 | <span *ngIf="userDisplayName$ | async; let userDisplayName" class="tb-user-display-name">{{ userDisplayName }}</span> | ... | ... |
... | ... | @@ -336,7 +336,8 @@ |
336 | 336 | "password": "Heslo", |
337 | 337 | "enter-username": "Zadejte uživatelské jméno", |
338 | 338 | "enter-password": "Zadejte heslo", |
339 | - "enter-search": "Zadejte hledaný řetězec" | |
339 | + "enter-search": "Zadejte hledaný řetězec", | |
340 | + "created-time": "Datum vytvoření" | |
340 | 341 | }, |
341 | 342 | "content-type": { |
342 | 343 | "json": "JSON", | ... | ... |
... | ... | @@ -360,7 +360,8 @@ |
360 | 360 | "password": "Passwort", |
361 | 361 | "enter-username": "Benutzername eingeben", |
362 | 362 | "enter-password": "Passwort eingeben", |
363 | - "enter-search": "Suche eingeben" | |
363 | + "enter-search": "Suche eingeben", | |
364 | + "created-time": "Erstellungszeit" | |
364 | 365 | }, |
365 | 366 | "content-type": { |
366 | 367 | "json": "Json", | ... | ... |
... | ... | @@ -378,7 +378,8 @@ |
378 | 378 | "password": "Κωδικός πρόσβασης", |
379 | 379 | "enter-username": "Εισάγετε Όνομα χρήστη", |
380 | 380 | "enter-password": "Εισάγετε Κωδικό πρόσβασης", |
381 | - "enter-search": "Αναζήτηση" | |
381 | + "enter-search": "Αναζήτηση", | |
382 | + "created-time": "Δημιουργήθηκε" | |
382 | 383 | }, |
383 | 384 | "converter": { |
384 | 385 | "converter": "Μετατροπέας δεδομένων", | ... | ... |
... | ... | @@ -380,7 +380,8 @@ |
380 | 380 | "password": "Password", |
381 | 381 | "enter-username": "Enter username", |
382 | 382 | "enter-password": "Enter password", |
383 | - "enter-search": "Enter search" | |
383 | + "enter-search": "Enter search", | |
384 | + "created-time": "Created time" | |
384 | 385 | }, |
385 | 386 | "content-type": { |
386 | 387 | "json": "Json", |
... | ... | @@ -421,7 +422,6 @@ |
421 | 422 | "manage-assets": "Manage assets", |
422 | 423 | "manage-devices": "Manage devices", |
423 | 424 | "manage-dashboards": "Manage dashboards", |
424 | - "created-time": "Created time", | |
425 | 425 | "title": "Title", |
426 | 426 | "title-required": "Title is required.", |
427 | 427 | "description": "Description", |
... | ... | @@ -466,7 +466,6 @@ |
466 | 466 | "no-dashboards-text": "No dashboards found", |
467 | 467 | "no-widgets": "No widgets configured", |
468 | 468 | "add-widget": "Add new widget", |
469 | - "created-time": "Created time", | |
470 | 469 | "title": "Title", |
471 | 470 | "select-widget-title": "Select widget", |
472 | 471 | "select-widget-subtitle": "List of available widget types", |
... | ... | @@ -709,7 +708,6 @@ |
709 | 708 | "no-device-types-matching": "No device types matching '{{entitySubtype}}' were found.", |
710 | 709 | "device-type-list-empty": "No device types selected.", |
711 | 710 | "device-types": "Device types", |
712 | - "created-time": "Created time", | |
713 | 711 | "name": "Name", |
714 | 712 | "name-required": "Name is required.", |
715 | 713 | "description": "Description", |
... | ... | @@ -1416,7 +1414,6 @@ |
1416 | 1414 | "rulechains": "Rule chains", |
1417 | 1415 | "root": "Root", |
1418 | 1416 | "delete": "Delete rule chain", |
1419 | - "created-time": "Created time", | |
1420 | 1417 | "name": "Name", |
1421 | 1418 | "name-required": "Name is required.", |
1422 | 1419 | "description": "Description", |
... | ... | @@ -1532,7 +1529,6 @@ |
1532 | 1529 | "delete-tenants-title": "Are you sure you want to delete { count, plural, 1 {1 tenant} other {# tenants} }?", |
1533 | 1530 | "delete-tenants-action-title": "Delete { count, plural, 1 {1 tenant} other {# tenants} }", |
1534 | 1531 | "delete-tenants-text": "Be careful, after the confirmation all selected tenants will be removed and all related data will become unrecoverable.", |
1535 | - "created-time": "Created time", | |
1536 | 1532 | "title": "Title", |
1537 | 1533 | "title-required": "Title is required.", |
1538 | 1534 | "description": "Description", |
... | ... | @@ -1593,7 +1589,6 @@ |
1593 | 1589 | "delete-users-text": "Be careful, after the confirmation all selected users will be removed and all related data will become unrecoverable.", |
1594 | 1590 | "activation-email-sent-message": "Activation email was successfully sent!", |
1595 | 1591 | "resend-activation": "Resend activation", |
1596 | - "created-time": "Created time", | |
1597 | 1592 | "email": "Email", |
1598 | 1593 | "email-required": "Email is required.", |
1599 | 1594 | "invalid-email-format": "Invalid email format.", |
... | ... | @@ -1715,7 +1710,6 @@ |
1715 | 1710 | "widgets-bundles": "Widgets Bundles", |
1716 | 1711 | "add": "Add Widgets Bundle", |
1717 | 1712 | "delete": "Delete widgets bundle", |
1718 | - "created-time": "Created time", | |
1719 | 1713 | "title": "Title", |
1720 | 1714 | "title-required": "Title is required.", |
1721 | 1715 | "add-widgets-bundle-text": "Add new widgets bundle", | ... | ... |
... | ... | @@ -364,7 +364,8 @@ |
364 | 364 | "password": "Contraseña", |
365 | 365 | "enter-username": "Introduzca nombre de usuario", |
366 | 366 | "enter-password": "Introduzca contraseña", |
367 | - "enter-search": "Introduzca búsqueda" | |
367 | + "enter-search": "Introduzca búsqueda", | |
368 | + "created-time": "Tiempo de creación" | |
368 | 369 | }, |
369 | 370 | "content-type": { |
370 | 371 | "json": "Json", | ... | ... |
... | ... | @@ -48,7 +48,7 @@ |
48 | 48 | "paste-reference": "رونوشت مرجع", |
49 | 49 | "import": "وارد کردن", |
50 | 50 | "export": "صدور", |
51 | - "share-via": "{{provider}} اشتراک گذاري از طريق" | |
51 | + "share-via": "{{provider}} اشتراک گذاري از طريق" | |
52 | 52 | }, |
53 | 53 | "aggregation": { |
54 | 54 | "aggregation": "تجميع", |
... | ... | @@ -336,7 +336,8 @@ |
336 | 336 | "password": "رمز عبور", |
337 | 337 | "enter-username": "وارد کردن نام کاربري", |
338 | 338 | "enter-password": "وارد کردن رمز عبور", |
339 | - "enter-search": "وارد کردن جستجو" | |
339 | + "enter-search": "وارد کردن جستجو", | |
340 | + "created-time": "زمان ايجاد" | |
340 | 341 | }, |
341 | 342 | "content-type": { |
342 | 343 | "json": "JSON", | ... | ... |
... | ... | @@ -347,7 +347,8 @@ |
347 | 347 | "enter-search": "Entrez la recherche", |
348 | 348 | "enter-username": "Entrez le nom d'utilisateur", |
349 | 349 | "password": "Mot de passe", |
350 | - "username": "Nom d'utilisateur" | |
350 | + "username": "Nom d'utilisateur", | |
351 | + "created-time": "Heure de création" | |
351 | 352 | }, |
352 | 353 | "confirm-on-exit": { |
353 | 354 | "html-message": "Vous avez des modifications non enregistrées. <br/> Êtes-vous sûr de vouloir quitter cette page?", | ... | ... |
... | ... | @@ -361,7 +361,8 @@ |
361 | 361 | "password": "Password", |
362 | 362 | "enter-username": "Inserisci nome utente", |
363 | 363 | "enter-password": "Inserisci password", |
364 | - "enter-search": "Cerca ..." | |
364 | + "enter-search": "Cerca ...", | |
365 | + "created-time": "Orario di creazione" | |
365 | 366 | }, |
366 | 367 | "content-type": { |
367 | 368 | "json": "Json", | ... | ... |
... | ... | @@ -326,8 +326,9 @@ |
326 | 326 | "password": "パスワード", |
327 | 327 | "enter-username": "ユーザーネームを入力してください", |
328 | 328 | "enter-password": "パスワードを入力する", |
329 | - "enter-search": "検索を入力" | |
330 | - }, | |
329 | + "enter-search": "検索を入力", | |
330 | + "created-time": "作成時刻" | |
331 | + }, | |
331 | 332 | "content-type": { |
332 | 333 | "json": "Json", |
333 | 334 | "text": "テキスト", | ... | ... |
... | ... | @@ -337,7 +337,8 @@ |
337 | 337 | "password": "Parole", |
338 | 338 | "enter-username": "Ievadiet lietotājvārdu", |
339 | 339 | "enter-password": "Ievadiet paroli", |
340 | - "enter-search": "Ievadiet meklēt" | |
340 | + "enter-search": "Ievadiet meklēt", | |
341 | + "created-time": "Izveidošanas laiks" | |
341 | 342 | }, |
342 | 343 | "content-type": { |
343 | 344 | "json": "Json", | ... | ... |
... | ... | @@ -369,7 +369,8 @@ |
369 | 369 | "password": "Parola", |
370 | 370 | "enter-username": "Introdu nume utilizator", |
371 | 371 | "enter-password": "Introdu parola", |
372 | - "enter-search": "Definește căutarea" | |
372 | + "enter-search": "Definește căutarea", | |
373 | + "created-time": "Data Creării" | |
373 | 374 | }, |
374 | 375 | "content-type": { |
375 | 376 | "json": "Json", | ... | ... |
... | ... | @@ -371,7 +371,8 @@ |
371 | 371 | "password": "Пароль", |
372 | 372 | "enter-username": "Введите имя пользователя", |
373 | 373 | "enter-password": "Введите пароль", |
374 | - "enter-search": "Введите условие поиска" | |
374 | + "enter-search": "Введите условие поиска", | |
375 | + "created-time": "Время создания" | |
375 | 376 | }, |
376 | 377 | "content-type": { |
377 | 378 | "json": "Json", | ... | ... |
... | ... | @@ -326,7 +326,8 @@ |
326 | 326 | "password": "Parola", |
327 | 327 | "enter-username": "Kullanıcı adı gir", |
328 | 328 | "enter-password": "Parola gir", |
329 | - "enter-search": "Arama gir" | |
329 | + "enter-search": "Arama gir", | |
330 | + "created-time": "Oluşma zamanı" | |
330 | 331 | }, |
331 | 332 | "content-type": { |
332 | 333 | "json": "Json", | ... | ... |
... | ... | @@ -405,7 +405,8 @@ |
405 | 405 | "password": "Пароль", |
406 | 406 | "enter-username": "Введіть ім'я користувача", |
407 | 407 | "enter-password": "Введіть пароль", |
408 | - "enter-search": "Введіть пошук" | |
408 | + "enter-search": "Введіть пошук", | |
409 | + "created-time": "Час створення" | |
409 | 410 | }, |
410 | 411 | "converter": { |
411 | 412 | "converter": "Перетворювач даних", | ... | ... |
... | ... | @@ -477,7 +477,6 @@ mat-label { |
477 | 477 | |
478 | 478 | .mat-form-field{ |
479 | 479 | .mat-icon { |
480 | - vertical-align: bottom; | |
481 | 480 | margin-right: 4px; |
482 | 481 | margin-left: 4px; |
483 | 482 | } |
... | ... | @@ -486,7 +485,6 @@ mat-label { |
486 | 485 | button.mat-menu-item { |
487 | 486 | overflow: hidden; |
488 | 487 | fill: #737373; |
489 | - display: block; | |
490 | 488 | .tb-alt-text { |
491 | 489 | float: right; |
492 | 490 | } |
... | ... | @@ -618,7 +616,7 @@ mat-label { |
618 | 616 | display: table-cell; |
619 | 617 | box-sizing: content-box; |
620 | 618 | line-break: unset; |
621 | - width: 0px; | |
619 | + width: 0; | |
622 | 620 | overflow: hidden; |
623 | 621 | vertical-align: middle; |
624 | 622 | border-width: 0; |
... | ... | @@ -626,6 +624,7 @@ mat-label { |
626 | 624 | border-bottom-color: rgba(0, 0, 0, 0.12); |
627 | 625 | border-style: solid; |
628 | 626 | text-overflow: ellipsis; |
627 | + touch-action: auto !important; | |
629 | 628 | &:last-child { |
630 | 629 | padding: 0 12px 0 0; |
631 | 630 | } |
... | ... | @@ -645,6 +644,7 @@ mat-label { |
645 | 644 | .mat-header-cell { |
646 | 645 | white-space: nowrap; |
647 | 646 | button.mat-sort-header-button { |
647 | + display: block; | |
648 | 648 | text-overflow: ellipsis; |
649 | 649 | overflow: hidden; |
650 | 650 | white-space: nowrap; |
... | ... | @@ -694,7 +694,7 @@ mat-label { |
694 | 694 | } |
695 | 695 | |
696 | 696 | .mat-icon { |
697 | - vertical-align: middle; | |
697 | + vertical-align: bottom; | |
698 | 698 | box-sizing: content-box; |
699 | 699 | &.tb-mat-16 { |
700 | 700 | @include tb-mat-icon-size(16); | ... | ... |