Commit 77ad519a1007f161d79454b49d52f0aad563c3c9
Committed by
GitHub
Merge pull request #67 from deaflynx/develop/3.3-edge
Develop/3.3 edge Fix rule chain type, customerIsPublic for edges. Added EdgeInfo
Showing
13 changed files
with
114 additions
and
40 deletions
@@ -50,6 +50,7 @@ import org.thingsboard.server.common.data.asset.Asset; | @@ -50,6 +50,7 @@ import org.thingsboard.server.common.data.asset.Asset; | ||
50 | import org.thingsboard.server.common.data.asset.AssetInfo; | 50 | import org.thingsboard.server.common.data.asset.AssetInfo; |
51 | import org.thingsboard.server.common.data.audit.ActionType; | 51 | import org.thingsboard.server.common.data.audit.ActionType; |
52 | import org.thingsboard.server.common.data.edge.Edge; | 52 | import org.thingsboard.server.common.data.edge.Edge; |
53 | +import org.thingsboard.server.common.data.edge.EdgeInfo; | ||
53 | import org.thingsboard.server.common.data.edge.EdgeEventActionType; | 54 | import org.thingsboard.server.common.data.edge.EdgeEventActionType; |
54 | import org.thingsboard.server.common.data.edge.EdgeEventType; | 55 | import org.thingsboard.server.common.data.edge.EdgeEventType; |
55 | import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; | 56 | import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; |
@@ -643,6 +644,18 @@ public abstract class BaseController { | @@ -643,6 +644,18 @@ public abstract class BaseController { | ||
643 | } | 644 | } |
644 | } | 645 | } |
645 | 646 | ||
647 | + EdgeInfo checkEdgeInfoId(EdgeId edgeId, Operation operation) throws ThingsboardException { | ||
648 | + try { | ||
649 | + validateId(edgeId, "Incorrect edgeId " + edgeId); | ||
650 | + EdgeInfo edge = edgeService.findEdgeInfoById(getCurrentUser().getTenantId(), edgeId); | ||
651 | + checkNotNull(edge); | ||
652 | + accessControlService.checkPermission(getCurrentUser(), Resource.EDGE, operation, edgeId, edge); | ||
653 | + return edge; | ||
654 | + } catch (Exception e) { | ||
655 | + throw handleException(e, false); | ||
656 | + } | ||
657 | + } | ||
658 | + | ||
646 | DashboardInfo checkDashboardInfoId(DashboardId dashboardId, Operation operation) throws ThingsboardException { | 659 | DashboardInfo checkDashboardInfoId(DashboardId dashboardId, Operation operation) throws ThingsboardException { |
647 | try { | 660 | try { |
648 | validateId(dashboardId, "Incorrect dashboardId " + dashboardId); | 661 | validateId(dashboardId, "Incorrect dashboardId " + dashboardId); |
@@ -84,6 +84,19 @@ public class EdgeController extends BaseController { | @@ -84,6 +84,19 @@ public class EdgeController extends BaseController { | ||
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN', 'CUSTOMER_USER')") | ||
88 | + @RequestMapping(value = "/edge/info/{edgeId}", method = RequestMethod.GET) | ||
89 | + @ResponseBody | ||
90 | + public EdgeInfo getEdgeInfoById(@PathVariable(EDGE_ID) String strEdgeId) throws ThingsboardException { | ||
91 | + checkParameter(EDGE_ID, strEdgeId); | ||
92 | + try { | ||
93 | + EdgeId edgeId = new EdgeId(toUUID(strEdgeId)); | ||
94 | + return checkEdgeInfoId(edgeId, Operation.READ); | ||
95 | + } catch (Exception e) { | ||
96 | + throw handleException(e); | ||
97 | + } | ||
98 | + } | ||
99 | + | ||
87 | @PreAuthorize("hasAuthority('TENANT_ADMIN')") | 100 | @PreAuthorize("hasAuthority('TENANT_ADMIN')") |
88 | @RequestMapping(value = "/edge", method = RequestMethod.POST) | 101 | @RequestMapping(value = "/edge", method = RequestMethod.POST) |
89 | @ResponseBody | 102 | @ResponseBody |
@@ -36,6 +36,8 @@ public interface EdgeService { | @@ -36,6 +36,8 @@ public interface EdgeService { | ||
36 | 36 | ||
37 | Edge findEdgeById(TenantId tenantId, EdgeId edgeId); | 37 | Edge findEdgeById(TenantId tenantId, EdgeId edgeId); |
38 | 38 | ||
39 | + EdgeInfo findEdgeInfoById(TenantId tenantId, EdgeId edgeId); | ||
40 | + | ||
39 | ListenableFuture<Edge> findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId); | 41 | ListenableFuture<Edge> findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId); |
40 | 42 | ||
41 | Edge findEdgeByTenantIdAndName(TenantId tenantId, String name); | 43 | Edge findEdgeByTenantIdAndName(TenantId tenantId, String name); |
@@ -43,6 +43,15 @@ public interface EdgeDao extends Dao<Edge> { | @@ -43,6 +43,15 @@ public interface EdgeDao extends Dao<Edge> { | ||
43 | Edge save(TenantId tenantId, Edge edge); | 43 | Edge save(TenantId tenantId, Edge edge); |
44 | 44 | ||
45 | /** | 45 | /** |
46 | + * Find edge info by id. | ||
47 | + * | ||
48 | + * @param tenantId the tenant id | ||
49 | + * @param edgeId the edge id | ||
50 | + * @return the edge info object | ||
51 | + */ | ||
52 | + EdgeInfo findEdgeInfoById(TenantId tenantId, UUID edgeId); | ||
53 | + | ||
54 | + /** | ||
46 | * Find edges by tenantId and page link. | 55 | * Find edges by tenantId and page link. |
47 | * | 56 | * |
48 | * @param tenantId the tenantId | 57 | * @param tenantId the tenantId |
@@ -144,6 +144,13 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic | @@ -144,6 +144,13 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic | ||
144 | } | 144 | } |
145 | 145 | ||
146 | @Override | 146 | @Override |
147 | + public EdgeInfo findEdgeInfoById(TenantId tenantId, EdgeId edgeId) { | ||
148 | + log.trace("Executing findEdgeInfoById [{}]", edgeId); | ||
149 | + validateId(edgeId, INCORRECT_EDGE_ID + edgeId); | ||
150 | + return edgeDao.findEdgeInfoById(tenantId, edgeId.getId()); | ||
151 | + } | ||
152 | + | ||
153 | + @Override | ||
147 | public ListenableFuture<Edge> findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId) { | 154 | public ListenableFuture<Edge> findEdgeByIdAsync(TenantId tenantId, EdgeId edgeId) { |
148 | log.trace("Executing findEdgeById [{}]", edgeId); | 155 | log.trace("Executing findEdgeById [{}]", edgeId); |
149 | validateId(edgeId, INCORRECT_EDGE_ID + edgeId); | 156 | validateId(edgeId, INCORRECT_EDGE_ID + edgeId); |
@@ -36,6 +36,12 @@ public interface EdgeRepository extends PagingAndSortingRepository<EdgeEntity, U | @@ -36,6 +36,12 @@ public interface EdgeRepository extends PagingAndSortingRepository<EdgeEntity, U | ||
36 | @Param("textSearch") String textSearch, | 36 | @Param("textSearch") String textSearch, |
37 | Pageable pageable); | 37 | Pageable pageable); |
38 | 38 | ||
39 | + @Query("SELECT new org.thingsboard.server.dao.model.sql.EdgeInfoEntity(d, c.title, c.additionalInfo) " + | ||
40 | + "FROM EdgeEntity d " + | ||
41 | + "LEFT JOIN CustomerEntity c on c.id = d.customerId " + | ||
42 | + "WHERE d.id = :edgeId") | ||
43 | + EdgeInfoEntity findEdgeInfoById(@Param("edgeId") UUID edgeId); | ||
44 | + | ||
39 | @Query("SELECT d FROM EdgeEntity d WHERE d.tenantId = :tenantId " + | 45 | @Query("SELECT d FROM EdgeEntity d WHERE d.tenantId = :tenantId " + |
40 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") | 46 | "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))") |
41 | Page<EdgeEntity> findByTenantId(@Param("tenantId") UUID tenantId, | 47 | Page<EdgeEntity> findByTenantId(@Param("tenantId") UUID tenantId, |
@@ -68,6 +68,11 @@ public class JpaEdgeDao extends JpaAbstractSearchTextDao<EdgeEntity, Edge> imple | @@ -68,6 +68,11 @@ public class JpaEdgeDao extends JpaAbstractSearchTextDao<EdgeEntity, Edge> imple | ||
68 | } | 68 | } |
69 | 69 | ||
70 | @Override | 70 | @Override |
71 | + public EdgeInfo findEdgeInfoById(TenantId tenantId, UUID edgeId) { | ||
72 | + return DaoUtil.getData(edgeRepository.findEdgeInfoById(edgeId)); | ||
73 | + } | ||
74 | + | ||
75 | + @Override | ||
71 | public PageData<Edge> findEdgesByTenantId(UUID tenantId, PageLink pageLink) { | 76 | public PageData<Edge> findEdgesByTenantId(UUID tenantId, PageLink pageLink) { |
72 | return DaoUtil.toPageData( | 77 | return DaoUtil.toPageData( |
73 | edgeRepository.findByTenantId( | 78 | edgeRepository.findByTenantId( |
@@ -38,8 +38,12 @@ export class EdgeService { | @@ -38,8 +38,12 @@ export class EdgeService { | ||
38 | defaultHttpOptionsFromConfig(config)); | 38 | defaultHttpOptionsFromConfig(config)); |
39 | } | 39 | } |
40 | 40 | ||
41 | - public getEdge(edgeId: string, config?: RequestConfig): Observable<EdgeInfo> { | ||
42 | - return this.http.get<EdgeInfo>(`/api/edge/${edgeId}`, defaultHttpOptionsFromConfig(config)); | 41 | + public getEdge(edgeId: string, config?: RequestConfig): Observable<Edge> { |
42 | + return this.http.get<Edge>(`/api/edge/${edgeId}`, defaultHttpOptionsFromConfig(config)); | ||
43 | + } | ||
44 | + | ||
45 | + public getEdgeInfo(edgeId: string, config?: RequestConfig): Observable<EdgeInfo> { | ||
46 | + return this.http.get<EdgeInfo>(`/api/edge/info/${edgeId}`, defaultHttpOptionsFromConfig(config)); | ||
43 | } | 47 | } |
44 | 48 | ||
45 | public saveEdge(edge: Edge, config?: RequestConfig): Observable<Edge> { | 49 | public saveEdge(edge: Edge, config?: RequestConfig): Observable<Edge> { |
@@ -72,7 +76,7 @@ export class EdgeService { | @@ -72,7 +76,7 @@ export class EdgeService { | ||
72 | } | 76 | } |
73 | 77 | ||
74 | public makeEdgePublic(edgeId: string, config?: RequestConfig): Observable<Edge> { | 78 | public makeEdgePublic(edgeId: string, config?: RequestConfig): Observable<Edge> { |
75 | - return this.http.post<Edge>(`/api/customer/public/edge/${edgeId}`, | 79 | + return this.http.post<Edge>(`/api/customer/public/edge/${edgeId}`, null, |
76 | defaultHttpOptionsFromConfig(config)); | 80 | defaultHttpOptionsFromConfig(config)); |
77 | } | 81 | } |
78 | 82 |
@@ -324,9 +324,8 @@ export class RuleChainService { | @@ -324,9 +324,8 @@ export class RuleChainService { | ||
324 | return this.http.get<Array<RuleChain>>(`/api/ruleChain/defaultEdgeRuleChains`, defaultHttpOptionsFromConfig(config)); | 324 | return this.http.get<Array<RuleChain>>(`/api/ruleChain/defaultEdgeRuleChains`, defaultHttpOptionsFromConfig(config)); |
325 | } | 325 | } |
326 | 326 | ||
327 | - public setEdgeRootRuleChain(edgeId: string, ruleChainId: string, config?: RequestConfig): Observable<Edge> { //TODO deaflynx EdgeInfo vs. Edge check usage | ||
328 | - return this.http.post<Edge>(`/api/edge/${edgeId}/${ruleChainId}/root`, | ||
329 | - defaultHttpOptionsFromConfig(config)); | 327 | + public setEdgeRootRuleChain(edgeId: string, ruleChainId: string, config?: RequestConfig): Observable<Edge> { |
328 | + return this.http.post<Edge>(`/api/edge/${edgeId}/${ruleChainId}/root`, defaultHttpOptionsFromConfig(config)); | ||
330 | } | 329 | } |
331 | 330 | ||
332 | } | 331 | } |
@@ -52,7 +52,13 @@ import { NULL_UUID } from '@shared/models/id/has-uuid'; | @@ -52,7 +52,13 @@ import { NULL_UUID } from '@shared/models/id/has-uuid'; | ||
52 | import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; | 52 | import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; |
53 | import { ImportEntitiesResultInfo, ImportEntityData } from '@shared/models/entity.models'; | 53 | import { ImportEntitiesResultInfo, ImportEntityData } from '@shared/models/entity.models'; |
54 | import { RequestConfig } from '@core/http/http-utils'; | 54 | import { RequestConfig } from '@core/http/http-utils'; |
55 | -import { RuleChain, RuleChainImport, RuleChainMetaData } from '@shared/models/rule-chain.models'; | 55 | +import { |
56 | + RuleChain, | ||
57 | + RuleChainImport, | ||
58 | + RuleChainMetaData, | ||
59 | + RuleChainType, | ||
60 | + ruleChainType | ||
61 | +} from '@shared/models/rule-chain.models'; | ||
56 | import { RuleChainService } from '@core/http/rule-chain.service'; | 62 | import { RuleChainService } from '@core/http/rule-chain.service'; |
57 | import * as JSZip from 'jszip'; | 63 | import * as JSZip from 'jszip'; |
58 | import { FiltersInfo } from '@shared/models/query/query.models'; | 64 | import { FiltersInfo } from '@shared/models/query/query.models'; |
@@ -397,7 +403,7 @@ export class ImportExportService { | @@ -397,7 +403,7 @@ export class ImportExportService { | ||
397 | ); | 403 | ); |
398 | } | 404 | } |
399 | 405 | ||
400 | - public importRuleChain(): Observable<RuleChainImport> { | 406 | + public importRuleChain(expectedRuleChainType: RuleChainType): Observable<RuleChainImport> { |
401 | return this.openImportDialog('rulechain.import', 'rulechain.rulechain-file').pipe( | 407 | return this.openImportDialog('rulechain.import', 'rulechain.rulechain-file').pipe( |
402 | mergeMap((ruleChainImport: RuleChainImport) => { | 408 | mergeMap((ruleChainImport: RuleChainImport) => { |
403 | if (!this.validateImportedRuleChain(ruleChainImport)) { | 409 | if (!this.validateImportedRuleChain(ruleChainImport)) { |
@@ -405,6 +411,11 @@ export class ImportExportService { | @@ -405,6 +411,11 @@ export class ImportExportService { | ||
405 | {message: this.translate.instant('rulechain.invalid-rulechain-file-error'), | 411 | {message: this.translate.instant('rulechain.invalid-rulechain-file-error'), |
406 | type: 'error'})); | 412 | type: 'error'})); |
407 | throw new Error('Invalid rule chain file'); | 413 | throw new Error('Invalid rule chain file'); |
414 | + } else if (ruleChainImport.ruleChain.type !== expectedRuleChainType) { | ||
415 | + this.store.dispatch(new ActionNotificationShow( | ||
416 | + {message: this.translate.instant('rulechain.invalid-rulechain-type-error', { expectedRuleChainType: expectedRuleChainType }), | ||
417 | + type: 'error'})); | ||
418 | + throw new Error('Invalid rule chain type'); | ||
408 | } else { | 419 | } else { |
409 | return this.ruleChainService.resolveRuleChainMetadata(ruleChainImport.metadata).pipe( | 420 | return this.ruleChainService.resolveRuleChainMetadata(ruleChainImport.metadata).pipe( |
410 | map((resolvedMetadata) => { | 421 | map((resolvedMetadata) => { |
@@ -458,6 +469,9 @@ export class ImportExportService { | @@ -458,6 +469,9 @@ export class ImportExportService { | ||
458 | || isUndefined(ruleChainImport.ruleChain.name)) { | 469 | || isUndefined(ruleChainImport.ruleChain.name)) { |
459 | return false; | 470 | return false; |
460 | } | 471 | } |
472 | + if (isUndefined(ruleChainImport.ruleChain.type)) { | ||
473 | + ruleChainImport.ruleChain.type = ruleChainType.core; | ||
474 | + } | ||
461 | return true; | 475 | return true; |
462 | } | 476 | } |
463 | 477 |
@@ -27,9 +27,9 @@ import { RuleChainsTableConfigResolver } from "@home/pages/rulechain/rulechains- | @@ -27,9 +27,9 @@ import { RuleChainsTableConfigResolver } from "@home/pages/rulechain/rulechains- | ||
27 | import { DashboardPageComponent } from "@home/pages/dashboard/dashboard-page.component"; | 27 | import { DashboardPageComponent } from "@home/pages/dashboard/dashboard-page.component"; |
28 | import { dashboardBreadcumbLabelFunction, DashboardResolver } from "@home/pages/dashboard/dashboard-routing.module"; | 28 | import { dashboardBreadcumbLabelFunction, DashboardResolver } from "@home/pages/dashboard/dashboard-routing.module"; |
29 | import { BreadCrumbConfig } from "@shared/components/breadcrumb"; | 29 | import { BreadCrumbConfig } from "@shared/components/breadcrumb"; |
30 | -import {RuleChainPageComponent} from "@home/pages/rulechain/rulechain-page.component"; | ||
31 | -import {ConfirmOnExitGuard} from "@core/guards/confirm-on-exit.guard"; | ||
32 | -import {ruleChainType} from "@shared/models/rule-chain.models"; | 30 | +import { RuleChainPageComponent } from "@home/pages/rulechain/rulechain-page.component"; |
31 | +import { ConfirmOnExitGuard } from "@core/guards/confirm-on-exit.guard"; | ||
32 | +import { ruleChainType } from "@shared/models/rule-chain.models"; | ||
33 | import { | 33 | import { |
34 | importRuleChainBreadcumbLabelFunction, | 34 | importRuleChainBreadcumbLabelFunction, |
35 | ResolvedRuleChainMetaDataResolver, | 35 | ResolvedRuleChainMetaDataResolver, |
@@ -86,13 +86,13 @@ export class EdgesTableConfigResolver implements Resolve<EntityTableConfig<EdgeI | @@ -86,13 +86,13 @@ export class EdgesTableConfigResolver implements Resolve<EntityTableConfig<EdgeI | ||
86 | this.config.deleteEntitiesTitle = count => this.translate.instant('edge.delete-edges-title', {count}); | 86 | this.config.deleteEntitiesTitle = count => this.translate.instant('edge.delete-edges-title', {count}); |
87 | this.config.deleteEntitiesContent = () => this.translate.instant('edge.delete-edges-text'); | 87 | this.config.deleteEntitiesContent = () => this.translate.instant('edge.delete-edges-text'); |
88 | 88 | ||
89 | - this.config.loadEntity = id => this.edgeService.getEdge(id.id); | 89 | + this.config.loadEntity = id => this.edgeService.getEdgeInfo(id.id); |
90 | this.config.saveEntity = edge => { | 90 | this.config.saveEntity = edge => { |
91 | return this.edgeService.saveEdge(edge).pipe( | 91 | return this.edgeService.saveEdge(edge).pipe( |
92 | tap(() => { | 92 | tap(() => { |
93 | this.broadcast.broadcast('edgeSaved'); | 93 | this.broadcast.broadcast('edgeSaved'); |
94 | }), | 94 | }), |
95 | - mergeMap((savedEdge) => this.edgeService.getEdge(savedEdge.id.id) | 95 | + mergeMap((savedEdge) => this.edgeService.getEdgeInfo(savedEdge.id.id) |
96 | )); | 96 | )); |
97 | }; | 97 | }; |
98 | this.config.onEntityAction = action => this.onEdgeAction(action); | 98 | this.config.onEntityAction = action => this.onEdgeAction(action); |
@@ -14,39 +14,40 @@ | @@ -14,39 +14,40 @@ | ||
14 | /// limitations under the License. | 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, Route, Router} from '@angular/router'; | 19 | +import {ActivatedRouteSnapshot, Resolve, Router} from '@angular/router'; |
20 | import { | 20 | import { |
21 | CellActionDescriptor, | 21 | CellActionDescriptor, |
22 | checkBoxCell, | 22 | checkBoxCell, |
23 | - DateEntityTableColumn, EntityColumn, | 23 | + DateEntityTableColumn, |
24 | + EntityColumn, | ||
24 | EntityTableColumn, | 25 | EntityTableColumn, |
25 | EntityTableConfig, | 26 | EntityTableConfig, |
26 | - GroupActionDescriptor, HeaderActionDescriptor | 27 | + GroupActionDescriptor, |
28 | + HeaderActionDescriptor | ||
27 | } from '@home/models/entity/entities-table-config.models'; | 29 | } from '@home/models/entity/entities-table-config.models'; |
28 | -import { TranslateService } from '@ngx-translate/core'; | ||
29 | -import { DatePipe } from '@angular/common'; | ||
30 | -import { EntityType, entityTypeResources, entityTypeTranslations } from '@shared/models/entity-type.models'; | ||
31 | -import { EntityAction } from '@home/models/entity/entity-component.models'; | ||
32 | -import { RuleChain, ruleChainType } from '@shared/models/rule-chain.models'; | ||
33 | -import { RuleChainService } from '@core/http/rule-chain.service'; | ||
34 | -import { RuleChainComponent } from '@modules/home/pages/rulechain/rulechain.component'; | ||
35 | -import { DialogService } from '@core/services/dialog.service'; | ||
36 | -import { RuleChainTabsComponent } from '@home/pages/rulechain/rulechain-tabs.component'; | ||
37 | -import { ImportExportService } from '@home/components/import-export/import-export.service'; | ||
38 | -import { ItemBufferService } from '@core/services/item-buffer.service'; | ||
39 | -import { EdgeService } from "@core/http/edge.service"; | ||
40 | -import {map, mergeMap} from "rxjs/operators"; | ||
41 | -import { forkJoin, Observable } from "rxjs"; | 30 | +import {TranslateService} from '@ngx-translate/core'; |
31 | +import {DatePipe} from '@angular/common'; | ||
32 | +import {EntityType, entityTypeResources, entityTypeTranslations} from '@shared/models/entity-type.models'; | ||
33 | +import {EntityAction} from '@home/models/entity/entity-component.models'; | ||
34 | +import {RuleChain, ruleChainType} from '@shared/models/rule-chain.models'; | ||
35 | +import {RuleChainService} from '@core/http/rule-chain.service'; | ||
36 | +import {RuleChainComponent} from '@modules/home/pages/rulechain/rulechain.component'; | ||
37 | +import {DialogService} from '@core/services/dialog.service'; | ||
38 | +import {RuleChainTabsComponent} from '@home/pages/rulechain/rulechain-tabs.component'; | ||
39 | +import {ImportExportService} from '@home/components/import-export/import-export.service'; | ||
40 | +import {ItemBufferService} from '@core/services/item-buffer.service'; | ||
41 | +import {EdgeService} from "@core/http/edge.service"; | ||
42 | +import {forkJoin, Observable} from "rxjs"; | ||
42 | import { | 43 | import { |
43 | AddEntitiesToEdgeDialogComponent, | 44 | AddEntitiesToEdgeDialogComponent, |
44 | AddEntitiesToEdgeDialogData | 45 | AddEntitiesToEdgeDialogData |
45 | } from "@home/dialogs/add-entities-to-edge-dialog.component"; | 46 | } from "@home/dialogs/add-entities-to-edge-dialog.component"; |
46 | -import { MatDialog } from "@angular/material/dialog"; | ||
47 | -import { isDefined, isUndefined } from "@core/utils"; | ||
48 | -import { PageLink } from "@shared/models/page/page-link"; | ||
49 | -import { Edge } from "@shared/models/edge.models"; | 47 | +import {MatDialog} from "@angular/material/dialog"; |
48 | +import {isUndefined} from "@core/utils"; | ||
49 | +import {PageLink} from "@shared/models/page/page-link"; | ||
50 | +import {Edge} from "@shared/models/edge.models"; | ||
50 | 51 | ||
51 | @Injectable() | 52 | @Injectable() |
52 | export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<RuleChain>> { | 53 | export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<RuleChain>> { |
@@ -267,7 +268,8 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< | @@ -267,7 +268,8 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< | ||
267 | if ($event) { | 268 | if ($event) { |
268 | $event.stopPropagation(); | 269 | $event.stopPropagation(); |
269 | } | 270 | } |
270 | - this.importExport.importRuleChain().subscribe((ruleChainImport) => { | 271 | + const expectedRuleChainType = this.config.componentsData.ruleChainScope === 'tenant' ? ruleChainType.core : ruleChainType.edge; |
272 | + this.importExport.importRuleChain(expectedRuleChainType).subscribe((ruleChainImport) => { | ||
271 | if (ruleChainImport) { | 273 | if (ruleChainImport) { |
272 | this.itembuffer.storeRuleChainImport(ruleChainImport); | 274 | this.itembuffer.storeRuleChainImport(ruleChainImport); |
273 | this.router.navigateByUrl(`${this.router.routerState.snapshot.url}/ruleChain/import`); | 275 | this.router.navigateByUrl(`${this.router.routerState.snapshot.url}/ruleChain/import`); |
@@ -488,17 +490,17 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< | @@ -488,17 +490,17 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig< | ||
488 | 490 | ||
489 | isNonRootRuleChain(ruleChain: RuleChain) { | 491 | isNonRootRuleChain(ruleChain: RuleChain) { |
490 | if (this.config.componentsData.ruleChainScope === 'edge') { | 492 | if (this.config.componentsData.ruleChainScope === 'edge') { |
491 | - return (isDefined(this.config.componentsData.edge.rootRuleChainId) && this.config.componentsData.edge.rootRuleChainId != null && this.config.componentsData.edge.rootRuleChainId.id != ruleChain.id.id); | 493 | + return this.config.componentsData.edge.rootRuleChainId && true && this.config.componentsData.edge.rootRuleChainId.id != ruleChain.id.id; |
492 | } | 494 | } |
493 | - return (isDefined(ruleChain)) && !ruleChain.root; | 495 | + return !ruleChain.root; |
494 | } | 496 | } |
495 | 497 | ||
496 | isDefaultEdgeRuleChain(ruleChain) { | 498 | isDefaultEdgeRuleChain(ruleChain) { |
497 | - return (isDefined(ruleChain)) && !ruleChain.root && this.config.componentsData.defaultEdgeRuleChainIds.includes(ruleChain.id.id); | 499 | + return !ruleChain.root && this.config.componentsData.defaultEdgeRuleChainIds.includes(ruleChain.id.id); |
498 | } | 500 | } |
499 | 501 | ||
500 | isNonDefaultEdgeRuleChain(ruleChain) { | 502 | isNonDefaultEdgeRuleChain(ruleChain) { |
501 | - return (isDefined(ruleChain)) && !ruleChain.root && !this.config.componentsData.defaultEdgeRuleChainIds.includes(ruleChain.id.id); | 503 | + return !ruleChain.root && !this.config.componentsData.defaultEdgeRuleChainIds.includes(ruleChain.id.id); |
502 | } | 504 | } |
503 | 505 | ||
504 | fetchRuleChains(pageLink: PageLink) { | 506 | fetchRuleChains(pageLink: PageLink) { |