thingsboard-memoizeit
Changes
ui/src/app/locale/locale.constant.js 1(+1 -0)
ui/src/app/rulechain/rulechain.scss 54(+50 -4)
ui/src/app/rulechain/rulechain.tpl.html 52(+49 -3)
Details
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 ec00b39..5b96baf 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 @@
<div class="tb-cell" flex="20">{{event.body.dataType}}</div>
<div class="tb-cell" flex="20">
<md-button ng-if="event.body.data" class="md-icon-button md-primary"
- ng-click="showContent($event, event.body.data, 'event.data', event.body.msgType)"
+ ng-click="showContent($event, event.body.data, 'event.data', event.body.dataType)"
aria-label="{{ 'action.view' | translate }}">
<md-tooltip md-direction="top">
{{ 'action.view' | translate }}
ui/src/app/locale/locale.constant.js 1(+1 -0)
diff --git a/ui/src/app/locale/locale.constant.js b/ui/src/app/locale/locale.constant.js
index 0a17e39..f616fec 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 83bca32..7de72c3 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) {
ui/src/app/rulechain/rulechain.scss 54(+50 -4)
diff --git a/ui/src/app/rulechain/rulechain.scss b/ui/src/app/rulechain/rulechain.scss
index c9b2ced..38f785a 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;
}
}
ui/src/app/rulechain/rulechain.tpl.html 52(+49 -3)
diff --git a/ui/src/app/rulechain/rulechain.tpl.html b/ui/src/app/rulechain/rulechain.tpl.html
index b25447e..ddc1a90 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)">
<section class="tb-rulechain-container" flex layout="column">
<div class="tb-rulechain-layout" flex layout="row">
- <div class="tb-rulechain-library">
- <md-expansion-panel-group ng-if="vm.ruleChainLibraryLoaded" class="tb-rulechain-library-panel-group" md-component-id="libraryPanelGroup" auto-expand="true" multiple>
+ <section layout="row" layout-wrap
+ class="tb-header-buttons md-fab tb-library-open">
+ <md-button ng-show="!vm.isLibraryOpen"
+ class="tb-btn-header tb-btn-open-library md-primary md-fab md-fab-top-left"
+ aria-label="{{ 'action.apply' | translate }}"
+ ng-click="vm.isLibraryOpen = true">
+ <md-tooltip md-direction="top">
+ {{ 'action.apply-changes' | translate }}
+ </md-tooltip>
+ <ng-md-icon icon="menu"></ng-md-icon>
+ </md-button>
+ </section>
+ <md-sidenav class="tb-rulechain-library md-sidenav-left md-whiteframe-4dp"
+ md-disable-backdrop
+ md-is-locked-open="vm.isLibraryOpen"
+ md-is-open="vm.isLibraryOpen"
+ md-component-id="rulechain-library-sidenav" layout="column">
+ <md-toolbar>
+ <div class="md-toolbar-tools">
+ <md-button class="md-icon-button tb-small" aria-label="{{ 'action.search' | translate }}">
+ <md-icon aria-label="{{ 'action.search' | translate }}" class="material-icons">search</md-icon>
+ <md-tooltip md-direction="top">
+ {{'rulenode.search' | translate}}
+ </md-tooltip>
+ </md-button>
+ <div layout="row" md-theme="tb-dark" flex>
+ <md-input-container flex>
+ <label> </label>
+ <input ng-model="vm.ruleNodeSearch" placeholder="{{'rulenode.search' | translate}}"/>
+ </md-input-container>
+ </div>
+ <md-button class="md-icon-button tb-small" aria-label="Close" ng-click="vm.ruleNodeSearch = ''">
+ <md-icon aria-label="Close" class="material-icons">close</md-icon>
+ <md-tooltip md-direction="top">
+ {{ 'action.close' | translate }}
+ </md-tooltip>
+ </md-button>
+ <md-button class="md-icon-button tb-small" aria-label="Close" ng-click="vm.isLibraryOpen = false">
+ <md-icon aria-label="Close" class="material-icons">chevron_left</md-icon>
+ <md-tooltip md-direction="top">
+ {{ 'action.close' | translate }}
+ </md-tooltip>
+ </md-button>
+ </div>
+ </md-toolbar>
+ <md-expansion-panel-group flex
+ ng-if="vm.ruleChainLibraryLoaded" class="tb-rulechain-library-panel-group"
+ md-component-id="libraryPanelGroup" auto-expand="true" multiple>
<md-expansion-panel md-component-id="{{typeId}}" id="{{typeId}}" ng-repeat="(typeId, typeModel) in vm.ruleNodeTypesModel">
<md-expansion-panel-collapsed ng-mouseenter="vm.typeHeaderMouseEnter($event, typeId)"
ng-mouseleave="vm.destroyTooltips()">
@@ -49,7 +95,7 @@
</md-expansion-panel-expanded>
</md-expansion-panel>
</md-expansion-panel-group>
- </div>
+ </md-sidenav>
<div flex class="tb-rulechain-graph">
<fc-canvas id="tb-rulchain-canvas"
model="vm.ruleChainModel"