Browse Source

Merge remote-tracking branch 'deaflynx/develop/2.6-edge' into develop/2.6-edge

pull/3957/head
Artem Babak 6 years ago
parent
commit
17dea7e954
  1. 74
      ui/src/app/api/component-descriptor.service.js
  2. 8
      ui/src/app/edge/downlinks/edge-downlinks-row.directive.js
  3. 9
      ui/src/app/rulechain/rulechain-fieldset.tpl.html
  4. 1
      ui/src/app/rulechain/rulechain.directive.js
  5. 42
      ui/src/app/rulechain/rulechains.controller.js
  6. 1
      ui/src/app/rulechain/rulechains.tpl.html

74
ui/src/app/api/component-descriptor.service.js

@ -21,38 +21,63 @@ function ComponentDescriptorService($http, $q) {
var componentsByType = {}; var componentsByType = {};
var componentsByClazz = {}; var componentsByClazz = {};
var actionsByPlugin = {};
var service = { var service = {
getComponentDescriptorsByType: getComponentDescriptorsByType,
getComponentDescriptorByClazz: getComponentDescriptorByClazz,
getPluginActionsByPluginClazz: getPluginActionsByPluginClazz,
getComponentDescriptorsByTypes: getComponentDescriptorsByTypes getComponentDescriptorsByTypes: getComponentDescriptorsByTypes
} }
return service; return service;
function getComponentDescriptorsByTypes(componentTypes, ruleChainType) { function getComponentDescriptorsByType(componentType) {
var deferred = $q.defer();
if (componentsByType[componentType]) {
deferred.resolve(componentsByType[componentType]);
} else {
var url = '/api/components/' + componentType;
$http.get(url, null).then(function success(response) {
componentsByType[componentType] = response.data;
for (var i = 0; i < componentsByType[componentType].length; i++) {
var component = componentsByType[componentType][i];
componentsByClazz[component.clazz] = component;
}
deferred.resolve(componentsByType[componentType]);
}, function fail() {
deferred.reject();
});
}
return deferred.promise;
}
function getComponentDescriptorsByTypes(componentTypes, type) {
var deferred = $q.defer(); var deferred = $q.defer();
var result = []; var result = [];
if (!componentsByType[ruleChainType]) { if (!componentsByType[type]) {
componentsByType[ruleChainType] = {}; componentsByType[type] = {};
} }
for (var i=componentTypes.length-1;i>=0;i--) { for (var i=componentTypes.length-1;i>=0;i--) {
var componentType = componentTypes[i]; var componentType = componentTypes[i];
if (componentsByType[ruleChainType][componentType]) { if (componentsByType[type][componentType]) {
result = result.concat(componentsByType[ruleChainType][componentType]); result = result.concat(componentsByType[type][componentType]);
componentTypes.splice(i, 1); componentTypes.splice(i, 1);
} }
} }
if (!componentTypes.length) { if (!componentTypes.length) {
deferred.resolve(result); deferred.resolve(result);
} else { } else {
var url = '/api/components?componentTypes=' + componentTypes.join(',') + '&ruleChainType=' + ruleChainType; var url = '/api/components?componentTypes=' + componentTypes.join(',') + '&ruleChainType=' + type;
$http.get(url, null).then(function success(response) { $http.get(url, null).then(function success(response) {
var components = response.data; var components = response.data;
for (var i = 0; i < components.length; i++) { for (var i = 0; i < components.length; i++) {
var component = components[i]; var component = components[i];
var componentsList = componentsByType[ruleChainType][component.type]; var componentsList = componentsByType[type][component.type];
if (!componentsList) { if (!componentsList) {
componentsList = []; componentsList = [];
componentsByType[ruleChainType][component.type] = componentsList; componentsByType[type][component.type] = componentsList;
} }
componentsList.push(component); componentsList.push(component);
componentsByClazz[component.clazz] = component; componentsByClazz[component.clazz] = component;
@ -65,4 +90,37 @@ function ComponentDescriptorService($http, $q) {
} }
return deferred.promise; return deferred.promise;
} }
function getComponentDescriptorByClazz(componentDescriptorClazz) {
var deferred = $q.defer();
if (componentsByClazz[componentDescriptorClazz]) {
deferred.resolve(componentsByClazz[componentDescriptorClazz]);
} else {
var url = '/api/component/' + componentDescriptorClazz;
$http.get(url, null).then(function success(response) {
componentsByClazz[componentDescriptorClazz] = response.data;
deferred.resolve(componentsByClazz[componentDescriptorClazz]);
}, function fail() {
deferred.reject();
});
}
return deferred.promise;
}
function getPluginActionsByPluginClazz(pluginClazz) {
var deferred = $q.defer();
if (actionsByPlugin[pluginClazz]) {
deferred.resolve(actionsByPlugin[pluginClazz]);
} else {
var url = '/api/components/actions/' + pluginClazz;
$http.get(url, null).then(function success(response) {
actionsByPlugin[pluginClazz] = response.data;
deferred.resolve(actionsByPlugin[pluginClazz]);
}, function fail() {
deferred.reject();
});
}
return deferred.promise;
}
} }

8
ui/src/app/edge/downlinks/edge-downlinks-row.directive.js

@ -92,14 +92,6 @@ export default function EdgeDownlinksRowDirective($compile, $templateCache, $mdD
type === types.edgeEventType.widgetsBundle ); type === types.edgeEventType.widgetsBundle );
} }
scope.checkTooltip = function($event) {
var el = $event.target;
var $el = angular.element(el);
if(el.offsetWidth < el.scrollWidth && !$el.attr('title')){
$el.attr('title', $el.text());
}
}
$compile(element.contents())(scope); $compile(element.contents())(scope);
scope.updateStatus = function(downlinkCreatedTime) { scope.updateStatus = function(downlinkCreatedTime) {

9
ui/src/app/rulechain/rulechain-fieldset.tpl.html

@ -24,8 +24,11 @@
class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button> class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button>
</div> </div>
<div layout="row"><md-button ng-click="onSetRootRuleChain({event: $event})" <div layout="row"><md-button ng-click="onSetRootRuleChain({event: $event})"
ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'tenant'" ng-show="!isEdit && ((!ruleChain.root && ruleChainsScope == 'tenant') || (ruleChainsScope == 'edge' && edge.rootRuleChainId.id !== ruleChain.id.id))"
class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button>
<md-button ng-click="onUnassignFromEdge({event: $event})"
ng-show="!isEdit && ruleChainsScope == 'edge' && edge.rootRuleChainId.id !== ruleChain.id.id"
class="md-raised md-primary">{{ 'edge.unassign-from-edge' | translate }}</md-button>
<md-button ng-click="onSetRootRuleChain({event: $event})" <md-button ng-click="onSetRootRuleChain({event: $event})"
ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'edges'" ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'edges'"
class="md-raised md-primary">{{ 'rulechain.set-edge-template-root-rulechain' | translate }}</md-button> class="md-raised md-primary">{{ 'rulechain.set-edge-template-root-rulechain' | translate }}</md-button>
@ -36,9 +39,7 @@
ng-show="!isEdit && !ruleChain.root && ruleChain.isDefault && ruleChainsScope == 'edges'" ng-show="!isEdit && !ruleChain.root && ruleChain.isDefault && ruleChainsScope == 'edges'"
class="md-raised md-primary">{{ 'rulechain.unset-auto-assign-to-edge' | translate }}</md-button> class="md-raised md-primary">{{ 'rulechain.unset-auto-assign-to-edge' | translate }}</md-button>
<md-button ng-click="onSetRootRuleChain({event: $event})"
ng-show="!isEdit && ruleChainsScope == 'edge' && edge.rootRuleChainId.id !== ruleChain.id.id"
class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button>
</div> </div>
<div layout="row"> <div layout="row">
<md-button ngclipboard data-clipboard-action="copy" <md-button ngclipboard data-clipboard-action="copy"

1
ui/src/app/rulechain/rulechain.directive.js

@ -44,6 +44,7 @@ export default function RuleChainDirective($compile, $templateCache, $mdDialog,
edge: '=', edge: '=',
onSetAutoAssignToEdgeRuleChain: '&', onSetAutoAssignToEdgeRuleChain: '&',
onUnsetAutoAssignToEdgeRuleChain: '&', onUnsetAutoAssignToEdgeRuleChain: '&',
onUnassignFromEdge: '&',
onSetRootRuleChain: '&', onSetRootRuleChain: '&',
onExportRuleChain: '&', onExportRuleChain: '&',
onDeleteRuleChain: '&' onDeleteRuleChain: '&'

42
ui/src/app/rulechain/rulechains.controller.js

@ -27,7 +27,6 @@ export default function RuleChainsController(ruleChainService, userService, impo
$document, $q, edgeService) { $document, $q, edgeService) {
var vm = this; var vm = this;
var edgeId = $stateParams.edgeId;
vm.ruleChainsScope = $state.$current.data.ruleChainsType; vm.ruleChainsScope = $state.$current.data.ruleChainsType;
@ -53,6 +52,9 @@ export default function RuleChainsController(ruleChainService, userService, impo
var ruleChainGroupActionsList = []; var ruleChainGroupActionsList = [];
vm.types = types; vm.types = types;
var edgeId = $stateParams.edgeId;
vm.edge = null;
vm.ruleChainGridConfig = { vm.ruleChainGridConfig = {
refreshParamsFunc: null, refreshParamsFunc: null,
@ -99,6 +101,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
vm.setRootRuleChain = setRootRuleChain; vm.setRootRuleChain = setRootRuleChain;
vm.setAutoAssignToEdgeRuleChain = setAutoAssignToEdgeRuleChain; vm.setAutoAssignToEdgeRuleChain = setAutoAssignToEdgeRuleChain;
vm.unsetAutoAssignToEdgeRuleChain = unsetAutoAssignToEdgeRuleChain; vm.unsetAutoAssignToEdgeRuleChain = unsetAutoAssignToEdgeRuleChain;
vm.unassignFromEdge = unassignFromEdge;
initController(); initController();
@ -277,7 +280,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
ruleChainActionsList.push( ruleChainActionsList.push(
{ {
onAction: function ($event, item) { onAction: function ($event, item) {
unassignFromEdge($event, item, edgeId); unassignFromEdge($event, item);
}, },
name: function() { return $translate.instant('action.unassign') }, name: function() { return $translate.instant('action.unassign') },
details: function() { return $translate.instant('edge.unassign-from-edge') }, details: function() { return $translate.instant('edge.unassign-from-edge') },
@ -289,7 +292,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
ruleChainGroupActionsList.push( ruleChainGroupActionsList.push(
{ {
onAction: function ($event, items) { onAction: function ($event, items) {
unassignRuleChainsFromEdge($event, items, edgeId); unassignRuleChainsFromEdge($event, items);
}, },
name: function() { return $translate.instant('rulechain.unassign-rulechains') }, name: function() { return $translate.instant('rulechain.unassign-rulechains') },
details: function(selectedCount) { details: function(selectedCount) {
@ -351,12 +354,11 @@ export default function RuleChainsController(ruleChainService, userService, impo
return ruleChain; return ruleChain;
}); });
ruleChains.data = data; ruleChains.data = data;
deferred.resolve(ruleChains); deferred.resolve(ruleChains);
}, function fail() { }, function fail() {
deferred.reject(); deferred.reject();
} }
) );
return deferred.promise; return deferred.promise;
} }
@ -365,19 +367,9 @@ export default function RuleChainsController(ruleChainService, userService, impo
return ruleChainService.getRuleChains(pageLink, null, type); return ruleChainService.getRuleChains(pageLink, null, type);
} else if (vm.ruleChainsScope === 'edges') { } else if (vm.ruleChainsScope === 'edges') {
var deferred = $q.defer(); var deferred = $q.defer();
ruleChainService.getRuleChains(pageLink, null, type).then( ruleChainService.getRuleChains(pageLink, null, type)
function success(ruleChains) { .then(ruleChains => mapRuleChainsWithDefaultEdges(ruleChains))
mapRuleChainsWithDefaultEdges(ruleChains).then( .then(ruleChains => deferred.resolve(ruleChains));
function success(response) {
deferred.resolve(response);
}, function fail() {
deferred.reject();
}
);
}, function fail() {
deferred.reject();
}
);
return deferred.promise; return deferred.promise;
} }
} }
@ -399,7 +391,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
} }
var ruleChainParams = {ruleChainId: ruleChain.id.id}; var ruleChainParams = {ruleChainId: ruleChain.id.id};
if (vm.ruleChainsScope === 'edge') { if (vm.ruleChainsScope === 'edge') {
$state.go('home.edges.ruleChains.ruleChain', Object.assign(ruleChainParams, edgeId = vm.edge.id.id)); $state.go('home.edges.ruleChains.ruleChain', ruleChainParams);
} else if (vm.ruleChainsScope === 'edges') { } else if (vm.ruleChainsScope === 'edges') {
$state.go('home.edges.ruleChains.ruleChain', ruleChainParams); $state.go('home.edges.ruleChains.ruleChain', ruleChainParams);
} else { } else {
@ -416,7 +408,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
} }
function isRootRuleChain(ruleChain) { function isRootRuleChain(ruleChain) {
if (angular.isDefined(vm.edge) && vm.edge != null) { if (vm.edge != null) {
return angular.isDefined(vm.edge.rootRuleChainId) && vm.edge.rootRuleChainId != null && vm.edge.rootRuleChainId.id === ruleChain.id.id; return angular.isDefined(vm.edge.rootRuleChainId) && vm.edge.rootRuleChainId != null && vm.edge.rootRuleChainId.id === ruleChain.id.id;
} else { } else {
return ruleChain && ruleChain.root; return ruleChain && ruleChain.root;
@ -424,7 +416,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
} }
function isNonRootRuleChain(ruleChain) { function isNonRootRuleChain(ruleChain) {
if (angular.isDefined(vm.edge) && vm.edge != null) { if (vm.edge != null) {
return angular.isDefined(vm.edge.rootRuleChainId) && vm.edge.rootRuleChainId != null && vm.edge.rootRuleChainId.id !== ruleChain.id.id; return angular.isDefined(vm.edge.rootRuleChainId) && vm.edge.rootRuleChainId != null && vm.edge.rootRuleChainId.id !== ruleChain.id.id;
} else { } else {
return ruleChain && !ruleChain.root; return ruleChain && !ruleChain.root;
@ -454,7 +446,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
.cancel($translate.instant('action.no')) .cancel($translate.instant('action.no'))
.ok($translate.instant('action.yes')); .ok($translate.instant('action.yes'));
$mdDialog.show(confirm).then(function () { $mdDialog.show(confirm).then(function () {
if (angular.isDefined(vm.edge) && vm.edge != null) { if (vm.edge != null) {
edgeService.setRootRuleChain(vm.edge.id.id, ruleChain.id.id).then( edgeService.setRootRuleChain(vm.edge.id.id, ruleChain.id.id).then(
(edge) => { (edge) => {
vm.edge = edge; vm.edge = edge;
@ -525,7 +517,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
}); });
} }
function unassignRuleChainsFromEdge($event, items, edgeId) { function unassignRuleChainsFromEdge($event, items) {
var confirm = $mdDialog.confirm() var confirm = $mdDialog.confirm()
.targetEvent($event) .targetEvent($event)
.title($translate.instant('rulechain.unassign-rulechains-title', {count: items.selectedCount}, 'messageformat')) .title($translate.instant('rulechain.unassign-rulechains-title', {count: items.selectedCount}, 'messageformat'))
@ -567,7 +559,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
controller: 'AddRuleChainsToEdgeController', controller: 'AddRuleChainsToEdgeController',
controllerAs: 'vm', controllerAs: 'vm',
templateUrl: addRuleChainsToEdgeTemplate, templateUrl: addRuleChainsToEdgeTemplate,
locals: {edgeId: edgeId, ruleChains: ruleChains}, locals: {edgeId, ruleChains},
parent: angular.element($document[0].body), parent: angular.element($document[0].body),
fullscreen: true, fullscreen: true,
targetEvent: $event targetEvent: $event
@ -604,7 +596,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
}); });
} }
function unassignFromEdge($event, ruleChain, edgeId) { function unassignFromEdge($event, ruleChain) {
if ($event) { if ($event) {
$event.stopPropagation(); $event.stopPropagation();
} }

1
ui/src/app/rulechain/rulechains.tpl.html

@ -30,6 +30,7 @@
edge="vm.edge" edge="vm.edge"
on-set-auto-assign-to-edge-rule-chain="vm.setAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" on-set-auto-assign-to-edge-rule-chain="vm.setAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)"
on-unset-auto-assign-to-edge-rule-chain="vm.unsetAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" on-unset-auto-assign-to-edge-rule-chain="vm.unsetAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)"
on-unassign-from-edge="vm.unassignFromEdge(event, vm.grid.detailsConfig.currentItem)"
on-set-root-rule-chain="vm.setRootRuleChain(event, vm.grid.detailsConfig.currentItem)" on-set-root-rule-chain="vm.setRootRuleChain(event, vm.grid.detailsConfig.currentItem)"
on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)" on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)"
on-delete-rule-chain="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"> on-delete-rule-chain="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)">

Loading…
Cancel
Save