Edge Dashboard and RuleChain partially fixed. Not working: get edge dashboards; default edges; assing edge rule chains to edge
This commit is contained in:
parent
bc28406594
commit
95babbe246
@ -163,7 +163,8 @@ export class DashboardService {
|
||||
defaultHttpOptionsFromConfig(config))
|
||||
}
|
||||
|
||||
public assignDashboardToEdge(edgeId: string, dashboardId: string, config?: RequestConfig): Observable<Dashboard> {
|
||||
public assignDashboardToEdge(edgeId: string, dashboardId: string,
|
||||
config?: RequestConfig): Observable<Dashboard> {
|
||||
return this.http.post<Dashboard>(`/api/edge/${edgeId}/dashboard/${dashboardId}`,
|
||||
null, defaultHttpOptionsFromConfig(config));
|
||||
}
|
||||
|
||||
@ -318,8 +318,8 @@ export class RuleChainService {
|
||||
return this.http.delete<RuleChain>(`/api/ruleChain/${ruleChainId}/defaultEdge`, defaultHttpOptionsFromConfig(config));
|
||||
}
|
||||
|
||||
public getDefaultEdgeRuleChains(pageLink: PageLink, config?: RequestConfig): Observable<PageData<RuleChain>> {
|
||||
return this.http.get<PageData<RuleChain>>(`/api/ruleChain/defaultEdgeRuleChains${pageLink.toQuery()}`,
|
||||
public getDefaultEdgeRuleChains(config?: RequestConfig): Observable<PageData<RuleChain>> {
|
||||
return this.http.get<PageData<RuleChain>>(`/api/ruleChain/defaultEdgeRuleChains`,
|
||||
defaultHttpOptionsFromConfig(config));
|
||||
}
|
||||
|
||||
|
||||
@ -34,8 +34,7 @@
|
||||
<tb-entity-list
|
||||
formControlName="entityIds"
|
||||
required
|
||||
[entityType]="entityType"
|
||||
>
|
||||
[entityType]="entityType">
|
||||
</tb-entity-list>
|
||||
</fieldset>
|
||||
</div>
|
||||
@ -50,7 +49,7 @@
|
||||
style="margin-right: 20px;"
|
||||
type="button"
|
||||
[disabled]="(isLoading$ | async)"
|
||||
(click)="cancel()" cdkFocusInitial>
|
||||
(click)="cancel()">
|
||||
{{ 'action.cancel' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -74,7 +74,6 @@ import {
|
||||
export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<DashboardInfo | Dashboard>> {
|
||||
|
||||
private readonly config: EntityTableConfig<DashboardInfo | Dashboard> = new EntityTableConfig<DashboardInfo | Dashboard>();
|
||||
private edgeId: string;
|
||||
|
||||
constructor(private store: Store<AppState>,
|
||||
private dashboardService: DashboardService,
|
||||
@ -111,9 +110,9 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
const routeParams = route.params;
|
||||
this.config.componentsData = {
|
||||
dashboardScope: route.data.dashboardsType,
|
||||
customerId: routeParams.customerId
|
||||
customerId: routeParams.customerId,
|
||||
edgeId: routeParams.edgeId
|
||||
};
|
||||
this.edgeId = routeParams.edgeId;
|
||||
return this.store.pipe(select(selectAuthUser), take(1)).pipe(
|
||||
tap((authUser) => {
|
||||
if (authUser.authority === Authority.CUSTOMER_USER) {
|
||||
@ -133,7 +132,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
this.config.tableTitle = parentCustomer.title + ': ' + this.translate.instant('dashboard.dashboards');
|
||||
}
|
||||
} else if (this.config.componentsData.dashboardScope === 'edge') {
|
||||
this.edgeService.getEdge(this.edgeId).pipe(map(edge =>
|
||||
this.edgeService.getEdge(this.config.componentsData.edgeId).pipe(map(edge =>
|
||||
this.config.tableTitle = edge.name + ': ' + this.translate.instant('dashboard.dashboards'))).subscribe();
|
||||
} else {
|
||||
this.config.tableTitle = this.translate.instant('dashboard.dashboards');
|
||||
@ -178,7 +177,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
this.config.deleteEntity = id => this.dashboardService.deleteDashboard(id.id);
|
||||
} else if (dashboardScope === 'edge') {
|
||||
this.config.entitiesFetchFunction = pageLink =>
|
||||
this.dashboardService.getEdgeDashboards(this.edgeId, pageLink, this.config.componentsData.dashboardsType);
|
||||
this.dashboardService.getEdgeDashboards(this.config.componentsData.edgeId, pageLink, this.config.componentsData.dashboardsType);
|
||||
} else {
|
||||
this.config.entitiesFetchFunction = pageLink =>
|
||||
this.dashboardService.getCustomerDashboards(this.config.componentsData.customerId, pageLink);
|
||||
@ -556,7 +555,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
disableClose: true,
|
||||
panelClass: ['tb-dialog', 'tb-fullscreen-dialog'],
|
||||
data: {
|
||||
edgeId: this.edgeId,
|
||||
edgeId: this.config.componentsData.edgeId,
|
||||
entityType: EntityType.DASHBOARD
|
||||
}
|
||||
}).afterClosed()
|
||||
@ -579,7 +578,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
true
|
||||
).subscribe((res) => {
|
||||
if (res) {
|
||||
this.dashboardService.unassignDashboardFromEdge(this.edgeId, dashboard.id.id).subscribe(
|
||||
this.dashboardService.unassignDashboardFromEdge(this.config.componentsData.edgeId, dashboard.id.id).subscribe(
|
||||
() => {
|
||||
this.config.table.updateData();
|
||||
}
|
||||
@ -604,7 +603,7 @@ export class DashboardsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
const tasks: Observable<any>[] = [];
|
||||
dashboards.forEach(
|
||||
(dashboard) => {
|
||||
tasks.push(this.dashboardService.unassignDashboardFromEdge(this.edgeId, dashboard.id.id));
|
||||
tasks.push(this.dashboardService.unassignDashboardFromEdge(this.config.componentsData.edgeId, dashboard.id.id));
|
||||
}
|
||||
);
|
||||
forkJoin(tasks).subscribe(
|
||||
|
||||
@ -29,7 +29,7 @@ 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 {RuleChain, RuleChainType, 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';
|
||||
@ -44,7 +44,8 @@ import {
|
||||
AddEntitiesToEdgeDialogData
|
||||
} from "@home/dialogs/add-entities-to-edge-dialog.component";
|
||||
import { MatDialog } from "@angular/material/dialog";
|
||||
import {isUndefined} from "@core/utils";
|
||||
import { isDefined, isUndefined } from "@core/utils";
|
||||
import { PageLink } from "@shared/models/page/page-link";
|
||||
|
||||
@Injectable()
|
||||
export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<RuleChain>> {
|
||||
@ -178,10 +179,10 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
configureEntityFunctions(ruleChainScope: string): void {
|
||||
if (ruleChainScope === 'tenant') {
|
||||
this.config.tableTitle = this.translate.instant('rulechain.core-rulechains');
|
||||
this.config.entitiesFetchFunction = pageLink => this.ruleChainService.getRuleChains(pageLink, ruleChainType.core);
|
||||
this.config.entitiesFetchFunction = pageLink => this.fetchRuleChains(pageLink, ruleChainType.core, ruleChainScope);
|
||||
} else if (ruleChainScope === 'edges') {
|
||||
this.config.tableTitle = this.translate.instant('rulechain.edge-rulechains');
|
||||
this.config.entitiesFetchFunction = pageLink => this.ruleChainService.getRuleChains(pageLink, ruleChainType.edge);
|
||||
this.config.entitiesFetchFunction = pageLink => this.fetchRuleChains(pageLink, ruleChainType.edge, ruleChainScope);
|
||||
} else if (ruleChainScope === 'edge') {
|
||||
if (this.edgeId) {
|
||||
this.edgeService.getEdge(this.edgeId)
|
||||
@ -235,10 +236,16 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
if (ruleChainScope === 'edges') {
|
||||
actions.push(
|
||||
{
|
||||
name: this.translate.instant('rulechain.make-default!!!'),
|
||||
icon: 'flag',
|
||||
name: this.translate.instant('rulechain.set-default-edge'),
|
||||
icon: 'bookmark_outline',
|
||||
isEnabled: () => true,
|
||||
onAction: ($event, entity) => this.setDefaultRootEdgeRuleChain($event, entity)
|
||||
onAction: ($event, entity) => this.setDefaultEdgeRuleChain($event, entity)
|
||||
},
|
||||
{
|
||||
name: this.translate.instant('rulechain.remove-default-edge'),
|
||||
icon: 'bookmark',
|
||||
isEnabled: () => true,
|
||||
onAction: ($event, entity) => this.removeDefaultEdgeRuleChain($event, entity)
|
||||
}
|
||||
)
|
||||
}
|
||||
@ -368,7 +375,8 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
if (res) {
|
||||
this.config.table.updateData();
|
||||
}
|
||||
});
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
unassignFromEdge($event: Event, ruleChain: RuleChain) {
|
||||
@ -421,4 +429,65 @@ export class RuleChainsTableConfigResolver implements Resolve<EntityTableConfig<
|
||||
);
|
||||
}
|
||||
|
||||
setDefaultEdgeRuleChain($event: Event, ruleChain: RuleChain) {
|
||||
if ($event) {
|
||||
$event.stopPropagation();
|
||||
}
|
||||
this.dialogService.confirm(
|
||||
this.translate.instant('rulechain.set-default-edge-title', {ruleChainName: ruleChain.name}),
|
||||
this.translate.instant('rulechain.set-default-edge-text'),
|
||||
this.translate.instant('action.no'),
|
||||
this.translate.instant('action.yes'),
|
||||
true
|
||||
).subscribe((res) => {
|
||||
if (res) {
|
||||
this.ruleChainService.addDefaultEdgeRuleChain(ruleChain.id.id).subscribe(
|
||||
() => {
|
||||
this.config.table.updateData();
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
removeDefaultEdgeRuleChain($event: Event, ruleChain: RuleChain) {
|
||||
if ($event) {
|
||||
$event.stopPropagation();
|
||||
}
|
||||
this.dialogService.confirm(
|
||||
this.translate.instant('rulechain.remove-default-edge-title', {ruleChainName: ruleChain.name}),
|
||||
this.translate.instant('rulechain.remove-default-edge-text'),
|
||||
this.translate.instant('action.no'),
|
||||
this.translate.instant('action.yes'),
|
||||
true
|
||||
).subscribe((res) => {
|
||||
if (res) {
|
||||
this.ruleChainService.removeDefaultEdgeRuleChain(ruleChain.id.id).subscribe(
|
||||
() => {
|
||||
this.config.table.updateData();
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
isRootRuleChain(ruleChain: RuleChain) {
|
||||
return (isDefined(ruleChain)) && !ruleChain.root && ruleChain.isDefault;
|
||||
}
|
||||
|
||||
isNonRootRuleChain(ruleChain: RuleChain) {
|
||||
return (isDefined(ruleChain)) && !ruleChain.root && !ruleChain.isDefault;
|
||||
}
|
||||
|
||||
fetchRuleChains(pageLink: PageLink, type: string, ruleChainScope: string) {
|
||||
if (ruleChainScope === 'tenant') {
|
||||
return this.ruleChainService.getRuleChains(pageLink, type);
|
||||
}
|
||||
else if (ruleChainScope === 'edges') {
|
||||
this.ruleChainService.getRuleChains(pageLink, type)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@ export interface RuleChain extends BaseData<RuleChainId> {
|
||||
type: string;
|
||||
configuration?: any;
|
||||
additionalInfo?: any;
|
||||
isDefault?: boolean;
|
||||
}
|
||||
|
||||
export interface RuleChainMetaData {
|
||||
|
||||
@ -1555,7 +1555,13 @@
|
||||
"debug-mode": "Debug mode",
|
||||
"search": "Search rule chains",
|
||||
"selected-rulechains": "{ count, plural, 1 {1 rule chain} other {# rule chains} } selected",
|
||||
"open-rulechain": "Open rule chain"
|
||||
"open-rulechain": "Open rule chain",
|
||||
"set-default-edge": "Make edge rule chain default",
|
||||
"set-default-edge-title": "Are you sure you want to make the edge rule chain '{{ruleChainName}}' default?",
|
||||
"set-default-edge-text": "After the confirmation the edge rule chain will be added to default list and assigned to newly created edge(s).",
|
||||
"remove-default-edge": "Remove edge rule chain from defaults",
|
||||
"remove-default-edge-title": "Are you sure you want to remove the edge rule chain '{{ruleChainName}}' from default list?",
|
||||
"remove-default-edge-text": "After the confirmation the edge rule chain will not be assigned for a newly created edges."
|
||||
},
|
||||
"rulenode": {
|
||||
"details": "Details",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user