diff --git a/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt b/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt index 28c81f64c..bd95d4901 100644 --- a/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt +++ b/src/opnsense/mvc/app/views/OPNsense/IDS/index.volt @@ -32,16 +32,14 @@ POSSIBILITY OF SUCH DAMAGE. // var data_get_map = {'frm_GeneralSettings':"/api/ids/settings/get"}; - // load initial data - mapDataToFormUI(data_get_map).done(function(){ - formatTokenizersUI(); - $('.selectpicker').selectpicker('refresh'); - }); - // list all known classtypes and add to selection box + /** + * list all known classtypes and add to selection box + */ function updateRuleClassTypes() { ajaxGet(url="/api/ids/settings/listRuleClasstypes",sendData={}, callback=function(data, status) { if (status == "success") { + $('#ruleclass').html(''); $.each(data['items'], function(key, value) { $('#ruleclass').append($("").attr("value",value).text(value)); }); @@ -54,26 +52,28 @@ POSSIBILITY OF SUCH DAMAGE. }); } - // delay refresh for a bit - setTimeout(updateRuleClassTypes, 500); - - // update list of alert logs - ajaxGet(url="/api/ids/service/getAlertLogs",sendData={}, callback=function(data, status) { - if (status == "success") { - $.each(data, function(key, value) { - if (value['sequence'] == undefined) { - $('#alert-logfile').append($("").attr("value",'none').text(value['modified'])); - } else { - $('#alert-logfile').append($("").attr("value",value['sequence']).text(value['modified'])); - } - }); - $('.selectpicker').selectpicker('refresh'); - // link on change event - $('#alert-logfile').on('change', function(){ - $('#grid-alerts').bootgrid('reload'); - }); - } - }); + /** + * update list of available alert logs + */ + function updateAlertLogs() { + ajaxGet(url="/api/ids/service/getAlertLogs",sendData={}, callback=function(data, status) { + if (status == "success") { + $('#alert-logfile').html(""); + $.each(data, function(key, value) { + if (value['sequence'] == undefined) { + $('#alert-logfile').append($("").attr("value",'none').text(value['modified'])); + } else { + $('#alert-logfile').append($("").attr("value",value['sequence']).text(value['modified'])); + } + }); + $('.selectpicker').selectpicker('refresh'); + // link on change event + $('#alert-logfile').on('change', function(){ + $('#grid-alerts').bootgrid('reload'); + }); + } + }); + } /** * Add classtype to rule filter @@ -97,49 +97,74 @@ POSSIBILITY OF SUCH DAMAGE. return request; } - /** - * grid installed rules - */ - $("#grid-installedrules").UIBootgrid( - { search:'/api/ids/settings/searchinstalledrules', - get:'/api/ids/settings/getRuleInfo/', - options:{ - multiSelect:false, - selection:false, - requestHandler:addRuleFilters, - formatters:{ - rowtoggle: function (column, row) { - if (parseInt(row[column.id], 2) == 1) { - var toggle = ""; - } else { - var toggle = ""; - } - toggle += " "; - return toggle; - } - } - }, - toggle:'/api/ids/settings/toggleRule/' - } - ); + // load initial data + mapDataToFormUI(data_get_map).done(function(){ + formatTokenizersUI(); + $('.selectpicker').selectpicker('refresh'); + }); /** - * grid query alerts + * load content on tab changes */ - $("#grid-alerts").UIBootgrid( - { search:'/api/ids/service/queryAlerts', - get:'/api/ids/service/getAlertInfo/', - options:{ - multiSelect:false, - selection:false, - requestHandler:addAlertQryFilters, - formatters:{ - info: function (column, row) { - return " "; - } + $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { + if (e.target.id == 'rule_tab'){ + // + // activate rule tab page + // + + // delay refresh for a bit + setTimeout(updateRuleClassTypes, 500); + + /** + * grid installed rules + */ + $('#grid-installedrules').bootgrid('destroy'); // always destroy previous grid, so data is always fresh + $("#grid-installedrules").UIBootgrid( + { search:'/api/ids/settings/searchinstalledrules', + get:'/api/ids/settings/getRuleInfo/', + options:{ + multiSelect:false, + selection:false, + requestHandler:addRuleFilters, + formatters:{ + rowtoggle: function (column, row) { + if (parseInt(row[column.id], 2) == 1) { + var toggle = ""; + } else { + var toggle = ""; + } + toggle += " "; + return toggle; + } + } + }, + toggle:'/api/ids/settings/toggleRule/' } - } - }); + ); + } else if (e.target.id == 'alert_tab') { + updateAlertLogs(); + /** + * grid query alerts + */ + $('#grid-alerts').bootgrid('destroy'); // always destroy previous grid, so data is always fresh + $("#grid-alerts").UIBootgrid( + { search:'/api/ids/service/queryAlerts', + get:'/api/ids/service/getAlertInfo/', + options:{ + multiSelect:false, + selection:false, + requestHandler:addAlertQryFilters, + formatters:{ + info: function (column, row) { + return " "; + } + } + } + }); + } + }) + + /** * grid for installable rule files @@ -209,9 +234,9 @@ POSSIBILITY OF SUCH DAMAGE.