$(function () {
var linkRenderer = function (value, item) {
return '
' + value.date + ' | ';
}
var summaryRenderer = function (value, item) {
return '' + value + ' | ';
}
var customSigRenderer = function (value, item) {
return '' + value.link + ' | ';
}
let queryFilter;
let filtering = true;
let pageLoading = true;
if (window.location.search !== "") {
let searchParams = new URLSearchParams(window.location.search)
let filter = {};
searchParams.forEach(function (v, k) {
filter[k] = v;
})
filter.pageIndex = 1;
filter.pageSize = 1000;
queryFilter = filter;
filtering = false;
pageLoading = false;
}
$("#jsGrid").jsGrid({
height: "auto",
width: "100%",
filtering: filtering,
editing: false,
sorting: false,
paging: true,
pageLoading: pageLoading,
autoload: true,
pageSize: 10,
pageButtonCount: 5,
pagerContainer: $("#jsGridPager"),
controller: {
loadData: function (filter) {
var d = $.Deferred();
if (queryFilter) {
filter = queryFilter;
}
$.ajax({
url: "/api/list",
dataType: "json",
data: filter
}).done(function (response) {
let fs = $("#jsGrid").jsGrid("option", "fields");
if (response.customSigNames) {
if (fs.length < 16) {
let ls = JSON.parse(localStorage.getItem('customSig'));
for (let name of response.customSigNames) {
let dname = name;
for (let dn in ls) {
if (ls[dn] === name) {
dname = dn;
}
}
let nc = { name: name, title: dname, type: "checkbox", width: "8em", cellRenderer: customSigRenderer };
fs.push(nc);
}
$("#jsGrid").jsGrid("option", "fields", fs);
}
}
if (queryFilter) {
response = response.data;
}
d.resolve(response);
}).fail(function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status === 400) { //BadRequest
alert("The filtering is not implemented.");
} else {
alert("Error has occurred.");
}
$("#jsGrid").jsGrid("clearFilter");
});
return d.promise();
}
},
fields: [
{ name: "cve", title: "CVE", type: "text", css: "cve", with: "5em" },
{ name: "score", title: "Score", type: "text", width: "5em" },
{ name: "publishedDate", title: "Published Date", type: "text", width: "8em", filtering: false },
{ name: "summary", title: "Summary", type: "text", css: "summary-td", width: "15em", cellRenderer: summaryRenderer },
{ name: "FortiGuard", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "Cisco", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "CheckPoint", title: "Check Point", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "WatchGuard", title: "WatchGuard", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "McAfee", title: "McAfee", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "Hillstone", title: "Hillstone", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "proofpoint", title: "proofpoint", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "Astaro", title: "Astaro", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "SnortCommunity", title: "Snort Community", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "Talos", title: "Talos", type: "checkbox", width: "8em", cellRenderer: linkRenderer },
{ name: "any", title: "Any", type: "checkbox", width: "3em" },
],
});
$("#pageSize").on("change", function () {
let pageSize = parseInt($(this).val(), 10);
$("#jsGrid").jsGrid("option", "pageSize", pageSize);
$("#jsGrid").jsGrid("openPage", 1);
});
});