Browse Source

feat(solutions): use edge-aware page link for installed rule chains

Add CreatedRuleChainInfo extending CreatedEntityInfo that overrides
getEntityPageLink to produce /edgeManagement/ruleChains/<id> for EDGE
rule chains and /ruleChains/<id> otherwise. SolutionInstallContext now
registers rule chains with this type-aware info.
pull/15508/head
Igor Kulikov 3 months ago
parent
commit
b46f29f1d2
  1. 40
      application/src/main/java/org/thingsboard/server/service/solutions/data/CreatedRuleChainInfo.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/solutions/data/SolutionInstallContext.java

40
application/src/main/java/org/thingsboard/server/service/solutions/data/CreatedRuleChainInfo.java

@ -0,0 +1,40 @@
/**
* Copyright © 2016-2026 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.server.service.solutions.data;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.rule.RuleChainType;
import java.util.UUID;
@Data
@EqualsAndHashCode(callSuper = true)
public class CreatedRuleChainInfo extends CreatedEntityInfo {
private RuleChainType ruleChainType;
public CreatedRuleChainInfo(String name, RuleChainType ruleChainType, String owner) {
super(name, EntityType.RULE_CHAIN, owner);
this.ruleChainType = ruleChainType;
}
@Override
public String getEntityPageLink(UUID id) {
return ruleChainType == RuleChainType.EDGE ? "/edgeManagement/ruleChains/" + id : "/ruleChains/" + id;
}
}

2
application/src/main/java/org/thingsboard/server/service/solutions/data/SolutionInstallContext.java

@ -105,7 +105,7 @@ public class SolutionInstallContext {
public void register(String referenceId, RuleChain ruleChain) {
register(referenceId, ruleChain.getId());
createdEntities.put(ruleChain.getUuidId(), new CreatedEntityInfo(ruleChain.getName(), EntityType.RULE_CHAIN, "Tenant"));
createdEntities.put(ruleChain.getUuidId(), new CreatedRuleChainInfo(ruleChain.getName(), ruleChain.getType(), "Tenant"));
}
public void register(DeviceProfileDefinition definition, DeviceProfile deviceProfile) {

Loading…
Cancel
Save