diff --git a/ui/src/app/event/event-row-debug-rulenode.tpl.html b/ui/src/app/event/event-row-debug-rulenode.tpl.html
index ec00b39ef1..5b96bafd62 100644
--- a/ui/src/app/event/event-row-debug-rulenode.tpl.html
+++ b/ui/src/app/event/event-row-debug-rulenode.tpl.html
@@ -24,7 +24,7 @@
{{event.body.dataType}}
{{ 'action.view' | translate }}
diff --git a/ui/src/app/locale/locale.constant.js b/ui/src/app/locale/locale.constant.js
index 0a17e3993a..f616fec1a0 100644
--- a/ui/src/app/locale/locale.constant.js
+++ b/ui/src/app/locale/locale.constant.js
@@ -1187,6 +1187,7 @@ export default angular.module('thingsboard.locale', [])
"rulenode": {
"details": "Details",
"events": "Events",
+ "search": "Search nodes",
"add": "Add rule node",
"name": "Name",
"name-required": "Name is required.",
diff --git a/ui/src/app/rulechain/rulechain.controller.js b/ui/src/app/rulechain/rulechain.controller.js
index 83bca325ab..7de72c31bd 100644
--- a/ui/src/app/rulechain/rulechain.controller.js
+++ b/ui/src/app/rulechain/rulechain.controller.js
@@ -43,6 +43,9 @@ export function RuleChainController($stateParams, $scope, $compile, $q, $mdUtil,
vm.editingRuleNodeLink = null;
vm.isEditingRuleNodeLink = false;
+ vm.isLibraryOpen = true;
+ vm.ruleNodeSearch = '';
+
vm.ruleChain = ruleChain;
vm.ruleChainMetaData = ruleChainMetaData;
@@ -131,11 +134,11 @@ export function RuleChainController($stateParams, $scope, $compile, $q, $mdUtil,
}
vm.onEditRuleNodeClosed = function() {
- //vm.editingRuleNode = null;
+ vm.editingRuleNode = null;
};
vm.onEditRuleNodeLinkClosed = function() {
- //vm.editingRuleNodeLink = null;
+ vm.editingRuleNodeLink = null;
};
vm.saveRuleNode = function(theForm) {
diff --git a/ui/src/app/rulechain/rulechain.scss b/ui/src/app/rulechain/rulechain.scss
index c9b2ced8f5..38f785a4d2 100644
--- a/ui/src/app/rulechain/rulechain.scss
+++ b/ui/src/app/rulechain/rulechain.scss
@@ -18,13 +18,58 @@
.tb-fullscreen-button-style {
z-index: 1;
}
+ section.tb-header-buttons.tb-library-open {
+ pointer-events: none;
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ z-index: 1;
+ .md-button.tb-btn-open-library {
+ left: 0px;
+ top: 0px;
+ line-height: 36px;
+ width: 36px;
+ height: 36px;
+ margin: 4px 0 0 4px;
+ opacity: 0.5;
+ }
+ }
.tb-rulechain-library {
width: 250px;
min-width: 250px;
- overflow-y: auto;
- overflow-x: hidden;
-
+ z-index: 1;
+ md-toolbar {
+ min-height: 48px;
+ height: 48px;
+ .md-toolbar-tools>.md-button:last-child {
+ margin-right: 0px;
+ }
+ .md-toolbar-tools {
+ font-size: 14px;
+ padding: 0px 6px;
+ .md-button.md-icon-button {
+ margin: 0px;
+ &.tb-small {
+ height: 32px;
+ min-height: 32px;
+ line-height: 20px;
+ padding: 6px;
+ width: 32px;
+ md-icon {
+ line-height: 20px;
+ font-size: 20px;
+ height: 20px;
+ width: 20px;
+ min-height: 20px;
+ min-width: 20px;
+ }
+ }
+ }
+ }
+ }
.tb-rulechain-library-panel-group {
+ overflow-y: auto;
+ overflow-x: hidden;
.tb-panel-title {
-webkit-user-select: none;
-moz-user-select: none;
@@ -33,7 +78,7 @@
min-width: 180px;
}
.fc-canvas {
- background: none;
+ background: #f9f9f9;
}
md-icon.md-expansion-panel-icon {
margin-right: 0px;
@@ -55,6 +100,7 @@
}
}
.tb-rulechain-graph {
+ z-index: 0;
overflow: auto;
}
}
diff --git a/ui/src/app/rulechain/rulechain.tpl.html b/ui/src/app/rulechain/rulechain.tpl.html
index b25447e175..ddc1a90b9d 100644
--- a/ui/src/app/rulechain/rulechain.tpl.html
+++ b/ui/src/app/rulechain/rulechain.tpl.html
@@ -22,8 +22,54 @@
ng-keyup="vm.keyUp($event)">
-
-
+
+
+
+
+
+
@@ -49,7 +95,7 @@
-
+