interface_toggles.js 1.2 KB

123456789101112131415161718192021222324252627282930
  1. // Toggle the display of IP addresses under interfaces
  2. $('button.toggle-ips').click(function() {
  3. var selected = $(this).attr('selected');
  4. if (selected) {
  5. $('#interfaces_table tr.ipaddresses').hide();
  6. } else {
  7. $('#interfaces_table tr.ipaddresses').show();
  8. }
  9. $(this).attr('selected', !selected);
  10. $(this).children('span').toggleClass('glyphicon-check glyphicon-unchecked');
  11. return false;
  12. });
  13. // Inteface filtering
  14. $('input.interface-filter').on('input', function() {
  15. var filter = new RegExp(this.value);
  16. for (interface of $(this).closest('form').find('tbody > tr')) {
  17. // Slice off 'interface_' at the start of the ID
  18. if (filter && filter.test(interface.id.slice(10))) {
  19. // Match the toggle in case the filter now matches the interface
  20. $(interface).find('input:checkbox[name=pk]').prop('checked', $('input.toggle').prop('checked'));
  21. $(interface).show();
  22. } else {
  23. // Uncheck to prevent actions from including it when it doesn't match
  24. $(interface).find('input:checkbox[name=pk]').prop('checked', false);
  25. $(interface).hide();
  26. }
  27. }
  28. });