diff --git a/puppetboard/static/coffeescript/lists.coffee b/puppetboard/static/coffeescript/lists.coffee index adf347b..5a4968e 100644 --- a/puppetboard/static/coffeescript/lists.coffee +++ b/puppetboard/static/coffeescript/lists.coffee @@ -1,7 +1,6 @@ $ = jQuery -$("input.filter-list").on "keyup", (e) -> - rex = new RegExp($(this).val(), "i") - +filter_list = (val) -> + rex = new RegExp(val, "i") $(".searchable li").hide() $(".searchable li").parent().parent('.list_hide_segment').hide() $(".searchable li").filter( -> @@ -10,10 +9,20 @@ $("input.filter-list").on "keyup", (e) -> $(".searchable li").filter( -> rex.test $(this).text() ).parent().parent().show() - +$("input.filter-list").on "keyup", (e) -> + # If key is escape, reset value if e.keyCode is 27 $(e.currentTarget).val "" ev = $.Event("keyup") ev.keyCode = 13 $(e.currentTarget).trigger(ev) e.currentTarget.blur() + else + filter_list($(this).val()) +$("input.filter-list").ready -> + elem = $("input.filter-list") + elem.focus() + val = elem.val() + filter_list(val) + # Force cursor at the end + elem.val('').val(val) diff --git a/puppetboard/static/js/lists.js b/puppetboard/static/js/lists.js index 206ed5d..9f8d455 100644 --- a/puppetboard/static/js/lists.js +++ b/puppetboard/static/js/lists.js @@ -1,27 +1,42 @@ // Generated by CoffeeScript 1.9.3 (function() { - var $; + var $, filter_list; $ = jQuery; - $("input.filter-list").on("keyup", function(e) { - var ev, rex; - rex = new RegExp($(this).val(), "i"); + filter_list = function(val) { + var rex; + rex = new RegExp(val, "i"); $(".searchable li").hide(); $(".searchable li").parent().parent('.list_hide_segment').hide(); $(".searchable li").filter(function() { return rex.test($(this).text()); }).show(); - $(".searchable li").filter(function() { + return $(".searchable li").filter(function() { return rex.test($(this).text()); }).parent().parent().show(); + }; + + $("input.filter-list").on("keyup", function(e) { + var ev; if (e.keyCode === 27) { $(e.currentTarget).val(""); ev = $.Event("keyup"); ev.keyCode = 13; $(e.currentTarget).trigger(ev); return e.currentTarget.blur(); + } else { + return filter_list($(this).val()); } }); + $("input.filter-list").ready(function() { + var elem, val; + elem = $("input.filter-list"); + elem.focus(); + val = elem.val(); + filter_list(val); + return elem.val('').val(val); + }); + }).call(this);