Merge pull request #12123 from vvlladd28/improvement/custom-translate/description
Add support custom translate for entity description columns
This commit is contained in:
		
						commit
						2e5989fa94
					
				@ -28,13 +28,12 @@ import { DatePipe } from '@angular/common';
 | 
			
		||||
import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models';
 | 
			
		||||
import { EntityAction } from '@home/models/entity/entity-component.models';
 | 
			
		||||
import { DialogService } from '@core/services/dialog.service';
 | 
			
		||||
import { MatDialog } from '@angular/material/dialog';
 | 
			
		||||
import { ImportExportService } from '@shared/import-export/import-export.service';
 | 
			
		||||
import { HomeDialogsService } from '@home/dialogs/home-dialogs.service';
 | 
			
		||||
import { AssetProfile } from '@shared/models/asset.models';
 | 
			
		||||
import { AssetProfileService } from '@core/http/asset-profile.service';
 | 
			
		||||
import { AssetProfileComponent } from '@home/components/profile/asset-profile.component';
 | 
			
		||||
import { AssetProfileTabsComponent } from './asset-profile-tabs.component';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class AssetProfilesTableConfigResolver  {
 | 
			
		||||
@ -43,12 +42,11 @@ export class AssetProfilesTableConfigResolver  {
 | 
			
		||||
 | 
			
		||||
  constructor(private assetProfileService: AssetProfileService,
 | 
			
		||||
              private importExport: ImportExportService,
 | 
			
		||||
              private homeDialogs: HomeDialogsService,
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private dialogService: DialogService,
 | 
			
		||||
              private router: Router,
 | 
			
		||||
              private dialog: MatDialog) {
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
 | 
			
		||||
    this.config.entityType = EntityType.ASSET_PROFILE;
 | 
			
		||||
    this.config.entityComponent = AssetProfileComponent;
 | 
			
		||||
@ -61,7 +59,8 @@ export class AssetProfilesTableConfigResolver  {
 | 
			
		||||
    this.config.columns.push(
 | 
			
		||||
      new DateEntityTableColumn<AssetProfile>('createdTime', 'common.created-time', this.datePipe, '150px'),
 | 
			
		||||
      new EntityTableColumn<AssetProfile>('name', 'asset-profile.name', '50%'),
 | 
			
		||||
      new EntityTableColumn<AssetProfile>('description', 'asset-profile.description', '50%'),
 | 
			
		||||
      new EntityTableColumn<AssetProfile>('description', 'asset-profile.description', '50%',
 | 
			
		||||
          entity => this.customTranslate.transform(entity.description || '')),
 | 
			
		||||
      new EntityTableColumn<AssetProfile>('isDefault', 'asset-profile.default', '60px',
 | 
			
		||||
        entity => {
 | 
			
		||||
          return checkBoxCell(entity.default);
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ import {
 | 
			
		||||
  AddDeviceProfileDialogData
 | 
			
		||||
} from '@home/components/profile/add-device-profile-dialog.component';
 | 
			
		||||
import { ImportExportService } from '@shared/import-export/import-export.service';
 | 
			
		||||
import { HomeDialogsService } from '@home/dialogs/home-dialogs.service';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class DeviceProfilesTableConfigResolver  {
 | 
			
		||||
@ -51,12 +51,12 @@ export class DeviceProfilesTableConfigResolver  {
 | 
			
		||||
 | 
			
		||||
  constructor(private deviceProfileService: DeviceProfileService,
 | 
			
		||||
              private importExport: ImportExportService,
 | 
			
		||||
              private homeDialogs: HomeDialogsService,
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private dialogService: DialogService,
 | 
			
		||||
              private router: Router,
 | 
			
		||||
              private dialog: MatDialog) {
 | 
			
		||||
              private dialog: MatDialog,
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
 | 
			
		||||
    this.config.entityType = EntityType.DEVICE_PROFILE;
 | 
			
		||||
    this.config.entityComponent = DeviceProfileComponent;
 | 
			
		||||
@ -77,7 +77,8 @@ export class DeviceProfilesTableConfigResolver  {
 | 
			
		||||
      new EntityTableColumn<DeviceProfile>('transportType', 'device-profile.transport-type', '20%', (deviceProfile) => {
 | 
			
		||||
        return this.translate.instant(deviceTransportTypeTranslationMap.get(deviceProfile.transportType));
 | 
			
		||||
      }),
 | 
			
		||||
      new EntityTableColumn<DeviceProfile>('description', 'device-profile.description', '40%'),
 | 
			
		||||
      new EntityTableColumn<DeviceProfile>('description', 'device-profile.description', '40%',
 | 
			
		||||
          entity => this.customTranslate.transform(entity.description || '')),
 | 
			
		||||
      new EntityTableColumn<DeviceProfile>('isDefault', 'device-profile.default', '60px',
 | 
			
		||||
        entity => {
 | 
			
		||||
          return checkBoxCell(entity.default);
 | 
			
		||||
 | 
			
		||||
@ -35,6 +35,7 @@ import { RecipientTableHeaderComponent } from '@home/pages/notification/recipien
 | 
			
		||||
import { ActivatedRouteSnapshot } from '@angular/router';
 | 
			
		||||
import { Injectable } from '@angular/core';
 | 
			
		||||
import { DatePipe } from '@angular/common';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class RecipientTableConfigResolver  {
 | 
			
		||||
@ -44,7 +45,8 @@ export class RecipientTableConfigResolver  {
 | 
			
		||||
  constructor(private notificationService: NotificationService,
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private dialog: MatDialog,
 | 
			
		||||
              private datePipe: DatePipe) {
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
 | 
			
		||||
    this.config.entityType = EntityType.NOTIFICATION_TARGET;
 | 
			
		||||
    this.config.detailsPanelEnabled = false;
 | 
			
		||||
@ -82,7 +84,7 @@ export class RecipientTableConfigResolver  {
 | 
			
		||||
        (target) => this.translate.instant(NotificationTargetTypeTranslationMap.get(target.configuration.type)),
 | 
			
		||||
        () => ({}), false),
 | 
			
		||||
      new EntityTableColumn<NotificationTarget>('configuration.description', 'notification.description', '60%',
 | 
			
		||||
      (target) => target.configuration.description || '',
 | 
			
		||||
      (target) => this.customTranslate.transform(target.configuration.description || ''),
 | 
			
		||||
      () => ({}), false)
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -35,6 +35,7 @@ import {
 | 
			
		||||
import { ActivatedRouteSnapshot } from '@angular/router';
 | 
			
		||||
import { Injectable } from '@angular/core';
 | 
			
		||||
import { DatePipe } from '@angular/common';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class RuleTableConfigResolver  {
 | 
			
		||||
@ -44,7 +45,8 @@ export class RuleTableConfigResolver  {
 | 
			
		||||
  constructor(private notificationService: NotificationService,
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private dialog: MatDialog,
 | 
			
		||||
              private datePipe: DatePipe) {
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
 | 
			
		||||
    this.config.entityType = EntityType.NOTIFICATION_RULE;
 | 
			
		||||
    this.config.detailsPanelEnabled = false;
 | 
			
		||||
@ -81,7 +83,7 @@ export class RuleTableConfigResolver  {
 | 
			
		||||
        (rule) => this.translate.instant(TriggerTypeTranslationMap.get(rule.triggerType)) || '',
 | 
			
		||||
        () => ({}), true),
 | 
			
		||||
      new EntityTableColumn<NotificationRule>('additionalConfig.description', 'notification.description', '30%',
 | 
			
		||||
        (target) => target.additionalConfig?.description || '',
 | 
			
		||||
        (target) => this.customTranslate.transform(target.additionalConfig?.description || ''),
 | 
			
		||||
        () => ({}), false)
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -50,13 +50,12 @@ import { PageLink } from '@shared/models/page/page-link';
 | 
			
		||||
import { Edge } from '@shared/models/edge.models';
 | 
			
		||||
import { mergeMap } from 'rxjs/operators';
 | 
			
		||||
import { PageData } from '@shared/models/page/page-data';
 | 
			
		||||
import { HomeDialogsService } from '@home/dialogs/home-dialogs.service';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class RuleChainsTableConfigResolver  {
 | 
			
		||||
 | 
			
		||||
  private readonly config: EntityTableConfig<RuleChain> = new EntityTableConfig<RuleChain>();
 | 
			
		||||
  private edge: Edge;
 | 
			
		||||
 | 
			
		||||
  constructor(private ruleChainService: RuleChainService,
 | 
			
		||||
              private dialogService: DialogService,
 | 
			
		||||
@ -64,10 +63,10 @@ export class RuleChainsTableConfigResolver  {
 | 
			
		||||
              private importExport: ImportExportService,
 | 
			
		||||
              private itembuffer: ItemBufferService,
 | 
			
		||||
              private edgeService: EdgeService,
 | 
			
		||||
              private homeDialogs: HomeDialogsService,
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private router: Router) {
 | 
			
		||||
              private router: Router,
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
    this.config.entityType = EntityType.RULE_CHAIN;
 | 
			
		||||
    this.config.entityComponent = RuleChainComponent;
 | 
			
		||||
    this.config.entityTabsComponent = RuleChainTabsComponent;
 | 
			
		||||
@ -128,7 +127,9 @@ export class RuleChainsTableConfigResolver  {
 | 
			
		||||
    columns.push(
 | 
			
		||||
      new DateEntityTableColumn<RuleChain>('createdTime', 'common.created-time', this.datePipe, '150px'),
 | 
			
		||||
      new EntityTableColumn<RuleChain>('name', 'rulechain.name', '50%'),
 | 
			
		||||
      new EntityTableColumn<RuleChain>('description', 'rulechain.description', '50%', entity => entity.additionalInfo?.description ?? '')
 | 
			
		||||
      new EntityTableColumn<RuleChain>('description', 'rulechain.description', '50%',
 | 
			
		||||
        entity => this.customTranslate.transform(entity.additionalInfo?.description || ''),
 | 
			
		||||
        () => ({}), false)
 | 
			
		||||
    );
 | 
			
		||||
    if (ruleChainScope === 'tenant' || ruleChainScope === 'edge') {
 | 
			
		||||
      columns.push(
 | 
			
		||||
 | 
			
		||||
@ -33,6 +33,7 @@ import { TenantProfileComponent } from '@home/components/profile/tenant-profile.
 | 
			
		||||
import { TenantProfileTabsComponent } from './tenant-profile-tabs.component';
 | 
			
		||||
import { DialogService } from '@core/services/dialog.service';
 | 
			
		||||
import { ImportExportService } from '@shared/import-export/import-export.service';
 | 
			
		||||
import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe';
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class TenantProfilesTableConfigResolver  {
 | 
			
		||||
@ -44,7 +45,8 @@ export class TenantProfilesTableConfigResolver  {
 | 
			
		||||
              private translate: TranslateService,
 | 
			
		||||
              private datePipe: DatePipe,
 | 
			
		||||
              private router: Router,
 | 
			
		||||
              private dialogService: DialogService) {
 | 
			
		||||
              private dialogService: DialogService,
 | 
			
		||||
              private customTranslate: CustomTranslatePipe) {
 | 
			
		||||
 | 
			
		||||
    this.config.entityType = EntityType.TENANT_PROFILE;
 | 
			
		||||
    this.config.entityComponent = TenantProfileComponent;
 | 
			
		||||
@ -55,7 +57,8 @@ export class TenantProfilesTableConfigResolver  {
 | 
			
		||||
    this.config.columns.push(
 | 
			
		||||
      new DateEntityTableColumn<TenantProfile>('createdTime', 'common.created-time', this.datePipe, '150px'),
 | 
			
		||||
      new EntityTableColumn<TenantProfile>('name', 'tenant-profile.name', '40%'),
 | 
			
		||||
      new EntityTableColumn<TenantProfile>('description', 'tenant-profile.description', '60%'),
 | 
			
		||||
      new EntityTableColumn<TenantProfile>('description', 'tenant-profile.description', '60%',
 | 
			
		||||
        entity => this.customTranslate.transform(entity.description || '')),
 | 
			
		||||
      new EntityTableColumn<TenantProfile>('isDefault', 'tenant-profile.default', '60px',
 | 
			
		||||
        entity => {
 | 
			
		||||
          return checkBoxCell(entity.default);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user