Merge branch 'master' of github.com:thingsboard/thingsboard

This commit is contained in:
Andrii Shvaika 2020-08-06 15:55:44 +03:00
commit 21fa66c61f
6 changed files with 31 additions and 5 deletions

View File

@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit;
@Data @Data
@Slf4j @Slf4j
class TbHttpClient { public class TbHttpClient {
private static final String STATUS = "status"; private static final String STATUS = "status";
private static final String STATUS_CODE = "statusCode"; private static final String STATUS_CODE = "statusCode";
@ -162,7 +162,7 @@ class TbHttpClient {
} }
} }
void processMessage(TbContext ctx, TbMsg msg) { public void processMessage(TbContext ctx, TbMsg msg) {
String endpointUrl = TbNodeUtils.processPattern(config.getRestEndpointUrlPattern(), msg.getMetaData()); String endpointUrl = TbNodeUtils.processPattern(config.getRestEndpointUrlPattern(), msg.getMetaData());
HttpHeaders headers = prepareHeaders(msg.getMetaData()); HttpHeaders headers = prepareHeaders(msg.getMetaData());
HttpMethod method = HttpMethod.valueOf(config.getRequestMethod()); HttpMethod method = HttpMethod.valueOf(config.getRequestMethod());

View File

@ -46,7 +46,7 @@ import org.thingsboard.server.common.msg.TbMsg;
public class TbRestApiCallNode implements TbNode { public class TbRestApiCallNode implements TbNode {
private boolean useRedisQueueForMsgPersistence; private boolean useRedisQueueForMsgPersistence;
private TbHttpClient httpClient; protected TbHttpClient httpClient;
@Override @Override
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException { public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {

View File

@ -15,12 +15,14 @@
*/ */
package org.thingsboard.rule.engine.rest; package org.thingsboard.rule.engine.rest;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import org.thingsboard.rule.engine.api.NodeConfiguration; import org.thingsboard.rule.engine.api.NodeConfiguration;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
@JsonIgnoreProperties(ignoreUnknown = true)
@Data @Data
public class TbRestApiCallNodeConfiguration implements NodeConfiguration<TbRestApiCallNodeConfiguration> { public class TbRestApiCallNodeConfiguration implements NodeConfiguration<TbRestApiCallNodeConfiguration> {

View File

@ -107,6 +107,11 @@ export class DefaultStateControllerComponent extends StateControllerComponent im
} }
} }
public pushAndOpenState(states: Array<StateObject>, openRightLayout?: boolean): void {
const state = states[states.length - 1];
this.openState(state.id, state.params, openRightLayout);
}
public updateState(id: string, params?: StateParams, openRightLayout?: boolean): void { public updateState(id: string, params?: StateParams, openRightLayout?: boolean): void {
if (!id) { if (!id) {
id = this.getStateId(); id = this.getStateId();

View File

@ -17,7 +17,7 @@
import { Component, NgZone, OnDestroy, OnInit } from '@angular/core'; import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';
import { StateObject, StateParams } from '@core/api/widget-api.models'; import { StateObject, StateParams } from '@core/api/widget-api.models';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { Observable, of } from 'rxjs'; import { forkJoin, Observable, of } from 'rxjs';
import { StateControllerState } from './state-controller.models'; import { StateControllerState } from './state-controller.models';
import { StateControllerComponent } from './state-controller.component'; import { StateControllerComponent } from './state-controller.component';
import { StatesControllerService } from '@home/pages/dashboard/states/states-controller.service'; import { StatesControllerService } from '@home/pages/dashboard/states/states-controller.service';
@ -116,6 +116,23 @@ export class EntityStateControllerComponent extends StateControllerComponent imp
} }
} }
public pushAndOpenState(states: Array<StateObject>, openRightLayout?: boolean): void {
if (this.states) {
for (const state of states) {
if (!this.states[state.id]) {
return;
}
}
forkJoin(states.map(state => this.resolveEntity(state.params))).subscribe(
() => {
this.stateObject.push(...states);
this.selectedStateIndex = this.stateObject.length - 1;
this.gotoState(this.stateObject[this.stateObject.length - 1].id, true, openRightLayout);
}
);
}
}
public updateState(id: string, params?: StateParams, openRightLayout?: boolean): void { public updateState(id: string, params?: StateParams, openRightLayout?: boolean): void {
if (!id) { if (!id) {
id = this.getStateId(); id = this.getStateId();

View File

@ -22,7 +22,7 @@ import { NgZone, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
import { StatesControllerService } from '@home/pages/dashboard/states/states-controller.service'; import { StatesControllerService } from '@home/pages/dashboard/states/states-controller.service';
import { EntityId } from '@app/shared/models/id/entity-id'; import { EntityId } from '@app/shared/models/id/entity-id';
import { StateParams } from '@app/core/api/widget-api.models'; import { StateObject, StateParams } from '@app/core/api/widget-api.models';
export abstract class StateControllerComponent implements IStateControllerComponent, OnInit, OnDestroy { export abstract class StateControllerComponent implements IStateControllerComponent, OnInit, OnDestroy {
@ -178,6 +178,8 @@ export abstract class StateControllerComponent implements IStateControllerCompon
public abstract openState(id: string, params?: StateParams, openRightLayout?: boolean): void; public abstract openState(id: string, params?: StateParams, openRightLayout?: boolean): void;
public abstract pushAndOpenState(states: Array<StateObject>, openRightLayout?: boolean): void;
public abstract resetState(): void; public abstract resetState(): void;
public abstract updateState(id?: string, params?: StateParams, openRightLayout?: boolean): void; public abstract updateState(id?: string, params?: StateParams, openRightLayout?: boolean): void;