From 4c2effd9bef1653b9861fd244a17b3a07c6e888e Mon Sep 17 00:00:00 2001 From: deaflynx Date: Fri, 18 Dec 2020 10:58:34 +0200 Subject: [PATCH 1/5] Fix import with rule chain type --- ui-ngx/proxy.conf.js | 4 +- .../src/app/core/http/rule-chain.service.ts | 5 +- .../import-export/import-export.service.ts | 18 ++++++- .../rulechains-table-config.resolver.ts | 48 ++++++++++--------- 4 files changed, 45 insertions(+), 30 deletions(-) diff --git a/ui-ngx/proxy.conf.js b/ui-ngx/proxy.conf.js index 5be6bde1d1..a0881867ca 100644 --- a/ui-ngx/proxy.conf.js +++ b/ui-ngx/proxy.conf.js @@ -14,8 +14,8 @@ * limitations under the License. */ -const forwardUrl = "http://localhost:8080"; -const wsForwardUrl = "ws://localhost:8080"; +const forwardUrl = "http://localhost:8081"; +const wsForwardUrl = "ws://localhost:8081"; const ruleNodeUiforwardUrl = forwardUrl; const PROXY_CONFIG = { diff --git a/ui-ngx/src/app/core/http/rule-chain.service.ts b/ui-ngx/src/app/core/http/rule-chain.service.ts index 5c01902896..e4e5015577 100644 --- a/ui-ngx/src/app/core/http/rule-chain.service.ts +++ b/ui-ngx/src/app/core/http/rule-chain.service.ts @@ -324,9 +324,8 @@ export class RuleChainService { return this.http.get>(`/api/ruleChain/defaultEdgeRuleChains`, defaultHttpOptionsFromConfig(config)); } - public setEdgeRootRuleChain(edgeId: string, ruleChainId: string, config?: RequestConfig): Observable { //TODO deaflynx EdgeInfo vs. Edge check usage - return this.http.post(`/api/edge/${edgeId}/${ruleChainId}/root`, - defaultHttpOptionsFromConfig(config)); + public setEdgeRootRuleChain(edgeId: string, ruleChainId: string, config?: RequestConfig): Observable { + return this.http.post(`/api/edge/${edgeId}/${ruleChainId}/root`, defaultHttpOptionsFromConfig(config)); } } diff --git a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts index 53c70ce0ee..6cd1cf5a54 100644 --- a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts +++ b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts @@ -52,7 +52,13 @@ import { NULL_UUID } from '@shared/models/id/has-uuid'; import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; import { ImportEntitiesResultInfo, ImportEntityData } from '@shared/models/entity.models'; import { RequestConfig } from '@core/http/http-utils'; -import { RuleChain, RuleChainImport, RuleChainMetaData } from '@shared/models/rule-chain.models'; +import { + RuleChain, + RuleChainImport, + RuleChainMetaData, + RuleChainType, + ruleChainType +} from '@shared/models/rule-chain.models'; import { RuleChainService } from '@core/http/rule-chain.service'; import * as JSZip from 'jszip'; import { FiltersInfo } from '@shared/models/query/query.models'; @@ -397,7 +403,7 @@ export class ImportExportService { ); } - public importRuleChain(): Observable { + public importRuleChain(expectedRuleChainType: RuleChainType): Observable { return this.openImportDialog('rulechain.import', 'rulechain.rulechain-file').pipe( mergeMap((ruleChainImport: RuleChainImport) => { if (!this.validateImportedRuleChain(ruleChainImport)) { @@ -405,6 +411,11 @@ export class ImportExportService { {message: this.translate.instant('rulechain.invalid-rulechain-file-error'), type: 'error'})); throw new Error('Invalid rule chain file'); + } else if (ruleChainImport.ruleChain.type !== expectedRuleChainType) { + this.store.dispatch(new ActionNotificationShow( + {message: this.translate.instant('rulechain.invalid-rulechain-type-error', { expectedRuleChainType: expectedRuleChainType }), + type: 'error'})); + throw new Error('Invalid rule chain file'); } else { return this.ruleChainService.resolveRuleChainMetadata(ruleChainImport.metadata).pipe( map((resolvedMetadata) => { @@ -458,6 +469,9 @@ export class ImportExportService { || isUndefined(ruleChainImport.ruleChain.name)) { return false; } + if (isUndefined(ruleChainImport.ruleChain.type)) { + ruleChainImport.ruleChain.type = ruleChainType.core; + } return true; } diff --git a/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts index fb15089e02..69efc2d7f2 100644 --- a/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts +++ b/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts @@ -14,39 +14,40 @@ /// limitations under the License. /// -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; -import {ActivatedRouteSnapshot, Resolve, Route, Router} from '@angular/router'; +import {ActivatedRouteSnapshot, Resolve, Router} from '@angular/router'; import { CellActionDescriptor, checkBoxCell, - DateEntityTableColumn, EntityColumn, + DateEntityTableColumn, + EntityColumn, EntityTableColumn, EntityTableConfig, - GroupActionDescriptor, HeaderActionDescriptor + GroupActionDescriptor, + HeaderActionDescriptor } from '@home/models/entity/entities-table-config.models'; -import { TranslateService } from '@ngx-translate/core'; -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 { RuleChain, ruleChainType } from '@shared/models/rule-chain.models'; -import { RuleChainService } from '@core/http/rule-chain.service'; -import { RuleChainComponent } from '@modules/home/pages/rulechain/rulechain.component'; -import { DialogService } from '@core/services/dialog.service'; -import { RuleChainTabsComponent } from '@home/pages/rulechain/rulechain-tabs.component'; -import { ImportExportService } from '@home/components/import-export/import-export.service'; -import { ItemBufferService } from '@core/services/item-buffer.service'; -import { EdgeService } from "@core/http/edge.service"; -import {map, mergeMap} from "rxjs/operators"; -import { forkJoin, Observable } from "rxjs"; +import {TranslateService} from '@ngx-translate/core'; +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 {RuleChain, ruleChainType} from '@shared/models/rule-chain.models'; +import {RuleChainService} from '@core/http/rule-chain.service'; +import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; +import {DialogService} from '@core/services/dialog.service'; +import {RuleChainTabsComponent} from '@home/pages/rulechain/rulechain-tabs.component'; +import {ImportExportService} from '@home/components/import-export/import-export.service'; +import {ItemBufferService} from '@core/services/item-buffer.service'; +import {EdgeService} from "@core/http/edge.service"; +import {forkJoin, Observable} from "rxjs"; import { AddEntitiesToEdgeDialogComponent, AddEntitiesToEdgeDialogData } from "@home/dialogs/add-entities-to-edge-dialog.component"; -import { MatDialog } from "@angular/material/dialog"; -import { isDefined, isUndefined } from "@core/utils"; -import { PageLink } from "@shared/models/page/page-link"; -import { Edge } from "@shared/models/edge.models"; +import {MatDialog} from "@angular/material/dialog"; +import {isDefined, isUndefined} from "@core/utils"; +import {PageLink} from "@shared/models/page/page-link"; +import {Edge} from "@shared/models/edge.models"; @Injectable() export class RuleChainsTableConfigResolver implements Resolve> { @@ -267,7 +268,8 @@ export class RuleChainsTableConfigResolver implements Resolve { + const expectedRuleChainType = this.config.componentsData.ruleChainScope === 'tenant' ? ruleChainType.core : ruleChainType.edge; + this.importExport.importRuleChain(expectedRuleChainType).subscribe((ruleChainImport) => { if (ruleChainImport) { this.itembuffer.storeRuleChainImport(ruleChainImport); this.router.navigateByUrl(`${this.router.routerState.snapshot.url}/ruleChain/import`); From ceadc391f3ec4b738c8721d7e02830667931eba7 Mon Sep 17 00:00:00 2001 From: deaflynx Date: Fri, 18 Dec 2020 14:15:39 +0200 Subject: [PATCH 2/5] Added EdgeInfo, fix for CustomerIsPublic --- .../server/controller/BaseController.java | 13 +++++++++++++ .../server/controller/EdgeController.java | 18 ++++++++++++++---- .../server/dao/edge/EdgeService.java | 9 +++------ .../dao/customer/CustomerServiceImpl.java | 4 ++++ .../thingsboard/server/dao/edge/EdgeDao.java | 9 +++++++++ .../server/dao/edge/EdgeServiceImpl.java | 16 ++++++++-------- .../server/dao/sql/edge/EdgeRepository.java | 6 ++++++ .../server/dao/sql/edge/JpaEdgeDao.java | 5 +++++ ui-ngx/proxy.conf.js | 4 ++-- ui-ngx/src/app/core/http/edge.service.ts | 10 +++++++--- .../import-export/import-export.service.ts | 2 +- .../home/pages/edge/edge-routing.module.ts | 6 +++--- .../pages/edge/edges-table-config.resolver.ts | 4 ++-- .../rulechains-table-config.resolver.ts | 10 +++++----- 14 files changed, 82 insertions(+), 34 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index ff9039aabc..8ac6af240b 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -50,6 +50,7 @@ import org.thingsboard.server.common.data.asset.Asset; import org.thingsboard.server.common.data.asset.AssetInfo; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; +import org.thingsboard.server.common.data.edge.EdgeInfo; import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; @@ -643,6 +644,18 @@ public abstract class BaseController { } } + EdgeInfo checkEdgeInfoId(EdgeId edgeId, Operation operation) throws ThingsboardException { + try { + validateId(edgeId, "Incorrect edgeId " + edgeId); + EdgeInfo edge = edgeService.findEdgeInfoById(getCurrentUser().getTenantId(), edgeId); + checkNotNull(edge); + accessControlService.checkPermission(getCurrentUser(), Resource.EDGE, operation, edgeId, edge); + return edge; + } catch (Exception e) { + throw handleException(e, false); + } + } + DashboardInfo checkDashboardInfoId(DashboardId dashboardId, Operation operation) throws ThingsboardException { try { validateId(dashboardId, "Incorrect dashboardId " + dashboardId); diff --git a/application/src/main/java/org/thingsboard/server/controller/EdgeController.java b/application/src/main/java/org/thingsboard/server/controller/EdgeController.java index 21f5438d59..5bc41802fd 100644 --- a/application/src/main/java/org/thingsboard/server/controller/EdgeController.java +++ b/application/src/main/java/org/thingsboard/server/controller/EdgeController.java @@ -36,10 +36,7 @@ import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; import org.thingsboard.server.common.data.exception.ThingsboardException; -import org.thingsboard.server.common.data.id.CustomerId; -import org.thingsboard.server.common.data.id.EdgeId; -import org.thingsboard.server.common.data.id.RuleChainId; -import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.*; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; @@ -77,6 +74,19 @@ public class EdgeController extends BaseController { } } + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") + @RequestMapping(value = "/edge/info/{edgeId}", method = RequestMethod.GET) + @ResponseBody + public EdgeInfo getEdgeInfoById(@PathVariable(EDGE_ID) String strEdgeId) throws ThingsboardException { + checkParameter(EDGE_ID, strEdgeId); + try { + EdgeId edgeId = new EdgeId(toUUID(strEdgeId)); + return checkEdgeInfoId(edgeId, Operation.READ); + } catch (Exception e) { + throw handleException(e); + } + } + @PreAuthorize("hasAuthority('TENANT_ADMIN')") @RequestMapping(value = "/edge", method = RequestMethod.POST) @ResponseBody diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java index f112690950..e28048e94c 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java @@ -20,12 +20,7 @@ import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeInfo; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; -import org.thingsboard.server.common.data.id.CustomerId; -import org.thingsboard.server.common.data.id.DashboardId; -import org.thingsboard.server.common.data.id.EdgeId; -import org.thingsboard.server.common.data.id.EntityId; -import org.thingsboard.server.common.data.id.RuleChainId; -import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.*; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; @@ -36,6 +31,8 @@ public interface EdgeService { Edge findEdgeById(TenantId tenantId, EdgeId edgeId); + EdgeInfo findEdgeInfoById(TenantId tenantId, EdgeId edgeId); + ListenableFuture findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId); Edge findEdgeByTenantIdAndName(TenantId tenantId, String name); diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java index b1b5c46479..2fcd9643c9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java @@ -34,6 +34,7 @@ import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileCon import org.thingsboard.server.dao.asset.AssetService; import org.thingsboard.server.dao.dashboard.DashboardService; import org.thingsboard.server.dao.device.DeviceService; +import org.thingsboard.server.dao.edge.EdgeService; import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.entityview.EntityViewService; import org.thingsboard.server.dao.exception.DataValidationException; @@ -79,6 +80,9 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom @Autowired private DashboardService dashboardService; + @Autowired + private EdgeService edgeService; + @Autowired @Lazy private TbTenantProfileCache tenantProfileCache; diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeDao.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeDao.java index ecd13d9e80..fdaa6bf930 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeDao.java @@ -42,6 +42,15 @@ public interface EdgeDao extends Dao { */ Edge save(TenantId tenantId, Edge edge); + /** + * Find edge info by id. + * + * @param tenantId the tenant id + * @param edgeId the edge id + * @return the edge info object + */ + EdgeInfo findEdgeInfoById(TenantId tenantId, UUID edgeId); + /** * Find edges by tenantId and page link. * diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index 26a683b814..2215952694 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -44,14 +44,7 @@ import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeInfo; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; -import org.thingsboard.server.common.data.id.CustomerId; -import org.thingsboard.server.common.data.id.DashboardId; -import org.thingsboard.server.common.data.id.EdgeId; -import org.thingsboard.server.common.data.id.EntityId; -import org.thingsboard.server.common.data.id.IdBased; -import org.thingsboard.server.common.data.id.RuleChainId; -import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.id.UserId; +import org.thingsboard.server.common.data.id.*; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.relation.EntityRelation; @@ -143,6 +136,13 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic return edgeDao.findById(tenantId, edgeId.getId()); } + @Override + public EdgeInfo findEdgeInfoById(TenantId tenantId, EdgeId edgeId) { + log.trace("Executing findEdgeInfoById [{}]", edgeId); + validateId(edgeId, INCORRECT_EDGE_ID + edgeId); + return edgeDao.findEdgeInfoById(tenantId, edgeId.getId()); + } + @Override public ListenableFuture findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId) { log.trace("Executing findEdgeById [{}]", edgeId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java index f194156d8f..c3a48bc304 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/EdgeRepository.java @@ -36,6 +36,12 @@ public interface EdgeRepository extends PagingAndSortingRepository findByTenantId(@Param("tenantId") UUID tenantId, diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java index 5bc076c7af..3633c97ccb 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/edge/JpaEdgeDao.java @@ -67,6 +67,11 @@ public class JpaEdgeDao extends JpaAbstractSearchTextDao imple return edgeRepository; } + @Override + public EdgeInfo findEdgeInfoById(TenantId tenantId, UUID edgeId) { + return DaoUtil.getData(edgeRepository.findEdgeInfoById(edgeId)); + } + @Override public PageData findEdgesByTenantId(UUID tenantId, PageLink pageLink) { return DaoUtil.toPageData( diff --git a/ui-ngx/proxy.conf.js b/ui-ngx/proxy.conf.js index a0881867ca..5be6bde1d1 100644 --- a/ui-ngx/proxy.conf.js +++ b/ui-ngx/proxy.conf.js @@ -14,8 +14,8 @@ * limitations under the License. */ -const forwardUrl = "http://localhost:8081"; -const wsForwardUrl = "ws://localhost:8081"; +const forwardUrl = "http://localhost:8080"; +const wsForwardUrl = "ws://localhost:8080"; const ruleNodeUiforwardUrl = forwardUrl; const PROXY_CONFIG = { diff --git a/ui-ngx/src/app/core/http/edge.service.ts b/ui-ngx/src/app/core/http/edge.service.ts index 775bdd83e9..f02d09147b 100644 --- a/ui-ngx/src/app/core/http/edge.service.ts +++ b/ui-ngx/src/app/core/http/edge.service.ts @@ -38,8 +38,12 @@ export class EdgeService { defaultHttpOptionsFromConfig(config)); } - public getEdge(edgeId: string, config?: RequestConfig): Observable { - return this.http.get(`/api/edge/${edgeId}`, defaultHttpOptionsFromConfig(config)); + public getEdge(edgeId: string, config?: RequestConfig): Observable { + return this.http.get(`/api/edge/${edgeId}`, defaultHttpOptionsFromConfig(config)); + } + + public getEdgeInfo(edgeId: string, config?: RequestConfig): Observable { + return this.http.get(`/api/edge/info/${edgeId}`, defaultHttpOptionsFromConfig(config)); } public saveEdge(edge: Edge, config?: RequestConfig): Observable { @@ -72,7 +76,7 @@ export class EdgeService { } public makeEdgePublic(edgeId: string, config?: RequestConfig): Observable { - return this.http.post(`/api/customer/public/edge/${edgeId}`, + return this.http.post(`/api/customer/public/edge/${edgeId}`, null, defaultHttpOptionsFromConfig(config)); } diff --git a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts index 6cd1cf5a54..e8a94a52a7 100644 --- a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts +++ b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts @@ -415,7 +415,7 @@ export class ImportExportService { this.store.dispatch(new ActionNotificationShow( {message: this.translate.instant('rulechain.invalid-rulechain-type-error', { expectedRuleChainType: expectedRuleChainType }), type: 'error'})); - throw new Error('Invalid rule chain file'); + throw new Error('Invalid rule chain type'); } else { return this.ruleChainService.resolveRuleChainMetadata(ruleChainImport.metadata).pipe( map((resolvedMetadata) => { diff --git a/ui-ngx/src/app/modules/home/pages/edge/edge-routing.module.ts b/ui-ngx/src/app/modules/home/pages/edge/edge-routing.module.ts index adca2e34b1..53ba2902d8 100644 --- a/ui-ngx/src/app/modules/home/pages/edge/edge-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/edge/edge-routing.module.ts @@ -27,9 +27,9 @@ import { RuleChainsTableConfigResolver } from "@home/pages/rulechain/rulechains- import { DashboardPageComponent } from "@home/pages/dashboard/dashboard-page.component"; import { dashboardBreadcumbLabelFunction, DashboardResolver } from "@home/pages/dashboard/dashboard-routing.module"; import { BreadCrumbConfig } from "@shared/components/breadcrumb"; -import {RuleChainPageComponent} from "@home/pages/rulechain/rulechain-page.component"; -import {ConfirmOnExitGuard} from "@core/guards/confirm-on-exit.guard"; -import {ruleChainType} from "@shared/models/rule-chain.models"; +import { RuleChainPageComponent } from "@home/pages/rulechain/rulechain-page.component"; +import { ConfirmOnExitGuard } from "@core/guards/confirm-on-exit.guard"; +import { ruleChainType } from "@shared/models/rule-chain.models"; import { importRuleChainBreadcumbLabelFunction, ResolvedRuleChainMetaDataResolver, diff --git a/ui-ngx/src/app/modules/home/pages/edge/edges-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/edge/edges-table-config.resolver.ts index ba2a69ac6f..9fe8c9b77e 100644 --- a/ui-ngx/src/app/modules/home/pages/edge/edges-table-config.resolver.ts +++ b/ui-ngx/src/app/modules/home/pages/edge/edges-table-config.resolver.ts @@ -86,13 +86,13 @@ export class EdgesTableConfigResolver implements Resolve this.translate.instant('edge.delete-edges-title', {count}); this.config.deleteEntitiesContent = () => this.translate.instant('edge.delete-edges-text'); - this.config.loadEntity = id => this.edgeService.getEdge(id.id); + this.config.loadEntity = id => this.edgeService.getEdgeInfo(id.id); this.config.saveEntity = edge => { return this.edgeService.saveEdge(edge).pipe( tap(() => { this.broadcast.broadcast('edgeSaved'); }), - mergeMap((savedEdge) => this.edgeService.getEdge(savedEdge.id.id) + mergeMap((savedEdge) => this.edgeService.getEdgeInfo(savedEdge.id.id) )); }; this.config.onEntityAction = action => this.onEdgeAction(action); diff --git a/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts index 69efc2d7f2..c37659fbc4 100644 --- a/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts +++ b/ui-ngx/src/app/modules/home/pages/rulechain/rulechains-table-config.resolver.ts @@ -45,7 +45,7 @@ import { AddEntitiesToEdgeDialogData } from "@home/dialogs/add-entities-to-edge-dialog.component"; import {MatDialog} from "@angular/material/dialog"; -import {isDefined, isUndefined} from "@core/utils"; +import {isUndefined} from "@core/utils"; import {PageLink} from "@shared/models/page/page-link"; import {Edge} from "@shared/models/edge.models"; @@ -490,17 +490,17 @@ export class RuleChainsTableConfigResolver implements Resolve Date: Fri, 18 Dec 2020 14:36:05 +0200 Subject: [PATCH 3/5] Import refactor --- .../thingsboard/server/controller/EdgeController.java | 5 ++++- .../org/thingsboard/server/dao/edge/EdgeService.java | 7 ++++++- .../org/thingsboard/server/dao/edge/EdgeServiceImpl.java | 9 ++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/EdgeController.java b/application/src/main/java/org/thingsboard/server/controller/EdgeController.java index 5bc41802fd..3ad8e95173 100644 --- a/application/src/main/java/org/thingsboard/server/controller/EdgeController.java +++ b/application/src/main/java/org/thingsboard/server/controller/EdgeController.java @@ -36,7 +36,10 @@ import org.thingsboard.server.common.data.edge.EdgeEventActionType; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; import org.thingsboard.server.common.data.exception.ThingsboardException; -import org.thingsboard.server.common.data.id.*; +import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.common.data.id.EdgeId; +import org.thingsboard.server.common.data.id.RuleChainId; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent; diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java index e28048e94c..fd72abc2e2 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/edge/EdgeService.java @@ -20,7 +20,12 @@ import org.thingsboard.server.common.data.EntitySubtype; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeInfo; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; -import org.thingsboard.server.common.data.id.*; +import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.common.data.id.DashboardId; +import org.thingsboard.server.common.data.id.EdgeId; +import org.thingsboard.server.common.data.id.EntityId; +import org.thingsboard.server.common.data.id.RuleChainId; +import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index 2215952694..9d3ddd6b05 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -44,7 +44,14 @@ import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.edge.EdgeInfo; import org.thingsboard.server.common.data.edge.EdgeSearchQuery; -import org.thingsboard.server.common.data.id.*; +import org.thingsboard.server.common.data.id.CustomerId; +import org.thingsboard.server.common.data.id.DashboardId; +import org.thingsboard.server.common.data.id.EdgeId; +import org.thingsboard.server.common.data.id.EntityId; +import org.thingsboard.server.common.data.id.IdBased; +import org.thingsboard.server.common.data.id.RuleChainId; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.relation.EntityRelation; From 8ef786acbf893378dfb75d3f10096709422a0093 Mon Sep 17 00:00:00 2001 From: deaflynx Date: Fri, 18 Dec 2020 14:39:03 +0200 Subject: [PATCH 4/5] Code cleaning --- .../thingsboard/server/dao/customer/CustomerServiceImpl.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java index 2fcd9643c9..03c787374e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java @@ -34,7 +34,6 @@ import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileCon import org.thingsboard.server.dao.asset.AssetService; import org.thingsboard.server.dao.dashboard.DashboardService; import org.thingsboard.server.dao.device.DeviceService; -import org.thingsboard.server.dao.edge.EdgeService; import org.thingsboard.server.dao.entity.AbstractEntityService; import org.thingsboard.server.dao.entityview.EntityViewService; import org.thingsboard.server.dao.exception.DataValidationException; @@ -79,10 +78,6 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom @Autowired private DashboardService dashboardService; - - @Autowired - private EdgeService edgeService; - @Autowired @Lazy private TbTenantProfileCache tenantProfileCache; From 1ab1a8e085b4ab9631e8f005d29a8917b7e57a81 Mon Sep 17 00:00:00 2001 From: deaflynx Date: Fri, 18 Dec 2020 14:39:55 +0200 Subject: [PATCH 5/5] Code cleaning --- .../org/thingsboard/server/dao/customer/CustomerServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java index 03c787374e..b1b5c46479 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java @@ -78,6 +78,7 @@ public class CustomerServiceImpl extends AbstractEntityService implements Custom @Autowired private DashboardService dashboardService; + @Autowired @Lazy private TbTenantProfileCache tenantProfileCache;