$(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); }); });