buildFromCache method refactor.

This commit is contained in:
Alexander Zobnin
2016-03-27 19:02:56 +03:00
parent d15ffd4cd0
commit 539444b22d

View File

@@ -147,57 +147,9 @@ angular.module('grafana.services').factory('QueryProcessor', function($q) {
} }
buildFromCache(groupFilter, hostFilter, appFilter, itemFilter, showDisabledItems) { buildFromCache(groupFilter, hostFilter, appFilter, itemFilter, showDisabledItems) {
var self = this; return this.getItems(groupFilter, hostFilter, appFilter, showDisabledItems)
return this.cache .then(items => {
.getGroups() return getByFilter(items, itemFilter);
.then(groups => {
return findByFilter(groups, groupFilter);
})
.then(groups => {
var groupids = _.map(groups, 'groupid');
return self.cache
.getHosts(groupids)
.then(hosts => {
return findByFilter(hosts, hostFilter);
});
})
.then(hosts => {
var hostids = _.map(hosts, 'hostid');
if (appFilter) {
return self.cache
.getApps(hostids)
.then(apps => {
// Use getByFilter for proper item filtering
return getByFilter(apps, appFilter);
});
} else {
return {
appFilterEmpty: true,
hostids: hostids
};
}
})
.then(apps => {
if (apps.appFilterEmpty) {
return self.cache
.getItems(apps.hostids)
.then(items => {
if (showDisabledItems) {
items = _.filter(items, {'status': '0'});
}
return getByFilter(items, itemFilter);
});
} else {
var appids = _.map(apps, 'applicationid');
return self.cache
.getItems(undefined, appids)
.then(items => {
if (showDisabledItems) {
items = _.filter(items, {'status': '0'});
}
return getByFilter(items, itemFilter);
});
}
}); });
} }
@@ -216,8 +168,7 @@ angular.module('grafana.services').factory('QueryProcessor', function($q) {
getApps(groupFilter, hostFilter) { getApps(groupFilter, hostFilter) {
var self = this; var self = this;
return this return this.getHosts(groupFilter)
.getHosts(groupFilter)
.then(hosts => { .then(hosts => {
return findByFilter(hosts, hostFilter); return findByFilter(hosts, hostFilter);
}) })
@@ -229,8 +180,7 @@ angular.module('grafana.services').factory('QueryProcessor', function($q) {
getItems(groupFilter, hostFilter, appFilter, showDisabledItems) { getItems(groupFilter, hostFilter, appFilter, showDisabledItems) {
var self = this; var self = this;
return this return this.getHosts(groupFilter)
.getHosts(groupFilter)
.then(hosts => { .then(hosts => {
return findByFilter(hosts, hostFilter); return findByFilter(hosts, hostFilter);
}) })