fabric8-analytics-dependency-editor-jyas
Version:
373 lines • 15.3 kB
JavaScript
import { Component, Input, ViewEncapsulation, ViewChild } from '@angular/core';
import { DependencyEditorService } from '../shared/dependency-editor.service';
import { ErrorMessageHandler } from '../shared/error-message-handler';
import { DependencySnapshot } from '../utils/dependency-snapshot';
var AddDependencyComponent = /** @class */ (function () {
function AddDependencyComponent(service, errorMessageHandler) {
this.service = service;
this.errorMessageHandler = errorMessageHandler;
this.dependencySearchResult = [];
this.isLoading = false;
this.categorySearchResult = [];
this.categoryResult = [];
this.tagZero = 0;
this.searchKey = '';
this.suggestions = [];
this.dependenciesData = [];
this.masterTags = [];
this.selectedTags = new Set();
this.categories = [];
this.cveName = [];
this.noOfTags = 0;
this.saveTagname = [];
this.type = false;
this.tags = [];
this.toast = false;
this.categoriesStore = [];
this.addDependencySubscription = null;
}
AddDependencyComponent.prototype.ngOnInit = function () {
this.masterTags = [];
};
AddDependencyComponent.prototype.ngOnChanges = function (changes) {
if (changes && changes['boosterInfo'] && changes['boosterInfo']['currentValue']) {
this.resetValues();
this.getCategories();
}
if (changes && changes['existDependencies'] && changes['existDependencies']['currentValue']) {
this.masterTags = [];
this.addedTags();
}
};
AddDependencyComponent.prototype.resetValues = function () {
this.categoryResult = [];
this.masterTags = [];
};
AddDependencyComponent.prototype.getDependencies = function () {
var _this = this;
if (!this.dependencySearchString) {
return;
}
this.isLoading = true;
if (this.addDependencySubscription) {
this.addDependencySubscription.unsubscribe();
}
this.addDependencySubscription = this.service.getDependencies(this.dependencySearchString)
.subscribe(function (response) {
_this.dependencySearchResult = response['result'];
_this.isLoading = false;
}, function (error) {
_this.errorComponentSearch = _this.errorMessageHandler.getErrorMessage(error.status);
_this.isLoading = false;
console.log('error component search - ', _this.errorComponentSearch);
});
};
/**
*
* @param packages [Array<any>]
* @returns count [number]
*
* This function checks for the packages and ignores if they are the part of core dependencies
*/
AddDependencyComponent.prototype.getPackageCount = function (packages) {
var _this = this;
return packages && packages.filter(function (p) { return !_this.isACoreDependency(p.name); }).length || 0;
};
AddDependencyComponent.prototype.handleModalCategories = function (categories) {
if (!categories)
return;
this.categorySearchResult = categories;
this.isLoading = false;
if (this.categoryResult.length === 0) {
this.categoriesStore.push({
isOpened: true
});
for (var key in this.categorySearchResult) {
if (this.categorySearchResult.hasOwnProperty(key)) {
this.categoryResult.push(this.categorySearchResult[key]);
this.categoriesStore.push({
isOpened: false
});
}
}
}
if (this.masterTags.length === 0) {
var p = this.getCategoryPayload(this.categoryResult);
this.getCategoriesSecurity(p);
}
if (this.existDependencies) {
this.addedTags();
}
};
AddDependencyComponent.prototype.getCategories = function () {
var _this = this;
if (this.boosterInfo) {
this.isLoading = true;
var runtime = '';
if (this.boosterInfo.runtime.id === 'vert.x') {
runtime = 'vertx';
}
else if (this.boosterInfo.runtime.id === 'spring-boot') {
runtime = 'springboot';
}
else if (this.boosterInfo.runtime.id === 'wildfly-swarm') {
runtime = 'wildflyswarm';
}
this.service.getCategories(runtime)
.subscribe(function (response) {
_this.handleModalCategories(response['categories']);
}, function (error) {
// Handle server errors here
_this.isLoading = false;
_this.errorCategories = _this.errorMessageHandler.getErrorMessage(error.status);
console.log('error categories - ', _this.errorCategories);
});
}
};
AddDependencyComponent.prototype.resetCategoryStore = function (fromIndex) {
for (var i = fromIndex; i < this.categoriesStore.length; ++i) {
if (this.categoriesStore[i].isOpened) {
this.categoriesStore[i].isOpened = false;
}
}
};
AddDependencyComponent.prototype.getCategoryPayload = function (categoryResult) {
var payload = {};
var j = 0;
var category = [];
categoryResult.forEach(function (i) {
i.packages.forEach(function (k) {
category.push({
'package': k.name,
'version': k.version
});
});
});
payload['_resolved'] = category;
payload['ecosystem'] = DependencySnapshot.ECOSYSTEM;
payload['request_id'] = DependencySnapshot.REQUEST_ID;
return payload;
};
AddDependencyComponent.prototype.getCategoriesSecurity = function (payload) {
var _this = this;
this.service.getDependencyData('CVE', payload)
.subscribe(function (response) {
_this.cveTemporaryData = response;
if (_this.cveTemporaryData) {
var count_1 = -1;
_this.cveTemporaryData.result.forEach(function (item) {
count_1++;
if (item.cve) {
if (item.cve !== null) {
_this.cveName.push({
'detail': item.cve.details,
'package': item.package
});
}
}
});
}
}, function (error) {
// Handle server errors here
_this.errorSecurity = _this.errorMessageHandler.getErrorMessage(error.status);
console.log('error add security - ', _this.errorSecurity);
});
this.masterTags.forEach(function (i) {
for (var j = 0; j < _this.cveName.length; j++)
if (i.name === _this.cveName['j'].package) {
i.security = _this.cveName['j'].detail;
}
});
};
AddDependencyComponent.prototype.changeTagname = function (master, t) {
this.type = !t;
for (var i = 0; i < this.masterTags.length; i++) {
if (this.masterTags[i].name === master.name && this.masterTags[i].version === master.version && this.masterTags[i].category === master.category) {
this.type = !t;
if (this.masterTags[i].type === true && this.type === true) {
continue;
}
else if (this.masterTags[i].type === true && this.type === false) {
this.masterTags[i].type = false;
this.noOfTags--;
i++;
break;
}
else if (this.masterTags[i].type === false) {
if (this.type === true) {
this.masterTags[i].type = true;
this.noOfTags++;
break;
}
else if (this.type === false) {
this.masterTags[i].type = false;
this.noOfTags--;
break;
}
}
}
}
};
AddDependencyComponent.prototype.listenInputSearch = function () {
if (this.dependencySearchString === '') {
this.dependencySearchResult = [];
}
};
AddDependencyComponent.prototype.addDependency = function () {
this.dependencySearchResult = [];
this.dependencySearchString = '';
this.noOfTags = 0;
this.saveTagname = [];
var currentTag = null;
for (var i = 0; i < this.masterTags.length; i++) {
currentTag = this.masterTags[i];
if (currentTag.type === true) {
this.tags = [];
this.tags.push({
'ecosystem': DependencySnapshot.ECOSYSTEM,
'version': currentTag.version,
'name': currentTag.name,
'category': currentTag.category
});
this.saveTagname.push({
'name': this.masterTags[i].name
});
this.toast = true;
this.masterTags[i].grouped = true;
this.masterTags[i].type = false;
this.service.dependencySelected.emit(this.tags[0]);
}
}
};
AddDependencyComponent.prototype.addSearchDependency = function (depItem) {
this.dependencySearchResult = [];
this.dependencySearchString = '';
this.service.dependencySelected.emit(depItem);
};
AddDependencyComponent.prototype.ngOnDestroy = function () {
this.dependencies = [];
this.dependencySearchResult = [];
this.categorySearchResult = [];
this.categoryResult = [];
this.dependencySearchString = '';
this.isLoading = false;
};
AddDependencyComponent.prototype.removeDependency = function (dependency) {
this.service.removeDependency(dependency);
};
AddDependencyComponent.prototype.showPackageModal = function (event) {
this.toast = false;
this.modalPackagePreview.open();
this.handleModalCategories(this.categorySearchResult);
};
AddDependencyComponent.prototype.closemodal = function () {
this.modalPackagePreview.close();
};
AddDependencyComponent.prototype.showDependency = function () {
};
AddDependencyComponent.prototype.handleUserInputKeyPress = function (event) {
};
AddDependencyComponent.prototype.handleCategoryClick = function (tag, index) {
this.queryString = '';
this.categoryString = tag + '$$' + true;
this.resetCategoryStore(0);
this.categoriesStore[index].isOpened = true;
};
AddDependencyComponent.prototype.setToObject = function (container, currentPackage) {
if (container && currentPackage) {
if (!container[currentPackage.name]) {
container[currentPackage.name] = {
'version': currentPackage.version,
'name': currentPackage.name,
'description': currentPackage.description,
'category': [currentPackage.category],
'type': false,
'grouped': false,
'security': null,
'present': false
};
}
else {
if (container[currentPackage.name]['category'].indexOf(currentPackage.category) === -1) {
container[currentPackage.name]['category'].push(currentPackage.category);
}
}
}
};
AddDependencyComponent.prototype.addedTags = function () {
var _this = this;
if (this.masterTags.length === 0) {
var count_2 = 0;
this.tagZero = 0;
var packs_1 = {};
this.categoryResult.forEach(function (i) {
i.packages.forEach(function (x) {
if (!_this.isACoreDependency(x.name)) {
_this.setToObject(packs_1, x);
}
});
});
Object.keys(packs_1).forEach(function (name) {
++count_2;
packs_1[name]['ecosystem'] = DependencySnapshot.ECOSYSTEM;
_this.masterTags.push(packs_1[name]);
});
console.log('Master Tags', this.masterTags);
this.tagZero = count_2;
}
this.categoryResult.forEach(function (i) {
i.packages.forEach(function (x) {
_this.saveTagname.push({ 'name': x, 'type': false });
});
});
for (var i = 0; i < this.masterTags.length; i++) {
this.masterTags[i].present = false;
}
if (DependencySnapshot.DEP_FULL_ADDED.length === 0) {
for (var i = 0; i < this.masterTags.length; i++) {
this.masterTags[i].grouped = false;
}
}
else {
DependencySnapshot.DEP_FULL_ADDED.forEach(function (depAdded) {
for (var i = 0; i < _this.masterTags.length; i++) {
if (_this.masterTags[i].name === depAdded.name && _this.masterTags[i].version === depAdded.version && _this.masterTags[i].category === depAdded.category) {
_this.masterTags[i].grouped = true;
_this.masterTags[i].present = true;
}
else {
if (_this.masterTags[i].present !== true) {
_this.masterTags[i].grouped = false;
}
}
}
});
}
};
AddDependencyComponent.prototype.isACoreDependency = function (name) {
return this.existDependencies && this.existDependencies.filter(function (a) { return a.package === name; }).length !== 0;
};
AddDependencyComponent.decorators = [
{ type: Component, args: [{
selector: 'app-add-dependency',
styles: [require('./add-dependency.component.css').toString()],
encapsulation: ViewEncapsulation.None,
template: require('./add-dependency.component.html')
},] },
];
/** @nocollapse */
AddDependencyComponent.ctorParameters = function () { return [
{ type: DependencyEditorService, },
{ type: ErrorMessageHandler, },
]; };
AddDependencyComponent.propDecorators = {
'boosterInfo': [{ type: Input },],
'dependencies': [{ type: Input },],
'dependencyAdded': [{ type: Input },],
'existDependencies': [{ type: Input },],
'modalPackagePreview': [{ type: ViewChild, args: ['PackagePreview',] },],
};
return AddDependencyComponent;
}());
export { AddDependencyComponent };
//# sourceMappingURL=add-dependency.component.js.map