Forgot to add the JS filter file.
This commit is contained in:
parent
d445a65788
commit
bbc9bd6ef4
51
src/IDF/templates/idf/list-filter.html
Normal file
51
src/IDF/templates/idf/list-filter.html
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{**
|
||||||
|
* Looks for input fields like
|
||||||
|
* <input type="text" class="filter-list" rel="target" />
|
||||||
|
* and filters out anchors below $(target) which do not match
|
||||||
|
* the entered input.
|
||||||
|
*}
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
{literal}
|
||||||
|
$(document).ready(function() {
|
||||||
|
$("input.filter-list").each(function() {
|
||||||
|
var lists = $("ul#" + $(this).attr("rel"));
|
||||||
|
if (lists.length == 0)
|
||||||
|
return;
|
||||||
|
var list = $(lists[0]);
|
||||||
|
|
||||||
|
// a list should contain a reasonable amount of items
|
||||||
|
// to be filterable - we also give the filter input a
|
||||||
|
// special class here so we recognize it later in case
|
||||||
|
// we have to hide it when the list view is collapsed
|
||||||
|
if (list.children("li").length > 10) {
|
||||||
|
$(this).addClass("activated");
|
||||||
|
$(this).focus(function() {
|
||||||
|
// ensure that the parent of the list keeps activated / opened
|
||||||
|
list.parent().addClass("activated");
|
||||||
|
if ($(this)[0].value == $(this).attr("title"))
|
||||||
|
$(this).attr("value", "").removeClass("default");
|
||||||
|
});
|
||||||
|
$(this).blur(function() {
|
||||||
|
list.parent().removeClass("activated");
|
||||||
|
if ($(this)[0].value.length == 0)
|
||||||
|
$(this).attr("value", $(this).attr("title")).addClass("default");
|
||||||
|
});
|
||||||
|
$(this).keyup(function(ev) {
|
||||||
|
var filter = $(this)[0];
|
||||||
|
list.children("li").css('display', 'block');
|
||||||
|
list.children("li").filter(function(index) {
|
||||||
|
if (filter.value == "")
|
||||||
|
return false;
|
||||||
|
if ($(this).text().indexOf(filter.value) > -1)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}).css('display', 'none');
|
||||||
|
});
|
||||||
|
// initialize it with the default
|
||||||
|
$(this)[0].value = "";
|
||||||
|
$(this).blur();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
{/literal}
|
||||||
|
</script>
|
Loading…
Reference in New Issue
Block a user