diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbClearAlarmNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbClearAlarmNode.java index ed54c624f4..f2523c3781 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbClearAlarmNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbClearAlarmNode.java @@ -39,9 +39,9 @@ import org.thingsboard.server.common.msg.TbMsg; nodeDetails = "Details - JS function that creates JSON object based on incoming message. This object will be added into Alarm.details field.\n" + "Node output:\n" + - "If alarm was not cleared, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'matadata' will contains 'isClearedAlarm' property " + - "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;" + - "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;", + "If alarm was not cleared, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'matadata' will contains 'isClearedAlarm' property. " + + "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;. " + + "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbActionNodeClearAlarmConfig", icon = "notifications_off" diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java index dcf90684b5..a81b744844 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbCreateAlarmNode.java @@ -41,9 +41,9 @@ import org.thingsboard.server.common.msg.TbMsg; nodeDetails = "Details - JS function that creates JSON object based on incoming message. This object will be added into Alarm.details field.\n" + "Node output:\n" + - "If alarm was not created, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'matadata' will contains one of those properties 'isNewAlarm/isExistingAlarm' " + - "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;" + - "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;", + "If alarm was not created, original message is returned. Otherwise new Message returned with type 'ALARM', Alarm object in 'msg' property and 'matadata' will contains one of those properties 'isNewAlarm/isExistingAlarm'. " + + "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;. " + + "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbActionNodeCreateAlarmConfig", icon = "notifications_active" diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbLogNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbLogNode.java index 895862e0b1..33ac5eda25 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbLogNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/action/TbLogNode.java @@ -31,8 +31,8 @@ import static org.thingsboard.rule.engine.api.TbRelationTypes.SUCCESS; configClazz = TbLogNodeConfiguration.class, nodeDescription = "Log incoming messages using JS script for transformation Message into String", nodeDetails = "Transform incoming Message with configured JS function to String and log final value into Thingsboard log file. " + - "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;" + - "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;", + "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;. " + + "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbActionNodeLogConfig", icon = "menu" diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/debug/TbMsgGeneratorNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/debug/TbMsgGeneratorNode.java index faea63a778..2bd770b07f 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/debug/TbMsgGeneratorNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/debug/TbMsgGeneratorNode.java @@ -38,7 +38,7 @@ import static org.thingsboard.rule.engine.api.TbRelationTypes.SUCCESS; name = "generator", configClazz = TbMsgGeneratorNodeConfiguration.class, nodeDescription = "Periodically generates messages", - nodeDetails = "Generates messages with configurable period. Javascript function used fore message generation.", + nodeDetails = "Generates messages with configurable period. Javascript function used for message generation.", inEnabled = false, uiResources = {"static/rulenode/rulenode-core-config.js", "static/rulenode/rulenode-core-config.css"}, configDirective = "tbActionNodeGeneratorConfig", diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbMsgToEmailNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbMsgToEmailNode.java index 62bbbf93d4..5da4f8c493 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbMsgToEmailNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbMsgToEmailNode.java @@ -35,9 +35,9 @@ import static org.thingsboard.rule.engine.mail.TbSendEmailNode.SEND_EMAIL_TYPE; type = ComponentType.TRANSFORMATION, name = "to email", configClazz = TbMsgToEmailNodeConfiguration.class, - nodeDescription = "Change Message Originator To Tenant/Customer/Related Entity", - nodeDetails = "Related Entity found using configured relation direction and Relation Type. " + - "If multiple Related Entities are found, only first Entity is used as new Originator, other entities are discarded. ", + nodeDescription = "Transforms message to email message", + nodeDetails = "Transforms message to email message by populating email fields using values derived from message metadata. " + + "Set 'SEND_EMAIL' output message type.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbTransformationNodeToEmailConfig", icon = "email" diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbSendEmailNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbSendEmailNode.java index c31f912490..e6c8ca0073 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbSendEmailNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/mail/TbSendEmailNode.java @@ -37,10 +37,9 @@ import static org.thingsboard.rule.engine.api.TbRelationTypes.SUCCESS; type = ComponentType.EXTERNAL, name = "send email", configClazz = TbSendEmailNodeConfiguration.class, - nodeDescription = "Log incoming messages using JS script for transformation Message into String", - nodeDetails = "Transform incoming Message with configured JS condition to String and log final value. " + - "Message payload can be accessed via msg property. For example 'temperature = ' + msg.temperature ;" + - "Message metadata can be accessed via metadata property. For example 'name = ' + metadata.customerName;", + nodeDescription = "Sends email message via SMTP server", + nodeDetails = "Expects messages with 'SEND_EMAIL' message type, usually processed by 'to email' node. " + + "Will send email message via configured SMTP server.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbActionNodeSendEmailConfig", icon = "send" diff --git a/ui/src/app/help/help-links.constant.js b/ui/src/app/help/help-links.constant.js index 9b1f84f5d0..f22328abfe 100644 --- a/ui/src/app/help/help-links.constant.js +++ b/ui/src/app/help/help-links.constant.js @@ -13,36 +13,36 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -var pluginClazzHelpLinkMap = { - 'org.thingsboard.server.extensions.core.plugin.messaging.DeviceMessagingPlugin': 'pluginDeviceMessaging', - 'org.thingsboard.server.extensions.core.plugin.telemetry.TelemetryStoragePlugin': 'pluginTelemetryStorage', - 'org.thingsboard.server.extensions.core.plugin.rpc.RpcPlugin': 'pluginRpcPlugin', - 'org.thingsboard.server.extensions.core.plugin.mail.MailPlugin': 'pluginMailPlugin', - 'org.thingsboard.server.extensions.rest.plugin.RestApiCallPlugin': 'pluginRestApiCallPlugin', - 'org.thingsboard.server.extensions.core.plugin.time.TimePlugin': 'pluginTimePlugin', - 'org.thingsboard.server.extensions.kafka.plugin.KafkaPlugin': 'pluginKafkaPlugin', - 'org.thingsboard.server.extensions.rabbitmq.plugin.RabbitMqPlugin': 'pluginRabbitMqPlugin' -}; - -var filterClazzHelpLinkMap = { - 'org.thingsboard.server.extensions.core.filter.MsgTypeFilter': 'filterMsgType', - 'org.thingsboard.server.extensions.core.filter.DeviceTelemetryFilter': 'filterDeviceTelemetry', - 'org.thingsboard.server.extensions.core.filter.MethodNameFilter': 'filterMethodName', - 'org.thingsboard.server.extensions.core.filter.DeviceAttributesFilter': 'filterDeviceAttributes' -}; - -var processorClazzHelpLinkMap = { - 'org.thingsboard.server.extensions.core.processor.AlarmDeduplicationProcessor': 'processorAlarmDeduplication' -}; - -var pluginActionsClazzHelpLinkMap = { - 'org.thingsboard.server.extensions.core.action.rpc.RpcPluginAction': 'pluginActionRpc', - 'org.thingsboard.server.extensions.core.action.mail.SendMailAction': 'pluginActionSendMail', - 'org.thingsboard.server.extensions.core.action.telemetry.TelemetryPluginAction': 'pluginActionTelemetry', - 'org.thingsboard.server.extensions.kafka.action.KafkaPluginAction': 'pluginActionKafka', - 'org.thingsboard.server.extensions.rabbitmq.action.RabbitMqPluginAction': 'pluginActionRabbitMq', - 'org.thingsboard.server.extensions.rest.action.RestApiCallPluginAction': 'pluginActionRestApiCall' +var ruleNodeClazzHelpLinkMap = { + 'org.thingsboard.rule.engine.filter.TbJsFilterNode': 'ruleNodeJsFilter', + 'org.thingsboard.rule.engine.filter.TbJsSwitchNode': 'ruleNodeJsSwitch', + 'org.thingsboard.rule.engine.filter.TbMsgTypeFilterNode': 'ruleNodeMessageTypeFilter', + 'org.thingsboard.rule.engine.filter.TbMsgTypeSwitchNode': 'ruleNodeMessageTypeSwitch', + 'org.thingsboard.rule.engine.metadata.TbGetAttributesNode': 'ruleNodeOriginatorAttributes', + 'org.thingsboard.rule.engine.metadata.TbGetCustomerAttributeNode': 'ruleNodeCustomerAttributes', + 'org.thingsboard.rule.engine.metadata.TbGetDeviceAttrNode': 'ruleNodeDeviceAttributes', + 'org.thingsboard.rule.engine.metadata.TbGetRelatedAttributeNode': 'ruleNodeRelatedAttributes', + 'org.thingsboard.rule.engine.metadata.TbGetTenantAttributeNode': 'ruleNodeTenantAttributes', + 'org.thingsboard.rule.engine.transform.TbChangeOriginatorNode': 'ruleNodeChangeOriginator', + 'org.thingsboard.rule.engine.transform.TbTransformMsgNode': 'ruleNodeTransformMsg', + 'org.thingsboard.rule.engine.mail.TbMsgToEmailNode': 'ruleNodeMsgToEmail', + 'org.thingsboard.rule.engine.action.TbClearAlarmNode': 'ruleNodeClearAlarm', + 'org.thingsboard.rule.engine.action.TbCreateAlarmNode': 'ruleNodeCrateAlarm', + 'org.thingsboard.rule.engine.debug.TbMsgGeneratorNode': 'ruleNodeMsgGenerator', + 'org.thingsboard.rule.engine.action.TbLogNode': 'ruleNodeLog', + 'org.thingsboard.rule.engine.rpc.TbSendRPCReplyNode': 'ruleNodeRpcCallReply', + 'org.thingsboard.rule.engine.rpc.TbSendRPCRequestNode': 'ruleNodeRpcCallRequest', + 'org.thingsboard.rule.engine.telemetry.TbMsgAttributesNode': 'ruleNodeSaveAttributes', + 'org.thingsboard.rule.engine.telemetry.TbMsgTimeseriesNode': 'ruleNodeSaveTimeseries', + 'tb.internal.RuleChain': 'ruleNodeRuleChain', + 'org.thingsboard.rule.engine.aws.sns.TbSnsNode': 'ruleNodeAwsSns', + 'org.thingsboard.rule.engine.aws.sqs.TbSqsNode': 'ruleNodeAwsSqs', + 'org.thingsboard.rule.engine.kafka.TbKafkaNode': 'ruleNodeKafka', + 'org.thingsboard.rule.engine.mqtt.TbMqttNode': 'ruleNodeMqtt', + 'org.thingsboard.rule.engine.rabbitmq.TbRabbitMqNode': 'ruleNodeRabbitMq', + 'org.thingsboard.rule.engine.rest.TbRestApiCallNode': 'ruleNodeRestApiCall', + 'org.thingsboard.rule.engine.mail.TbSendEmailNode': 'ruleNodeSendEmail' }; var helpBaseUrl = "https://thingsboard.io"; @@ -52,30 +52,36 @@ export default angular.module('thingsboard.help', []) { linksMap: { outgoingMailSettings: helpBaseUrl + "/docs/user-guide/ui/mail-settings", - plugins: helpBaseUrl + "/docs/user-guide/rule-engine/#plugins", - pluginDeviceMessaging: helpBaseUrl + "/docs/reference/plugins/messaging/", - pluginTelemetryStorage: helpBaseUrl + "/docs/reference/plugins/telemetry/", - pluginRpcPlugin: helpBaseUrl + "/docs/reference/plugins/rpc/", - pluginMailPlugin: helpBaseUrl + "/docs/reference/plugins/mail/", - pluginRestApiCallPlugin: helpBaseUrl + "/docs/reference/plugins/rest/", - pluginTimePlugin: helpBaseUrl + "/docs/reference/plugins/time/", - pluginKafkaPlugin: helpBaseUrl + "/docs/reference/plugins/kafka/", - pluginRabbitMqPlugin: helpBaseUrl + "/docs/reference/plugins/rabbitmq/", - rules: helpBaseUrl + "/docs/user-guide/rule-engine/#rules", - filters: helpBaseUrl + "/docs/user-guide/rule-engine/#filters", - filterMsgType: helpBaseUrl + "/docs/reference/filters/message-type-filter", - filterDeviceTelemetry: helpBaseUrl + "/docs/reference/filters/device-telemetry-filter", - filterMethodName: helpBaseUrl + "/docs/reference/filters/method-name-filter/", - filterDeviceAttributes: helpBaseUrl + "/docs/reference/filters/device-attributes-filter", - processors: helpBaseUrl + "/docs/user-guide/rule-engine/#processors", - processorAlarmDeduplication: "http://thingsboard.io/docs/#q=processorAlarmDeduplication", - pluginActions: helpBaseUrl + "/docs/user-guide/rule-engine/#actions", - pluginActionRpc: helpBaseUrl + "/docs/reference/actions/rpc-plugin-action", - pluginActionSendMail: helpBaseUrl + "/docs/reference/actions/send-mail-action", - pluginActionTelemetry: helpBaseUrl + "/docs/reference/actions/telemetry-plugin-action/", - pluginActionKafka: helpBaseUrl + "/docs/reference/actions/kafka-plugin-action", - pluginActionRabbitMq: helpBaseUrl + "/docs/reference/actions/rabbitmq-plugin-action", - pluginActionRestApiCall: helpBaseUrl + "/docs/reference/actions/rest-api-call-plugin-action", + ruleEngine: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/overview/", + ruleNodeJsFilter: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/filter-nodes/#script-filter-node", + ruleNodeJsSwitch: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/filter-nodes/#switch-node", + ruleNodeMessageTypeFilter: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/filter-nodes/#message-type-filter-node", + ruleNodeMessageTypeSwitch: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/filter-nodes/#message-type-switch-node", + ruleNodeOriginatorAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/enrichment-nodes/#originator-attributes", + ruleNodeCustomerAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/enrichment-nodes/#customer-attributes", + ruleNodeDeviceAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/enrichment-nodes/#device-attributes", + ruleNodeRelatedAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/enrichment-nodes/#related-attributes", + ruleNodeTenantAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/enrichment-nodes/#tenant-attributes", + ruleNodeChangeOriginator: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/transformation-nodes/#change-originator", + ruleNodeTransformMsg: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/transformation-nodes/#script-transformation-node", + ruleNodeMsgToEmail: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/transformation-nodes/#to-email-node", + ruleNodeClearAlarm: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#clear-alarm-node", + ruleNodeCrateAlarm: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#create-alarm-node", + ruleNodeMsgGenerator: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#generator-node", + ruleNodeLog: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#log-node", + ruleNodeRpcCallReply: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#rpc-call-reply-node", + ruleNodeRpcCallRequest: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#rpc-call-request-node", + ruleNodeSaveAttributes: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#save-attributes-node", + ruleNodeSaveTimeseries: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/action-nodes/#save-timeseries-node", + ruleNodeRuleChain: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/rule-chains/", + ruleNodeAwsSns: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#aws-sns-node", + ruleNodeAwsSqs: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#aws-sqs-node", + ruleNodeKafka: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#kafka-node", + ruleNodeMqtt: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#mqtt-node", + ruleNodeRabbitMq: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#rabbitmq-node", + ruleNodeRestApiCall: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#rest-api-call-node", + ruleNodeSendEmail: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/external-nodes/#send-email-node", + rulechains: helpBaseUrl + "/docs/user-guide/rule-engine-2-0/rule-chains/", tenants: helpBaseUrl + "/docs/user-guide/ui/tenants", customers: helpBaseUrl + "/docs/user-guide/ui/customers", assets: helpBaseUrl + "/docs/user-guide/ui/assets", @@ -90,38 +96,11 @@ export default angular.module('thingsboard.help', []) widgetsConfigAlarm: helpBaseUrl + "/docs/user-guide/ui/dashboards#alarm", widgetsConfigStatic: helpBaseUrl + "/docs/user-guide/ui/dashboards#static", }, - getPluginLink: function(plugin) { - var link = 'plugins'; - if (plugin && plugin.clazz) { - if (pluginClazzHelpLinkMap[plugin.clazz]) { - link = pluginClazzHelpLinkMap[plugin.clazz]; - } - } - return link; - }, - getFilterLink: function(filter) { - var link = 'filters'; - if (filter && filter.clazz) { - if (filterClazzHelpLinkMap[filter.clazz]) { - link = filterClazzHelpLinkMap[filter.clazz]; - } - } - return link; - }, - getProcessorLink: function(processor) { - var link = 'processors'; - if (processor && processor.clazz) { - if (processorClazzHelpLinkMap[processor.clazz]) { - link = processorClazzHelpLinkMap[processor.clazz]; - } - } - return link; - }, - getPluginActionLink: function(pluginAction) { - var link = 'pluginActions'; - if (pluginAction && pluginAction.clazz) { - if (pluginActionsClazzHelpLinkMap[pluginAction.clazz]) { - link = pluginActionsClazzHelpLinkMap[pluginAction.clazz]; + getRuleNodeLink: function(ruleNode) { + var link = 'ruleEngine'; + if (ruleNode && ruleNode.component && ruleNode.component.clazz) { + if (ruleNodeClazzHelpLinkMap[ruleNode.component.clazz]) { + link = ruleNodeClazzHelpLinkMap[ruleNode.component.clazz]; } } return link; diff --git a/ui/src/app/rulechain/add-link.tpl.html b/ui/src/app/rulechain/add-link.tpl.html index 42c07773bb..0a21104e76 100644 --- a/ui/src/app/rulechain/add-link.tpl.html +++ b/ui/src/app/rulechain/add-link.tpl.html @@ -15,7 +15,7 @@ limitations under the License. --> - +
diff --git a/ui/src/app/rulechain/add-rulenode.tpl.html b/ui/src/app/rulechain/add-rulenode.tpl.html index c36b43bc0f..c572915924 100644 --- a/ui/src/app/rulechain/add-rulenode.tpl.html +++ b/ui/src/app/rulechain/add-rulenode.tpl.html @@ -15,7 +15,7 @@ limitations under the License. --> - +
diff --git a/ui/src/app/rulechain/rulechain.controller.js b/ui/src/app/rulechain/rulechain.controller.js index d15cf7467a..7050ec53eb 100644 --- a/ui/src/app/rulechain/rulechain.controller.js +++ b/ui/src/app/rulechain/rulechain.controller.js @@ -30,7 +30,7 @@ import addRuleNodeLinkTemplate from './add-link.tpl.html'; /*@ngInject*/ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $timeout, $mdExpansionPanel, $window, $document, $mdDialog, $filter, $translate, hotkeys, types, ruleChainService, itembuffer, Modelfactory, flowchartConstants, - ruleChain, ruleChainMetaData, ruleNodeComponents) { + ruleChain, ruleChainMetaData, ruleNodeComponents, helpLinks) { var vm = this; @@ -113,6 +113,8 @@ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $time vm.openRuleChainContextMenu = openRuleChainContextMenu; + vm.helpLinkIdForRuleNodeType = helpLinkIdForRuleNodeType; + initHotKeys(); function openRuleChainContextMenu($event, $mdOpenMousepointMenu) { @@ -473,6 +475,10 @@ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $time vm.destroyTooltips = destroyTooltips; + function helpLinkIdForRuleNodeType() { + return helpLinks.getRuleNodeLink(vm.editingRuleNode); + } + function destroyTooltips() { if (vm.tooltipTimeout) { $timeout.cancel(vm.tooltipTimeout); diff --git a/ui/src/app/rulechain/rulechain.tpl.html b/ui/src/app/rulechain/rulechain.tpl.html index 4ba967d687..a84df900a4 100644 --- a/ui/src/app/rulechain/rulechain.tpl.html +++ b/ui/src/app/rulechain/rulechain.tpl.html @@ -202,7 +202,7 @@ on-toggle-details-edit-mode="vm.onRevertRuleNodeLinkEdit(vm.ruleNodeLinkForm)" on-apply-details="vm.saveRuleNodeLink(vm.ruleNodeLinkForm)" the-form="vm.ruleNodeLinkForm"> - +