Browse Source

ComponentDescriptorService added removed methods

pull/3957/head
deaflynx 6 years ago
parent
commit
291c048e6e
  1. 74
      ui/src/app/api/component-descriptor.service.js

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;
}
}

Loading…
Cancel
Save