Skip to content

Commit

Permalink
remove coffeescript
Browse files Browse the repository at this point in the history
  • Loading branch information
gregwebs committed Jun 26, 2011
1 parent 01f8c5d commit 902643a
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 148 deletions.
84 changes: 0 additions & 84 deletions jquery.uitablefilter.coffee

This file was deleted.

124 changes: 60 additions & 64 deletions jquery.uitablefilter.js
Expand Up @@ -16,80 +16,76 @@
* optional arguments:
* column to limit search too (the column title in the table header)
* ifHidden - callback to execute if one or more elements was hidden
*/
*/
(function($) {
$.uiTableFilter = function(jq, phrase, column, ifHidden) {
var elems, getText, index, last_phrase, matches, new_hidden, noMatch, phrase_length, words;
new_hidden = false;
if (this.last_phrase === phrase) {
return false;
}
phrase_length = phrase.length;
words = phrase.toLowerCase().split(" ");
noMatch = function(elem) {
elem.hide();
return new_hidden = true;
};
getText = function(elem) {
return elem.text();
};
matches = function(elem) {
return elem.show();
};
if (column) {
index = null;
jq.find("thead > tr:last > th").each(function(i) {
if ($.trim($(this).text()) === column) {
index = i;
return false;
$.uiTableFilter = function(jq, phrase, column, ifHidden){
var new_hidden = false;
if( this.last_phrase === phrase ) return false;

var phrase_length = phrase.length;
var words = phrase.toLowerCase().split(" ");

// these function pointers may change
var matches = function(elem) { elem.show() }
var noMatch = function(elem) { elem.hide(); new_hidden = true }
var getText = function(elem) { return elem.text() }

if( column ) {
var index = null;
jq.find("thead > tr:last > th").each( function(i){
if( $.trim($(this).text()) == column ){
index = i; return false;
}
});
if (index === null) {
throw "given column: " + column + " not found";
if( index == null ) throw("given column: " + column + " not found")

getText = function(elem){ return $(elem.find(
("td:eq(" + index + ")") )).text()
}
getText = function(elem) {
return $(elem.find("td:eq(" + index + ")")).text();
};
}
if ((words.size > 1) && (phrase.substr(0, phrase_length - 1) === this.last_phrase)) {
if (phrase[-1] === " ") {
this.last_phrase = phrase;
return false;
}
words = words[-1];
matches = function(elem) {};
elems = jq.find("tbody:first > tr:visible");
} else {

// if added one letter to last time,
// just check newest word and only need to hide
if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) ===
this.last_phrase) ) {

if( phrase[-1] === " " )
{ this.last_phrase = phrase; return false; }

var words = words[-1]; // just search for the newest word

// only hide visible rows
matches = function(elem) {;}
var elems = jq.find("tbody:first > tr:visible")
}
else {
new_hidden = true;
elems = jq.find("tbody:first > tr");
var elems = jq.find("tbody:first > tr")
}
elems.each(function() {
var elem;
elem = $(this);
if ($.uiTableFilter.has_words(getText(elem), words, false)) {
return matches(elem);
} else {
return noMatch(elem);
}

elems.each(function(){
var elem = $(this);
$.uiTableFilter.has_words( getText(elem), words, false ) ?
matches(elem) : noMatch(elem);
});

last_phrase = phrase;
if (ifHidden && new_hidden) {
ifHidden();
}
if( ifHidden && new_hidden ) ifHidden();
return jq;
};
$.uiTableFilter.last_phrase = "";
return $.uiTableFilter.has_words = function(str, words, caseSensitive) {
var text, word, _i, _len;
text = caseSensitive != null ? caseSensitive : {
str: str.toLowerCase()
};
for (_i = 0, _len = words.length; _i < _len; _i++) {
word = words[_i];
if (text.indexOf(word) === -1) {
return false;
}

// caching for speedup
$.uiTableFilter.last_phrase = ""

// not jQuery dependent
// "" [""] -> Boolean
// "" [""] Boolean -> Boolean
$.uiTableFilter.has_words = function( str, words, caseSensitive )
{
var text = caseSensitive ? str : str.toLowerCase();
for (var i=0; i < words.length; i++) {
if (text.indexOf(words[i]) === -1) return false;
}
return true;
};
})(jQuery);
}
}) (jQuery);

0 comments on commit 902643a

Please sign in to comment.