Commit 60bd2600cc86e7f8f3c3f20a242f6bb9a1a475c1

Authored by deaflynx
1 parent ef94f797

Edge events reverted

1 -/*  
2 - * Copyright © 2016-2020 The Thingsboard Authors  
3 - *  
4 - * Licensed under the Apache License, Version 2.0 (the "License");  
5 - * you may not use this file except in compliance with the License.  
6 - * You may obtain a copy of the License at  
7 - *  
8 - * http://www.apache.org/licenses/LICENSE-2.0  
9 - *  
10 - * Unless required by applicable law or agreed to in writing, software  
11 - * distributed under the License is distributed on an "AS IS" BASIS,  
12 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
13 - * See the License for the specific language governing permissions and  
14 - * limitations under the License.  
15 - */  
16 -/* eslint-disable import/no-unresolved, import/default */  
17 -  
18 -import eventErrorDialogTemplate from './event-content-dialog.tpl.html';  
19 -  
20 -import eventRowLcEventTemplate from './event-row-lc-event.tpl.html';  
21 -import eventRowStatsTemplate from './event-row-stats.tpl.html';  
22 -import eventRowErrorTemplate from './event-row-error.tpl.html';  
23 -import eventRowDebugRuleNodeTemplate from './event-row-debug-rulenode.tpl.html';  
24 -import eventRowEdgeEventTemplate from './event-row-edge-event.tpl.html';  
25 -  
26 -/* eslint-enable import/no-unresolved, import/default */  
27 -  
28 -/*@ngInject*/  
29 -export default function EventRowDirective($compile, $templateCache, $mdDialog, $document, $translate,  
30 - types, utils, toast, entityService, ruleChainService) {  
31 -  
32 - var linker = function (scope, element, attrs) {  
33 -  
34 - var getTemplate = function(eventType) {  
35 - var template = '';  
36 - switch(eventType) {  
37 - case types.eventType.lcEvent.value:  
38 - template = eventRowLcEventTemplate;  
39 - break;  
40 - case types.eventType.stats.value:  
41 - template = eventRowStatsTemplate;  
42 - break;  
43 - case types.eventType.error.value:  
44 - template = eventRowErrorTemplate;  
45 - break;  
46 - case types.debugEventType.debugRuleNode.value:  
47 - template = eventRowDebugRuleNodeTemplate;  
48 - break;  
49 - case types.debugEventType.debugRuleChain.value:  
50 - template = eventRowDebugRuleNodeTemplate;  
51 - break;  
52 - case types.eventType.edgeEvent.value:  
53 - template = eventRowEdgeEventTemplate;  
54 - break;  
55 - }  
56 - return $templateCache.get(template);  
57 - }  
58 -  
59 - scope.loadTemplate = function() {  
60 - element.html(getTemplate(attrs.eventType));  
61 - $compile(element.contents())(scope);  
62 - }  
63 -  
64 - attrs.$observe('eventType', function() {  
65 - scope.loadTemplate();  
66 - });  
67 -  
68 - scope.types = types;  
69 -  
70 - scope.event = attrs.event;  
71 -  
72 - scope.showContent = function($event, content, title, contentType) {  
73 - var onShowingCallback = {  
74 - onShowing: function(){}  
75 - }  
76 - if (!contentType) {  
77 - contentType = null;  
78 - }  
79 - var sortedContent;  
80 - try {  
81 - sortedContent = angular.toJson(utils.sortObjectKeys(angular.fromJson(content)));  
82 - }  
83 - catch(err) {  
84 - sortedContent = content;  
85 - }  
86 - $mdDialog.show({  
87 - controller: 'EventContentDialogController',  
88 - controllerAs: 'vm',  
89 - templateUrl: eventErrorDialogTemplate,  
90 - locals: {content: sortedContent, title: title, contentType: contentType, showingCallback: onShowingCallback},  
91 - parent: angular.element($document[0].body),  
92 - fullscreen: true,  
93 - targetEvent: $event,  
94 - multiple: true,  
95 - onShowing: function(scope, element) {  
96 - onShowingCallback.onShowing(scope, element);  
97 - }  
98 - });  
99 - }  
100 -  
101 - scope.showEdgeEntityContent = function($event, title, contentType) {  
102 - var onShowingCallback = {  
103 - onShowing: function(){}  
104 - }  
105 - if (!contentType) {  
106 - contentType = null;  
107 - }  
108 - var content = '';  
109 - switch(scope.event.type) {  
110 - case types.edgeEventType.relation:  
111 - case types.edgeEventType.whiteLabeling:  
112 - case types.edgeEventType.loginWhiteLabeling:  
113 - case types.edgeEventType.customTranslation:  
114 - content = angular.toJson(scope.event.body);  
115 - showDialog();  
116 - break;  
117 - case types.edgeEventType.ruleChainMetaData:  
118 - content = ruleChainService.getRuleChainMetaData(scope.event.entityId, {ignoreErrors: true}).then(  
119 - function success(info) {  
120 - showDialog();  
121 - return angular.toJson(info);  
122 - }, function fail() {  
123 - showError();  
124 - });  
125 - break;  
126 - default:  
127 - content = entityService.getEntity(scope.event.type, scope.event.entityId, {ignoreErrors: true}).then(  
128 - function success(info) {  
129 - showDialog();  
130 - return angular.toJson(info);  
131 - }, function fail() {  
132 - showError();  
133 - });  
134 - break;  
135 - }  
136 - function showDialog() {  
137 - $mdDialog.show({  
138 - controller: 'EventContentDialogController',  
139 - controllerAs: 'vm',  
140 - templateUrl: eventErrorDialogTemplate,  
141 - locals: {content: content, title: title, contentType: contentType, showingCallback: onShowingCallback},  
142 - parent: angular.element($document[0].body),  
143 - fullscreen: true,  
144 - targetEvent: $event,  
145 - multiple: true,  
146 - onShowing: function(scope, element) {  
147 - onShowingCallback.onShowing(scope, element);  
148 - }  
149 - });  
150 - }  
151 - function showError() {  
152 - toast.showError($translate.instant('edge.load-entity-error'));  
153 - }  
154 - }  
155 -  
156 - scope.checkEdgeEventType = function (edgeEventType) {  
157 - return !(edgeEventType === types.edgeEventType.widgetType ||  
158 - edgeEventType === types.edgeEventType.adminSettings ||  
159 - edgeEventType === types.edgeEventType.widgetsBundle );  
160 - }  
161 -  
162 - scope.checkTooltip = function($event) {  
163 - var el = $event.target;  
164 - var $el = angular.element(el);  
165 - if(el.offsetWidth < el.scrollWidth && !$el.attr('title')){  
166 - $el.attr('title', $el.text());  
167 - }  
168 - }  
169 -  
170 - $compile(element.contents())(scope);  
171 -  
172 - scope.updateStatus = function(eventCreatedTime) {  
173 - if (scope.queueStartTs) {  
174 - var status;  
175 - if (eventCreatedTime < scope.queueStartTs) {  
176 - status = $translate.instant('edge.success');  
177 - scope.isPending = false;  
178 - } else {  
179 - status = $translate.instant('edge.failed');  
180 - scope.isPending = true;  
181 - }  
182 - return status;  
183 - }  
184 - }  
185 - }  
186 -  
187 - return {  
188 - restrict: "A",  
189 - replace: false,  
190 - link: linker,  
191 - scope: false  
192 - };  
193 -} 1 +/*
  2 + * Copyright © 2016-2020 The Thingsboard Authors
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +/* eslint-disable import/no-unresolved, import/default */
  17 +
  18 +import eventErrorDialogTemplate from './event-content-dialog.tpl.html';
  19 +
  20 +import eventRowLcEventTemplate from './event-row-lc-event.tpl.html';
  21 +import eventRowStatsTemplate from './event-row-stats.tpl.html';
  22 +import eventRowErrorTemplate from './event-row-error.tpl.html';
  23 +import eventRowDebugRuleNodeTemplate from './event-row-debug-rulenode.tpl.html';
  24 +import eventRowEdgeEventTemplate from './event-row-edge-event.tpl.html';
  25 +
  26 +/* eslint-enable import/no-unresolved, import/default */
  27 +
  28 +/*@ngInject*/
  29 +export default function EventRowDirective($compile, $templateCache, $mdDialog, $document, $translate,
  30 + types, utils, toast, entityService, ruleChainService) {
  31 +
  32 + var linker = function (scope, element, attrs) {
  33 +
  34 + var getTemplate = function(eventType) {
  35 + var template = '';
  36 + switch(eventType) {
  37 + case types.eventType.lcEvent.value:
  38 + template = eventRowLcEventTemplate;
  39 + break;
  40 + case types.eventType.stats.value:
  41 + template = eventRowStatsTemplate;
  42 + break;
  43 + case types.eventType.error.value:
  44 + template = eventRowErrorTemplate;
  45 + break;
  46 + case types.debugEventType.debugRuleNode.value:
  47 + template = eventRowDebugRuleNodeTemplate;
  48 + break;
  49 + case types.debugEventType.debugRuleChain.value:
  50 + template = eventRowDebugRuleNodeTemplate;
  51 + break;
  52 + case types.eventType.edgeEvent.value:
  53 + template = eventRowEdgeEventTemplate;
  54 + break;
  55 + }
  56 + return $templateCache.get(template);
  57 + }
  58 +
  59 + scope.loadTemplate = function() {
  60 + element.html(getTemplate(attrs.eventType));
  61 + $compile(element.contents())(scope);
  62 + }
  63 +
  64 + attrs.$observe('eventType', function() {
  65 + scope.loadTemplate();
  66 + });
  67 +
  68 + scope.types = types;
  69 +
  70 + scope.event = attrs.event;
  71 +
  72 + scope.showContent = function($event, content, title, contentType) {
  73 + var onShowingCallback = {
  74 + onShowing: function(){}
  75 + }
  76 + if (!contentType) {
  77 + contentType = null;
  78 + }
  79 + var sortedContent;
  80 + try {
  81 + sortedContent = angular.toJson(utils.sortObjectKeys(angular.fromJson(content)));
  82 + }
  83 + catch(err) {
  84 + sortedContent = content;
  85 + }
  86 + $mdDialog.show({
  87 + controller: 'EventContentDialogController',
  88 + controllerAs: 'vm',
  89 + templateUrl: eventErrorDialogTemplate,
  90 + locals: {content: sortedContent, title: title, contentType: contentType, showingCallback: onShowingCallback},
  91 + parent: angular.element($document[0].body),
  92 + fullscreen: true,
  93 + targetEvent: $event,
  94 + multiple: true,
  95 + onShowing: function(scope, element) {
  96 + onShowingCallback.onShowing(scope, element);
  97 + }
  98 + });
  99 + }
  100 +
  101 + scope.showEdgeEntityContent = function($event, title, contentType) {
  102 + var onShowingCallback = {
  103 + onShowing: function(){}
  104 + }
  105 + if (!contentType) {
  106 + contentType = null;
  107 + }
  108 + var content = '';
  109 + switch(scope.event.type) {
  110 + case types.edgeEventType.relation:
  111 + content = angular.toJson(scope.event.body);
  112 + showDialog();
  113 + break;
  114 + case types.edgeEventType.ruleChainMetaData:
  115 + content = ruleChainService.getRuleChainMetaData(scope.event.entityId, {ignoreErrors: true}).then(
  116 + function success(info) {
  117 + showDialog();
  118 + return angular.toJson(info);
  119 + }, function fail() {
  120 + showError();
  121 + });
  122 + break;
  123 + default:
  124 + content = entityService.getEntity(scope.event.type, scope.event.entityId, {ignoreErrors: true}).then(
  125 + function success(info) {
  126 + showDialog();
  127 + return angular.toJson(info);
  128 + }, function fail() {
  129 + showError();
  130 + });
  131 + break;
  132 + }
  133 + function showDialog() {
  134 + $mdDialog.show({
  135 + controller: 'EventContentDialogController',
  136 + controllerAs: 'vm',
  137 + templateUrl: eventErrorDialogTemplate,
  138 + locals: {content: content, title: title, contentType: contentType, showingCallback: onShowingCallback},
  139 + parent: angular.element($document[0].body),
  140 + fullscreen: true,
  141 + targetEvent: $event,
  142 + multiple: true,
  143 + onShowing: function(scope, element) {
  144 + onShowingCallback.onShowing(scope, element);
  145 + }
  146 + });
  147 + }
  148 + function showError() {
  149 + toast.showError($translate.instant('edge.load-entity-error'));
  150 + }
  151 + }
  152 +
  153 + scope.checkEdgeEventType = function (edgeEventType) {
  154 + return !(edgeEventType === types.edgeEventType.widgetType ||
  155 + edgeEventType === types.edgeEventType.adminSettings ||
  156 + edgeEventType === types.edgeEventType.widgetsBundle );
  157 + }
  158 +
  159 + scope.checkTooltip = function($event) {
  160 + var el = $event.target;
  161 + var $el = angular.element(el);
  162 + if(el.offsetWidth < el.scrollWidth && !$el.attr('title')){
  163 + $el.attr('title', $el.text());
  164 + }
  165 + }
  166 +
  167 + $compile(element.contents())(scope);
  168 +
  169 + scope.updateStatus = function(eventCreatedTime) {
  170 + if (scope.queueStartTs) {
  171 + var status;
  172 + if (eventCreatedTime < scope.queueStartTs) {
  173 + status = $translate.instant('edge.success');
  174 + scope.isPending = false;
  175 + } else {
  176 + status = $translate.instant('edge.failed');
  177 + scope.isPending = true;
  178 + }
  179 + return status;
  180 + }
  181 + }
  182 + }
  183 +
  184 + return {
  185 + restrict: "A",
  186 + replace: false,
  187 + link: linker,
  188 + scope: false
  189 + };
  190 +}