Add search functionality
Set search bar visible on clients page. Search looks in name, email and ip fields for matches, case insensitive.
This commit is contained in:
		
							parent
							
								
									705e49bb81
								
							
						
					
					
						commit
						34415d1944
					
				|  | @ -250,6 +250,28 @@ Wireguard Clients | ||||||
|             populateClientList(); |             populateClientList(); | ||||||
|         }) |         }) | ||||||
| 
 | 
 | ||||||
|  |         // show search bar and override :contains to be case-insensitive | ||||||
|  |         $(document).ready(function () { | ||||||
|  |             $("#search-form").show(); | ||||||
|  |             jQuery.expr[':'].contains = function(a, i, m) { | ||||||
|  |                 return jQuery(a).text().toUpperCase() | ||||||
|  |                     .indexOf(m[3].toUpperCase()) >= 0; | ||||||
|  |             }; | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         // hide all clients and display only the ones that meet the search criteria (name, email, IP) | ||||||
|  |         $('#search-input').keyup(function () { | ||||||
|  |             var query = $(this).val(); | ||||||
|  |             $('.col-lg-4').hide(); | ||||||
|  |             $(".info-box-text").each(function() { | ||||||
|  |                 if($(this).children('i.fa-user').length > 0 || $(this).children('i.fa-envelope').length > 0) | ||||||
|  |                 { | ||||||
|  |                     $(this).filter(':contains("' + query + '")').parent().parent().parent().show(); | ||||||
|  |                 } | ||||||
|  |                 }) | ||||||
|  |             $(".badge-secondary").filter(':contains("' + query + '")').parent().parent().parent().show(); | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|         // modal_pause_client modal event |         // modal_pause_client modal event | ||||||
|         $("#modal_pause_client").on('show.bs.modal', function (event) { |         $("#modal_pause_client").on('show.bs.modal', function (event) { | ||||||
|             const button = $(event.relatedTarget); |             const button = $(event.relatedTarget); | ||||||
|  | @ -400,7 +422,7 @@ Wireguard Clients | ||||||
|                 cache: false, |                 cache: false, | ||||||
|                 method: 'GET', |                 method: 'GET', | ||||||
|                 url: '{{.basePath}}/api/client/' + client_id, |                 url: '{{.basePath}}/api/client/' + client_id, | ||||||
|                 data: {  |                 data: { | ||||||
|                     qrCodeIncludeFwMark: include_fwmark |                     qrCodeIncludeFwMark: include_fwmark | ||||||
|                 }, |                 }, | ||||||
|                 dataType: 'json', |                 dataType: 'json', | ||||||
|  | @ -588,7 +610,7 @@ Wireguard Clients | ||||||
|                     $(element).removeClass('is-invalid'); |                     $(element).removeClass('is-invalid'); | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|             //  |             // | ||||||
|         }); |         }); | ||||||
|     </script> |     </script> | ||||||
| {{end}} | {{end}} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue