1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #4010: Fixes IP addresses table when filtering interfaces

This commit is contained in:
Saria Hajjar
2020-01-27 15:49:15 +00:00
parent 7a548e806d
commit 46d0e88da3

View File

@ -2,9 +2,9 @@
$('button.toggle-ips').click(function() { $('button.toggle-ips').click(function() {
var selected = $(this).attr('selected'); var selected = $(this).attr('selected');
if (selected) { if (selected) {
$('#interfaces_table tr.ipaddresses').hide(); $('#interfaces_table tr.interface:visible + tr.ipaddresses').hide();
} else { } else {
$('#interfaces_table tr.ipaddresses').show(); $('#interfaces_table tr.interface:visible + tr.ipaddresses').show();
} }
$(this).attr('selected', !selected); $(this).attr('selected', !selected);
$(this).children('span').toggleClass('glyphicon-check glyphicon-unchecked'); $(this).children('span').toggleClass('glyphicon-check glyphicon-unchecked');
@ -14,10 +14,11 @@ $('button.toggle-ips').click(function() {
// Inteface filtering // Inteface filtering
$('input.interface-filter').on('input', function() { $('input.interface-filter').on('input', function() {
var filter = new RegExp(this.value); var filter = new RegExp(this.value);
var interface;
for (interface of $(this).closest('div.panel').find('tbody > tr')) { for (interface of $('#interfaces_table > tbody > tr')) {
// Slice off 'interface_' at the start of the ID // Slice off 'interface_' at the start of the ID
if (filter && filter.test(interface.id.slice(10))) { if (filter.test(interface.id.slice(10))) {
// Match the toggle in case the filter now matches the interface // Match the toggle in case the filter now matches the interface
$(interface).find('input:checkbox[name=pk]').prop('checked', $('input.toggle').prop('checked')); $(interface).find('input:checkbox[name=pk]').prop('checked', $('input.toggle').prop('checked'));
$(interface).show(); $(interface).show();
@ -27,4 +28,9 @@ $('input.interface-filter').on('input', function() {
$(interface).hide(); $(interface).hide();
} }
} }
// Show the ip addresses table row for the visible (matched) interfaces, if checked
if ($('button.toggle-ips').attr('selected')) {
$('#interfaces_table > tbody > tr:visible').next('tr.ipaddresses').show();
}
}); });