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 componentsByClazz = {};
var actionsByPlugin = {};
var service = {
getComponentDescriptorsByType: getComponentDescriptorsByType,
getComponentDescriptorByClazz: getComponentDescriptorByClazz,
getPluginActionsByPluginClazz: getPluginActionsByPluginClazz,
getComponentDescriptorsByTypes: getComponentDescriptorsByTypes
}
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 result = [];
if (!componentsByType[ruleChainType]) {
componentsByType[ruleChainType] = {};
if (!componentsByType[type]) {
componentsByType[type] = {};
}
for (var i=componentTypes.length-1;i>=0;i--) {
var componentType = componentTypes[i];
if (componentsByType[ruleChainType][componentType]) {
result = result.concat(componentsByType[ruleChainType][componentType]);
if (componentsByType[type][componentType]) {
result = result.concat(componentsByType[type][componentType]);
componentTypes.splice(i, 1);
}
}
if (!componentTypes.length) {
deferred.resolve(result);
} 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) {
var components = response.data;
for (var i = 0; i < components.length; i++) {
var component = components[i];
var componentsList = componentsByType[ruleChainType][component.type];
var componentsList = componentsByType[type][component.type];
if (!componentsList) {
componentsList = [];
componentsByType[ruleChainType][component.type] = componentsList;
componentsByType[type][component.type] = componentsList;
}
componentsList.push(component);
componentsByClazz[component.clazz] = component;
@ -65,4 +90,37 @@ function ComponentDescriptorService($http, $q) {
}
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 );
}
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);
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>
</div>
<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>
<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})"
ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'edges'"
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'"
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 layout="row">
<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: '=',
onSetAutoAssignToEdgeRuleChain: '&',
onUnsetAutoAssignToEdgeRuleChain: '&',
onUnassignFromEdge: '&',
onSetRootRuleChain: '&',
onExportRuleChain: '&',
onDeleteRuleChain: '&'

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

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

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

@ -30,6 +30,7 @@
edge="vm.edge"
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-unassign-from-edge="vm.unassignFromEdge(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-delete-rule-chain="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)">

Loading…
Cancel
Save