in public/js/util.js [335:414]
affectedYesNo: function(affects){
var status={yes:[],no:[],unknown:[]};
for (var vendor of affects.vendor.vendor_data) {
var vendor_name = vendor.vendor_name;
for(var product of vendor.product.product_data) {
var product_name = product.product_name;
for(var version of product.version.version_data) {
var vv = version.version_value;
var cat = "yes";
var prefix = vn = "";
if(version.version_name && version.version_name != "") {
vn = version.version_name;
}
if(version.version_affected) {
if(version.version_affected.startsWith('?')) {
cat = "unknown";
} else if (version.version_affected.startsWith('!')) {
cat = "no";
}
switch (version.version_affected) {
case "!":
case "?":
case "=":
vv = version.version_value;
break;
case "<":
case "!<":
case "?<":
vv = "< " + version.version_value;
break;
case ">":
case "?>":
vv = "> " + version.version_value;
break;
case "<=":
case "!<=":
case "?<=":
vv = "<= " + version.version_value;
break;
case ">=":
case "!>=":
case "?>=":
vv = ">= " + version.version_value;
break;
default:
vv = version.version_value;
}
if(version.platform && version.platform != "") {
vv += ' on ' + version.platform;
}
}
var ph = status[cat][product_name];
if(ph == undefined) {
ph = status[cat][product_name] = {};
}
vns = ph.version_names;
if(vns == undefined) {
vns = ph.version_names = []
}
if(vns.indexOf(vn)<0) {
vns.push(vn);
}
vvs = ph.version_values;
if(vvs == undefined) {
vvs = ph.version_values = []
}
if(vvs.indexOf(vv)<0) {
vvs.push(vv);
}
}
}
}
var rstatus = {yes:[],no:[],unknown:[]};
for (var cat of ['yes','no','unknown']){
for(var p in status[cat]) {
rstatus[cat].push({product:p, version_names:status[cat][p].version_names, version_values: status[cat][p].version_values})
}
}
return rstatus;
},