UI: Prohibit chnges to asset profile with name 'TbServiceQueue'
This commit is contained in:
		
							parent
							
								
									0717a56a69
								
							
						
					
					
						commit
						3b6c16af68
					
				@ -31,7 +31,7 @@
 | 
			
		||||
  <button mat-raised-button color="primary"
 | 
			
		||||
          [disabled]="(isLoading$ | async)"
 | 
			
		||||
          (click)="onEntityAction($event, 'setDefault')"
 | 
			
		||||
          [fxShow]="!isEdit && !entity?.default">
 | 
			
		||||
          [fxShow]="!isEdit && !entity?.default && entity?.name !== TB_SERVICE_QUEUE">
 | 
			
		||||
    {{'asset-profile.set-default' | translate }}
 | 
			
		||||
  </button>
 | 
			
		||||
  <button mat-raised-button color="primary"
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@ import { RuleChainId } from '@shared/models/id/rule-chain-id';
 | 
			
		||||
import { ServiceType } from '@shared/models/queue.models';
 | 
			
		||||
import { EntityId } from '@shared/models/id/entity-id';
 | 
			
		||||
import { DashboardId } from '@shared/models/id/dashboard-id';
 | 
			
		||||
import { AssetProfile } from '@shared/models/asset.models';
 | 
			
		||||
import { AssetProfile, TB_SERVICE_QUEUE } from '@shared/models/asset.models';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'tb-asset-profile',
 | 
			
		||||
@ -43,6 +43,8 @@ export class AssetProfileComponent extends EntityComponent<AssetProfile> {
 | 
			
		||||
 | 
			
		||||
  serviceType = ServiceType.TB_RULE_ENGINE;
 | 
			
		||||
 | 
			
		||||
  TB_SERVICE_QUEUE = TB_SERVICE_QUEUE;
 | 
			
		||||
 | 
			
		||||
  assetProfileId: EntityId;
 | 
			
		||||
 | 
			
		||||
  constructor(protected store: Store<AppState>,
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@ import { DialogService } from '@core/services/dialog.service';
 | 
			
		||||
import { MatDialog } from '@angular/material/dialog';
 | 
			
		||||
import { ImportExportService } from '@home/components/import-export/import-export.service';
 | 
			
		||||
import { HomeDialogsService } from '@home/dialogs/home-dialogs.service';
 | 
			
		||||
import { AssetProfile } from '@shared/models/asset.models';
 | 
			
		||||
import { AssetProfile, TB_SERVICE_QUEUE } 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';
 | 
			
		||||
@ -78,7 +78,7 @@ export class AssetProfilesTableConfigResolver implements Resolve<EntityTableConf
 | 
			
		||||
      {
 | 
			
		||||
        name: this.translate.instant('asset-profile.set-default'),
 | 
			
		||||
        icon: 'flag',
 | 
			
		||||
        isEnabled: (assetProfile) => !assetProfile.default,
 | 
			
		||||
        isEnabled: (assetProfile) => !assetProfile.default && TB_SERVICE_QUEUE !== assetProfile.name,
 | 
			
		||||
        onAction: ($event, entity) => this.setDefaultAssetProfile($event, entity)
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
@ -94,8 +94,9 @@ export class AssetProfilesTableConfigResolver implements Resolve<EntityTableConf
 | 
			
		||||
    this.config.saveEntity = assetProfile => this.assetProfileService.saveAssetProfile(assetProfile);
 | 
			
		||||
    this.config.deleteEntity = id => this.assetProfileService.deleteAssetProfile(id.id);
 | 
			
		||||
    this.config.onEntityAction = action => this.onAssetProfileAction(action);
 | 
			
		||||
    this.config.deleteEnabled = (assetProfile) => assetProfile && !assetProfile.default;
 | 
			
		||||
    this.config.entitySelectionEnabled = (assetProfile) => assetProfile && !assetProfile.default;
 | 
			
		||||
    this.config.deleteEnabled = (assetProfile) => assetProfile && !assetProfile.default && TB_SERVICE_QUEUE !== assetProfile.name;
 | 
			
		||||
    this.config.entitySelectionEnabled = (assetProfile) => assetProfile && !assetProfile.default && TB_SERVICE_QUEUE !== assetProfile.name;
 | 
			
		||||
    this.config.detailsReadonly = (assetProfile) => assetProfile && TB_SERVICE_QUEUE === assetProfile.name;
 | 
			
		||||
    this.config.addActionDescriptors = this.configureAddActions();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,8 @@ import { RuleChainId } from '@shared/models/id/rule-chain-id';
 | 
			
		||||
import { DashboardId } from '@shared/models/id/dashboard-id';
 | 
			
		||||
import { EntityInfoData } from '@shared/models/entity.models';
 | 
			
		||||
 | 
			
		||||
export const TB_SERVICE_QUEUE = 'TbServiceQueue';
 | 
			
		||||
 | 
			
		||||
export interface AssetProfile extends BaseData<AssetProfileId>, ExportableEntity<AssetProfileId> {
 | 
			
		||||
  tenantId?: TenantId;
 | 
			
		||||
  name: string;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user