Commit c6c0ced9b9a647794d1524ff7bbce61949f38939

Authored by Rodrigo Souto
1 parent b8e418aa

Filter chat-rooms

Showing 1 changed file with 26 additions and 0 deletions   Show diff stats
public/javascripts/chat.js
@@ -727,4 +727,30 @@ jQuery(function($) { @@ -727,4 +727,30 @@ jQuery(function($) {
727 $('#chat-busy').trigger('click'); 727 $('#chat-busy').trigger('click');
728 } 728 }
729 $('#chat #buddy-list').perfectScrollbar(); 729 $('#chat #buddy-list').perfectScrollbar();
  730 +
  731 + // custom css expression for a case-insensitive contains()
  732 + jQuery.expr[':'].Contains = function(a,i,m){
  733 + return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
  734 + };
  735 +
  736 + $('#chat .search').change( function () {
  737 + var filter = $(this).val();
  738 + var list = $('#buddy-list .buddies a');
  739 + if(filter) {
  740 + // this finds all links in a list that contain the input,
  741 + // and hide the ones not containing the input while showing the ones that do
  742 + $(list).find("span:not(:Contains(" + filter + "))").parent().hide();
  743 + $(list).find("span:Contains(" + filter + ")").parent().show();
  744 + } else {
  745 + $(list).show();
  746 + }
  747 + return false;
  748 + }).keyup( function () {
  749 + // fire the above change event after every letter
  750 + $(this).change();
  751 + });
  752 +
  753 + $('#chat .buddies a').live('click', function(){
  754 + $('#chat .search').val('').change();
  755 + });
730 }); 756 });