diff --git a/dist/jquery.sieve.js b/dist/jquery.sieve.js index 9241d78..e233be6 100644 --- a/dist/jquery.sieve.js +++ b/dist/jquery.sieve.js @@ -1,5 +1,5 @@ /*! - * jQuery Sieve v0.2.5 (2013-02-28) + * jQuery Sieve v0.3.0-pre (2013-03-05) * http://rmm5t.github.com/jquery-sieve/ * Copyright (c) 2013 Ryan McGeary; Licensed MIT */ @@ -28,7 +28,11 @@ searchInput: null, searchTemplate: "
", itemSelector: "tbody tr", - textSelector: null + textSelector: null, + toggle: function(item, match) { + return item.toggle(match); + }, + complete: function() {} }, options); if (!settings.searchInput) { searchBar = $(settings.searchTemplate); @@ -36,25 +40,26 @@ container.before(searchBar); } return settings.searchInput.on("keyup.sieve change.sieve", function() { - var query, rows; + var items, query; query = compact($(this).val().toLowerCase().split(/\s+/)); - rows = container.find(settings.itemSelector); - return rows.each(function() { - var cells, matches, q, row, text, _i, _len; - row = $(this); + items = container.find(settings.itemSelector); + items.each(function() { + var cells, item, match, q, text, _i, _len; + item = $(this); if (settings.textSelector) { - cells = row.find(settings.textSelector); + cells = item.find(settings.textSelector); text = cells.text().toLowerCase(); } else { - text = row.text().toLowerCase(); + text = item.text().toLowerCase(); } - matches = true; + match = true; for (_i = 0, _len = query.length; _i < _len; _i++) { q = query[_i]; - matches && (matches = text.indexOf(q) >= 0); + match && (match = text.indexOf(q) >= 0); } - return row.toggle(matches); + return settings.toggle(item, match); }); + return settings.complete(); }); }); }; diff --git a/dist/jquery.sieve.min.js b/dist/jquery.sieve.min.js index 1695bf3..8eb490c 100644 --- a/dist/jquery.sieve.min.js +++ b/dist/jquery.sieve.min.js @@ -1,6 +1,6 @@ /*! - * jQuery Sieve v0.2.5 (2013-02-28) + * jQuery Sieve v0.3.0-pre (2013-03-05) * http://rmm5t.github.com/jquery-sieve/ * Copyright (c) 2013 Ryan McGeary; Licensed MIT */ -(function(){var e;e=jQuery,e.fn.sieve=function(t){var r;return r=function(e){var t,r,n,a;for(a=[],r=0,n=e.length;n>r;r++)t=e[r],t&&a.push(t);return a},this.each(function(){var n,a,i;return n=e(this),i=e.extend({searchInput:null,searchTemplate:"
",itemSelector:"tbody tr",textSelector:null},t),i.searchInput||(a=e(i.searchTemplate),i.searchInput=a.find("input"),n.before(a)),i.searchInput.on("keyup.sieve change.sieve",function(){var t,a;return t=r(e(this).val().toLowerCase().split(/\s+/)),a=n.find(i.itemSelector),a.each(function(){var r,n,a,o,c,l,u;for(o=e(this),i.textSelector?(r=o.find(i.textSelector),c=r.text().toLowerCase()):c=o.text().toLowerCase(),n=!0,l=0,u=t.length;u>l;l++)a=t[l],n&&(n=c.indexOf(a)>=0);return o.toggle(n)})})})}}).call(this); \ No newline at end of file +(function(){var e;e=jQuery,e.fn.sieve=function(t){var n;return n=function(e){var t,n,r,o;for(o=[],n=0,r=e.length;r>n;n++)t=e[n],t&&o.push(t);return o},this.each(function(){var r,o,i;return r=e(this),i=e.extend({searchInput:null,searchTemplate:"
",itemSelector:"tbody tr",textSelector:null,toggle:function(e,t){return e.toggle(t)},complete:function(){}},t),i.searchInput||(o=e(i.searchTemplate),i.searchInput=o.find("input"),r.before(o)),i.searchInput.on("keyup.sieve change.sieve",function(){var t,o;return o=n(e(this).val().toLowerCase().split(/\s+/)),t=r.find(i.itemSelector),t.each(function(){var t,n,r,c,l,a,u;for(n=e(this),i.textSelector?(t=n.find(i.textSelector),l=t.text().toLowerCase()):l=n.text().toLowerCase(),r=!0,a=0,u=o.length;u>a;a++)c=o[a],r&&(r=l.indexOf(c)>=0);return i.toggle(n,r)}),i.complete()})})}}).call(this); \ No newline at end of file diff --git a/index.html b/index.html index b11a0e0..2960268 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@
View on GitHub View on Plugin Registry - v0.2.5 + v0.3.0-pre

Sieve jQuery Plugin diff --git a/sieve.jquery.json b/sieve.jquery.json index 013fa2b..7c78b49 100644 --- a/sieve.jquery.json +++ b/sieve.jquery.json @@ -2,7 +2,7 @@ "name": "sieve", "title": "jQuery Sieve", "description": "jQuery plugin that allows you to quickly add an interactive search filter to any block of content.", - "version": "0.2.5", + "version": "0.3.0-pre", "author": { "name": "Ryan McGeary", "email": "ryan@mcgeary.org", diff --git a/src/jquery.sieve.coffee b/src/jquery.sieve.coffee index 77f7630..54e0be1 100644 --- a/src/jquery.sieve.coffee +++ b/src/jquery.sieve.coffee @@ -14,6 +14,8 @@ $.fn.sieve = (options) -> searchTemplate: "
" itemSelector: "tbody tr" textSelector: null + toggle: (item, match) -> item.toggle(match) + complete: -> }, options) if !settings.searchInput @@ -23,19 +25,20 @@ $.fn.sieve = (options) -> settings.searchInput.on "keyup.sieve change.sieve", -> query = compact($(this).val().toLowerCase().split(/\s+/)) - rows = container.find(settings.itemSelector) + items = container.find(settings.itemSelector) - rows.each -> - row = $(this) + items.each -> + item = $(this) if settings.textSelector - cells = row.find(settings.textSelector) + cells = item.find(settings.textSelector) text = cells.text().toLowerCase() else - text = row.text().toLowerCase() - - matches = true + text = item.text().toLowerCase() + match = true for q in query - matches &&= text.indexOf(q) >= 0 + match &&= text.indexOf(q) >= 0 + + settings.toggle(item, match) - row.toggle(matches) + settings.complete()